Compare commits

..

43 Commits

Author SHA1 Message Date
Brandon Mathis
9731c17de1 updated sass brush 2010-12-03 15:56:03 -06:00
Chris Eppstein
0954c8d59b Fix some compilation issues 2010-12-02 21:52:00 -08:00
Chris Eppstein
610f3cdafe Merge branch 'master' into lemonade
* master:
  added new sass brush to doc-src, turned it on

Conflicts:
	doc-src/Gemfile.lock
2010-12-02 21:41:49 -08:00
Chris Eppstein
7aba64eb41 Reference documentation on spriting 2010-12-01 01:35:05 -08:00
Chris Eppstein
f209524228 Only unquote strings 2010-12-01 01:34:07 -08:00
Chris Eppstein
247d6dc8e6 Update gemfiles to depend on sass3.1 2010-12-01 01:33:53 -08:00
Chris Eppstein
1d9e2cbc8a The Sprite container is now called a Sprite Map, and each individual image is called a sprite. 2010-11-30 23:09:31 -08:00
Chris Eppstein
7d763f76d7 Some code comments, cleanup, and register sprite functions with sass. 2010-11-30 22:09:30 -08:00
Chris Eppstein
4603ac9900 Less joins. More responding. 2010-11-30 20:23:01 -08:00
Chris Eppstein
5567e7b13f Change the sprite utilities to create a sprite literal object that can retain information about the sprite for use in other function calls. This avoids the need for global storage and allows multiple sprites constructed from the same sprite folder with different values. 2010-11-30 16:59:30 -08:00
Chris Eppstein
0354dd92a5 Fix broken test. 2010-11-29 22:04:26 -08:00
Chris Eppstein
94fbfd9aa8 Generator for creating sprite imports for users who don't like magic. 2010-11-29 20:53:26 -08:00
Chris Eppstein
40d32606bb Don't rely on reading the environment within the sprite code. Instead accept variable keyword args. 2010-11-29 20:50:50 -08:00
Chris Eppstein
043d082033 Rename these sprite files -- the filenames must be legal css identifiers 2010-11-29 20:27:07 -08:00
Chris Eppstein
d5fa05bc7d Fix a bug in ruby 1.9 2010-11-29 14:36:12 -08:00
Chris Eppstein
8c7223575a Put the Sprite importer on the default load paths coming from compass. 2010-11-29 14:35:37 -08:00
Chris Eppstein
c55896b493 Quick cache for burst reads. 2010-11-29 14:33:57 -08:00
Chris Eppstein
e25508f336 Update links to compass online. 2010-11-27 21:27:46 -08:00
Nico Hagenburger
109687c7d0 added error messages to help lemonade users 2010-11-27 17:00:36 -08:00
Nico Hagenburger
47cec8151c lemonade compatibility specs and functions 2010-11-27 17:00:36 -08:00
Nico Hagenburger
330b39002a allow images to be repeated 2010-11-27 17:00:36 -08:00
Nico Hagenburger
014c609118 updated gem versions 2010-11-27 17:00:36 -08:00
Nico Hagenburger
df05620508 added positioning of images 2010-11-27 17:00:36 -08:00
Nico Hagenburger
c0c39c53d7 generation of png file 2010-11-27 17:00:36 -08:00
Nico Hagenburger
7077b76225 added default spacing 2010-11-27 17:00:36 -08:00
Nico Hagenburger
3e7cd28635 added sprite position calculating 2010-11-27 17:00:36 -08:00
Nico Hagenburger
53d975ffae optimized options 2010-11-27 17:00:36 -08:00
Nico Hagenburger
acd720b41f added spec for base class 2010-11-27 17:00:35 -08:00
Nico Hagenburger
6d0315ad77 added spec for sprite mixin 2010-11-27 17:00:35 -08:00
Nico Hagenburger
c17fe444b6 implemented most basic sprite usage without image generation 2010-11-27 17:00:35 -08:00
Nico Hagenburger
c1756302ca updated to rspec 2.0.0 2010-11-27 17:00:35 -08:00
Chris Eppstein
fdef9d4e44 factor out the saving from the generating, we'll need to monkey patch this in a rails environment. 2010-11-27 17:00:35 -08:00
Chris Eppstein
9380326186 The image_url function has to be accessed from within the engine for it to work right in all cases. 2010-11-27 17:00:35 -08:00
Chris Eppstein
29d39e808d Use the Sass cache to store information about sprites across compiles -- this removes one aspect of lemonade's filesystem dependency. 2010-11-27 17:00:35 -08:00
Chris Eppstein
4b75ef471e This is a little more readable. 2010-11-27 17:00:35 -08:00
Chris Eppstein
62157f6a7e Move the lemonade files around to adhere to compass conventions. 2010-11-27 17:00:35 -08:00
Chris Eppstein
6a44d58b7c Rename Lemonade to Compass::Sprites 2010-11-27 17:00:35 -08:00
Chris Eppstein
ac85ca1e7a This is a whole lot faster 2010-11-27 17:00:34 -08:00
Chris Eppstein
d79dea68db Only do this once, otherwise the output changes every time. 2010-11-27 17:00:34 -08:00
Chris Eppstein
87b624a56e Add a --profile option to the compass CLI 2010-11-27 17:00:34 -08:00
Chris Eppstein
d0f33a74b9 update the gemspec with lemonade dependencies. add nico as an author. 2010-11-27 17:00:34 -08:00
Chris Eppstein
a14a4f33ad Bolt on lemonade to get started. 2010-11-27 17:00:34 -08:00
Chris Eppstein
d1708dd2c3 Use the new Sass gem now. 2010-11-27 17:00:34 -08:00
919 changed files with 4251 additions and 10558 deletions

4
.gitignore vendored
View File

@ -25,7 +25,3 @@ doc-src/.bundle
attic
devbin
.rvmrc
*.rbc
vendor/ruby
vendor
Gemfile.lock

View File

@ -1,7 +0,0 @@
rvm:
- 1.8.7
- 1.9.2
- jruby
- rbx
- ree
script: "bundle exec rake test features"

27
Gemfile
View File

@ -1,29 +1,14 @@
source :rubygems
gemspec
gem "compass", :path => "."
gem "cucumber", "~> 0.9.2"
gem "rspec", "~>2.0.0"
gem "rails", "~>3.0.0.rc"
gem "compass-validator", "3.0.1"
gem "compass-validator", "3.0.0"
gem "css_parser", "~> 1.0.1"
gem "sass", "~>3.1"
gem "haml", "~> 3.1"
gem "rcov", :platform => :mri
gem "sass", "~> 3.1", :path => "../sass"
gem "rcov"
gem "rubyzip"
gem "livereload"
gem "ruby-prof", :platform => :mri
gem 'autotest'
gem 'autotest-fsevent' if RUBY_PLATFORM =~ /darwin/
gem 'fakefs', :git => 'git://github.com/johnbintz/fakefs.git'
gem 'mocha'
gem 'timecop'
gem 'diff-lcs', '~> 1.1.2'
gem 'rake', '0.8.7'
group :mac do
gem "rb-fsevent"
end
gem "chunky_png", "~> 0.10.1"
gem "ruby-prof"

View File

@ -13,7 +13,7 @@ require 'cucumber'
require 'cucumber/rake/task'
Cucumber::Rake::Task.new(:features) do |t|
t.cucumber_opts = "features --format progress"
t.cucumber_opts = "features --format pretty"
end
Rake::TestTask.new :test do |t|
@ -29,6 +29,20 @@ To run with an alternate version of Rails, make test/rails a symlink to that ver
To run with an alternate version of Haml & Sass, make test/haml a symlink to that version.
END
begin
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec)
RSpec::Core::RakeTask.new(:rcov) do |spec|
spec.rcov = true
end
task :default => :spec
rescue LoadError
puts "Rspec (or a dependency) is not available. Try running bundler install"
end
desc "Compile Examples into HTML and CSS"
task :examples do
linked_haml = "tests/haml"
@ -47,7 +61,7 @@ task :examples do
puts "=" * "Compiling #{example}".length
Dir.chdir example do
load "bootstrap.rb" if File.exists?("bootstrap.rb")
Compass::Exec::SubCommandUI.new(%w(compile --force)).run!
Compass::Exec::SwitchUI.new(["--force"]).run!
end
# compile any haml templates to html
FileList["#{example}/**/*.haml"].each do |haml_file|

View File

@ -1,5 +1,5 @@
---
:major: 0
:minor: 11
:patch: 5
:name: Antares
:state: alpha
:build: 1

View File

@ -1,5 +0,0 @@
Autotest.add_discovery { 'rspec2' }

View File

@ -22,7 +22,8 @@ fallback_load_path(File.join(File.dirname(__FILE__), '..', 'lib')) do
end
runner = Proc.new do
Compass::Exec::SubCommandUI.new(ARGV).run!
command_line_class = Compass::Exec::Helpers.select_appropriate_command_line_ui(ARGV)
command_line_class.new(ARGV).run!
end
if ARGV.delete("--profile")

View File

@ -4,20 +4,20 @@ require File.join(path, 'compass/version')
Gem::Specification.new do |gemspec|
gemspec.name = "compass"
gemspec.version = Compass::VERSION # Update the VERSION.yml file to set this.
gemspec.date = "#{Time.now.year}-#{Time.now.month}-#{Time.now.day}" # Automatically update for each build
gemspec.description = "Compass is a Sass-based Stylesheet Framework that streamlines the creation and maintainance of CSS."
gemspec.homepage = "http://compass-style.org"
gemspec.authors = ["Chris Eppstein", "Eric A. Meyer", "Brandon Mathis", "Nico Hagenburger", "Scott Davis"]
gemspec.authors = ["Chris Eppstein", "Eric A. Meyer", "Brandon Mathis", "Nico Hagenburger"]
gemspec.email = "chris@eppsteins.net"
#gemspec.default_executable = "compass" #deprecated
gemspec.default_executable = "compass"
gemspec.executables = %w(compass)
#gemspec.has_rdoc = false #deprecated
gemspec.has_rdoc = false
gemspec.require_paths = %w(lib)
gemspec.rubygems_version = "1.3.5"
gemspec.summary = %q{A Real Stylesheet Framework}
gemspec.add_dependency 'sass', '~> 3.1'
gemspec.add_dependency 'chunky_png', '~> 1.2'
gemspec.add_dependency 'fssm', '>= 0.2.7'
gemspec.add_dependency 'chunky_png', '~> 0.10.3'
gemspec.files = %w(README.markdown LICENSE.markdown VERSION.yml Rakefile)
gemspec.files += Dir.glob("bin/*")

1
doc-src/.gitignore vendored
View File

@ -1,4 +1,3 @@
bin
vendor
output
vendor/ruby

View File

@ -5,19 +5,15 @@ gem 'rdiscount'
gem 'thor'
gem 'rack'
gem 'mime-types'
gem 'fssm'
gem 'serve', "1.0.0"
gem 'nokogiri'
gem 'coderay'
gem 'sass', ">= 3.1"
gem 'haml', ">= 3.1"
gem 'sass', :path => "../../sass"
gem 'haml', ">= 3.1.0.alpha.36"
gem 'rake'
gem 'compass', :path => ".."
gem 'compass-susy-plugin', ">=0.7.0.pre8"
gem 'css-slideshow', "0.2.0"
gem 'json'
gem 'css_parser', "1.0.1"
gem 'ruby-prof'
gem 'rb-fsevent'
gem 'builder'

View File

@ -6,66 +6,62 @@ GIT
cri (>= 1.0.0)
PATH
remote: ..
remote: /Users/chris/Projects/compass
specs:
compass (0.11.1.93b89a2)
chunky_png (~> 1.1)
fssm (>= 0.2.7)
compass (0.11.alpha.1.610f3cd)
chunky_png (~> 0.10.3)
sass (~> 3.1)
PATH
remote: /Users/chris/Projects/sass
specs:
sass (3.1.0.alpha.0)
GEM
remote: http://rubygems.org/
specs:
activesupport (3.0.7)
builder (2.1.2)
chunky_png (1.2.0)
coderay (0.9.7)
compass-susy-plugin (0.9.beta.3)
compass (>= 0.11.beta.3)
activesupport (3.0.1)
chunky_png (0.10.5)
coderay (0.9.5)
compass-susy-plugin (0.8.1)
compass (>= 0.10.0)
cri (1.0.1)
css-slideshow (0.2.0)
compass (>= 0.10.0.rc3)
css_parser (1.0.1)
fssm (0.2.7)
haml (3.1.0)
fssm (0.2.0)
haml (3.1.0.alpha.36)
i18n (0.4.2)
json (1.5.1)
json (1.4.6)
mime-types (1.16)
nokogiri (1.4.4)
rack (1.2.2)
nokogiri (1.4.3.1)
rack (1.2.1)
rake (0.8.7)
rb-fsevent (0.4.0)
rdiscount (1.6.8)
ruby-prof (0.9.2)
sass (3.1.0)
rdiscount (1.6.5)
serve (1.0.0)
activesupport (~> 3.0.1)
i18n (~> 0.4.1)
rack (~> 1.2.1)
tzinfo (~> 0.3.23)
thor (0.14.6)
tzinfo (0.3.26)
thor (0.14.4)
tzinfo (0.3.23)
PLATFORMS
ruby
DEPENDENCIES
builder
coderay
compass!
compass-susy-plugin (>= 0.7.0.pre8)
css-slideshow (= 0.2.0)
css_parser (= 1.0.1)
haml (>= 3.1)
fssm
haml (>= 3.1.0.alpha.36)
json
mime-types
nanoc3!
nokogiri
rack
rake
rb-fsevent
rdiscount
ruby-prof
sass (>= 3.1)
sass!
serve (= 1.0.0)
thor

View File

@ -49,7 +49,7 @@ If you are adding an asset (E.g. image, css, javascript) place the file(s) in th
Running the following command will generate a new example:
./bin/thor generate:example blueprint/grid/simple/
bundle exec thor generate:example blueprint/grid/simple/
An example consists of three files:
@ -74,7 +74,7 @@ After adding the example and adjusting the metadata, go to the reference page an
Generate a reference file for a stylesheet:
./bin/thor generate:reference ../frameworks/compass/stylesheets/_compass.sass
bundle exec thor generate:reference ../frameworks/compass/stylesheets/_compass.sass
The item metadata (at the top of the file) provides some details about what stylesheet is being documented. For instance, here is the metadata for the blueprint color module item:
@ -143,7 +143,15 @@ Go to your fork of Compass on github. Your compass fork will be available on htt
$ git clone git@github.com:**yourusername**/compass.git
### 3. Don't forget: bundler!
### 3. Switch to the docs branch
To work on the docs, you need to do a checkout of the docs branch
$ git checkout docs
(A list branches can be accessed through `git branch` with no arguments)
### 4. Don't forget: bundler!
If you haven't yet done so, install bundler:
@ -152,28 +160,30 @@ If you haven't yet done so, install bundler:
Bundle the gems for this application:
$ cd doc-src
$ bundle install --binstubs
$ bundle install
### 4. Compile the docs
### 6. Compile the docs
To compile (and auto recompile) and preview the site in your browser: (make sure you run nanoc3 aco from the doc-src directory)
To compile (and auto recompile) and preview the site in your browser: (make sure you run nanoc3/aco from the doc-src directory)
$ cd doc-src
$ ./bin/nanoc3 aco
$ export RUBYLIB="../lib"
$ bundle exec nanoc3 aco
Then open `http://localhost:3000/index.html` in your web browser.
Then open `http://localhost:3000/docs/` in your web browser.
aco stands for autocompiler; the site will recompile every time you request a new page.
If you find `./bin/nanoc3 aco` to be sluggish, try this alternative workflow:
If you find `bundle exec nanoc3 aco` to be sluggish, try this alternative workflow:
$ cd doc-src
$ ./bin/serve 3000 output &
$ ./bin/rake watch
$ export RUBYLIB="../lib"
$ bundle exec serve 3000 .. &
$ bundle exec rake watch
It is recommended that you read the 5 minute [tutorial](http://nanoc.stoneship.org/tutorial/) on Nanoc.
### 5. Commit your changes to your Fork
### 7. Commit your changes to your Fork
git commit -a
git push
@ -192,4 +202,4 @@ Then get the new changes with fetch:
And merge them with your local docs branch:
git merge chris
git merge chris/docs

View File

@ -25,7 +25,7 @@ task :watch do
rebuild_site = lambda do |base, relative|
if relative && relative =~ /\.s[ac]ss/
puts ">>> Change Detected to #{relative} : updating stylesheets <<<"
puts ">>> Change Detected to #{relative} : updating stylsheets <<<"
system "bundle exec compass compile"
else
if !relative

View File

@ -18,7 +18,7 @@ end
compile '/' do
filter :haml, :ugly => true
layout item[:layout] ? item[:layout] : "main"
layout item[:redirect] ? "redirect" : (item[:layout] ? item[:layout] : "main")
end
compile '/search-data/' do
@ -28,7 +28,7 @@ end
compile '/examples/*/' do
filter :haml, :ugly => true
filter :highlight
layout item[:layout] ? item[:layout] : "example"
layout item[:redirect] ? "redirect" : (item[:layout] ? item[:layout] : "example")
end
sass_options = Compass.sass_engine_options
@ -44,21 +44,7 @@ end
compile '/reference/*/' do
filter :haml, :ugly => true
filter :highlight
layout item[:layout] ? item[:layout] : "main"
end
compile '/posts/*/' do
filter :erb
filter :rdiscount if item[:extension] == "markdown"
layout 'post'
end
compile "/blog/atom/" do
filter :haml, :attr_wrapper => '"'
end
compile 'sitemap' do
filter :erb
layout item[:redirect] ? "redirect" : (item[:layout] ? item[:layout] : "main")
end
compile '*' do
@ -67,15 +53,7 @@ compile '*' do
elsif item[:extension] == "haml"
filter :haml, :ugly => true
end
layout item[:layout] ? item[:layout] : "main"
end
route 'sitemap' do
item.identifier.chop + '.xml'
end
route "/blog/atom/" do
"/blog/atom.xml"
layout item[:redirect] ? "redirect" : (item[:layout] ? item[:layout] : "main")
end
route '/search-data/' do
@ -86,10 +64,6 @@ end
route("/stylesheets/#{'*/' * i}_*/") {nil}
end
route '/assets/htaccess/' do
"#{SITE_ROOT}/.htaccess"
end
route '/assets/css/*/' do
"#{SITE_ROOT}/stylesheets"+item.identifier.chop[11..-1]+"."+item[:extension]
end
@ -111,15 +85,6 @@ route '/stylesheets/*/' do
SITE_ROOT+item.identifier.chop + '.css'
end
route '/posts/*/' do
if item.identifier =~ %r{^/posts/(\d{4})-(\d{2})-(\d{2})-(.*)/$}
"/blog/#{$1}/#{$2}/#{$3}/#{$4}/index.html"
else
puts "WARNING: malformed post name: #{item.identifier}"
nil
end
end
%w(markup stylesheet background).each do |ex_file|
route "/examples/*/#{ex_file}/" do
nil

View File

@ -1,4 +0,0 @@
RedirectMatch 301 /docs/$ /reference/compass/
RedirectMatch 301 /docs/tutorials/(.*) /help/tutorials/$1
RedirectMatch 301 /docs/(.*) /$1
RedirectMatch 301 /reference/$ /reference/compass/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -9,14 +9,14 @@ $(function(){
});
});
/*;(function()
;(function()
{
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
function Brush(){};
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = ['sass', 'scss', 'css', 'html'];
Brush.aliases = ['sass', 'scss'];
SyntaxHighlighter.brushes.Sass = Brush;
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();*/
})();

