sassc4 2.4.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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.travis.yml +16 -0
- data/CHANGELOG.md +97 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +80 -0
- data/Rakefile +51 -0
- data/ext/depend +4 -0
- data/ext/extconf.rb +92 -0
- data/ext/libsass/VERSION +1 -0
- data/ext/libsass/contrib/plugin.cpp +60 -0
- data/ext/libsass/include/sass/base.h +97 -0
- data/ext/libsass/include/sass/context.h +174 -0
- data/ext/libsass/include/sass/functions.h +139 -0
- data/ext/libsass/include/sass/values.h +145 -0
- data/ext/libsass/include/sass/version.h +12 -0
- data/ext/libsass/include/sass.h +15 -0
- data/ext/libsass/include/sass2scss.h +120 -0
- data/ext/libsass/src/MurmurHash2.hpp +91 -0
- data/ext/libsass/src/ast.cpp +953 -0
- data/ext/libsass/src/ast.hpp +1064 -0
- data/ext/libsass/src/ast2c.cpp +80 -0
- data/ext/libsass/src/ast2c.hpp +39 -0
- data/ext/libsass/src/ast_def_macros.hpp +140 -0
- data/ext/libsass/src/ast_fwd_decl.cpp +31 -0
- data/ext/libsass/src/ast_fwd_decl.hpp +274 -0
- data/ext/libsass/src/ast_helpers.hpp +316 -0
- data/ext/libsass/src/ast_sel_cmp.cpp +396 -0
- data/ext/libsass/src/ast_sel_super.cpp +539 -0
- data/ext/libsass/src/ast_sel_unify.cpp +275 -0
- data/ext/libsass/src/ast_sel_weave.cpp +616 -0
- data/ext/libsass/src/ast_selectors.cpp +1070 -0
- data/ext/libsass/src/ast_selectors.hpp +523 -0
- data/ext/libsass/src/ast_supports.cpp +114 -0
- data/ext/libsass/src/ast_supports.hpp +121 -0
- data/ext/libsass/src/ast_values.cpp +1154 -0
- data/ext/libsass/src/ast_values.hpp +498 -0
- data/ext/libsass/src/b64/cencode.h +32 -0
- data/ext/libsass/src/b64/encode.h +79 -0
- data/ext/libsass/src/backtrace.cpp +50 -0
- data/ext/libsass/src/backtrace.hpp +29 -0
- data/ext/libsass/src/base64vlq.cpp +47 -0
- data/ext/libsass/src/base64vlq.hpp +30 -0
- data/ext/libsass/src/bind.cpp +312 -0
- data/ext/libsass/src/bind.hpp +15 -0
- data/ext/libsass/src/c2ast.cpp +64 -0
- data/ext/libsass/src/c2ast.hpp +14 -0
- data/ext/libsass/src/c99func.c +54 -0
- data/ext/libsass/src/cencode.c +106 -0
- data/ext/libsass/src/check_nesting.cpp +393 -0
- data/ext/libsass/src/check_nesting.hpp +70 -0
- data/ext/libsass/src/color_maps.cpp +652 -0
- data/ext/libsass/src/color_maps.hpp +323 -0
- data/ext/libsass/src/color_spaces.cpp +241 -0
- data/ext/libsass/src/color_spaces.hpp +227 -0
- data/ext/libsass/src/constants.cpp +199 -0
- data/ext/libsass/src/constants.hpp +200 -0
- data/ext/libsass/src/context.cpp +870 -0
- data/ext/libsass/src/context.hpp +140 -0
- data/ext/libsass/src/cssize.cpp +521 -0
- data/ext/libsass/src/cssize.hpp +71 -0
- data/ext/libsass/src/dart_helpers.hpp +199 -0
- data/ext/libsass/src/debug.hpp +43 -0
- data/ext/libsass/src/debugger.hpp +964 -0
- data/ext/libsass/src/emitter.cpp +297 -0
- data/ext/libsass/src/emitter.hpp +101 -0
- data/ext/libsass/src/environment.cpp +260 -0
- data/ext/libsass/src/environment.hpp +124 -0
- data/ext/libsass/src/error_handling.cpp +239 -0
- data/ext/libsass/src/error_handling.hpp +248 -0
- data/ext/libsass/src/eval.cpp +1543 -0
- data/ext/libsass/src/eval.hpp +110 -0
- data/ext/libsass/src/eval_selectors.cpp +75 -0
- data/ext/libsass/src/expand.cpp +875 -0
- data/ext/libsass/src/expand.hpp +98 -0
- data/ext/libsass/src/extender.cpp +1226 -0
- data/ext/libsass/src/extender.hpp +399 -0
- data/ext/libsass/src/extension.cpp +43 -0
- data/ext/libsass/src/extension.hpp +89 -0
- data/ext/libsass/src/file.cpp +531 -0
- data/ext/libsass/src/file.hpp +124 -0
- data/ext/libsass/src/fn_colors.cpp +836 -0
- data/ext/libsass/src/fn_colors.hpp +99 -0
- data/ext/libsass/src/fn_lists.cpp +285 -0
- data/ext/libsass/src/fn_lists.hpp +34 -0
- data/ext/libsass/src/fn_maps.cpp +94 -0
- data/ext/libsass/src/fn_maps.hpp +30 -0
- data/ext/libsass/src/fn_miscs.cpp +248 -0
- data/ext/libsass/src/fn_miscs.hpp +40 -0
- data/ext/libsass/src/fn_numbers.cpp +246 -0
- data/ext/libsass/src/fn_numbers.hpp +45 -0
- data/ext/libsass/src/fn_selectors.cpp +205 -0
- data/ext/libsass/src/fn_selectors.hpp +35 -0
- data/ext/libsass/src/fn_strings.cpp +268 -0
- data/ext/libsass/src/fn_strings.hpp +34 -0
- data/ext/libsass/src/fn_utils.cpp +159 -0
- data/ext/libsass/src/fn_utils.hpp +62 -0
- data/ext/libsass/src/inspect.cpp +1126 -0
- data/ext/libsass/src/inspect.hpp +101 -0
- data/ext/libsass/src/json.cpp +1436 -0
- data/ext/libsass/src/json.hpp +117 -0
- data/ext/libsass/src/kwd_arg_macros.hpp +28 -0
- data/ext/libsass/src/lexer.cpp +122 -0
- data/ext/libsass/src/lexer.hpp +304 -0
- data/ext/libsass/src/listize.cpp +70 -0
- data/ext/libsass/src/listize.hpp +37 -0
- data/ext/libsass/src/mapping.hpp +19 -0
- data/ext/libsass/src/memory/allocator.cpp +48 -0
- data/ext/libsass/src/memory/allocator.hpp +138 -0
- data/ext/libsass/src/memory/config.hpp +20 -0
- data/ext/libsass/src/memory/memory_pool.hpp +186 -0
- data/ext/libsass/src/memory/shared_ptr.cpp +33 -0
- data/ext/libsass/src/memory/shared_ptr.hpp +332 -0
- data/ext/libsass/src/memory.hpp +12 -0
- data/ext/libsass/src/operation.hpp +223 -0
- data/ext/libsass/src/operators.cpp +267 -0
- data/ext/libsass/src/operators.hpp +30 -0
- data/ext/libsass/src/ordered_map.hpp +112 -0
- data/ext/libsass/src/output.cpp +320 -0
- data/ext/libsass/src/output.hpp +47 -0
- data/ext/libsass/src/parser.cpp +3059 -0
- data/ext/libsass/src/parser.hpp +395 -0
- data/ext/libsass/src/parser_selectors.cpp +189 -0
- data/ext/libsass/src/permutate.hpp +164 -0
- data/ext/libsass/src/plugins.cpp +188 -0
- data/ext/libsass/src/plugins.hpp +57 -0
- data/ext/libsass/src/position.cpp +163 -0
- data/ext/libsass/src/position.hpp +147 -0
- data/ext/libsass/src/prelexer.cpp +1780 -0
- data/ext/libsass/src/prelexer.hpp +484 -0
- data/ext/libsass/src/remove_placeholders.cpp +86 -0
- data/ext/libsass/src/remove_placeholders.hpp +37 -0
- data/ext/libsass/src/sass.cpp +156 -0
- data/ext/libsass/src/sass.hpp +147 -0
- data/ext/libsass/src/sass2scss.cpp +895 -0
- data/ext/libsass/src/sass_context.cpp +742 -0
- data/ext/libsass/src/sass_context.hpp +129 -0
- data/ext/libsass/src/sass_functions.cpp +210 -0
- data/ext/libsass/src/sass_functions.hpp +50 -0
- data/ext/libsass/src/sass_values.cpp +362 -0
- data/ext/libsass/src/sass_values.hpp +82 -0
- data/ext/libsass/src/settings.hpp +19 -0
- data/ext/libsass/src/source.cpp +69 -0
- data/ext/libsass/src/source.hpp +95 -0
- data/ext/libsass/src/source_data.hpp +32 -0
- data/ext/libsass/src/source_map.cpp +202 -0
- data/ext/libsass/src/source_map.hpp +65 -0
- data/ext/libsass/src/stylesheet.cpp +22 -0
- data/ext/libsass/src/stylesheet.hpp +57 -0
- data/ext/libsass/src/to_value.cpp +114 -0
- data/ext/libsass/src/to_value.hpp +46 -0
- data/ext/libsass/src/units.cpp +507 -0
- data/ext/libsass/src/units.hpp +110 -0
- data/ext/libsass/src/utf8/checked.h +336 -0
- data/ext/libsass/src/utf8/core.h +332 -0
- data/ext/libsass/src/utf8/unchecked.h +235 -0
- data/ext/libsass/src/utf8.h +34 -0
- data/ext/libsass/src/utf8_string.cpp +104 -0
- data/ext/libsass/src/utf8_string.hpp +38 -0
- data/ext/libsass/src/util.cpp +723 -0
- data/ext/libsass/src/util.hpp +105 -0
- data/ext/libsass/src/util_string.cpp +125 -0
- data/ext/libsass/src/util_string.hpp +73 -0
- data/ext/libsass/src/values.cpp +140 -0
- data/ext/libsass/src/values.hpp +12 -0
- data/lib/sassc/dependency.rb +17 -0
- data/lib/sassc/engine.rb +141 -0
- data/lib/sassc/error.rb +37 -0
- data/lib/sassc/functions_handler.rb +73 -0
- data/lib/sassc/import_handler.rb +50 -0
- data/lib/sassc/importer.rb +31 -0
- data/lib/sassc/native/native_context_api.rb +147 -0
- data/lib/sassc/native/native_functions_api.rb +159 -0
- data/lib/sassc/native/sass2scss_api.rb +10 -0
- data/lib/sassc/native/sass_input_style.rb +13 -0
- data/lib/sassc/native/sass_output_style.rb +12 -0
- data/lib/sassc/native/sass_value.rb +97 -0
- data/lib/sassc/native/string_list.rb +10 -0
- data/lib/sassc/native.rb +64 -0
- data/lib/sassc/sass_2_scss.rb +9 -0
- data/lib/sassc/script/functions.rb +8 -0
- data/lib/sassc/script/value/bool.rb +32 -0
- data/lib/sassc/script/value/color.rb +95 -0
- data/lib/sassc/script/value/list.rb +136 -0
- data/lib/sassc/script/value/map.rb +69 -0
- data/lib/sassc/script/value/number.rb +389 -0
- data/lib/sassc/script/value/string.rb +96 -0
- data/lib/sassc/script/value.rb +137 -0
- data/lib/sassc/script/value_conversion/base.rb +13 -0
- data/lib/sassc/script/value_conversion/bool.rb +13 -0
- data/lib/sassc/script/value_conversion/color.rb +18 -0
- data/lib/sassc/script/value_conversion/list.rb +25 -0
- data/lib/sassc/script/value_conversion/map.rb +21 -0
- data/lib/sassc/script/value_conversion/number.rb +13 -0
- data/lib/sassc/script/value_conversion/string.rb +17 -0
- data/lib/sassc/script/value_conversion.rb +69 -0
- data/lib/sassc/script.rb +17 -0
- data/lib/sassc/util/normalized_map.rb +117 -0
- data/lib/sassc/util.rb +231 -0
- data/lib/sassc/version.rb +5 -0
- data/lib/sassc.rb +57 -0
- data/sassc.gemspec +69 -0
- data/test/css_color_level4_test.rb +168 -0
- data/test/custom_importer_test.rb +127 -0
- data/test/engine_test.rb +314 -0
- data/test/error_test.rb +29 -0
- data/test/fixtures/paths.scss +10 -0
- data/test/functions_test.rb +340 -0
- data/test/native_test.rb +213 -0
- data/test/output_style_test.rb +107 -0
- data/test/sass_2_scss_test.rb +14 -0
- data/test/test_helper.rb +45 -0
- metadata +396 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef SASS_COLOR_MAPS_H
|
|
3
|
+
#define SASS_COLOR_MAPS_H
|
|
4
|
+
|
|
5
|
+
#include <map>
|
|
6
|
+
#include "ast.hpp"
|
|
7
|
+
|
|
8
|
+
namespace Sass {
|
|
9
|
+
|
|
10
|
+
namespace ColorNames
|
|
11
|
+
{
|
|
12
|
+
extern const char aliceblue[];
|
|
13
|
+
extern const char antiquewhite[];
|
|
14
|
+
extern const char cyan[];
|
|
15
|
+
extern const char aqua[];
|
|
16
|
+
extern const char aquamarine[];
|
|
17
|
+
extern const char azure[];
|
|
18
|
+
extern const char beige[];
|
|
19
|
+
extern const char bisque[];
|
|
20
|
+
extern const char black[];
|
|
21
|
+
extern const char blanchedalmond[];
|
|
22
|
+
extern const char blue[];
|
|
23
|
+
extern const char blueviolet[];
|
|
24
|
+
extern const char brown[];
|
|
25
|
+
extern const char burlywood[];
|
|
26
|
+
extern const char cadetblue[];
|
|
27
|
+
extern const char chartreuse[];
|
|
28
|
+
extern const char chocolate[];
|
|
29
|
+
extern const char coral[];
|
|
30
|
+
extern const char cornflowerblue[];
|
|
31
|
+
extern const char cornsilk[];
|
|
32
|
+
extern const char crimson[];
|
|
33
|
+
extern const char darkblue[];
|
|
34
|
+
extern const char darkcyan[];
|
|
35
|
+
extern const char darkgoldenrod[];
|
|
36
|
+
extern const char darkgray[];
|
|
37
|
+
extern const char darkgrey[];
|
|
38
|
+
extern const char darkgreen[];
|
|
39
|
+
extern const char darkkhaki[];
|
|
40
|
+
extern const char darkmagenta[];
|
|
41
|
+
extern const char darkolivegreen[];
|
|
42
|
+
extern const char darkorange[];
|
|
43
|
+
extern const char darkorchid[];
|
|
44
|
+
extern const char darkred[];
|
|
45
|
+
extern const char darksalmon[];
|
|
46
|
+
extern const char darkseagreen[];
|
|
47
|
+
extern const char darkslateblue[];
|
|
48
|
+
extern const char darkslategray[];
|
|
49
|
+
extern const char darkslategrey[];
|
|
50
|
+
extern const char darkturquoise[];
|
|
51
|
+
extern const char darkviolet[];
|
|
52
|
+
extern const char deeppink[];
|
|
53
|
+
extern const char deepskyblue[];
|
|
54
|
+
extern const char dimgray[];
|
|
55
|
+
extern const char dimgrey[];
|
|
56
|
+
extern const char dodgerblue[];
|
|
57
|
+
extern const char firebrick[];
|
|
58
|
+
extern const char floralwhite[];
|
|
59
|
+
extern const char forestgreen[];
|
|
60
|
+
extern const char magenta[];
|
|
61
|
+
extern const char fuchsia[];
|
|
62
|
+
extern const char gainsboro[];
|
|
63
|
+
extern const char ghostwhite[];
|
|
64
|
+
extern const char gold[];
|
|
65
|
+
extern const char goldenrod[];
|
|
66
|
+
extern const char gray[];
|
|
67
|
+
extern const char grey[];
|
|
68
|
+
extern const char green[];
|
|
69
|
+
extern const char greenyellow[];
|
|
70
|
+
extern const char honeydew[];
|
|
71
|
+
extern const char hotpink[];
|
|
72
|
+
extern const char indianred[];
|
|
73
|
+
extern const char indigo[];
|
|
74
|
+
extern const char ivory[];
|
|
75
|
+
extern const char khaki[];
|
|
76
|
+
extern const char lavender[];
|
|
77
|
+
extern const char lavenderblush[];
|
|
78
|
+
extern const char lawngreen[];
|
|
79
|
+
extern const char lemonchiffon[];
|
|
80
|
+
extern const char lightblue[];
|
|
81
|
+
extern const char lightcoral[];
|
|
82
|
+
extern const char lightcyan[];
|
|
83
|
+
extern const char lightgoldenrodyellow[];
|
|
84
|
+
extern const char lightgray[];
|
|
85
|
+
extern const char lightgrey[];
|
|
86
|
+
extern const char lightgreen[];
|
|
87
|
+
extern const char lightpink[];
|
|
88
|
+
extern const char lightsalmon[];
|
|
89
|
+
extern const char lightseagreen[];
|
|
90
|
+
extern const char lightskyblue[];
|
|
91
|
+
extern const char lightslategray[];
|
|
92
|
+
extern const char lightslategrey[];
|
|
93
|
+
extern const char lightsteelblue[];
|
|
94
|
+
extern const char lightyellow[];
|
|
95
|
+
extern const char lime[];
|
|
96
|
+
extern const char limegreen[];
|
|
97
|
+
extern const char linen[];
|
|
98
|
+
extern const char maroon[];
|
|
99
|
+
extern const char mediumaquamarine[];
|
|
100
|
+
extern const char mediumblue[];
|
|
101
|
+
extern const char mediumorchid[];
|
|
102
|
+
extern const char mediumpurple[];
|
|
103
|
+
extern const char mediumseagreen[];
|
|
104
|
+
extern const char mediumslateblue[];
|
|
105
|
+
extern const char mediumspringgreen[];
|
|
106
|
+
extern const char mediumturquoise[];
|
|
107
|
+
extern const char mediumvioletred[];
|
|
108
|
+
extern const char midnightblue[];
|
|
109
|
+
extern const char mintcream[];
|
|
110
|
+
extern const char mistyrose[];
|
|
111
|
+
extern const char moccasin[];
|
|
112
|
+
extern const char navajowhite[];
|
|
113
|
+
extern const char navy[];
|
|
114
|
+
extern const char oldlace[];
|
|
115
|
+
extern const char olive[];
|
|
116
|
+
extern const char olivedrab[];
|
|
117
|
+
extern const char orange[];
|
|
118
|
+
extern const char orangered[];
|
|
119
|
+
extern const char orchid[];
|
|
120
|
+
extern const char palegoldenrod[];
|
|
121
|
+
extern const char palegreen[];
|
|
122
|
+
extern const char paleturquoise[];
|
|
123
|
+
extern const char palevioletred[];
|
|
124
|
+
extern const char papayawhip[];
|
|
125
|
+
extern const char peachpuff[];
|
|
126
|
+
extern const char peru[];
|
|
127
|
+
extern const char pink[];
|
|
128
|
+
extern const char plum[];
|
|
129
|
+
extern const char powderblue[];
|
|
130
|
+
extern const char purple[];
|
|
131
|
+
extern const char red[];
|
|
132
|
+
extern const char rosybrown[];
|
|
133
|
+
extern const char royalblue[];
|
|
134
|
+
extern const char saddlebrown[];
|
|
135
|
+
extern const char salmon[];
|
|
136
|
+
extern const char sandybrown[];
|
|
137
|
+
extern const char seagreen[];
|
|
138
|
+
extern const char seashell[];
|
|
139
|
+
extern const char sienna[];
|
|
140
|
+
extern const char silver[];
|
|
141
|
+
extern const char skyblue[];
|
|
142
|
+
extern const char slateblue[];
|
|
143
|
+
extern const char slategray[];
|
|
144
|
+
extern const char slategrey[];
|
|
145
|
+
extern const char snow[];
|
|
146
|
+
extern const char springgreen[];
|
|
147
|
+
extern const char steelblue[];
|
|
148
|
+
extern const char tan[];
|
|
149
|
+
extern const char teal[];
|
|
150
|
+
extern const char thistle[];
|
|
151
|
+
extern const char tomato[];
|
|
152
|
+
extern const char turquoise[];
|
|
153
|
+
extern const char violet[];
|
|
154
|
+
extern const char wheat[];
|
|
155
|
+
extern const char white[];
|
|
156
|
+
extern const char whitesmoke[];
|
|
157
|
+
extern const char yellow[];
|
|
158
|
+
extern const char yellowgreen[];
|
|
159
|
+
extern const char rebeccapurple[];
|
|
160
|
+
extern const char transparent[];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
namespace Colors {
|
|
164
|
+
extern const Color_RGBA aliceblue;
|
|
165
|
+
extern const Color_RGBA antiquewhite;
|
|
166
|
+
extern const Color_RGBA cyan;
|
|
167
|
+
extern const Color_RGBA aqua;
|
|
168
|
+
extern const Color_RGBA aquamarine;
|
|
169
|
+
extern const Color_RGBA azure;
|
|
170
|
+
extern const Color_RGBA beige;
|
|
171
|
+
extern const Color_RGBA bisque;
|
|
172
|
+
extern const Color_RGBA black;
|
|
173
|
+
extern const Color_RGBA blanchedalmond;
|
|
174
|
+
extern const Color_RGBA blue;
|
|
175
|
+
extern const Color_RGBA blueviolet;
|
|
176
|
+
extern const Color_RGBA brown;
|
|
177
|
+
extern const Color_RGBA burlywood;
|
|
178
|
+
extern const Color_RGBA cadetblue;
|
|
179
|
+
extern const Color_RGBA chartreuse;
|
|
180
|
+
extern const Color_RGBA chocolate;
|
|
181
|
+
extern const Color_RGBA coral;
|
|
182
|
+
extern const Color_RGBA cornflowerblue;
|
|
183
|
+
extern const Color_RGBA cornsilk;
|
|
184
|
+
extern const Color_RGBA crimson;
|
|
185
|
+
extern const Color_RGBA darkblue;
|
|
186
|
+
extern const Color_RGBA darkcyan;
|
|
187
|
+
extern const Color_RGBA darkgoldenrod;
|
|
188
|
+
extern const Color_RGBA darkgray;
|
|
189
|
+
extern const Color_RGBA darkgrey;
|
|
190
|
+
extern const Color_RGBA darkgreen;
|
|
191
|
+
extern const Color_RGBA darkkhaki;
|
|
192
|
+
extern const Color_RGBA darkmagenta;
|
|
193
|
+
extern const Color_RGBA darkolivegreen;
|
|
194
|
+
extern const Color_RGBA darkorange;
|
|
195
|
+
extern const Color_RGBA darkorchid;
|
|
196
|
+
extern const Color_RGBA darkred;
|
|
197
|
+
extern const Color_RGBA darksalmon;
|
|
198
|
+
extern const Color_RGBA darkseagreen;
|
|
199
|
+
extern const Color_RGBA darkslateblue;
|
|
200
|
+
extern const Color_RGBA darkslategray;
|
|
201
|
+
extern const Color_RGBA darkslategrey;
|
|
202
|
+
extern const Color_RGBA darkturquoise;
|
|
203
|
+
extern const Color_RGBA darkviolet;
|
|
204
|
+
extern const Color_RGBA deeppink;
|
|
205
|
+
extern const Color_RGBA deepskyblue;
|
|
206
|
+
extern const Color_RGBA dimgray;
|
|
207
|
+
extern const Color_RGBA dimgrey;
|
|
208
|
+
extern const Color_RGBA dodgerblue;
|
|
209
|
+
extern const Color_RGBA firebrick;
|
|
210
|
+
extern const Color_RGBA floralwhite;
|
|
211
|
+
extern const Color_RGBA forestgreen;
|
|
212
|
+
extern const Color_RGBA magenta;
|
|
213
|
+
extern const Color_RGBA fuchsia;
|
|
214
|
+
extern const Color_RGBA gainsboro;
|
|
215
|
+
extern const Color_RGBA ghostwhite;
|
|
216
|
+
extern const Color_RGBA gold;
|
|
217
|
+
extern const Color_RGBA goldenrod;
|
|
218
|
+
extern const Color_RGBA gray;
|
|
219
|
+
extern const Color_RGBA grey;
|
|
220
|
+
extern const Color_RGBA green;
|
|
221
|
+
extern const Color_RGBA greenyellow;
|
|
222
|
+
extern const Color_RGBA honeydew;
|
|
223
|
+
extern const Color_RGBA hotpink;
|
|
224
|
+
extern const Color_RGBA indianred;
|
|
225
|
+
extern const Color_RGBA indigo;
|
|
226
|
+
extern const Color_RGBA ivory;
|
|
227
|
+
extern const Color_RGBA khaki;
|
|
228
|
+
extern const Color_RGBA lavender;
|
|
229
|
+
extern const Color_RGBA lavenderblush;
|
|
230
|
+
extern const Color_RGBA lawngreen;
|
|
231
|
+
extern const Color_RGBA lemonchiffon;
|
|
232
|
+
extern const Color_RGBA lightblue;
|
|
233
|
+
extern const Color_RGBA lightcoral;
|
|
234
|
+
extern const Color_RGBA lightcyan;
|
|
235
|
+
extern const Color_RGBA lightgoldenrodyellow;
|
|
236
|
+
extern const Color_RGBA lightgray;
|
|
237
|
+
extern const Color_RGBA lightgrey;
|
|
238
|
+
extern const Color_RGBA lightgreen;
|
|
239
|
+
extern const Color_RGBA lightpink;
|
|
240
|
+
extern const Color_RGBA lightsalmon;
|
|
241
|
+
extern const Color_RGBA lightseagreen;
|
|
242
|
+
extern const Color_RGBA lightskyblue;
|
|
243
|
+
extern const Color_RGBA lightslategray;
|
|
244
|
+
extern const Color_RGBA lightslategrey;
|
|
245
|
+
extern const Color_RGBA lightsteelblue;
|
|
246
|
+
extern const Color_RGBA lightyellow;
|
|
247
|
+
extern const Color_RGBA lime;
|
|
248
|
+
extern const Color_RGBA limegreen;
|
|
249
|
+
extern const Color_RGBA linen;
|
|
250
|
+
extern const Color_RGBA maroon;
|
|
251
|
+
extern const Color_RGBA mediumaquamarine;
|
|
252
|
+
extern const Color_RGBA mediumblue;
|
|
253
|
+
extern const Color_RGBA mediumorchid;
|
|
254
|
+
extern const Color_RGBA mediumpurple;
|
|
255
|
+
extern const Color_RGBA mediumseagreen;
|
|
256
|
+
extern const Color_RGBA mediumslateblue;
|
|
257
|
+
extern const Color_RGBA mediumspringgreen;
|
|
258
|
+
extern const Color_RGBA mediumturquoise;
|
|
259
|
+
extern const Color_RGBA mediumvioletred;
|
|
260
|
+
extern const Color_RGBA midnightblue;
|
|
261
|
+
extern const Color_RGBA mintcream;
|
|
262
|
+
extern const Color_RGBA mistyrose;
|
|
263
|
+
extern const Color_RGBA moccasin;
|
|
264
|
+
extern const Color_RGBA navajowhite;
|
|
265
|
+
extern const Color_RGBA navy;
|
|
266
|
+
extern const Color_RGBA oldlace;
|
|
267
|
+
extern const Color_RGBA olive;
|
|
268
|
+
extern const Color_RGBA olivedrab;
|
|
269
|
+
extern const Color_RGBA orange;
|
|
270
|
+
extern const Color_RGBA orangered;
|
|
271
|
+
extern const Color_RGBA orchid;
|
|
272
|
+
extern const Color_RGBA palegoldenrod;
|
|
273
|
+
extern const Color_RGBA palegreen;
|
|
274
|
+
extern const Color_RGBA paleturquoise;
|
|
275
|
+
extern const Color_RGBA palevioletred;
|
|
276
|
+
extern const Color_RGBA papayawhip;
|
|
277
|
+
extern const Color_RGBA peachpuff;
|
|
278
|
+
extern const Color_RGBA peru;
|
|
279
|
+
extern const Color_RGBA pink;
|
|
280
|
+
extern const Color_RGBA plum;
|
|
281
|
+
extern const Color_RGBA powderblue;
|
|
282
|
+
extern const Color_RGBA purple;
|
|
283
|
+
extern const Color_RGBA red;
|
|
284
|
+
extern const Color_RGBA rosybrown;
|
|
285
|
+
extern const Color_RGBA royalblue;
|
|
286
|
+
extern const Color_RGBA saddlebrown;
|
|
287
|
+
extern const Color_RGBA salmon;
|
|
288
|
+
extern const Color_RGBA sandybrown;
|
|
289
|
+
extern const Color_RGBA seagreen;
|
|
290
|
+
extern const Color_RGBA seashell;
|
|
291
|
+
extern const Color_RGBA sienna;
|
|
292
|
+
extern const Color_RGBA silver;
|
|
293
|
+
extern const Color_RGBA skyblue;
|
|
294
|
+
extern const Color_RGBA slateblue;
|
|
295
|
+
extern const Color_RGBA slategray;
|
|
296
|
+
extern const Color_RGBA slategrey;
|
|
297
|
+
extern const Color_RGBA snow;
|
|
298
|
+
extern const Color_RGBA springgreen;
|
|
299
|
+
extern const Color_RGBA steelblue;
|
|
300
|
+
extern const Color_RGBA tan;
|
|
301
|
+
extern const Color_RGBA teal;
|
|
302
|
+
extern const Color_RGBA thistle;
|
|
303
|
+
extern const Color_RGBA tomato;
|
|
304
|
+
extern const Color_RGBA turquoise;
|
|
305
|
+
extern const Color_RGBA violet;
|
|
306
|
+
extern const Color_RGBA wheat;
|
|
307
|
+
extern const Color_RGBA white;
|
|
308
|
+
extern const Color_RGBA whitesmoke;
|
|
309
|
+
extern const Color_RGBA yellow;
|
|
310
|
+
extern const Color_RGBA yellowgreen;
|
|
311
|
+
extern const Color_RGBA rebeccapurple;
|
|
312
|
+
extern const Color_RGBA transparent;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
const Color_RGBA* name_to_color(const char*);
|
|
316
|
+
const Color_RGBA* name_to_color(const sass::string&);
|
|
317
|
+
const char* color_to_name(const int);
|
|
318
|
+
const char* color_to_name(const Color_RGBA&);
|
|
319
|
+
const char* color_to_name(const double);
|
|
320
|
+
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
#endif
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// sass.hpp must go before all system headers to get the
|
|
2
|
+
// __EXTENSIONS__ fix on Solaris.
|
|
3
|
+
#include "sass.hpp"
|
|
4
|
+
|
|
5
|
+
#include "color_spaces.hpp"
|
|
6
|
+
#include "ast_values.hpp"
|
|
7
|
+
#include "util.hpp"
|
|
8
|
+
#include <cmath>
|
|
9
|
+
#include <algorithm>
|
|
10
|
+
|
|
11
|
+
namespace Sass {
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// HWB Conversions
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
Color_RGBA* HWB::toRGBA() const {
|
|
18
|
+
// From https://www.w3.org/TR/css-color-4/#hwb-to-rgb
|
|
19
|
+
double hue = std::fmod(h, 360.0);
|
|
20
|
+
if (hue < 0) hue += 360.0;
|
|
21
|
+
double scaledHue = hue / 360.0;
|
|
22
|
+
|
|
23
|
+
double white = w / 100.0;
|
|
24
|
+
double black = b / 100.0;
|
|
25
|
+
|
|
26
|
+
// Normalize if sum > 1
|
|
27
|
+
double sum = white + black;
|
|
28
|
+
if (sum > 1.0) {
|
|
29
|
+
white /= sum;
|
|
30
|
+
black /= sum;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
double factor = 1.0 - white - black;
|
|
34
|
+
|
|
35
|
+
// Convert to RGB using HSL-like formula
|
|
36
|
+
auto toRgb = [&](double hue) -> double {
|
|
37
|
+
return ColorSpaces::hueToRgb(0, 1, hue) * factor + white;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
double r = toRgb(scaledHue + 1.0 / 3.0) * 255.0;
|
|
41
|
+
double g = toRgb(scaledHue) * 255.0;
|
|
42
|
+
double b = toRgb(scaledHue - 1.0 / 3.0) * 255.0;
|
|
43
|
+
|
|
44
|
+
return SASS_MEMORY_NEW(Color_RGBA, SourceSpan("[hwb]"), r, g, b, a);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
HWB HWB::fromRGBA(const Color_RGBA* rgb) {
|
|
48
|
+
double r = rgb->r() / 255.0;
|
|
49
|
+
double g = rgb->g() / 255.0;
|
|
50
|
+
double b = rgb->b() / 255.0;
|
|
51
|
+
|
|
52
|
+
double max = std::max({r, g, b});
|
|
53
|
+
double min = std::min({r, g, b});
|
|
54
|
+
double chroma = max - min;
|
|
55
|
+
|
|
56
|
+
double hue = 0;
|
|
57
|
+
if (chroma != 0) {
|
|
58
|
+
if (max == r) {
|
|
59
|
+
hue = std::fmod((g - b) / chroma, 6.0);
|
|
60
|
+
} else if (max == g) {
|
|
61
|
+
hue = (b - r) / chroma + 2.0;
|
|
62
|
+
} else {
|
|
63
|
+
hue = (r - g) / chroma + 4.0;
|
|
64
|
+
}
|
|
65
|
+
hue *= 60.0;
|
|
66
|
+
if (hue < 0) hue += 360.0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
double whiteness = min * 100.0;
|
|
70
|
+
double blackness = (1.0 - max) * 100.0;
|
|
71
|
+
|
|
72
|
+
return HWB(hue, whiteness, blackness, rgb->a());
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// Lab Conversions
|
|
77
|
+
// ============================================================================
|
|
78
|
+
|
|
79
|
+
Color_RGBA* Lab::toRGBA() const {
|
|
80
|
+
// Lab -> XYZ D50
|
|
81
|
+
double fy = (l + 16.0) / 116.0;
|
|
82
|
+
double fx = a / 500.0 + fy;
|
|
83
|
+
double fz = fy - b / 200.0;
|
|
84
|
+
|
|
85
|
+
double xr = ColorSpaces::labFinv(fx);
|
|
86
|
+
double yr = l > ColorSpaces::LAB_KAPPA * ColorSpaces::LAB_EPSILON
|
|
87
|
+
? std::pow((l + 16.0) / 116.0, 3.0)
|
|
88
|
+
: l / ColorSpaces::LAB_KAPPA;
|
|
89
|
+
double zr = ColorSpaces::labFinv(fz);
|
|
90
|
+
|
|
91
|
+
double x = xr * ColorSpaces::D50[0];
|
|
92
|
+
double y = yr * ColorSpaces::D50[1];
|
|
93
|
+
double z = zr * ColorSpaces::D50[2];
|
|
94
|
+
|
|
95
|
+
// XYZ D50 -> Linear sRGB
|
|
96
|
+
auto linear = ColorSpaces::multiplyMatrix(ColorSpaces::XYZ_D50_TO_LINEAR_SRGB, x, y, z);
|
|
97
|
+
|
|
98
|
+
// Linear sRGB -> sRGB (gamma encoding)
|
|
99
|
+
double r = ColorSpaces::gammaEncode(linear[0]) * 255.0;
|
|
100
|
+
double g = ColorSpaces::gammaEncode(linear[1]) * 255.0;
|
|
101
|
+
double b = ColorSpaces::gammaEncode(linear[2]) * 255.0;
|
|
102
|
+
|
|
103
|
+
// Clamp to valid range
|
|
104
|
+
r = clip(r, 0.0, 255.0);
|
|
105
|
+
g = clip(g, 0.0, 255.0);
|
|
106
|
+
b = clip(b, 0.0, 255.0);
|
|
107
|
+
|
|
108
|
+
return SASS_MEMORY_NEW(Color_RGBA, SourceSpan("[lab]"), r, g, b, alpha);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
Lab Lab::fromRGBA(const Color_RGBA* rgb) {
|
|
112
|
+
// sRGB -> Linear sRGB (gamma decoding)
|
|
113
|
+
double r = ColorSpaces::gammaDecode(rgb->r() / 255.0);
|
|
114
|
+
double g = ColorSpaces::gammaDecode(rgb->g() / 255.0);
|
|
115
|
+
double b = ColorSpaces::gammaDecode(rgb->b() / 255.0);
|
|
116
|
+
|
|
117
|
+
// Linear sRGB -> XYZ D50
|
|
118
|
+
auto xyz = ColorSpaces::multiplyMatrix(ColorSpaces::LINEAR_SRGB_TO_XYZ_D50, r, g, b);
|
|
119
|
+
|
|
120
|
+
// Normalize by D50 white point
|
|
121
|
+
double xr = xyz[0] / ColorSpaces::D50[0];
|
|
122
|
+
double yr = xyz[1] / ColorSpaces::D50[1];
|
|
123
|
+
double zr = xyz[2] / ColorSpaces::D50[2];
|
|
124
|
+
|
|
125
|
+
// XYZ D50 -> Lab
|
|
126
|
+
double fx = ColorSpaces::labF(xr);
|
|
127
|
+
double fy = ColorSpaces::labF(yr);
|
|
128
|
+
double fz = ColorSpaces::labF(zr);
|
|
129
|
+
|
|
130
|
+
double L = 116.0 * fy - 16.0;
|
|
131
|
+
double a = 500.0 * (fx - fy);
|
|
132
|
+
double b_val = 200.0 * (fy - fz);
|
|
133
|
+
|
|
134
|
+
return Lab(L, a, b_val, rgb->a());
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// ============================================================================
|
|
138
|
+
// LCH Conversions
|
|
139
|
+
// ============================================================================
|
|
140
|
+
|
|
141
|
+
Color_RGBA* LCH::toRGBA() const {
|
|
142
|
+
Lab lab = toLab();
|
|
143
|
+
return lab.toRGBA();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
LCH LCH::fromRGBA(const Color_RGBA* rgb) {
|
|
147
|
+
Lab lab = Lab::fromRGBA(rgb);
|
|
148
|
+
return fromLab(lab);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
Lab LCH::toLab() const {
|
|
152
|
+
double L, a, b;
|
|
153
|
+
ColorSpaces::lchToLab(l, c, h, L, a, b);
|
|
154
|
+
return Lab(L, a, b, alpha);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
LCH LCH::fromLab(const Lab& lab) {
|
|
158
|
+
double l, c, h;
|
|
159
|
+
ColorSpaces::labToLch(lab.l, lab.a, lab.b, l, c, h);
|
|
160
|
+
return LCH(l, c, h, lab.alpha);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// ============================================================================
|
|
164
|
+
// OKLab Conversions
|
|
165
|
+
// ============================================================================
|
|
166
|
+
|
|
167
|
+
Color_RGBA* OKLab::toRGBA() const {
|
|
168
|
+
// OKLab -> LMS
|
|
169
|
+
auto lms = ColorSpaces::multiplyMatrix(ColorSpaces::OKLAB_TO_LMS, l, a, b);
|
|
170
|
+
|
|
171
|
+
// Cube LMS values
|
|
172
|
+
double lCubed = lms[0] * lms[0] * lms[0];
|
|
173
|
+
double mCubed = lms[1] * lms[1] * lms[1];
|
|
174
|
+
double sCubed = lms[2] * lms[2] * lms[2];
|
|
175
|
+
|
|
176
|
+
// LMS -> Linear sRGB
|
|
177
|
+
auto linear = ColorSpaces::multiplyMatrix(ColorSpaces::LMS_TO_LINEAR_SRGB, lCubed, mCubed, sCubed);
|
|
178
|
+
|
|
179
|
+
// Linear sRGB -> sRGB (gamma encoding)
|
|
180
|
+
double r = ColorSpaces::gammaEncode(linear[0]) * 255.0;
|
|
181
|
+
double g = ColorSpaces::gammaEncode(linear[1]) * 255.0;
|
|
182
|
+
double b = ColorSpaces::gammaEncode(linear[2]) * 255.0;
|
|
183
|
+
|
|
184
|
+
// Clamp to valid range
|
|
185
|
+
r = clip(r, 0.0, 255.0);
|
|
186
|
+
g = clip(g, 0.0, 255.0);
|
|
187
|
+
b = clip(b, 0.0, 255.0);
|
|
188
|
+
|
|
189
|
+
return SASS_MEMORY_NEW(Color_RGBA, SourceSpan("[oklab]"), r, g, b, alpha);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
OKLab OKLab::fromRGBA(const Color_RGBA* rgb) {
|
|
193
|
+
// sRGB -> Linear sRGB (gamma decoding)
|
|
194
|
+
double r = ColorSpaces::gammaDecode(rgb->r() / 255.0);
|
|
195
|
+
double g = ColorSpaces::gammaDecode(rgb->g() / 255.0);
|
|
196
|
+
double b = ColorSpaces::gammaDecode(rgb->b() / 255.0);
|
|
197
|
+
|
|
198
|
+
// Linear sRGB -> LMS
|
|
199
|
+
auto lms = ColorSpaces::multiplyMatrix(ColorSpaces::LINEAR_SRGB_TO_LMS, r, g, b);
|
|
200
|
+
|
|
201
|
+
// Cube root LMS values
|
|
202
|
+
double lCbrt = std::cbrt(lms[0]);
|
|
203
|
+
double mCbrt = std::cbrt(lms[1]);
|
|
204
|
+
double sCbrt = std::cbrt(lms[2]);
|
|
205
|
+
|
|
206
|
+
// LMS -> OKLab
|
|
207
|
+
auto oklab = ColorSpaces::multiplyMatrix(ColorSpaces::LMS_TO_OKLAB, lCbrt, mCbrt, sCbrt);
|
|
208
|
+
|
|
209
|
+
return OKLab(oklab[0], oklab[1], oklab[2], rgb->a());
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// ============================================================================
|
|
213
|
+
// OKLCH Conversions
|
|
214
|
+
// ============================================================================
|
|
215
|
+
|
|
216
|
+
Color_RGBA* OKLCH::toRGBA() const {
|
|
217
|
+
OKLab oklab = toOKLab();
|
|
218
|
+
return oklab.toRGBA();
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
OKLCH OKLCH::fromRGBA(const Color_RGBA* rgb) {
|
|
222
|
+
OKLab oklab = OKLab::fromRGBA(rgb);
|
|
223
|
+
return fromOKLab(oklab);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
OKLab OKLCH::toOKLab() const {
|
|
227
|
+
double hRad = h * M_PI / 180.0;
|
|
228
|
+
double a = c * std::cos(hRad);
|
|
229
|
+
double b = c * std::sin(hRad);
|
|
230
|
+
return OKLab(l, a, b, alpha);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
OKLCH OKLCH::fromOKLab(const OKLab& oklab) {
|
|
234
|
+
double c = std::sqrt(oklab.a * oklab.a + oklab.b * oklab.b);
|
|
235
|
+
double h = std::atan2(oklab.b, oklab.a) * 180.0 / M_PI;
|
|
236
|
+
if (h < 0) h += 360.0;
|
|
237
|
+
return OKLCH(oklab.l, c, h, oklab.alpha);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
} // namespace Sass
|
|
241
|
+
|