@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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +44 -3
  3. package/dist/oc-colors.css +4429 -0
  4. package/dist/oc-theme.css +69 -0
  5. package/dist/omnia.css +465436 -0
  6. package/dist/omnia.min.css +2 -0
  7. package/dist/omnia.starter.css +13461 -0
  8. package/dist/omnia.starter.min.css +1 -0
  9. package/dist/tokens/omnia.dtcg.json +1496 -0
  10. package/dist/tokens/omnia.tokens.json +580 -0
  11. package/dist/tokens/omnia_tokens.py +189 -0
  12. package/package.json +63 -6
  13. package/scss/base/_reset.scss +88 -0
  14. package/scss/config/omniacss.config.scss +114 -0
  15. package/scss/config/omniacss.fonts.scss +34 -0
  16. package/scss/functions/_functions.scss +407 -0
  17. package/scss/json/html-colors.json +1998 -0
  18. package/scss/json/omnia-colors.json +500 -0
  19. package/scss/json/ral-colors.json +3430 -0
  20. package/scss/layout/_media_query.scss +18 -0
  21. package/scss/omnia_colors.scss +7 -0
  22. package/scss/omnia_main.scss +143 -0
  23. package/scss/profiles/omnia_main.hsl.scss +12 -0
  24. package/scss/profiles/omnia_main.oklab.scss +12 -0
  25. package/scss/profiles/omnia_main.oklch.scss +12 -0
  26. package/scss/utilities/_accessibility.scss +42 -0
  27. package/scss/utilities/_alignment.scss +861 -0
  28. package/scss/utilities/_anchor_positioning.scss +65 -0
  29. package/scss/utilities/_animation_properties.scss +143 -0
  30. package/scss/utilities/_aspect.scss +73 -0
  31. package/scss/utilities/_backgrounds.scss +49 -0
  32. package/scss/utilities/_borders_extended.scss +97 -0
  33. package/scss/utilities/_borders_outlines.scss +161 -0
  34. package/scss/utilities/_clamp.scss +111 -0
  35. package/scss/utilities/_colors_html.scss +341 -0
  36. package/scss/utilities/_colors_mix.scss +84 -0
  37. package/scss/utilities/_colors_omnia.scss +315 -0
  38. package/scss/utilities/_colors_ral.scss +151 -0
  39. package/scss/utilities/_colors_tokens.scss +87 -0
  40. package/scss/utilities/_container.scss +58 -0
  41. package/scss/utilities/_containment.scss +82 -0
  42. package/scss/utilities/_corner_shape.scss +30 -0
  43. package/scss/utilities/_css_functions.scss +34 -0
  44. package/scss/utilities/_dark_mode.scss +117 -0
  45. package/scss/utilities/_display.scss +58 -0
  46. package/scss/utilities/_drop_shadow_colors.scss +26 -0
  47. package/scss/utilities/_effects.scss +50 -0
  48. package/scss/utilities/_effects_advanced.scss +102 -0
  49. package/scss/utilities/_experimental_css.scss +149 -0
  50. package/scss/utilities/_filters.scss +89 -0
  51. package/scss/utilities/_flexbox.scss +318 -0
  52. package/scss/utilities/_font_variants.scss +139 -0
  53. package/scss/utilities/_fonts.scss +276 -0
  54. package/scss/utilities/_gap.scss +104 -0
  55. package/scss/utilities/_gradient_stops.scss +48 -0
  56. package/scss/utilities/_gradients.scss +99 -0
  57. package/scss/utilities/_grid.scss +673 -0
  58. package/scss/utilities/_index.scss +22 -0
  59. package/scss/utilities/_interactivity.scss +198 -0
  60. package/scss/utilities/_layering.scss +24 -0
  61. package/scss/utilities/_layout_extras.scss +171 -0
  62. package/scss/utilities/_layout_flow.scss +210 -0
  63. package/scss/utilities/_mask_extras.scss +62 -0
  64. package/scss/utilities/_motion_transforms.scss +167 -0
  65. package/scss/utilities/_overflow.scss +41 -0
  66. package/scss/utilities/_position.scss +49 -0
  67. package/scss/utilities/_responsive.scss +272 -0
  68. package/scss/utilities/_scroll_animations.scss +80 -0
  69. package/scss/utilities/_scroll_spacing.scss +33 -0
  70. package/scss/utilities/_scrollbar.scss +50 -0
  71. package/scss/utilities/_shadow_tokens.scss +21 -0
  72. package/scss/utilities/_shapes.scss +72 -0
  73. package/scss/utilities/_sizing.scss +458 -0
  74. package/scss/utilities/_sizing_logical.scss +99 -0
  75. package/scss/utilities/_space_divide.scss +85 -0
  76. package/scss/utilities/_spacing_margin.scss +199 -0
  77. package/scss/utilities/_spacing_padding.scss +195 -0
  78. package/scss/utilities/_starting_style.scss +53 -0
  79. package/scss/utilities/_state_variants.scss +196 -0
  80. package/scss/utilities/_svg.scss +100 -0
  81. package/scss/utilities/_table.scss +46 -0
  82. package/scss/utilities/_table_advanced.scss +19 -0
  83. package/scss/utilities/_text.scss +1331 -0
  84. package/scss/utilities/_transforms_3d.scss +76 -0
  85. package/scss/utilities/_typography_advanced.scss +124 -0
  86. package/scss/utilities/_typography_modern.scss +83 -0
  87. package/scss/utilities/_view_transitions.scss +64 -0
  88. package/scss/utilities/_writing_modes.scss +72 -0
  89. package/scss/variables/_color_tone.scss +39 -0
  90. package/scss/variables/_hulp.scss +108 -0
  91. package/scss/variables/_mixins.scss +40 -0
  92. package/scss/variables/_modifiers.scss +32 -0
  93. package/scss/variables/_variables.scss +302 -0
  94. package/scss/variables/_variables_colors_html.scss +2019 -0
  95. package/scss/variables/_variables_colors_omnia.scss +465 -0
  96. package/scss/variables/_variables_colors_ral.scss +3472 -0
  97. package/scss/variables/_variables_effects.scss +109 -0
  98. package/scss/variables/_variables_flex_grid.scss +427 -0
  99. package/scss/variables/_variables_layout.scss +591 -0
  100. package/scss/variables/_variables_typography.scss +550 -0
  101. package/src/engine.mjs +258 -0
  102. package/src/postcss.mjs +43 -0
  103. package/src/starter-classes.mjs +124 -0
  104. package/src/tokens.mjs +377 -0
  105. package/src/variants.mjs +278 -0
  106. 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 */