@birdycom/omniacss 0.11.0 → 0.11.2

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 (48) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +44 -44
  3. package/dist/oc-theme.css +1 -1
  4. package/dist/omnia.css +2 -1
  5. package/dist/omnia.min.css +1 -1
  6. package/dist/omnia.starter.css +2 -0
  7. package/dist/omnia.starter.min.css +1 -1
  8. package/dist/tokens/omnia.dtcg.json +2 -2
  9. package/dist/tokens/omnia.tokens.json +1 -1
  10. package/dist/tokens/omnia_tokens.py +2 -2
  11. package/package.json +63 -63
  12. package/scss/utilities/_anchor_positioning.scss +65 -65
  13. package/scss/utilities/_animation_properties.scss +143 -143
  14. package/scss/utilities/_borders_extended.scss +97 -97
  15. package/scss/utilities/_borders_outlines.scss +161 -161
  16. package/scss/utilities/_containment.scss +82 -82
  17. package/scss/utilities/_css_functions.scss +34 -34
  18. package/scss/utilities/_dark_mode.scss +117 -117
  19. package/scss/utilities/_drop_shadow_colors.scss +26 -26
  20. package/scss/utilities/_experimental_css.scss +149 -149
  21. package/scss/utilities/_flexbox.scss +317 -317
  22. package/scss/utilities/_font_variants.scss +139 -139
  23. package/scss/utilities/_gap.scss +103 -103
  24. package/scss/utilities/_gradient_stops.scss +48 -48
  25. package/scss/utilities/_grid.scss +672 -672
  26. package/scss/utilities/_layout_extras.scss +171 -171
  27. package/scss/utilities/_layout_flow.scss +210 -210
  28. package/scss/utilities/_mask_extras.scss +62 -62
  29. package/scss/utilities/_motion_transforms.scss +167 -167
  30. package/scss/utilities/_scroll_animations.scss +80 -80
  31. package/scss/utilities/_scrollbar.scss +2 -1
  32. package/scss/utilities/_shadow_tokens.scss +21 -21
  33. package/scss/utilities/_shapes.scss +72 -72
  34. package/scss/utilities/_sizing_logical.scss +99 -99
  35. package/scss/utilities/_starting_style.scss +53 -53
  36. package/scss/utilities/_state_variants.scss +196 -196
  37. package/scss/utilities/_svg.scss +100 -100
  38. package/scss/utilities/_table_advanced.scss +19 -19
  39. package/scss/utilities/_typography_advanced.scss +124 -124
  40. package/scss/utilities/_typography_modern.scss +83 -83
  41. package/scss/utilities/_view_transitions.scss +64 -64
  42. package/scss/utilities/_writing_modes.scss +72 -72
  43. package/scss/variables/_hulp.scss +107 -107
  44. package/scss/variables/_variables_effects.scss +108 -108
  45. package/src/postcss.mjs +43 -43
  46. package/src/tokens.mjs +377 -377
  47. package/src/variants.mjs +278 -278
  48. package/tokens/semantic.json +80 -80
