compass-colors 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.markdown ADDED
@@ -0,0 +1,50 @@
1
+ Compass Colors
2
+ ==============
3
+
4
+ This compass extension provides support for working with colors in Sass and generating color themes for use on your website.
5
+
6
+ Installing
7
+ ==========
8
+
9
+ sudo gem install chriseppstein-compass-colors
10
+
11
+
12
+ To install a theme into your existing compass project, add the following to your compass configuration file:
13
+
14
+ require 'compass-colors'
15
+
16
+ Then run this command:
17
+
18
+ compass -f colors -p <Theme Name>
19
+
20
+ The _theme.sass partial can then be imported into your stylesheets and the color constants can be used.
21
+
22
+ @import theme.sass
23
+
24
+ Supported Color Themes
25
+ ======================
26
+
27
+ With all of these themes, you must pick a base color and the theme takes it from there:
28
+
29
+ * Basic/Monochromatic (basic)
30
+ * Complementary (complementary)
31
+ * Triadic (triadic)
32
+ * Split Complementary (split_complementary)
33
+ * Analogous (analogous)
34
+
35
+ Sass Functions Provided
36
+ =======================
37
+
38
+ * `lighten(color, percentage)` - Create a color lighter by the percent amount provided.
39
+ * `darken(color, percentage)` - Create a color darker by the percent amount provided.
40
+ * `saturate(color, percentage)` - Create a color lighter by the percent amount provided.
41
+ * `desaturate(color, percentage)` - Create a color lighter by the percent amount provided.
42
+ * `hue(color)` - Extract the hue from the color in degrees (0-360). Suitable to be passed as the first argument of hsl.
43
+ * `saturation(color)` - Extract the saturation from the color in percent (0-100). Suitable to be passed as the second argument of hsl.
44
+ * `luminosity(color)` - Extract the luminosity from the color in percent (0-100). Suitable to be passed as the third argument of hsl.
45
+ * `mix(color1, color2, percentage)` - Create a new color by mixing two colors together. Percentage (0-100) is optional, and indicates how
46
+ much of color2 should be mixed into color1.
47
+ * `grayscale(color)` - Create a gray color by mapping the color provided to the grayscale.
48
+ * `adjust_hue(color, degrees)` - Add the number of degrees provided to the hue of the color keeping luminosity and saturation constant.
49
+ Degrees can be negative.
50
+ * `complement(color)` - Returns the compliment of the color provided.
data/Rakefile ADDED
@@ -0,0 +1,26 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |gemspec|
4
+ gemspec.name = "compass-colors"
5
+ gemspec.summary = "Color Support for Compass & Sass"
6
+ gemspec.email = "chris@eppsteins.net"
7
+ gemspec.homepage = "http://compass-style.org"
8
+ gemspec.description = "Sass Extensions and color theme templates to make working with colors easier and more maintainable."
9
+ gemspec.authors = ["Chris Eppstein"]
10
+ gemspec.has_rdoc = false
11
+ gemspec.add_dependency('chriseppstein-compass', '>= 0.8.7')
12
+ gemspec.files = []
13
+ gemspec.files << "README.markdown"
14
+ gemspec.files << "LICENSE.markdown"
15
+ gemspec.files << "VERSION.yml"
16
+ gemspec.files << "Rakefile"
17
+ gemspec.files += Dir.glob("example/**/*")
18
+ gemspec.files -= Dir.glob("example/**/*.css")
19
+ gemspec.files -= Dir.glob("example/*/extensions/**")
20
+ gemspec.files += Dir.glob("lib/**/*")
21
+ gemspec.files += Dir.glob("spec/**/*")
22
+ gemspec.files += Dir.glob("templates/**/*.*")
23
+ end
24
+ rescue LoadError
25
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
26
+ end
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :minor: 2
3
+ :patch: 0
4
+ :major: 0
data/example/config.rb ADDED
@@ -0,0 +1,13 @@
1
+ # Require any additional compass plugins here.
2
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'compass-colors')
3
+
4
+ project_type = :stand_alone
5
+ # Set this to the root of your project when deployed:
6
+ http_path = "/"
7
+ css_dir = "stylesheets"
8
+ sass_dir = "src"
9
+ images_dir = "images"
10
+ extensions_dir = "extensions"
11
+ output_style = :compact
12
+ # To enable relative paths to assets via compass helper functions. Uncomment:
13
+ relative_assets = true
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
6
+ <title>Color Example</title>
7
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" charset="utf-8">
8
+ </head>
9
+ <body id="split-compliment">
10
+ <div class="base">
11
+ <div class="lighter">
12
+ &nbsp;
13
+ </div>
14
+ <div class="darker">
15
+ &nbsp;
16
+ </div>
17
+ &nbsp;
18
+ </div>
19
+ <div class="complement-support">
20
+ <div class="lighter">
21
+ &nbsp;
22
+ </div>
23
+ <div class="darker">
24
+ &nbsp;
25
+ </div>
26
+ &nbsp;
27
+ </div>
28
+ <div class="complement-accent">
29
+ <div class="lighter">
30
+ &nbsp;
31
+ </div>
32
+ <div class="darker">
33
+ &nbsp;
34
+ </div>
35
+ &nbsp;
36
+ </div>
37
+ </body>
38
+ </html>
@@ -0,0 +1,28 @@
1
+ // In theory the lightness and saturation values of corresponding colors should not change.
2
+ // In reality, these values should be adjusted to create a more pleasant color combination.
3
+ // There is not any mathematical formula for this, but you can use the lighten, darken,
4
+ // saturate and desaturate functions to adjust your main colors.
5
+ !base_color ||= red
6
+ !complement_support_color = adjust_hue(!base_color, 180 + 30)
7
+ !complement_accent_color = adjust_hue(!base_color, 180 - 30)
8
+
9
+ !base_dark_color = darken(!base_color, 25)
10
+ !base_darker_color = darken(!base_color, 50)
11
+ !base_darkest_color = darken(!base_color, 75)
12
+ !base_light_color = lighten(!base_color, 25)
13
+ !base_lighter_color = lighten(!base_color, 50)
14
+ !base_lightest_color = lighten(!base_color, 75)
15
+
16
+ !dark_complement_support_color = darken(!complement_support_color, 25)
17
+ !darker_complement_support_color = darken(!complement_support_color, 50)
18
+ !darkest_complement_support_color = darken(!complement_support_color, 75)
19
+ !light_complement_support_color = lighten(!complement_support_color, 25)
20
+ !lighter_complement_support_color = lighten(!complement_support_color, 50)
21
+ !lightest_complement_support_color = lighten(!complement_support_color, 75)
22
+
23
+ !dark_complement_accent_color = darken(!complement_accent_color, 25)
24
+ !darker_complement_accent_color = darken(!complement_accent_color, 50)
25
+ !darkest_complement_accent_color = darken(!complement_accent_color, 75)
26
+ !light_complement_accent_color = lighten(!complement_accent_color, 25)
27
+ !lighter_complement_accent_color = lighten(!complement_accent_color, 50)
28
+ !lightest_complement_accent_color = lighten(!complement_accent_color, 75)
@@ -0,0 +1,40 @@
1
+ @import compass/utilities.sass
2
+ // We can change the theme color here by pre-setting the !base_color
3
+ !base_color = #614DA3
4
+ @import split_compliment_theme.sass
5
+
6
+ html
7
+ :height 100%
8
+
9
+ body#split-compliment
10
+ :margin 0
11
+ :height 100%
12
+ .base
13
+ :background-color = !base_color
14
+ .darker
15
+ :background-color = !base_dark_color
16
+ .lighter
17
+ :background-color = !base_light_color
18
+ .complement-support
19
+ :background-color = !complement_support_color
20
+ .darker
21
+ :background-color = !dark_complement_support_color
22
+ .lighter
23
+ :background-color = !light_complement_support_color
24
+ .complement-accent
25
+ :background-color = !complement_accent_color
26
+ .darker
27
+ :background-color = !dark_complement_accent_color
28
+ .lighter
29
+ :background-color = !light_complement_accent_color
30
+ .base, .complement-support, .complement-accent
31
+ +clearfix
32
+ :height 33%
33
+ div
34
+ :height 100%
35
+ .darker
36
+ :float left
37
+ .lighter
38
+ :float right
39
+ .darker, .lighter
40
+ :width 33%
@@ -0,0 +1,9 @@
1
+ require 'compass'
2
+
3
+ module Compass
4
+ module Colors
5
+ end
6
+ end
7
+ require File.join(File.dirname(__FILE__), 'compass-colors', 'hsl')
8
+ require File.join(File.dirname(__FILE__), 'compass-colors', 'compass_extension')
9
+ require File.join(File.dirname(__FILE__), 'compass-colors', 'sass_extensions')
@@ -0,0 +1,7 @@
1
+ if defined?(Compass)
2
+ options = Hash.new
3
+ options[:stylesheets_directory] = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'sass'))
4
+ options[:templates_directory] = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'templates'))
5
+
6
+ Compass::Frameworks.register('colors', options)
7
+ end
@@ -0,0 +1,108 @@
1
+ module Compass
2
+ module Colors
3
+ class HSL
4
+
5
+ # Stored in degrees [0, 360)
6
+ attr_reader :h
7
+ # Stored as a number from [0,1]
8
+ attr_reader :s, :l
9
+
10
+ def self.from_color(color)
11
+ from_rgb(*color.value)
12
+ end
13
+
14
+ def self.from_rgb(r, g, b)
15
+ rgb = [r,g,b]
16
+ rgb.map!{|c| c / 255.0}
17
+ min_rgb = rgb.min
18
+ max_rgb = rgb.max
19
+ delta = max_rgb - min_rgb
20
+
21
+ lightness = (max_rgb + min_rgb) / 2.0
22
+
23
+ if delta < 1e-5
24
+ hue = 0
25
+ saturation = 0
26
+ else
27
+ saturation = if ( lightness < 0.5 )
28
+ delta / ( max_rgb + min_rgb )
29
+ else
30
+ delta / ( 2 - max_rgb - min_rgb )
31
+ end
32
+
33
+ deltas = rgb.map{|c| (((max_rgb - c) / 6.0) + (delta / 2.0)) / delta}
34
+
35
+ hue = if (rgb[0] - max_rgb).abs < 1e-5
36
+ deltas[2] - deltas[1]
37
+ elsif (rgb[1] - max_rgb).abs < 1e-5
38
+ ( 1.0 / 3.0 ) + deltas[0] - deltas[2]
39
+ else
40
+ ( 2.0 / 3.0 ) + deltas[1] - deltas[0]
41
+ end
42
+ hue += 1 if hue < 0
43
+ hue -= 1 if hue > 1
44
+ end
45
+ from_fractions(hue, saturation, lightness)
46
+ end
47
+
48
+ def self.from_fractions(hue, saturation, lightness)
49
+ HSL.new(360 * hue, saturation, lightness)
50
+ end
51
+
52
+ def initialize(h, s, l)
53
+ self.h = h
54
+ self.s = s
55
+ self.l = l
56
+ end
57
+
58
+ def to_color
59
+ m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s
60
+ m1 = l * 2 - m2
61
+ Sass::Script::Color.new([hue_to_rgb(m1, m2, hp + 1.0/3),
62
+ hue_to_rgb(m1, m2, hp),
63
+ hue_to_rgb(m1, m2, hp - 1.0/3)].map { |c| (c * 0xff).round })
64
+ end
65
+
66
+ def h=(hue)
67
+ @h = hue % 360
68
+ end
69
+
70
+ def s=(saturation)
71
+ @s = if saturation < 0
72
+ 0.0
73
+ elsif saturation > 1
74
+ 1.0
75
+ else
76
+ saturation
77
+ end
78
+ end
79
+
80
+ def l=(lightness)
81
+ @l = if lightness < 0
82
+ 0.0
83
+ elsif lightness > 1
84
+ 1.0
85
+ else
86
+ lightness
87
+ end
88
+ end
89
+
90
+ private
91
+ #hue as a percentage
92
+ def hp
93
+ h / 360.0
94
+ end
95
+ # helper for making rgb
96
+ def hue_to_rgb(m1, m2, h)
97
+ h += 1 if h < 0
98
+ h -= 1 if h > 1
99
+ return m1 + (m2 - m1) * h * 6 if h * 6 < 1
100
+ return m2 if h * 2 < 1
101
+ return m1 + (m2 - m1) * (2.0/3 - h) * 6 if h * 3 < 2
102
+ return m1
103
+ end
104
+
105
+ end
106
+ end
107
+ end
108
+
@@ -0,0 +1,73 @@
1
+ require 'sass'
2
+
3
+ module Sass::Script::Functions
4
+ # Takes a color object and amount by which to lighten it (0 to 100).
5
+ def lighten(color, amount)
6
+ hsl = Compass::Colors::HSL.from_color(color)
7
+ hsl.l += (1 - hsl.l) * (amount.value / 100.0)
8
+ hsl.to_color
9
+ end
10
+
11
+ # Takes a color object and amount by which to darken it (0 to 100).
12
+ def darken(color, amount)
13
+ hsl = Compass::Colors::HSL.from_color(color)
14
+ hsl.l *= 1.0 - (amount.value / 100.0)
15
+ hsl.to_color
16
+ end
17
+
18
+ # Saturate (make a color "richer") a color by the given amount (0 to 100)
19
+ def saturate(color, amount)
20
+ hsl = Compass::Colors::HSL.from_color(color)
21
+ hsl.s += (1 - hsl.s) * (amount.value / 100.0)
22
+ hsl.to_color
23
+ end
24
+
25
+ # Desaturate (make a color "grayer") a color by the given amount (0 to 100)
26
+ def desaturate(color, amount)
27
+ hsl = Compass::Colors::HSL.from_color(color)
28
+ hsl.s *= (1.0 - (amount.value / 100.0))
29
+ hsl.to_color
30
+ end
31
+
32
+ # Return the hue of a color as a number between 0 and 360
33
+ def hue(color)
34
+ Sass::Script::Number.new(Compass::Colors::HSL.from_color(color).h.round)
35
+ end
36
+
37
+ # Return the saturation of a color as a number between 0 and 100
38
+ def saturation(color)
39
+ Sass::Script::Number.new((Compass::Colors::HSL.from_color(color).s * 100).round)
40
+ end
41
+
42
+ # Return the luminosity of a color as a number between 0 and 100
43
+ def luminosity(color)
44
+ Sass::Script::Number.new((Compass::Colors::HSL.from_color(color).l * 100).round)
45
+ end
46
+
47
+ # Mixes two colors by some amount (0 to 100). Defaults to 50.
48
+ def mix(color1, color2, amount = nil)
49
+ percent = amount ? amount.value.round / 100.0 : 0.5
50
+ new_colors = color1.value.zip(color2.value).map{|c1, c2| (c1 * percent) + (c2 * (1 - percent))}
51
+ Sass::Script::Color.new(new_colors)
52
+ end
53
+
54
+ # Returns the grayscale equivalent color for the given color
55
+ def grayscale(color)
56
+ hsl = Compass::Colors::HSL.from_color(color)
57
+ g = (hsl.l * 255).round
58
+ Sass::Script::Color.new([g, g, g])
59
+ end
60
+
61
+ # adjust the hue of a color by the given number of degrees.
62
+ def adjust_hue(color, degrees)
63
+ hsl = Compass::Colors::HSL.from_color(color)
64
+ degrees = degrees.value.to_f.round if degrees.is_a?(Sass::Script::Literal)
65
+ hsl.h += degrees
66
+ hsl.to_color
67
+ end
68
+
69
+ def complement(color)
70
+ adjust_hue color, 180
71
+ end
72
+
73
+ end
@@ -0,0 +1,43 @@
1
+ module BeApproximatelyTheSameColorAsMatcher
2
+ class BeApproximatelyTheSameColorAs
3
+ def initialize(expected)
4
+ @expected = expected
5
+ end
6
+
7
+ def matches?(target)
8
+ @target = target
9
+ @target.value.zip(@expected.value).all?{|e,t| (e-t).abs <= 1}
10
+ end
11
+
12
+ def failure_message
13
+ "expected <#{to_string(@target)}> to " +
14
+ "be approximately the same as <#{to_string(@expected)}>"
15
+ end
16
+
17
+ def negative_failure_message
18
+ "expected <#{to_string(@target)}> not to " +
19
+ "be approximately the same as <#{to_string(@expected)}>"
20
+ end
21
+
22
+ # Returns string representation of an object.
23
+ def to_string(value)
24
+ # indicate a nil
25
+ if value.nil?
26
+ 'nil'
27
+ end
28
+
29
+ # join arrays
30
+ if value.class == Array
31
+ return value.join(", ")
32
+ end
33
+
34
+ # otherwise return to_s() instead of inspect()
35
+ return value.to_s
36
+ end
37
+ end
38
+
39
+ # Actual matcher that is exposed.
40
+ def be_approximately_the_same_color_as(expected)
41
+ BeApproximatelyTheSameColorAs.new(expected)
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require File.join(File.dirname(__FILE__), 'approximate_color_matching')
4
+
5
+ Spec::Runner.configure do |config|
6
+ config.include(BeApproximatelyTheSameColorAsMatcher)
7
+ end
8
+
9
+ require 'compass-colors'
10
+
11
+ describe "sass extensions" do
12
+ it "should lighten red into pink" do
13
+ pink = invoke(:lighten, color(255,0,0), number(50))
14
+ pink.should be_approximately_the_same_color_as(color(255,127,127))
15
+ end
16
+
17
+ it "should darken red into maroon" do
18
+ maroon = invoke(:darken, color(255,0,0), number(50))
19
+ maroon.should be_approximately_the_same_color_as(color(127,0,0))
20
+ end
21
+
22
+ it "should darken white into gray and back again" do
23
+ darker = invoke(:darken, color(0xff, 0xff, 0xff), number(50))
24
+ lighter_again = invoke(:lighten, darker, number(100))
25
+ color(0xff, 0xff, 0xff).should be_approximately_the_same_color_as(lighter_again)
26
+ end
27
+
28
+ it "shouldn't saturate fully saturated colors" do
29
+ saturated = invoke(:saturate, color(0, 127, 127), number(50))
30
+ saturated.should be_approximately_the_same_color_as(color(0, 127, 127))
31
+ end
32
+
33
+ def invoke(name, *args)
34
+ Sass::Script::Functions::EvaluationContext.new({}).send(name, *args)
35
+ end
36
+
37
+ def color(r,g,b)
38
+ Sass::Script::Color.new([r,g,b])
39
+ end
40
+
41
+ def number(num)
42
+ Sass::Script::Number.new(num)
43
+ end
44
+ end
@@ -0,0 +1,28 @@
1
+ // In theory the lightness and saturation values of corresponding colors should not change.
2
+ // In reality, these values should be adjusted to create a more pleasant color combination.
3
+ // There is not any mathematical formula for this, but you can use the lighten, darken,
4
+ // saturate and desaturate functions to adjust your main colors.
5
+ !base_color ||= red
6
+ !support_color = adjust_hue(!base_color, 30)
7
+ !accent_color = adjust_hue(!base_color, -30)
8
+
9
+ !dark_base_color = darken(!base_color, 25)
10
+ !darker_base_color = darken(!base_color, 50)
11
+ !darkest_base_color = darken(!base_color, 75)
12
+ !light_base_color = lighten(!base_color, 25)
13
+ !lighter_base_color = lighten(!base_color, 50)
14
+ !lightest_base_color = lighten(!base_color, 75)
15
+
16
+ !dark_support_color = darken(!support_color, 25)
17
+ !darker_support_color = darken(!support_color, 50)
18
+ !darkest_support_color = darken(!support_color, 75)
19
+ !light_support_color = lighten(!support_color, 25)
20
+ !lighter_support_color = lighten(!support_color, 50)
21
+ !lightest_support_color = lighten(!support_color, 75)
22
+
23
+ !dark_accent_color = darken(!accent_color, 25)
24
+ !darker_accent_color = darken(!accent_color, 50)
25
+ !darkest_accent_color = darken(!accent_color, 75)
26
+ !light_accent_color = lighten(!accent_color, 25)
27
+ !lighter_accent_color = lighten(!accent_color, 50)
28
+ !lightest_accent_color = lighten(!accent_color, 75)
@@ -0,0 +1 @@
1
+ stylesheet '_theme.sass'
@@ -0,0 +1,7 @@
1
+ !base_color ||= red
2
+ !dark_base_color = darken(!base_color, 25)
3
+ !darker_base_color = darken(!base_color, 50)
4
+ !darkest_base_color = darken(!base_color, 75)
5
+ !light_base_color = lighten(!base_color, 25)
6
+ !lighter_base_color = lighten(!base_color, 75)
7
+ !lightest_base_color = lighten(!base_color, 50)
@@ -0,0 +1 @@
1
+ stylesheet '_theme.sass'
@@ -0,0 +1,20 @@
1
+ // In theory the lightness and saturation values of corresponding colors should not change.
2
+ // In reality, these values should be adjusted to create a more pleasant color combination.
3
+ // There is not any mathematical formula for this, but you can use the lighten, darken,
4
+ // saturate and desaturate functions to adjust your main colors.
5
+ !base_color ||= red
6
+ !complementary_color = complement(!base_color)
7
+
8
+ !dark_base_color = darken(!base_color, 25)
9
+ !darker_base_color = darken(!base_color, 50)
10
+ !darkest_base_color = darken(!base_color, 75)
11
+ !light_base_color = lighten(!base_color, 25)
12
+ !lighter_base_color = lighten(!base_color, 50)
13
+ !lightest_base_color = lighten(!base_color, 75)
14
+
15
+ !dark_complementary_color = darken(!complementary_color, 25)
16
+ !darker_complementary_color = darken(!complementary_color, 50)
17
+ !darkest_complementary_color = darken(!complementary_color, 75)
18
+ !light_complementary_color = lighten(!complementary_color, 25)
19
+ !lighter_complementary_color = lighten(!complementary_color, 50)
20
+ !lightest_complementary_color = lighten(!complementary_color, 75)
@@ -0,0 +1 @@
1
+ stylesheet '_theme.sass'
@@ -0,0 +1,28 @@
1
+ // In theory the lightness and saturation values of corresponding colors should not change.
2
+ // In reality, these values should be adjusted to create a more pleasant color combination.
3
+ // There is not any mathematical formula for this, but you can use the lighten, darken,
4
+ // saturate and desaturate functions to adjust your main colors.
5
+ !base_color ||= red
6
+ !complement_support_color = adjust_hue(!base_color, 180 + 30)
7
+ !complement_accent_color = adjust_hue(!base_color, 180 - 30)
8
+
9
+ !dark_base_color = darken(!base_color, 25)
10
+ !darker_base_color = darken(!base_color, 50)
11
+ !darkest_base_color = darken(!base_color, 75)
12
+ !light_base_color = lighten(!base_color, 25)
13
+ !lighter_base_color = lighten(!base_color, 50)
14
+ !lightest_base_color = lighten(!base_color, 75)
15
+
16
+ !dark_complement_support_color = darken(!complement_support_color, 25)
17
+ !darker_complement_support_color = darken(!complement_support_color, 50)
18
+ !darkest_complement_support_color = darken(!complement_support_color, 75)
19
+ !light_complement_support_color = lighten(!complement_support_color, 25)
20
+ !lighter_complement_support_color = lighten(!complement_support_color, 50)
21
+ !lightest_complement_support_color = lighten(!complement_support_color, 75)
22
+
23
+ !dark_complement_accent_color = darken(!complement_accent_color, 25)
24
+ !darker_complement_accent_color = darken(!complement_accent_color, 50)
25
+ !darkest_complement_accent_color = darken(!complement_accent_color, 75)
26
+ !light_complement_accent_color = lighten(!complement_accent_color, 25)
27
+ !lighter_complement_accent_color = lighten(!complement_accent_color, 50)
28
+ !lightest_complement_accent_color = lighten(!complement_accent_color, 75)
@@ -0,0 +1 @@
1
+ stylesheet '_theme.sass'
@@ -0,0 +1,28 @@
1
+ // In theory the lightness and saturation values of corresponding colors should not change.
2
+ // In reality, these values should be adjusted to create a more pleasant color combination.
3
+ // There is not any mathematical formula for this, but you can use the lighten, darken,
4
+ // saturate and desaturate functions to adjust your main colors.
5
+ !base_color ||= red
6
+ !support_color = adjust_hue(!base_color, 120)
7
+ !accent_color = adjust_hue(!base_color, -120)
8
+
9
+ !dark_base_color = darken(!base_color, 25)
10
+ !darker_base_color = darken(!base_color, 50)
11
+ !darkest_base_color = darken(!base_color, 75)
12
+ !light_base_color = lighten(!base_color, 25)
13
+ !lighter_base_color = lighten(!base_color, 50)
14
+ !lightest_base_color = lighten(!base_color, 75)
15
+
16
+ !dark_support_color = darken(!support_color, 25)
17
+ !darker_support_color = darken(!support_color, 50)
18
+ !darkest_support_color = darken(!support_color, 75)
19
+ !light_support_color = lighten(!support_color, 25)
20
+ !lighter_support_color = lighten(!support_color, 50)
21
+ !lightest_support_color = lighten(!support_color, 75)
22
+
23
+ !dark_accent_color = darken(!accent_color, 25)
24
+ !darker_accent_color = darken(!accent_color, 50)
25
+ !darkest_accent_color = darken(!accent_color, 75)
26
+ !light_accent_color = lighten(!accent_color, 25)
27
+ !lighter_accent_color = lighten(!accent_color, 50)
28
+ !lightest_accent_color = lighten(!accent_color, 75)
@@ -0,0 +1 @@
1
+ stylesheet '_theme.sass'
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: compass-colors
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Chris Eppstein
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-08-03 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: chriseppstein-compass
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.8.7
24
+ version:
25
+ description: Sass Extensions and color theme templates to make working with colors easier and more maintainable.
26
+ email: chris@eppsteins.net
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README.markdown
33
+ files:
34
+ - README.markdown
35
+ - Rakefile
36
+ - VERSION.yml
37
+ - example/config.rb
38
+ - example/split_compliment_example.html
39
+ - example/src/_split_compliment_theme.sass
40
+ - example/src/screen.sass
41
+ - lib/compass-colors.rb
42
+ - lib/compass-colors/compass_extension.rb
43
+ - lib/compass-colors/hsl.rb
44
+ - lib/compass-colors/sass_extensions.rb
45
+ - spec/approximate_color_matching.rb
46
+ - spec/sass_extensions_spec.rb
47
+ - templates/analogous/_theme.sass
48
+ - templates/analogous/manifest.rb
49
+ - templates/basic/_theme.sass
50
+ - templates/basic/manifest.rb
51
+ - templates/complementary/_theme.sass
52
+ - templates/complementary/manifest.rb
53
+ - templates/split_complement/_theme.sass
54
+ - templates/split_complement/manifest.rb
55
+ - templates/triadic/_theme.sass
56
+ - templates/triadic/manifest.rb
57
+ has_rdoc: true
58
+ homepage: http://compass-style.org
59
+ licenses: []
60
+
61
+ post_install_message:
62
+ rdoc_options:
63
+ - --charset=UTF-8
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ requirements: []
79
+
80
+ rubyforge_project:
81
+ rubygems_version: 1.3.5
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: Color Support for Compass & Sass
85
+ test_files:
86
+ - spec/approximate_color_matching.rb
87
+ - spec/sass_extensions_spec.rb