View File

@ -1,87 +0,0 @@
function showInstallCommand() {
var cmd = $("#existence").val();
var commands = [];
var notes = [];
var project_name = "&lt;myproject>";
var can_be_bare = true;
commands.push("$ gem install compass");
if (cmd == "init") {
commands.push("$ cd " + project_name);
project_name = ".";
}
if ($("#app-type").val() == "rails") {
if (cmd == "create") {
commands.push("$ rails new " + project_name);
}
cmd = "init rails";
can_be_bare = false;
} else if ($("#app-type").val() == "other") {
if (cmd == "init") {
cmd = "create";
}
} else if ($("#app-type").val() == "stand-alone") {
if (cmd == "init") {
cmd = "install";
can_be_bare = false;
}
}
var framework = $("#framework").val();
var create_command;
if (cmd == "install") {
create_command = "$ compass install " + framework + " " + project_name;
} else {
create_command = "$ compass " + cmd + " " + project_name;
}
if (framework != "compass" && framework != "bare" && cmd != "install") {
create_command = create_command + " --using " + framework;
} else if (framework == "bare") {
if (can_be_bare) {
create_command = create_command + " --bare";
} else {
notes.push("<p class='note warning'>You cannot create a bare project in this configuration. Feel free to remove any stylesheets that you don't want.</p>");
}
}
if ($("#syntax").val() == "sass") {
create_command = create_command + " --syntax sass";
}
if ($("#options").val() == "customized") {
$("#directories").show();
create_command = create_command +
" --sass-dir \"" + $("#sassdir").val() + "\"" +
" --css-dir \"" + $("#cssdir").val() + "\"" +
" --javascripts-dir \"" + $("#jsdir").val() + "\"" +
" --images-dir \"" + $("#imagesdir").val() + "\"";
} else {
$("#directories").hide();
}
commands.push(create_command);
var instructions = "<pre><code>" + commands.join("\n") + "</code></pre>";
if (instructions.match(/&lt;/)) {
notes.push("<p class='note'>Note: Values indicated by &lt;&gt; are placeholders. Change them to suit your needs.</em>");
}
$("#steps").html(instructions + notes.join(""));
}
function attachMadlibBehaviors() {
$("#app-type").change(function(event) {
var val = $(event.target).val();
if (val == "other") {
$("#options").val("customized");
$(".madlib").addClass("customizable");
} else if (val == "rails") {
$("#options").val("default");
$(".madlib").removeClass("customizable");
} else {
$(".madlib").addClass("customizable");
}
});
$("#existence, #app-type, #framework, #syntax, #options").change(showInstallCommand);
$(".madlib input").keyup(function(){setTimeout(showInstallCommand, 0.1)});
}
function setupMadlib() {
attachMadlibBehaviors();
showInstallCommand();
}
$(setupMadlib);

View File

@ -1,47 +0,0 @@
(function($) {
$.fn.replaceholder = function(options) {
var $placeholder;
(this.length > 0) ? $this = $(this) : $this = $('input[placeholder]');
return $this.each(function() {
settings = jQuery.extend(options);
var $placeholder = $(this);
if ($placeholder.length > 0) {
var attrPh = $placeholder.attr('placeholder');
$placeholder.attr('value', attrPh);
$placeholder.bind('focus', function() {
var $this = $(this);
if($this.val() === attrPh)
$this.val('').removeClass('placeholder');
}).bind('blur', function() {
var $this = $(this);
if($this.val() === '')
$this.val(attrPh).addClass('placeholder');
});
}
});
};
})(jQuery);
jQuery(function($){
$(document).ready(function(){
if (!Modernizr.input.placeholder) { $("input[placeholder], textarea[placeholder]").replaceholder() }
})
})

View File

