@tailor-platform/app-shell 1.4.1 → 1.6.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/dist/app-shell.css +1 -1
- package/dist/app-shell.d.ts +371 -33
- package/dist/app-shell.js +4766 -3846
- package/dist/theme.css +42 -78
- package/dist/theme.shims.css +7 -0
- package/dist/themes/_template.css +116 -0
- package/dist/themes/bloom.css +159 -0
- package/dist/themes/cream.css +159 -0
- package/dist/themes/default.css +162 -0
- package/package.json +5 -3
- package/skills/app-shell-patterns/references/fundamental/components.md +21 -0
package/dist/theme.css
CHANGED
|
@@ -1,78 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
--chart-3: rgba(22, 78, 99, 1);
|
|
26
|
-
--chart-4: rgba(251, 191, 36, 1);
|
|
27
|
-
--chart-5: rgba(245, 158, 11, 1);
|
|
28
|
-
--radius: 0.625rem;
|
|
29
|
-
--sidebar: rgba(250, 250, 250, 1);
|
|
30
|
-
--sidebar-foreground: rgba(10, 10, 10, 1);
|
|
31
|
-
--sidebar-primary: rgba(23, 23, 23, 1);
|
|
32
|
-
--sidebar-primary-foreground: rgba(250, 250, 250, 1);
|
|
33
|
-
--sidebar-accent: rgba(245, 245, 245, 1);
|
|
34
|
-
--sidebar-accent-foreground: rgba(23, 23, 23, 1);
|
|
35
|
-
--sidebar-border: rgba(229, 229, 229, 1);
|
|
36
|
-
--sidebar-ring: rgba(163, 163, 163, 1);
|
|
37
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Theme system
|
|
3
|
+
*
|
|
4
|
+
* `@tailor-platform/app-shell/styles` includes the default palette.
|
|
5
|
+
* Import exactly one optional override from `./themes/*.css` after styles
|
|
6
|
+
* (for example `@tailor-platform/app-shell/themes/cream`).
|
|
7
|
+
*
|
|
8
|
+
* Palette tiers:
|
|
9
|
+
*
|
|
10
|
+
* 1. BRAND — required per mode (light + dark):
|
|
11
|
+
* primary, secondary, accent (+ foregrounds each).
|
|
12
|
+
* Tune accent by eye for menu/sidebar selection.
|
|
13
|
+
* 2. SHELL GRADIENT — optional; branded palettes only (bloom, cream).
|
|
14
|
+
* 3. SYSTEM — surfaces & chrome; copy default or tune for brand tint
|
|
15
|
+
* (foreground, muted, popover, card, borders).
|
|
16
|
+
* 4. PALETTE — optional: radius, charts, shadows, destructive.
|
|
17
|
+
*
|
|
18
|
+
* Inherited from default.css — do not duplicate in new palettes:
|
|
19
|
+
* --ring, --sidebar-*, --status-*, --alert-*.
|
|
20
|
+
*
|
|
21
|
+
* Light/dark mode is controlled separately via `.dark` on <html>.
|
|
22
|
+
* Palette selection is by CSS import; there is no runtime palette prop.
|
|
23
|
+
*/
|
|
24
|
+
@import "./themes/default.css" layer(theme.defaults);
|
|
38
25
|
|
|
39
|
-
.dark
|
|
40
|
-
color-scheme: dark;
|
|
41
|
-
--background: rgba(10, 10, 10, 1);
|
|
42
|
-
--foreground: rgba(250, 250, 250, 1);
|
|
43
|
-
--card: rgba(23, 23, 23, 1);
|
|
44
|
-
--card-foreground: rgba(250, 250, 250, 1);
|
|
45
|
-
--popover: rgba(38, 38, 38, 1);
|
|
46
|
-
--popover-foreground: rgba(250, 250, 250, 1);
|
|
47
|
-
--primary: rgba(229, 229, 229, 1);
|
|
48
|
-
--primary-foreground: rgba(23, 23, 23, 1);
|
|
49
|
-
--secondary: rgba(38, 38, 38, 1);
|
|
50
|
-
--secondary-foreground: rgba(250, 250, 250, 1);
|
|
51
|
-
--muted: rgba(38, 38, 38, 1);
|
|
52
|
-
--muted-foreground: rgba(163, 163, 163, 1);
|
|
53
|
-
--accent: rgba(64, 64, 64, 1);
|
|
54
|
-
--accent-foreground: rgba(250, 250, 250, 1);
|
|
55
|
-
--destructive: rgba(248, 113, 113, 1);
|
|
56
|
-
--destructive-foreground: rgba(254, 242, 242, 1);
|
|
57
|
-
--border: rgba(255, 255, 255, 0.10000000149011612);
|
|
58
|
-
--input: rgba(255, 255, 255, 0.15000000596046448);
|
|
59
|
-
--ring: rgba(115, 115, 115, 1);
|
|
60
|
-
--chart-1: rgba(29, 78, 216, 1);
|
|
61
|
-
--chart-2: rgba(16, 185, 129, 1);
|
|
62
|
-
--chart-3: rgba(245, 158, 11, 1);
|
|
63
|
-
--chart-4: rgba(168, 85, 247, 1);
|
|
64
|
-
--chart-5: rgba(244, 63, 94, 1);
|
|
65
|
-
--sidebar: rgba(23, 23, 23, 1);
|
|
66
|
-
--sidebar-foreground: rgba(250, 250, 250, 1);
|
|
67
|
-
--sidebar-primary: rgba(29, 78, 216, 1);
|
|
68
|
-
--sidebar-primary-foreground: rgba(250, 250, 250, 1);
|
|
69
|
-
--sidebar-accent: rgba(38, 38, 38, 1);
|
|
70
|
-
--sidebar-accent-foreground: rgba(250, 250, 250, 1);
|
|
71
|
-
--sidebar-border: rgba(255, 255, 255, 0.10000000149011612);
|
|
72
|
-
--sidebar-ring: rgba(82, 82, 82, 1);
|
|
73
|
-
}
|
|
26
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
74
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Tailwind v4 theme bridge — maps raw CSS custom properties to Tailwind's
|
|
30
|
+
* design token namespace so utilities like `bg-background`, `text-primary`,
|
|
31
|
+
* `shadow-sm` resolve correctly regardless of the active palette.
|
|
32
|
+
*/
|
|
75
33
|
@theme inline {
|
|
34
|
+
--font-sans: "Inter Variable", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
35
|
+
|
|
76
36
|
--color-background: var(--background);
|
|
77
37
|
--color-foreground: var(--foreground);
|
|
78
38
|
--color-card: var(--card);
|
|
@@ -110,10 +70,14 @@
|
|
|
110
70
|
--color-sidebar-border: var(--sidebar-border);
|
|
111
71
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
112
72
|
|
|
113
|
-
|
|
114
|
-
--color-status-
|
|
115
|
-
--color-status-
|
|
116
|
-
--color-status-
|
|
117
|
-
--color-status-
|
|
118
|
-
|
|
73
|
+
--color-status-default: var(--status-default);
|
|
74
|
+
--color-status-neutral: var(--status-neutral);
|
|
75
|
+
--color-status-completed: var(--status-completed);
|
|
76
|
+
--color-status-attention: var(--status-attention);
|
|
77
|
+
--color-status-danger: var(--status-danger);
|
|
78
|
+
|
|
79
|
+
--shadow-xs: var(--semantic-shadow-xs);
|
|
80
|
+
--shadow-sm: var(--semantic-shadow-sm);
|
|
81
|
+
--shadow-md: var(--semantic-shadow-md);
|
|
82
|
+
--shadow-lg: var(--semantic-shadow-lg);
|
|
119
83
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Deprecated compatibility shim.
|
|
3
|
+
*
|
|
4
|
+
* `@tailor-platform/app-shell/styles` now includes the default theme tokens,
|
|
5
|
+
* so this file intentionally does nothing. Keep exporting it so older apps
|
|
6
|
+
* that still import `@tailor-platform/app-shell/theme.css` keep building.
|
|
7
|
+
*/
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Palette template — copy to `themes/{name}.css` when adding a new theme.
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════════════════
|
|
5
|
+
* NEW PALETTE CHECKLIST
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* 1. Copy this file → `themes/{name}.css`.
|
|
9
|
+
* 2. Set section 1 (BRAND) for light AND dark — 6 tokens per mode.
|
|
10
|
+
* 3. Optional: set section 2 (SHELL GRADIENT) and copy the structural block
|
|
11
|
+
* from `bloom.css` / `cream.css` if this palette uses a shell gradient.
|
|
12
|
+
* 4. Tune section 3 (SYSTEM) if the brand needs warm/cool surfaces — copy
|
|
13
|
+
* from `default.css` for neutral palettes, or from `bloom.css` / `cream.css`
|
|
14
|
+
* as a starting point for branded shells. Set both modes.
|
|
15
|
+
* 5. Optional: section 4 (PALETTE) — radius, chart hues, shadow tint.
|
|
16
|
+
* 6. Import `@tailor-platform/app-shell/themes/{name}` after
|
|
17
|
+
* `@tailor-platform/app-shell/styles` in the consuming app.
|
|
18
|
+
*
|
|
19
|
+
* DO NOT SET (inherited from `:root` in default.css):
|
|
20
|
+
* --ring, --sidebar-*, --status-*, --alert-*
|
|
21
|
+
*
|
|
22
|
+
* PREVIEW: `/custom-page/color` in the Next.js example app.
|
|
23
|
+
* ═══════════════════════════════════════════════════════════════════════════
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
:root {
|
|
27
|
+
color-scheme: light;
|
|
28
|
+
|
|
29
|
+
/* ── 1. BRAND — required; set explicitly for light and dark ─────────── */
|
|
30
|
+
--primary: /* brand action color */;
|
|
31
|
+
--primary-foreground: /* contrast text on primary */;
|
|
32
|
+
--secondary: /* filled secondary actions, badges */;
|
|
33
|
+
--secondary-foreground: /* contrast text on secondary */;
|
|
34
|
+
--accent: /* menu/sidebar hover & selection — tune by eye */;
|
|
35
|
+
--accent-foreground: /* contrast text on accent */;
|
|
36
|
+
|
|
37
|
+
/* ── 2. SHELL GRADIENT — optional; omit for flat palettes like default ── */
|
|
38
|
+
--shell-gradient-base: /* page backdrop bottom / dark anchor */;
|
|
39
|
+
--shell-gradient-tint: /* page backdrop top / light lift */;
|
|
40
|
+
|
|
41
|
+
/* ── 3. SYSTEM — surfaces & chrome; tune for brand tint or copy default ─ */
|
|
42
|
+
--background: rgba(250, 250, 250, 1);
|
|
43
|
+
--foreground: rgba(10, 10, 10, 1);
|
|
44
|
+
--card: rgba(255, 255, 255, 1);
|
|
45
|
+
--card-foreground: rgba(10, 10, 10, 1);
|
|
46
|
+
--popover: rgba(255, 255, 255, 1);
|
|
47
|
+
--popover-foreground: rgba(10, 10, 10, 1);
|
|
48
|
+
--muted: rgba(245, 245, 245, 1);
|
|
49
|
+
--muted-foreground: rgba(115, 115, 115, 1);
|
|
50
|
+
--border: rgba(229, 229, 229, 1);
|
|
51
|
+
--input: rgba(229, 229, 229, 1);
|
|
52
|
+
--sidebar: rgba(250, 250, 250, 1);
|
|
53
|
+
--sidebar-foreground: rgba(10, 10, 10, 1);
|
|
54
|
+
--sidebar-border: rgba(229, 229, 229, 1);
|
|
55
|
+
|
|
56
|
+
/* ── 4. PALETTE — optional overrides (else inherited from :root) ──────── */
|
|
57
|
+
--destructive: rgba(220, 38, 38, 1);
|
|
58
|
+
--radius: 0.625rem;
|
|
59
|
+
--chart-1: /* brand-adjacent */;
|
|
60
|
+
--chart-2: /* ... */;
|
|
61
|
+
--chart-3: /* ... */;
|
|
62
|
+
--chart-4: /* ... */;
|
|
63
|
+
--chart-5: /* ... */;
|
|
64
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(15 23 42 / 0.06);
|
|
65
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(15 23 42 / 0.08), 0 1px 2px -1px rgb(15 23 42 / 0.08);
|
|
66
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(15 23 42 / 0.09), 0 2px 4px -2px rgb(15 23 42 / 0.06);
|
|
67
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(15 23 42 / 0.12), 0 4px 6px -4px rgb(15 23 42 / 0.09);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:root.dark {
|
|
71
|
+
color-scheme: dark;
|
|
72
|
+
|
|
73
|
+
/* ── 1. BRAND (dark) ─────────────────────────────────────────────────── */
|
|
74
|
+
--primary: /* lighter/desaturated for dark surfaces */;
|
|
75
|
+
--primary-foreground: /* dark text on light primary */;
|
|
76
|
+
--secondary: /* dark secondary fill */;
|
|
77
|
+
--secondary-foreground: /* light text on secondary */;
|
|
78
|
+
--accent: /* sidebar/menu selection on dark — tune by eye */;
|
|
79
|
+
--accent-foreground: /* light text on accent */;
|
|
80
|
+
|
|
81
|
+
/* ── 2. SHELL GRADIENT (dark) ────────────────────────────────────────── */
|
|
82
|
+
--shell-gradient-base: /* dark anchor */;
|
|
83
|
+
--shell-gradient-tint: /* slightly lifted dark top */;
|
|
84
|
+
|
|
85
|
+
/* ── 3. SYSTEM (dark) ────────────────────────────────────────────────── */
|
|
86
|
+
--background: rgba(10, 10, 10, 1);
|
|
87
|
+
--foreground: rgba(250, 250, 250, 1);
|
|
88
|
+
--card: rgba(23, 23, 23, 1);
|
|
89
|
+
--card-foreground: rgba(250, 250, 250, 1);
|
|
90
|
+
--popover: rgba(38, 38, 38, 1);
|
|
91
|
+
--popover-foreground: rgba(250, 250, 250, 1);
|
|
92
|
+
--muted: rgba(38, 38, 38, 1);
|
|
93
|
+
--muted-foreground: rgba(163, 163, 163, 1);
|
|
94
|
+
--border: rgba(255, 255, 255, 0.1);
|
|
95
|
+
--input: rgba(255, 255, 255, 0.15);
|
|
96
|
+
--sidebar: rgba(10, 10, 10, 1);
|
|
97
|
+
--sidebar-foreground: rgba(250, 250, 250, 1);
|
|
98
|
+
--sidebar-border: rgba(255, 255, 255, 0.1);
|
|
99
|
+
|
|
100
|
+
/* ── 4. PALETTE (dark overrides) ─────────────────────────────────────── */
|
|
101
|
+
--destructive: rgba(248, 113, 113, 1);
|
|
102
|
+
--chart-1: /* ... */;
|
|
103
|
+
--chart-2: /* ... */;
|
|
104
|
+
--chart-3: /* ... */;
|
|
105
|
+
--chart-4: /* ... */;
|
|
106
|
+
--chart-5: /* ... */;
|
|
107
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.35);
|
|
108
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.38), 0 1px 2px -1px rgb(0 0 0 / 0.32);
|
|
109
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.35), 0 2px 4px -2px rgb(0 0 0 / 0.28);
|
|
110
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.42), 0 4px 6px -4px rgb(0 0 0 / 0.35);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* Optional: copy the structural override block from bloom.css or cream.css
|
|
115
|
+
* when using a shell gradient (transparent sidebar, squircle, etc.).
|
|
116
|
+
*/
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom — lavender shell + indigo brand.
|
|
3
|
+
* Branded palette: overrides brand/system/palette tokens; shared aliases +
|
|
4
|
+
* semantic tokens inherit from default.css.
|
|
5
|
+
*/
|
|
6
|
+
:root {
|
|
7
|
+
color-scheme: light;
|
|
8
|
+
|
|
9
|
+
/* ── 1. BRAND ─────────────────────────────────────────────────────────── */
|
|
10
|
+
--primary: rgba(83, 90, 232, 1);
|
|
11
|
+
--primary-foreground: rgba(255, 255, 255, 1);
|
|
12
|
+
--secondary: rgb(216, 217, 244);
|
|
13
|
+
--secondary-foreground: rgba(23, 23, 23, 1);
|
|
14
|
+
--accent: rgb(233, 234, 248);
|
|
15
|
+
--accent-foreground: rgba(16, 18, 43, 1);
|
|
16
|
+
|
|
17
|
+
/* ── 2. SHELL GRADIENT ────────────────────────────────────────────────── */
|
|
18
|
+
--shell-gradient-base: rgba(239, 232, 255, 1);
|
|
19
|
+
--shell-gradient-tint: rgb(255, 255, 255);
|
|
20
|
+
|
|
21
|
+
/* ── 3. SYSTEM — brand-tinted surfaces ────────────────────────────────── */
|
|
22
|
+
--background: rgba(250, 250, 250, 1);
|
|
23
|
+
--foreground: rgba(16, 18, 43, 1);
|
|
24
|
+
--card: rgba(255, 255, 255, 1);
|
|
25
|
+
--card-foreground: rgba(16, 18, 43, 1);
|
|
26
|
+
--popover: rgba(255, 255, 255, 1);
|
|
27
|
+
--popover-foreground: rgba(16, 18, 43, 1);
|
|
28
|
+
--muted: rgba(246, 242, 255, 1);
|
|
29
|
+
--muted-foreground: rgba(16, 18, 43, 0.72);
|
|
30
|
+
--border: rgba(0, 0, 0, 0.08);
|
|
31
|
+
--input: rgba(0, 0, 0, 0.08);
|
|
32
|
+
--sidebar: rgba(250, 250, 250, 1);
|
|
33
|
+
--sidebar-foreground: rgba(16, 18, 43, 1);
|
|
34
|
+
--sidebar-border: rgba(0, 0, 0, 0.08);
|
|
35
|
+
|
|
36
|
+
/* ── 4. PALETTE ───────────────────────────────────────────────────────── */
|
|
37
|
+
--destructive: rgba(220, 38, 38, 1);
|
|
38
|
+
--radius: 1rem;
|
|
39
|
+
--chart-1: rgba(83, 90, 232, 1);
|
|
40
|
+
--chart-2: rgba(0, 151, 156, 1);
|
|
41
|
+
--chart-3: rgba(1, 55, 66, 1);
|
|
42
|
+
--chart-4: rgba(110, 95, 195, 1);
|
|
43
|
+
--chart-5: rgba(217, 119, 6, 1);
|
|
44
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(16 18 43 / 0.07);
|
|
45
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(16 18 43 / 0.08), 0 1px 2px -1px rgb(16 18 43 / 0.06);
|
|
46
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(16 18 43 / 0.1), 0 2px 4px -2px rgb(16 18 43 / 0.08);
|
|
47
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(16 18 43 / 0.12), 0 4px 6px -4px rgb(83 90 232 / 0.1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:root.dark {
|
|
51
|
+
color-scheme: dark;
|
|
52
|
+
|
|
53
|
+
/* ── 1. BRAND (dark) ─────────────────────────────────────────────────── */
|
|
54
|
+
--primary: rgba(131, 138, 247, 1);
|
|
55
|
+
--primary-foreground: rgba(16, 18, 43, 1);
|
|
56
|
+
--secondary: rgb(45, 48, 72);
|
|
57
|
+
--secondary-foreground: rgba(248, 249, 252, 1);
|
|
58
|
+
--accent: rgb(50, 53, 72);
|
|
59
|
+
--accent-foreground: rgba(248, 249, 252, 1);
|
|
60
|
+
|
|
61
|
+
/* ── 2. SHELL GRADIENT (dark) ─────────────────────────────────────────── */
|
|
62
|
+
--shell-gradient-base: rgba(9, 10, 17, 1);
|
|
63
|
+
--shell-gradient-tint: rgb(16, 17, 26);
|
|
64
|
+
|
|
65
|
+
/* ── 3. SYSTEM (dark) ─────────────────────────────────────────────────── */
|
|
66
|
+
--background: rgba(10, 10, 10, 1);
|
|
67
|
+
--foreground: rgba(248, 249, 252, 1);
|
|
68
|
+
--card: rgba(26, 28, 42, 1);
|
|
69
|
+
--card-foreground: rgba(248, 249, 252, 1);
|
|
70
|
+
--popover: rgba(34, 37, 54, 1);
|
|
71
|
+
--popover-foreground: rgba(248, 249, 252, 1);
|
|
72
|
+
--muted: rgba(36, 39, 58, 1);
|
|
73
|
+
--muted-foreground: rgba(180, 183, 200, 1);
|
|
74
|
+
--border: rgba(255, 255, 255, 0.08);
|
|
75
|
+
--input: rgba(255, 255, 255, 0.12);
|
|
76
|
+
--sidebar: rgba(10, 10, 10, 1);
|
|
77
|
+
--sidebar-foreground: rgba(248, 249, 252, 1);
|
|
78
|
+
--sidebar-border: rgba(255, 255, 255, 0.08);
|
|
79
|
+
|
|
80
|
+
/* ── 4. PALETTE (dark) ────────────────────────────────────────────────── */
|
|
81
|
+
--destructive: rgba(248, 113, 113, 1);
|
|
82
|
+
--chart-1: rgba(131, 138, 247, 1);
|
|
83
|
+
--chart-2: rgba(45, 191, 196, 1);
|
|
84
|
+
--chart-3: rgba(94, 234, 212, 1);
|
|
85
|
+
--chart-4: rgba(167, 139, 250, 1);
|
|
86
|
+
--chart-5: rgba(251, 191, 36, 1);
|
|
87
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.35);
|
|
88
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.38), 0 1px 2px -1px rgb(0 0 0 / 0.32);
|
|
89
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.35), 0 2px 4px -2px rgb(0 0 0 / 0.28);
|
|
90
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.42), 0 4px 6px -4px rgb(0 0 0 / 0.35);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/*
|
|
94
|
+
* Structural overrides — shell gradient, transparent chrome, squircle corners,
|
|
95
|
+
* tighter heading rhythm. Apply in both modes (gradient reads `--shell-gradient-base`
|
|
96
|
+
* + the per-mode `--shell-gradient-tint`).
|
|
97
|
+
*
|
|
98
|
+
* These must NOT be in a @layer so they override Tailwind utilities (which are layered).
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
html {
|
|
102
|
+
min-height: 100vh;
|
|
103
|
+
min-height: 100dvh;
|
|
104
|
+
background-color: var(--shell-gradient-base);
|
|
105
|
+
background-image: linear-gradient(
|
|
106
|
+
to bottom,
|
|
107
|
+
color-mix(in srgb, var(--shell-gradient-base) 55%, var(--shell-gradient-tint)) 0%,
|
|
108
|
+
color-mix(in srgb, var(--shell-gradient-base) 45%, var(--shell-gradient-tint)) 20%,
|
|
109
|
+
color-mix(in srgb, var(--shell-gradient-base) 30%, var(--shell-gradient-tint)) 40%,
|
|
110
|
+
color-mix(in srgb, var(--shell-gradient-base) 15%, var(--shell-gradient-tint)) 55%,
|
|
111
|
+
color-mix(in srgb, var(--shell-gradient-base) 6%, var(--shell-gradient-tint)) 65%,
|
|
112
|
+
var(--shell-gradient-tint) 70%,
|
|
113
|
+
var(--shell-gradient-tint) 100%
|
|
114
|
+
);
|
|
115
|
+
background-attachment: fixed;
|
|
116
|
+
background-repeat: no-repeat;
|
|
117
|
+
background-size: 100% 100%;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
html :where(h1, h2, h3, h4, h5, h6) {
|
|
121
|
+
letter-spacing: -0.03em;
|
|
122
|
+
line-height: 1.2;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@supports (corner-shape: squircle) {
|
|
126
|
+
html * {
|
|
127
|
+
corner-shape: squircle;
|
|
128
|
+
}
|
|
129
|
+
html [class*="rounded-full"] {
|
|
130
|
+
corner-shape: round;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
html body {
|
|
135
|
+
background-color: transparent;
|
|
136
|
+
background-image: none;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
html [data-slot="sidebar-wrapper"],
|
|
140
|
+
html [data-slot="sidebar-inner"],
|
|
141
|
+
html main[data-slot="sidebar-inset"],
|
|
142
|
+
html
|
|
143
|
+
[data-slot="sidebar"][class*="bg-sidebar"]:not([data-mobile="true"]):not(
|
|
144
|
+
[data-icon-mode="true"]
|
|
145
|
+
) {
|
|
146
|
+
background-color: transparent;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"] {
|
|
150
|
+
background-color: transparent;
|
|
151
|
+
transition:
|
|
152
|
+
background-color 0.12s ease,
|
|
153
|
+
color 0.12s ease;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"]:hover:not(:disabled) {
|
|
157
|
+
background-color: var(--accent);
|
|
158
|
+
color: var(--accent-foreground);
|
|
159
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cream — warm Tailor brand shell + indigo actions.
|
|
3
|
+
* Branded palette: overrides brand/system/palette tokens; shared aliases +
|
|
4
|
+
* semantic tokens inherit from default.css.
|
|
5
|
+
*/
|
|
6
|
+
:root {
|
|
7
|
+
color-scheme: light;
|
|
8
|
+
|
|
9
|
+
/* ── 1. BRAND ─────────────────────────────────────────────────────────── */
|
|
10
|
+
--primary: rgba(83, 90, 232, 1);
|
|
11
|
+
--primary-foreground: rgba(255, 255, 255, 1);
|
|
12
|
+
--secondary: rgb(240, 230, 212);
|
|
13
|
+
--secondary-foreground: rgba(16, 18, 43, 1);
|
|
14
|
+
--accent: rgb(245, 238, 228);
|
|
15
|
+
--accent-foreground: rgba(16, 18, 43, 1);
|
|
16
|
+
|
|
17
|
+
/* ── 2. SHELL GRADIENT ────────────────────────────────────────────────── */
|
|
18
|
+
--shell-gradient-base: #fef6e3;
|
|
19
|
+
--shell-gradient-tint: #fffdfa;
|
|
20
|
+
|
|
21
|
+
/* ── 3. SYSTEM — brand-tinted surfaces ────────────────────────────────── */
|
|
22
|
+
--background: rgba(250, 250, 250, 1);
|
|
23
|
+
--foreground: rgba(16, 18, 43, 1);
|
|
24
|
+
--card: rgba(255, 255, 255, 1);
|
|
25
|
+
--card-foreground: rgba(16, 18, 43, 1);
|
|
26
|
+
--popover: rgba(255, 255, 255, 1);
|
|
27
|
+
--popover-foreground: rgba(16, 18, 43, 1);
|
|
28
|
+
--muted: rgba(251, 248, 240, 1);
|
|
29
|
+
--muted-foreground: rgba(16, 18, 43, 0.72);
|
|
30
|
+
--border: rgba(0, 0, 0, 0.08);
|
|
31
|
+
--input: rgba(0, 0, 0, 0.08);
|
|
32
|
+
--sidebar: rgba(250, 250, 250, 1);
|
|
33
|
+
--sidebar-foreground: rgba(16, 18, 43, 1);
|
|
34
|
+
--sidebar-border: rgba(0, 0, 0, 0.08);
|
|
35
|
+
|
|
36
|
+
/* ── 4. PALETTE ───────────────────────────────────────────────────────── */
|
|
37
|
+
--destructive: rgba(220, 38, 38, 1);
|
|
38
|
+
--radius: 1rem;
|
|
39
|
+
--chart-1: rgba(83, 90, 232, 1);
|
|
40
|
+
--chart-2: rgba(0, 151, 156, 1);
|
|
41
|
+
--chart-3: rgba(1, 55, 66, 1);
|
|
42
|
+
--chart-4: rgba(110, 95, 195, 1);
|
|
43
|
+
--chart-5: rgba(217, 119, 6, 1);
|
|
44
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(16 18 43 / 0.07);
|
|
45
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(16 18 43 / 0.08), 0 1px 2px -1px rgb(16 18 43 / 0.06);
|
|
46
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(16 18 43 / 0.1), 0 2px 4px -2px rgb(16 18 43 / 0.08);
|
|
47
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(16 18 43 / 0.12), 0 4px 6px -4px rgb(83 90 232 / 0.1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:root.dark {
|
|
51
|
+
color-scheme: dark;
|
|
52
|
+
|
|
53
|
+
/* ── 1. BRAND (dark) ─────────────────────────────────────────────────── */
|
|
54
|
+
--primary: rgba(131, 138, 247, 1);
|
|
55
|
+
--primary-foreground: rgba(16, 18, 43, 1);
|
|
56
|
+
--secondary: rgb(42, 36, 30);
|
|
57
|
+
--secondary-foreground: rgba(247, 244, 238, 1);
|
|
58
|
+
--accent: rgb(50, 44, 38);
|
|
59
|
+
--accent-foreground: rgba(247, 244, 238, 1);
|
|
60
|
+
|
|
61
|
+
/* ── 2. SHELL GRADIENT (dark) ─────────────────────────────────────────── */
|
|
62
|
+
--shell-gradient-base: rgb(8, 6, 5);
|
|
63
|
+
--shell-gradient-tint: rgb(17, 14, 10);
|
|
64
|
+
|
|
65
|
+
/* ── 3. SYSTEM (dark) ─────────────────────────────────────────────────── */
|
|
66
|
+
--background: rgba(10, 10, 10, 1);
|
|
67
|
+
--foreground: rgba(247, 244, 238, 1);
|
|
68
|
+
--card: rgb(22, 19, 17);
|
|
69
|
+
--card-foreground: rgba(247, 244, 238, 1);
|
|
70
|
+
--popover: rgb(37, 33, 28);
|
|
71
|
+
--popover-foreground: rgba(247, 244, 238, 1);
|
|
72
|
+
--muted: rgba(42, 37, 31, 1);
|
|
73
|
+
--muted-foreground: rgba(186, 180, 170, 1);
|
|
74
|
+
--border: rgba(255, 255, 255, 0.08);
|
|
75
|
+
--input: rgba(255, 255, 255, 0.12);
|
|
76
|
+
--sidebar: rgba(10, 10, 10, 1);
|
|
77
|
+
--sidebar-foreground: rgba(247, 244, 238, 1);
|
|
78
|
+
--sidebar-border: rgba(255, 255, 255, 0.08);
|
|
79
|
+
|
|
80
|
+
/* ── 4. PALETTE (dark) ────────────────────────────────────────────────── */
|
|
81
|
+
--destructive: rgba(248, 113, 113, 1);
|
|
82
|
+
--chart-1: rgba(131, 138, 247, 1);
|
|
83
|
+
--chart-2: rgba(45, 191, 196, 1);
|
|
84
|
+
--chart-3: rgba(94, 234, 212, 1);
|
|
85
|
+
--chart-4: rgba(167, 139, 250, 1);
|
|
86
|
+
--chart-5: rgba(251, 191, 36, 1);
|
|
87
|
+
--semantic-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.35);
|
|
88
|
+
--semantic-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.38), 0 1px 2px -1px rgb(0 0 0 / 0.32);
|
|
89
|
+
--semantic-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.35), 0 2px 4px -2px rgb(0 0 0 / 0.28);
|
|
90
|
+
--semantic-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.42), 0 4px 6px -4px rgb(0 0 0 / 0.35);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/*
|
|
94
|
+
* Structural overrides — shell gradient, transparent chrome, squircle corners,
|
|
95
|
+
* tighter heading rhythm. Apply in both modes (gradient reads `--shell-gradient-base`
|
|
96
|
+
* + the per-mode `--shell-gradient-tint`).
|
|
97
|
+
*
|
|
98
|
+
* These must NOT be in a @layer so they override Tailwind utilities (which are layered).
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
html {
|
|
102
|
+
min-height: 100vh;
|
|
103
|
+
min-height: 100dvh;
|
|
104
|
+
background-color: var(--shell-gradient-base);
|
|
105
|
+
background-image: linear-gradient(
|
|
106
|
+
to bottom,
|
|
107
|
+
color-mix(in srgb, var(--shell-gradient-base) 55%, var(--shell-gradient-tint)) 0%,
|
|
108
|
+
color-mix(in srgb, var(--shell-gradient-base) 45%, var(--shell-gradient-tint)) 20%,
|
|
109
|
+
color-mix(in srgb, var(--shell-gradient-base) 30%, var(--shell-gradient-tint)) 40%,
|
|
110
|
+
color-mix(in srgb, var(--shell-gradient-base) 15%, var(--shell-gradient-tint)) 55%,
|
|
111
|
+
color-mix(in srgb, var(--shell-gradient-base) 6%, var(--shell-gradient-tint)) 65%,
|
|
112
|
+
var(--shell-gradient-tint) 70%,
|
|
113
|
+
var(--shell-gradient-tint) 100%
|
|
114
|
+
);
|
|
115
|
+
background-attachment: fixed;
|
|
116
|
+
background-repeat: no-repeat;
|
|
117
|
+
background-size: 100% 100%;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
html :where(h1, h2, h3, h4, h5, h6) {
|
|
121
|
+
letter-spacing: -0.03em;
|
|
122
|
+
line-height: 1.2;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@supports (corner-shape: squircle) {
|
|
126
|
+
html * {
|
|
127
|
+
corner-shape: squircle;
|
|
128
|
+
}
|
|
129
|
+
html [class*="rounded-full"] {
|
|
130
|
+
corner-shape: round;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
html body {
|
|
135
|
+
background-color: transparent;
|
|
136
|
+
background-image: none;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
html [data-slot="sidebar-wrapper"],
|
|
140
|
+
html [data-slot="sidebar-inner"],
|
|
141
|
+
html main[data-slot="sidebar-inset"],
|
|
142
|
+
html
|
|
143
|
+
[data-slot="sidebar"][class*="bg-sidebar"]:not([data-mobile="true"]):not(
|
|
144
|
+
[data-icon-mode="true"]
|
|
145
|
+
) {
|
|
146
|
+
background-color: transparent;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"] {
|
|
150
|
+
background-color: transparent;
|
|
151
|
+
transition:
|
|
152
|
+
background-color 0.12s ease,
|
|
153
|
+
color 0.12s ease;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"]:hover:not(:disabled) {
|
|
157
|
+
background-color: var(--accent);
|
|
158
|
+
color: var(--accent-foreground);
|
|
159
|
+
}
|