chroma-sass 1.0.0.alpha.5 → 1.0.0.beta.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb36b676551138964c229945e811261ea436f152
4
- data.tar.gz: 40511de621e5059aebc7b0bf27ee7f9d00559ec5
3
+ metadata.gz: 54e376ee67d2b82ac4cb331e0e53d57847da5ef4
4
+ data.tar.gz: 5d0b0134a9f7627338c32a6f74d6528eeba3d5f2
5
5
  SHA512:
6
- metadata.gz: af4eb5a017b45b290e96e31d0640e67acfbaeae343713405699d7c72f7ad2e25a57b83da1e5bf546890e1ad03e20a3f9433add16b5cf34e9ccbd73a40581c303
7
- data.tar.gz: a463b2746e734f247fff4d06537c203c142bb38b8b73a20aeae1e9f01dcf5cad84d8889c242695451ca119cd7b73199246908b9e2ccadcc07aea7872fd5227c9
6
+ metadata.gz: a230b25168e748fdc06d8e05ea4381561e081ac3914686af70a208745ab4527a3b48e96f548ff32f25ccdc0282982d41f4ed53a1c9adeb0d6651b5c0ec909d8c
7
+ data.tar.gz: 3450e20a9a7e430f16aa6e3b3ac3ef617fbab647c2e9b0188a988c29c74942ff4e05cc2c54c7d3115b2be01bdbfc48e66a99877c0b9e92f15b531ca58704ec43
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # About Chroma
2
2
 
3
- WARNING: This is alpha-quality software, so the API is guaranteed to change. But you can always pin your Gemfile to the specific version number you are using.
4
-
5
3
  Chroma is a Sass library that manages a project's color names, color variations, and color schemes.
6
4
 
7
5
  ## USAGE