@ -1,33 +0,0 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
;(function()
{
// CommonJS
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
function Brush()
{
};
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = ['text', 'plain', 'haml'];
SyntaxHighlighter.brushes.Plain = Brush;
// CommonJS
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();

View File

@ -1,69 +0,0 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
;(function()
{
// CommonJS
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
function Brush()
{
function process(match, regexInfo)
{
var constructor = SyntaxHighlighter.Match,
code = match[0],
tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
result = []
;
if (match.attributes != null)
{
var attributes,
regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
'\\s*=\\s*' +
'(?<value> ".*?"|\'.*?\'|\\w+)',
'xg');
while ((attributes = regex.exec(code)) != null)
{
result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
}
}
if (tag != null)
result.push(
new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
);
return result;
}
this.regexList = [
{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]>
{ regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // <!-- ... -->
{ regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
];
};
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = ['xml', 'xhtml', 'xslt', 'html'];
SyntaxHighlighter.brushes.Xml = Brush;
// CommonJS
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();

View File

@ -1,4 +1,4 @@
function changeTheme(theme, setCookie) {
function changeTheme(theme) {
el = $('html');
if (!theme) theme = el.hasClass('dark') ? 'light': 'dark';
@ -10,25 +10,18 @@ function changeTheme(theme, setCookie) {
setThemePreference(theme);
}
function changeSyntax(style, setCookie){
function changeSyntax(syntax) {
el = $('html');
el.removeClass('scss'); el.removeClass('sass');
el.addClass(style);
setStyleSyntaxPreference(style);
}
function changeExampleStyleSyntax(style, setCookie){
el = $('html');
el.removeClass('scss'); el.removeClass('sass'); el.removeClass('css');
el.addClass(style);
setExampleStyleSyntaxPreference(style);
}
function changeExampleMarkupSyntax(markup){
el = $('html');
el.removeClass('haml'); el.removeClass('html');
el.addClass(markup);
setExampleMarkupSyntaxPreference(markup);
if (!syntax) {
syntax = el.hasClass('scss') ? 'sass': 'scss';
} else if (el.hasClass(syntax)) {
return;
}
el.removeClass('scss');
el.removeClass('sass');
el.addClass(syntax);
setSyntaxPreference(syntax);
}
function setThemePreference(theme) {
@ -38,81 +31,46 @@ function setThemePreference(theme) {
path: '/'
});
}
function getThemePreference(defaultTheme) {
theme = $.cookie("compass-theme");
if (theme) {
changeTheme(theme, false);
changeTheme(theme);
} else {
changeTheme(defaultTheme, true);
changeTheme(defaultTheme);
}
}
function setStyleSyntaxPreference (mainSyntax) {
function setSyntaxPreference(syntax) {
$.cookie("compass-syntax", null);
$.cookie("compass-syntax", mainSyntax, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
$.cookie("compass-syntax", syntax, {
expires: 60 * 60 * 24 * 365 * 10,
path: '/'
});
}
function setExampleStyleSyntaxPreference (exampleStyle) {
$.cookie("compass-example-style", null);
$.cookie("compass-example-style", exampleStyle, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
}
function setExampleMarkupSyntaxPreference (exampleMarkup) {
$.cookie("compass-example-markup", null);
$.cookie("compass-example-markup", exampleMarkup, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
}
function getSyntaxPreference(defaultSyntax, defaultMarkup) {
mainSyntaxCookie = $.cookie("compass-syntax");
mainSyntax = (mainSyntaxCookie) ? mainSyntaxCookie : defaultSyntax;
changeSyntax(mainSyntax);
// add example styling preferences
if ($('body').hasClass('demo')){
markupCookie = $.cookie("compass-example-markup");
styleCookie = $.cookie("compass-example-style");
markup = (markupCookie) ? markupCookie : defaultMarkup;
style = (styleCookie) ? styleCookie : defaultSyntax;
changeExampleStyleSyntax(style)
changeExampleMarkupSyntax(markup);
function getSyntaxPreference(defaultSyntax) {
syntax = $.cookie("compass-syntax");
if (syntax){
changeSyntax(syntax);
} else {
changeSyntax(defaultSyntax);
}
}
getThemePreference('dark');
getSyntaxPreference('scss');
$('document').ready(function(){
getSyntaxPreference('scss', 'html');
$('#page').click(function(event){
var target = $(event.target);
// Set Main Syntax Preference
if (target.parent().is('#syntax_pref')) {
changeSyntax(target.attr("rel"), true);
changeSyntax(target.attr("rel"));
event.preventDefault();
// Set Demo page syntax preferences
} else if (target.parent().is('.syntax_pref')) {
event.preventDefault();
if (target.parent().parent().is('#markup')) {
changeExampleMarkupSyntax(target.attr("rel"), true);
} else {
changeExampleStyleSyntax(target.attr("rel"), true);
}
// Set Theme preference
} else if (target.is('#theme_pref') || target.parent().is('#theme_pref')) {
changeTheme();
event.preventDefault();
// View source for mixins & functions
} else if (target.attr("rel") == "view source") {
$(target.attr("href")).toggle();
event.preventDefault();
}
});
});
});

View File

@ -1,12 +0,0 @@
chris:
fullname: Chris Eppstein
byline_link: http://chriseppstein.github.com/
brandon:
fullname: Brandon Mathis
eric:
fullname: Eric Meyer
byline_link: http://eric.oddbird.net/
nico:
fullname: Nico Hagenburger
scott:
fullname: Scott Davis

View File

@ -6,6 +6,5 @@ data_sources:
- items_root: /assets
layouts_root: /assets
type: filesystem_assets
text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xml' ]
text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt' ]
output_dir: output
base_url: http://compass-style.org

View File

@ -1,282 +0,0 @@
---
title: Compass v0.11.0 Beta History
crumb: CHANGELOG
body_id: changelog
layout: article
---
0.11.beta.8 (UNRELEASED)
------------------------
* Created an official API to add configuration options to compass.
[More information](/help/tutorials/extending/).
0.11.beta.7 (04/16/2011)
------------------------
* Added support for the new webkit gradient syntax that matches the css3 specification.
Support for older webkit browsers remains enabled at this time.
To disable it, set `$support-for-original-webkit-gradients` to false.
* There is a new mixin for creating
[pure-css grid backgrounds](/reference/compass/layout/grid_background/)
for verifying grid alignment for both fixed and fluid grids.
* Add support for pixel-based gradients in the original webkit gradient syntax.
* Added a vertical rhythm function for calculating rhythms without returning a property.
0.11.beta.6 (04/10/2011)
------------------------
* Added support for degree-based linear and radial gradients (not yet supported for SVG gradients)
* Added opera prefix support for linear and radial gradients.
* The CSS3 `background` mixin's "simple" background that came
before the prefixed versions has been removed. If you
need to target css2 background it is recommended that you set a
the background property before calling the `background` mixin
or you can call the `background-with-css2-fallback` if you want
keep using compass's automatic simplification of the arguments.
* Bug fixes
* Fixed and issue with the compass gemspec in rubygems 1.7
* Fixed a bug with sprite imports
0.11.beta.5 (03/27/2011)
------------------------
### Compass Sprites
[Magic Selectors](/help/tutorials/spriting/#magic-selectors) have been added
Fixed a bug causing a stack level too deep in ruby 1.8.7
0.11.beta.4 (03/25/2011)
------------------------
* Extensions that are installed into ~/.compass/extensions will be automatically available to all your compass projects.
### Compass Internals
* Fixed a small bug in callbacks that was causing them to register twice
* The Sprite classes have been abstracted allowing for different engines
* Bumped chunky_png version to 1.1.0
* Total rewrite of the sprite generation classes - thanks to [@johnbintz](https://github.com/johnbintz) for the help
* More Rspec tests
0.11.beta.3 (03/15/2011)
------------------------
### Compass CSS3
* A new CSS3 mixin for [appearance](/reference/compass/css3/appearance/) was added.
* The font-face mixin has been updated again with the [syntax recommendations
from font-spring](http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).
The API has not changed.
### Compass Typography
* Some text-based mixins have been moved from utilities to the new
typography module. The old imports are deprecated now.
Affected modules: utilities/links, utilities/lists, and utilities/text and
their sub-modules.
* There is a new typography module: [Vertical Rhythm](/reference/compass/typography/vertical_rhythm/).
This makes it easier to align the typography of your page to a common rhythm.
### Compass Utilities
* A new mixin `reset-float` is available in the [float module](/reference/compass/utilities/general/float/#mixin-reset-float) that makes it easier to reset the floats introduced from that module.
* A new mixin `reset-float` is available in the [float module](/reference/compass/utilities/general/float/#mixin-reset-float) that makes it easier to reset the floats introduced from that module.
* A new module has been added to create readable text against an arbitrary background color based on the lightness of the background: [compass/utilities/color/contrast](/reference/compass/utilities/color/contrast/).
* The comma-delimited-list has been renamed to delimited-list and
generalized to accept a delimiter which defaults to a comma.
The old function continues to exist, but is deprecated.
### Compass Internals
* You can now register callbacks for compilation events so that you can take
custom actions when they occur. For instance, you might want to notify
Growl when a stylesheet compilation error occurs.
* Bug fixes & performance improvements.
0.11.beta.2 (02/01/2011)
------------------------
* Updated the font-face mixin so it works in Android 2.2.
Credit: [Paul Irish](http://paulirish.com/).
* The deprecated & unused arguments to the font-face mixin have been removed.
0.11.beta.1 (01/17/2011)
------------------------
* Add an option `--skip-overrides` to the sprite
subcommand. When provided, the default variables for overriding the sprite
behavior are not created. Instead, you would change the call to
`sprite-map()` to customize your sprite map.
* Rename the `sprite-position` mixin in the new `sprite/base` module to
`sprite-background-position` in order avoid a naming conflict with the old
sprite module.
0.11.beta.0 (01/09/2011)
------------------------
Compass v0.11 is now feature complete. Future changes to this release will be doc improvements, bug fixes, performance tuning, and addressing user feedback.
* Added optional support for IE8 with $legacy-support-for-ie8 which defaults to true.
* Updated the opacity and filter-gradient mixins to make IE's hacky DirectX filters
optional based on Compass's legacy support settings.
* Added the ability to piggy back on compass's watcher within your configuration file.
See the [configuration reference](/help/tutorials/configuration-reference/) for details.
* The options passed to the CLI can now be inspected within the compass configuration file.
The CLI options will still override the values set within the config file, but they might
inform other values. For instance `compass compile -e production` will have the environment
parameter preset to `:production` so that you can set other values in the project accordingly.
* New infrastructure for supporting experimental css3 functions that are prefixed but have the same
syntax across all browsers. It is now possible to configure which browsers support which
experimental functions outside of the compass release cycle. For details, see the
[cross browser helpers](/reference/compass/helpers/cross-browser/).
* [Blueprint] Added a new sass function called span($n) to the grid module which replaces
the now **deprecated span mixin**. If you are using this mixin, please replace it with:
`width: span($n)`.
* [Blueprint] Blueprint no longer adds `!important` to the widths of `input`, `textarea`,
and `select` form fields, so compass no longer defaults to using `!important` in those cases.
If you were relying on this behavior, you may need to adjust your stylesheets accordingly.
0.11.alpha.4 (12/08/2010)
-------------------------
* Add a `--time` option to the compile and watch commands. This will print out
the time spent compiling each sass file and a total at the end.
* Upgrade FSSM, the internal library that monitors the filesystem events for compass.
* Removed the command line options that were deprecated in v0.10.
0.11.alpha.3 (12/05/2010)
-------------------------
* Fix a bug in compass running under ruby 1.9.2 that was introduced in v0.11.alpha.2.
0.11.alpha.2 (12/05/2010)
-------------------------
* Merge with Lemonade. Compass now provides a full featured spriting solution.
See the [spriting tutorial](/help/tutorials/spriting/) for more information.
* Compass now depends on Sass 3.1. You can install the preview release:
`gem install sass --pre`. Note: you must also upgrade your haml gem if you
use both in the same application.
* A third argument is now available on the `image-url()` helper. When `true` or
`false`, it will enable/disable the cache buster for a single image url. Or when
a string, it will be the cache buster used.
* Upgrade CSS3 PIE to 1.0-beta3.
* Bug fixes.
0.11.alpha.1 (11/22/2010)
-------------------------
* Support for Sass 3.1 alpha version
* CSS3 PIE module. [Docs](/reference/compass/css3/pie/).
* The versioned modules in the last release have been removed. There is now
just a single module for each and the overloaded mixins will discern
deprecated usage and warn accordingly.
* Allow erb processing of non all non-binary filetypes during extension installs.
* Added a `background` mixin for css3 gradient support in the shorthand style.
* Fix for gradients in opera with bordered elements.
* The `multiple-text-shadows` and `multiple-box-shadows` mixins that were present in
v0.11.alpha.0 were removed because they were unnecessary. Just use the `text-shadow`
and `box-shadow` mixins.
* The docs are [getting a make-over](http://beta.compass-style.org/) by Brandon :)
0.11.alpha.0 (11/15/2010)
-------------------------
Note: Compass does not currently support Sass 3.1 alphas.
### Deprecations
* Deprecated imports and APIs from v0.10 have been removed.
* Changed defaults for the box-shadow and text-shadow mixins.
Previously the horizontal and vertical offset were both 1, which
expected a top left light source. They are now set to 0 which assumes
a direct light source, a more generic default.
* The linear-gradient and radial-gradient mixins have been deprecated.
Instead use the background-image mixin and pass it a gradient function.
The deprecation warning will print out the correct call for you to use.
* Passing an argument to the `blueprint-scaffolding` mixin is not necessary
and has been deprecated.
* Some blueprint color defaults now use color functions instead of color arithmetic.
This may result in different output for those who have color customizations.
### Blueprint
* Updated from blueprint 0.9 to blueprint 1.0
* Added .info and .alert classes to forms.css [CMM]
* Fixed numerous bugs in forms, including the fieldset padding bug in IE6-8 [CMM]
* Fixed specificity problems in typography.css and grid.css [CMM]
* See Lighthouse for more bug fixes
* Full [blueprint changelog][blueprint_10_change]
* If for some reason you'd like to stay on the older version of blueprint you can run
the following command in your project before you upgrade (or after temporarily downgrading):
`compass unpack blueprint`
### CSS3 v2.0
Our CSS3 module makes writing CSS3 today almost as easy as it will be when all
the browsers officially support the new features. The second version of the
compass CSS module brings the API up to date with developments over the past
6 to 9 months of browser changes and more closely matching the most recent CSS
specifications. [Upgrade guide](/help/tutorials/upgrading/antares/). Summary of changes.
* Support for multiple box shadows and text shadows
* Support for 2d and 3d transforms
* Opt-in SVG support for gradients in opera and IE9.
Set `$experimental-support-for-svg : true` in your
stylesheet to enable it.
* Fixed a radial gradient position bug.
* To generate a simple linear gradient in IE6 & 7, you can now use
the `filter-gradient` mixin.
* New `background-image` mixin with gradient support and allowing
up to 10 images.
* Gradient support for the border-image property.
* Gradient support for list-style-image property.
* Gradient support for the content property.
### Helpers
* `linear-gradient()` & `radial-gradient()` helpers now intercept standard css
functions and parse them into Sass Literals. These work with new vendor helpers
(`-moz()`, `-webkit`, `-o`, `-ie`, and `-svg` (yes I know svg is not a vendor))
to return specific representations of the linear & radial gradients. The
`prefixed()` function will check a value to see if it has a certain
vendor-specific representation.
* New color helpers: `adjust-lightness`, `adjust-saturation`, `scale-lightness`, and `scale-saturation`
make it easier to construct apis that manipulate these color attributes.
* The `elements-of-type()` helper now returns html5 elements when the display is `block`
and also will return only html5 elements for `elements-of-type(html5)`
* Compass now provides several helper functions related to trigonometry.
There's no practical use, but it's hoped that users will find fun things to
do with these for technology demonstrations:
* `sin($number)` - Takes the sine of the number.
* `cos($number)` - Takes the cosine of the number.
* `tan($number)` - Takes the tangent of the number.
* `pi()` - Returns the value of π.
If you provide a number with units of `deg` then it will return a unitless number
after converting to radians. Otherwise, it assumes the number is a radian length measure
and passes the units along to the result.
* `ie-hex-str($color)` returns a #AARRGGBB formatted color suitable for
passing to IE filters.
* A new function `if()` that allows you to switch on a value without using `@if`.
Usage: `if($truth-value, $value-if-true, $value-if-false)`.
* Compass has added a number of new helper functions for lists that begin with
`-compass`, helpers that begin with `-compass` should be considered "private" and
are not to be used by compass users. Sass 3.1 will have proper list support,
these are a work around until that time.
### Configuration
* Added a new configuration property to disable sass warnings: `disable_warnings`
### Core Framework
* New layout mixins for absolute positioning: stretch, stretch-x, stretch-y
### Rails
* In rails 3, there's no need for an initializer. Instead we use a
Railstie.
* We now default to app/stylesheets for sass files and public/stylesheets for
css files -- though they can still be changed after installation or on the
command line during project initialization.
* Compass is now a gem plugin in a rails environment.
* In a rails3 environment the compass configuration can now be
changed without restarting the rails server process.

View File

@ -2,98 +2,42 @@
title: Compass History
crumb: CHANGELOG
body_id: changelog
layout: default
layout: article
---
COMPASS CHANGELOG
=================
Upgrading compass is pretty easy.
Upgrading compass is really easy.
Don't let all these details [scare you...](/help/tutorials/upgrading/im-scared/)
The Documentation for the [latest stable release](http://compass-style.org/docs/):
The Documentation for the [latest preview release](http://beta.compass-style.org/)
0.11.6 (UNRELEASED)
-------------------
0.11.alpha.1 (11/22/2010)
---------------------------
* Added `user-select` mixin to control the selection model and granularity of an element. It accepts one argument (`$select`) from the following options: `none` | `text` | `toggle` | `element` | `elements` | `all` | `inherit`.
* Support for Sass 3.1 alpha version
* CSS3 PIE module. [Docs](/reference/compass/css3/pie/).
* The versioned modules in the last release have been removed. There is now
just a single module for each and the overloaded mixins will discern
deprecated usage and warn accordingly.
* Allow erb processing of non all non-binary filetypes during extension installs.
* Added a `background` mixin for css3 gradient support in the shorthand style.
* Fix for gradients in opera with bordered elements.
* The `multiple-text-shadows` and `multiple-box-shadows` mixins that were present in
v0.11.alpha.0 were removed because they were unnecessary. Just use the `text-shadow`
and `box-shadow` mixins.
* The docs are [getting a make-over](http://beta.compass-style.org/) by Brandon :)
0.11.5 (07/10/2011)
-------------------
0.11.alpha.0 (11/15/2010)
---------------------------
* Updated the list of elements returned by the `elements-of-type()` helper.
It now understands `html5-block` and `html5-inline` and other types now
return html5 elements in them by default.
* Fix warning logic in vertical-rhythms module.
* Fix typo in the css3/transition module.
Note: Compass does not currently support Sass 3.1 alphas.
0.11.4 (07/03/2011)
-------------------
### Deprecations
* Vertical rhythm now supports absolute units like pixels.
Set `$relative-font-sizing` to `false` to enable.
* Vertical rhythm now has a minimum padding that defaults to 2px.
This makes some edge cases look better.
* New mixin `force-wrap` prevents URLs and long lines of text from breaking layouts.
* Fix absolute path detection on windows.
* Fix the mime type returned for inline svg images.
* Allow multiple transitions in the CSS3 `transition` mixin.
* The Blueprint `:focus` styles no longer clobbers cascade-based overrides unnecessarily.
* The Blueprint grid-background vertical rhythm is now based off of $blueprint-font-size,
rather than a static value of 20px
0.11.3 (06/11/2011)
-------------------
**Note:** Due to some internal changes to compass you may have issue with your sass cache. Run `compass clean` to clear your cache.
* The `pie-clearfix` mixin has been updated. If you have to
support Firefox < 3.5, please update your stylesheets
to use `legacy-pie-clearfix` instead.
* Added a new command: `compass clean` which removes any generated
css files and clears the sass cache.
* Enable IE 10 support for flexible box with the -ms prefix.
* A small change to how generated sprites are named for better
rails 3.1 compatibility.
* Fixes for the compass --quiet mode.
* It is now possible to generate cache buster urls that manipulate
the path of the image instead of the query string. This makes
images work better with proxies, but will require some web server
configuration. [Docs](/help/tutorials/configuration-reference/#asset-cache-buster)
* Numerous small bug fixes to sprites.
* Sprite Engines are now classes see [Docs](/help/tutorials/extending) for more information
* Sprite classes have bee re-factored into modules for readability
* Sprites will no longer cause `undefined method 'find' for #<Compass::SpriteMap>` when adding or removing sprite files
0.11.2 (06/10/2011)
-------------------
* Sprites will now by default remove any old versions of the sprite. A new configuration
variable has been created to override this.
* Nested sprites are now supported using globs `@import 'nested/**/*.png';`.
* Fixed a bug that was causing sprite variable options to not get passed to the image classes.
* Sass Colors will no longer cause an error if you use them as sprite names.
* Added support for -ms gradients in background-image and background properties
* Give a better error if Sass::Script::Functions.declare does not exist.
0.11.1 (04/25/2011)
-------------------
* This release fixed some Gem dependency issues with Sass.
0.11.0 (04/24/2011)
-------------------
This changelog entry is aggregated across all the v0.11 beta releases.
If you're upgrading from a previous beta v0.11 beta release, you can read
[the 0.11 beta release notes here](/CHANGELOG-v0-11-beta/).
### !important
#### Breaking Changes & Deprecations:
* Deprecated imports and APIs from v0.10 have been removed. If you are upgrading
from v0.8, please upgrade to v0.10 before installing v0.11.
* Deprecated imports and APIs from v0.10 have been removed.
* Changed defaults for the box-shadow and text-shadow mixins.
Previously the horizontal and vertical offset were both 1, which
expected a top left light source. They are now set to 0 which assumes
@ -105,31 +49,6 @@ If you're upgrading from a previous beta v0.11 beta release, you can read
and has been deprecated.
* Some blueprint color defaults now use color functions instead of color arithmetic.
This may result in different output for those who have color customizations.
* The deprecated & unused arguments to the `font-face` mixin have been removed.
* Lemonade has been merged into compass. If you've been using Lemonade, you need to
upgrade your sprites to use the new [Compass Sprites](/help/tutorials/spriting/).
#### Dependencies
* Compass now depends on Sass 3.1 which is a new stand-alone gem that has been separated
from Haml. **If you have Haml installed, you must upgrade it to 3.1 as well.**
* Compass now depends on ChunkyPNG, a pure-ruby library for generating PNG files.
* The FSSM library that used to be vendored is now upgraded and a normal gem dependency.
If you don't know what this means, then you don't need to care :)
### New Sass Features
Sass 3.1 brings a ton of great new features that Compass now uses and you can too!
* Proper List Support. Space and Comma separated lists used to cause values to become strings when passing them to mixins. Now the values in lists are preserved as their original types.
* Sass-based Functions. Define your own value functions and use them anywhere.
* Keyword Style Argument passing to Functions and Mixins. It can be hard to understand what
the values being passed to a mixin or function are for, use keyword style arguments to
make it easier to understand what's going on.
* `@media` bubbling. Use a media declaration anywhere and it will be bubbled to the top level
for you.
For more information about the new Sass features, see the [Sass CHANGELOG](http://sass-lang.com/docs/yardoc/file.SASS_CHANGELOG.html).
### Blueprint
@ -142,26 +61,8 @@ For more information about the new Sass features, see the [Sass CHANGELOG](http:
* If for some reason you'd like to stay on the older version of blueprint you can run
the following command in your project before you upgrade (or after temporarily downgrading):
`compass unpack blueprint`
* [Blueprint] Blueprint no longer adds `!important` to the widths of `input`, `textarea`,
and `select` form fields, so compass no longer defaults to using `!important` in those cases.
If you were relying on this behavior, you may need to adjust your stylesheets accordingly.
* [Blueprint] Added a new sass function called span($n) to the grid module which replaces
the now **deprecated span mixin**. If you are using this mixin, please replace it with:
`width: span($n)`.
### Spriting Support
* Compass now has a world-class spriting system after merging with [Lemonade][lemonade].
See the [spriting tutorial](/help/tutorials/spriting/) for more information.
* The [old sprite module](/reference/compass/utilities/sprites/sprite_img/) is still available
for working with hand-generated sprite maps.
* The Sprite internals are abstracted allowing for different engines. By default
compass uses ChunkyPNG which only supports PNG files, so some users might prefer
ImageMagic which is available via a [plugin](#XXXLINKME).
* [Magic Selectors](/help/tutorials/spriting/#magic-selectors) make it simple to define
sprites that work with user interaction pseudo classes like `:hover`, `:active`, etc.
### CSS3 Module v2.0
### CSS3 v2.0
Our CSS3 module makes writing CSS3 today almost as easy as it will be when all
the browsers officially support the new features. The second version of the
@ -169,39 +70,30 @@ compass CSS module brings the API up to date with developments over the past
6 to 9 months of browser changes and more closely matching the most recent CSS
specifications. [Upgrade guide](/help/tutorials/upgrading/antares/). Summary of changes.
* Support for multiple [box shadows](/reference/compass/css3/box_shadow/)
and multiple [text shadows](/reference/compass/css3/text-shadow/)
* Support for [2d and 3d transforms](/reference/compass/css3/transform/)
* Opt-in [SVG support](/reference/compass/support/#const-experimental-support-for-svg)
for gradients in opera and IE9. Set `$experimental-support-for-svg : true` in your
* Support for multiple box shadows and text shadows
* Support for 2d and 3d transforms
* Opt-in SVG support for gradients in opera and IE9.
Set `$experimental-support-for-svg : true` in your
stylesheet to enable it.
* Fixed a radial gradient position bug.
* To generate a simple linear gradient in IE6 & 7, you can now use
the [filter-gradient mixin](/reference/compass/css3/images/#mixin-filter-gradient).
* New [images module](/reference/compass/css3/images/) makes gradients simple for
all properties that support them using the CSS3 standard syntax.
* Compass now has opt-in support for the CSS3 PIE library. [Docs](/reference/compass/css3/pie/).
* Added optional support for IE8 with `$legacy-support-for-ie8` which defaults to true.
* Updated the `opacity` and `filter-gradient` mixins to make IE's hacky DirectX filters
optional based on Compass's legacy support settings.
* A new CSS3 mixin for [appearance](/reference/compass/css3/appearance/) was added.
* The font-face mixin has been updated again with the [syntax recommendations
from font-spring](http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).
The API has not changed.
* Added support for the new webkit gradient syntax that matches the css3 specification.
Support for older webkit browsers remains enabled at this time.
To disable it, set `$support-for-original-webkit-gradients` to false.
the `filter-gradient` mixin.
* New `background-image` mixin with gradient support and allowing
up to 10 images.
* Gradient support for the border-image property.
* Gradient support for list-style-image property.
* Gradient support for the content property.
### Helper Functions
### Helpers
* `linear-gradient()` & `radial-gradient()` helpers now intercept standard css
functions and parse them into Sass Literals. These work with new vendor helpers
(`-moz()`, `-webkit`, `-o`, `-ie`, and `-svg` (yes, we know svg is not a vendor))
(`-moz()`, `-webkit`, `-o`, `-ie`, and `-svg` (yes I know svg is not a vendor))
to return specific representations of the linear & radial gradients. The
`prefixed()` function will check a value to see if it has a certain
vendor-specific representation.
* New color helpers: `adjust-lightness`, `adjust-saturation`, `scale-lightness`,
and `scale-saturation` make it easier to construct apis that manipulate these
color attributes.
* New color helpers: `adjust-lightness`, `adjust-saturation`, `scale-lightness`, and `scale-saturation`
make it easier to construct apis that manipulate these color attributes.
* The `elements-of-type()` helper now returns html5 elements when the display is `block`
and also will return only html5 elements for `elements-of-type(html5)`
* Compass now provides several helper functions related to trigonometry.
@ -212,68 +104,29 @@ specifications. [Upgrade guide](/help/tutorials/upgrading/antares/). Summary of
* `tan($number)` - Takes the tangent of the number.
* `pi()` - Returns the value of π.
If you provide a number with units of `deg` then it will return a unitless number
after converting to radians. Otherwise, it assumes the number is a radian length
measure and passes the units along to the result.
after converting to radians. Otherwise, it assumes the number is a radian length measure
and passes the units along to the result.
* `ie-hex-str($color)` returns a #AARRGGBB formatted color suitable for
passing to IE filters.
* Compass has added a number of new helper functions that begin with
`-compass`, helpers that begin with `-compass` should be considered "private"
and are not to be used.
* A third argument is now available on the `image-url()` helper. When `true` or
`false`, it will enable/disable the cache buster for a single image url. Or when
a string, will be the cache buster value that is used.
* A new function `if()` that allows you to switch on a value without using `@if`.
Usage: `if($truth-value, $value-if-true, $value-if-false)`.
* Compass has added a number of new helper functions for lists that begin with
`-compass`, helpers that begin with `-compass` should be considered "private" and
are not to be used by compass users. Sass 3.1 will have proper list support,
these are a work around until that time.
### Configuration Files
### Configuration
* Added a new configuration property to disable sass warnings: `disable_warnings`
* New infrastructure for supporting experimental css3 functions that are prefixed but have
the same syntax across all browsers. It is now possible to configure which browsers
support which experimental functions outside of the compass release cycle.
For details, see the [cross browser helpers](/reference/compass/helpers/cross-browser/).
* The options passed to the CLI can now be inspected within the compass configuration file.
The CLI options will still override the values set within the config file, but they might
inform other values. For instance `compass compile -e production` will have the environment
parameter preset to `:production` so that you can set other values in the project accordingly.
* Added the ability to piggy back on compass's watcher within your configuration file.
See the [configuration reference](/help/tutorials/configuration-reference/) for details.
* You can now register callbacks for compilation events so that you can take
custom actions when they occur. For instance, you might want to notify
Growl when a stylesheet compilation error occurs.
### New Compass Typography Module
* Some text-based mixins have been moved from utilities to the new
typography module. The old imports are deprecated now.
Affected modules: `utilities/links`, `utilities/lists`, and `utilities/text` and
their sub-modules.
* There is a new typography module:
[Vertical Rhythm](/reference/compass/typography/vertical_rhythm/).
This makes it easier to align the typography of your page to a common rhythm.
### Compass Layout Module
### Core Framework
* New layout mixins for absolute positioning: stretch, stretch-x, stretch-y
* There is a new mixin for creating
[pure-css grid backgrounds](/reference/compass/layout/grid_background/)
for verifying grid alignment for both fixed and fluid grids.
### Compass Utilities
* A new mixin `reset-float` is available in the [float module](/reference/compass/utilities/general/float/#mixin-reset-float) that makes it easier to reset the floats introduced from that module.
* A new module has been added to create readable text against an arbitrary background color based on the lightness of the background: [compass/utilities/color/contrast](/reference/compass/utilities/color/contrast/).
* The comma-delimited-list has been renamed to delimited-list and
generalized to accept a delimiter which defaults to a comma.
The old function continues to exist, but is deprecated.
### Command Line
* Add a `--time` option to the compile and watch commands. This will print out
the time spent compiling each sass file and a total at the end.
### Rails
* In rails 3, there's no need for an initializer. Instead we use a
Railtie. If you have one, please remove it.
Railstie.
* We now default to app/stylesheets for sass files and public/stylesheets for
css files -- though they can still be changed after installation or on the
command line during project initialization.
@ -281,20 +134,6 @@ specifications. [Upgrade guide](/help/tutorials/upgrading/antares/). Summary of
* In a rails3 environment the compass configuration can now be
changed without restarting the rails server process.
### Extensions
* Compass now allows ERB processing of non all non-binary filetypes during
extension installs.
* Extensions that are installed into `~/.compass/extensions` will be automatically
available to all your compass projects.
* Created an official API to add configuration options to compass.
[More information](/help/tutorials/extending/).
### Miscellaneous
* We have a new website design from [Brandon Mathis][brandon]
* Compass now officially supports the following ruby interpreters:
jruby, ruby 1.8.7, ruby 1.9.2, ree, and rubinius.
0.10.7 (UNRELEASED)
-------------------
@ -372,7 +211,7 @@ This will update your compass initializer file.
* New helper `opposite-position($position)` returns the opposite value of a position. [Documentation](http://compass-style.org/reference/compass/helpers/constants/)
* Allow horizontal lists to be floated to the right.
* Bugfix for inline-font-files helper.
* `+font-face` mixin no longer uses `$postscript` name or `$style` type variables, in favor of the Paul Irish [smiley bulletproof technique](http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/). Older declarations will still work, but will not apply the variables and will display a deprecation warning.
* `+font-face` mixin no longer uses `$postscript` name or `$style` type variables, in favor of the Paul Irish [smiley bulletproof technique](http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/). Older declarations will still work, but will not apply the variables and will display a deprecation warning.
* `+box-shadow` now supports `$spread` length and `$inset` declarations.
* The gradient mixins output official w3c declarations along with the `-webkit` and `-moz` prefixed versions. The official code is based on the w3c spec and is nearly ideantical to the mozilla version, although it is currently not supported by any browser.
* `+opacity` no longer uses any prefixed variations, as IE uses `filter` and
@ -1156,8 +995,6 @@ Almost definitely. Please let me know if you encounter any problems and I'll get
[der-rich]: http://github.com/der-rich
[adamstac]: http://github.com/adamstac
[ttilley]: http://github.com/ttilley
[inline-block-list]: http://compass-style.org/reference/compass/typography/lists/inline-block-list/
[inline-block-list]: http://compass-style.org/reference/compass/utilities/lists/inline-block-list/
[html5-reset]: http://compass-style.org/reference/compass/reset/utilities/#mixin-reset-html5
[blueprint_10_change]: https://github.com/chriseppstein/compass/compare/a05e1ee7c0a1e4c0f0595a8bb812daa47872e476...864780969d872a93b1fd3b4f39f29dd9f0c3fe75
[brandon]: http://brandonmathis.com/
[lemonade]: http://www.hagenburger.net/BLOG/Lemonade-CSS-Sprites-for-Sass-Compass.html
[blueprint_10_change]: https://github.com/chriseppstein/compass/compare/a05e1ee7c0a1e4c0f0595a8bb812daa47872e476...864780969d872a93b1fd3b4f39f29dd9f0c3fe75

View File

@ -1,14 +0,0 @@
---
layout: blog
---
%h1 Compass Blog
- for post in blog_posts_in_order.reverse
.post-snippet
%h2
- time = blog_date(post)
%span.timestamp= time.strftime("%Y/%m/%d")
%a{:href => post.rep_named(:default).path}= post[:title]
%p= post[:intro] || post[:description]

View File

@ -1,14 +0,0 @@
---
layout: blog
---
%h1 Compass Blog Archive
- for post in blog_posts_in_order.reverse
.post-snippet
%h2
- time = blog_date(post)
%span.timestamp= time.strftime("%Y/%m/%d")
%a{:href => post.rep_named(:default).path}= post[:title]
%p= post[:intro] || post[:description]

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
%feed(xmlns="http://www.w3.org/2005/Atom")
%title Compass Blog
%link(href="http://compass-style.org/blog/atom.xml" rel="self")
%link(href="http://compass-style.org/blog/")
%updated= Time.now.xmlschema
%id http://compass-style.org/blog/
%author
%name Compass Core Team
- for post in blog_posts_in_order.reverse
- full_url = "http://compass-style.org#{post.rep_named(:default).path}"
%entry
%title&= post[:title]
%link{:href=> full_url}
%updated= blog_date(post).localtime.xmlschema
%id= full_url[0..-2]
%content(type="html")
= post[:intro] || post[:description]

View File

@ -5,7 +5,7 @@
background-color: blue
border: 10px solid rgba(255, 0, 0, 0.5)
color: white
+text-shadow(darken(#00f, 50%) 2px 2px)
+text-shadow(darken(#00f, 50%), 2px, 2px)
padding: 3px
text-align: center
margin-bottom: 2em

View File

@ -9,7 +9,7 @@
position: top left
border: 10px solid rgba(255, 0, 0, 0.5)
color: white
+text-shadow(darken(#00f, 50%) 2px 2px)
+text-shadow(darken(#00f, 50%), 2px, 2px)
padding: 1em
text-align: center
margin-bottom: 2em
@ -18,4 +18,4 @@
#border-box
+background-origin(border-box)
#content-box
+background-origin(content-box)
+background-origin(content-box)

View File

@ -9,7 +9,7 @@
position: top left
border: 10px solid rgba(255, 0, 0, 0.5)
color: black
+text-shadow(#fff 1px 1px 4px)
+text-shadow(#fff, 1px, 1px, 4px)
padding: 1em
text-align: center
margin-bottom: 2em
@ -22,4 +22,4 @@
#percent
+background-size(50% 50%)
#absolute
+background-size(100px 25px)
+background-size(100px 25px)

View File

@ -1,4 +1,3 @@
.box-shadow-example
#box-shadow-default
#box-shadow-custom
#box-shadow-custom-multiple
#box-shadow-default.box-shadow-example
#box-shadow-custom.box-shadow-example

View File

@ -1,19 +1,15 @@
@import compass/css3
.box-shadow-example div
.box-shadow-example
width: 40px
height: 40px
background: #EEE
margin: 20px
float: left
// Default single box shadow
// Default box shadow
#box-shadow-default
+single-box-shadow
+box-shadow
// Box shadow with custom settings
#box-shadow-custom
+box-shadow(red 2px 2px 10px)
#box-shadow-custom-multiple
+box-shadow(rgba(blue, .4) 0 0 25px, rgba(green, .2) 0 0 3px 1px inset)
+box-shadow(red, 2px, 2px, 10px)

View File

@ -1,2 +1,3 @@
.example
%p The Quick Brown Fox jumped over the lazy dog.
%h1 The Quick Brown Fox
%p Jumped over the log.

View File

@ -4,4 +4,4 @@
.example
font-family: "Blooming Grove"
font-size: 1.5em
padding: 1em

View File

@ -1,8 +1,8 @@
---
title: Background Gradients
title: Gradient
description: css3 mixin for css gradients
framework: compass
stylesheet: compass/css3/_images.scss
stylesheet: compass/css3/_gradient.scss
example: true
---
= render "partials/example"

View File

@ -14,30 +14,30 @@
// This will yield a radial gradient with an apparent specular highlight
#radial-gradient
+background-image(radial-gradient(45px 45px, #0ff 10px, #1e90ff 30px))
+radial-gradient(color-stops(#00FFFF 10px, #1E90FF 30px), 45 45)
// This yields a linear gradient spanning from the upper left corner to the lower right corner
#linear-gradient
+background-image(linear-gradient(left top, #fff, #ddd))
+linear-gradient(color-stops(#fff, #ddd), left top)
// This yields a gradient starting at the top with #fff, ending in #aaa
#v-gradient
+background-image(linear-gradient(#fff, #aaa))
+linear-gradient(color-stops(#fff, #aaa))
// Same as above but with a #ccc at the halfway point
#v-gradient-2
+background-image(linear-gradient(#fff, #ccc, #aaa))
+linear-gradient(color-stops(#fff, #ccc, #aaa))
// Same as the first example but with #ccc at the 30% from the top, and #bbb at 70% from the top
#v-gradient-3
+background-image(linear-gradient(#fff, #ccc 30%, #bbb 70%, #aaa))
+linear-gradient(color-stops(#fff, #ccc 30%, #bbb 70%, #aaa))
// This yields a horizontal linear gradient spanning from left to right.
#h-gradient
+background-image(linear-gradient(left, #fff, #ddd))
+linear-gradient(color-stops(#fff, #ddd), left)
#svg-gradient
$experimental-support-for-svg: true
+background-image(linear-gradient(left, #2ac363, #cd8c14, #9c4cc2))
+linear-gradient(color-stops(#2AC363, #CD8C14, #9C4CC2), left)
width: 80px
height: 80px

View File

@ -1,3 +1,3 @@
%p
this is an
%span(id="inline-block") inline block
this is an
%span(id="inline-block") inline block

View File

@ -1,5 +1,9 @@
#opacity-10.opacity-example
#opacity-20.opacity-example
#opacity-50.opacity-example
#opaque.opacity-example
#transparent.opacity-example
#transparent.opacity-example

View File

@ -1,3 +1,8 @@
%div this text has no shadow
.has-single-shadow this text has a shadow
.has-custom-shadow this text has a custom shadow
#p
this text has no shadow
#p
%span(class="has-shadow") this text has a shadow
#p
%span(class="has-custom-shadow") this text has a custom shadow

View File

@ -1,13 +1,7 @@
$default-text-shadow-color: rgba(red, .6)
$default-text-shadow-blur: 3px
$default-text-shadow-v-offset: 1px
@import compass/css3
// Uses defaults set before the import above
.has-single-shadow
+single-text-shadow
.has-shadow
+text-shadow
// Can output up to ten text shadows
.has-custom-shadow
+text-shadow(rgba(blue, .2) 1px 1px 0, rgba(blue, .2) 2px 2px 0, rgba(blue, .2) 3px 3px 0)
+text-shadow(red, 3px, 3px, 0)

View File

@ -1,30 +1,17 @@
.example
%ul
%li.stretch-container
#stretch-full
This element is fully stretched.
%li.stretch-container
#stretch-offset
This element is stretched with a 1em offset on each side.
%li.stretch-container
#stretch-x
This
%br
element
%br
is
%br
stretched
%br
horizontally.
%li.stretch-container
#stretch-y
This
%br
element
%br
is
%br
stretched
%br
vertically.
Click on the the following links to make them stretch.
Click <a href="#">here</a> to dismiss it.
#stretch-container
%ul
%li
%a#stretch-full(href="#stretch-full")
This element is fully stretched.
%li
%a#stretch-offset(href="#stretch-offset")
This element is stretched with a 1em offset on each side.
%li
%a#stretch-x(href="#stretch-x")
This element is stretched horizontally.
%li
%a#stretch-y(href="#stretch-y")
This element is stretched vertically.

View File

@ -1,32 +1,29 @@
@import "compass/layout/stretching"
@import "compass/utilities"
@import "compass/css3"
.stretch-container
#stretch-container
border: 1px solid #999
width: 200px
height: 200px
min-width: 200px
min-height: 200px
position: relative
+inline-block
.stretched
$stretch-color: #4C6B99
border: 3px solid $stretch-color
+border-radius(8px)
display: block
background-color: darken($stretch-color, 30%)
color: white
text-align: center
vertical-align: middle
padding: 0.5em
#stretch-full
padding: 2em 0
#stretch-full:target
@extend .stretched
+stretch
#stretch-offset
#stretch-offset:target
@extend .stretched
+stretch(1em, 1em, 1em, 1em)
#stretch-x
#stretch-x:target
@extend .stretched
+stretch-x
#stretch-y
#stretch-y:target
@extend .stretched
+stretch-y

View File

@ -1,8 +0,0 @@
---
title: Compass Contrast Color Example
description: Make text readable
framework: compass
stylesheet: compass/utilities/color/_contrast.scss
example: true
---
= render "partials/example"

View File

@ -1,3 +0,0 @@
.example
%p.dark This is a paragraph with a <em>dark</em> background and <em>light</em> text.
%p.light This is a paragraph with a <em>light</em> background and <em>dark</em> text.

View File

@ -1,11 +0,0 @@
$contrasted-dark-default: #333
$contrasted-light-default: #e7e7e7
@import "compass/utilities/color/contrast"
.example
p.dark
+contrasted(#5F1210)
p.light
+contrasted(#C82523)

View File

@ -152,7 +152,7 @@ crumb: Plugins and frameworks
Sass Libraries
%p
Libraries are simply Sass stylesheets or
%a{ :href => "http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#partials" }
%a{ :href => "http://sass-lang.com/yardoc/file.SASS_REFERENCE.html#partials" }
partials
\.
%ul

View File

@ -1,33 +0,0 @@
---
title: Get involved with the Compass community
crumb: Get Involved
classnames:
- get-involved
layout: default
---
%h1 Get Involved With Compass
:markdown
Many [wonderful people](https://github.com/chriseppstein/compass/contributors) have helped to make Compass awesome.
Here are some ways you can get involved with the Compass community.
## Share Sweet Stylesheets
So you've written some smashing Sass and you want to share them with others. Here are some ways you can.
1. [**Contribute to Compass**](/help/tutorials/contributing).
2. [**Develop a Compass Extension**](/help/tutorials/extensions).
3. [**Contribute to Sass Recipies**](http://chriseppstein.github.com/sass-recipes/).
4. Publish your code somewhere and email a link to the [mailing list](http://groups.google.com/group/compass-users).
## Help Others
Join the [mailing list](http://groups.google.com/group/compass-users) and help answer questions and share from your experience. If you're
writing a blog post about Sass or Compass send a link to the mailing list and we'll help you spread the word.
## Give Financially
Compass is charityware. You can use it as much as you like, but we encourage you to make a donation to help the [UMDF](http://umdf.org/)
find a cure for mitochondrial disease. If you can, please [donate here](http://umdf.org/compass/). Thanks!

View File

@ -3,59 +3,65 @@ title: Compass Help
crumb: Help
classnames:
- help
- getting-started
layout: site
layout: main
---
%article
%h1 Getting started with Compass
%h1#logo Compass
:markdown
Compass is an open-source CSS authoring framework which uses the [Sass stylesheet
language](http://sass-lang.com) to make writing stylesheets powerful and easy. If you're
not familiar with Sass, you can take a look at [these simple tutorials](http://sass-lang.com/tutorial.html)
to get caught up.
<object width="700" height="438"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11671458&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11671458&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="700" height="438"></embed></object><p><a href="http://vimeo.com/11671458">An introduction to Compass</a> from <a href="http://vimeo.com/ltackett">Lorin Tackett</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
:markdown
## Installing Compass
Compass is a tool that runs on the command line. On any system with ruby installed, open your terminal and type:
Compass is a stylesheet authoring tool that uses the Sass stylesheet
language to make your stylesheets smaller and your web site easier to
maintain. Compass provides ports of the best of breed css frameworks
that you can use without forcing you to use their presentational class
names. Its a new way of thinking about stylesheets that must be seen
in action!
<object width="700" height="438"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11671458&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11671458&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="700" height="438"></embed></object><p><a href="http://vimeo.com/11671458">An introduction to Compass</a> from <a href="http://vimeo.com/ltackett">Lorin Tackett</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
## Installing
Compass is a tool that runs on the command line.
On any system with ruby installed, open your terminal and type:
gem install compass
This will install Compass and Sass too. If you want to verify that compass is installed:
This will install Compass and Sass too. Verify that compass is installed:
compass version
## Manual Setup
compass create /path/to/project
cd /path/to/project
compass watch
Now you can edit the `*.scss` files in the `sass` directory with the text editor of your choice.
the `compass watch` process will automatically compile your them into css in the stylesheets directory whenever they change.
The files in the `sass` directory are yours and you can change them, delete them, add new ones, etc.
## Manual setup using the Blueprint Framework
When starting a project from scratch:
compass create /path/to/project --using blueprint
When installing into an existing project:
cd /path/to/project
compass install blueprint
To read more about using the Blueprint framework with Compass, [see the docs](/reference/blueprint/)
## Rails Setup
## Creating a stand-alone project
compass create myproject
mate myproject
compass watch myproject
If you don't have TextMate, substitute the `mate myproject` part with the text
editor of your choice. Edit the `*.scss` files in the `sass` directory.
These files are yours and you can change them as you see fit, delete them,
make new ones, etc. Compass will automatically compile them into css in the
`stylesheets` directory whenever they change.
## Rails Support
compass init rails /path/to/myrailsproject
Using Blueprint with Rails:
compass init rails /path/to/myrailsproject --using blueprint
## Installing a framework
When creating a new project:
compass create myproject --using blueprint/basic
When installing into an existing project:
cd myproject
compass install blueprint/semantic
With Rails:
compass init rails /path/to/myrailsproject --using blueprint/semantic
## Bugs Reports, Discussions, Support
Send a note to the [mailing list](http://groups.google.com/group/compass-users)
and/or [File a bug](http://github.com/chriseppstein/compass/issues).

View File

@ -7,15 +7,6 @@ layout: tutorial
---
%h1 Compass Tutorials
:markdown
These tutorials are still a work-in-progress, if you have questions that aren't covered here let us know on the [Compass users mailing list](http://groups.google.com/group/compass-users) where there are lots of
friendly Compass users standing by to help you out.
## New to Compass?
If you're new to Compass, you might be interested in [best practices](/help/tutorials/best_practices/), the [configuration reference](/help/tutorials/configuration-reference/), [configurable variables](/help/tutorials/configurable-variables/),
or the [command line documentation](/help/tutorials/command-line/).
## Want to contribute?
If you've been using Compass for a while and you'd like to give back, check out the tutorials on [contributing](/help/tutorials/contributing/) and [creating extensions](/help/tutorials/extensions/).
%p
The compass tutorials are still a Work-in-progress, but
what we have is available for you to peruse.

View File

@ -5,28 +5,22 @@ layout: tutorial
classnames:
- tutorial
---
# Best Practices
Here are some best practices for making your projects easier to build and
simpler to maintain.
## Use a Base stylesheet file
### Use a Base stylesheet file
Create a `_base.scss` [partial][1] to initialize your stylesheets with common
variables and ([often][2]) the framework utilities you plan to use:
### _base.scss
#### _base.scss
$blueprint-grid-columns : 24;
$blueprint-grid-width : 30px;
$blueprint-grid-margin : 10px;
$font-color : #333;
@import "compass/reset";
@import "compass/utilities";
@import "blueprint";
// etc.
The `_base.scss` file is also a great place to keep your own custom mixins, so
@ -34,14 +28,14 @@ theyre available to any stylesheet that includes it.
Then you can include this file in all other stylesheets:
### application.scss
#### application.scss
@import "base";
#wrapper {
@include container;
}
// etc.
It is important to define any compass/framework constants that you want to override
@ -50,7 +44,7 @@ Constants][3] , for an example of where the number of grid columns for blueprint
is overridden/set to 32. Note that you can refer to `_base.scss` without the
leading underscore and without the extension, since it is a [partial][1].
## Write your own Custom Mixins
### Write your own Custom Mixins
Mixins let you insert any number of style rules into a selector (and its
descendants!) with a single line. This is a great way to [DRY][4] up your
@ -59,7 +53,7 @@ also make your stylesheet look like self-documented source code -- Its much
more obvious to read something like `@include round-corners(6px, #f00)` than the whole
list of rules which define that appearance.
## Presentation-free Markup
#### Presentation-free Markup
CSS was created to extract the presentational concerns of a website from the
webpage content. Following this best practice theoretically results in a website
@ -93,7 +87,7 @@ Instead, ask yourself "what non-presentational quality do these pages share in
common?" In this case, they are all pages of content, so it's better to apply a
body class of "content" to these pages and then style against that class.
## Nest selectors, but not too much.
#### Nest selectors, but not too much.
It's easier to style a webpage from scratch or starting from some common base
point for your application than it is to contend with unwanted styles bleeding

View File

@ -22,8 +22,8 @@ classnames:
Once you get Compass installed, you are ready to create a new
blueprint project. In your terminal enter the following commands:
%pre.shell
%code
%code.shell
%pre
%span.prompt<> $&nbsp;
compass create my_project --using blueprint/semantic
%br>
@ -46,16 +46,16 @@ classnames:
If you want to get started with the Basic Template because it feels
more familiar to you, that's fine. It's very easy to transition to
<a href="#semantic-blueprint">semantic selectors</a> when you're ready.
%h2 Getting Started with Basic Blueprint
%p
Once you get Compass installed, you are ready to create a new
blueprint project. In your terminal enter the following commands:
%pre.shell
%code
%code.shell
%pre
%span.prompt<> $&nbsp;
compass create my_project --using blueprint/basic

View File

@ -9,7 +9,7 @@ classnames:
The compass configuration file is a ruby file, which means that we can do some
clever things if we want to. But dont let it frighten you; its really quite
easy to set up your project.
<a name="basic-format"></a>
## Basic format
Most configuration properties are a simple assignment to a configuration property.
@ -35,12 +35,11 @@ There are two kinds of composite values:
It is a comma delimited list of associations surrounded by curly brackets.
An association is two values separated by `=>`. E.g. `{:foo => "aaa", :bar => "zzz"}`
<a name="comments"></a>
## Comments
Use the hash sign `#` to comment out everything from the hash sign to the end
of the line.
<a name="import-note-windows-users"></a>
## Import Note for Windows Users
The backslash character (`\`) is a special character in a string delimited by
@ -48,7 +47,6 @@ double quotes (`"`). If you are working with folders in your paths, you should
either use **single quotes** to delimit your strings or escape your backslash
by doubling it like `"some\\path"`.
<a name="loading-compass-plugins"></a>
## Loading Compass Plugins
Compass relies on the ruby `require` mechanism to load other libraries of code.
@ -61,28 +59,11 @@ Example:
require 'ninesixty'
require 'susy'
<a name="overriding-configuration-settings"></a>
## Overriding Configuration Settings
When using the compass command line, configuration options that you set on the
command line will override the corresponding settings in your configuration file.
<a name="inspecting-configuration-settings-passed-via-the-command-line"></a>
## Inspecting Configuration Settings passed via the Command Line
When using the compass command line, configuration options that you set on the
command line can be inspected within the configuration file. For instance,
if you set the environment:
$ compass compile -e production --force
Then you can inspect the value like so:
output_style = (environment == :production) ? :compressed : :expanded
Values that are not set on the CLI will be `nil` even though they will have a default value
later on.
<a name="configuration-properties"></a>
## Configuration Properties
<table>
@ -221,13 +202,13 @@ later on.
approach.
</td>
</tr>
<tr>
<td style="vertical-align:top;"><code>disable_warnings</code> </td>
<td style="vertical-align:top;">Boolean </td>
<tr>
<td style="vertical-align:top;"><code>disable_warnings</code> </td>
<td style="vertical-align:top;">Boolean </td>
<td style="vertical-align:top;">
Set this to true to silence deprecation warnings.
</td>
</tr>
</td>
</tr>
<tr>
<td style="vertical-align:top;"><code>sass_options</code> </td>
<td style="vertical-align:top;">Hash </td>
@ -275,21 +256,8 @@ later on.
<td style="vertical-align:top;">String </td>
<td style="vertical-align:top;">The relative http path to font files on the web server.</td>
</tr>
<tr>
<td style="vertical-align:top;"><code>sprite_engine</code> </td>
<td style="vertical-align:top;">Symbol </td>
<td style="vertical-align:top;">Defaults to <code>:chunky_png</code></td>
</tr>
<tr>
<td style="vertical-align:top;"><code>chunky_png_options</code></td>
<td style="vertical-align:top;">Hash </td>
<td style="vertical-align:top;">
Defaults to <code>{:compression => Zlib::BEST_COMPRESSION}</code>. See the chunky_png <a href='https://github.com/wvanbergen/chunky_png/wiki/Constraints' _target='blank'>wiki</a> for more information
</td>
</tr>
</table>
<a name="configuration-functions"></a>
## Configuration Functions
**`add_import_path`** Call this function to add a path to the list of sass import
@ -314,14 +282,10 @@ the asset host configuration is ignored.
---
<a name="asset-cache-buster"></a>
**`asset_cache_buster`** Pass this function a block of code that defines the
cache buster strategy to be used. The block must return nil, a string or a hash.
If the returned value is a hash the values of :path and/or :query is used to generate
a cache busted path to the asset. If a string value is returned, it is added as a query string.
The returned values for query strings must not include the starting `?`.
The block will be passed the root-relative url of the asset.
cache buster strategy to be used. The block must return nil or a string that can
be appended to a url as a query parameter. The returned string must not include
the starting `?`. The block will be passed the root-relative url of the asset.
If the block accepts two arguments, it will also be passed a path
that points to the asset on disk — which may or may not exist.
@ -335,65 +299,6 @@ that points to the asset on disk — which may or may not exist.
end
end
Busting the cache via path:
asset_cache_buster do |path, real_path|
if File.exists?(real_path)
pathname = Pathname.new(path)
modified_time = File.mtime(real_path).strftime("%s")
new_path = "%s/%s-%s%s" % [pathname.dirname, pathname.basename(pathname.extname), modified_time, pathname.extname]
{:path => new_path, :query => nil}
end
end
To disable the asset cache buster:
asset_cache_buster :none
---
**`watch`** -- React to changes to arbitrary files within your project. Can be invoked
more than once. Example:
watch "images/**/*" do |project_dir, relative_path|
if File.exists?(File.join(project_dir, relative_path))
puts "File size of #{relative_path} is: #{File.size(File.join(project_dir, relative_path))}"
end
end
This code will be called if the file is added, updated, or removed. Be sure to check for existence
to avoid crashing the watcher in the case where the file has been removed.
<a name="callbacks"></a>
## Callbacks
**`on_sprite_saved`** -- Pass this function a block of code that gets executed after a sprite is saved to disk. The block will be passed the filename. Can be invoked more then once. Example:
on_sprite_saved do |filename|
post_process(filename) if File.exists?(filename)
end
**`on_sprite_generated`** -- Pass this function a block of code that gets executed after a sprite is generated but before its saved to disk. The block will be passed an instance of `ChunkyPNG::Image`. Can be invoked more then once. Example:
on_sprite_generated do |sprite_data|
sprite_data.metadata['Caption'] = "This Image is &copy; My Company 2011"
end
**`on_stylesheet_saved`** -- Pass this function a block of code that gets executed after a stylesheet is processed. The block will be passed the filename. Can be invoked more then once. Example:
on_stylesheet_saved do |filename|
Growl.notify {
self.message "#{File.basename(filename)} updated!"
self.icon = '/path/to/success.jpg'
}
end
**`on_stylesheet_error`** -- Pass this function a block of code that gets executed if a stylesheet has an error while processing. The block will be passed the filename and the error message. Can be invoked more then once. Example:
on_stylesheet_error do |filename, message|
Growl.notify {
self.message = "#{File.basename(filename)}: #{message}"
self.icon = '/path/to/fail.jpg'
sticky!
}
end

View File

@ -34,10 +34,10 @@ Here's some general information about the project you might find useful along th
* [Submitting Patches](#patches)
* [Project Structure](#project-structure)
<!-- * Project Architecture
* [Command Line](/help/tutorials/command-line)
* [Extensions](/help/tutorials/extensions)
* [Configuration](help/tutorials/configuration-reference) -->
* [Project Architecture](#project-architecture)
* [Command Line](#cli-architecture)
* [Extensions](#extensions-architecture)
* [Configuration](#configuration-architecture)
* [General Philosophy](#project-philosophy)
* [Stylesheet Conventions](#stylesheet-conventions)
* [Miscellaneous Stuff](#faq)
@ -78,7 +78,7 @@ This helps us better understand the patch.
id in your commit message like so:
Fixed the display of the fizzlebuzz in IE6.
Closes GH-123.
**Step 6**: Verify the fix in as many browsers as you can as well as against your own
@ -255,7 +255,7 @@ Getting recent changes from the main repo:
to your `$PATH`, or refer to it directly.
2. Build and install a gem:
1. Edit VERSION.yml and add a build indicator like so (**Do not commit this change**):
---
:major: 0
:minor: 10
@ -267,30 +267,30 @@ Getting recent changes from the main repo:
what that means, you probably need to add `sudo` to the front.
3. In a [bundled][bundler] environment, you can configure your gem to use compass
while you work on it like so:
gem 'compass', :path => "/Users/myusername/some/path/to/compass"
Bundler will perform some sort of charm on ruby to make it work.
4. Configuring ruby directly. If you're a ruby pro, you probably don't need to be
told that you can set compass on the load path like so:
export RUBYLIB=/Users/myusername/some/path/to/compass/lib
<h3 id="running-tests">Running Tests</h3>
1. Install development dependencies:
bundle install --binstubs devbin
2. Running core library and stylesheet tests:
rake run_tests
3. Running behavior tests
./devbin/cucumber
If stylesheet tests fail, the output of the test project is captured in
If stylesheet tests fail, the output of the test project is captured in
`test/fixtures/stylesheets/<project>/saved/` and the error message will report where
the error was. Here's an example:
@ -333,4 +333,4 @@ a couple of ways you can react:
[issues]: http://github.com/chriseppstein/compass/issues
[documentation]: http://github.com/chriseppstein/compass/blob/stable/doc-src/README.markdown
[bundler]: http://gembundler.com/
[extensions]: /help/tutorials/extensions/
[extensions]: /help/tutorials/extensions/

View File

@ -1,74 +0,0 @@
---
title: Extending Compass
layout: tutorial
crumb: Extending Compass
classnames:
- tutorial
---
# Extending Compass
## Sprite engine
The sprite engine is the work horse of sprite generation it's the interface for assembling and writing the image file to disk.
### Requirements
A sprite engine requires two methods `construct_sprite`, and `save(filename)`
Once inside the class you have access to `images` which is a collection of [Compass::SassExtensions::Sprites::Image](http://rdoc.info/github/chriseppstein/compass/dda7c9/Compass/SassExtensions/Sprites/Image)
### Configuration
To enable your sprite engine from the config file set
sprite_engine = :<engine name>
The example below will load `Compass::SassExtension::Sprites::ChunkyPngEngine.new(width, height, images)`
sprite_engine = :chunky_png
### Class Definition
module Compass
module SassExtensions
module Sprites
class ChunkyPngEngine < Compass::SassExtensions::Sprites::Engine
def construct_sprite
#do something
end
def save(filename)
#save file
end
end
end
end
end
<a name="adding-configuration-properties"></a>
## Adding Configuration Properties to Compass
To add a new configuration property to Compass:
Compass::Configuration.add_configuration_property(:foobar, "this is a foobar") do
if environment == :production
"foo"
else
"bar"
end
end
This will do several things:
1. make it possible for users to set the `foobar` configuration property in their
configuration file.
2. Ruby code can read and write the `foobar` attribute from any configuration object.
3. It will add the comment `# this is a foobar` above the property in the configuration file.
A comment is not required, you can simply omit this argument if you like.
4. The block of code provided allows you to assign a sensible default value according to other
settings in the configuration or by using arbitrary code to determine what the value should
be. For instance it could read from another configuration file or it could change based on
the user's operating system.

View File

@ -71,10 +71,6 @@ you can use compass to generate an extension with the following command:
This will create a few basic files and folders to get you started.
If you prefer to use the scss syntax for your extension run the following command instead:
compass create my_extension --using compass/extension -x scss
Advanced Layout Options
-----------------------
@ -92,7 +88,6 @@ The compass_init.rb file takes priority, so that extensions that want to work
differently as compass extensions than they do as normal ruby libraries,
have a way of targeting compass.
<a name="registration"></a>
### Stylesheet and Template Locations
If you'd like to store your stylesheets and/or templates in a non-standard location within your extension,
@ -110,10 +105,6 @@ template directories are not at the top level, you can just do this instead:
base_directory = File.join(File.dirname(__FILE__), '..', 'compass')
Compass::Frameworks.register('my_extension', :path => base_directory)
### Adding Configuration Options to Compass
For details on how to add new configuration options to compass [read this](/help/tutorials/extending/#adding-configuration-properties).
Conventions to Follow
---------------------
@ -250,13 +241,9 @@ design and to get the user started off with working product.
Distributing Extensions as Ruby Gems
------------------------------------
Rubygems is a flexible, easy-to-use system for distributing ruby software.
If you have any questions about rubygems, I suggest that you start looking
for help [here](http://help.rubygems.org/).
The big advantages of using rubygems to distribute your extension is that
it allows your extension to be a dependency for other projects and that each
install is versioned, which makes supporting your extension easier.
How to build and distribute ruby gems is outside the scope of this document.
But delivering an extension as a ruby gem makes it easier to manage software
dependencies, install, and uninstall.
Tips for Developing Extensions
------------------------------
@ -284,17 +271,9 @@ Before you begin, please ensure you have gem version `1.3.6` or greater. `gem -v
1. Define your gemspec file at the top of your extension. Here's [an example of
one](http://github.com/ericam/compass-css-lightbox/blob/master/css-lightbox.gemspec).
The gemspec should have the same name as your gem.
2. Register your framework by adding `lib/my_extension.rb` and registering it:
require 'compass'
extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
Compass::Frameworks.register('my_extension', :path => extension_path)
This is how compass knows where to find your extension's files when a user requires it.
For more options, go back up and read about [Stylesheet and Template Locations](#registration).
3. Build a gem: `gem build my_extension.gemspec`. This will build your gem file and
2. Build a gem: `gem build my_extension.gemspec`. This will build your gem file and
add the current version to the name. E.g. `my_extension-0.0.1.gem`
4. Test your gem by installing it locally: `gem install my_extension-0.0.1.gem`
3. Test your gem by installing it locally: `gem install my_extension-0.0.1.gem`
### Releasing a Gem

View File

@ -1,83 +0,0 @@
---
title: Application Integration
layout: tutorial
crumb: Application Integration
classnames:
- tutorial
---
# Application Integration
## Ruby on Rails
### Rails 3
compass init rails /path/to/myrailsproject
### Rails 2.3
rake rails:template LOCATION=http://compass-style.org/rails/installer
## Sinatra
require 'sinatra'
require 'haml'
require 'sass'
require 'compass'
configure do
Compass.configuration do |config|
config.project_path = File.dirname(__FILE__)
config.sass_dir = 'views'
end
set :haml, { :format => :html5 }
set :sass, Compass.sass_engine_options
end
get '/screen.css' do
content_type 'text/css', :charset => 'utf-8'
sass :screen
end
If you keep your stylesheets in “views/stylesheets/” directory instead of just “views/”, remember to update sass_dir configuration accordingly.
Check out this [sample compass-sinatra project](http://github.com/chriseppstein/compass-sinatra) to get up and running in no time!
[Sinatra Bootstrap](http://github.com/adamstac/sinatra-bootstrap) - a base Sinatra project with support for Haml, Sass, Compass, jQuery and more.
## Nanoc3
### Minimal integration: just drop it in
One simple route for lightweight integration is to simply install compass inside nanoc. Then edit config.rb to point to the stylesheets you want to use. This means you have to have the Compass watch command running in a separate window from the Nanoc compilation process.
Example project that works this way: http://github.com/unthinkingly/unthinkingly-blog
### More formal integration
At the top of the Nanoc Rules file, load the Compass configuration, like this:
require 'compass'
Compass.add_project_configuration 'compass/config.rb' # when using Compass 0.10
Compass.configuration.parse 'compass/config.rb' # when using Compass < 0.10
Your Compass configuration file (in compass/config.rb) could look like this (you may need to change the path to some directories depending on your directory structure):
http_path = "/"
project_path = "."
css_dir = "output/assets/style"
sass_dir = "content/assets/style"
images_dir = "output/assets/images"
# when using SCSS:
sass_options = {
:syntax => :scss
}
To filter the stylesheets using Sass and Compass, call the sass filter with Sass engine options taken from Compass, like this:
filter :sass, Compass.sass_engine_options
### Nanoc Projects using the formal approach
* [nanoc Bootstrap](http://github.com/adamstac/nanoc-bootstrap) - a base nanoc project with support for Haml, Sass, Compass, jQuery and more.
* [nanoc & Compass Example Project](http://github.com/ddfreyne/nanoc-bootstrap-compass)

View File

@ -5,224 +5,4 @@ crumb: Spriting
classnames:
- tutorial
---
# Spriting with Compass
Spriting has never been easier with Compass. You place the sprite images in a folder,
import them into your stylesheet, and then you can use the sprite in your selectors in one
of several convenient ways.
## Setup
For this tutorial, let's imagine that in your project's image folder there are four icons:
* `images/icon/new.png`
* `images/icon/edit.png`
* `images/icon/save.png`
* `images/icon/delete.png`
Each is an icon that is 32px square.
## Basic Usage
The simplest way to use these icon sprites is to let compass give you a class for each sprite:
@import "icon/*.png";
@include all-icon-sprites;
And you'll get the following CSS output:
.icon-sprite,
.icon-delete,
.icon-edit,
.icon-new,
.icon-save { background: url('/images/icon-s34fe0604ab.png') no-repeat; }
.icon-delete { background-position: 0 0; }
.icon-edit { background-position: 0 -32px; }
.icon-new { background-position: 0 -64px; }
.icon-save { background-position: 0 -96px; }
You can now apply the `icon-XXX` classes to your markup as needed.
Let's go over what happened there. The import statement told compass to [generate a
stylesheet that is customized for your sprites](https://gist.github.com/729507). This
stylesheet is [magic](#magic-imports), it is not written to disk, and it can be customized
by setting configuration variables before you import it. See the section below on
[Customization Options](#customization-options). The goal of this stylesheet is to provide a
simple naming convention for your sprites so that you they are easy to remember and use. You
should never have to care what the is name of the generated sprite map, nor where a sprite
is located within it.
<a name="selector-control"></a>
## Selector Control
If you want control over what selectors are generated, it is easy to do. In this example,
this is done by using the magic `icon-sprite` mixin. Note that the mixin's name is dependent
on the name of the folder in which you've placed your icons.
@import "icon/*.png";
.actions {
.new { @include icon-sprite(new); }
.edit { @include icon-sprite(edit); }
.save { @include icon-sprite(save); }
.delete { @include icon-sprite(delete); }
}
And your stylesheet will compile to:
.icon-sprite,
.actions .new,
.actions .edit,
.actions .save,
.actions .delete { background: url('/images/icon-s34fe0604ab.png') no-repeat; }
.actions .new { background-position: 0 -64px; }
.actions .edit { background-position: 0 -32px; }
.actions .save { background-position: 0 -96px; }
.actions .delete { background-position: 0 0; }
<a name="magic-imports"></a>
## Magic Imports
As noted above, compass will magically create sprite stylesheets for you. Some people like
magic, some people are scared by it, and others are curious about how the magic works. If
you would like to avoid the magic, you can use compass to generate an import for you. On the
command line:
compass sprite "images/icon/*.png"
This will create file using your project's preferred syntax, or you can specify the
output filename using the `-f` option and the syntax will be inferred from the extension.
If you do this, you'll need to remember to regenerate the import whenever you rename, add,
or remove sprites.
Using the magic imports is recommended for most situations. But there are times when you
might want to avoid it. For instance, if your sprite map has more than about 20 to 30
sprites, you may find that hand crafting the import will speed up compilation times. See
the section on [performance considerations](#performance) for more details.
<a name="magic-selectors"></a>
## Magic Selectors
If you want to add selectors for your sprites, it's easy todo by adding `_active` `_target` or `_hover` to the file name, In the example below we have a sprite directory that looks like:
* `selectors/ten-by-ten.png`
* `selectors/ten-by-ten_hover.png`
* `selectors/ten-by-ten_active.png`
* `selectors/ten-by-ten_target.png`
Now in our sass file we add:
@import "selectors/*.png";
a {
@include selectors-sprite(ten-by-ten)
}
And your stylesheet will compile to:
.selectors-sprite, a {
background: url('/selectors-sedfef809e2.png') no-repeat;
}
a {
background-position: 0 0;
}
a:hover, a.ten-by-ten_hover, a.ten-by-ten-hover {
background-position: 0 -20px;
}
a:target, a.ten-by-ten_target, a.ten-by-ten-target {
background-position: 0 -30px;
}
a:active, a.ten-by-ten_active, a.ten-by-ten-active {
background-position: 0 -10px;
}
Alternatively you can use the `@include all-selectors-sprites;` after the import and get the following output:
.selectors-sprite, .selectors-ten-by-ten {
background: url('/selectors-sedfef809e2.png') no-repeat;
}
.selectors-ten-by-ten {
background-position: 0 0;
}
.selectors-ten-by-ten:hover, .selectors-ten-by-ten.ten-by-ten_hover, .selectors-ten-by-ten.ten-by-ten-hover {
background-position: 0 -20px;
}
.selectors-ten-by-ten:target, .selectors-ten-by-ten.ten-by-ten_target, .selectors-ten-by-ten.ten-by-ten-target {
background-position: 0 -30px;
}
.selectors-ten-by-ten:active, .selectors-ten-by-ten.ten-by-ten_active, .selectors-ten-by-ten.ten-by-ten-active {
background-position: 0 -10px;
}
<a name="customization-options"></a>
## Customization Options
### Options per Sprite Map
When constructing the sprite map, the entire sprite map and it's associated stylesheet
can be configured in the following ways. Each option is specified by setting a [configuration
variable](/help/tutorials/configurable-variables/) before importing the sprite. The variables
are named according to the name of the folder containing the sprites. In the examples below
the sprites were contained within a folder called `icon`.
* `$<map>-spacing` -- The amount of transparent space, in pixels, around each sprite.
Defaults to `0px`. E.g. `$icon-spacing: 20px`.
* `$<map>-repeat` -- Wether or not each sprite should repeat along the x axis. Defaults
to `no-repeat`. E.g. `$icon-repeat: repeat-x`.
* `$<map>-position` -- The position of the sprite in the sprite map along the x-axis. Can
be specified in pixels or percentage of the sprite map's width. `100%` would cause the
sprite to be on the right-hand side of the sprite map. Defaults to `0px`.
E.g. `$icon-position: 100%`.
* `$<map>-sprite-dimensions` -- Whether or not the dimensions of the sprite should be
included in each sprite's CSS output. Can be `true` or `false`. Defaults to `false`.
* `$<map>-sprite-base-class` -- The base class for these sprites. Defaults to `.<map>-sprite`.
E.g. `$icon-sprite-base-class: ".action-icon"`
* `$<map>-clean-up` -- Whether or not to removed the old sprite file when a new one is created. Defaults to true
### Options per Sprite
When constructing the sprite map, each sprite can be configured in the following ways:
* `$<map>-<sprite>-spacing` -- The amount of transparent space, in pixels, around the sprite. Defaults
to the sprite map's spacing which defaults to `0px`. E.g. `$icon-new-spacing: 20px`.
* `$<map>-<sprite>-repeat` -- Wether or not the sprite should repeat along the x axis. Defaults
to the sprite map's repeat which defaults to `no-repeat`. E.g. `$icon-new-repeat: repeat-x`.
* `$<map>-<sprite>-position` -- The position of the sprite in the sprite map along the x-axis. Can
be specified in pixels or percentage of the sprite map's width. `100%` would cause the
sprite to be on the right-hand side of the sprite map. Defaults to the sprite map's
position value which defaults to `0px`. E.g. `$icon-new-position: 100%`.
<a name="performance"></a>
## Performance Considerations
Reading PNG files and assembling new images and saving them to disk might have a non-trivial
impact to your stylesheet compilation times. Especially for the first compile. Please keep
this in mind.
## Large numbers of sprites
The magic stylesheet can get very large when there are large numbers of sprites. 50 sprites
will cause there to be over 150 variables created and then passed into the
`sprite-map` [function](/reference/compass/helpers/sprites/#sprite-map).
You may find that customizing the sprite function call to only pass those values that you
are overriding will provide a small performance boost.
See a [concrete example](https://gist.github.com/747970).
## Oily PNG
Compass generates PNG files using a pure-ruby library called
[`chunky_png`](https://github.com/wvanbergen/chunky_png). This library can be made faster by
installing a simple C extension called [`oily_png`](https://github.com/wvanbergen/oily_png).
Add it to your `Gemfile` if you have one in your project:
gem 'oily_png'
Or install the Rubygem:
gem install oily_png
Compass will automatically detect its presence.
# Spriting with Compass

View File

@ -76,22 +76,6 @@ Or for sass files:
=linear-gradient($color-stops, $start: top, $image: false)
+background-image($image, linear-gradient($start, $color-stops))
<a name="typography"></a>
## Typography Module
With the addition of vertical-rhythms to the compass core, we have created a new
[typography module][typography_module], and moved several items that were formerly
listed as "utilities" into it. The moved modules are "links", "lists" and "text".
These will all remain part of the basic compass include, but if you were including
them individually in your stylesheets, you will need to adjust the include paths
as follows:
* "compass/utilities/links" becomes "compass/typography/links"
* "compass/utilities/lists" becomes "compass/typography/lists"
* "compass/utilities/text" becomes "compass/typography/text"
[new_transform]: /reference/compass/css3/transform/
[old_transform]: /reference/compass/css3/transform-legacy/
[image_stylesheet]: /reference/compass/css3/images/
[typography_module]: /reference/compass/typography/
[image_stylesheet]: /reference/compass/css3/images/

View File

@ -22,7 +22,7 @@ what changed to your stylesheets:
1. $ cd my_compass_project
2. $ compass compile --force
3. $ cp -r stylesheets stylesheets.backup
4. $ gem install compass # you might need to type sudo first if you're on mac or linux.
4. $ gem install compass --pre # you might need to type sudo first if you're on mac or linux.
5. $ compass compile --force
6. Take note of any deprecation warnings printed in red during the compile.
7. If you have textmate and installed the `mate` command line tool:<br>

View File

@ -1,50 +0,0 @@
---
title: Lemonade Upgrade Guide
layout: tutorial
crumb: Lemonade Upgrade
classnames:
- tutorial
---
# Lemonade Upgrade Guide
## Example 1
### Lemonade
.logo {
background: sprite-image("lemonade/lemonade-logo.png");
}
.lime {
background: sprite-image("lemonade/lime.png");
}
.coffee {
background: sprite-image("other-drinks/coffee.png") no-repeat;
}
### Compass
@import "lemonade/*.png";
@import "other-drinks/*.png"
@include all-lemonade-sprites;
@include all-other-drinks-sprites;
Compass will return class names `.lemonade-logo`, `.lemonade-lime`, `.other-drinks-coffee`
# Example 2
### Lemonade
.lemonade-example-1 {
background: sprite-image("lemonade/example-1/blue-10x10.png", 10px, 2px);
}
### Compass
With compass you need to flatten the image directory to be `images/lemonade` instead of `images/lemonade/example-1`
@import "lemonade/*.png"
.lemonade-example-1 {
@include lemonade-sprite(blue-10x10, true, 10px, 2px);
background-color: yellow;
}

View File

@ -10,18 +10,13 @@ layout: homepage
.compass
%h4 Why designers love Compass.
%ol
%li Experience cleaner markup without presentational classes.
%li Get cleaner markup with no presentational classes.
%li Its chock full of the webs best reusable patterns.
%li Developing a personal framework is simple.
%li Compass mixins make CSS3 easy.
%li Download and create extensions with ease.
.sass
%h4 Compass uses Sass.
%p
<a href="http://sass-lang.com/">Sass</a> is an extension of CSS3 which
adds nested rules, variables, mixins, selector inheritance, and more.
Sass generates well formatted CSS and makes your stylesheets
easier to organize and maintain.
%p <a href="http://sass-lang.com/">Sass</a> is an extension of CSS3 which adds nested rules, variables, mixins, selector inheritance, and more. Sass generates well formatted CSS.
%h3 Brilliant people use Compass, including these <em>wildly talented</em> folks:
%ul#featured_sites
%li
@ -62,34 +57,10 @@ layout: homepage
%li
%a(href="http://green.cals.cornell.edu/")
%img(src="/images/sites/cornell.jpg")
%span.title Cornell University - CALS
%span.title Corenell University - CALS
%span.url http://green.cals.cornell.edu
%li
%a(href="http://busyconf.com/")
%img(src="/images/sites/busyconf.jpg")
%span.title BusyConf
%span.url http://busyconf.com
%section.book
%h3 Save <em>37%</em> on the Book: (Currently In Beta)
%p
%a(href="http://www.manning.com/netherland/")
%img(src="http://www.manning.com/netherland/netherland_cover150.jpg" alt="Sass & Compass in Action")
Compliments of Manning.com is a standing 37% discount on
<a href="http://www.manning.com/netherland/">Sass and Compass in Action</a>.
Use promo code <code>sasscomp37</code> at manning.com on the MEAP, eBook and pBook of Sass and
Compass in Action. All pBook purchases include free eFormats (PDF, ePub, and Kindle)
as soon as available.
%section.gui
%h3 <em>Hate</em> the Command Line?
%a(href="http://compass.handlino.com/")
%img(src="/images/compass.app.png")
%p
Buy <a href="http://compass.handlino.com/">Compass.app</a>
for Windows and Mac for just $7.
%p.note
Note: Compass.app is a product of Handlino, Inc but
30% of all proceeds go to Compass's charity of choice: <a href="http://umdf.org/compass">UMDF.org</a>.
%span.url http://busyconf.com

View File

@ -1,24 +0,0 @@
---
title: Compass Documentation | All Functions
crumb: Docs
body_id: home
---
%article
%h1#logo Sass Based Functions
- all_functions.sorted_and_grouped_by_name{|f| f.last.name }.each do |(group, functions)|
%h3= group
%ul
- functions.each do |(i, f)|
%li
%a{:href=>"#{i.path}#function-#{f.name}"}= f.sass_signature(:html)
%h1#logo All Ruby Based Functions
%ul
- Sass::Script::Functions.public_instance_methods.sort_by{|m| m.to_s}.each do |m|
%li
- name = m.to_s.gsub("_","-")
- if i = item_for_function_name(name)
%a{:href=>"#{i.path}##{name}"}= name
- else
= name

View File

@ -6,9 +6,9 @@ body_id: home
%article
%h1#logo Compass Mixins
- all_mixins.sorted_and_grouped_by_name{|m| m.last.name }.each do |(group, mixins)|
%h3= group
- all_mixins.sort_by{|i| i.first.identifier}.each do |item, mixins|
%h3= link_to item[:title], item
%ul
- mixins.each do |(i, m)|
%li
%a{:href=>"#{i.path}#mixin-#{m.name}"}= m.sass_signature(:none, :html)
- mixins.sort_by{|m| m.name}.each do |m|
%li= mixin_signature(m)

View File

@ -6,10 +6,10 @@ body_id: home
%article
%h1#logo Compass Variables
- all_constants.sorted_and_grouped_by_name{|v| v.last.name }.each do |(group, variables)|
%h3= group
- all_constants.sort_by{|i| i.first.identifier}.each do |item, constants|
%h3= link_to item[:title], item
%ul
- variables.each do |(i, v)|
%li
%a{:href=>"#{i.path}#const-#{v.name}"}= "$" + v.name
- constants.sort_by{|c| c.name}.each do |c|
%li $#{c.name}

View File

@ -1,81 +0,0 @@
---
title: Install the Compass Stylesheet Authoring Framework
crumb: Install
body_id: install
---
- content_for :javascripts do
%script(src="/javascripts/install.js")
%h2 Installing Ruby
%p
Compass runs on any computer that has
<a href="http://www.ruby-lang.org/en/downloads/">ruby installed</a>.
%p
For more advanced users you may want to install
<a href="http://rvm.beginrescueend.com/rvm/install/">rvm</a>.
%h2 Setting up the ruby environment
%ol
%li <code>$ gem update --system</code>
%li <code>$ gem install compass</code>
%h2 Tell us about your project and we'll help you get it set up:
%blockquote.madlib.customizable<
I would like to set up my
%select#existence
%option{:value => "create"} new
%option{:value => "init"} existing
%select#app-type
%option{:value => "stand-alone"} compass
%option{:value => "rails"} rails
%option{:value => "other"} other
project
with
%select#framework
%option{:value => "compass"} compass's
%option{:value => "blueprint"} blueprint's
%option{:value => "bare"} no
starter stylesheets.
%br
I prefer the
%select#syntax
%option{:value => "scss"} CSS based (SCSS)
%option{:value => "sass"} Indent based (Sass)
syntax<span class="customization">
and would like to
%select#options
%option{:value => "default"} use compass's recommended
%option{:value => "customized"} customize my project's
directory structure<span id="directories" style="display:none;">
using
%input#sassdir(value="sass")
for the sass source directory,
%input#cssdir(value="css")
for the css output directory,
%input#jsdir(value="javascripts")
for the javascripts directory,
and
%input#imagesdir(value="images")
for the images directory</span></span>.
%h4 Thanks. Now run the following steps in your terminal:
%p.note
Terminal newbies, read <a href="http://wiseheartdesign.com/articles/2010/11/12/the-designers-guide-to-the-osx-command-prompt/">the Designers Guide to the OSX Command Prompt</a> first!
#steps
Loading...
%p.note Note: <code>$</code> is a placeholder for your terminal's prompt. You don't type it.
%h4 Then follow the instructions that compass provides in the output.
%h4 Or you can buy a <a href="http://compass.handlino.com/">GUI for Compass</a> from Handlino.
%h2 Next Steps
%ul
%li
%a(href="http://sass-lang.com" target="_blank") Learn about Sass
%li
%a(href="/help/tutorials/") Read our tutorials
%li
%a(href="/reference/compass/") Study the reference documentation

View File

@ -1,141 +0,0 @@
---
title: "Compass v0.11 is Released!"
description: "Months in the making, Compass v0.11 continues to revolutionize CSS Frameworks."
author: chris
---
The Compass team is proud to announce that v0.11 is released. With this release, Compass & Sass continue to revolutionize the world of CSS Frameworks bringing never-before-seen features and unmatched simplicity, quality, and flexibility to your stylesheets.
In this post, we summarize the new features. For all the nitty gritty details, see the [CHANGELOG](/CHANGELOG/).
Compass is Charityware. If you love this release, [please donate to the UMDF](http://umdf.org/compass) on our behalf and help find a cure for thousands of children suffering from mitochondrial disease.
## Sass 3.1
This release required you to upgrade to Sass 3.1. This release brings a ton of great new features that Compass now uses and you can too!
* Proper List Support: Space and Comma separated lists used to cause values to become strings
when passing them to mixins. Now the values in lists are preserved as their original types.
* Sass-based Functions. Define your own value functions and use them anywhere.
* Keyword Style Argument passing to Functions and Mixins. It can be hard to understand what
the values being passed to a mixin or function are for, use keyword style arguments to
make it easier to understand remember and read mixin includes.
* `@media` bubbling. Responsive design meets nested selectors! Use a media declaration anywhere and it
will be bubbled to the top level for you.
For more information about the new Sass features, see the [Sass CHANGELOG](http://sass-lang.com/docs/yardoc/file.SASS_CHANGELOG.html).
## Embracing CSS3
The power and flexibility of CSS3 is well known and web developers and designers are finding many new and interesting ways to take advantage of it. In Compass v0.11 we have revisited each CSS3 feature to ensure the greatest ease of use and similarity to CSS3 syntax. The compass internals for managing cross-browser compatibility have been rewritten to provide a powerful platform for moving as fast as the browser implementors are. Going forward, <span style="text-decoration: underline;">expect small point releases to adapt to new browser support and changes much more rapidly</span>. By default, Compass provides out-of-the-box support for **all** modern and legacy browsers as far back as IE6 and Firefox 2. But if you want slimmer stylesheets, it is [simple to configure](/reference/compass/support/) which browser support we provide.
In this release, we embraced the CSS3 syntax as much as possible. It might seem obvious, but the Compass convention is now that all CSS3 mixin arguments should match the CSS3 syntax for their corresponding properties so that you never have to *learn* a compass CSS3 mixin. If you ever find a case where this is not true, it is a bug and we would appreciate it if you would [provide the details in a bug report](http://github.com/chriseppstein/compass/issues). After upgrading, you will encounter a number of deprecation warnings guiding you through the syntax changes.
### Gradients Evolved
The best example of the changes in the CSS3 module are related to gradients. In Compass v0.10 we provided two simple mixins: `linear-gradient` and `radial-gradient` for setting the `background-image` property:
.linear {
@include linear-gradient(#FFF, #000, color-stops(#C00 25%, #0C0 75%))
}
This syntax was inspired by the original webkit gradient syntax but tried to simplify it to some extent. But the gradient specification has evolved and because gradients can be used anywhere an image can, so we now provide a mixin for each property that can accept gradients and the arguments
can be any legal CSS3 value for the that property:
.linear {
@include background-image(linear-gradient(#FFF, #C00 25%, #0C0 75%, #000))
}
Which produces:
.linear {
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(25%, #cc0000), color-stop(75%, #00cc00), color-stop(100%, #000000));
background-image: -webkit-linear-gradient(#ffffff, #cc0000 25%, #00cc00 75%, #000000);
background-image: -moz-linear-gradient(#ffffff, #cc0000 25%, #00cc00 75%, #000000);
background-image: -o-linear-gradient(#ffffff, #cc0000 25%, #00cc00 75%, #000000);
background-image: linear-gradient(#ffffff, #cc0000 25%, #00cc00 75%, #000000);
}
## Dead Simple Sprites
Spriting has never been easier with Compass. Nico Hagenburger joined the Compass team and we have built on his popular Lemonade plugin to make Compass sprites. Existing Lemonade users will need to upgrade.
The way they work is you place the sprite images in a folder,
import them into your stylesheet, and then you can use the sprite in your selectors in one
of several convenient ways.
For example, let's imagine that in your project's image folder there are four icons:
* `<images_dir>/icon/new.png`
* `<images_dir>/icon/edit.png`
* `<images_dir>/icon/save.png`
* `<images_dir>/icon/delete.png`
The simplest way to use these icon sprites is to let compass give you a class for each sprite:
@import "icon/*.png";
@include all-icon-sprites;
And you'll get the following CSS output:
.icon-sprite,
.icon-delete,
.icon-edit,
.icon-new,
.icon-save { background: url('/images/icon-34fe0604ab.png') no-repeat; }
.icon-delete { background-position: 0 0; }
.icon-edit { background-position: 0 -32px; }
.icon-new { background-position: 0 -64px; }
.icon-save { background-position: 0 -96px; }
You can now apply the `icon-XXX` classes to your markup as needed.
Of course, this is Compass which means that underneath this simple veneer is a powerful system that you can use to customize your selectors and all kinds of other scenarios involving unicorns and rainbows. Get all the details in our [Spriting Tutorial](/help/tutorials/spriting/).
## New Typography Module
New in this release is a typography module. Many of our utility mixins related to typography have been moved here, but the really exciting development is the addition of the [vertical rhythm module](/reference/compass/typography/vertical_rhythm/). Based on [this excellent tutorial](http://24ways.org/2006/compose-to-a-vertical-rhythm) from 24ways, it is now simpler than ever to compose to a vertical rhythm.
## Blueprint 1.0
Blueprint is 1.0 now and the Compass port is updated to match the changes there. Some of the changes that blueprint made might affect your design, so if you don't want to take this upgrade, you should unpack blueprint before you upgrade:
compass unpack blueprint
## New Website
As you can see, we have a spiffy new website design from Compass Core team member [Brandon](http://brandonmathis.com/). A testament to the separation of content and presentation, most of this redesign was done by throwing out our old stylesheets and building new ones. If you don't like the light text on dark background theme, you can turn on the lights by clicking the power button in the upper right hand corner of every page.
## Much, Much More
There's more features in this release than would fit into this post. Here's some other things you'll find in this release:
* Custom directory and file watching (E.g. for pngcrush support)
* Compilation Callback support
* Trigonometric functions
Read the [CHANGELOG](/CHANGELOG/) for all the details.
Additionally, expect a point release to follow shortly with support for:
* Rails 3.1
Lastly, Compass v0.11 will have point releases as needed to adapt to changes in browser support for the CSS3 module.
## Many Thanks
Compass wouldn't be possible without Nathan Weizenbaum and his hard work on Sass. The latest Sass release
provides a ton of great features that have made this Compass release possible.
Compass is far to big for one person to manage it now. I'd like to thank the hard work of the Compass core team members:
* [Eric Meyer](http://eric.oddbird.net/)
* [Brandon Mathis](http://brandonmathis.com/)
* [Scott Davis](https://github.com/jetviper21)
* [Nico Hagenburger](http://www.hagenburger.net/)
Additionally, there were commits from 10 other great folks in this release and there's been [contributions from 68 people](https://github.com/chriseppstein/compass/contributors) in total so far.
Lastly thanks to the hundreds, if not thousands, of users who have helped test this release and provided valuable feedback, bug reports, and documentation suggestions. Together, we are making a real stylesheet framework and simplifying the lives of web developers across the world.

View File

@ -1,93 +0,0 @@
---
title: "Compass Release Strategy"
description: "An overview of how Compass will be managing ongoing releases."
author: chris
---
Most of this is probably obvious, but it doesn't hurt to be explicit about such things.
If you're interested in contributing to Compass, please read the
[Contribution Guide](http://compass-style.org/help/tutorials/contributing/).
Versioning
----------
Most stable releases will be released as release candidates first
(e.g `0.11.1.rc.0`) and then made into official releases after a day
or so if they don't cause any problems.
Sass Dependency
---------------
We will decouple major Compass releases from the Sass release schedule
going forward. When Sass releases happen, we will issue patches to both
stable and master branches to adjust to any deprecations and new
features after they are fully released (which means we might have the
changes waiting in a topic branch). Because Sass is very careful to not
break existing stylesheets without deprecating first, this shouldn't be
hard to pull off.
Stylesheet Progress
-------------------
I do not want to see the compass stylesheets get frozen again
like they did in v0.10 while waiting for the next major release.
Compass users expect us to keep up with browser developments and we will.
If this means that we need to make v0.12 become v0.13 because
the stylesheets need to make some major change, then we will do that.
Communicating Change
--------------------
All new features should have tests, docs, and CHANGELOG entries
as appropriate as part of the commit.
Additionally, we now have a compass team blog that we can use to communicate
about new features, best practices, or other Compass related stuff.
It's easy to add a post, you just drop a markdown file into
[this directory](https://github.com/chriseppstein/compass/tree/stable/doc-src/content/posts).
Guest posts are totally welcome via pull requests.
Stable
------
The stable release is were code lives for the next v0.11 point release.
Commits should only go here if they are ready for release, until that
point the code should live in your compass fork or in a topic branch.
Core team members, please use pull requests to manage the code review
process for any change of significance and get sign-off from one other
team member before committing to stable.
Changes that can go on stable:
* Browser support updates
* Non-breaking stylesheet changes and minor features
like new mixins or modules.
* Bug fixes
Changes that can't go on stable:
* New deprecations
* Major features
* Big refactors
If you're not sure where to put something, just ask.
Rails 3.1 support is the exception to this rule, given the timeline
assocated with that release, I will make a topic branch and we'll
merge that to stable when it's ready.
Core team members will, after committing/merging code to stable, then merge those changes to master so it is up to date.
Master
------
Master is where code goes to be ready for v0.12. This focus of this
next release is making extensions easy to make, share, discover, install,
remove, and use. Any and all ideas that you have related to this are
welcome. At a minimum, I would like to have an extension directory
app hosted on compass-style.org and make sure that compass knows about
it and can install extensions by name from there.

View File

@ -1,34 +0,0 @@
---
title: "How to use Compass/Sass with Django."
description: "All the documentation is for Ruby/Rails development, so how does it work for the rest of us?"
author: eric
---
It's easy! Follow these two simple steps:
1. Use Compass/Sass.
2. Use Django.
That's it. Compass works great as a stand-alone tool. Run "compass --watch" on the command line or use [compass.app](http://compass.handlino.com/) to compile your stylesheets, and then commit the CSS to your Django project, just like you always have. Done.
## What about integration?
Compass and Sass are built in Ruby. When the rest of your project is also built in Ruby, it makes sense to squeeze every last ounce of convenient automatic integration, like having your project automatically compile Sass to CSS for you at runtime. But that integration is not actually necessary, and when the rest of your project is not Ruby, you pay a lot more for that little bit of convenience.
A Rails/Ruby project already has a full Ruby stack and deployment infrastructure to make sure all the right Ruby gems are available on the server. Adding a few Compass gems makes very little difference in the complexity of your production deployment.
For a Django project, integrating run-time Compass compilation (via something like [django-css](https://github.com/dziegler/django-css)) means requiring a full Ruby stack on your production servers, plus new deployment infrastructure for getting all the right gem versions in place. This is a significant chunk of additional moving parts on your production servers.
Keeping your production servers simpler is A Very Good Thing. (And, as a bonus, it allows you to deploy your project to pure-Python managed hosting environments).
## In development.
The disadvantage to our approach is that you are committing generated code to the repo. That's generally frowned upon. But we haven't seen any actual problems as a result of this. Nobody on the team is tempted to edit the generated CSS directly; we all know that we use Compass for that. There are no mysterious display inconsistencies between one developer and another, or between development and production, because of minor differences in something like a Compass plugin gem version. Everyone sees the same CSS. Differences between developers' Compass environments are caught quickly, because they show up right away as unexpected changes in the pre-commit diff of the generated CSS.
And I, as the designer/front-end developer, keep full control of the css-generation process without needing to touch the server. If I want to update the gems and make some changes, I can do that. I make the change, I commit the change, and it just works. For everyone. That's important to me. It removes all the pretense of dark magic that can come with Sass/Compass. I'm writing CSS. I'm committing CSS. Compass, Sass and all their plugins are just tools towards that end.
Of course, you'll want to commit the Sass as well, especially if you have multiple front-end developers on the team. That way the source is available for anyone who needs to update it, even though it's not needed by the server. You might also want a way of documenting the latest gems that should be used to compile it. That's easy enough to add in a comment or doc of it's own.
## Just Tools.
I want to say that again because I think it is the most important and most often forgotten rule of using a css pre-processor. **Compass and Sass are simply tools for writing CSS. They are not a new styling language. They are not magic. They make writing css easier - and that is all. The css output is the only thing that matters.**

View File

@ -3,7 +3,6 @@ title: Blueprint Reset
crumb: Reset
framework: blueprint
stylesheet: blueprint/_reset.scss
sidebar: true
layout: blueprint
classnames:
- reference

View File

@ -1,4 +1,4 @@
---
---
title: Compass Core Framework
crumb: Compass Core
framework: compass
@ -16,8 +16,10 @@ layout: core
other frameworks and extensions.
%h2 Non Imported Modules
%em You can import these yourself if you want to use them.
%ol
%li= render "partials/reference/import", :import => "compass/_layout.scss"
%li= render "partials/reference/import", :import => "compass/_reset.scss"
%p
You can import these yourself if you want to use them.
%ul
= render "partials/reference/import", :import => "compass/_layout.scss"
= render "partials/reference/import", :import => "compass/_reset.scss"

View File

@ -3,7 +3,6 @@ title: Compass CSS3
crumb: CSS3
framework: compass
stylesheet: compass/_css3.scss
sidebar: true
layout: core
classnames:
- reference

View File

@ -1,16 +0,0 @@
---
title: Compass Appearance
crumb: Appearance
framework: compass
stylesheet: compass/css3/_appearance.scss
meta_description: Specify the CSS3 appearance property.
layout: core
classnames:
- reference
- core
- css3
---
- render 'reference' do
:markdown
Provides a mixin for `appearance`.
See the CSS3 specification: [appearance](http://www.w3.org/TR/css3-ui/#appearance).

View File

@ -12,8 +12,13 @@ classnames:
- css3
---
- render 'reference' do
:markdown
**<span class="warning">IMPORTANT:</span>** This module has been deprecated. See the new
[images module](../images/) for the new, more flexible approach to gradients.
%p
Provides mixins to create cross-browser CSS3 gradients.
%p
To enable SVG gradient support in Opera and IE9, set
<code>$experimental-support-for-svg: true</code> in your stylesheet.
%p
NOTE: At this time, Opera renders incorrectly an SVG background on a element
with a border, repeating the gradient towards the end. You can set
<code>background-repeat: no-repeat</code> to avoid this, but the gradient
will not fill the area completely.

View File

@ -12,33 +12,6 @@ classnames:
- css3
---
- render 'reference' do
:markdown
%p
Provides mixins that work across many modern browsers with the latest
CSS3 image rendering primitives.
These mixins provide intelligent cross-browser access to properties that accept
images or image-like values (e.g. gradients). The syntax is very straightforward,
it is exactly like the css syntax that you would use for the corresponding CSS3
properties: Values are comma and space delimited, just as they would be for a property.
Vendor prefixes are used only when necessary.
Example (more examples are available by following the links below):
<pre><code class="source-code scss">.in-css3 {
background: url(foo.png),
linear-gradient(top left, #333, #0c0),
radial-gradient(#c00, #fff 100px);
}
.with-compass {
@include background(image-url("foo.png"),
linear-gradient(top left, #333, #0c0),
radial-gradient(#c00, #fff 100px));
}</code></pre>
To enable SVG gradient support in Opera and IE9, set
<code>$experimental-support-for-svg: true</code> in your stylesheet.
NOTE: At this time, Opera renders incorrectly an SVG background on a element
with a border, repeating the gradient towards the end. You can set
<code>background-repeat: no-repeat</code> to avoid this, but the gradient
will not fill the area completely.

View File

@ -74,6 +74,6 @@ classnames:
* For more information see the [css3pie website](http://css3pie.com/).
* CSS PIE is written by and copyright to: [Jason Johnston](http://twitter.com/lojjic)
* Compass is using css3pie version 1.0-beta3. It can be upgraded by downloading
* Compass is using css3pie version 1.0-beta2. It can be upgraded by downloading
a new behavior file and replacing the one that comes with compass.

View File

@ -2,7 +2,6 @@
title: Compass Helpers
crumb: Helpers
framework: compass
sidebar: true
layout: core
classnames:
- reference
@ -15,7 +14,7 @@ layout: core
:markdown
The compass helpers are functions that augment the [functions provided
by Sass](http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html).
by Sass](http://sass-lang.com/yardoc/Sass/Script/Functions.html).
All Helpers:
@ -24,7 +23,6 @@ layout: core
* [append-selector()](/reference/compass/helpers/selectors/#append-selector)
* [color-stops()](/reference/compass/helpers/color-stops/)
* [cos()](/reference/compass/helpers/trig/#cos)
* [css2-fallback()](/reference/compass/helpers/cross-browser/#css2-fallback)
* [elements-of-type()](/reference/compass/helpers/display/)
* [enumerate()](/reference/compass/helpers/selectors/#enumerate)
* [font-files()](/reference/compass/helpers/font-files/)
@ -36,18 +34,9 @@ layout: core
* [inline-font-files()](/reference/compass/helpers/inline-data/#inline-font-files)
* [inline-image()](/reference/compass/helpers/inline-data/#inline-image)
* [nest()](/reference/compass/helpers/selectors/#nest)
* [prefix()](/reference/compass/helpers/cross-browser/#prefix)
* [prefixed()](/reference/compass/helpers/cross-browser/#prefixed)
* [pi()](/reference/compass/helpers/trig/#pi)
* [sin()](/reference/compass/helpers/trig/#sin)
* [stylesheet-url()](/reference/compass/helpers/urls/#stylesheet-url)
* [scale-lightness()](/reference/compass/helpers/colors/#scale-lightness)
* [tan()](/reference/compass/helpers/trig/#tan)
* [-css2()](/reference/compass/helpers/cross-browser/#-css2)
* [-moz()](/reference/compass/helpers/cross-browser/#-moz)
* [-ms()](/reference/compass/helpers/cross-browser/#-ms)
* [-o()](/reference/compass/helpers/cross-browser/#-o)
* [-pie()](/reference/compass/helpers/cross-browser/#-pie)
* [-svg()](/reference/compass/helpers/cross-browser/#-svg)
* [-webkit()](/reference/compass/helpers/cross-browser/#-webkit)

View File

@ -8,8 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "color-stops"
---
%h1 Compass Color Stops Helper

View File

@ -8,11 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "adjust-lightness"
- "adjust-saturation"
- "scale-lightness"
- "scale-saturation"
---
%h1 Compass Color Helpers
%p

View File

@ -8,8 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "opposite-position"
---
%h1 Compass Constant Helpers

View File

@ -1,125 +0,0 @@
---
title: Compass Cross Browser Helpers
crumb: Cross Browser
framework: compass
meta_description: Helper functions for working with vendor prefixed functions.
layout: core
classnames:
- reference
- core
- helpers
documented_functions:
- "prefixed"
- "prefix"
- "-webkit"
- "-moz"
- "-o"
- "-ms"
- "-svg"
- "-pie"
- "-css2"
---
%h1 Compass Cross Browser Helpers
:markdown
These helpers are used by compass to create mixins that can insulate
the user from cross browser syntax and vendor prefix complexities.
If you need to support a new experimental (prefixed) function in your
project using these helpers, you can add support for it adding the following
to your compass configuration file:
Compass::BrowserSupport.add_support("function-name", "webkit", "moz")
For an example of how to use these functions see the
[compass images module](https://github.com/chriseppstein/compass/blob/master/frameworks/compass/stylesheets/compass/css3/_images.scss).
#prefixed.helper
%h3
%a(href="#prefixed")
prefixed(<span class="arg">$prefix<span>, <span class="arg">$arg</span>, ...)
.details
%p
Returns true if any of the arguments require the given prefix.
#prefix.helper
%h3
%a(href="#prefix")
prefix(<span class="arg">$prefix<span>, <span class="arg">$arg</span>, ...)
.details
%p
Transforms the argument(s) into a representation for the rendering engine
indicated by <code>$prefix</code>. Usually this means just adding a prefix,
but in some cases, this may result in entirely different representations for
the given rendering engine (E.g. linear-gradient).
%p
Values that do not have a specific representation are passed through without
being transformed.
#-webkit.helper
%h3
%a(href="#-webkit")
\-webkit(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-webkit, $arg, ...)</code>.
#-moz.helper
%h3
%a(href="#-moz")
\-moz(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-moz, $arg, ...)</code>.
#-o.helper
%h3
%a(href="#-o")
\-o(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-o, $arg, ...)</code>.
#-ms.helper
%h3
%a(href="#-ms")
\-ms(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-ms, $arg, ...)</code>.
#-svg.helper
%h3
%a(href="#-svg")
\-svg(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-svg, $arg, ...)</code>.
Instead of adding a prefix, it returns a representation of the
arguments using SVG to render them where it can.
#-pie.helper
%h3
%a(href="#-pie")
\-pie(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-pie, $arg, ...)</code>.
It it used to get <a href="/reference/compass/css3/pie/">CSS3 PIE</a>
support where necessary.
#-css2.helper
%h3
%a(href="#-css2")
\-css2(<span class="arg">$arg</span>, ...)
.details
%p
This is a shortcut for calling <code>prefix(-css2, $arg, ...)</code>.
It is a kind of hack to sanitize the output of experimental code
into a form that can be parsed by a css2.1 compliant parser.
Usually this results in causing some functions to be omitted.
#css2-fallback.helper
%h3
%a(href="#css2-fallback")
css2-fallback(<span class="arg">$value</span>, <span class="arg">$css2-value</span>)
.details
%p
This function returns a value that is normally <code>$value<code>,
but is <code>$css2-value</code> when passed through the <code>-css2()</code>
helper function. Many of the compass css3 mixins will create a css2 fallback
value if the arguments have a css2 representation (gradients have a null css2
representation).

View File

@ -8,8 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "elements-of-type"
---
%h1 Compass Display Helpers
@ -21,7 +19,7 @@ documented_functions:
.details
%p
The following display values exist and will return
the elements listed below the display value.
the elements listed to the right.
%dl
%dg.head
%dt Display Value

View File

@ -8,8 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "font-files"
---
%h1 Compass Font Files Helper

View File

@ -8,9 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "image-width"
- "image-height"
---
%h1 Compass Image Dimension Helpers

View File

@ -8,9 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "inline-image"
- "inline-font-files"
---
%h1 Compass Inline Data Helpers

View File

@ -8,12 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "nest"
- "append-selector"
- "enumerate"
- "headings"
- "headers"
---
%h1 Compass Selector Helpers
@ -73,7 +67,6 @@ documented_functions:
%li
%a(href="/examples/compass/helpers/using-extend-in-place-of-enumerate/") Example of using <code>@extend</code> in place of enumerate
%a(name="headers")
#headings.helper
%h3
%a(href="#append-selector")

View File

@ -8,13 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "sprite-map"
- "sprite"
- "sprite-map-name"
- "sprite-file"
- "sprite-url"
- "sprite-position"
---
%h1 Compass Sprite Helpers

View File

@ -8,11 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "pi"
- "sin"
- "cos"
- "tan"
---
%h1 Compass Trig Helpers

View File

@ -8,10 +8,6 @@ classnames:
- reference
- core
- helpers
documented_functions:
- "stylesheet-url"
- "font-url"
- "image-url"
---
%h1 Compass URL Helpers
@ -47,15 +43,11 @@ documented_functions:
#image-url.helper
%h3
%a(href="#image-url")
image-url($path, $only-path: false, $cache-buster: true)
image-url($path, $only-path: false)
.details
%p
Generates a path to an asset found relative to the project's images directory.
%p
%br
Passing a true value as the second argument will cause the only the path to be returned
instead of a `url()` function
%p
The third argument is used to control the cache buster on a per-use basis.
When set to `false` no cache buster will be used. When a string, that
value will be used as the cache buster.

View File

@ -1,10 +1,9 @@
---
---
title: Compass Layout
crumb: Layout
framework: compass
sidebar: true
stylesheet: compass/_layout.scss
meta_description: Page layout module.
meta_description: Page layout module. So far, this is just the sticky-footer mixin.
layout: core
classnames:
- reference
@ -14,3 +13,4 @@ classnames:
- render 'reference' do
%p
This module provides tools to help you with page layout.
So far, it's just the <code><a href="/reference/compass/layout/sticky_footer/#mixin-sticky-footer">sticky-footer</a></code> mixin.

View File

@ -1,16 +0,0 @@
---
title: Compass Grid Backgrounds
crumb: Grid Background
framework: compass
stylesheet: compass/layout/_grid-background.scss
layout: core
classnames:
- reference
- core
- layout
---
- render 'reference' do
%p
The grid-background mixins allow you to generate fixed, fluid and elastic
grid-images on-the-fly using css3 gradients. These can be used for testing
both horizontal and vertical grids.

View File

@ -1,27 +0,0 @@
---
title: Compass Reset (legacy)
crumb: Reset (legacy)
framework: compass
stylesheet: compass/_reset-legacy.scss
layout: core
sidebar: true
deprecated: true
classnames:
- reference
- core
- reset
meta_description: Adds a CSS Reset into your stylesheet.
---
- render 'reference' do
%p.warning
This import is deprecated. Please import
<a href="/reference/compass/reset/" class="better">reset</a> instead.
:markdown
This module applies the [global reset](/reference/compass/reset/utilities-legacy/#mixin-global-reset)
to your stylesheet by simply importing it.
**Note:** This module will place styles into your stylesheet by importing it. This
is not the standard behavior of a compass module but it optimizes the common use case.
If you want to control the reset, please use the mixins defined in the [reset
utilities module](/reference/compass/reset/utilities-legacy/)

View File

@ -1,22 +0,0 @@
---
title: Compass Reset Utilities (legacy)
crumb: Reset Utilities (legacy)
framework: compass
stylesheet: compass/reset/_utilities-legacy.scss
layout: core
deprecated: true
meta_description: Mixins for resetting elements.
classnames:
- reference
- core
- utilities
---
- render 'reference' do
%p.warning
This import is deprecated. Please import
<a href="/reference/compass/reset/utilities/" class="better">reset utilities</a> instead.
:markdown
These utilities are used to reset your document. The easiest way to use them
is to simply `@import "compass/reset"` which will import this module and apply
the appropriate mixins for you.

View File

@ -4,7 +4,6 @@ crumb: Reset
framework: compass
stylesheet: compass/_reset.scss
layout: core
sidebar: true
classnames:
- reference
- core
@ -19,4 +18,4 @@ meta_description: Adds a CSS Reset into your stylesheet.
**Note:** This module will place styles into your stylesheet by importing it. This
is not the standard behavior of a compass module but it optimizes the common use case.
If you want to control the reset, please use the mixins defined in the [reset
utilities module](/reference/compass/reset/utilities/)
utilities module](/reference/compass/reset/utilities/)

View File

@ -1,18 +0,0 @@
---
title: Compass Typography
crumb: Typography
framework: compass
sidebar: true
stylesheet: compass/_typography.scss
classnames:
- reference
- core
- typography
meta_description: Provides basic mixins for common typography patterns.
layout: core
nav_stylesheet: compass/_typography.scss
---
- render 'reference' do
%p
The Compass Typography module provides some basic mixins
for common text styling patterns.

View File

@ -1,15 +0,0 @@
---
title: Wrapping Long Text and URLs
crumb: Force Wrap
framework: compass
stylesheet: compass/typography/text/_force-wrap.scss
layout: core
meta_description: Wrap URLs and long lines of text.
classnames:
- reference
- core
- typography
---
- render 'reference' do
%p
This mixin will wrap URLs and long lines of text to prevent text from breaking layouts.

View File

@ -1,20 +0,0 @@
---
title: Vertical Rhythm
crumb: Vertical Rhythm
framework: compass
stylesheet: compass/typography/_vertical_rhythm.scss
layout: core
meta_description: Create and maintain a vertical rhythm for your type.
classnames:
- reference
- core
- typography
---
- render 'reference' do
:markdown
Create a vertical rhythm for your site by setting the `$base-font-size` and
`$base-line-height` variables and then including the `establish-baseline`
mixin at the root of your document.
Manage the vertical rhythm using the other vertical-rhythm mixins to adjust
font and line-height values, extra vertical whitespace, borders, etc.

View File

@ -2,7 +2,6 @@
title: Compass Utilities
crumb: Utilities
framework: compass
sidebar: true
stylesheet: compass/_utilities.scss
classnames:
- reference

Some files were not shown because too many files have changed in this diff Show More