zeus-css 1.0.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 (105) hide show
  1. package/README.md +81 -0
  2. package/bin/init.js +89 -0
  3. package/dist/zeus.css +8456 -0
  4. package/dist/zeus.min.css +1 -0
  5. package/package.json +44 -0
  6. package/scss/.stylelintrc.json +41 -0
  7. package/scss/API.md +168 -0
  8. package/scss/CHANGELOG.md +281 -0
  9. package/scss/LICENSE +21 -0
  10. package/scss/README.md +160 -0
  11. package/scss/cheatsheet.md +249 -0
  12. package/scss/dist/zeus.css +8465 -0
  13. package/scss/dist/zeus.css.map +1 -0
  14. package/scss/dist/zeus.min.css +1 -0
  15. package/scss/dist/zeus.min.css.map +1 -0
  16. package/scss/foundation/core/_api.scss +10 -0
  17. package/scss/foundation/core/_design.scss +33 -0
  18. package/scss/foundation/core/_engine.scss +18 -0
  19. package/scss/foundation/core/buttons/variants.scss +72 -0
  20. package/scss/foundation/core/design/_design-system.scss +41 -0
  21. package/scss/foundation/core/design/_validate.scss +114 -0
  22. package/scss/foundation/core/design/borders/border-line.scss +29 -0
  23. package/scss/foundation/core/design/borders/border-radius.scss +31 -0
  24. package/scss/foundation/core/design/buttons/sizes.scss +32 -0
  25. package/scss/foundation/core/design/colors/_color-derivation.scss +80 -0
  26. package/scss/foundation/core/design/colors/base-colors.scss +31 -0
  27. package/scss/foundation/core/design/colors/semantic-colors.scss +130 -0
  28. package/scss/foundation/core/design/core/basic.scss +40 -0
  29. package/scss/foundation/core/design/dimensions/sizes.scss +29 -0
  30. package/scss/foundation/core/design/dimensions/spaces.scss +42 -0
  31. package/scss/foundation/core/design/effects/_z-index.scss +30 -0
  32. package/scss/foundation/core/design/effects/shadows.scss +65 -0
  33. package/scss/foundation/core/design/layout/grid.scss +86 -0
  34. package/scss/foundation/core/design/typography/typography.scss +435 -0
  35. package/scss/foundation/core/engine/_fluid-core.scss +54 -0
  36. package/scss/foundation/core/engine/animations.scss +91 -0
  37. package/scss/foundation/core/engine/buttons.scss +226 -0
  38. package/scss/foundation/core/engine/color-api.scss +37 -0
  39. package/scss/foundation/core/engine/helpers.scss +39 -0
  40. package/scss/foundation/core/engine/layout.scss +156 -0
  41. package/scss/foundation/core/engine/responsive.scss +67 -0
  42. package/scss/foundation/core/engine/shadows.scss +186 -0
  43. package/scss/foundation/core/engine/shortcuts.scss +30 -0
  44. package/scss/foundation/core/engine/sizing.scss +49 -0
  45. package/scss/foundation/core/engine/theme-builder.scss +83 -0
  46. package/scss/foundation/core/engine/typographics.scss +44 -0
  47. package/scss/foundation/core/engine/typography-calc.scss +71 -0
  48. package/scss/foundation/foundation.scss +29 -0
  49. package/scss/foundation/views/_render.scss +13 -0
  50. package/scss/foundation/views/components/_alert.scss +103 -0
  51. package/scss/foundation/views/components/_avatar.scss +84 -0
  52. package/scss/foundation/views/components/_badge.scss +100 -0
  53. package/scss/foundation/views/components/_breadcrumb.scss +70 -0
  54. package/scss/foundation/views/components/_card.scss +117 -0
  55. package/scss/foundation/views/components/_dropdown.scss +123 -0
  56. package/scss/foundation/views/components/_form.scss +209 -0
  57. package/scss/foundation/views/components/_index.scss +20 -0
  58. package/scss/foundation/views/components/_modal.scss +138 -0
  59. package/scss/foundation/views/components/_pagination.scss +82 -0
  60. package/scss/foundation/views/components/_skeleton.scss +69 -0
  61. package/scss/foundation/views/components/_table.scss +94 -0
  62. package/scss/foundation/views/components/_tabs.scss +96 -0
  63. package/scss/foundation/views/components/_toast.scss +139 -0
  64. package/scss/foundation/views/components/_tooltip.scss +100 -0
  65. package/scss/foundation/views/patterns/_hero.scss +121 -0
  66. package/scss/foundation/views/patterns/_index.scss +8 -0
  67. package/scss/foundation/views/patterns/_sidebar-layout.scss +83 -0
  68. package/scss/foundation/views/render/_layer-order.scss +11 -0
  69. package/scss/foundation/views/render/classes/_animations.scss +233 -0
  70. package/scss/foundation/views/render/classes/_aspect-ratio.scss +17 -0
  71. package/scss/foundation/views/render/classes/_borders.scss +31 -0
  72. package/scss/foundation/views/render/classes/_buttons.scss +40 -0
  73. package/scss/foundation/views/render/classes/_colors.scss +83 -0
  74. package/scss/foundation/views/render/classes/_compounds.scss +103 -0
  75. package/scss/foundation/views/render/classes/_containers.scss +20 -0
  76. package/scss/foundation/views/render/classes/_misc-utils.scss +51 -0
  77. package/scss/foundation/views/render/classes/_position.scss +56 -0
  78. package/scss/foundation/views/render/classes/_sections.scss +30 -0
  79. package/scss/foundation/views/render/classes/_shadows.scss +198 -0
  80. package/scss/foundation/views/render/classes/_sizes.scss +39 -0
  81. package/scss/foundation/views/render/classes/_sizing-utils.scss +53 -0
  82. package/scss/foundation/views/render/classes/_spacing.scss +91 -0
  83. package/scss/foundation/views/render/classes/_state-variants.scss +47 -0
  84. package/scss/foundation/views/render/classes/_typography.scss +32 -0
  85. package/scss/foundation/views/render/classes/_utilities.scss +103 -0
  86. package/scss/foundation/views/render/classes/_z-index.scss +22 -0
  87. package/scss/foundation/views/render/classes/flexbox.scss +56 -0
  88. package/scss/foundation/views/render/classes/grid.scss +195 -0
  89. package/scss/foundation/views/render/classes.scss +116 -0
  90. package/scss/foundation/views/render/html-body.scss +54 -0
  91. package/scss/foundation/views/render/property-registration.scss +77 -0
  92. package/scss/foundation/views/render/reset.scss +147 -0
  93. package/scss/foundation/views/render/root-generator.scss +166 -0
  94. package/scss/foundation/views/render/root.scss +19 -0
  95. package/scss/foundation/views/render/typography.scss +129 -0
  96. package/scss/llms.txt +247 -0
  97. package/scss/package.json +89 -0
  98. package/scss/scripts/gen-cheatsheet.mjs +178 -0
  99. package/scss/scripts/gen-tokens.mjs +91 -0
  100. package/scss/scripts/test-compile.mjs +474 -0
  101. package/scss/zeus.config.scss +99 -0
  102. package/scss/zeus.customize.scss +246 -0
  103. package/scss/zeus.scss +17 -0
  104. package/scss/zeus.token.sets.example.scss +176 -0
  105. package/scss/zeus.tokens.json +687 -0