@@ -1,82 +1,82 @@
1
- // SCSS Document
2
- // File: src/scss/utilities/_containment.scss
3
- // Description: Container queries, containment and content-visibility utilities (CSS Containment Level 2/3).
4
- // Copyright: 2021-2026 Birdycom
5
- // Author: Serge Cools
6
- // Version: 0.3.0
7
- // Framework: OmniaCSS
8
- // Purpose: Generate .container-*, .cq-name-*, .contain-*, .content-{auto,visible,hidden}, .contain-intrinsic-*
9
- // and container query variants (.cq-xs\:flex, .cq-md\:grid-cols-3, ...).
10
- // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
11
- // Note: .cq-inline / .cq-normal stay in _container.scss (backwards compatible aliases).
12
- // Map: container-type -> container-name -> contain -> content-visibility -> intrinsic size -> @container variants
13
-
14
- /* Container type — makes an element a query container */
15
- .container-normal { container-type: normal; }
16
- .container-size { container-type: size; }
17
- .container-inline-size { container-type: inline-size; }
18
- .container-scroll-state { container-type: scroll-state; }
19
- .cq-size { container-type: size; }
20
- .cq-scroll-state { container-type: scroll-state; }
21
-
22
- /* Container name — target a specific container in @container rules */
23
- .cq-name-none { container-name: none; }
24
- .cq-name-main { container-name: main; }
25
- .cq-name-sidebar { container-name: sidebar; }
26
- .cq-name-card { container-name: card; }
27
-
28
- /* Contain — isolate layout, paint, style and size calculations */
29
- .contain-none { contain: none; }
30
- .contain-strict { contain: strict; }
31
- .contain-content { contain: content; }
32
- .contain-size { contain: size; }
33
- .contain-inline-size { contain: inline-size; }
34
- .contain-layout { contain: layout; }
35
- .contain-style { contain: style; }
36
- .contain-paint { contain: paint; }
37
-
38
- /* Content visibility — skip rendering work for off-screen content */
39
- .content-visible { content-visibility: visible; }
40
- .content-auto { content-visibility: auto; }
41
- .content-hidden { content-visibility: hidden; }
42
-
43
- /* Contain intrinsic size — placeholder size for content-visibility: auto */
44
- .contain-intrinsic-none { contain-intrinsic-size: none; }
45
- .contain-intrinsic-auto-sm { contain-intrinsic-size: auto 200px; }
46
- .contain-intrinsic-auto-md { contain-intrinsic-size: auto 500px; }
47
- .contain-intrinsic-auto-lg { contain-intrinsic-size: auto 1000px; }
48
-
49
- // ---------------------------------------------------------------------------
50
- // Container query variants — same idea as _responsive.scss, but based on the
51
- // nearest query container (.container-inline-size / .cq-inline) instead of
52
- // the viewport. Pattern: .cq-{size}\:{utility}
53
- // ---------------------------------------------------------------------------
54
- $_cq-breakpoints: (
55
- 'xs': 20rem,
56
- 'sm': 24rem,
57
- 'md': 28rem,
58
- 'lg': 32rem,
59
- 'xl': 36rem
60
- );
61
-
62
- @each $prefix, $min-width in $_cq-breakpoints {
63
- @container (min-width: #{$min-width}) {
64
- // Display
65
- .cq-#{$prefix}\:block { display: block; }
66
- .cq-#{$prefix}\:hidden { display: none; }
67
- .cq-#{$prefix}\:flex { display: flex; }
68
- .cq-#{$prefix}\:grid { display: grid; }
69
- .cq-#{$prefix}\:inline-flex { display: inline-flex; }
70
-
71
- // Flex direction
72
- .cq-#{$prefix}\:flex-row { flex-direction: row; }
73
- .cq-#{$prefix}\:flex-col { flex-direction: column; }
74
-
75
- // Grid template columns (1-6)
76
- @for $i from 1 through 6 {
77
- .cq-#{$prefix}\:grid-cols-#{$i} {
78
- grid-template-columns: repeat(#{$i}, minmax(0, 1fr));
79
- }
80
- }
81
- }
82
- }
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_containment.scss
3
+ // Description: Container queries, containment and content-visibility utilities (CSS Containment Level 2/3).
4
+ // Copyright: 2021-2026 Birdycom
5
+ // Author: Serge Cools
6
+ // Version: 0.3.0
7
+ // Framework: OmniaCSS
8
+ // Purpose: Generate .container-*, .cq-name-*, .contain-*, .content-{auto,visible,hidden}, .contain-intrinsic-*
9
+ // and container query variants (.cq-xs\:flex, .cq-md\:grid-cols-3, ...).
10
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
11
+ // Note: .cq-inline / .cq-normal stay in _container.scss (backwards compatible aliases).
12
+ // Map: container-type -> container-name -> contain -> content-visibility -> intrinsic size -> @container variants
13
+
14
+ /* Container type — makes an element a query container */
15
+ .container-normal { container-type: normal; }
16
+ .container-size { container-type: size; }
17
+ .container-inline-size { container-type: inline-size; }
18
+ .container-scroll-state { container-type: scroll-state; }
19
+ .cq-size { container-type: size; }
20
+ .cq-scroll-state { container-type: scroll-state; }
21
+
22
+ /* Container name — target a specific container in @container rules */
23
+ .cq-name-none { container-name: none; }
24
+ .cq-name-main { container-name: main; }
25
+ .cq-name-sidebar { container-name: sidebar; }
26
+ .cq-name-card { container-name: card; }
27
+
28
+ /* Contain — isolate layout, paint, style and size calculations */
29
+ .contain-none { contain: none; }
30
+ .contain-strict { contain: strict; }
31
+ .contain-content { contain: content; }
32
+ .contain-size { contain: size; }
33
+ .contain-inline-size { contain: inline-size; }
34
+ .contain-layout { contain: layout; }
35
+ .contain-style { contain: style; }
36
+ .contain-paint { contain: paint; }
37
+
38
+ /* Content visibility — skip rendering work for off-screen content */
39
+ .content-visible { content-visibility: visible; }
40
+ .content-auto { content-visibility: auto; }
41
+ .content-hidden { content-visibility: hidden; }
42
+
43
+ /* Contain intrinsic size — placeholder size for content-visibility: auto */
44
+ .contain-intrinsic-none { contain-intrinsic-size: none; }
45
+ .contain-intrinsic-auto-sm { contain-intrinsic-size: auto 200px; }
46
+ .contain-intrinsic-auto-md { contain-intrinsic-size: auto 500px; }
47
+ .contain-intrinsic-auto-lg { contain-intrinsic-size: auto 1000px; }
48
+
49
+ // ---------------------------------------------------------------------------
50
+ // Container query variants — same idea as _responsive.scss, but based on the
51
+ // nearest query container (.container-inline-size / .cq-inline) instead of
52
+ // the viewport. Pattern: .cq-{size}\:{utility}
53
+ // ---------------------------------------------------------------------------
54
+ $_cq-breakpoints: (
55
+ 'xs': 20rem,
56
+ 'sm': 24rem,
57
+ 'md': 28rem,
58
+ 'lg': 32rem,
59
+ 'xl': 36rem
60
+ );
61
+
62
+ @each $prefix, $min-width in $_cq-breakpoints {
63
+ @container (min-width: #{$min-width}) {
64
+ // Display
65
+ .cq-#{$prefix}\:block { display: block; }
66
+ .cq-#{$prefix}\:hidden { display: none; }
67
+ .cq-#{$prefix}\:flex { display: flex; }
68
+ .cq-#{$prefix}\:grid { display: grid; }
69
+ .cq-#{$prefix}\:inline-flex { display: inline-flex; }
70
+
71
+ // Flex direction
72
+ .cq-#{$prefix}\:flex-row { flex-direction: row; }
73
+ .cq-#{$prefix}\:flex-col { flex-direction: column; }
74
+
75
+ // Grid template columns (1-6)
76
+ @for $i from 1 through 6 {
77
+ .cq-#{$prefix}\:grid-cols-#{$i} {
78
+ grid-template-columns: repeat(#{$i}, minmax(0, 1fr));
79
+ }
80
+ }
81
+ }
82
+ }
@@ -1,34 +1,34 @@
1
- // SCSS Document
2
- // File: src/scss/utilities/_css_functions.scss
3
- // Description: Utilities built on modern CSS functions: tree counting (sibling-index(), sibling-count()) for
4
- // staggered motion and fanned layouts, and color-mix() alpha steps of currentColor.
5
- // Copyright: 2021-2026 Birdycom
6
- // Author: Serge Cools
7
- // Version: 0.8.2
8
- // Framework: OmniaCSS
9
- // Purpose: Progressive enhancement — without sibling-index() the delay/rotation is invalid and falls back to 0.
10
- // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/sibling-index
11
- // Map: stagger -> fan -> currentColor alpha
12
-
13
- /* Stagger — each child waits (index - 1) × --oc-stagger before its transition or animation starts */
14
- @each $ms in (30, 60, 100, 150, 250) {
15
- .stagger-#{$ms} { --oc-stagger: #{$ms}ms; }
16
- }
17
- .delay-stagger { transition-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
18
- .delay-stagger-reverse { transition-delay: calc((sibling-count() - sibling-index()) * var(--oc-stagger, 60ms)); }
19
- .animate-delay-stagger { animation-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
20
-
21
- /* Fan — rotate siblings around the middle one, like cards in a hand (set on each child) */
22
- .fan {
23
- rotate: calc((sibling-index() - (sibling-count() + 1) / 2) * var(--oc-fan, 6deg));
24
- transform-origin: 50% 140%;
25
- }
26
- @each $deg in (3, 6, 10, 15) {
27
- .fan-#{$deg} { --oc-fan: #{$deg}deg; }
28
- }
29
-
30
- /* currentColor alpha — tint a background or border with the text color (works with every text-* color) */
31
- @each $n in (5, 10, 15, 20, 30, 40, 50, 60, 70, 80) {
32
- .bg-current-#{$n} { background-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
33
- .border-current-#{$n} { border-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
34
- }
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_css_functions.scss
3
+ // Description: Utilities built on modern CSS functions: tree counting (sibling-index(), sibling-count()) for
4
+ // staggered motion and fanned layouts, and color-mix() alpha steps of currentColor.
5
+ // Copyright: 2021-2026 Birdycom
6
+ // Author: Serge Cools
7
+ // Version: 0.8.2
8
+ // Framework: OmniaCSS
9
+ // Purpose: Progressive enhancement — without sibling-index() the delay/rotation is invalid and falls back to 0.
10
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/sibling-index
11
+ // Map: stagger -> fan -> currentColor alpha
12
+
13
+ /* Stagger — each child waits (index - 1) × --oc-stagger before its transition or animation starts */
14
+ @each $ms in (30, 60, 100, 150, 250) {
15
+ .stagger-#{$ms} { --oc-stagger: #{$ms}ms; }
16
+ }
17
+ .delay-stagger { transition-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
18
+ .delay-stagger-reverse { transition-delay: calc((sibling-count() - sibling-index()) * var(--oc-stagger, 60ms)); }
19
+ .animate-delay-stagger { animation-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
20
+
21
+ /* Fan — rotate siblings around the middle one, like cards in a hand (set on each child) */
22
+ .fan {
23
+ rotate: calc((sibling-index() - (sibling-count() + 1) / 2) * var(--oc-fan, 6deg));
24
+ transform-origin: 50% 140%;
25
+ }
26
+ @each $deg in (3, 6, 10, 15) {
27
+ .fan-#{$deg} { --oc-fan: #{$deg}deg; }
28
+ }
29
+
30
+ /* currentColor alpha — tint a background or border with the text color (works with every text-* color) */
31
+ @each $n in (5, 10, 15, 20, 30, 40, 50, 60, 70, 80) {
32
+ .bg-current-#{$n} { background-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
33
+ .border-current-#{$n} { border-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
34
+ }
@@ -1,117 +1,117 @@
1
- // File: src/scss/utilities/_dark_mode.scss
2
- // Description: Dark mode variant utilities using dark: prefix.
3
- // Supports two strategies:
4
- // 1. Class-based: add .dark class to <html> or <body>
5
- // 2. Media-based: prefers-color-scheme: dark (automatic)
6
- // Default strategy: class-based (.dark ancestor selector)
7
- // Pattern: .dark .dark\:{utility} e.g. dark\:bg-gray-900, dark\:text-white
8
- // Copyright: 2021-2026 Birdycom
9
- // Autor: Serge Cools
10
- // Version: 0.1.6
11
- // Framework: OmniaCSS
12
- @use "shadow_tokens" as *;
13
-
14
- // ---------------------------------------------------------------------------
15
- // Class-based dark mode (.dark ancestor on html/body)
16
- // Usage: <html class="dark"> or toggle via JS
17
- // ---------------------------------------------------------------------------
18
-
19
- // Background colors for dark mode
20
- .dark .dark\:bg-black { background-color: var(--color-black-60); }
21
- .dark .dark\:bg-white { background-color: var(--color-white-2); }
22
- .dark .dark\:bg-gray-50 { background-color: var(--color-snow-50); }
23
- .dark .dark\:bg-gray-100 { background-color: var(--color-linen-30); }
24
- .dark .dark\:bg-gray-200 { background-color: var(--color-silver-2); }
25
- .dark .dark\:bg-gray-300 { background-color: var(--color-silver-20); }
26
- .dark .dark\:bg-gray-400 { background-color: var(--color-gray-20); }
27
- .dark .dark\:bg-gray-500 { background-color: var(--color-black-2); }
28
- .dark .dark\:bg-gray-600 { background-color: var(--color-duskblue-20); }
29
- .dark .dark\:bg-gray-700 { background-color: var(--color-shallowblue-30); }
30
- .dark .dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
31
- .dark .dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
32
- .dark .dark\:bg-gray-950 { background-color: var(--color-black-40); }
33
- .dark .dark\:bg-transparent { background-color: transparent; }
34
-
35
- // Semantic surface colors for dark mode
36
- .dark .dark\:bg-surface { background-color: var(--color-shallowblue-50); }
37
- .dark .dark\:bg-surface-soft { background-color: var(--color-shallowblue-40); }
38
- .dark .dark\:bg-surface-raised { background-color: var(--color-shallowblue-30); }
39
-
40
- // Text colors for dark mode
41
- .dark .dark\:text-white { color: var(--color-white-2); }
42
- .dark .dark\:text-black { color: var(--color-black-60); }
43
- .dark .dark\:text-gray-50 { color: var(--color-snow-50); }
44
- .dark .dark\:text-gray-100 { color: var(--color-linen-30); }
45
- .dark .dark\:text-gray-200 { color: var(--color-silver-2); }
46
- .dark .dark\:text-gray-300 { color: var(--color-silver-20); }
47
- .dark .dark\:text-gray-400 { color: var(--color-gray-20); }
48
- .dark .dark\:text-gray-500 { color: var(--color-black-2); }
49
- .dark .dark\:text-gray-600 { color: var(--color-duskblue-20); }
50
- .dark .dark\:text-gray-700 { color: var(--color-shallowblue-30); }
51
- .dark .dark\:text-gray-800 { color: var(--color-shallowblue-40); }
52
- .dark .dark\:text-gray-900 { color: var(--color-shallowblue-50); }
53
-
54
- // Semantic text colors
55
- .dark .dark\:text-muted { color: var(--color-gray-20); }
56
- .dark .dark\:text-soft { color: var(--color-silver-20); }
57
- .dark .dark\:text-primary { color: var(--color-silver-2); }
58
-
59
- // Border colors for dark mode
60
- .dark .dark\:border-gray-200 { border-color: var(--color-silver-2); }
61
- .dark .dark\:border-gray-300 { border-color: var(--color-silver-20); }
62
- .dark .dark\:border-gray-500 { border-color: var(--color-black-2); }
63
- .dark .dark\:border-gray-600 { border-color: var(--color-duskblue-20); }
64
- .dark .dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
65
- .dark .dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
66
- .dark .dark\:border-transparent { border-color: transparent; }
67
-
68
- // Opacity for dark mode
69
- .dark .dark\:opacity-0 { opacity: 0; }
70
- .dark .dark\:opacity-25 { opacity: 0.25; }
71
- .dark .dark\:opacity-50 { opacity: 0.5; }
72
- .dark .dark\:opacity-75 { opacity: 0.75; }
73
- .dark .dark\:opacity-100 { opacity: 1; }
74
-
75
- // Shadow utilities for dark mode (softer shadows on dark backgrounds)
76
- .dark .dark\:shadow-none { box-shadow: none; }
77
- .dark .dark\:shadow-sm { box-shadow: #{$oc-dark-shadow-sm}; }
78
- .dark .dark\:shadow-md { box-shadow: #{$oc-dark-shadow-md}; }
79
- .dark .dark\:shadow-lg { box-shadow: #{$oc-dark-shadow-lg}; }
80
-
81
- // Ring / outline for dark mode
82
- .dark .dark\:outline-gray-600 { outline-color: var(--color-duskblue-20); }
83
- .dark .dark\:outline-gray-700 { outline-color: var(--color-shallowblue-30); }
84
-
85
- // Display overrides (e.g. show/hide elements in dark mode)
86
- .dark .dark\:hidden { display: none; }
87
- .dark .dark\:block { display: block; }
88
-
89
- // ---------------------------------------------------------------------------
90
- // Media-based dark mode (automatic, respects OS preference)
91
- // These use @media (prefers-color-scheme: dark) for auto-detection.
92
- // Classes use the auto-dark: prefix.
93
- // ---------------------------------------------------------------------------
94
-
95
- @media (prefers-color-scheme: dark) {
96
- // Background
97
- .auto-dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
98
- .auto-dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
99
- .auto-dark\:bg-gray-950 { background-color: var(--color-black-40); }
100
- .auto-dark\:bg-surface { background-color: var(--color-shallowblue-50); }
101
-
102
- // Text
103
- .auto-dark\:text-white { color: var(--color-white-2); }
104
- .auto-dark\:text-gray-100 { color: var(--color-linen-30); }
105
- .auto-dark\:text-gray-200 { color: var(--color-silver-2); }
106
- .auto-dark\:text-gray-300 { color: var(--color-silver-20); }
107
- .auto-dark\:text-muted { color: var(--color-gray-20); }
108
-
109
- // Border
110
- .auto-dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
111
- .auto-dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
112
-
113
- // Shadow
114
- .auto-dark\:shadow-none { box-shadow: none; }
115
- }
116
-
117
- /* End dark mode utilities */
1
+ // File: src/scss/utilities/_dark_mode.scss
2
+ // Description: Dark mode variant utilities using dark: prefix.
3
+ // Supports two strategies:
4
+ // 1. Class-based: add .dark class to <html> or <body>
5
+ // 2. Media-based: prefers-color-scheme: dark (automatic)
6
+ // Default strategy: class-based (.dark ancestor selector)
7
+ // Pattern: .dark .dark\:{utility} e.g. dark\:bg-gray-900, dark\:text-white
8
+ // Copyright: 2021-2026 Birdycom
9
+ // Autor: Serge Cools
10
+ // Version: 0.1.6
11
+ // Framework: OmniaCSS
12
+ @use "shadow_tokens" as *;
13
+
14
+ // ---------------------------------------------------------------------------
15
+ // Class-based dark mode (.dark ancestor on html/body)
16
+ // Usage: <html class="dark"> or toggle via JS
17
+ // ---------------------------------------------------------------------------
18
+
19
+ // Background colors for dark mode
20
+ .dark .dark\:bg-black { background-color: var(--color-black-60); }
21
+ .dark .dark\:bg-white { background-color: var(--color-white-2); }
22
+ .dark .dark\:bg-gray-50 { background-color: var(--color-snow-50); }
23
+ .dark .dark\:bg-gray-100 { background-color: var(--color-linen-30); }
24
+ .dark .dark\:bg-gray-200 { background-color: var(--color-silver-2); }
25
+ .dark .dark\:bg-gray-300 { background-color: var(--color-silver-20); }
26
+ .dark .dark\:bg-gray-400 { background-color: var(--color-gray-20); }
27
+ .dark .dark\:bg-gray-500 { background-color: var(--color-black-2); }
28
+ .dark .dark\:bg-gray-600 { background-color: var(--color-duskblue-20); }
29
+ .dark .dark\:bg-gray-700 { background-color: var(--color-shallowblue-30); }
30
+ .dark .dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
31
+ .dark .dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
32
+ .dark .dark\:bg-gray-950 { background-color: var(--color-black-40); }
33
+ .dark .dark\:bg-transparent { background-color: transparent; }
34
+
35
+ // Semantic surface colors for dark mode
36
+ .dark .dark\:bg-surface { background-color: var(--color-shallowblue-50); }
37
+ .dark .dark\:bg-surface-soft { background-color: var(--color-shallowblue-40); }
38
+ .dark .dark\:bg-surface-raised { background-color: var(--color-shallowblue-30); }
39
+
40
+ // Text colors for dark mode
41
+ .dark .dark\:text-white { color: var(--color-white-2); }
42
+ .dark .dark\:text-black { color: var(--color-black-60); }
43
+ .dark .dark\:text-gray-50 { color: var(--color-snow-50); }
44
+ .dark .dark\:text-gray-100 { color: var(--color-linen-30); }
45
+ .dark .dark\:text-gray-200 { color: var(--color-silver-2); }
46
+ .dark .dark\:text-gray-300 { color: var(--color-silver-20); }
47
+ .dark .dark\:text-gray-400 { color: var(--color-gray-20); }
48
+ .dark .dark\:text-gray-500 { color: var(--color-black-2); }
49
+ .dark .dark\:text-gray-600 { color: var(--color-duskblue-20); }
50
+ .dark .dark\:text-gray-700 { color: var(--color-shallowblue-30); }
51
+ .dark .dark\:text-gray-800 { color: var(--color-shallowblue-40); }
52
+ .dark .dark\:text-gray-900 { color: var(--color-shallowblue-50); }
53
+
54
+ // Semantic text colors
55
+ .dark .dark\:text-muted { color: var(--color-gray-20); }
56
+ .dark .dark\:text-soft { color: var(--color-silver-20); }
57
+ .dark .dark\:text-primary { color: var(--color-silver-2); }
58
+
59
+ // Border colors for dark mode
60
+ .dark .dark\:border-gray-200 { border-color: var(--color-silver-2); }
61
+ .dark .dark\:border-gray-300 { border-color: var(--color-silver-20); }
62
+ .dark .dark\:border-gray-500 { border-color: var(--color-black-2); }
63
+ .dark .dark\:border-gray-600 { border-color: var(--color-duskblue-20); }
64
+ .dark .dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
65
+ .dark .dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
66
+ .dark .dark\:border-transparent { border-color: transparent; }
67
+
68
+ // Opacity for dark mode
69
+ .dark .dark\:opacity-0 { opacity: 0; }
70
+ .dark .dark\:opacity-25 { opacity: 0.25; }
71
+ .dark .dark\:opacity-50 { opacity: 0.5; }
72
+ .dark .dark\:opacity-75 { opacity: 0.75; }
73
+ .dark .dark\:opacity-100 { opacity: 1; }
74
+
75
+ // Shadow utilities for dark mode (softer shadows on dark backgrounds)
76
+ .dark .dark\:shadow-none { box-shadow: none; }
77
+ .dark .dark\:shadow-sm { box-shadow: #{$oc-dark-shadow-sm}; }
78
+ .dark .dark\:shadow-md { box-shadow: #{$oc-dark-shadow-md}; }
79
+ .dark .dark\:shadow-lg { box-shadow: #{$oc-dark-shadow-lg}; }
80
+
81
+ // Ring / outline for dark mode
82
+ .dark .dark\:outline-gray-600 { outline-color: var(--color-duskblue-20); }
83
+ .dark .dark\:outline-gray-700 { outline-color: var(--color-shallowblue-30); }
84
+
85
+ // Display overrides (e.g. show/hide elements in dark mode)
86
+ .dark .dark\:hidden { display: none; }
87
+ .dark .dark\:block { display: block; }
88
+
89
+ // ---------------------------------------------------------------------------
90
+ // Media-based dark mode (automatic, respects OS preference)
91
+ // These use @media (prefers-color-scheme: dark) for auto-detection.
92
+ // Classes use the auto-dark: prefix.
93
+ // ---------------------------------------------------------------------------
94
+
95
+ @media (prefers-color-scheme: dark) {
96
+ // Background
97
+ .auto-dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
98
+ .auto-dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
99
+ .auto-dark\:bg-gray-950 { background-color: var(--color-black-40); }
100
+ .auto-dark\:bg-surface { background-color: var(--color-shallowblue-50); }
101
+
102
+ // Text
103
+ .auto-dark\:text-white { color: var(--color-white-2); }
104
+ .auto-dark\:text-gray-100 { color: var(--color-linen-30); }
105
+ .auto-dark\:text-gray-200 { color: var(--color-silver-2); }
106
+ .auto-dark\:text-gray-300 { color: var(--color-silver-20); }
107
+ .auto-dark\:text-muted { color: var(--color-gray-20); }
108
+
109
+ // Border
110
+ .auto-dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
111
+ .auto-dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
112
+
113
+ // Shadow
114
+ .auto-dark\:shadow-none { box-shadow: none; }
115
+ }
116
+
117
+ /* End dark mode utilities */
@@ -1,26 +1,26 @@
1
- // SCSS Document
2
- // File: src/scss/utilities/_drop_shadow_colors.scss
3
- // Description: Color classes for the drop-shadow filter (.drop-shadow-sm … -lg read --oc-shadow-color).
4
- // Copyright: 2021-2026 Birdycom
5
- // Author: Serge Cools
6
- // Version: 0.4.0
7
- // Framework: OmniaCSS
8
- // Purpose: Generate .drop-shadow-current, .drop-shadow-transparent and .drop-shadow-{omnia color} (also hover: via the engine).
9
- // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow
10
- // Note: class="drop-shadow-lg drop-shadow-vividblue" — the color class only sets --oc-shadow-color,
11
- // the size class draws the shadow with a 25-30% alpha of that color.
12
- // Map: keywords -> every Omnia color
13
-
14
- @use "sass:string";
15
- @use '../utilities/' as *;
16
-
17
- .drop-shadow-current { --oc-shadow-color: currentcolor; }
18
- .drop-shadow-transparent { --oc-shadow-color: transparent; }
19
-
20
- @each $group, $families in $omnia-colors {
21
- @each $family, $colors in $families {
22
- @each $color, $props in $colors {
23
- .drop-shadow-#{string.to-lower-case(#{$color})} { --oc-shadow-color: var(--color-#{string.to-lower-case(#{$color})}-50); }
24
- }
25
- }
26
- }
1
+ // SCSS Document
2
+ // File: src/scss/utilities/_drop_shadow_colors.scss
3
+ // Description: Color classes for the drop-shadow filter (.drop-shadow-sm … -lg read --oc-shadow-color).
4
+ // Copyright: 2021-2026 Birdycom
5
+ // Author: Serge Cools
6
+ // Version: 0.4.0
7
+ // Framework: OmniaCSS
8
+ // Purpose: Generate .drop-shadow-current, .drop-shadow-transparent and .drop-shadow-{omnia color} (also hover: via the engine).
9
+ // Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow
10
+ // Note: class="drop-shadow-lg drop-shadow-vividblue" — the color class only sets --oc-shadow-color,
11
+ // the size class draws the shadow with a 25-30% alpha of that color.
12
+ // Map: keywords -> every Omnia color
13
+
14
+ @use "sass:string";
15
+ @use '../utilities/' as *;
16
+
17
+ .drop-shadow-current { --oc-shadow-color: currentcolor; }
18
+ .drop-shadow-transparent { --oc-shadow-color: transparent; }
19
+
20
+ @each $group, $families in $omnia-colors {
21
+ @each $family, $colors in $families {
22
+ @each $color, $props in $colors {
23
+ .drop-shadow-#{string.to-lower-case(#{$color})} { --oc-shadow-color: var(--color-#{string.to-lower-case(#{$color})}-50); }
24
+ }
25
+ }
26
+ }