@birdycom/omniacss 0.0.0-stage → 0.11.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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -2
  3. package/dist/oc-colors.css +4429 -0
  4. package/dist/oc-theme.css +69 -0
  5. package/dist/omnia.css +465435 -0
  6. package/dist/omnia.min.css +2 -0
  7. package/dist/omnia.starter.css +13459 -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 +61 -4
  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 +49 -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,276 @@
1
+ // SCSS Document
2
+ // File: src/utilities/_fonts.scss
3
+ // Description: fonts properties
4
+ // Copyright: 2021-2022 Birdycom
5
+ // Autor: Serge Cools
6
+ // Version: 0.2.0
7
+ // Framework: OmniaCSS
8
+ // Properties: fontsize, fontstyle
9
+ // Values: value in rem,
10
+
11
+ @use '../utilities/' as *;
12
+
13
+ /* The font family property */
14
+
15
+ ///
16
+ /// The fontfamily property specifies the font style for a text.
17
+ /// @group FontFamily
18
+ /// @name fontfamily
19
+ /// @link src/scss/utilities/_fonts.scss
20
+ /// @since 1.0.0
21
+ /// @author Serge Cools
22
+ ///
23
+ /// @require $fontfamily
24
+ /// @example scss - fontfamily class
25
+ /// @each $fontfamily-prop, $fontfamily-value in $fontfamily {
26
+ /// .#{$fontfamily-prop} {
27
+ /// font-family: $fontfamily-value;
28
+ /// }
29
+ /// }
30
+ /// @example html - use the fontfamily class
31
+ /// <div class="container">
32
+ /// <p class="font-normal font-1">fontfamily: "Roboto Flex", sans-serif</p>
33
+ /// <p class="font-roboto font-1.5">The quick brown fox jumps over the lazy dog.</p>
34
+ /// <p class="font-normal font-1">fontfamily: "Source Sans Pro", sans-serif</p>
35
+ /// <p class="font-source font-1.5">The quick brown fox jumps over the lazy dog.</p>
36
+ /// <p class="font-normal font-1">fontfamily: Times, "Times New Roman", Georgia, serif</p>
37
+ /// <p class="font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
38
+ /// <p class="font-normal font-1">fontfamily: Verdana, Arial, Helvetica, sans-serif</p>
39
+ /// <p class="font-sansserif font-1.5">The quick brown fox jumps over the lazy dog.</p>
40
+ /// <p class="font-normal font-1">fontfamily: "Lucida Console", Courier, monospace</p>
41
+ /// <p class="font-monospace font-1.5">The quick brown fox jumps over the lazy dog.</p>
42
+ /// <p class="font-normal font-1">fontfamily: cursive</p>
43
+ /// <p class="font-cursive font-1.5">The quick brown fox jumps over the lazy dog.</p>
44
+ /// <p class="font-normal font-1">fontfamily: fantasy</p>
45
+ /// <p class="font-fantasy font-1.5">The quick brown fox jumps over the lazy dog.</p>
46
+ /// <p class="font-normal font-1">fontfamily: Noto emoji</p>
47
+ /// <p class="font-emoji font-1.5">🥰💀✌️🌴🐢🐐🍄⚽🍻👑📸😬👀🚨🏡🕊️🏆😻🌟🧿🍀🎨🍜</p>
48
+ /// <p class="font-normal font-1">fontfamily: Noto color emoji</p>
49
+ /// <p class="font-coloremoji font-1.5">🥰💀✌️🌴🐢🐐🍄⚽🍻👑📸😬👀🚨🏡🕊️🏆😻🌟🧿🍀🎨🍜</p>
50
+ /// <p class="font-normal font-1">fontfamily: Noto Sans Math</p>
51
+ /// <p class="font-math font-1.5">𝞉𝞩𝟃𞻰⟥⦀⦁ 𝚢𝚣𝚤𝖿𝗀𝗁𝗂 𝑻𝑼𝑽𝗔𝗕𝗖𝗗 ϑϕϰϱϵℊℎ ⊰⊱⊲⊳⊴⊵⫕ 𞹴𞹵𞹶𞹷𞹹𞹺𞹻±</p>
52
+ /// <p class="font-normal font-1">fontfamily: fangsong</p>
53
+ /// <p class="font-fangsong font-1.5">人類社会のすべての構成員の固有の尊厳と平等で譲ることのできない権利とを承認することは</p>
54
+ /// <p class="font-normal font-1">fontfamily: Noto Sans Egyptian Hieroglyphs</p>
55
+ /// <p class="font-hieroglyphs font-2.5">𓂧𓌅 𓉗𓇯 𓃾𓂝𓏴𓌅𓀠 𓀠𓃻𓏲𓏴𓃾 𓇯𓂋𓃾𓌓 𓂋𓏲𓁶𓁹𓂝𓃾 𓉐𓂝𓇯 𓇯 𓉐𓂝𓏴 𓇯𓂝𓆓𓃾 𓃻𓃾 𓁹𓉐𓇯𓏲𓂝𓏴𓃾 𓌅𓃾 𓃾𓆓𓌓𓂝𓃾 𓇯𓂋𓂝𓌓𓂝 𓏲𓂝𓇯𓃾 𓇯𓁶𓃻𓉐𓌅 𓇯𓏭𓇯𓃻𓃾 𓌓𓁶𓌓𓆓𓂝𓃾</p>
56
+ /// </div>
57
+ @each $fontfamily-prop, $fontfamily-value in $fontfamily {
58
+
59
+ // fontfamily
60
+
61
+ .#{$fontfamily-prop} {
62
+
63
+ font-family: $fontfamily-value;
64
+
65
+ }
66
+ };
67
+
68
+ .test:before {
69
+ content: "\13000";
70
+ }
71
+
72
+ /* The font size property */
73
+
74
+ ///
75
+ /// The fontsize property specifies the height of the fonts.
76
+ /// @group FontSize
77
+ /// @name fontsize
78
+ /// @link src/scss/utilities/_fonts.scss
79
+ /// @since 1.0.0
80
+ /// @author Serge Cools
81
+ ///
82
+ /// @require $fontsize
83
+ /// @example scss - fontsize class
84
+ /// @each $fontsize-prop, $fontsize-value in $fontsize {
85
+ /// .#{$fontsize-prop} {
86
+ /// font-size: $fontsize-value;
87
+ /// }
88
+ /// }
89
+ /// @example html - use the fontsize class
90
+ /// <div class="container">
91
+ /// <p class="font-normal font-1">fontsize: 0.625rem - 10px</p>
92
+ /// <p class="font-0.6">The quick brown fox jumps over the lazy dog.</p>
93
+ /// <p class="font-normal font-1">fontsize: 0.75 - 12px</p>
94
+ /// <p class="font-0.7">The quick brown fox jumps over the lazy dog.</p>
95
+ /// <p class="font-normal font-1">fontsize: 0.875 - 14px</p>
96
+ /// <p class="font-0.8">The quick brown fox jumps over the lazy dog.</p>
97
+ /// <p class="font-normal font-1">fontsize: 1rem - 16px</p>
98
+ /// <p class="font-1">The quick brown fox jumps over the lazy dog.</p>
99
+ /// <p class="font-normal font-1">fontsize: 1.125rem - 18px</p>
100
+ /// <p class="font-1.1">The quick brown fox jumps over the lazy dog.</p>
101
+ /// <p class="font-normal font-1">fontsize: 1.25rem - 20px</p>
102
+ /// <p class="font-1.2">The quick brown fox jumps over the lazy dog.</p>
103
+ /// <p class="font-normal font-1">fontsize: 1.5rem - 24px</p>
104
+ /// <p class="font-1.5">The quick brown fox jumps over the lazy dog.</p>
105
+ /// <p class="font-normal font-1">fontsize: 1.75rem - 28px</p>
106
+ /// <p class="font-1.7">The quick brown fox jumps over the lazy dog.</p>
107
+ /// <p class="font-normal font-1">fontsize: 1.875rem - 30px</p>
108
+ /// <p class="font-1.8">The quick brown fox jumps over the lazy dog.</p>
109
+ /// <p class="font-normal font-1">fontsize: 2rem - 30px</p>
110
+ /// <p class="font-2">The quick brown fox jumps over the lazy dog.</p>
111
+ /// <p class="font-normal font-1">fontsize: 2.5rem - 40px</p>
112
+ /// <p class="font-2.5">The quick brown fox jumps over the lazy dog.</p>
113
+ /// <p class="font-normal font-1">fontsize: 3rem - 48px</p>
114
+ /// <p class="font-3">The quick brown fox jumps over the lazy dog.</p>
115
+ /// <p class="font-normal font-1">fontsize: 4rem - 64px</p>
116
+ /// <p class="font-4">The quick brown fox jumps over the lazy dog.</p>
117
+ /// <p class="font-normal font-1">fontsize: 5rem - 80px</p>
118
+ /// <p class="font-5">The quick brown fox jumps over the lazy dog.</p>
119
+ /// <p class="font-normal font-1">fontsize: 6rem - 96px</p>
120
+ /// <p class="font-6">The quick brown fox jumps over the lazy dog.</p>
121
+ /// <p class="font-normal font-1">fontsize: 7rem - 112px</p>
122
+ /// <p class="font-7">The quick brown fox jumps over the lazy dog.</p>
123
+ /// <p class="font-normal font-1">fontsize: 8rem - 128px</p>
124
+ /// <p class="font-8">The quick brown fox jumps over the lazy dog.</p>
125
+ /// </div>
126
+ @each $fontsize-prop, $fontsize-value in $fontsize {
127
+
128
+ // fontsize
129
+
130
+ .#{$fontsize-prop} {
131
+
132
+ font-size: $fontsize-value;
133
+
134
+ }
135
+ };
136
+ /* The font style property */
137
+
138
+ ///
139
+ /// The fontstyle property specifies the font style for a text.
140
+ /// @group FontStyle
141
+ /// @name fontstyle
142
+ /// @link src/scss/utilities/_fonts.scss
143
+ /// @since 1.0.0
144
+ /// @author Serge Cools
145
+ ///
146
+ /// @require $fontstyle
147
+ /// @example scss - fontstyle class
148
+ /// @each $fontstyle-prop, $fontstyle-value in $fontstyle {
149
+ /// .#{$fontstyle-prop} {
150
+ /// font-size: $fontstyle-value;
151
+ /// }
152
+ /// }
153
+ /// @example html - use the fontstyle class
154
+ /// <div class="container">
155
+ /// <p class="font-normal font-1">fontstyle: normal</p>
156
+ /// <p class="font-normal font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
157
+ /// <p class="font-normal font-1">fontstyle: italic</p>
158
+ /// <p class="font-italic font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
159
+ /// <p class="font-normal font-1">fontstyle: oblique</p>
160
+ /// <p class="font-oblique font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
161
+ /// </div>
162
+ @each $fontstyle-prop, $fontstyle-value in $fontstyle {
163
+
164
+ // fontstyle
165
+
166
+ .#{$fontstyle-prop} {
167
+
168
+ font-style: $fontstyle-value;
169
+
170
+ }
171
+ };
172
+
173
+ /* The font weight property */
174
+
175
+ ///
176
+ /// The font-weight property sets how thick or thin characters in text should be displayed.
177
+ /// @group FontWeight
178
+ /// @name fontweight
179
+ /// @link src/scss/utilities/_fonts.scss
180
+ /// @since 1.0.0
181
+ /// @author Serge Cools
182
+ ///
183
+ /// @require $fontweight
184
+ /// @example scss - fontweight class
185
+ /// @each $fontweight-prop, $fontweight-value in $fontweight {
186
+ /// .#{$fontweight-prop} {
187
+ /// font-weight: $fontweight-value;
188
+ /// }
189
+ /// }
190
+ /// @example html - use the fontweight class
191
+ /// <div class="container">
192
+ /// <p class="font-1">font-thin: 100</p>
193
+ /// <p class="font-thin font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
194
+ /// <p class="font-1">font-extralight: 200</p>
195
+ /// <p class="font-extralight font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
196
+ /// <p class="font-1">font-light: 300</p>
197
+ /// <p class="font-light font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
198
+ /// <p class="font-1">font-normal: 400</p>
199
+ /// <p class="font-normal font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
200
+ /// <p class="font-1">font-medium: 500</p>
201
+ /// <p class="font-medium font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
202
+ /// <p class="font-1">font-semibold: 600</p>
203
+ /// <p class="font-semibold font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
204
+ /// <p class="font-1">font-bold: 700</p>
205
+ /// <p class="font-bold font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
206
+ /// <p class="font-1">font-extrabold: 800</p>
207
+ /// <p class="font-extrabold font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
208
+ /// <p class="font-1">font-black: 900</p>
209
+ /// <p class="font-black font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
210
+ /// <p class="font-1">font-extrablack: 1000</p>
211
+ /// <p class="font-extrablack font-serif font-1.5">The quick brown fox jumps over the lazy dog.</p>
212
+ /// </div>
213
+ @each $fontweight-prop, $fontweight-value in $fontweight {
214
+
215
+ // fontweight
216
+
217
+ .#{$fontweight-prop} {
218
+
219
+ font-weight: $fontweight-value;
220
+
221
+ }
222
+ };
223
+
224
+ /* The font variant numeric property */
225
+
226
+ ///
227
+ /// The font-variant numeric property sets how thick or thin characters in text should be displayed.
228
+ /// @group FontVariantNumeric
229
+ /// @name fontvariantnumeric
230
+ /// @link src/scss/utilities/_fonts.scss
231
+ /// @since 1.0.0
232
+ /// @author Serge Cools
233
+ ///
234
+ /// @require $fontvariantnumeric
235
+ /// @example scss - fontvariantnumeric class
236
+ /// @each $fontvariantnumeric-prop, $fontvariantnumeric-value in $fontvariantnumeric {
237
+ /// .#{$fontvariantnumeric-prop} {
238
+ /// font-variant-numeric: $fontvariantnumeric-value;
239
+ /// }
240
+ /// }
241
+ /// @example html - use the fontvariantnumeric class
242
+ /// <div class="container">
243
+ /// <p class="font-1">font-variant-numeric: normal</p>
244
+ /// <p class="font-num-normal font-source font-1.5">123456789</p>
245
+ /// <p class="font-1">font-variant-numeric: ordinal</p>
246
+ /// <p class="font-num-ordinal font-source font-1.5">1st, 2nd, 3rd, 4th, 5th</p>
247
+ /// <p class="font-num-ordinal font-source font-1.5">1st</p>
248
+ /// <p class="font-1">font-variant-numeric: slashed</p>
249
+ /// <p class="font-num-slashed font-source font-1.5">0 100</p>
250
+ /// <p class="font-1">font-variant-numeric: lining</p>
251
+ /// <p class="font-num-lining font-source font-1.5">1234567890</p>
252
+ /// <p class="font-1">font-variant-numeric: oldstyle</p>
253
+ /// <p class="font-num-oldstyle font-source font-1.5">1234567890</p>
254
+ /// <p class="font-1">font-variant-numeric: proportional</p>
255
+ /// <p class="font-num-proportional font-source font-1.5">121212</p>
256
+ /// <p class="font-num-proportional font-source font-1.5">909090</p>
257
+ /// <p class="font-1">font-variant-numeric: tabular</p>
258
+ /// <p class="font-num-tabular font-source font-1.5">121212</p>
259
+ /// <p class="font-num-tabular font-source font-1.5">909090</p>
260
+ /// <p class="font-1">font-variant-numeric: diagonal</p>
261
+ /// <p class="font-num-diagonal font-source font-1.5">3/14 2/71 3/14 2/7</p>
262
+ /// <p class="font-1">font-variant-numeric: stacked</p>
263
+ /// <p class="font-num-stacked font-source font-1.5">3/14 2/71 3/14 2/7</p>
264
+ /// <p class="font-1">font-variant-numeric: oldstacked</p>
265
+ /// <p class="font-num-oldstacked font-source font-1.5">3/14 2/71 3/14 2/7</p>
266
+ /// </div>
267
+ @each $fontvariantnumeric-prop, $fontvariantnumeric-value in $fontvariantnumeric {
268
+
269
+ // fontvariantnumeric
270
+
271
+ .#{$fontvariantnumeric-prop} {
272
+
273
+ font-variant-numeric: $fontvariantnumeric-value;
274
+
275
+ }
276
+ };
@@ -0,0 +1,104 @@
1
+ // SCSS Document
2
+ // File: src/utilities/_gap.scss
3
+ // Description: CSS gap properties
4
+ // Copyright: 2021-2022 Birdycom
5
+ // Autor: Serge Cools
6
+ // Version: 0.2.0
7
+ // Framework: OmniaCSS
8
+ // Properties: gap, row-gap, column-gap
9
+ // Values: value in rem
10
+
11
+ @use "sass:string";
12
+ @use "sass:map";
13
+ @use '../utilities/' as *;
14
+
15
+ /* The Gap property */
16
+
17
+ ///
18
+ /// The position Property
19
+ /// @group Gap
20
+ ///
21
+
22
+ ///
23
+ /// The position property specifies the type of positioning method used for an element.
24
+ /// @group Gap
25
+ /// @name gap
26
+ /// @link src/scss/utilities/_gap.scss
27
+ /// @since 1.0.0
28
+ /// @author Serge Cools
29
+ ///
30
+ /// Applies to: multi-column elements, flex containers, grid containers
31
+ ///
32
+ /// @require $sizesgap
33
+ /// @example scss - gap class
34
+ /// $min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
35
+ /// @while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
36
+ /// $result: omnia-generate-sizing($min-group, 'gap', false, false);
37
+ /// $min-group: map.get($result,1);
38
+ /// .#{map.get($result,5)}-#{map.get($result,2)} {
39
+ /// #{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
40
+ /// }
41
+ /// .#{map.get($result,5)+'-row'}-#{map.get($result,2)} {
42
+ /// #{'row-' + map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
43
+ /// }
44
+ /// .#{map.get($result,5)+'-col'}-#{map.get($result,2)} {
45
+ /// #{'column-' + map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
46
+ /// }
47
+ /// };
48
+ /// @example html - use gap class
49
+ /// <div class="grid grid-cols-3 gap-col-8 gap-row-4 font-mono text-white text-sm text-center font-bold leading-6 bg-stripes-sky rounded-lg">
50
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">01</div>
51
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">02</div>
52
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">03</div>
53
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">04</div>
54
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">05</div>
55
+ /// <div class="p-4 rounded-lg shadow-lg bg-deepskyblue">06</div>
56
+ /// </div>
57
+ //
58
+ $min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
59
+ @while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
60
+
61
+ $result: omnia-generate-sizing($min-group, 'gap', false, false);
62
+
63
+ $min-group: map.get($result,1);
64
+
65
+ // margin
66
+ .#{map.get($result,5)}-#{map.get($result,2)} {
67
+
68
+ #{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
69
+
70
+ }
71
+ // gap row (y-as)
72
+ .#{map.get($result,5)+'-row'}-#{map.get($result,2)} {
73
+
74
+ #{'row-' + map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
75
+
76
+ }
77
+ // gap column (x-as)
78
+ .#{map.get($result,5)+'-col'}-#{map.get($result,2)} {
79
+
80
+ #{'column-' + map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
81
+
82
+ }
83
+ };
84
+
85
+ /* ===================================================================
86
+ Short gap aliases
87
+ gap-x-* = gap-col-*, gap-y-* = gap-row-*
88
+ =================================================================== */
89
+ $min-group-alias: $DEFAULT-BASE-FIRST-MIN-GROUP;
90
+ @while $min-group-alias <= $DEFAULT-BASE-SECOND-MAX-GROUP {
91
+ $result: omnia-generate-sizing($min-group-alias, 'gap', false, false);
92
+ $min-group-alias: map.get($result,1);
93
+
94
+ /* gap-x alias for gap-col (column gap) */
95
+ .gap-x-#{map.get($result,2)} {
96
+ column-gap: map.get($result,3) + #{map.get($result,4)};
97
+ }
98
+ /* gap-y alias for gap-row (row gap) */
99
+ .gap-y-#{map.get($result,2)} {
100
+ row-gap: map.get($result,3) + #{map.get($result,4)};
101
+ }
102
+ }
103
+
104
+ /* End Gap property */
@@ -0,0 +1,48 @@
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_gradient_stops.scss
3
+ // Description: Stop positions for the composable gradients of _gradients.scss, extra gradient angles and anchors,
4
+ // and gradients in a perceptual color space.
5
+ // Copyright: 2021-2026 Birdycom
6
+ // Author: Serge Cools
7
+ // Version: 0.4.0
8
+ // Framework: OmniaCSS
9
+ // Purpose: Generate .from-pos-{n}, .via-pos-{n}, .to-pos-{n} (percent), .bg-conic-{deg}, .bg-radial-at-{bl|tr|c},
10
+ // .bg-radial-{closest|farthest}-{side|corner} and .bg-linear-to-{dir}-{oklch|oklab}.
11
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient
12
+ // Note: Position classes set --oc-gradient-{from|via|to}-pos; _gradients.scss reads them inside the stop list,
13
+ // e.g. class="bg-linear-to-r from-red from-pos-10 via-yellow to-green to-pos-90".
14
+ // Map: stop positions -> conic angles -> radial anchors and sizes -> color-space gradients
15
+
16
+ $_stop-positions: (0, 5, 10, 15, 20, 25, 30, 33, 35, 40, 45, 50, 55, 60, 65, 66, 70, 75, 80, 85, 90, 95, 100);
17
+ $_gradient-stops: var(--oc-gradient-stops, var(--oc-gradient-from, transparent) var(--oc-gradient-from-pos,), var(--oc-gradient-to, transparent) var(--oc-gradient-to-pos,));
18
+
19
+ /* Stop positions (percent) */
20
+ @each $n in $_stop-positions {
21
+ .from-pos-#{$n} { --oc-gradient-from-pos: #{$n}%; }
22
+ .via-pos-#{$n} { --oc-gradient-via-pos: #{$n}%; }
23
+ .to-pos-#{$n} { --oc-gradient-to-pos: #{$n}%; }
24
+ }
25
+
26
+ /* Conic gradient start angles (0, 90 and 180 live in _gradients.scss) */
27
+ @each $deg in (45, 135, 225, 270, 315) {
28
+ .bg-conic-#{$deg} { background-image: conic-gradient(from #{$deg}deg, #{$_gradient-stops}); }
29
+ }
30
+
31
+ /* Radial gradient anchors and sizes */
32
+ .bg-radial-at-c { background-image: radial-gradient(at center, #{$_gradient-stops}); }
33
+ .bg-radial-at-bl { background-image: radial-gradient(at bottom left, #{$_gradient-stops}); }
34
+ .bg-radial-at-tr { background-image: radial-gradient(at top right, #{$_gradient-stops}); }
35
+ .bg-radial-closest-side { background-image: radial-gradient(closest-side, #{$_gradient-stops}); }
36
+ .bg-radial-closest-corner { background-image: radial-gradient(closest-corner, #{$_gradient-stops}); }
37
+ .bg-radial-farthest-side { background-image: radial-gradient(farthest-side, #{$_gradient-stops}); }
38
+ .bg-radial-farthest-corner { background-image: radial-gradient(farthest-corner, #{$_gradient-stops}); }
39
+
40
+ /* Linear gradients interpolated in a perceptual color space (smoother mid tones than sRGB) */
41
+ $_directions: ('t': to top, 'tr': to top right, 'r': to right, 'br': to bottom right, 'b': to bottom, 'bl': to bottom left, 'l': to left, 'tl': to top left);
42
+ @each $key, $dir in $_directions {
43
+ @each $space in (oklch, oklab) {
44
+ @if not ($key == 'r' and $space == oklch) {
45
+ .bg-linear-to-#{$key}-#{$space} { background-image: linear-gradient(#{$dir} in #{$space}, #{$_gradient-stops}); }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,99 @@
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_gradients.scss
3
+ // Description: Gradient utilities — linear, radial, conic and repeating gradients with composable color stops.
4
+ // Copyright: 2021-2026 Birdycom
5
+ // Author: Serge Cools
6
+ // Version: 0.3.0
7
+ // Framework: OmniaCSS
8
+ // Purpose: Generate .bg-linear-*, .bg-radial-*, .bg-conic-*, .bg-repeating-* (shape/direction) and
9
+ // .from-{color}, .via-{color}, .to-{color} (stops) for every Omnia color.
10
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient
11
+ // Note: stop positions (.from-pos-10 …) live in _gradient_stops.scss.
12
+ // combine one shape class with stop classes, e.g. class="bg-linear-to-r from-red via-yellow to-green".
13
+ // The existing .bg-image-gradient-* / .bg-image-radial presets in _backgrounds.scss stay available.
14
+ // Map: stops -> linear -> radial -> conic -> repeating -> color stops per Omnia color
15
+
16
+ @use "sass:string";
17
+ @use "sass:map";
18
+ @use '../utilities/' as *;
19
+
20
+ // Stops: from -> (via) -> to. A .via-* class switches to a three-stop gradient.
21
+ $_stops: var(--oc-gradient-stops, var(--oc-gradient-from, transparent) var(--oc-gradient-from-pos,), var(--oc-gradient-to, transparent) var(--oc-gradient-to-pos,));
22
+
23
+ /* Linear gradients — direction */
24
+ $_linear: (
25
+ 't': to top, 'tr': to top right, 'r': to right, 'br': to bottom right,
26
+ 'b': to bottom, 'bl': to bottom left, 'l': to left, 'tl': to top left
27
+ );
28
+ @each $key, $dir in $_linear {
29
+ .bg-linear-to-#{$key} { background-image: linear-gradient(#{$dir}, #{$_stops}); }
30
+ }
31
+ @each $deg in (0, 45, 90, 135, 180, 225, 270, 315) {
32
+ .bg-linear-#{$deg} { background-image: linear-gradient(#{$deg}deg, #{$_stops}); }
33
+ }
34
+
35
+ /* Linear gradient in a perceptual color space (smoother mid tones) */
36
+ .bg-linear-to-r-oklch { background-image: linear-gradient(to right in oklch, #{$_stops}); }
37
+
38
+ /* Radial gradients — shape and position */
39
+ .bg-radial { background-image: radial-gradient(#{$_stops}); }
40
+ .bg-radial-circle { background-image: radial-gradient(circle, #{$_stops}); }
41
+ .bg-radial-ellipse { background-image: radial-gradient(ellipse, #{$_stops}); }
42
+ .bg-radial-at-t { background-image: radial-gradient(at top, #{$_stops}); }
43
+ .bg-radial-at-b { background-image: radial-gradient(at bottom, #{$_stops}); }
44
+ .bg-radial-at-l { background-image: radial-gradient(at left, #{$_stops}); }
45
+ .bg-radial-at-r { background-image: radial-gradient(at right, #{$_stops}); }
46
+ .bg-radial-at-tl { background-image: radial-gradient(at top left, #{$_stops}); }
47
+ .bg-radial-at-br { background-image: radial-gradient(at bottom right, #{$_stops}); }
48
+
49
+ /* Conic gradients */
50
+ .bg-conic { background-image: conic-gradient(#{$_stops}); }
51
+ .bg-conic-90 { background-image: conic-gradient(from 90deg, #{$_stops}); }
52
+ .bg-conic-180 { background-image: conic-gradient(from 180deg, #{$_stops}); }
53
+ .bg-conic-at-t { background-image: conic-gradient(at top, #{$_stops}); }
54
+ .bg-conic-wheel { background-image: conic-gradient(red, yellow, lime, aqua, blue, magenta, red); }
55
+
56
+ /* Repeating gradients (stripes and rings) */
57
+ .bg-repeating-stripes {
58
+ background-image: repeating-linear-gradient(45deg, var(--oc-gradient-from, transparent) 0 10px, var(--oc-gradient-to, transparent) 10px 20px);
59
+ }
60
+ .bg-repeating-stripes-x {
61
+ background-image: repeating-linear-gradient(90deg, var(--oc-gradient-from, transparent) 0 10px, var(--oc-gradient-to, transparent) 10px 20px);
62
+ }
63
+ .bg-repeating-rings {
64
+ background-image: repeating-radial-gradient(circle, var(--oc-gradient-from, transparent) 0 10px, var(--oc-gradient-to, transparent) 10px 20px);
65
+ }
66
+
67
+ /* Color stops — keywords */
68
+ @each $name, $value in ('transparent': transparent, 'current': currentcolor, 'white': var(--color-white-50), 'black': var(--color-black-50)) {
69
+ .from-#{$name} { --oc-gradient-from: #{$value}; }
70
+ .to-#{$name} { --oc-gradient-to: #{$value}; }
71
+ .via-#{$name} {
72
+ --oc-gradient-via: #{$value};
73
+ --oc-gradient-stops: var(--oc-gradient-from, transparent) var(--oc-gradient-from-pos,), var(--oc-gradient-via) var(--oc-gradient-via-pos,), var(--oc-gradient-to, transparent) var(--oc-gradient-to-pos,);
74
+ }
75
+ }
76
+
77
+ /* Color stops — every Omnia color (base tone via the color tokens, hex fallback) */
78
+ @each $group, $families in $omnia-colors {
79
+ @each $family, $colors in $families {
80
+ @each $color, $props in $colors {
81
+ $name: string.to-lower-case(#{$color});
82
+ $value: var(--color-#{$name}-100, #{map.get($props, hex)});
83
+ .from-#{$name} { --oc-gradient-from: #{$value}; }
84
+ .to-#{$name} { --oc-gradient-to: #{$value}; }
85
+ .via-#{$name} {
86
+ --oc-gradient-via: #{$value};
87
+ --oc-gradient-stops: var(--oc-gradient-from, transparent) var(--oc-gradient-from-pos,), var(--oc-gradient-via) var(--oc-gradient-via-pos,), var(--oc-gradient-to, transparent) var(--oc-gradient-to-pos,);
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ /* Gradient text — combine with a gradient class: class="text-gradient bg-linear-to-r from-red to-blue" */
94
+ .text-gradient {
95
+ -webkit-background-clip: text;
96
+ background-clip: text;
97
+ color: transparent;
98
+ -webkit-text-fill-color: transparent;
99
+ }