@@ -17,13 +15,11 @@ $chroma: define-default-color-scheme('Descriptive color names for use in "functi
17
15
 
18
16
  // Add colors to the default color scheme.
19
17
  $chroma: add-colors((
20
- white: #fff,
21
- off-white: #eaeaea,
22
- grey-medium: #706e6c,
23
- black: #000,
24
-
25
- blue: #0e71b8,
26
- blue-dark: shade(#0e71b8, 25%),
18
+ white: #fff,
19
+ grey-medium: #706e6c,
20
+ black: #000,
21
+ blue: #0e71b8,
22
+ red: #c00,
27
23
  ));
28
24
 
29
25
  // Create a "functional" color scheme that inherits from the default color scheme.
@@ -31,21 +27,19 @@ $chroma: define-color-scheme('functional', 'Colors used by functional parts of t
31
27
 
32
28
  // Add colors to the functional color scheme.
33
29
  $chroma: add-colors('functional', (
30
+ // Define a primary highlight color.
31
+ primary: 'blue',
32
+
34
33
  // Have the "text" color use the hex value given to the "black" color. Even
35
34
  // though the "functional" color scheme doesn't define "black", it inherits
36
35
  // from the "default" color scheme where "black" is defined.
37
- text: 'black',
38
- text-subdued: 'grey-medium',
36
+ text: 'black',
39
37
 
40
- // The primary highlight color.
41
- primary: 'blue',
38
+ // Colors can inherit from colors named earlier in the call to add-colors().
39
+ heading: 'text',
42
40
 
43
41
  // Have the link color use the primary color.
44
- link: 'primary',
45
- link-active: 'blue-dark',
46
-
47
- site-name: 'primary',
48
- heading: 'text',
42
+ link: 'primary',
49
43
  ));
50
44
 
51
45
  // Create an "alternate" color scheme that inherits from the "functional" color scheme.
@@ -53,8 +47,7 @@ $chroma: define-color-scheme('alternate', 'Alternate colors for the site.', 'fun
53
47
 
54
48
  // Add colors to the alternate color scheme.
55
49
  $chroma: add-colors('alternate', (
56
- red: #c00,
57
- primary: 'red',
50
+ primary: 'red',
58
51
  ));
59
52
 
60
53
  // Set which color scheme should be used by default when calling the color()
@@ -72,10 +65,7 @@ $chroma-active-scheme: 'functional';
72
65
 
73
66
  .alternate-color-section & {
74
67
  // Outputs #c00.
75
- color: color(link, alternate);
76
- // @TODO: Whoops! This doesn't work yet because it finds the "link" color
77
- // value in the functional color scheme and never sees that the primary
78
- // color has changed.
68
+ color: color(alternate, link);
79
69
  }
80
70
  }
81
71
  }
@@ -92,7 +82,7 @@ gem install chroma-sass
92
82
  If you are using Bundler (and you should!) then you can add it to an existing project by editing the project's Gemfile and adding this line:
93
83
 
94
84
  ```ruby
95
- gem 'chroma-sass', '~> 1.0.0.alpha.5'
85
+ gem 'chroma-sass', '~> 1.0.0.beta.1'
96
86
  ```
97
87
 
98
88
  If you are using Compass, edit your project's config.rb and add this line:
@@ -114,3 +104,5 @@ You can then start using Chroma in your Sass files. Just add this line to one of
114
104
  ## LICENSE
115
105
 
116
106
  Available under the GPL v2 license. See [LICENSE.txt](https://github.com/JohnAlbin/chroma/blob/master/LICENSE.txt).
107
+
108
+ [![Build Status](https://travis-ci.org/JohnAlbin/chroma.png?branch=master)](https://travis-ci.org/JohnAlbin/chroma)
data/chroma-sass.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.homepage = 'http://github.com/JohnAlbin/chroma'
10
10
  spec.rubyforge_project =
11
11
 
12
- spec.version = '1.0.0.alpha.5'
13
- spec.date = '2015-04-30'
12
+ spec.version = '1.0.0.beta.1'
13
+ spec.date = '2015-05-05'
14
14
  spec.licenses = ['GPL-2']
15
15
 
16
16
  spec.authors = ['John Albin Wilkins']
@@ -1,20 +1,19 @@
1
+ // Colour module
1
2
  //
2
- // Colour module for Chroma.
3
+ // An optional module for Chroma that uses "colour" instead of "color" in all
4
+ // its variables and functions.
3
5
  //
6
+ // Style guide: colour
4
7
 
5
8
  // Import the main module of Chroma.
6
9
  @import './functions';
7
10
 
8
11
  // The one true spelling.
9
- $chroma-spelling : 'colour';
10
-
12
+ $_chroma-spelling: 'colour';
11
13
 
12
14
  // is-dangerous-colour-keyword($name)
13
15
  //
14
- // Checks if the given name is a colour keyword. Returns false or a string
15
- // containing the name of the colour keyword.
16
- //
17
- // $name - The name of the colour to check.
16
+ // See `is-dangerous-color-keyword()` for the documentation.
18
17
  //
19
18
  // Style guide: colour.is-dangerous-colour-keyword
20
19
  @function is-dangerous-colour-keyword($name) {
@@ -23,10 +22,7 @@ $chroma-spelling : 'colour';
23
22
 
24
23
  // is-colour-keyword($name)
25
24
  //
26
- // Checks if the given name is a colour keyword. Returns false or a string
27
- // containing the name of the colour keyword.
28
- //
29
- // $name - The name of the colour to check.
25
+ // See `is-color-keyword()` for the documentation.
30
26
  //
31
27
  // Style guide: colour.is-colour-keyword
32
28
  @function is-colour-keyword($name) {
@@ -35,21 +31,7 @@ $chroma-spelling : 'colour';
35
31
 
36
32
  // colour([$scheme,] $name)
37
33
  //
38
- // Returns a colour value given a key word and optional colour scheme. If the
39
- // named colour is not in the colour scheme, the colour scheme's parent scheme will
40
- // be searched.
41
- //
42
- // Usage:
43
- // ```scss
44
- // .ex {
45
- // background-color: colour(body-bg);
46
- // border: 1px solid colour(grace, border);
47
- // }
48
- // ```
49
- //
50
- // $name - The name of the requested colour.
51
- // $scheme - Optional colour scheme to choose from; defaults to
52
- // `$chroma-active-scheme`.
34
+ // See `color()` for the documentation.
53
35
  //
54
36
  // Style guide: colour.colour
55
37
  @function colour($scheme, $name: null) {
@@ -58,27 +40,7 @@ $chroma-spelling : 'colour';
58
40
 
59
41
  // define-colour-scheme($scheme [, $description] [, $parent])
60
42
  //
61
- // Define a new colour scheme and, optionally, set its description and parent
62
- // colour scheme.
63
- //
64
- // When searching for a colour and the colour scheme does not define that
65
- // particular colour, the parent colour scheme will be checked to see if it
66
- // defines that colour.
67
- //
68
- // By default, all colour schemes inherit their colours from the default colour
69
- // scheme. Optionally, a colour scheme can choose to inherit from a different
70
- // colour scheme by specifying the `$parent` parameter.
71
- //
72
- // Usage:
73
- // ```scss
74
- // $chroma: define-colour-scheme(taiwan, "Taiwan's colours");
75
- // $chroma: define-colour-scheme(taipei, "Taipei's colours", $parent: taiwan);
76
- // ```
77
- //
78
- // $scheme - The name of the new colour scheme.
79
- // $description - Optional description of the colour scheme.
80
- // $parent - The parent colour scheme to inherit colours from; defaults to
81
- // `default` (i.e. `$CHROMA_DEFAULT_SCHEME`).
43
+ // See `define-color-scheme()` for the documentation.
82
44
  //
83
45
  // Style guide: colour.define-colour-scheme
84
46
  @function define-colour-scheme($scheme, $description: '', $parent: $CHROMA_DEFAULT_SCHEME) {
@@ -87,14 +49,7 @@ $chroma-spelling : 'colour';
87
49
 
88
50
  // define-default-colour-scheme($description)
89
51
  //
90
- // Sets the description of the default colour scheme.
91
- //
92
- // Usage:
93
- // ```scss
94
- // $chroma: define-default-colour-scheme('Default colours');
95
- // ```
96
- //
97
- // $description - Description of the default colour scheme.
52
+ // See `define-default-color-scheme()` for the documentation.
98
53
  //
99
54
  // Style guide: colour.define-default-colour-scheme
100
55
  @function define-default-colour-scheme($description) {
@@ -103,28 +58,7 @@ $chroma-spelling : 'colour';
103
58
 
104
59
  // add-colours([$scheme,] $colours)
105
60
  //
106
- // Add the colours to an existing colour scheme.
107
- //
108
- // Usage:
109
- // ```scss
110
- // $my-colours: add-colours('admiral', (
111
- // nav: 'link',
112
- // nav-visited: colour(link-visited),
113
- // nav-focus: colour(link-focus),
114
- // ));
115
- // ```
116
- //
117
- // If you wish to add colours to the active scheme, you can just use:
118
- // ```scss
119
- // $my-colours: add-colours((
120
- // nav: 'link',
121
- // nav-visited: colour(link-visited),
122
- // nav-focus: colour(link-focus),
123
- // ));
124
- // ```
125
- //
126
- // $colours - A Sass map containing the new colours.
127
- // $scheme - The name of an existing colour scheme.
61
+ // See `add-colors()` for the documentation.
128
62
  //
129
63
  // Style guide: functions.add-colours
130
64
  @function add-colours($scheme, $colours: null) {
@@ -1,6 +1,8 @@
1
+ // Functions module
1
2
  //
2
- // Main module for Chroma.
3
+ // The main module for Chroma.
3
4
  //
5
+ // Style guide: functions
4
6
 
5
7
  // Import the global variables and internal functions needed by all of Chroma.
6
8
  @import './variables';
@@ -12,71 +14,47 @@ $chroma: _chroma-init();
12
14
 
13
15
  // is-dangerous-color-keyword($name)
14
16
  //
17
+ // This function is used by color(), add-colors() and others to check if the
18
+ // given color name is a "dangerous" color keyword. Returns false or causes the
19
+ // Sass compilation to die with an error message containing the name of the
20
+ // dangerous color keyword.
21
+ //
15
22
  // If a real Sass color is given as a color name to Chroma, it is in danger of
16
- // being converted to a hexadecimal value before Chroma can read the name. And
17
- // some hex values map to more than one keyword (e.g. gray and grey), so the
23
+ // being converted to a hexadecimal value before Chroma can read the name. (This
24
+ // happens when Sass' "compressed" output style is used.) And some hex values
25
+ // map to more than one keyword (e.g. gray/grey and fuchsia/magenta), so the
18
26
  // original name would be irretrievable.
19
27
  //
20
- // Checks if the given name is one of those dangerous color keywords. Returns
21
- // false or causes the Sass compilation to die with an error message containing
22
- // the name of the ambiguous color keywords.
28
+ // Since Chroma will confuse fuchsia and magenta (among others) under Sass'
29
+ // "compressed" output style, it would generate confusing results. To prevent
30
+ // this, Chroma halts Sass compilation when it detects an ambiguous color
31
+ // keyword. While the error only occurs under Sass' "compressed" output style,
32
+ // Chroma halts under all output styles. Otherwise, Chroma could behave
33
+ // differently on production vs. development environments. If you are really
34
+ // sure Chroma will never be run with Sass' "compressed" output style, you can
35
+ // disable this feature by setting `$chroma-die-on-dangerous-keyword: false;`.
23
36
  //
24
37
  // $name - The name of the color to check.
25
38
  //
26
39
  // Style guide: functions.is-dangerous-color-keyword
27
40
  @function is-dangerous-color-keyword($name) {
28
- $ambiguous-keywords: (
29
- 'aqua': 'aqua or cyan',
30
- 'cyan': 'aqua or cyan',
31
- 'fuchsia': 'fuchsia or magenta',
32
- 'magenta': 'fuchsia or magenta',
33
- 'darkgray': 'darkgray or darkgrey',
34
- 'darkgrey': 'darkgray or darkgrey',
35
- 'darkslategray': 'darkslategray or darkslategrey',
36
- 'darkslategrey': 'darkslategray or darkslategrey',
37
- 'dimgray': 'dimgray or dimgrey',
38
- 'dimgrey': 'dimgray or dimgrey',
39
- 'gray': 'gray or grey',
40
- 'grey': 'gray or grey',
41
- 'lightgray': 'lightgray or lightgrey',
42
- 'lightgrey': 'lightgray or lightgrey',
43
- 'lightslategray': 'lightslategray or lightslategrey',
44
- 'lightslategrey': 'lightslategray or lightslategrey',
45
- 'slategray': 'slategray or slategrey',
46
- 'slategrey': 'slategray or slategrey',
47
- );
48
- $converted-keywords: (
49
- '#00ffff': 'aqua or cyan',
50
- '#0ff': 'aqua or cyan',
51
- '#ff00ff': 'fuchsia or magenta',
52
- '#f0f': 'fuchsia or magenta',
53
- '#a9a9a9': 'darkgray or darkgrey',
54
- '#2f4f4f': 'darkslategray or darkslategrey',
55
- '#696969': 'dimgray or dimgrey',
56
- '#808080': 'gray or grey',
57
- '#d3d3d3': 'lightgray or lightgrey',
58
- '#778899': 'lightslategray or lightslategrey',
59
- '#789': 'lightslategray or lightslategrey',
60
- '#708090': 'slategray or slategrey',
61
- );
62
-
63
41
  @if type-of($name) == 'color' {
64
42
  // Convert the color to a string.
65
43
  $name: inspect($name);
66
44
  // Check if Sass will convert the color into a hex value that we can't
67
45
  // convert back to a keyword.
68
- @if map-has-key($ambiguous-keywords, $name) {
69
- @if $chroma-die-on-ambiguous-keyword {
70
- @error "Sass will convert #{$name} into a hexidecimal value when it uses the \"compressed\" output style and Chroma will not be able to determine if the original name was #{map-get($ambiguous-keywords, $name)}. To prevent this error, quote the keyword like this: '#{$name}'.";
46
+ @if map-has-key($_chroma-dangerous-keywords, $name) {
47
+ @if $chroma-die-on-dangerous-keyword {
48
+ @error "Sass will convert #{$name} into a hexidecimal value when it uses the \"compressed\" output style and Chroma will not be able to determine if the original name was #{map-get($_chroma-dangerous-keywords, $name)}. To prevent this error, quote the keyword like this: '#{$name}'.";
71
49
  }
72
50
  @else {
73
- @return map-get($ambiguous-keywords, $name);
51
+ @return map-get($_chroma-dangerous-keywords, $name);
74
52
  }
75
53
  }
76
54
  // Check if Sass _has_ converted the color into a hex value that we can't
77
55
  // convert back to a keyword.
78
- @else if map-has-key($converted-keywords, $name) {
79
- @error "Sass has converted a color keyword into the hexidecimal value, #{$name}, and Chroma was not be able to determine if the original name was #{map-get($ambiguous-keywords, $name)}. To prevent this error, use quotes around the keyword.";
56
+ @else if map-has-key($_chroma-dangerous-converted-keywords, $name) {
57
+ @error "Sass has converted a color keyword into the hexidecimal value, #{$name}, and Chroma was not be able to determine if the original name was #{map-get($_chroma-dangerous-converted-keywords, $name)}. To prevent this error, use quotes around the keyword.";
80
58
  }
81
59
  }
82
60
  @return false;
@@ -99,311 +77,10 @@ $chroma: _chroma-init();
99
77
  // If true, the is-dangerous-color-keyword() would @die before it returned.
100
78
  }
101
79
 
102
- // CSS4 color keyword are from
103
- // http://dev.w3.org/csswg/css-color-4/#named-colors
104
- $css4-color-keywords: (
105
- 'aliceblue': 'aliceblue',
106
- '#f0f8ff': 'aliceblue',
107
- 'antiquewhite': 'antiquewhite',
108
- '#faebd7': 'antiquewhite',
109
- 'aqua': 'aqua',
110
- 'aquamarine': 'aquamarine',
111
- '#7fffd4': 'aquamarine',
112
- 'azure': 'azure',
113
- '#f0ffff': 'azure',
114
- 'beige': 'beige',
115
- '#f5f5dc': 'beige',
116
- 'bisque': 'bisque',
117
- '#ffe4c4': 'bisque',
118
- 'black': 'black',
119
- '#000000': 'black',
120
- '#000': 'black',
121
- 'blanchedalmond': 'blanchedalmond',
122
- '#ffebcd': 'blanchedalmond',
123
- 'blue': 'blue',
124
- '#0000ff': 'blue',
125
- '#00f': 'blue',
126
- 'blueviolet': 'blueviolet',
127
- '#8a2be2': 'blueviolet',
128
- 'brown': 'brown',
129
- '#a52a2a': 'brown',
130
- 'burlywood': 'burlywood',
131
- '#deb887': 'burlywood',
132
- 'cadetblue': 'cadetblue',
133
- '#5f9ea0': 'cadetblue',
134
- 'chartreuse': 'chartreuse',
135
- '#7fff00': 'chartreuse',
136
- 'chocolate': 'chocolate',
137
- '#d2691e': 'chocolate',
138
- 'coral': 'coral',
139
- '#ff7f50': 'coral',
140
- 'cornflowerblue': 'cornflowerblue',
141
- '#6495ed': 'cornflowerblue',
142
- 'cornsilk': 'cornsilk',
143
- '#fff8dc': 'cornsilk',
144
- 'crimson': 'crimson',
145
- '#dc143c': 'crimson',
146
- 'cyan': 'cyan',
147
- '#00ffff': 'cyan',
148
- '#0ff': 'cyan',
149
- 'darkblue': 'darkblue',
150
- '#00008b': 'darkblue',
151
- 'darkcyan': 'darkcyan',
152
- '#008b8b': 'darkcyan',
153
- 'darkgoldenrod': 'darkgoldenrod',
154
- '#b8860b': 'darkgoldenrod',
155
- 'darkgray': 'darkgray',
156
- '#a9a9a9': 'darkgray',
157
- 'darkgreen': 'darkgreen',
158
- '#006400': 'darkgreen',
159
- 'darkgrey': 'darkgrey',
160
- 'darkkhaki': 'darkkhaki',
161
- '#bdb76b': 'darkkhaki',
162
- 'darkmagenta': 'darkmagenta',
163
- '#8b008b': 'darkmagenta',
164
- 'darkolivegreen': 'darkolivegreen',
165
- '#556b2f': 'darkolivegreen',
166
- 'darkorange': 'darkorange',
167
- '#ff8c00': 'darkorange',
168
- 'darkorchid': 'darkorchid',
169
- '#9932cc': 'darkorchid',
170
- 'darkred': 'darkred',
171
- '#8b0000': 'darkred',
172
- 'darksalmon': 'darksalmon',
173
- '#e9967a': 'darksalmon',
174
- 'darkseagreen': 'darkseagreen',
175
- '#8fbc8f': 'darkseagreen',
176
- 'darkslateblue': 'darkslateblue',
177
- '#483d8b': 'darkslateblue',
178
- 'darkslategray': 'darkslategray',
179
- '#2f4f4f': 'darkslategray',
180
- 'darkslategrey': 'darkslategrey',
181
- 'darkturquoise': 'darkturquoise',
182
- '#00ced1': 'darkturquoise',
183
- 'darkviolet': 'darkviolet',
184
- '#9400d3': 'darkviolet',
185
- 'deeppink': 'deeppink',
186
- '#ff1493': 'deeppink',
187
- 'deepskyblue': 'deepskyblue',
188
- '#00bfff': 'deepskyblue',
189
- 'dimgray': 'dimgray',
190
- '#696969': 'dimgray',
191
- 'dimgrey': 'dimgrey',
192
- 'dodgerblue': 'dodgerblue',
193
- '#1e90ff': 'dodgerblue',
194
- 'firebrick': 'firebrick',
195
- '#b22222': 'firebrick',
196
- 'floralwhite': 'floralwhite',
197
- '#fffaf0': 'floralwhite',
198
- 'forestgreen': 'forestgreen',
199
- '#228b22': 'forestgreen',
200
- 'fuchsia': 'fuchsia',
201
- 'gainsboro': 'gainsboro',
202
- '#dcdcdc': 'gainsboro',
203
- 'ghostwhite': 'ghostwhite',
204
- '#f8f8ff': 'ghostwhite',
205
- 'gold': 'gold',
206
- '#ffd700': 'gold',
207
- 'goldenrod': 'goldenrod',
208
- '#daa520': 'goldenrod',
209
- 'gray': 'gray',
210
- '#808080': 'gray',
211
- 'green': 'green',
212
- '#008000': 'green',
213
- 'greenyellow': 'greenyellow',
214
- '#adff2f': 'greenyellow',
215
- 'grey': 'grey',
216
- 'honeydew': 'honeydew',
217
- '#f0fff0': 'honeydew',
218
- 'hotpink': 'hotpink',
219
- '#ff69b4': 'hotpink',
220
- 'indianred': 'indianred',
221
- '#cd5c5c': 'indianred',
222
- 'indigo': 'indigo',
223
- '#4b0082': 'indigo',
224
- 'ivory': 'ivory',
225
- '#fffff0': 'ivory',
226
- 'khaki': 'khaki',
227
- '#f0e68c': 'khaki',
228
- 'lavender': 'lavender',
229
- '#e6e6fa': 'lavender',
230
- 'lavenderblush': 'lavenderblush',
231
- '#fff0f5': 'lavenderblush',
232
- 'lawngreen': 'lawngreen',
233
- '#7cfc00': 'lawngreen',
234
- 'lemonchiffon': 'lemonchiffon',
235
- '#fffacd': 'lemonchiffon',
236
- 'lightblue': 'lightblue',
237
- '#add8e6': 'lightblue',
238
- 'lightcoral': 'lightcoral',
239
- '#f08080': 'lightcoral',
240
- 'lightcyan': 'lightcyan',
241
- '#e0ffff': 'lightcyan',
242
- 'lightgoldenrodyellow': 'lightgoldenrodyellow',
243
- '#fafad2': 'lightgoldenrodyellow',
244
- 'lightgray': 'lightgray',
245
- '#d3d3d3': 'lightgray',
246
- 'lightgreen': 'lightgreen',
247
- '#90ee90': 'lightgreen',
248
- 'lightgrey': 'lightgrey',
249
- 'lightpink': 'lightpink',
250
- '#ffb6c1': 'lightpink',
251
- 'lightsalmon': 'lightsalmon',
252
- '#ffa07a': 'lightsalmon',
253
- 'lightseagreen': 'lightseagreen',
254
- '#20b2aa': 'lightseagreen',
255
- 'lightskyblue': 'lightskyblue',
256
- '#87cefa': 'lightskyblue',
257
- 'lightslategray': 'lightslategray',
258
- '#778899': 'lightslategray',
259
- '#789': 'lightslategray',
260
- 'lightslategrey': 'lightslategrey',
261
- 'lightsteelblue': 'lightsteelblue',
262
- '#b0c4de': 'lightsteelblue',
263
- 'lightyellow': 'lightyellow',
264
- '#ffffe0': 'lightyellow',
265
- 'lime': 'lime',
266
- '#00ff00': 'lime',
267
- '#0f0': 'lime',
268
- 'limegreen': 'limegreen',
269
- '#32cd32': 'limegreen',
270
- 'linen': 'linen',
271
- '#faf0e6': 'linen',
272
- 'magenta': 'magenta',
273
- '#ff00ff': 'magenta',
274
- '#f0f': 'magenta',
275
- 'maroon': 'maroon',
276
- '#800000': 'maroon',
277
- 'mediumaquamarine': 'mediumaquamarine',
278
- '#66cdaa': 'mediumaquamarine',
279
- 'mediumblue': 'mediumblue',
280
- '#0000cd': 'mediumblue',
281
- 'mediumorchid': 'mediumorchid',
282
- '#ba55d3': 'mediumorchid',
283
- 'mediumpurple': 'mediumpurple',
284
- '#9370db': 'mediumpurple',
285
- 'mediumseagreen': 'mediumseagreen',
286
- '#3cb371': 'mediumseagreen',
287
- 'mediumslateblue': 'mediumslateblue',
288
- '#7b68ee': 'mediumslateblue',
289
- 'mediumspringgreen': 'mediumspringgreen',
290
- '#00fa9a': 'mediumspringgreen',
291
- 'mediumturquoise': 'mediumturquoise',
292
- '#48d1cc': 'mediumturquoise',
293
- 'mediumvioletred': 'mediumvioletred',
294
- '#c71585': 'mediumvioletred',
295
- 'midnightblue': 'midnightblue',
296
- '#191970': 'midnightblue',
297
- 'mintcream': 'mintcream',
298
- '#f5fffa': 'mintcream',
299
- 'mistyrose': 'mistyrose',
300
- '#ffe4e1': 'mistyrose',
301
- 'moccasin': 'moccasin',
302
- '#ffe4b5': 'moccasin',
303
- 'navajowhite': 'navajowhite',
304
- '#ffdead': 'navajowhite',
305
- 'navy': 'navy',
306
- '#000080': 'navy',
307
- 'oldlace': 'oldlace',
308
- '#fdf5e6': 'oldlace',
309
- 'olive': 'olive',
310
- '#808000': 'olive',
311
- 'olivedrab': 'olivedrab',
312
- '#6b8e23': 'olivedrab',
313
- 'orange': 'orange',
314
- '#ffa500': 'orange',
315
- 'orangered': 'orangered',
316
- '#ff4500': 'orangered',
317
- 'orchid': 'orchid',
318
- '#da70d6': 'orchid',
319
- 'palegoldenrod': 'palegoldenrod',
320
- '#eee8aa': 'palegoldenrod',
321
- 'palegreen': 'palegreen',
322
- '#98fb98': 'palegreen',
323
- 'paleturquoise': 'paleturquoise',
324
- '#afeeee': 'paleturquoise',
325
- 'palevioletred': 'palevioletred',
326
- '#db7093': 'palevioletred',
327
- 'papayawhip': 'papayawhip',
328
- '#ffefd5': 'papayawhip',
329
- 'peachpuff': 'peachpuff',
330
- '#ffdab9': 'peachpuff',
331
- 'peru': 'peru',
332
- '#cd853f': 'peru',
333
- 'pink': 'pink',
334
- '#ffc0cb': 'pink',
335
- 'plum': 'plum',
336
- '#dda0dd': 'plum',
337
- 'powderblue': 'powderblue',
338
- '#b0e0e6': 'powderblue',
339
- 'purple': 'purple',
340
- '#800080': 'purple',
341
- 'rebeccapurple': 'rebeccapurple',
342
- '#663399': 'rebeccapurple',
343
- 'red': 'red',
344
- '#ff0000': 'red',
345
- '#f00': 'red',
346
- 'rosybrown': 'rosybrown',
347
- '#bc8f8f': 'rosybrown',
348
- 'royalblue': 'royalblue',
349
- '#4169e1': 'royalblue',
350
- 'saddlebrown': 'saddlebrown',
351
- '#8b4513': 'saddlebrown',
352
- 'salmon': 'salmon',
353
- '#fa8072': 'salmon',
354
- 'sandybrown': 'sandybrown',
355
- '#f4a460': 'sandybrown',
356
- 'seagreen': 'seagreen',
357
- '#2e8b57': 'seagreen',
358
- 'seashell': 'seashell',
359
- '#fff5ee': 'seashell',
360
- 'sienna': 'sienna',
361
- '#a0522d': 'sienna',
362
- 'silver': 'silver',
363
- '#c0c0c0': 'silver',
364
- 'skyblue': 'skyblue',
365
- '#87ceeb': 'skyblue',
366
- 'slateblue': 'slateblue',
367
- '#6a5acd': 'slateblue',
368
- 'slategray': 'slategray',
369
- '#708090': 'slategray',
370
- 'slategrey': 'slategrey',
371
- 'snow': 'snow',
372
- '#fffafa': 'snow',
373
- 'springgreen': 'springgreen',
374
- '#00ff7f': 'springgreen',
375
- 'steelblue': 'steelblue',
376
- '#4682b4': 'steelblue',
377
- 'tan': 'tan',
378
- '#d2b48c': 'tan',
379
- 'teal': 'teal',
380
- '#008080': 'teal',
381
- 'thistle': 'thistle',
382
- '#d8bfd8': 'thistle',
383
- 'tomato': 'tomato',
384
- '#ff6347': 'tomato',
385
- 'turquoise': 'turquoise',
386
- '#40e0d0': 'turquoise',
387
- 'violet': 'violet',
388
- '#ee82ee': 'violet',
389
- 'wheat': 'wheat',
390
- '#f5deb3': 'wheat',
391
- 'white': 'white',
392
- '#ffffff': 'white',
393
- '#fff': 'white',
394
- 'whitesmoke': 'whitesmoke',
395
- '#f5f5f5': 'whitesmoke',
396
- 'yellow': 'yellow',
397
- '#ffff00': 'yellow',
398
- '#ff0': 'yellow',
399
- 'yellowgreen': 'yellowgreen',
400
- '#9acd32': 'yellowgreen',
401
- );
402
-
403
80
  // Convert the color to a string.
404
81
  $name: inspect($name);
405
82
 
406
- @return if(map-has-key($css4-color-keywords, $name), map-get($css4-color-keywords, $name), false);
83
+ @return if(map-has-key($_chroma-css4-color-keywords, $name), map-get($_chroma-css4-color-keywords, $name), false);
407
84
  }
408
85
 
409
86
  // chroma-to-string($name)
@@ -449,7 +126,7 @@ $chroma: _chroma-init();
449
126
 
450
127
  // Confirm the scheme exists.
451
128
  @if not chroma-has-scheme($scheme) {
452
- @error 'The #{$chroma-spelling} scheme "#{$scheme}" was not found.';
129
+ @error 'The #{$_chroma-spelling} scheme "#{$scheme}" was not found.';
453
130
  }
454
131
  // Cast the color name to a string to ensure color keywords do not cause
455
132
  // problems as map keys.
@@ -457,9 +134,24 @@ $chroma: _chroma-init();
457
134
  // Find the actual scheme used by the named color.
458
135
  $actual-scheme: chroma-has-color($name, $scheme);
459
136
  @if not $actual-scheme {
460
- @error 'The #{$chroma-spelling} "#{$name}" was not found.';
137
+ @error 'The #{$_chroma-spelling} "#{$name}" was not found.';
138
+ }
139
+ $color: map-get(map-get($chroma, 'names'), "#{$actual-scheme}::#{$name}");
140
+ @if $actual-scheme == $scheme {
141
+ @return map-get($color, 'value');
142
+ }
143
+ @else {
144
+ // The value of $actual-scheme::$name is based on parents in $actual-scheme.
145
+ // But one or more of the parents may be defined in $scheme too, so we need
146
+ // to check the full reference chain.
147
+ $ref: map-get($color, 'reference');
148
+ @while $ref {
149
+ $actual-scheme: chroma-has-color($ref, $scheme);
150
+ $color: map-get(map-get($chroma, 'names'), "#{$actual-scheme}::#{$ref}");
151
+ $ref: map-get($color, 'reference');
152
+ }
153
+ @return map-get($color, 'value');
461
154
  }
462
- @return map-get(map-get(map-get($chroma, 'names'), "#{$actual-scheme}::#{$name}"), 'value');
463
155
  }
464
156
 
465
157
  // define-color-scheme($scheme [, $description] [, $parent])
@@ -495,7 +187,7 @@ $chroma: _chroma-init();
495
187
 
496
188
  // Check parent reference exists.
497
189
  @if $parent and not chroma-has-scheme($parent) {
498
- @error 'Cannot set the parent of #{scheme} to "#{$parent}" because the #{$chroma-spelling} scheme "#{$parent}" was not found.';
190
+ @error 'Cannot set the parent of #{scheme} to "#{$parent}" because the #{$_chroma-spelling} scheme "#{$parent}" was not found.';
499
191
  }
500
192
 
501
193
  $schemes: map-merge(
@@ -564,7 +256,7 @@ $chroma: _chroma-init();
564
256
  $scheme: $chroma-active-scheme;
565
257
  }
566
258
  @if not chroma-has-scheme($scheme) {
567
- @error 'The #{$chroma-spelling} scheme "#{$scheme}" was not found.';
259
+ @error 'The #{$_chroma-spelling} scheme "#{$scheme}" was not found.';
568
260
  }
569
261
  @each $color-name, $color-value in $colors {
570
262
  // Cast the color name to a string to ensure color keywords do not cause
@@ -584,7 +276,7 @@ $chroma: _chroma-init();
584
276
  // Find the referenced color.
585
277
  $scheme-of-reference: chroma-has-color($ref, $scheme);
586
278
  @if not $scheme-of-reference {
587
- @error 'The #{$chroma-spelling} "#{$ref}" was not found.';
279
+ @error 'The #{$_chroma-spelling} "#{$ref}" was not found.';
588
280
  }
589
281
  $referenced-color: map-get(map-get($chroma, 'names'), "#{$scheme-of-reference}::#{$ref}");
590
282
  // Add the new color.
@@ -605,7 +297,7 @@ $chroma: _chroma-init();
605
297
  ) !global;
606
298
  $ref: map-get($referenced-color, 'reference');
607
299
  @if $ref {
608
- $scheme-of-reference: chroma-has-color($ref, $scheme-of-reference);
300
+ $scheme-of-reference: chroma-has-color($ref, $scheme);
609
301
  $referenced-color: map-get(map-get($chroma, 'names'), "#{$scheme-of-reference}::#{$ref}");
610
302
  }
611
303
  }