@birdycom/omniacss 0.0.0-stage → 0.11.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.
- package/LICENSE +21 -0
- package/README.md +44 -3
- package/dist/oc-colors.css +4429 -0
- package/dist/oc-theme.css +69 -0
- package/dist/omnia.css +465436 -0
- package/dist/omnia.min.css +2 -0
- package/dist/omnia.starter.css +13461 -0
- package/dist/omnia.starter.min.css +1 -0
- package/dist/tokens/omnia.dtcg.json +1496 -0
- package/dist/tokens/omnia.tokens.json +580 -0
- package/dist/tokens/omnia_tokens.py +189 -0
- package/package.json +63 -6
- package/scss/base/_reset.scss +88 -0
- package/scss/config/omniacss.config.scss +114 -0
- package/scss/config/omniacss.fonts.scss +34 -0
- package/scss/functions/_functions.scss +407 -0
- package/scss/json/html-colors.json +1998 -0
- package/scss/json/omnia-colors.json +500 -0
- package/scss/json/ral-colors.json +3430 -0
- package/scss/layout/_media_query.scss +18 -0
- package/scss/omnia_colors.scss +7 -0
- package/scss/omnia_main.scss +143 -0
- package/scss/profiles/omnia_main.hsl.scss +12 -0
- package/scss/profiles/omnia_main.oklab.scss +12 -0
- package/scss/profiles/omnia_main.oklch.scss +12 -0
- package/scss/utilities/_accessibility.scss +42 -0
- package/scss/utilities/_alignment.scss +861 -0
- package/scss/utilities/_anchor_positioning.scss +65 -0
- package/scss/utilities/_animation_properties.scss +143 -0
- package/scss/utilities/_aspect.scss +73 -0
- package/scss/utilities/_backgrounds.scss +49 -0
- package/scss/utilities/_borders_extended.scss +97 -0
- package/scss/utilities/_borders_outlines.scss +161 -0
- package/scss/utilities/_clamp.scss +111 -0
- package/scss/utilities/_colors_html.scss +341 -0
- package/scss/utilities/_colors_mix.scss +84 -0
- package/scss/utilities/_colors_omnia.scss +315 -0
- package/scss/utilities/_colors_ral.scss +151 -0
- package/scss/utilities/_colors_tokens.scss +87 -0
- package/scss/utilities/_container.scss +58 -0
- package/scss/utilities/_containment.scss +82 -0
- package/scss/utilities/_corner_shape.scss +30 -0
- package/scss/utilities/_css_functions.scss +34 -0
- package/scss/utilities/_dark_mode.scss +117 -0
- package/scss/utilities/_display.scss +58 -0
- package/scss/utilities/_drop_shadow_colors.scss +26 -0
- package/scss/utilities/_effects.scss +50 -0
- package/scss/utilities/_effects_advanced.scss +102 -0
- package/scss/utilities/_experimental_css.scss +149 -0
- package/scss/utilities/_filters.scss +89 -0
- package/scss/utilities/_flexbox.scss +318 -0
- package/scss/utilities/_font_variants.scss +139 -0
- package/scss/utilities/_fonts.scss +276 -0
- package/scss/utilities/_gap.scss +104 -0
- package/scss/utilities/_gradient_stops.scss +48 -0
- package/scss/utilities/_gradients.scss +99 -0
- package/scss/utilities/_grid.scss +673 -0
- package/scss/utilities/_index.scss +22 -0
- package/scss/utilities/_interactivity.scss +198 -0
- package/scss/utilities/_layering.scss +24 -0
- package/scss/utilities/_layout_extras.scss +171 -0
- package/scss/utilities/_layout_flow.scss +210 -0
- package/scss/utilities/_mask_extras.scss +62 -0
- package/scss/utilities/_motion_transforms.scss +167 -0
- package/scss/utilities/_overflow.scss +41 -0
- package/scss/utilities/_position.scss +49 -0
- package/scss/utilities/_responsive.scss +272 -0
- package/scss/utilities/_scroll_animations.scss +80 -0
- package/scss/utilities/_scroll_spacing.scss +33 -0
- package/scss/utilities/_scrollbar.scss +50 -0
- package/scss/utilities/_shadow_tokens.scss +21 -0
- package/scss/utilities/_shapes.scss +72 -0
- package/scss/utilities/_sizing.scss +458 -0
- package/scss/utilities/_sizing_logical.scss +99 -0
- package/scss/utilities/_space_divide.scss +85 -0
- package/scss/utilities/_spacing_margin.scss +199 -0
- package/scss/utilities/_spacing_padding.scss +195 -0
- package/scss/utilities/_starting_style.scss +53 -0
- package/scss/utilities/_state_variants.scss +196 -0
- package/scss/utilities/_svg.scss +100 -0
- package/scss/utilities/_table.scss +46 -0
- package/scss/utilities/_table_advanced.scss +19 -0
- package/scss/utilities/_text.scss +1331 -0
- package/scss/utilities/_transforms_3d.scss +76 -0
- package/scss/utilities/_typography_advanced.scss +124 -0
- package/scss/utilities/_typography_modern.scss +83 -0
- package/scss/utilities/_view_transitions.scss +64 -0
- package/scss/utilities/_writing_modes.scss +72 -0
- package/scss/variables/_color_tone.scss +39 -0
- package/scss/variables/_hulp.scss +108 -0
- package/scss/variables/_mixins.scss +40 -0
- package/scss/variables/_modifiers.scss +32 -0
- package/scss/variables/_variables.scss +302 -0
- package/scss/variables/_variables_colors_html.scss +2019 -0
- package/scss/variables/_variables_colors_omnia.scss +465 -0
- package/scss/variables/_variables_colors_ral.scss +3472 -0
- package/scss/variables/_variables_effects.scss +109 -0
- package/scss/variables/_variables_flex_grid.scss +427 -0
- package/scss/variables/_variables_layout.scss +591 -0
- package/scss/variables/_variables_typography.scss +550 -0
- package/src/engine.mjs +258 -0
- package/src/postcss.mjs +43 -0
- package/src/starter-classes.mjs +124 -0
- package/src/tokens.mjs +377 -0
- package/src/variants.mjs +278 -0
- package/tokens/semantic.json +80 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_colors_omnia.scss
|
|
3
|
+
// Description: colors properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Properties: background-color, color
|
|
9
|
+
// Values: rgb, rgba, hsl, hsla, #
|
|
10
|
+
|
|
11
|
+
@use "sass:string";
|
|
12
|
+
@use "sass:color";
|
|
13
|
+
@use "sass:list";
|
|
14
|
+
@use "sass:math";
|
|
15
|
+
@use "sass:map";
|
|
16
|
+
@use '../utilities/' as *;
|
|
17
|
+
// oc-tone-color() and $oc-tone-scale: see variables/_color_tone.scss (forwarded via utilities index).
|
|
18
|
+
// oklch/oklab utilities use var(--color-{name}-{step}) from oc-colors.css so values stay in one place.
|
|
19
|
+
|
|
20
|
+
/* The OMNIA Colors properties */
|
|
21
|
+
///
|
|
22
|
+
/// @group ColorsOMNIA
|
|
23
|
+
///
|
|
24
|
+
|
|
25
|
+
///
|
|
26
|
+
/// This code defines a series of nested Sass @each loops that generate CSS background colors
|
|
27
|
+
/// and text colors based on a set of predefined color palettes.
|
|
28
|
+
/// The @each loops iterate through several arrays of color properties,
|
|
29
|
+
/// starting with a top-level array called $html-colors, and dig into subsequent arrays of
|
|
30
|
+
/// maincolorsomnia-prop, colorname-prop, pseudoclasses-prop, and opacitycolor-prop
|
|
31
|
+
/// to generate CSS classes for each color with different opacity and/or pseudo-class options.
|
|
32
|
+
///
|
|
33
|
+
/// The code then generates CSS code block and sets the appropriate background-color
|
|
34
|
+
/// and color properties based on the selected color and opacity value.
|
|
35
|
+
/// The $DEFAULT-COLOR-TYPE-VALUE variable determines whether the color being iterated
|
|
36
|
+
/// through is set as a hexadecimal value, HSL, or RGB.
|
|
37
|
+
///
|
|
38
|
+
/// @group ColorsOMNIA
|
|
39
|
+
/// @name colorsomnia
|
|
40
|
+
/// @link src/scss/utilities/_colors_omnia.scss
|
|
41
|
+
/// @since 1.0.0
|
|
42
|
+
/// @author Serge Cools
|
|
43
|
+
///
|
|
44
|
+
/// Applies to: all elements
|
|
45
|
+
///
|
|
46
|
+
/// @require {variable} $colorsomnia
|
|
47
|
+
/// @require {variable} $pseudoclasses
|
|
48
|
+
/// @require {variable} $opacitycolor
|
|
49
|
+
/// @require str-replace
|
|
50
|
+
/// @example scss - colors class
|
|
51
|
+
/// @each $colorsomnia-prop, $colorsomnia-value in $omnia-colors { // first list 'omniacolors'
|
|
52
|
+
/// @each $maincolorsomnia-prop, $maincolorsomnia-value in $colorsomnia-value { // first list 'omniacolors'
|
|
53
|
+
/// @each $colorname-prop, $colorname-value in $maincolorsomnia-value { // second list 'colors name'
|
|
54
|
+
/// @each $pseudoclasses-prop, $pseudoclasses-value in $pseudoclasses { // make the pseudo classes
|
|
55
|
+
/// @each $opacitycolor-prop, $opacitycolor-value in $opacitycolor { // set the opacity off the colors
|
|
56
|
+
/// #{".#{$pseudoclasses-value}" + "bg-" + to-lower-case("#{$colorname-prop}") + if($opacitycolor-value <= 90, "#{$opacitycolor-prop}#{$pseudoclasses-prop}","#{$pseudoclasses-prop}") } {
|
|
57
|
+
/// @each $coloromnia-prop, $coloromnia-value in $colorname-value {
|
|
58
|
+
/// @if $coloromnia-prop == $DEFAULT-COLOR-TYPE-VALUE {
|
|
59
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
60
|
+
/// @if $opacitycolor-value <= 90 {
|
|
61
|
+
/// background-color: $coloromnia-value+#{$opacitycolor-value}
|
|
62
|
+
/// } @else {
|
|
63
|
+
/// background-color: $coloromnia-value
|
|
64
|
+
/// };
|
|
65
|
+
/// };
|
|
66
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
67
|
+
/// $h:(); $s:(); $l:();
|
|
68
|
+
/// @each $color-prop, $color-value in $coloromnia-value {
|
|
69
|
+
/// @if $color-prop == 'h' { $h: #{$color-value} }
|
|
70
|
+
/// @if $color-prop == 's' { $s: #{$color-value}+'%' }
|
|
71
|
+
/// @if $color-prop == 'l' { $l: #{$color-value}+'%' }
|
|
72
|
+
/// };
|
|
73
|
+
/// @if $opacitycolor-value <= 90 {
|
|
74
|
+
/// background-color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ', #{$opacitycolor-value}% )' }
|
|
75
|
+
/// } @else {
|
|
76
|
+
/// background-color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ' )' };
|
|
77
|
+
/// };
|
|
78
|
+
/// };
|
|
79
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
80
|
+
/// $r:(); $g:(); $b:();
|
|
81
|
+
/// @each $color-prop, $color-value in $coloromnia-value {
|
|
82
|
+
/// @if $color-prop == 'r' { $r: #{$color-value} }
|
|
83
|
+
/// @if $color-prop == 'g' { $g: #{$color-value} }
|
|
84
|
+
/// @if $color-prop == 'b' { $b: #{$color-value} }
|
|
85
|
+
/// };
|
|
86
|
+
/// @if $opacitycolor-value <= 90 {
|
|
87
|
+
/// background-color: #{'rgb('+ $r $g $b + ' / #{$opacitycolor-value}% )' }
|
|
88
|
+
/// } @else {
|
|
89
|
+
/// background-color: #{'rgb('+ $r $g $b + ' )' }
|
|
90
|
+
/// };
|
|
91
|
+
/// };
|
|
92
|
+
/// };
|
|
93
|
+
/// };
|
|
94
|
+
/// };
|
|
95
|
+
/// #{".#{$pseudoclasses-value}" + "text-" + to-lower-case("#{$colorname-prop}") + if($opacitycolor-value <= 90, "#{$opacitycolor-prop}#{$pseudoclasses-prop}","#{$pseudoclasses-prop}")}{
|
|
96
|
+
/// @each $coloromnia-prop, $coloromnia-value in $colorname-value {
|
|
97
|
+
/// @if $coloromnia-prop == $DEFAULT-COLOR-TYPE-VALUE {
|
|
98
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
99
|
+
/// @if $opacitycolor-value <= 90 {
|
|
100
|
+
/// color: $coloromnia-value+#{$opacitycolor-value}
|
|
101
|
+
/// } @else {
|
|
102
|
+
/// color: $coloromnia-value
|
|
103
|
+
/// };
|
|
104
|
+
/// };
|
|
105
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
106
|
+
/// $h:(); $s:(); $l:();
|
|
107
|
+
/// @each $color-prop, $color-value in $coloromnia-value {
|
|
108
|
+
/// @if $color-prop == 'h' { $h: #{$color-value} }
|
|
109
|
+
/// @if $color-prop == 's' { $s: #{$color-value}+'%' }
|
|
110
|
+
/// @if $color-prop == 'l' { $l: #{$color-value}+'%' }
|
|
111
|
+
/// };
|
|
112
|
+
/// @if $opacitycolor-value <= 90 {
|
|
113
|
+
/// color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ', #{$opacitycolor-value}% )' }
|
|
114
|
+
/// } @else {
|
|
115
|
+
/// color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ',)' }
|
|
116
|
+
/// };
|
|
117
|
+
/// };
|
|
118
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
119
|
+
/// $r:(); $g:(); $b:();
|
|
120
|
+
/// @each $color-prop, $color-value in $coloromnia-value {
|
|
121
|
+
/// @if $color-prop == 'r' { $r: #{$color-value} }
|
|
122
|
+
/// @if $color-prop == 'g' { $g: #{$color-value} }
|
|
123
|
+
/// @if $color-prop == 'b' { $b: #{$color-value} }
|
|
124
|
+
/// };
|
|
125
|
+
/// @if $opacitycolor-value <= 90 {
|
|
126
|
+
/// color: #{'rgb('+ $r $g $b + ' / #{$opacitycolor-value}% )' }
|
|
127
|
+
/// } @else {
|
|
128
|
+
/// color: #{'rgb('+ $r $g $b + ' )' }
|
|
129
|
+
/// };
|
|
130
|
+
/// };
|
|
131
|
+
/// };
|
|
132
|
+
/// };
|
|
133
|
+
/// };
|
|
134
|
+
/// };
|
|
135
|
+
/// };
|
|
136
|
+
/// };
|
|
137
|
+
/// };
|
|
138
|
+
/// };
|
|
139
|
+
/// @example html - use background, text and hover-color class
|
|
140
|
+
/// <div class="bg-green-50 w-12 h-10 p-0.5 hover:text-red text-cyan">
|
|
141
|
+
/// <p>text = Cyan</p>
|
|
142
|
+
/// <p>background = darkgreen</p>
|
|
143
|
+
/// <p>hover background = orange </p>
|
|
144
|
+
/// </div>
|
|
145
|
+
@each $colorsomnia-prop, $colorsomnia-value in $omnia-colors { // first list 'omniacolors'
|
|
146
|
+
|
|
147
|
+
@each $maincolorsomnia-prop, $maincolorsomnia-value in $colorsomnia-value { // first list 'omniacolors'
|
|
148
|
+
|
|
149
|
+
@each $colorname-prop, $colorname-value in $maincolorsomnia-value { // second list 'colors name'
|
|
150
|
+
|
|
151
|
+
@each $pseudoclasses-prop, $pseudoclasses-value in $pseudoclasses { // make the pseudo classes
|
|
152
|
+
|
|
153
|
+
@each $opacitycolor-prop, $opacitycolor-value in $opacitycolor { // set the opacity off the colors
|
|
154
|
+
$step: list.nth($opacitycolor-value, 1);
|
|
155
|
+
$color-name: string.to-lower-case(#{$colorname-prop});
|
|
156
|
+
|
|
157
|
+
$opacity-suffix: "#{$pseudoclasses-prop}";
|
|
158
|
+
@if $opacitycolor-value <= 95 {
|
|
159
|
+
$opacity-suffix: "#{$opacitycolor-prop}#{$pseudoclasses-prop}";
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
#{".#{$pseudoclasses-value}" + "bg-" + string.to-lower-case("#{$colorname-prop}") + $opacity-suffix }{
|
|
163
|
+
|
|
164
|
+
@each $coloromnia-prop, $coloromnia-value in $colorname-value {
|
|
165
|
+
|
|
166
|
+
@if $coloromnia-prop == $DEFAULT-COLOR-TYPE-VALUE or (($DEFAULT-COLOR-TYPE-VALUE == 'oklch' or $DEFAULT-COLOR-TYPE-VALUE == 'oklab') and $coloromnia-prop == 'hex') {
|
|
167
|
+
|
|
168
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
169
|
+
|
|
170
|
+
@if $opacitycolor-value <= 95 {
|
|
171
|
+
|
|
172
|
+
background-color: $coloromnia-value+#{$opacitycolor-value};
|
|
173
|
+
|
|
174
|
+
} @else {
|
|
175
|
+
|
|
176
|
+
background-color: $coloromnia-value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
181
|
+
|
|
182
|
+
$h:(); $s:(); $l:();
|
|
183
|
+
|
|
184
|
+
@each $color-prop, $color-value in $coloromnia-value {
|
|
185
|
+
|
|
186
|
+
@if $color-prop == 'h' { $h: #{$color-value}; }
|
|
187
|
+
@if $color-prop == 's' { $s: #{$color-value}+'%'; }
|
|
188
|
+
@if $color-prop == 'l' { $l: #{$color-value}+'%'; }
|
|
189
|
+
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@if $opacitycolor-value <= 95 {
|
|
193
|
+
|
|
194
|
+
background-color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ', #{$opacitycolor-value}% )' };
|
|
195
|
+
|
|
196
|
+
} @else {
|
|
197
|
+
|
|
198
|
+
background-color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ' )' };
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
203
|
+
|
|
204
|
+
$r:(); $g:(); $b:();
|
|
205
|
+
|
|
206
|
+
@each $color-prop, $color-value in $coloromnia-value {
|
|
207
|
+
|
|
208
|
+
@if $color-prop == 'r' { $r: #{$color-value}; }
|
|
209
|
+
@if $color-prop == 'g' { $g: #{$color-value}; }
|
|
210
|
+
@if $color-prop == 'b' { $b: #{$color-value}; }
|
|
211
|
+
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@if $opacitycolor-value <= 95 {
|
|
215
|
+
|
|
216
|
+
background-color: #{'rgb('+ $r $g $b + ' / #{$opacitycolor-value}% )' };
|
|
217
|
+
|
|
218
|
+
} @else {
|
|
219
|
+
|
|
220
|
+
background-color: #{'rgb('+ $r $g $b + ' )' };
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'oklch' {
|
|
225
|
+
// Use token from oc-colors.css so one source of truth; class matches --color-{name}-{step}.
|
|
226
|
+
background-color: var(--color-#{$color-name}-#{$step});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'oklab' {
|
|
230
|
+
// Same token naming as oklch; oc-colors emits from hex so token is shared.
|
|
231
|
+
background-color: var(--color-#{$color-name}-#{$step});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
#{".#{$pseudoclasses-value}" + "text-" + string.to-lower-case("#{$colorname-prop}") + $opacity-suffix}{
|
|
238
|
+
|
|
239
|
+
@each $coloromnia-prop, $coloromnia-value in $colorname-value {
|
|
240
|
+
|
|
241
|
+
@if $coloromnia-prop == $DEFAULT-COLOR-TYPE-VALUE or (($DEFAULT-COLOR-TYPE-VALUE == 'oklch' or $DEFAULT-COLOR-TYPE-VALUE == 'oklab') and $coloromnia-prop == 'hex') {
|
|
242
|
+
|
|
243
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
244
|
+
|
|
245
|
+
@if $opacitycolor-value <= 95 {
|
|
246
|
+
|
|
247
|
+
color: $coloromnia-value+#{$opacitycolor-value};
|
|
248
|
+
|
|
249
|
+
} @else {
|
|
250
|
+
|
|
251
|
+
color: $coloromnia-value;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
256
|
+
|
|
257
|
+
$h:(); $s:(); $l:();
|
|
258
|
+
|
|
259
|
+
@each $color-prop, $color-value in $coloromnia-value {
|
|
260
|
+
|
|
261
|
+
@if $color-prop == 'h' { $h: #{$color-value}; }
|
|
262
|
+
@if $color-prop == 's' { $s: #{$color-value}+'%'; }
|
|
263
|
+
@if $color-prop == 'l' { $l: #{$color-value}+'%'; }
|
|
264
|
+
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@if $opacitycolor-value <= 95 {
|
|
268
|
+
|
|
269
|
+
color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ', #{$opacitycolor-value}% )' };
|
|
270
|
+
|
|
271
|
+
} @else {
|
|
272
|
+
|
|
273
|
+
color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ' )' };
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
278
|
+
|
|
279
|
+
$r:(); $g:(); $b:();
|
|
280
|
+
|
|
281
|
+
@each $color-prop, $color-value in $coloromnia-value {
|
|
282
|
+
|
|
283
|
+
@if $color-prop == 'r' { $r: #{$color-value}; }
|
|
284
|
+
@if $color-prop == 'g' { $g: #{$color-value}; }
|
|
285
|
+
@if $color-prop == 'b' { $b: #{$color-value}; }
|
|
286
|
+
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
@if $opacitycolor-value <= 95 {
|
|
290
|
+
|
|
291
|
+
color: #{'rgb('+ $r $g $b + ' / #{$opacitycolor-value}% )' };
|
|
292
|
+
|
|
293
|
+
} @else {
|
|
294
|
+
|
|
295
|
+
color: #{'rgb('+ $r $g $b + ' )' };
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'oklch' {
|
|
300
|
+
color: var(--color-#{$color-name}-#{$step});
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
@if $DEFAULT-COLOR-TYPE-VALUE == 'oklab' {
|
|
304
|
+
color: var(--color-#{$color-name}-#{$step});
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
/* End OMNIA Colors properties */
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_colors_ral.scss
|
|
3
|
+
// Description: colors properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Properties: background-color, color
|
|
9
|
+
// Values: rgb, rgba, hsl, hsla, #
|
|
10
|
+
|
|
11
|
+
@use "sass:string";
|
|
12
|
+
@use "sass:color";
|
|
13
|
+
@use '../utilities/' as *;
|
|
14
|
+
|
|
15
|
+
/* The RAL Colors properties */
|
|
16
|
+
///
|
|
17
|
+
/// @group ColorsRAL
|
|
18
|
+
///
|
|
19
|
+
|
|
20
|
+
///
|
|
21
|
+
/// This code defines a series of nested Sass @each loops that generate CSS background colors
|
|
22
|
+
/// and text colors based on a set of predefined color palettes.
|
|
23
|
+
/// The @each loops iterate through several arrays of color properties,
|
|
24
|
+
/// starting with a top-level array called $html-colors, and dig into subsequent arrays of
|
|
25
|
+
/// maincolorsomnia-prop, colorname-prop, and pseudoclasses-prop
|
|
26
|
+
/// to generate CSS classes for each color with different opacity and/or pseudo-class options.
|
|
27
|
+
///
|
|
28
|
+
/// The code then generates CSS code block and sets the appropriate background-color
|
|
29
|
+
/// and color properties based on the selected color and opacity value.
|
|
30
|
+
/// The $DEFAULT-COLOR-TYPE-VALUE variable determines whether the color being iterated
|
|
31
|
+
/// through is set as a hexadecimal value, HSL, or RGB.
|
|
32
|
+
///
|
|
33
|
+
/// This site displays a review of standard colors according the Classic RAL System.
|
|
34
|
+
/// RAL is used for information defining standard colors for paint and coatings.
|
|
35
|
+
/// It is the most popular Central European Color Standard used today.
|
|
36
|
+
/// The colors are used in architecture, construction, industry and road safety.
|
|
37
|
+
/// The RAL colors in this chart have been matched as closely as possible.
|
|
38
|
+
///
|
|
39
|
+
/// * RAL 1xxx (geel): RAL 1000 groenbeige - RAL 1037 zonnegeel (40 kleuren)
|
|
40
|
+
/// * RAL 2xxx (oranje): RAL 2000 geeloranje - RAL 2013 parelmoeroranje (14 kleuren)
|
|
41
|
+
/// * RAL 3xxx (rood): RAL 3000 vuurrood - RAL 3033 parelmoerlichtrood (34 kleuren)
|
|
42
|
+
/// * RAL 4xxx (violet): RAL 4001 roodlila - RAL 4012 parelmoerlichtviolet (12 kleuren)
|
|
43
|
+
/// * RAL 5xxx (blauw): RAL 5000 paarsblauw - RAL 5026 parelmoernachtblauw (25 kleuren)
|
|
44
|
+
/// * RAL 6xxx (groen): RAL 6000 patinagroen - RAL 6038 briljantgroen (38 kleuren)
|
|
45
|
+
/// * RAL 7xxx (grijs): RAL 7000 pelsgrijs - RAL 7048 parelmoermuisgrijs (38 kleuren)
|
|
46
|
+
/// * RAL 8xxx (bruin): RAL 8000 groenbruin - RAL 8029 parelmoerkoper (20 kleuren)
|
|
47
|
+
/// * RAL 9xxx (wit/zwart): RAL 9001 crèmewit - RAL 9023 parelmoerdonkergrijs (14 kleuren)
|
|
48
|
+
///
|
|
49
|
+
/// @group ColorsRAL
|
|
50
|
+
/// @name colorsral
|
|
51
|
+
/// @link src/scss/utilities/_colors_ral.scss
|
|
52
|
+
/// @since 1.0.0
|
|
53
|
+
/// @author Serge Cools
|
|
54
|
+
///
|
|
55
|
+
/// Applies to: all elements
|
|
56
|
+
///
|
|
57
|
+
/// @require {variable} $colorsral
|
|
58
|
+
/// @require {variable} $pseudoclasses
|
|
59
|
+
/// @require str-replace
|
|
60
|
+
/// @example scss - colors class
|
|
61
|
+
/// @each $colorsral-prop, $colorsral-value in $ral-colors { // first list 'ralcolors'
|
|
62
|
+
/// @each $maincolorsral-prop, $maincolorsral-value in $colorsral-value { // first list 'ralcolors'
|
|
63
|
+
/// @each $colorname-prop, $colorname-value in $maincolorsral-value { // second list 'colors name'
|
|
64
|
+
/// @each $pseudoclasses-prop, $pseudoclasses-value in $pseudoclasses { // make the pseudo classes
|
|
65
|
+
/// #{".#{$pseudoclasses-value}" + "bg-" + to-lower-case("#{$colorname-prop}"+ "#{$pseudoclasses-prop}")}{
|
|
66
|
+
/// @each $colorral-prop, $colorral-value in $colorname-value {
|
|
67
|
+
/// @if $colorral-prop == $DEFAULT-COLOR-TYPE-VALUE {
|
|
68
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
69
|
+
/// background-color: $colorral-value;
|
|
70
|
+
/// };
|
|
71
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
72
|
+
/// $h:(); $s:(); $l:();
|
|
73
|
+
/// @each $color-prop, $color-value in $colorral-value {
|
|
74
|
+
/// @if $color-prop == 'h' { $h: #{$color-value}; }
|
|
75
|
+
/// @if $color-prop == 's' { $s: #{$color-value}+'%'; }
|
|
76
|
+
/// @if $color-prop == 'l' { $l: #{$color-value}+'%'; }
|
|
77
|
+
/// };
|
|
78
|
+
/// background-color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ')'};
|
|
79
|
+
/// };
|
|
80
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
81
|
+
/// $r:(); $g:(); $b:();
|
|
82
|
+
/// @each $color-prop, $color-value in $colorral-value {
|
|
83
|
+
/// @if $color-prop == 'r' { $r: #{$color-value}; }
|
|
84
|
+
/// @if $color-prop == 'g' { $g: #{$color-value}; }
|
|
85
|
+
/// @if $color-prop == 'b' { $b: #{$color-value}; }
|
|
86
|
+
/// };
|
|
87
|
+
/// background-color: #{'rgb('+ $r $g $b + ')'};
|
|
88
|
+
/// };
|
|
89
|
+
/// };
|
|
90
|
+
/// };
|
|
91
|
+
/// };
|
|
92
|
+
/// #{".#{$pseudoclasses-value}" + "text-" + to-lower-case("#{$colorname-prop}"+ "#{$pseudoclasses-prop}")}{
|
|
93
|
+
/// @each $colorral-prop, $colorral-value in $colorname-value {
|
|
94
|
+
/// @if $colorral-prop == $DEFAULT-COLOR-TYPE-VALUE {
|
|
95
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hex' or $DEFAULT-COLOR-TYPE-VALUE == 'websafe' {
|
|
96
|
+
/// color: $colorral-value;
|
|
97
|
+
/// };
|
|
98
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'hsl' {
|
|
99
|
+
/// $h:(); $s:(); $l:();
|
|
100
|
+
/// @each $color-prop, $color-value in $colorral-value {
|
|
101
|
+
/// @if $color-prop == 'h' { $h: #{$color-value}; }
|
|
102
|
+
/// @if $color-prop == 's' { $s: #{$color-value}+'%'; }
|
|
103
|
+
/// @if $color-prop == 'l' { $l: #{$color-value}+'%'; }
|
|
104
|
+
/// };
|
|
105
|
+
/// color: #{'hsl('+ $h + ', ' + $s + ', ' + $l + ')'};
|
|
106
|
+
/// };
|
|
107
|
+
/// @if $DEFAULT-COLOR-TYPE-VALUE == 'rgb' {
|
|
108
|
+
/// $r:(); $g:(); $b:();
|
|
109
|
+
/// @each $color-prop, $color-value in $colorral-value {
|
|
110
|
+
/// @if $color-prop == 'r' { $r: #{$color-value}; }
|
|
111
|
+
/// @if $color-prop == 'g' { $g: #{$color-value}; }
|
|
112
|
+
/// @if $color-prop == 'b' { $b: #{$color-value}; }
|
|
113
|
+
/// };
|
|
114
|
+
/// color: #{'rgb('+ $r $g $b + ')'};
|
|
115
|
+
/// };
|
|
116
|
+
/// };
|
|
117
|
+
/// };
|
|
118
|
+
/// };
|
|
119
|
+
/// };
|
|
120
|
+
/// };
|
|
121
|
+
/// };
|
|
122
|
+
/// };
|
|
123
|
+
/// @example html - use background, text and hover-color class
|
|
124
|
+
/// <div class="bg-ral1003 w-20 h-12 p-0.5 hover:bg-ral1005">
|
|
125
|
+
/// <p class="text-ral1036">Signal yellow, background = ral1003, hover background = ral1036 </p>
|
|
126
|
+
/// <p class="text-ral2005">text = ral2005</p>
|
|
127
|
+
/// <p class="text-ral3002">background = ral1003</p>
|
|
128
|
+
/// <p class="text-ral1005">hover background = ral1005 </p>
|
|
129
|
+
/// </div>
|
|
130
|
+
@each $colorsral-prop, $colorsral-value in $ral-colors { // first list 'ralcolors'
|
|
131
|
+
|
|
132
|
+
@each $maincolorsral-prop, $maincolorsral-value in $colorsral-value { // first list 'ralcolors'
|
|
133
|
+
|
|
134
|
+
@each $colorname-prop, $colorname-value in $maincolorsral-value { // second list 'colors name'
|
|
135
|
+
|
|
136
|
+
$ral-name: string.to-lower-case(#{$colorname-prop});
|
|
137
|
+
@each $pseudoclasses-prop, $pseudoclasses-value in $pseudoclasses { // make the pseudo classes
|
|
138
|
+
|
|
139
|
+
#{".#{$pseudoclasses-value}" + "bg-" + $ral-name + "#{$pseudoclasses-prop}"}{
|
|
140
|
+
background-color: var(--color-#{$ral-name});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
#{".#{$pseudoclasses-value}" + "text-" + $ral-name + "#{$pseudoclasses-prop}"}{
|
|
144
|
+
color: var(--color-#{$ral-name});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
/* End RAL Colors properties */
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// File: src/scss/utilities/_colors_tokens.scss
|
|
2
|
+
// Description: CSS custom properties for Omnia/HTML colors under @supports (color: oklch(...)).
|
|
3
|
+
// Copyright: 2021-2026 Birdycom
|
|
4
|
+
// Framework: OmniaCSS
|
|
5
|
+
// Purpose: Emit tone/mix tokens for Omnia & HTML; single token per color for RAL.
|
|
6
|
+
// Sources: $omnia-colors, $html-colors, $ral-colors; $opacitycolor, $color-mix-steps from _variables_effects; oc-tone-color() from _color_tone.scss.
|
|
7
|
+
|
|
8
|
+
@use "sass:color";
|
|
9
|
+
@use "sass:list";
|
|
10
|
+
@use "sass:map";
|
|
11
|
+
@use "sass:string";
|
|
12
|
+
@use '../utilities/' as *;
|
|
13
|
+
|
|
14
|
+
/* ===================================================================
|
|
15
|
+
COLOR TOKENS (@supports oklch)
|
|
16
|
+
Omnia/HTML: --color-{name}-{step} (tone), --color-{name}-mix-{step} (color-mix).
|
|
17
|
+
RAL: --color-{name} only (one value per RAL code, no steps).
|
|
18
|
+
Use: var(--color-red-50); var(--color-red-mix-50); var(--color-ral9023);
|
|
19
|
+
=================================================================== */
|
|
20
|
+
|
|
21
|
+
@mixin _emit-color-tokens($color-map) {
|
|
22
|
+
@each $colors-prop, $colors-value in $color-map {
|
|
23
|
+
@each $main-prop, $main-value in $colors-value {
|
|
24
|
+
@each $colorname-prop, $colorname-value in $main-value {
|
|
25
|
+
$hex: map.get($colorname-value, hex);
|
|
26
|
+
@if $hex {
|
|
27
|
+
$oklch-color: color.to-space($hex, oklch);
|
|
28
|
+
$name: string.to-lower-case(#{$colorname-prop});
|
|
29
|
+
|
|
30
|
+
@each $opacitycolor-prop, $opacitycolor-value in $opacitycolor {
|
|
31
|
+
$step: list.nth($opacitycolor-value, 1);
|
|
32
|
+
$tone-color: oc-tone-color($oklch-color, $step);
|
|
33
|
+
--color-#{$name}-#{$step}: #{$tone-color};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Emit --color-{name}-mix-{step} for color-mix(in oklch, color step%, transparent). Steps from $color-mix-steps.
|
|
42
|
+
@mixin _emit-color-mix-tokens($color-map) {
|
|
43
|
+
@each $colors-prop, $colors-value in $color-map {
|
|
44
|
+
@each $main-prop, $main-value in $colors-value {
|
|
45
|
+
@each $colorname-prop, $colorname-value in $main-value {
|
|
46
|
+
$hex: map.get($colorname-value, hex);
|
|
47
|
+
@if $hex {
|
|
48
|
+
$oklch-color: color.to-space($hex, oklch);
|
|
49
|
+
$name: string.to-lower-case(#{$colorname-prop});
|
|
50
|
+
@each $step in $color-mix-steps {
|
|
51
|
+
--color-#{$name}-mix-#{$step}: color-mix(in oklch, #{$oklch-color} #{$step * 1%}, transparent);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/// RAL: one token per color only (--color-ral1000, --color-ral9023, etc.), no tone/mix steps.
|
|
60
|
+
@mixin _emit-ral-tokens($ral-map) {
|
|
61
|
+
@each $colors-prop, $colors-value in $ral-map {
|
|
62
|
+
@each $main-prop, $main-value in $colors-value {
|
|
63
|
+
@each $colorname-prop, $colorname-value in $main-value {
|
|
64
|
+
$hex: map.get($colorname-value, hex);
|
|
65
|
+
@if $hex {
|
|
66
|
+
$oklch-color: color.to-space($hex, oklch);
|
|
67
|
+
$name: string.to-lower-case(#{$colorname-prop});
|
|
68
|
+
--color-#{$name}: #{$oklch-color};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@supports (color: oklch(0 0 0)) {
|
|
76
|
+
:root,
|
|
77
|
+
:host {
|
|
78
|
+
/* Omnia palette (tone + mix) */
|
|
79
|
+
@include _emit-color-tokens($omnia-colors);
|
|
80
|
+
@include _emit-color-mix-tokens($omnia-colors);
|
|
81
|
+
/* HTML palette (tone + mix) */
|
|
82
|
+
@include _emit-color-tokens($html-colors);
|
|
83
|
+
@include _emit-color-mix-tokens($html-colors);
|
|
84
|
+
/* RAL palette (single token per color, no steps) */
|
|
85
|
+
@include _emit-ral-tokens($ral-colors);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/variables/__variables.scss
|
|
3
|
+
// Description: Default string items for using in the CSS properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// class: container
|
|
9
|
+
|
|
10
|
+
@use '../utilities/' as *;
|
|
11
|
+
|
|
12
|
+
/* The Container property */
|
|
13
|
+
|
|
14
|
+
///
|
|
15
|
+
/// The Layout class within OmniaCSS
|
|
16
|
+
/// @group Container
|
|
17
|
+
///
|
|
18
|
+
|
|
19
|
+
///
|
|
20
|
+
/// CSS container class with max-width and breakpoints
|
|
21
|
+
/// @group Container
|
|
22
|
+
/// @name container
|
|
23
|
+
/// @link src/scss/utilities/_container.scss
|
|
24
|
+
/// @since 1.0.0
|
|
25
|
+
/// @author Serge Cools
|
|
26
|
+
///
|
|
27
|
+
/// Applies to: all elements
|
|
28
|
+
///
|
|
29
|
+
/// @require {mixin} respond-to
|
|
30
|
+
/// @example html - use container class
|
|
31
|
+
/// <div class="container">
|
|
32
|
+
/// <h1>Design system</h1>
|
|
33
|
+
/// <h3>Colors</h3>
|
|
34
|
+
/// </div>
|
|
35
|
+
.container {
|
|
36
|
+
width: 100%;
|
|
37
|
+
max-width: 100%;
|
|
38
|
+
margin-inline: auto; /* Center the container horizontally */
|
|
39
|
+
padding-inline: 1rem; /* Default horizontal padding */
|
|
40
|
+
|
|
41
|
+
@include respond-to('small') {
|
|
42
|
+
max-width: 41rem;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@include respond-to('medium') {
|
|
46
|
+
max-width: 60rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@include respond-to('large') {
|
|
50
|
+
max-width: 80rem;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Container Query Types */
|
|
55
|
+
.cq-inline { container-type: inline-size; }
|
|
56
|
+
.cq-normal { container-type: normal; }
|
|
57
|
+
|
|
58
|
+
/* End Container property */
|