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.
- package/README.md +81 -0
- package/bin/init.js +89 -0
- package/dist/zeus.css +8456 -0
- package/dist/zeus.min.css +1 -0
- package/package.json +44 -0
- package/scss/.stylelintrc.json +41 -0
- package/scss/API.md +168 -0
- package/scss/CHANGELOG.md +281 -0
- package/scss/LICENSE +21 -0
- package/scss/README.md +160 -0
- package/scss/cheatsheet.md +249 -0
- package/scss/dist/zeus.css +8465 -0
- package/scss/dist/zeus.css.map +1 -0
- package/scss/dist/zeus.min.css +1 -0
- package/scss/dist/zeus.min.css.map +1 -0
- package/scss/foundation/core/_api.scss +10 -0
- package/scss/foundation/core/_design.scss +33 -0
- package/scss/foundation/core/_engine.scss +18 -0
- package/scss/foundation/core/buttons/variants.scss +72 -0
- package/scss/foundation/core/design/_design-system.scss +41 -0
- package/scss/foundation/core/design/_validate.scss +114 -0
- package/scss/foundation/core/design/borders/border-line.scss +29 -0
- package/scss/foundation/core/design/borders/border-radius.scss +31 -0
- package/scss/foundation/core/design/buttons/sizes.scss +32 -0
- package/scss/foundation/core/design/colors/_color-derivation.scss +80 -0
- package/scss/foundation/core/design/colors/base-colors.scss +31 -0
- package/scss/foundation/core/design/colors/semantic-colors.scss +130 -0
- package/scss/foundation/core/design/core/basic.scss +40 -0
- package/scss/foundation/core/design/dimensions/sizes.scss +29 -0
- package/scss/foundation/core/design/dimensions/spaces.scss +42 -0
- package/scss/foundation/core/design/effects/_z-index.scss +30 -0
- package/scss/foundation/core/design/effects/shadows.scss +65 -0
- package/scss/foundation/core/design/layout/grid.scss +86 -0
- package/scss/foundation/core/design/typography/typography.scss +435 -0
- package/scss/foundation/core/engine/_fluid-core.scss +54 -0
- package/scss/foundation/core/engine/animations.scss +91 -0
- package/scss/foundation/core/engine/buttons.scss +226 -0
- package/scss/foundation/core/engine/color-api.scss +37 -0
- package/scss/foundation/core/engine/helpers.scss +39 -0
- package/scss/foundation/core/engine/layout.scss +156 -0
- package/scss/foundation/core/engine/responsive.scss +67 -0
- package/scss/foundation/core/engine/shadows.scss +186 -0
- package/scss/foundation/core/engine/shortcuts.scss +30 -0
- package/scss/foundation/core/engine/sizing.scss +49 -0
- package/scss/foundation/core/engine/theme-builder.scss +83 -0
- package/scss/foundation/core/engine/typographics.scss +44 -0
- package/scss/foundation/core/engine/typography-calc.scss +71 -0
- package/scss/foundation/foundation.scss +29 -0
- package/scss/foundation/views/_render.scss +13 -0
- package/scss/foundation/views/components/_alert.scss +103 -0
- package/scss/foundation/views/components/_avatar.scss +84 -0
- package/scss/foundation/views/components/_badge.scss +100 -0
- package/scss/foundation/views/components/_breadcrumb.scss +70 -0
- package/scss/foundation/views/components/_card.scss +117 -0
- package/scss/foundation/views/components/_dropdown.scss +123 -0
- package/scss/foundation/views/components/_form.scss +209 -0
- package/scss/foundation/views/components/_index.scss +20 -0
- package/scss/foundation/views/components/_modal.scss +138 -0
- package/scss/foundation/views/components/_pagination.scss +82 -0
- package/scss/foundation/views/components/_skeleton.scss +69 -0
- package/scss/foundation/views/components/_table.scss +94 -0
- package/scss/foundation/views/components/_tabs.scss +96 -0
- package/scss/foundation/views/components/_toast.scss +139 -0
- package/scss/foundation/views/components/_tooltip.scss +100 -0
- package/scss/foundation/views/patterns/_hero.scss +121 -0
- package/scss/foundation/views/patterns/_index.scss +8 -0
- package/scss/foundation/views/patterns/_sidebar-layout.scss +83 -0
- package/scss/foundation/views/render/_layer-order.scss +11 -0
- package/scss/foundation/views/render/classes/_animations.scss +233 -0
- package/scss/foundation/views/render/classes/_aspect-ratio.scss +17 -0
- package/scss/foundation/views/render/classes/_borders.scss +31 -0
- package/scss/foundation/views/render/classes/_buttons.scss +40 -0
- package/scss/foundation/views/render/classes/_colors.scss +83 -0
- package/scss/foundation/views/render/classes/_compounds.scss +103 -0
- package/scss/foundation/views/render/classes/_containers.scss +20 -0
- package/scss/foundation/views/render/classes/_misc-utils.scss +51 -0
- package/scss/foundation/views/render/classes/_position.scss +56 -0
- package/scss/foundation/views/render/classes/_sections.scss +30 -0
- package/scss/foundation/views/render/classes/_shadows.scss +198 -0
- package/scss/foundation/views/render/classes/_sizes.scss +39 -0
- package/scss/foundation/views/render/classes/_sizing-utils.scss +53 -0
- package/scss/foundation/views/render/classes/_spacing.scss +91 -0
- package/scss/foundation/views/render/classes/_state-variants.scss +47 -0
- package/scss/foundation/views/render/classes/_typography.scss +32 -0
- package/scss/foundation/views/render/classes/_utilities.scss +103 -0
- package/scss/foundation/views/render/classes/_z-index.scss +22 -0
- package/scss/foundation/views/render/classes/flexbox.scss +56 -0
- package/scss/foundation/views/render/classes/grid.scss +195 -0
- package/scss/foundation/views/render/classes.scss +116 -0
- package/scss/foundation/views/render/html-body.scss +54 -0
- package/scss/foundation/views/render/property-registration.scss +77 -0
- package/scss/foundation/views/render/reset.scss +147 -0
- package/scss/foundation/views/render/root-generator.scss +166 -0
- package/scss/foundation/views/render/root.scss +19 -0
- package/scss/foundation/views/render/typography.scss +129 -0
- package/scss/llms.txt +247 -0
- package/scss/package.json +89 -0
- package/scss/scripts/gen-cheatsheet.mjs +178 -0
- package/scss/scripts/gen-tokens.mjs +91 -0
- package/scss/scripts/test-compile.mjs +474 -0
- package/scss/zeus.config.scss +99 -0
- package/scss/zeus.customize.scss +246 -0
- package/scss/zeus.scss +17 -0
- package/scss/zeus.token.sets.example.scss +176 -0
- 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
|
+
*/
|