@amulet-laboratories/hex 0.3.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/beacon.css +1 -0
- package/dist/brass.css +5 -0
- package/dist/cardinal.css +5 -0
- package/dist/citron.css +5 -0
- package/dist/clover.css +5 -0
- package/dist/cobalt.css +5 -0
- package/dist/copper.css +5 -0
- package/dist/cypress.css +5 -0
- package/dist/damson.css +5 -0
- package/dist/fern.css +5 -0
- package/dist/forge.css +2 -2
- package/dist/garden.css +2 -2
- package/dist/greyline.css +2 -2
- package/dist/harbor.css +5 -0
- package/dist/hearth.css +5 -0
- package/dist/hex.css +2 -2
- package/dist/iris.css +5 -0
- package/dist/juniper.css +5 -0
- package/dist/lagoon.css +5 -0
- package/dist/ochre.css +5 -0
- package/dist/orchid.css +5 -0
- package/dist/quartz.css +5 -0
- package/dist/roast.css +5 -0
- package/dist/sienna.css +5 -0
- package/dist/slate.css +5 -0
- package/dist/spacewizard.css +2 -2
- package/dist/vesper.css +5 -0
- package/dist/voltaic.css +1 -0
- package/package.json +73 -53
- package/src/index.css +3 -3
- package/src/scoped/index.css +13 -13
- package/src/scoped/themes/{kbcv.css → cardinal.css} +17 -1
- package/src/scoped/themes/citron.css +105 -0
- package/src/scoped/themes/{compass.css → clover.css} +26 -13
- package/src/scoped/themes/{vscode.css → cobalt.css} +10 -5
- package/src/scoped/themes/{undertow.css → copper.css} +16 -1
- package/src/scoped/themes/{tidemark.css → cypress.css} +24 -11
- package/src/scoped/themes/{aldricpace.css → harbor.css} +15 -3
- package/src/scoped/themes/hearth.css +134 -0
- package/src/scoped/themes/{briarcove.css → iris.css} +13 -2
- package/src/scoped/themes/juniper.css +121 -0
- package/src/scoped/themes/{duskline.css → lagoon.css} +25 -9
- package/src/scoped/themes/{saltsignal.css → ochre.css} +23 -10
- package/src/scoped/themes/{marenlys.css → orchid.css} +26 -9
- package/src/scoped/themes/{briarcovelib.css → sienna.css} +20 -7
- package/src/scoped/themes/{lanternhouse.css → vesper.css} +27 -6
- package/src/scoped/tokens.css +15 -13
- package/src/shared/components/content.css +772 -0
- package/src/shared/components/core.css +88 -720
- package/src/shared/components/data.css +24 -126
- package/src/shared/components/editor.css +33 -164
- package/src/shared/components/extras.css +30 -346
- package/src/shared/components/layout.css +21 -369
- package/src/shared/components/lists.css +11 -114
- package/src/shared/components/menus.css +10 -146
- package/src/shared/components/nav.css +112 -501
- package/src/shared/components/prose.css +12 -180
- package/src/shared/components/shell.css +22 -259
- package/src/shared/components/spatial.css +15 -47
- package/src/shared/components/temporal.css +28 -68
- package/src/shared/components/web.css +42 -1037
- package/src/shared/tokens.css +37 -0
- package/src/shared/utilities.css +52 -3
- package/src/themes/beacon/base.css +59 -0
- package/src/themes/beacon/index.css +11 -0
- package/src/themes/beacon/tokens.css +219 -0
- package/src/themes/brass/base.css +179 -0
- package/src/themes/brass/components.css +23 -0
- package/src/themes/brass/domains.css +731 -0
- package/src/themes/brass/tokens.css +208 -0
- package/src/themes/{kbcv → cardinal}/tokens.css +5 -0
- package/src/themes/citron/base.css +232 -0
- package/src/themes/citron/tokens.css +136 -0
- package/src/themes/{vscode → cobalt}/tokens.css +5 -5
- package/src/themes/damson/base.css +179 -0
- package/src/themes/damson/components.css +23 -0
- package/src/themes/damson/domains.css +731 -0
- package/src/themes/damson/tokens.css +208 -0
- package/src/themes/{quizbit → fern}/base.css +21 -27
- package/src/themes/fern/components.css +23 -0
- package/src/themes/fern/domains.css +731 -0
- package/src/themes/fern/tokens.css +208 -0
- package/src/themes/{aldricpace → harbor}/tokens.css +5 -0
- package/src/themes/hearth/base.css +111 -0
- package/src/themes/hearth/components.css +22 -0
- package/src/themes/hearth/domains.css +19 -0
- package/src/themes/hearth/tokens.css +179 -0
- package/src/themes/juniper/base.css +111 -0
- package/src/themes/juniper/components.css +22 -0
- package/src/themes/juniper/domains.css +19 -0
- package/src/themes/juniper/tokens.css +171 -0
- package/src/themes/lagoon/index.css +6 -0
- package/src/themes/{duskline → lagoon}/tokens.css +5 -0
- package/src/themes/ochre/index.css +6 -0
- package/src/themes/{saltsignal → ochre}/tokens.css +8 -8
- package/src/themes/orchid/index.css +6 -0
- package/src/themes/{marenlys → orchid}/tokens.css +8 -3
- package/src/themes/quartz/base.css +114 -0
- package/src/themes/quartz/components.css +23 -0
- package/src/themes/quartz/domains.css +731 -0
- package/src/themes/quartz/index.css +6 -0
- package/src/themes/quartz/tokens.css +208 -0
- package/src/themes/roast/base.css +114 -0
- package/src/themes/roast/components.css +23 -0
- package/src/themes/roast/domains.css +731 -0
- package/src/themes/roast/index.css +6 -0
- package/src/themes/roast/tokens.css +208 -0
- package/src/themes/sienna/index.css +6 -0
- package/src/themes/slate/base.css +207 -0
- package/src/themes/slate/components.css +23 -0
- package/src/themes/slate/domains.css +731 -0
- package/src/themes/slate/index.css +6 -0
- package/src/themes/slate/tokens.css +208 -0
- package/src/themes/vesper/index.css +6 -0
- package/src/themes/{lanternhouse → vesper}/tokens.css +5 -0
- package/dist/aldricpace.css +0 -5
- package/dist/briarcove.css +0 -5
- package/dist/briarcovelib.css +0 -5
- package/dist/compass.css +0 -5
- package/dist/duskline.css +0 -5
- package/dist/kbcv.css +0 -5
- package/dist/lanternhouse.css +0 -5
- package/dist/marenlys.css +0 -5
- package/dist/quizbit.css +0 -5
- package/dist/saltsignal.css +0 -5
- package/dist/tidemark.css +0 -5
- package/dist/undertow.css +0 -5
- package/dist/vscode.css +0 -5
- package/src/scoped/themes/quizbit.css +0 -101
- package/src/themes/quizbit/tokens.css +0 -132
- /package/src/themes/{aldricpace → brass}/index.css +0 -0
- /package/src/themes/{kbcv → cardinal}/base.css +0 -0
- /package/src/themes/{kbcv → cardinal}/components.css +0 -0
- /package/src/themes/{kbcv → cardinal}/domains.css +0 -0
- /package/src/themes/{briarcove → cardinal}/index.css +0 -0
- /package/src/themes/{quizbit → citron}/components.css +0 -0
- /package/src/themes/{quizbit → citron}/domains.css +0 -0
- /package/src/themes/{briarcovelib → citron}/index.css +0 -0
- /package/src/themes/{compass → clover}/base.css +0 -0
- /package/src/themes/{compass → clover}/components.css +0 -0
- /package/src/themes/{compass → clover}/domains.css +0 -0
- /package/src/themes/{compass → clover}/index.css +0 -0
- /package/src/themes/{compass → clover}/tokens.css +0 -0
- /package/src/themes/{vscode → cobalt}/base.css +0 -0
- /package/src/themes/{vscode → cobalt}/components.css +0 -0
- /package/src/themes/{vscode → cobalt}/domains.css +0 -0
- /package/src/themes/{vscode → cobalt}/index.css +0 -0
- /package/src/themes/{undertow → copper}/base.css +0 -0
- /package/src/themes/{undertow → copper}/components.css +0 -0
- /package/src/themes/{undertow → copper}/domains.css +0 -0
- /package/src/themes/{duskline → copper}/index.css +0 -0
- /package/src/themes/{undertow → copper}/tokens.css +0 -0
- /package/src/themes/{tidemark → cypress}/base.css +0 -0
- /package/src/themes/{tidemark → cypress}/components.css +0 -0
- /package/src/themes/{tidemark → cypress}/domains.css +0 -0
- /package/src/themes/{kbcv → cypress}/index.css +0 -0
- /package/src/themes/{tidemark → cypress}/tokens.css +0 -0
- /package/src/themes/{lanternhouse → damson}/index.css +0 -0
- /package/src/themes/{marenlys → fern}/index.css +0 -0
- /package/src/themes/{aldricpace → harbor}/base.css +0 -0
- /package/src/themes/{aldricpace → harbor}/components.css +0 -0
- /package/src/themes/{aldricpace → harbor}/domains.css +0 -0
- /package/src/themes/{quizbit → harbor}/index.css +0 -0
- /package/src/themes/{saltsignal → hearth}/index.css +0 -0
- /package/src/themes/{briarcove → iris}/base.css +0 -0
- /package/src/themes/{briarcove → iris}/components.css +0 -0
- /package/src/themes/{briarcove → iris}/domains.css +0 -0
- /package/src/themes/{tidemark → iris}/index.css +0 -0
- /package/src/themes/{briarcove → iris}/tokens.css +0 -0
- /package/src/themes/{undertow → juniper}/index.css +0 -0
- /package/src/themes/{duskline → lagoon}/base.css +0 -0
- /package/src/themes/{duskline → lagoon}/components.css +0 -0
- /package/src/themes/{duskline → lagoon}/domains.css +0 -0
- /package/src/themes/{saltsignal → ochre}/base.css +0 -0
- /package/src/themes/{saltsignal → ochre}/components.css +0 -0
- /package/src/themes/{saltsignal → ochre}/domains.css +0 -0
- /package/src/themes/{marenlys → orchid}/base.css +0 -0
- /package/src/themes/{marenlys → orchid}/components.css +0 -0
- /package/src/themes/{marenlys → orchid}/domains.css +0 -0
- /package/src/themes/{briarcovelib → sienna}/base.css +0 -0
- /package/src/themes/{briarcovelib → sienna}/components.css +0 -0
- /package/src/themes/{briarcovelib → sienna}/domains.css +0 -0
- /package/src/themes/{briarcovelib → sienna}/tokens.css +0 -0
- /package/src/themes/{lanternhouse → vesper}/base.css +0 -0
- /package/src/themes/{lanternhouse → vesper}/components.css +0 -0
- /package/src/themes/{lanternhouse → vesper}/domains.css +0 -0
- /package/src/themes/{andrewpassanisi → voltaic}/base.css +0 -0
- /package/src/themes/{andrewpassanisi → voltaic}/index.css +0 -0
- /package/src/themes/{andrewpassanisi → voltaic}/tokens.css +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/* Hex — Burrowtail Design Tokens
|
|
2
|
+
* Pet care warmth. Soft amber leadership with dusty teal accents.
|
|
3
|
+
* Friendly, approachable, nature-grounded — suited for pet services and animal care.
|
|
4
|
+
*
|
|
5
|
+
* Full palette (10 swatch colors):
|
|
6
|
+
* #F8F6F2 warm light gray — background
|
|
7
|
+
* #FFFFFF white — card, popover
|
|
8
|
+
* #F0ECE4 warm beige — secondary
|
|
9
|
+
* #E6E0D6 light taupe — muted
|
|
10
|
+
* #DCD5C8 warm border — borders
|
|
11
|
+
* #7A6E5E warm muted — muted foreground
|
|
12
|
+
* #2C2418 warm dark brown — foreground text
|
|
13
|
+
* #B88F42 soft amber — primary, ring
|
|
14
|
+
* #548383 dusty teal — accent
|
|
15
|
+
* #A07A30 darker amber — hover
|
|
16
|
+
*
|
|
17
|
+
* @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
|
|
18
|
+
* :root provides standalone CSS custom property access for non-Tailwind consumers.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
@theme {
|
|
22
|
+
/* Surface colors */
|
|
23
|
+
--color-background: #f8f6f2;
|
|
24
|
+
--color-foreground: #2c2418;
|
|
25
|
+
--color-card: #ffffff;
|
|
26
|
+
--color-card-foreground: #2c2418;
|
|
27
|
+
--color-popover: #ffffff;
|
|
28
|
+
--color-popover-foreground: #2c2418;
|
|
29
|
+
|
|
30
|
+
/* Brand */
|
|
31
|
+
--color-primary: #b88f42;
|
|
32
|
+
--color-primary-foreground: #ffffff;
|
|
33
|
+
|
|
34
|
+
/* Soft accents */
|
|
35
|
+
--color-secondary: #f0ece4;
|
|
36
|
+
--color-secondary-foreground: #2c2418;
|
|
37
|
+
--color-muted: #e6e0d6;
|
|
38
|
+
--color-muted-foreground: #7a6e5e;
|
|
39
|
+
--color-accent: #548383;
|
|
40
|
+
--color-accent-foreground: #ffffff;
|
|
41
|
+
|
|
42
|
+
/* Semantic status */
|
|
43
|
+
--color-destructive: #dc2626;
|
|
44
|
+
--color-destructive-foreground: #ffffff;
|
|
45
|
+
--color-success: #16a34a;
|
|
46
|
+
--color-warning: #d97706;
|
|
47
|
+
--color-info: #2563eb;
|
|
48
|
+
|
|
49
|
+
/* Borders and focus */
|
|
50
|
+
--color-border: #dcd5c8;
|
|
51
|
+
--color-input: #dcd5c8;
|
|
52
|
+
--color-ring: #b88f42;
|
|
53
|
+
|
|
54
|
+
/* Typography */
|
|
55
|
+
--font-sans: 'Source Sans 3', ui-sans-serif, system-ui, sans-serif;
|
|
56
|
+
--font-mono: 'JetBrains Mono', ui-monospace, monospace;
|
|
57
|
+
--font-serif: 'Lora', ui-serif, Georgia, serif;
|
|
58
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
59
|
+
--font-heading: 'Lora', ui-serif, Georgia, serif;
|
|
60
|
+
|
|
61
|
+
/* Typography — IDE-density type scale */
|
|
62
|
+
--font-size-2xs: 0.625rem;
|
|
63
|
+
--font-size-2xs--line-height: 1.25;
|
|
64
|
+
--font-size-xs: 0.75rem;
|
|
65
|
+
--font-size-xs--line-height: 1.5;
|
|
66
|
+
--font-size-sm: 0.8125rem;
|
|
67
|
+
--font-size-sm--line-height: 1.5;
|
|
68
|
+
--font-size-base: 0.875rem;
|
|
69
|
+
--font-size-base--line-height: 1.5;
|
|
70
|
+
--font-size-lg: 1.125rem;
|
|
71
|
+
--font-size-lg--line-height: 1.25;
|
|
72
|
+
--font-size-xl: 1.25rem;
|
|
73
|
+
--font-size-xl--line-height: 1.25;
|
|
74
|
+
|
|
75
|
+
/* Display font family */
|
|
76
|
+
--font-display: var(--font-serif);
|
|
77
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
78
|
+
|
|
79
|
+
--radius: 8px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:root {
|
|
83
|
+
--background: #f8f6f2;
|
|
84
|
+
--foreground: #2c2418;
|
|
85
|
+
--card: #ffffff;
|
|
86
|
+
--card-foreground: #2c2418;
|
|
87
|
+
--popover: #ffffff;
|
|
88
|
+
--popover-foreground: #2c2418;
|
|
89
|
+
--primary: #b88f42;
|
|
90
|
+
--primary-foreground: #ffffff;
|
|
91
|
+
--secondary: #f0ece4;
|
|
92
|
+
--secondary-foreground: #2c2418;
|
|
93
|
+
--muted: #e6e0d6;
|
|
94
|
+
--muted-foreground: #7a6e5e;
|
|
95
|
+
--accent: #548383;
|
|
96
|
+
--accent-foreground: #ffffff;
|
|
97
|
+
--destructive: #dc2626;
|
|
98
|
+
--destructive-foreground: #ffffff;
|
|
99
|
+
--success: #16a34a;
|
|
100
|
+
--warning: #d97706;
|
|
101
|
+
--info: #2563eb;
|
|
102
|
+
--border: #dcd5c8;
|
|
103
|
+
--input: #dcd5c8;
|
|
104
|
+
--ring: #b88f42;
|
|
105
|
+
|
|
106
|
+
/* Color token bridge -- component CSS uses var(--color-*) */
|
|
107
|
+
--color-background: #f8f6f2;
|
|
108
|
+
--color-foreground: #2c2418;
|
|
109
|
+
--color-card: #ffffff;
|
|
110
|
+
--color-card-foreground: #2c2418;
|
|
111
|
+
--color-popover: #ffffff;
|
|
112
|
+
--color-popover-foreground: #2c2418;
|
|
113
|
+
--color-primary: #b88f42;
|
|
114
|
+
--color-primary-foreground: #ffffff;
|
|
115
|
+
--color-secondary: #f0ece4;
|
|
116
|
+
--color-secondary-foreground: #2c2418;
|
|
117
|
+
--color-muted: #e6e0d6;
|
|
118
|
+
--color-muted-foreground: #7a6e5e;
|
|
119
|
+
--color-accent: #548383;
|
|
120
|
+
--color-accent-foreground: #ffffff;
|
|
121
|
+
--color-destructive: #dc2626;
|
|
122
|
+
--color-destructive-foreground: #ffffff;
|
|
123
|
+
--color-success: #16a34a;
|
|
124
|
+
--color-warning: #d97706;
|
|
125
|
+
--color-info: #2563eb;
|
|
126
|
+
--color-border: #dcd5c8;
|
|
127
|
+
--color-input: #dcd5c8;
|
|
128
|
+
--color-ring: #b88f42;
|
|
129
|
+
--font-sans: 'Source Sans 3', ui-sans-serif, system-ui, sans-serif;
|
|
130
|
+
--font-serif: 'Lora', ui-serif, Georgia, serif;
|
|
131
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
132
|
+
--font-mono: 'JetBrains Mono', ui-monospace, monospace;
|
|
133
|
+
--font-heading: 'Lora', ui-serif, Georgia, serif;
|
|
134
|
+
--radius: 8px;
|
|
135
|
+
|
|
136
|
+
/* Typography — IDE-density type scale */
|
|
137
|
+
--font-size-2xs: 0.625rem;
|
|
138
|
+
--font-size-2xs--line-height: 1.25;
|
|
139
|
+
--font-size-xs: 0.75rem;
|
|
140
|
+
--font-size-xs--line-height: 1.5;
|
|
141
|
+
--font-size-sm: 0.8125rem;
|
|
142
|
+
--font-size-sm--line-height: 1.5;
|
|
143
|
+
--font-size-base: 0.875rem;
|
|
144
|
+
--font-size-base--line-height: 1.5;
|
|
145
|
+
--font-size-lg: 1.125rem;
|
|
146
|
+
--font-size-lg--line-height: 1.25;
|
|
147
|
+
--font-size-xl: 1.25rem;
|
|
148
|
+
--font-size-xl--line-height: 1.25;
|
|
149
|
+
|
|
150
|
+
/* Display font family */
|
|
151
|
+
--font-display: var(--font-serif);
|
|
152
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
153
|
+
|
|
154
|
+
--radius: 8px;
|
|
155
|
+
|
|
156
|
+
/* Typography — IDE-density type scale (shorthand aliases) */
|
|
157
|
+
--text-2xs: 0.625rem;
|
|
158
|
+
--text-xs: 0.75rem;
|
|
159
|
+
--text-sm: 0.8125rem;
|
|
160
|
+
--text-base: 0.875rem;
|
|
161
|
+
--text-lg: 1.125rem;
|
|
162
|
+
--text-xl: 1.25rem;
|
|
163
|
+
--leading-tight: 1.25;
|
|
164
|
+
--leading-snug: 1.375;
|
|
165
|
+
--leading-normal: 1.5;
|
|
166
|
+
--leading-relaxed: 1.625;
|
|
167
|
+
--weight-normal: 400;
|
|
168
|
+
--weight-medium: 500;
|
|
169
|
+
--weight-semibold: 600;
|
|
170
|
+
--weight-bold: 700;
|
|
171
|
+
--tracking-tight: -0.01em;
|
|
172
|
+
--tracking-normal: 0;
|
|
173
|
+
--tracking-wide: 0.05em;
|
|
174
|
+
--tracking-wider: 0.08em;
|
|
175
|
+
--font-display: var(--font-serif);
|
|
176
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
177
|
+
--font-sans: 'Source Sans 3', ui-sans-serif, system-ui, sans-serif;
|
|
178
|
+
--font-mono: 'JetBrains Mono', ui-monospace, monospace;
|
|
179
|
+
--font-serif: 'Lora', ui-serif, Georgia, serif;
|
|
180
|
+
--font-heading: 'Bitter', ui-serif, Georgia, serif;
|
|
181
|
+
--font-heading: 'Lora', ui-serif, Georgia, serif;
|
|
182
|
+
|
|
183
|
+
/* ── Named palette aliases ──────────────────────────────────────────────
|
|
184
|
+
* All 10 swatch colors available for direct template use.
|
|
185
|
+
*/
|
|
186
|
+
--td-light-gray: #f8f6f2;
|
|
187
|
+
--td-white: #ffffff;
|
|
188
|
+
--td-beige: #f0ece4;
|
|
189
|
+
--td-taupe: #e6e0d6;
|
|
190
|
+
--td-border: #dcd5c8;
|
|
191
|
+
--td-muted: #7a6e5e;
|
|
192
|
+
--td-dark: #2c2418;
|
|
193
|
+
--td-amber: #b88f42;
|
|
194
|
+
--td-teal: #548383;
|
|
195
|
+
--td-amber-hover: #a07a30;
|
|
196
|
+
|
|
197
|
+
/* ── Rig component token bridge ─────────────────────────────────────────
|
|
198
|
+
* Overrides shared/tokens.css defaults where the Burrowtail palette needs
|
|
199
|
+
* values that can't be derived directly from --color-* semantics.
|
|
200
|
+
*/
|
|
201
|
+
|
|
202
|
+
/* Button — darker amber for hover feedback */
|
|
203
|
+
--rig-button-hover-bg: #a07a30;
|
|
204
|
+
|
|
205
|
+
/* Scrollbar — warm brown tint for light mode */
|
|
206
|
+
--rig-scrollbar-thumb: rgba(44, 36, 24, 0.12);
|
|
207
|
+
--rig-scrollbar-thumb-hover: rgba(44, 36, 24, 0.25);
|
|
208
|
+
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/* Hex — Quizbit Base Styles
|
|
2
|
+
* SNES retro arcade aesthetic.
|
|
3
|
+
* VT323 CRT headings, RPG dialog borders, scanlines, gold glow, pixel snap.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@reference 'tailwindcss';
|
|
7
|
+
@reference './tokens.css';
|
|
8
|
+
|
|
9
|
+
/* ── Base ── */
|
|
10
|
+
html {
|
|
11
|
+
font-size: 16px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
html,
|
|
15
|
+
body {
|
|
16
|
+
@apply bg-background text-foreground font-sans;
|
|
17
|
+
|
|
18
|
+
color-scheme: dark;
|
|
19
|
+
/* Intentionally no font-smoothing — sharper edges = more CRT feel */
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
body {
|
|
23
|
+
font-size: 16px;
|
|
24
|
+
font-weight: 400;
|
|
25
|
+
line-height: 1.6;
|
|
26
|
+
letter-spacing: 0.01em;
|
|
27
|
+
position: relative;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* ── Scanline overlay ── */
|
|
31
|
+
body::after {
|
|
32
|
+
content: '';
|
|
33
|
+
position: fixed;
|
|
34
|
+
inset: 0;
|
|
35
|
+
pointer-events: none;
|
|
36
|
+
z-index: 9999;
|
|
37
|
+
background: repeating-linear-gradient(
|
|
38
|
+
to bottom,
|
|
39
|
+
transparent 0px,
|
|
40
|
+
transparent 2px,
|
|
41
|
+
rgba(0, 0, 0, 0.06) 2px,
|
|
42
|
+
rgba(0, 0, 0, 0.06) 4px
|
|
43
|
+
);
|
|
44
|
+
mix-blend-mode: multiply;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ── Headings — reset margins, keep font-family flexible ──
|
|
48
|
+
* Tailwind utilities (text-xl, font-bold, etc.) override font-family
|
|
49
|
+
* and weight, so base headings only reset margin/padding.
|
|
50
|
+
* Opt-in to VT323 CRT display style via `.heading-display`. */
|
|
51
|
+
h1,
|
|
52
|
+
h2,
|
|
53
|
+
h3 {
|
|
54
|
+
margin: 0;
|
|
55
|
+
padding: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Opt-in VT323 CRT display heading — apply with class="heading-display" */
|
|
59
|
+
.heading-display {
|
|
60
|
+
font-family: var(--font-heading);
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
letter-spacing: 0.04em;
|
|
63
|
+
text-shadow:
|
|
64
|
+
0 0 10px rgba(248, 216, 72, 0.4),
|
|
65
|
+
0 0 30px rgba(248, 216, 72, 0.15),
|
|
66
|
+
2px 2px 0 rgba(0, 0, 0, 0.6);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
h1.heading-display {
|
|
70
|
+
color: var(--color-primary);
|
|
71
|
+
font-size: 2.5rem;
|
|
72
|
+
line-height: 1.2;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
h2.heading-display {
|
|
76
|
+
color: var(--color-foreground);
|
|
77
|
+
font-size: 1.75rem;
|
|
78
|
+
line-height: 1.3;
|
|
79
|
+
text-shadow:
|
|
80
|
+
0 0 8px rgba(248, 216, 72, 0.2),
|
|
81
|
+
2px 2px 0 rgba(0, 0, 0, 0.5);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
h3.heading-display {
|
|
85
|
+
color: var(--color-foreground);
|
|
86
|
+
font-size: 1.375rem;
|
|
87
|
+
line-height: 1.4;
|
|
88
|
+
letter-spacing: 0.02em;
|
|
89
|
+
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ── RPG dialog box borders — double pixel frame ── */
|
|
93
|
+
[class*='rounded-2xl'][class*='border'],
|
|
94
|
+
[class*='rounded-xl'][class*='border'],
|
|
95
|
+
details[class*='border'] {
|
|
96
|
+
border-width: 2px;
|
|
97
|
+
border-color: var(--color-border);
|
|
98
|
+
box-shadow:
|
|
99
|
+
inset 0 0 0 1px var(--color-background),
|
|
100
|
+
inset 0 0 0 3px var(--color-border),
|
|
101
|
+
0 4px 16px rgba(0, 0, 0, 0.3);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ── Blinking RPG cursor ── */
|
|
105
|
+
@keyframes rpg-blink {
|
|
106
|
+
0%,
|
|
107
|
+
100% {
|
|
108
|
+
opacity: 1;
|
|
109
|
+
}
|
|
110
|
+
50% {
|
|
111
|
+
opacity: 0;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Cursor on interactive summaries — details toggle only.
|
|
116
|
+
* Buttons/links handle their own icons via template SVGs;
|
|
117
|
+
* injecting a pseudo-element breaks flex alignment on those. */
|
|
118
|
+
summary::before {
|
|
119
|
+
content: '\25B6'; /* ▶ */
|
|
120
|
+
display: inline-block;
|
|
121
|
+
margin-right: 0.5em;
|
|
122
|
+
color: var(--color-primary);
|
|
123
|
+
font-size: 0.75em;
|
|
124
|
+
animation: rpg-blink 1s steps(1) infinite;
|
|
125
|
+
text-shadow: 0 0 6px rgba(248, 216, 72, 0.5);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* ── Step transitions — pixel-snap on elements without Tailwind transitions.
|
|
129
|
+
* Elements with class="transition" use Tailwind's timing; these
|
|
130
|
+
* provide the retro step-snap only for unstyled interactive elements. */
|
|
131
|
+
summary {
|
|
132
|
+
transition-timing-function: steps(3);
|
|
133
|
+
transition-duration: 0.1s;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
a:not([class*='transition']),
|
|
137
|
+
button:not([class*='transition']) {
|
|
138
|
+
transition-timing-function: steps(3);
|
|
139
|
+
transition-duration: 0.1s;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* ── Scrollbar — pixel style ── */
|
|
143
|
+
::-webkit-scrollbar {
|
|
144
|
+
width: 10px;
|
|
145
|
+
height: 10px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
::-webkit-scrollbar-track {
|
|
149
|
+
background: var(--color-background);
|
|
150
|
+
border-left: 2px solid var(--color-border);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
::-webkit-scrollbar-thumb {
|
|
154
|
+
background: var(--rig-scrollbar-thumb);
|
|
155
|
+
border: 2px solid var(--color-border);
|
|
156
|
+
border-radius: 0;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
::-webkit-scrollbar-thumb:hover {
|
|
160
|
+
background: var(--rig-scrollbar-thumb-hover);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* ── Focus — sharp pixel ring ── */
|
|
164
|
+
*:focus-visible {
|
|
165
|
+
outline: 2px solid var(--color-ring);
|
|
166
|
+
outline-offset: 2px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* ── Selection — gold highlight ── */
|
|
170
|
+
::selection {
|
|
171
|
+
background: color-mix(in srgb, var(--color-primary) 35%, transparent);
|
|
172
|
+
color: var(--color-foreground);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* ── Smooth scrolling ── */
|
|
176
|
+
html {
|
|
177
|
+
scroll-behavior: smooth;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* ── Reduced motion — respect user preference ── */
|
|
181
|
+
@media (prefers-reduced-motion: reduce) {
|
|
182
|
+
*,
|
|
183
|
+
*::before,
|
|
184
|
+
*::after {
|
|
185
|
+
animation-duration: 0.01ms !important;
|
|
186
|
+
animation-iteration-count: 1 !important;
|
|
187
|
+
transition-duration: 0.01ms !important;
|
|
188
|
+
scroll-behavior: auto !important;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
body::after {
|
|
192
|
+
display: none; /* Remove scanlines for reduced motion */
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* ── Firefox scrollbar ── */
|
|
197
|
+
* {
|
|
198
|
+
scrollbar-width: thin;
|
|
199
|
+
scrollbar-color: var(--rig-scrollbar-thumb) transparent;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* ── Links — gold with step hover ──
|
|
203
|
+
* Inside @layer base so Tailwind @layer utilities (text-*, bg-*) override it.
|
|
204
|
+
* NuxtLink "buttons" with explicit text-/bg- utility classes keep their colors. */
|
|
205
|
+
@layer base {
|
|
206
|
+
a {
|
|
207
|
+
color: var(--color-primary);
|
|
208
|
+
text-decoration: none;
|
|
209
|
+
transition: color 0.1s steps(2);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
a:hover {
|
|
213
|
+
color: var(--quizbit-gold-light);
|
|
214
|
+
text-shadow: 0 0 8px rgba(248, 216, 72, 0.3);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* NuxtLink rendered as <a> with a solid primary background — force dark text.
|
|
218
|
+
* Tailwind utilities on <a> lose to the bare `a` rule above without this. */
|
|
219
|
+
a[class*='bg-primary'] {
|
|
220
|
+
color: var(--color-primary-foreground);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
a[class*='bg-primary']:hover {
|
|
224
|
+
color: var(--color-primary-foreground);
|
|
225
|
+
text-shadow: none;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* ── Progress bars — pixel-stepped fill ── */
|
|
230
|
+
[role='progressbar'] > div {
|
|
231
|
+
transition-timing-function: steps(8) !important;
|
|
232
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/* Hex — Quizbit Design Tokens
|
|
2
|
+
* SNES retro pixel game palette.
|
|
3
|
+
* Deep indigo backgrounds, gold UI highlights, hot magenta accent, chunky pixel aesthetic.
|
|
4
|
+
* Inspired by Chrono Trigger / FF6 / Super Mario World menu screens.
|
|
5
|
+
*
|
|
6
|
+
* @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
|
|
7
|
+
* :root provides standalone CSS custom property access for non-Tailwind consumers.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
@theme {
|
|
11
|
+
/* Surface colors — dark indigo RPG menu */
|
|
12
|
+
--color-background: #0a0a1e;
|
|
13
|
+
--color-foreground: #e8e8f0;
|
|
14
|
+
--color-card: #161638;
|
|
15
|
+
--color-card-foreground: #e8e8f0;
|
|
16
|
+
--color-popover: #161638;
|
|
17
|
+
--color-popover-foreground: #e8e8f0;
|
|
18
|
+
|
|
19
|
+
/* Brand — SNES gold cursor / select */
|
|
20
|
+
--color-primary: #f8d848;
|
|
21
|
+
--color-primary-foreground: #0a0a1e;
|
|
22
|
+
|
|
23
|
+
/* Soft accents — muted indigo shelf */
|
|
24
|
+
--color-secondary: #282850;
|
|
25
|
+
--color-secondary-foreground: #e8e8f0;
|
|
26
|
+
--color-muted: #282850;
|
|
27
|
+
--color-muted-foreground: #a4a4c8;
|
|
28
|
+
--color-accent: #f868d8;
|
|
29
|
+
--color-accent-foreground: #0a0a1e;
|
|
30
|
+
|
|
31
|
+
/* Semantic status — classic RPG HUD colors */
|
|
32
|
+
--color-destructive: #f04848;
|
|
33
|
+
--color-destructive-foreground: #0a0a1e;
|
|
34
|
+
--color-success: #58d858;
|
|
35
|
+
--color-warning: #f89838;
|
|
36
|
+
--color-info: #38a8e8;
|
|
37
|
+
|
|
38
|
+
/* Borders and focus — pixel-border blue */
|
|
39
|
+
--color-border: #303068;
|
|
40
|
+
--color-input: #303068;
|
|
41
|
+
--color-ring: #f8d848;
|
|
42
|
+
|
|
43
|
+
/* Typography — VT323 headings, Space Grotesk body */
|
|
44
|
+
--font-sans: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
45
|
+
--font-serif: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
46
|
+
--font-mono: 'VT323', 'JetBrains Mono', ui-monospace, monospace;
|
|
47
|
+
|
|
48
|
+
/* Radius — pixel-sharp, no rounding */
|
|
49
|
+
--radius: 0px;
|
|
50
|
+
|
|
51
|
+
/* Typography scale */
|
|
52
|
+
--font-size-2xs: 0.625rem;
|
|
53
|
+
--font-size-2xs--line-height: 1.25;
|
|
54
|
+
--font-size-xs: 0.75rem;
|
|
55
|
+
--font-size-xs--line-height: 1.5;
|
|
56
|
+
--font-size-sm: 0.875rem;
|
|
57
|
+
--font-size-sm--line-height: 1.5;
|
|
58
|
+
--font-size-base: 1rem;
|
|
59
|
+
--font-size-base--line-height: 1.5;
|
|
60
|
+
--font-size-lg: 1.125rem;
|
|
61
|
+
--font-size-lg--line-height: 1.25;
|
|
62
|
+
--font-size-xl: 1.25rem;
|
|
63
|
+
--font-size-xl--line-height: 1.25;
|
|
64
|
+
|
|
65
|
+
/* Display font — CRT terminal heading */
|
|
66
|
+
--font-display: 'VT323', 'Courier New', monospace;
|
|
67
|
+
--font-heading: 'VT323', 'Courier New', monospace;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:root {
|
|
71
|
+
--background: #0a0a1e;
|
|
72
|
+
--foreground: #e8e8f0;
|
|
73
|
+
--card: #161638;
|
|
74
|
+
--card-foreground: #e8e8f0;
|
|
75
|
+
--popover: #161638;
|
|
76
|
+
--popover-foreground: #e8e8f0;
|
|
77
|
+
--primary: #f8d848;
|
|
78
|
+
--primary-foreground: #0a0a1e;
|
|
79
|
+
--secondary: #282850;
|
|
80
|
+
--secondary-foreground: #e8e8f0;
|
|
81
|
+
--muted: #282850;
|
|
82
|
+
--muted-foreground: #a4a4c8;
|
|
83
|
+
--accent: #f868d8;
|
|
84
|
+
--accent-foreground: #0a0a1e;
|
|
85
|
+
--destructive: #f04848;
|
|
86
|
+
--destructive-foreground: #0a0a1e;
|
|
87
|
+
--success: #58d858;
|
|
88
|
+
--warning: #f89838;
|
|
89
|
+
--info: #38a8e8;
|
|
90
|
+
--border: #303068;
|
|
91
|
+
--input: #303068;
|
|
92
|
+
--ring: #f8d848;
|
|
93
|
+
|
|
94
|
+
/* Typography scale shorthand aliases */
|
|
95
|
+
--text-2xs: 0.625rem;
|
|
96
|
+
--text-xs: 0.75rem;
|
|
97
|
+
--text-sm: 0.875rem;
|
|
98
|
+
--text-base: 1rem;
|
|
99
|
+
--text-lg: 1.125rem;
|
|
100
|
+
--text-xl: 1.25rem;
|
|
101
|
+
--leading-tight: 1.25;
|
|
102
|
+
--leading-snug: 1.375;
|
|
103
|
+
--leading-normal: 1.5;
|
|
104
|
+
--leading-relaxed: 1.625;
|
|
105
|
+
--weight-normal: 400;
|
|
106
|
+
--weight-medium: 500;
|
|
107
|
+
--weight-semibold: 600;
|
|
108
|
+
--weight-bold: 700;
|
|
109
|
+
--tracking-tight: -0.01em;
|
|
110
|
+
--tracking-normal: 0;
|
|
111
|
+
--tracking-wide: 0.05em;
|
|
112
|
+
--font-display: 'VT323', 'Courier New', monospace;
|
|
113
|
+
--font-heading: 'VT323', 'Courier New', monospace;
|
|
114
|
+
--font-sans: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
115
|
+
--font-serif: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
116
|
+
--font-mono: 'VT323', 'JetBrains Mono', ui-monospace, monospace;
|
|
117
|
+
|
|
118
|
+
/* ── Named palette aliases ──
|
|
119
|
+
* Direct references to the SNES swatch.
|
|
120
|
+
*/
|
|
121
|
+
--quizbit-indigo: #0a0a1e;
|
|
122
|
+
--quizbit-indigo-light: #161638;
|
|
123
|
+
--quizbit-gold: #f8d848;
|
|
124
|
+
--quizbit-gold-light: #ffe878;
|
|
125
|
+
--quizbit-pixel-white: #e8e8f0;
|
|
126
|
+
--quizbit-lavender: #a4a4c8;
|
|
127
|
+
--quizbit-magenta: #f868d8;
|
|
128
|
+
--quizbit-green: #58d858;
|
|
129
|
+
--quizbit-red: #f04848;
|
|
130
|
+
--quizbit-cyan: #38a8e8;
|
|
131
|
+
|
|
132
|
+
/* ── Rig component token bridge ── */
|
|
133
|
+
--rig-button-hover-bg: #303068;
|
|
134
|
+
--rig-scrollbar-thumb: rgba(248, 216, 72, 0.18);
|
|
135
|
+
--rig-scrollbar-thumb-hover: rgba(248, 216, 72, 0.35);
|
|
136
|
+
}
|
|
@@ -134,26 +134,26 @@
|
|
|
134
134
|
--vsc-button-bg: #0078d4;
|
|
135
135
|
--vsc-button-fg: #ffffff;
|
|
136
136
|
--vsc-button-hover-bg: #026ec1;
|
|
137
|
-
--vsc-button-border:
|
|
137
|
+
--vsc-button-border: var(--color-border);
|
|
138
138
|
--vsc-button-secondary-bg: transparent;
|
|
139
139
|
--vsc-button-secondary-fg: #cccccc;
|
|
140
140
|
--vsc-button-secondary-hover-bg: #2b2b2b;
|
|
141
141
|
|
|
142
142
|
/* Input */
|
|
143
143
|
--vsc-input-bg: #313131;
|
|
144
|
-
--vsc-input-border:
|
|
144
|
+
--vsc-input-border: var(--color-border);
|
|
145
145
|
--vsc-input-fg: #cccccc;
|
|
146
146
|
--vsc-input-placeholder: #989898;
|
|
147
147
|
|
|
148
148
|
/* Dropdown / Select */
|
|
149
149
|
--vsc-dropdown-bg: #313131;
|
|
150
|
-
--vsc-dropdown-border:
|
|
150
|
+
--vsc-dropdown-border: var(--color-border);
|
|
151
151
|
--vsc-dropdown-fg: #cccccc;
|
|
152
152
|
--vsc-dropdown-list-bg: #1f1f1f;
|
|
153
153
|
|
|
154
154
|
/* Checkbox */
|
|
155
155
|
--vsc-checkbox-bg: #313131;
|
|
156
|
-
--vsc-checkbox-border:
|
|
156
|
+
--vsc-checkbox-border: var(--color-border);
|
|
157
157
|
|
|
158
158
|
/* Badge */
|
|
159
159
|
--vsc-badge-bg: #616161;
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
|
|
213
213
|
/* Widget */
|
|
214
214
|
--vsc-widget-bg: #202020;
|
|
215
|
-
--vsc-widget-border:
|
|
215
|
+
--vsc-widget-border: var(--color-border);
|
|
216
216
|
|
|
217
217
|
/* Scrollbar */
|
|
218
218
|
--vsc-scrollbar-thumb: rgba(121, 121, 121, 0.4);
|