@ojiepermana/angular-theme 22.0.27
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/fesm2022/ojiepermana-angular-theme-layout-services.mjs +364 -0
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +32 -0
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +574 -0
- package/fesm2022/ojiepermana-angular-theme-layout.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-theme-page.mjs +510 -0
- package/fesm2022/ojiepermana-angular-theme-page.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +244 -0
- package/fesm2022/ojiepermana-angular-theme-styles.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-theme.mjs +11 -0
- package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -0
- package/layout/README.md +471 -0
- package/package.json +60 -0
- package/page/README.md +239 -0
- package/styles/README.md +28 -0
- package/styles/css/index.css +9 -0
- package/styles/css/seasonal/base/components.css +129 -0
- package/styles/css/seasonal/base/package.css +6 -0
- package/styles/css/seasonal/base/tailwind.css +144 -0
- package/styles/css/seasonal/base/theme.css +287 -0
- package/styles/css/seasonal/base/tokens.css +152 -0
- package/styles/css/seasonal/ied/package.css +4 -0
- package/styles/css/seasonal/ied/theme.css +78 -0
- package/styles/css/seasonal/imlek/components.css +87 -0
- package/styles/css/seasonal/imlek/package.css +6 -0
- package/styles/css/seasonal/imlek/tailwind.css +144 -0
- package/styles/css/seasonal/imlek/theme.css +95 -0
- package/styles/css/seasonal/imlek/tokens.css +152 -0
- package/styles/css/seasonal/index.css +6 -0
- package/styles/css/seasonal/natal/package.css +4 -0
- package/styles/css/seasonal/natal/theme.css +78 -0
- package/styles/css/seasonal/new-year/package.css +4 -0
- package/styles/css/seasonal/new-year/theme.css +78 -0
- package/styles/css/seasonal/ramadhan/package.css +4 -0
- package/styles/css/seasonal/ramadhan/theme.css +78 -0
- package/types/ojiepermana-angular-theme-layout-services.d.ts +120 -0
- package/types/ojiepermana-angular-theme-layout-types.d.ts +33 -0
- package/types/ojiepermana-angular-theme-layout.d.ts +117 -0
- package/types/ojiepermana-angular-theme-page.d.ts +168 -0
- package/types/ojiepermana-angular-theme-styles.d.ts +89 -0
- package/types/ojiepermana-angular-theme.d.ts +2 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core theme layers and shared tokens.
|
|
3
|
+
*/
|
|
4
|
+
@layer reset, base, mat-mdc, tokens, components, utilities;
|
|
5
|
+
|
|
6
|
+
@layer tokens {
|
|
7
|
+
:root {
|
|
8
|
+
--radius-base: var(--theme-radius-base, 0.625rem);
|
|
9
|
+
--radius-none: 0px;
|
|
10
|
+
--rounded-base: var(--radius-none);
|
|
11
|
+
--scrollbar-size: 0.5rem;
|
|
12
|
+
--scrollbar-radius: 9999px;
|
|
13
|
+
--scrollbar-track: var(--primary) / var(--opacity-10);
|
|
14
|
+
--scrollbar-thumb: var(--primary);
|
|
15
|
+
--scrollbar-thumb-hover: var(--primary);
|
|
16
|
+
--spacing-base: 0.25rem;
|
|
17
|
+
|
|
18
|
+
--font-size-base: 1rem;
|
|
19
|
+
--line-height-base: 1.5;
|
|
20
|
+
|
|
21
|
+
--border-width-base: 1px;
|
|
22
|
+
|
|
23
|
+
--shadow-base: 0 1px 2px hsl(240 10% 3.9% / 0.08);
|
|
24
|
+
|
|
25
|
+
--duration-base: 200ms;
|
|
26
|
+
--ease-base: cubic-bezier(0.4, 0, 0.2, 1);
|
|
27
|
+
|
|
28
|
+
--control-height-base: 2.25rem;
|
|
29
|
+
|
|
30
|
+
--container-base: 80rem;
|
|
31
|
+
|
|
32
|
+
--z-base: 1;
|
|
33
|
+
|
|
34
|
+
--opacity-10: 0.1;
|
|
35
|
+
--opacity-20: 0.2;
|
|
36
|
+
--opacity-30: 0.3;
|
|
37
|
+
--opacity-40: 0.4;
|
|
38
|
+
--opacity-50: 0.5;
|
|
39
|
+
--opacity-60: 0.6;
|
|
40
|
+
--opacity-70: 0.7;
|
|
41
|
+
--opacity-80: 0.8;
|
|
42
|
+
--opacity-90: 0.9;
|
|
43
|
+
|
|
44
|
+
--radius-xs: calc(var(--radius-base) * 0.4);
|
|
45
|
+
--radius-sm: calc(var(--radius-base) * 0.6);
|
|
46
|
+
--radius-md: calc(var(--radius-base) * 0.8);
|
|
47
|
+
--radius-lg: var(--radius-base);
|
|
48
|
+
--radius-xl: calc(var(--radius-base) * 1.4);
|
|
49
|
+
--radius-2xl: calc(var(--radius-base) * 1.8);
|
|
50
|
+
--radius-3xl: calc(var(--radius-base) * 2.2);
|
|
51
|
+
--radius-4xl: calc(var(--radius-base) * 2.6);
|
|
52
|
+
--radius: var(--radius-base);
|
|
53
|
+
|
|
54
|
+
--spacing-xs: calc(var(--spacing-base) * 1);
|
|
55
|
+
--spacing-sm: calc(var(--spacing-base) * 2);
|
|
56
|
+
--spacing-md: calc(var(--spacing-base) * 4);
|
|
57
|
+
--spacing-lg: calc(var(--spacing-base) * 6);
|
|
58
|
+
--spacing-xl: calc(var(--spacing-base) * 8);
|
|
59
|
+
--spacing-2xl: calc(var(--spacing-base) * 12);
|
|
60
|
+
--spacing-3xl: calc(var(--spacing-base) * 16);
|
|
61
|
+
--spacing-4xl: calc(var(--spacing-base) * 24);
|
|
62
|
+
|
|
63
|
+
--font-size-xs: calc(var(--font-size-base) * 0.75);
|
|
64
|
+
--font-size-sm: calc(var(--font-size-base) * 0.875);
|
|
65
|
+
--font-size-md: var(--font-size-base);
|
|
66
|
+
--font-size-lg: calc(var(--font-size-base) * 1.125);
|
|
67
|
+
--font-size-xl: calc(var(--font-size-base) * 1.25);
|
|
68
|
+
--font-size-2xl: calc(var(--font-size-base) * 1.5);
|
|
69
|
+
--font-size-3xl: calc(var(--font-size-base) * 1.875);
|
|
70
|
+
--font-size-4xl: calc(var(--font-size-base) * 2.25);
|
|
71
|
+
|
|
72
|
+
--line-height-tight: 1.25;
|
|
73
|
+
--line-height-snug: 1.375;
|
|
74
|
+
--line-height-normal: var(--line-height-base);
|
|
75
|
+
--line-height-relaxed: 1.625;
|
|
76
|
+
--line-height-loose: 2;
|
|
77
|
+
|
|
78
|
+
--border-width-thin: var(--border-width-base);
|
|
79
|
+
--border-width-medium: calc(var(--border-width-base) * 2);
|
|
80
|
+
--border-width-thick: calc(var(--border-width-base) * 3);
|
|
81
|
+
|
|
82
|
+
/* Concrete values live in the *-base primitives. The --shadow-* aliases are
|
|
83
|
+
* re-emitted by the Tailwind @theme mapping as var(--theme-shadow-*) in the
|
|
84
|
+
* later `theme` layer, so pointing either alias back at --shadow-* would
|
|
85
|
+
* create a var() cycle that invalidates the whole chain. */
|
|
86
|
+
--shadow-xs-base: 0 1px 1px hsl(240 10% 3.9% / 0.05);
|
|
87
|
+
--shadow-md-base: 0 4px 6px hsl(240 10% 3.9% / 0.08);
|
|
88
|
+
--shadow-lg-base: 0 10px 15px hsl(240 10% 3.9% / 0.1);
|
|
89
|
+
--shadow-xl-base: 0 20px 25px hsl(240 10% 3.9% / 0.12);
|
|
90
|
+
--shadow-xs: var(--shadow-xs-base);
|
|
91
|
+
--shadow-sm: var(--shadow-base);
|
|
92
|
+
--shadow-md: var(--shadow-md-base);
|
|
93
|
+
--shadow-lg: var(--shadow-lg-base);
|
|
94
|
+
--shadow-xl: var(--shadow-xl-base);
|
|
95
|
+
|
|
96
|
+
--duration-fast: calc(var(--duration-base) * 0.5);
|
|
97
|
+
--duration-normal: var(--duration-base);
|
|
98
|
+
--duration-slow: calc(var(--duration-base) * 1.5);
|
|
99
|
+
--duration-slower: calc(var(--duration-base) * 2);
|
|
100
|
+
|
|
101
|
+
--ease-standard: var(--ease-base);
|
|
102
|
+
--ease-enter: cubic-bezier(0, 0, 0.2, 1);
|
|
103
|
+
--ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
104
|
+
|
|
105
|
+
--control-height-xs: 1.75rem;
|
|
106
|
+
--control-height-sm: 2rem;
|
|
107
|
+
--control-height-md: var(--control-height-base);
|
|
108
|
+
--control-height-lg: 3rem;
|
|
109
|
+
--control-height-xl: 3.5rem;
|
|
110
|
+
|
|
111
|
+
--container-sm: 40rem;
|
|
112
|
+
--container-md: 48rem;
|
|
113
|
+
--container-lg: 64rem;
|
|
114
|
+
--container-xl: var(--container-base);
|
|
115
|
+
--container-2xl: 96rem;
|
|
116
|
+
|
|
117
|
+
--z-dropdown: calc(var(--z-base) * 100);
|
|
118
|
+
--z-sticky: calc(var(--z-base) * 200);
|
|
119
|
+
--z-fixed: calc(var(--z-base) * 300);
|
|
120
|
+
--z-overlay: calc(var(--z-base) * 400);
|
|
121
|
+
--z-modal: calc(var(--z-base) * 500);
|
|
122
|
+
--z-popover: calc(var(--z-base) * 600);
|
|
123
|
+
--z-tooltip: calc(var(--z-base) * 700);
|
|
124
|
+
--z-toast: calc(var(--z-base) * 800);
|
|
125
|
+
|
|
126
|
+
--timeline-indicator-red: 0 72% 51%;
|
|
127
|
+
--timeline-indicator-red-foreground: 0 0% 100%;
|
|
128
|
+
--timeline-indicator-orange: 24 95% 53%;
|
|
129
|
+
--timeline-indicator-orange-foreground: 0 0% 100%;
|
|
130
|
+
--timeline-indicator-amber: 38 92% 50%;
|
|
131
|
+
--timeline-indicator-amber-foreground: 0 0% 100%;
|
|
132
|
+
--timeline-indicator-yellow: 48 96% 53%;
|
|
133
|
+
--timeline-indicator-yellow-foreground: 0 0% 10%;
|
|
134
|
+
--timeline-indicator-lime: 84 81% 44%;
|
|
135
|
+
--timeline-indicator-lime-foreground: 0 0% 10%;
|
|
136
|
+
--timeline-indicator-green: 142 71% 45%;
|
|
137
|
+
--timeline-indicator-green-foreground: 0 0% 100%;
|
|
138
|
+
--timeline-indicator-emerald: 160 84% 39%;
|
|
139
|
+
--timeline-indicator-emerald-foreground: 0 0% 100%;
|
|
140
|
+
--timeline-indicator-teal: 173 80% 40%;
|
|
141
|
+
--timeline-indicator-teal-foreground: 0 0% 100%;
|
|
142
|
+
--timeline-indicator-cyan: 191 91% 36%;
|
|
143
|
+
--timeline-indicator-cyan-foreground: 0 0% 100%;
|
|
144
|
+
--timeline-indicator-sky: 199 89% 48%;
|
|
145
|
+
--timeline-indicator-sky-foreground: 0 0% 100%;
|
|
146
|
+
--timeline-indicator-blue: 221 83% 53%;
|
|
147
|
+
--timeline-indicator-blue-foreground: 0 0% 100%;
|
|
148
|
+
--timeline-indicator-indigo: 239 84% 67%;
|
|
149
|
+
--timeline-indicator-indigo-foreground: 0 0% 100%;
|
|
150
|
+
--timeline-indicator-violet: 258 90% 66%;
|
|
151
|
+
--timeline-indicator-violet-foreground: 0 0% 100%;
|
|
152
|
+
--timeline-indicator-purple: 271 91% 65%;
|
|
153
|
+
--timeline-indicator-purple-foreground: 0 0% 100%;
|
|
154
|
+
--timeline-indicator-fuchsia: 292 84% 61%;
|
|
155
|
+
--timeline-indicator-fuchsia-foreground: 0 0% 100%;
|
|
156
|
+
--timeline-indicator-pink: 330 81% 60%;
|
|
157
|
+
--timeline-indicator-pink-foreground: 0 0% 100%;
|
|
158
|
+
--timeline-indicator-rose: 349 89% 60%;
|
|
159
|
+
--timeline-indicator-rose-foreground: 0 0% 100%;
|
|
160
|
+
|
|
161
|
+
--layout-grid-line: var(--border);
|
|
162
|
+
--layout-grid-line-opacity: 0.18;
|
|
163
|
+
--layout-grid-dot-opacity: 0.22;
|
|
164
|
+
|
|
165
|
+
--overlay-backdrop: 240 10% 3.9% / 0.5;
|
|
166
|
+
--overlay-backdrop-strong: 240 10% 3.9% / 0.4;
|
|
167
|
+
|
|
168
|
+
--editor-highlight: 48 96% 80%;
|
|
169
|
+
|
|
170
|
+
--font-size-2xs: 0.625rem;
|
|
171
|
+
--line-height-2xs: 1rem;
|
|
172
|
+
--font-size-2xs-plus: 0.6875rem;
|
|
173
|
+
--line-height-2xs-plus: 1rem;
|
|
174
|
+
|
|
175
|
+
/* Deprecated: use the new primitive token names instead.
|
|
176
|
+
* Must reference the *-base primitives, never --shadow-* — the Tailwind
|
|
177
|
+
* @theme mapping re-emits --shadow-*: var(--theme-shadow-*), so an alias
|
|
178
|
+
* back to --shadow-* forms a var() cycle. */
|
|
179
|
+
--theme-shadow-xs: var(--shadow-xs-base);
|
|
180
|
+
--theme-radius-xs: var(--radius-xs);
|
|
181
|
+
--theme-radius-sm: var(--radius-sm);
|
|
182
|
+
--theme-radius-md: var(--radius-base);
|
|
183
|
+
--theme-radius-lg: var(--radius-xl);
|
|
184
|
+
--border-width: var(--border-width-base);
|
|
185
|
+
--theme-shadow-sm: var(--shadow-base);
|
|
186
|
+
--theme-shadow: var(--shadow-base);
|
|
187
|
+
--theme-shadow-md: var(--shadow-md-base);
|
|
188
|
+
--theme-shadow-lg: var(--shadow-lg-base);
|
|
189
|
+
--theme-shadow-xl: var(--shadow-xl-base);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
:root,
|
|
193
|
+
[data-mode='light'] {
|
|
194
|
+
color-scheme: light;
|
|
195
|
+
|
|
196
|
+
--background: 0 0% 100%;
|
|
197
|
+
--foreground: 240 10% 3.9%;
|
|
198
|
+
|
|
199
|
+
--card: 0 0% 100%;
|
|
200
|
+
--card-foreground: 240 10% 3.9%;
|
|
201
|
+
|
|
202
|
+
--popover: 0 0% 100%;
|
|
203
|
+
--popover-foreground: 240 10% 3.9%;
|
|
204
|
+
|
|
205
|
+
--muted: 240 4.8% 95.9%;
|
|
206
|
+
--muted-foreground: 240 3.8% 46.1%;
|
|
207
|
+
|
|
208
|
+
--border: 240 5.9% 90%;
|
|
209
|
+
--input: 240 5.9% 90%;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
[data-mode='dark'] {
|
|
213
|
+
color-scheme: dark;
|
|
214
|
+
|
|
215
|
+
--background: 240 10% 3.9%;
|
|
216
|
+
--foreground: 0 0% 98%;
|
|
217
|
+
|
|
218
|
+
--card: 240 10% 3.9%;
|
|
219
|
+
--card-foreground: 0 0% 98%;
|
|
220
|
+
|
|
221
|
+
--popover: 240 10% 3.9%;
|
|
222
|
+
--popover-foreground: 0 0% 98%;
|
|
223
|
+
|
|
224
|
+
--muted: 240 3.7% 15.9%;
|
|
225
|
+
--muted-foreground: 240 5% 64.9%;
|
|
226
|
+
|
|
227
|
+
--border: 240 3.7% 15.9%;
|
|
228
|
+
--input: 240 3.7% 15.9%;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@layer tokens {
|
|
233
|
+
:root {
|
|
234
|
+
--destructive: 0 72% 51%;
|
|
235
|
+
--destructive-foreground: 0 0% 100%;
|
|
236
|
+
|
|
237
|
+
--success: 142 71% 45%;
|
|
238
|
+
--success-foreground: 0 0% 100%;
|
|
239
|
+
|
|
240
|
+
--warning: 38 92% 50%;
|
|
241
|
+
--warning-foreground: 0 0% 10%;
|
|
242
|
+
|
|
243
|
+
--info: 217 91% 60%;
|
|
244
|
+
--info-foreground: 0 0% 100%;
|
|
245
|
+
|
|
246
|
+
--chart-1: var(--theme-chart-1, var(--primary));
|
|
247
|
+
--chart-2: var(--theme-chart-2, var(--accent-foreground));
|
|
248
|
+
--chart-3: var(--theme-chart-3, 271 81% 56%);
|
|
249
|
+
--chart-4: var(--theme-chart-4, 38 92% 50%);
|
|
250
|
+
--chart-5: var(--theme-chart-5, 355 78% 56%);
|
|
251
|
+
|
|
252
|
+
--sidebar: var(--card);
|
|
253
|
+
--sidebar-background: var(--sidebar);
|
|
254
|
+
--sidebar-foreground: var(--foreground);
|
|
255
|
+
--sidebar-primary: var(--primary);
|
|
256
|
+
--sidebar-primary-foreground: var(--primary-foreground);
|
|
257
|
+
--sidebar-accent: var(--accent);
|
|
258
|
+
--sidebar-accent-foreground: var(--accent-foreground);
|
|
259
|
+
--sidebar-border: var(--border);
|
|
260
|
+
--sidebar-ring: var(--ring);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
[data-mode='dark'] {
|
|
264
|
+
--destructive: 0 62% 45%;
|
|
265
|
+
--destructive-foreground: 0 0% 95%;
|
|
266
|
+
|
|
267
|
+
--success: 142 60% 40%;
|
|
268
|
+
--success-foreground: 0 0% 95%;
|
|
269
|
+
|
|
270
|
+
--warning: 38 80% 45%;
|
|
271
|
+
--warning-foreground: 0 0% 10%;
|
|
272
|
+
|
|
273
|
+
--info: 217 80% 55%;
|
|
274
|
+
--info-foreground: 0 0% 95%;
|
|
275
|
+
|
|
276
|
+
--overlay-backdrop: 0 0% 0% / 0.64;
|
|
277
|
+
--overlay-backdrop-strong: 0 0% 0% / 0.5;
|
|
278
|
+
|
|
279
|
+
--editor-highlight: 48 70% 30%;
|
|
280
|
+
|
|
281
|
+
--chart-1: var(--theme-chart-1, var(--primary));
|
|
282
|
+
--chart-2: var(--theme-chart-2, var(--accent-foreground));
|
|
283
|
+
--chart-3: var(--theme-chart-3, 271 85% 70%);
|
|
284
|
+
--chart-4: var(--theme-chart-4, 38 96% 62%);
|
|
285
|
+
--chart-5: var(--theme-chart-5, 355 82% 68%);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default theme color, style, and layout tokens.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
:root {
|
|
6
|
+
--highlight: 0 0% 64%;
|
|
7
|
+
--highlight-border-alpha: 0.7;
|
|
8
|
+
--highlight-background-alpha: 0.7;
|
|
9
|
+
|
|
10
|
+
--background: 210 38% 98%;
|
|
11
|
+
--surface: 0 0% 89.8%;
|
|
12
|
+
--surface-foreground: 211 56% 12%;
|
|
13
|
+
--foreground: 211 56% 12%;
|
|
14
|
+
|
|
15
|
+
--card: 0 0% 100%;
|
|
16
|
+
--card-foreground: 211 56% 12%;
|
|
17
|
+
|
|
18
|
+
--popover: 0 0% 100%;
|
|
19
|
+
--popover-foreground: 211 56% 12%;
|
|
20
|
+
|
|
21
|
+
--muted: 211 34% 94%;
|
|
22
|
+
--muted-foreground: 211 24% 38%;
|
|
23
|
+
|
|
24
|
+
--border: 211 28% 82%;
|
|
25
|
+
--input: 211 28% 82%;
|
|
26
|
+
|
|
27
|
+
--primary: 211 95% 29%;
|
|
28
|
+
--primary-foreground: 0 0% 100%;
|
|
29
|
+
--accent: 211 95% 96%;
|
|
30
|
+
--accent-foreground: 211 95% 22%;
|
|
31
|
+
--secondary: 211 24% 95%;
|
|
32
|
+
--secondary-foreground: 211 75% 24%;
|
|
33
|
+
--ring: 211 95% 29%;
|
|
34
|
+
|
|
35
|
+
--radius-base: 0.625rem;
|
|
36
|
+
--radius: var(--radius-base);
|
|
37
|
+
|
|
38
|
+
/* Deprecated: use the --radius-* tokens directly. */
|
|
39
|
+
--theme-radius-base: var(--radius-base);
|
|
40
|
+
--theme-radius-xs: var(--radius-xs);
|
|
41
|
+
--theme-radius-sm: var(--radius-sm);
|
|
42
|
+
--theme-radius-md: var(--radius-base);
|
|
43
|
+
--theme-radius-lg: var(--radius-base);
|
|
44
|
+
|
|
45
|
+
--border-width-base: 1px;
|
|
46
|
+
--border-width: var(--border-width-base);
|
|
47
|
+
|
|
48
|
+
/* Concrete values live in the *-base primitives; --shadow-* and
|
|
49
|
+
* --theme-shadow-* are aliases. Never alias --theme-shadow-* back to
|
|
50
|
+
* --shadow-* — the Tailwind @theme mapping re-emits
|
|
51
|
+
* --shadow-*: var(--theme-shadow-*) in the later `theme` layer, which
|
|
52
|
+
* turns that into a var() cycle and invalidates both tokens. */
|
|
53
|
+
--shadow-base: 0 1px 0 0 hsl(211 95% 12% / 0.08);
|
|
54
|
+
--shadow-md-base: 0 8px 18px -14px hsl(211 95% 12% / 0.24);
|
|
55
|
+
--shadow-lg-base: 0 18px 36px -28px hsl(211 95% 12% / 0.34);
|
|
56
|
+
--shadow-xl-base: 0 24px 48px -36px hsl(211 95% 12% / 0.4);
|
|
57
|
+
--shadow-sm: var(--shadow-base);
|
|
58
|
+
--shadow-md: var(--shadow-md-base);
|
|
59
|
+
--shadow-lg: var(--shadow-lg-base);
|
|
60
|
+
--shadow-xl: var(--shadow-xl-base);
|
|
61
|
+
|
|
62
|
+
--theme-shadow-sm: var(--shadow-base);
|
|
63
|
+
--theme-shadow: 0 2px 4px -2px hsl(211 95% 12% / 0.14);
|
|
64
|
+
--theme-shadow-md: var(--shadow-md-base);
|
|
65
|
+
--theme-shadow-lg: var(--shadow-lg-base);
|
|
66
|
+
--theme-shadow-xl: var(--shadow-xl-base);
|
|
67
|
+
--shadow: var(--theme-shadow);
|
|
68
|
+
|
|
69
|
+
--theme-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
70
|
+
--theme-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
71
|
+
|
|
72
|
+
--font-sans: var(--theme-font-sans);
|
|
73
|
+
--font-mono: var(--theme-font-mono);
|
|
74
|
+
--font-weight-bold: 600;
|
|
75
|
+
--theme-text-scale: 1;
|
|
76
|
+
--font-size-base: 1rem;
|
|
77
|
+
--line-height-base: 1.5;
|
|
78
|
+
--control-height-base: 2.25rem;
|
|
79
|
+
--nav-font-family: var(--font-sans);
|
|
80
|
+
--nav-text-size: calc(var(--text-base) - 0.125rem);
|
|
81
|
+
--nav-text-line-height: var(--text-base--line-height);
|
|
82
|
+
--nav-heading-font-family: var(--font-sans);
|
|
83
|
+
--nav-heading-size: var(--text-sm);
|
|
84
|
+
--nav-heading-line-height: var(--text-sm--line-height);
|
|
85
|
+
--nav-heading-weight: 600;
|
|
86
|
+
--nav-heading-letter-spacing: 0.12em;
|
|
87
|
+
--nav-badge-font-family: var(--font-sans);
|
|
88
|
+
--nav-badge-size: var(--text-sm);
|
|
89
|
+
--nav-badge-line-height: var(--text-sm--line-height);
|
|
90
|
+
--nav-badge-weight: 500;
|
|
91
|
+
--letter-spacing: 0;
|
|
92
|
+
--spacing-base: 0.25rem;
|
|
93
|
+
--space-unit: var(--spacing-base);
|
|
94
|
+
--layout-topbar-height: 3.25rem;
|
|
95
|
+
|
|
96
|
+
--layout-shell-padding: clamp(1rem, 2vw, 2rem);
|
|
97
|
+
--layout-frame-radius: var(--radius-lg);
|
|
98
|
+
--layout-frame-shadow: var(--shadow-sm);
|
|
99
|
+
--layout-sidebar-width: 17.5rem;
|
|
100
|
+
--container-base: 80rem;
|
|
101
|
+
--layout-main-max-width: var(--container-base);
|
|
102
|
+
--layout-vertical-shell-max-width: calc(var(--layout-sidebar-width) + var(--layout-main-max-width));
|
|
103
|
+
--layout-empty-max-width: 24rem;
|
|
104
|
+
--layout-empty-padding: clamp(1.5rem, 4vw, 3rem);
|
|
105
|
+
--layout-topbar-inline: 0.875rem;
|
|
106
|
+
--layout-logo-mark-size: 2rem;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
:root[data-mode='dark'] {
|
|
110
|
+
--highlight: 0 0% 64%;
|
|
111
|
+
--highlight-border-alpha: 0.45;
|
|
112
|
+
--highlight-background-alpha: 0.55;
|
|
113
|
+
|
|
114
|
+
--background: 211 38% 9%;
|
|
115
|
+
--surface: 211 22% 18%;
|
|
116
|
+
--surface-foreground: 210 40% 96%;
|
|
117
|
+
--foreground: 210 40% 96%;
|
|
118
|
+
|
|
119
|
+
--card: 211 34% 11%;
|
|
120
|
+
--card-foreground: 210 40% 96%;
|
|
121
|
+
|
|
122
|
+
--popover: 211 34% 11%;
|
|
123
|
+
--popover-foreground: 210 40% 96%;
|
|
124
|
+
|
|
125
|
+
--muted: 211 22% 18%;
|
|
126
|
+
--muted-foreground: 211 18% 70%;
|
|
127
|
+
|
|
128
|
+
--border: 211 24% 24%;
|
|
129
|
+
--input: 211 24% 24%;
|
|
130
|
+
|
|
131
|
+
--accent: 211 58% 18%;
|
|
132
|
+
--accent-foreground: 211 90% 84%;
|
|
133
|
+
--secondary: 211 24% 18%;
|
|
134
|
+
--secondary-foreground: 211 82% 84%;
|
|
135
|
+
|
|
136
|
+
--shadow-base: 0 1px 0 0 hsl(210 40% 96% / 0.08);
|
|
137
|
+
--shadow-sm: var(--shadow-base);
|
|
138
|
+
--theme-shadow-sm: var(--shadow-base);
|
|
139
|
+
|
|
140
|
+
--layout-frame-shadow: 0 0 0 1px hsl(var(--border));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@layer utilities {
|
|
145
|
+
.border-highlight {
|
|
146
|
+
border-color: hsl(var(--highlight, var(--border)) / var(--highlight-border-alpha, 0.7));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.bg-highlight {
|
|
150
|
+
background-color: hsl(var(--highlight, var(--border)) / var(--highlight-background-alpha, 0.7));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token overrides for the Ied season.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-season='ied'][data-mode='light'] {
|
|
6
|
+
color-scheme: light;
|
|
7
|
+
|
|
8
|
+
--highlight: 188 84% 38%;
|
|
9
|
+
|
|
10
|
+
--background: 186 38% 98%;
|
|
11
|
+
--surface: 45 78% 96%;
|
|
12
|
+
--surface-foreground: 188 46% 16%;
|
|
13
|
+
--foreground: 188 46% 16%;
|
|
14
|
+
|
|
15
|
+
--card: 0 0% 100%;
|
|
16
|
+
--card-foreground: 188 46% 16%;
|
|
17
|
+
|
|
18
|
+
--popover: 0 0% 100%;
|
|
19
|
+
--popover-foreground: 188 46% 16%;
|
|
20
|
+
|
|
21
|
+
--muted: 186 22% 94%;
|
|
22
|
+
--muted-foreground: 188 16% 34%;
|
|
23
|
+
|
|
24
|
+
--border: 186 20% 85%;
|
|
25
|
+
--input: 186 20% 85%;
|
|
26
|
+
|
|
27
|
+
--primary: 188 84% 38%;
|
|
28
|
+
--primary-foreground: 0 0% 100%;
|
|
29
|
+
--accent: 45 92% 94%;
|
|
30
|
+
--accent-foreground: 188 52% 22%;
|
|
31
|
+
--secondary: 184 24% 93%;
|
|
32
|
+
--secondary-foreground: 188 48% 24%;
|
|
33
|
+
--ring: 45 88% 54%;
|
|
34
|
+
|
|
35
|
+
--chart-1: 188 84% 38%;
|
|
36
|
+
--chart-2: 45 88% 54%;
|
|
37
|
+
--chart-3: 149 48% 40%;
|
|
38
|
+
--chart-4: 223 74% 58%;
|
|
39
|
+
--chart-5: 25 92% 60%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
html[theme-season='ied'][data-mode='dark'] {
|
|
43
|
+
color-scheme: dark;
|
|
44
|
+
|
|
45
|
+
--highlight: 45 92% 68%;
|
|
46
|
+
|
|
47
|
+
--background: 189 34% 11%;
|
|
48
|
+
--surface: 189 24% 16%;
|
|
49
|
+
--surface-foreground: 46 72% 95%;
|
|
50
|
+
--foreground: 46 72% 95%;
|
|
51
|
+
|
|
52
|
+
--card: 189 24% 14%;
|
|
53
|
+
--card-foreground: 46 72% 95%;
|
|
54
|
+
|
|
55
|
+
--popover: 189 24% 14%;
|
|
56
|
+
--popover-foreground: 46 72% 95%;
|
|
57
|
+
|
|
58
|
+
--muted: 189 18% 19%;
|
|
59
|
+
--muted-foreground: 46 18% 78%;
|
|
60
|
+
|
|
61
|
+
--border: 189 16% 25%;
|
|
62
|
+
--input: 189 16% 25%;
|
|
63
|
+
|
|
64
|
+
--primary: 45 92% 68%;
|
|
65
|
+
--primary-foreground: 189 46% 16%;
|
|
66
|
+
--accent: 188 24% 21%;
|
|
67
|
+
--accent-foreground: 46 82% 90%;
|
|
68
|
+
--secondary: 189 18% 19%;
|
|
69
|
+
--secondary-foreground: 46 62% 88%;
|
|
70
|
+
--ring: 45 92% 68%;
|
|
71
|
+
|
|
72
|
+
--chart-1: 45 92% 68%;
|
|
73
|
+
--chart-2: 188 76% 58%;
|
|
74
|
+
--chart-3: 149 54% 54%;
|
|
75
|
+
--chart-4: 223 82% 70%;
|
|
76
|
+
--chart-5: 24 96% 68%;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global component-facing styles that should react to the active theme.
|
|
3
|
+
*/
|
|
4
|
+
@layer base {
|
|
5
|
+
html[theme-season='imlek'] * {
|
|
6
|
+
border-color: hsl(var(--border));
|
|
7
|
+
outline-color: hsl(var(--ring) / var(--opacity-50));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
html[theme-season='imlek'],
|
|
11
|
+
html[theme-season='imlek'] body {
|
|
12
|
+
min-height: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
html[theme-season='imlek'] {
|
|
16
|
+
background: hsl(var(--background));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
html[theme-season='imlek'] body {
|
|
20
|
+
background: hsl(var(--background));
|
|
21
|
+
color: hsl(var(--foreground));
|
|
22
|
+
font-family: var(--font-sans);
|
|
23
|
+
font-size: var(--text-base);
|
|
24
|
+
line-height: var(--text-base--line-height);
|
|
25
|
+
letter-spacing: var(--letter-spacing);
|
|
26
|
+
transition:
|
|
27
|
+
background-color var(--duration-normal) var(--ease-standard),
|
|
28
|
+
color var(--duration-normal) var(--ease-standard),
|
|
29
|
+
border-color var(--duration-normal) var(--ease-standard),
|
|
30
|
+
box-shadow var(--duration-normal) var(--ease-standard),
|
|
31
|
+
outline-color var(--duration-normal) var(--ease-standard);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
html[theme-season='imlek'] button,
|
|
35
|
+
html[theme-season='imlek'] input,
|
|
36
|
+
html[theme-season='imlek'] select,
|
|
37
|
+
html[theme-season='imlek'] textarea {
|
|
38
|
+
font: inherit;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
html[theme-season='imlek'] ::selection {
|
|
42
|
+
background: hsl(var(--primary) / var(--opacity-24));
|
|
43
|
+
color: hsl(var(--foreground));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@layer components {
|
|
48
|
+
html[theme-season='imlek'] .nav-text {
|
|
49
|
+
font-family: var(--nav-font-family, var(--font-sans));
|
|
50
|
+
font-size: var(--nav-text-size, var(--text-base));
|
|
51
|
+
line-height: var(--nav-text-line-height, var(--text-base--line-height));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
html[theme-season='imlek'] .nav-hover-surface {
|
|
55
|
+
@apply relative isolate hover:text-accent-foreground;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
html[theme-season='imlek'] .nav-hover-surface::before {
|
|
59
|
+
content: '';
|
|
60
|
+
border-radius: inherit;
|
|
61
|
+
@apply pointer-events-none absolute inset-y-0 left-2 right-2 z-0 bg-transparent transition-colors;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
html[theme-season='imlek'] .nav-hover-surface:hover::before {
|
|
65
|
+
@apply bg-accent;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
html[theme-season='imlek'] .nav-hover-surface > * {
|
|
69
|
+
@apply relative z-10;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
html[theme-season='imlek'] .nav-heading {
|
|
73
|
+
font-family: var(--nav-heading-font-family, var(--nav-font-family, var(--font-sans)));
|
|
74
|
+
font-size: var(--nav-heading-size, var(--text-sm));
|
|
75
|
+
line-height: var(--nav-heading-line-height, var(--text-sm--line-height));
|
|
76
|
+
font-weight: var(--nav-heading-weight, 600);
|
|
77
|
+
letter-spacing: var(--nav-heading-letter-spacing, 0.12em);
|
|
78
|
+
text-transform: uppercase;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
html[theme-season='imlek'] .nav-badge {
|
|
82
|
+
font-family: var(--nav-badge-font-family, var(--nav-font-family, var(--font-sans)));
|
|
83
|
+
font-size: var(--nav-badge-size, var(--text-sm));
|
|
84
|
+
line-height: var(--nav-badge-line-height, var(--text-sm--line-height));
|
|
85
|
+
font-weight: var(--nav-badge-weight, 500);
|
|
86
|
+
}
|
|
87
|
+
}
|