@@ -0,0 +1,246 @@
1
+ // ╔══════════════════════════════════════════════════════════════╗
2
+ // ║ ⚡ Zeus CSS — Zeus.customize ║
3
+ // ║ ║
4
+ // ║ Core styles and definitions for zeus.customize. ║
5
+ // ╚══════════════════════════════════════════════════════════════╝
6
+
7
+ // ╔══════════════════════════════════════════════════════════════╗
8
+ // ║ 🎨 Zeus CSS — Design Token Customization ║
9
+ // ║ ║
10
+ // ║ This is the single place to override ALL visual/design ║
11
+ // ║ tokens for your project. Feature flags and layout engine ║
12
+ // ║ settings live in zeus.config.scss. ║
13
+ // ║ ║
14
+ // ║ Usage: edit the values below, then import zeus.scss as ║
15
+ // ║ usual. All !default variables are safe to override. ║
16
+ // ╚══════════════════════════════════════════════════════════════╝
17
+
18
+ // ────────────────────────────────────────────────────────────────
19
+ // 1. COLORS — OKLCH Palette
20
+ // ────────────────────────────────────────────────────────────────
21
+ // Only the 5 base keys are required — every other key below (light/dark
22
+ // variants, muted, inverse, surface, border, border-strong) is derived
23
+ // automatically at compile/paint time from these 5. Uncomment any key to
24
+ // pin an exact value instead of the auto-derived one; the deriver skips
25
+ // You can specify colors using ANY valid CSS format: OKLCH, HEX (#2563eb),
26
+ // RGB, HSL, or named colors. Zeus converts them dynamically via relative CSS syntax.
27
+ $zeus-colors: (
28
+ "primary": oklch(50.0% 0.232 259.6), // WCAG AA compliant (> 4.5:1 contrast on white text)
29
+ "secondary": oklch(74.7% 0.174 60.6),
30
+ "accent": oklch(52.0% 0.153 164.1), // WCAG AA compliant (4.55:1 contrast on white text) — re-audit 27.07.2026, was 71.8%
31
+ "text": oklch(21.8% 0.000 0.0),
32
+ "background": oklch(97.6% 0.000 0.0),
33
+
34
+ // HEX Example Alternative:
35
+ // "primary": #1d4ed8, "secondary": #f59e0b, "accent": #10b981, "text": #111827, "background": #f9fafb,
36
+
37
+ // "primary-light": oklch(73.7% 0.158 235.9),
38
+ // "primary-dark": oklch(41.6% 0.287 264.4),
39
+ // "secondary-light": oklch(83.5% 0.142 74.3),
40
+ // "secondary-dark": oklch(54.5% 0.117 72.2),
41
+ // "accent-light": oklch(85% 0.100 164.1),
42
+ // "accent-dark": oklch(55% 0.153 164.1),
43
+ // "text-muted": oklch(46.8% 0.000 0.0),
44
+ // "text-inverse": oklch(97.6% 0.000 0.0),
45
+ // "surface": oklch(97.6% 0.000 0.0),
46
+ // "border": oklch(79.8% 0.000 0.0),
47
+ // "border-strong": oklch(46.8% 0.000 0.0),
48
+ ) !default;
49
+
50
+ // ────────────────────────────────────────────────────────────────
51
+ // 2. TYPOGRAPHY
52
+ // ────────────────────────────────────────────────────────────────
53
+ // Available Keys:
54
+ // • Headings: display-xl, display-lg, display-md, h1, h1-light, h2, h2-light,
55
+ // h3, h3-light, h4, h4-light, h5, h5-light, h6, h6-light
56
+ // • Body: body-xl, body-lg, body, body-md, body-bold, body-md-bold,
57
+ // body-semibold, body-md-semibold, body-medium, body-md-medium,
58
+ // body-sm, body-sm-bold, body-sm-semibold, body-xs
59
+ // • UI/Other: label, label-bold, caption, caption-bold, overline,
60
+ // link, link-bold, button, button-lg, button-sm, code, code-sm
61
+
62
+ $zeus-font-family: () !default;
63
+ // Example Override:
64
+ // $zeus-font-family: (
65
+ // "primary": ("Inter", sans-serif),
66
+ // ) !default;
67
+
68
+ $zeus-typography: () !default;
69
+ // Example Override:
70
+ // $zeus-typography: (
71
+ // "h1": ( family: "primary", size: (floor: 40, ceil: 64), lh: 1.1, ls: -0.02, weight: 800, role: "heading" )
72
+ // ) !default;
73
+
74
+ // ────────────────────────────────────────────────────────────────
75
+ // 3. SPACING SCALE — Fluid (floor→ceil px)
76
+ // ────────────────────────────────────────────────────────────────
77
+ // Available Keys: 4xs, 3xs, 2xs, xs, sm, md, lg, xl, 2xl, 3xl, 4xl
78
+
79
+ $zeus-space: () !default;
80
+ // Example Override:
81
+ // $zeus-space: (
82
+ // "lg": (floor: 16, ceil: 24),
83
+ // ) !default;
84
+
85
+ // ────────────────────────────────────────────────────────────────
86
+ // 4. BORDER RADIUS — Fluid (floor→ceil px)
87
+ // ────────────────────────────────────────────────────────────────
88
+ // Available Keys: xs, sm, md, lg, xl, rounded
89
+
90
+ $zeus-border-radius: () !default;
91
+ // Example Override:
92
+ // $zeus-border-radius: (
93
+ // "md": (floor: 16, ceil: 24),
94
+ // ) !default;
95
+
96
+ // ────────────────────────────────────────────────────────────────
97
+ // 5. BORDER WIDTH — Fluid (floor→ceil px)
98
+ // ────────────────────────────────────────────────────────────────
99
+ // Available Keys: xs, sm, md, lg
100
+
101
+ $zeus-border-line: () !default;
102
+ // Example Override:
103
+ // $zeus-border-line: (
104
+ // "sm": (floor: 1.5, ceil: 3),
105
+ // ) !default;
106
+
107
+ // ────────────────────────────────────────────────────────────────
108
+ // 6. ICON SIZES — Fluid (floor→ceil px)
109
+ // ────────────────────────────────────────────────────────────────
110
+ // Available Keys: xs, sm, md, lg, xl
111
+
112
+ $zeus-icon-size: () !default;
113
+ // Example Override:
114
+ // $zeus-icon-size: (
115
+ // "md": (floor: 22, ceil: 32),
116
+ // ) !default;
117
+
118
+ // ────────────────────────────────────────────────────────────────
119
+ // 7. SHADOWS
120
+ // ────────────────────────────────────────────────────────────────
121
+ // Available Keys:
122
+ // • Elevation: none, xs, sm, md, lg, xl, 2xl
123
+ // • Semantic: primary, secondary, success, warning, danger, info
124
+ // • Inner: inner, inner-lg
125
+ // • Special: glow, glow-lg, outline
126
+ // • Component: card, card-hover, dropdown, modal
127
+
128
+ $zeus-shadows: () !default;
129
+ // Example Override:
130
+ // $zeus-shadows: (
131
+ // "sm": (0px 1px 3px 0px rgba(0,0,0,0.1)),
132
+ // ) !default;
133
+
134
+ // ────────────────────────────────────────────────────────────────
135
+ // 8. BUTTON SIZES — Fluid (floor→ceil px)
136
+ // ────────────────────────────────────────────────────────────────
137
+ // Available Keys: 2xs, xs, sm, md, lg, xl, 2xl
138
+
139
+ $zeus-button-sizes: () !default;
140
+ // Example Override:
141
+ // $zeus-button-sizes: (
142
+ // "md": (font: (floor: 14, ceil: 16), py: (floor: 10, ceil: 12), px: (floor: 20, ceil: 24)),
143
+ // ) !default;
144
+
145
+ // ────────────────────────────────────────────────────────────────
146
+ // 9. BASE / SYSTEM COLORS
147
+ // ────────────────────────────────────────────────────────────────
148
+ $zeus-base-colors: () !default;
149
+ // Example Override:
150
+ // $zeus-base-colors: (
151
+ // "system": (
152
+ // "success": oklch(65% 0.20 145),
153
+ // ),
154
+ // ) !default;
155
+
156
+ // ────────────────────────────────────────────────────────────────
157
+ // 10. Z-INDEX SCALE
158
+ // ────────────────────────────────────────────────────────────────
159
+ // A single stacking-order scale so components never need a magic number.
160
+ // Used internally by .z-modal/.z-modal-backdrop; exposed as both
161
+ // --z-{name} CSS variables and .layer-{name} utility classes.
162
+ // Available Keys: base, dropdown, sticky, overlay, modal-backdrop, modal, toast, tooltip
163
+
164
+ $zeus-z-index: () !default;
165
+ // Example Override:
166
+ // $zeus-z-index: (
167
+ // "modal": 2000,
168
+ // ) !default;
169
+
170
+ // ────────────────────────────────────────────────────────────────
171
+ // 10. CUSTOM RESPONSIVE VARIABLES
172
+ // ────────────────────────────────────────────────────────────────
173
+ // Define your own custom CSS variables that change value based on breakpoints.
174
+ // The variables will be automatically generated inside the :root with media queries.
175
+ //
176
+ // HOW IT WORKS:
177
+ // - The engine automatically treats the **lowest** defined breakpoint as the base value (no media query).
178
+ // - Higher breakpoints generate `min-width` media queries, creating a clean mobile-first cascade.
179
+ //
180
+ // EXAMPLE BEHAVIOR for "header-height" below:
181
+ // - It starts with `60px` by default (from 0px and up).
182
+ // - From `md` (768px) it changes to `64px`.
183
+ // - From `ml` (1024px) it changes to `72px` and stays `72px` for all larger screens.
184
+ //
185
+ // In your code, you can just use `var(--header-height)` without writing any @media blocks!
186
+
187
+ $zeus-custom-vars: (
188
+ "header-height": (
189
+ sm: 60px,
190
+ md: 64px,
191
+ ml: 72px,
192
+ ),
193
+ // You can add more responsive variables here!
194
+ // "sidebar-width": (
195
+ // xs: 240px,
196
+ // lg: 320px
197
+ // )
198
+ ) !default;
199
+
200
+ // ────────────────────────────────────────────────────────────────
201
+ // 11. BUTTON VARIANTS
202
+ // ────────────────────────────────────────────────────────────────
203
+ $zeus-button-variants: (
204
+ "primary": ("default": ("background": var(--color-primary),
205
+ "color": var(--color-text-inverse),
206
+ "border": none,
207
+ ),
208
+ "hover": ("background": var(--color-primary-dark),
209
+ "color": var(--color-text-inverse),
210
+ "border": none,
211
+ ),
212
+ "active": ("background": var(--color-primary-dark),
213
+ "color": var(--color-text-inverse),
214
+ "border": none,
215
+ ),
216
+ ),
217
+ "secondary": ("default": ("background": transparent,
218
+ "color": var(--color-primary),
219
+ "border": var(--border-line-sm) solid var(--color-primary),
220
+ ),
221
+ "hover": ("color": var(--color-primary-dark),
222
+ "border-color": var(--color-primary-dark),
223
+ ),
224
+ "active": ("color": var(--color-primary-dark),
225
+ "border-color": var(--color-primary-dark),
226
+ ),
227
+ ),
228
+ "tertiary": ("default": ("background": transparent,
229
+ "color": var(--color-primary),
230
+ "border": none,
231
+ ),
232
+ "hover": ("color": var(--color-primary-dark),
233
+ ),
234
+ "active": ("color": var(--color-primary-dark),
235
+ ),
236
+ ),
237
+ "icon-only": ("default": ("background": transparent,
238
+ "color": var(--color-primary),
239
+ "border": none,
240
+ ),
241
+ "hover": ("color": var(--color-primary-dark),
242
+ ),
243
+ "active": ("color": var(--color-primary-dark),
244
+ ),
245
+ ),
246
+ ) !default;
package/scss/zeus.scss ADDED
@@ -0,0 +1,17 @@
1
+ // ╔══════════════════════════════════════════════════════════════╗
2
+ // ║ ⚡ Zeus CSS — Zeus ║
3
+ // ║ ║
4
+ // ║ Core styles and definitions for zeus. ║
5
+ // ╚══════════════════════════════════════════════════════════════╝
6
+ // ╔══════════════════════════════════════════════════════════════╗
7
+ // ║ Single entry point for component .module.scss files. ║
8
+ // ║ Exposes design tokens, engine (mixins), and API (functions) ║
9
+ // ║ without emitting any CSS. ║
10
+ // ║ ║
11
+ // ║ Usage: @use "./zeus" as *; ║
12
+ // ╚══════════════════════════════════════════════════════════════╝
13
+
14
+ @forward "./zeus.config";
15
+ @forward "./foundation/core/design";
16
+ @forward "./foundation/core/engine";
17
+ @forward "./foundation/core/api";
@@ -0,0 +1,176 @@
1
+ // ╔══════════════════════════════════════════════════════════════╗
2
+ // ║ ⚡ Zeus CSS — Zeus.token.sets.example ║
3
+ // ║ ║
4
+ // ║ Core styles and definitions for zeus.token.sets.example. ║
5
+ // ╚══════════════════════════════════════════════════════════════╝
6
+
7
+ // ╔══════════════════════════════════════════════════════════════╗
8
+ // ║ 📖 Zeus CSS — Design Tokens Reference Guide ║
9
+ // ║ ║
10
+ // ║ This file is strictly for REFERENCE. Do not import it. ║
11
+ // ║ It lists the exact default values for all Zeus tokens so ║
12
+ // ║ you can easily copy what you need into zeus.customize.scss. ║
13
+ // ╚══════════════════════════════════════════════════════════════╝
14
+
15
+ /*
16
+ // ────────────────────────────────────────────────────────────────
17
+ // 1. TYPOGRAPHY TOKENS
18
+ // ────────────────────────────────────────────────────────────────
19
+ $zeus-typography: (
20
+ // Display styles
21
+ "display-xl": ( family: "primary", size: (floor: 56, ceil: 96), lh: 1.1, ls: -0.02, weight: 800, role: "heading" ),
22
+ "display-lg": ( family: "primary", size: (floor: 48, ceil: 80), lh: 1.1, ls: -0.02, weight: 800, role: "heading" ),
23
+ "display-md": ( family: "primary", size: (floor: 40, ceil: 64), lh: 1.15, ls: -0.01, weight: 700, role: "heading" ),
24
+
25
+ // Headings
26
+ "h1": ( family: "primary", size: (floor: 36, ceil: 58), lh: 1.2, ls: -0.01, weight: 700, role: "heading" ),
27
+ "h1-light": ( family: "primary", size: (floor: 36, ceil: 58), lh: 1.2, ls: -0.01, weight: 300, role: "heading" ),
28
+ "h2": ( family: "primary", size: (floor: 30, ceil: 52), lh: 1.2, ls: -0.01, weight: 600, role: "heading" ),
29
+ "h2-light": ( family: "primary", size: (floor: 30, ceil: 52), lh: 1.2, ls: -0.01, weight: 300, role: "heading" ),
30
+ "h3": ( family: "primary", size: (floor: 26, ceil: 44), lh: 1.25, ls: 0, weight: 600, role: "heading" ),
31
+ "h3-light": ( family: "primary", size: (floor: 26, ceil: 44), lh: 1.25, ls: 0, weight: 300, role: "heading" ),
32
+ "h4": ( family: "primary", size: (floor: 24, ceil: 32), lh: 1.3, ls: 0, weight: 600, role: "heading" ),
33
+ "h4-light": ( family: "primary", size: (floor: 24, ceil: 32), lh: 1.3, ls: 0, weight: 300, role: "heading" ),
34
+ "h5": ( family: "primary", size: (floor: 20, ceil: 24), lh: 1.4, ls: 0, weight: 500, role: "heading" ),
35
+ "h5-light": ( family: "primary", size: (floor: 20, ceil: 24), lh: 1.4, ls: 0, weight: 300, role: "heading" ),
36
+ "h6": ( family: "primary", size: (floor: 18, ceil: 20), lh: 1.4, ls: 0, weight: 500, role: "heading" ),
37
+ "h6-light": ( family: "primary", size: (floor: 18, ceil: 20), lh: 1.4, ls: 0, weight: 300, role: "heading" ),
38
+
39
+ // Body
40
+ "body-xl": ( family: "primary", size: (floor: 20, ceil: 24), lh: 1.6, ls: 0, weight: 400, role: "body" ),
41
+ "body-lg": ( family: "primary", size: (floor: 18, ceil: 20), lh: 1.6, ls: 0, weight: 400, role: "body" ),
42
+ "body": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 400, role: "body" ),
43
+ "body-md": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 400, role: "body" ),
44
+ "body-bold": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 700, role: "body" ),
45
+ "body-md-bold": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 700, role: "body" ),
46
+ "body-semibold": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 600, role: "body" ),
47
+ "body-md-semibold": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 600, role: "body" ),
48
+ "body-medium": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 500, role: "body" ),
49
+ "body-md-medium": ( family: "primary", size: (floor: 16, ceil: 18), lh: 1.6, ls: 0, weight: 500, role: "body" ),
50
+ "body-sm": ( family: "primary", size: (floor: 14, ceil: 16), lh: 1.5, ls: 0, weight: 400, role: "body" ),
51
+ "body-sm-bold": ( family: "primary", size: (floor: 14, ceil: 16), lh: 1.5, ls: 0, weight: 700, role: "body" ),
52
+ "body-sm-semibold": ( family: "primary", size: (floor: 14, ceil: 16), lh: 1.5, ls: 0, weight: 600, role: "body" ),
53
+ "body-xs": ( family: "primary", size: (floor: 12, ceil: 14), lh: 1.5, ls: 0, weight: 400, role: "body" ),
54
+
55
+ // UI
56
+ "label": ( family: "secondary", size: (floor: 12, ceil: 14), lh: 1.4, ls: 0.01, weight: 500, role: "ui" ),
57
+ "label-bold": ( family: "secondary", size: (floor: 12, ceil: 14), lh: 1.4, ls: 0.01, weight: 700, role: "ui" ),
58
+ "caption": ( family: "secondary", size: (floor: 11, ceil: 12), lh: 1.4, ls: 0.01, weight: 400, role: "ui" ),
59
+ "caption-bold": ( family: "secondary", size: (floor: 11, ceil: 12), lh: 1.4, ls: 0.01, weight: 600, role: "ui" ),
60
+ "overline": ( family: "secondary", size: (floor: 14, ceil: 16), lh: 1.3, ls: 0.14, weight: 600, role: "ui" ),
61
+
62
+ // Interactive
63
+ "link": ( family: "tertiary", size: (floor: 15, ceil: 16), lh: 1.5, ls: 0, weight: 500, role: "interactive" ),
64
+ "link-bold": ( family: "tertiary", size: (floor: 15, ceil: 16), lh: 1.5, ls: 0, weight: 700, role: "interactive" ),
65
+ "button": ( family: "secondary", size: (floor: 14, ceil: 16), lh: 1.2, ls: 0.02, weight: 600, role: "interactive" ),
66
+ "button-lg": ( family: "secondary", size: (floor: 16, ceil: 18), lh: 1.2, ls: 0.02, weight: 600, role: "interactive" ),
67
+ "button-sm": ( family: "secondary", size: (floor: 12, ceil: 14), lh: 1.2, ls: 0.02, weight: 600, role: "interactive" ),
68
+
69
+ // Code
70
+ "code": ( family: "code", size: (floor: 14, ceil: 16), lh: 1.6, ls: 0, weight: 400, role: "code" ),
71
+ "code-sm": ( family: "code", size: (floor: 12, ceil: 14), lh: 1.6, ls: 0, weight: 400, role: "code" )
72
+ );
73
+
74
+
75
+ // ────────────────────────────────────────────────────────────────
76
+ // 2. SPACING SCALE
77
+ // ────────────────────────────────────────────────────────────────
78
+ $zeus-space: (
79
+ "0": (floor: 0, ceil: 0),
80
+ "4xs": (floor: 1, ceil: 2),
81
+ "3xs": (floor: 2, ceil: 4),
82
+ "2xs": (floor: 4, ceil: 6),
83
+ "xs": (floor: 6, ceil: 8),
84
+ "sm": (floor: 8, ceil: 12),
85
+ "md": (floor: 12, ceil: 16),
86
+ "lg": (floor: 16, ceil: 24),
87
+ "xl": (floor: 24, ceil: 32),
88
+ "2xl": (floor: 32, ceil: 48),
89
+ "3xl": (floor: 48, ceil: 64),
90
+ "4xl": (floor: 64, ceil: 96),
91
+ );
92
+
93
+
94
+ // ────────────────────────────────────────────────────────────────
95
+ // 3. BORDER RADIUS & WIDTH
96
+ // ────────────────────────────────────────────────────────────────
97
+ $zeus-border-radius: (
98
+ "none": (floor: 0, ceil: 0),
99
+ "xs": (floor: 2, ceil: 4),
100
+ "sm": (floor: 8, ceil: 12),
101
+ "md": (floor: 16, ceil: 24),
102
+ "lg": (floor: 20, ceil: 32),
103
+ "xl": (floor: 38, ceil: 64),
104
+ "rounded": (floor: 360, ceil: 360),
105
+ );
106
+
107
+ $zeus-border-line: (
108
+ "xs": (floor: 1, ceil: 2),
109
+ "sm": (floor: 1.5, ceil: 3),
110
+ "md": (floor: 2, ceil: 4),
111
+ "lg": (floor: 4, ceil: 8),
112
+ );
113
+
114
+
115
+ // ────────────────────────────────────────────────────────────────
116
+ // 4. ICON SIZES
117
+ // ────────────────────────────────────────────────────────────────
118
+ $zeus-icon-size: (
119
+ "xs": (floor: 14, ceil: 18),
120
+ "sm": (floor: 20, ceil: 24),
121
+ "md": (floor: 22, ceil: 32),
122
+ "lg": (floor: 38, ceil: 48),
123
+ "xl": (floor: 48, ceil: 64),
124
+ );
125
+
126
+
127
+ // ────────────────────────────────────────────────────────────────
128
+ // 5. SHADOWS
129
+ // ────────────────────────────────────────────────────────────────
130
+ $zeus-shadows: (
131
+ "none": none,
132
+ "xs": (0px 1px 2px 0px rgb(132 132 132 / 43%)),
133
+ "sm": (0px 1px 3px 0px rgb(132 132 132 / 43%), 0px 1px 2px -1px rgb(132 132 132 / 43%)),
134
+ "md": (0px 4px 6px -1px rgb(132 132 132 / 43%), 0px 2px 4px -2px rgb(132 132 132 / 43%)),
135
+ "lg": (0px 10px 15px -3px rgb(132 132 132 / 43%), 0px 4px 6px -4px rgb(132 132 132 / 43%)),
136
+ "xl": (0px 20px 25px -5px rgb(132 132 132 / 43%), 0px 8px 10px -6px rgb(132 132 132 / 43%)),
137
+ "2xl": (0px 25px 50px -12px rgba(0, 0, 0, 0.25)),
138
+
139
+ // primary/secondary/glow/glow-lg/outline are brand-aware: derived at
140
+ // runtime from --color-primary/--color-secondary via relative color
141
+ // syntax, so they follow whatever you set in $zeus-colors automatically.
142
+ "primary": (0px 4px 12px 0px oklch(from var(--color-primary) l c h / 0.3)),
143
+ "secondary": (0px 4px 12px 0px oklch(from var(--color-secondary) l c h / 0.3)),
144
+ "success": (0px 4px 12px 0px rgba(34, 197, 94, 0.3)),
145
+ "warning": (0px 4px 12px 0px rgba(251, 146, 60, 0.3)),
146
+ "danger": (0px 4px 12px 0px rgba(239, 68, 68, 0.3)),
147
+ "info": (0px 4px 12px 0px rgba(14, 165, 233, 0.3)),
148
+
149
+ "inner": (inset 0px 2px 4px 0px rgba(0, 0, 0, 0.06)),
150
+ "inner-lg": (inset 0px 4px 8px 0px rgb(132 132 132 / 43%)),
151
+
152
+ "glow": (0px 0px 20px 0px oklch(from var(--color-primary) l c h / 0.5)),
153
+ "glow-lg": (0px 0px 40px 0px oklch(from var(--color-primary) l c h / 0.6)),
154
+ "outline": (0px 0px 0px 3px oklch(from var(--color-primary) l c h / 0.5)),
155
+
156
+ "card": (0px 2px 8px 0px rgba(0,0,0,0.08), 0px 1px 2px 0px rgba(0,0,0,0.06)),
157
+ "card-hover": (0px 8px 24px 0px rgba(0,0,0,0.12), 0px 2px 6px 0px rgba(0,0,0,0.08)),
158
+ "dropdown": (0px 10px 40px 0px rgba(0,0,0,0.15), 0px 2px 8px 0px rgb(132 132 132 / 43%)),
159
+ "modal": (0px 20px 60px 0px rgba(0,0,0,0.3), 0px 4px 16px 0px rgba(0,0,0,0.2)),
160
+ );
161
+
162
+
163
+ // ────────────────────────────────────────────────────────────────
164
+ // 6. BUTTON SIZES
165
+ // ────────────────────────────────────────────────────────────────
166
+ $zeus-button-sizes: (
167
+ "2xs": ( font: (floor: 11, ceil: 12), py: (floor: 4, ceil: 6), px: (floor: 8, ceil: 12) ),
168
+ "xs": ( font: (floor: 12, ceil: 13), py: (floor: 6, ceil: 8), px: (floor: 12, ceil: 16) ),
169
+ "sm": ( font: (floor: 13, ceil: 14), py: (floor: 8, ceil: 10), px: (floor: 16, ceil: 20) ),
170
+ "md": ( font: (floor: 14, ceil: 16), py: (floor: 10, ceil: 12), px: (floor: 20, ceil: 24) ),
171
+ "lg": ( font: (floor: 16, ceil: 20), py: (floor: 12, ceil: 16), px: (floor: 24, ceil: 32) ),
172
+ "xl": ( font: (floor: 18, ceil: 22), py: (floor: 16, ceil: 20), px: (floor: 32, ceil: 40) ),
173
+ "2xl": ( font: (floor: 20, ceil: 26), py: (floor: 20, ceil: 24), px: (floor: 40, ceil: 48) ),
174
+ );
175
+
176
+ */