@adukiorg/anza 0.4.1 → 0.4.3
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/bin/anza/anza-linux-arm64 +0 -0
- package/bin/anza/anza-linux-x64 +0 -0
- package/bin/anza/anza-macos-arm64 +0 -0
- package/bin/anza/anza-macos-x64 +0 -0
- package/bin/anza/anza-windows-x64.exe +0 -0
- package/package.json +1 -1
- package/src/core/api/index.js +2 -2
- package/src/core/offline/sync.js +2 -2
- package/src/core/router/cascade.js +23 -18
- package/src/core/router/container.js +6 -2
- package/src/core/router/graph.js +46 -15
- package/src/core/router/index.js +7 -1
- package/src/core/router/intercept.js +397 -100
- package/src/core/router/match.js +30 -0
- package/src/core/router/transitions.js +4 -3
- package/src/core/ui/define/container.js +3 -13
- package/src/core/ui/define/element.js +58 -8
- package/src/core/ui/define/orchestrator.js +8 -4
- package/src/core/ui/defs/dock.js +27 -14
- package/src/core/ui/defs/page.js +75 -29
- package/src/core/ui/defs/spec.js +81 -11
- package/src/elements/data/list/style.css +1 -1
- package/src/elements/data/table/index.js +2 -1
- package/src/elements/data/table/style.css +1 -1
- package/src/elements/feedback/alert/style.css +1 -1
- package/src/styles/base.css +22 -21
- package/src/styles/reset.css +0 -2
- package/src/tokens/index.css +1 -4
- package/src/tokens/primitives/colors.css +9 -64
- package/src/tokens/primitives/motion.css +6 -18
- package/src/tokens/primitives/spacing.css +7 -12
- package/src/tokens/primitives/typography.css +12 -42
- package/src/tokens/registered/colors.css +5 -96
- package/src/tokens/registered/dimensions.css +6 -19
- package/src/tokens/semantic/contrast.css +8 -36
- package/src/tokens/semantic/dark.css +13 -48
- package/src/tokens/semantic/light.css +13 -44
- package/src/tokens/semantic/transitions.css +26 -13
- package/CHANGELOG.md +0 -360
- package/src/tokens/primitives/radius.css +0 -16
- package/src/tokens/primitives/shadow.css +0 -34
- package/src/tokens/primitives/zindex.css +0 -18
- package/src/tokens/semantic/components.css +0 -123
|
@@ -1,71 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/primitives/colors.css
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Converted from hex values provided in the design system.
|
|
4
|
+
* Base raw color decisions.
|
|
6
5
|
*/
|
|
7
6
|
|
|
8
7
|
:root {
|
|
9
|
-
|
|
10
|
-
--
|
|
11
|
-
--gray-
|
|
12
|
-
--gray-
|
|
13
|
-
--gray-
|
|
14
|
-
--gray-
|
|
15
|
-
--
|
|
16
|
-
--gray-500: oklch(50% 0.012 264);
|
|
17
|
-
--gray-600: oklch(38% 0.014 264);
|
|
18
|
-
--gray-700: oklch(28% 0.016 264);
|
|
19
|
-
--gray-800: oklch(18% 0.018 264);
|
|
20
|
-
--gray-900: oklch(10% 0.02 264);
|
|
21
|
-
--gray-950: oklch(5% 0.022 264);
|
|
22
|
-
|
|
23
|
-
/* Brand green palette — based on #07a45f, #09d379 */
|
|
24
|
-
--brand-50: oklch(96% 0.08 155);
|
|
25
|
-
--brand-100: oklch(90% 0.12 155);
|
|
26
|
-
--brand-200: oklch(82% 0.16 155);
|
|
27
|
-
--brand-300: oklch(72% 0.18 155);
|
|
28
|
-
--brand-400: oklch(62% 0.20 155);
|
|
29
|
-
--brand-500: oklch(55% 0.22 155);
|
|
30
|
-
--brand-600: oklch(48% 0.20 155);
|
|
31
|
-
--brand-700: oklch(40% 0.18 155);
|
|
32
|
-
--brand-800: oklch(32% 0.16 155);
|
|
33
|
-
--brand-900: oklch(24% 0.14 155);
|
|
34
|
-
--brand-950: oklch(15% 0.12 155);
|
|
35
|
-
|
|
36
|
-
/* Success palette — based on #10b981 */
|
|
37
|
-
--success-50: oklch(96% 0.08 155);
|
|
38
|
-
--success-100: oklch(88% 0.12 155);
|
|
39
|
-
--success-200: oklch(78% 0.16 155);
|
|
40
|
-
--success-300: oklch(68% 0.18 155);
|
|
41
|
-
--success-400: oklch(58% 0.20 155);
|
|
42
|
-
--success-500: oklch(52% 0.22 155);
|
|
43
|
-
--success-600: oklch(45% 0.20 155);
|
|
44
|
-
|
|
45
|
-
/* Error palette — based on #ec4b19 */
|
|
46
|
-
--error-50: oklch(96% 0.06 35);
|
|
47
|
-
--error-100: oklch(90% 0.10 35);
|
|
48
|
-
--error-200: oklch(80% 0.14 35);
|
|
49
|
-
--error-300: oklch(70% 0.18 35);
|
|
50
|
-
--error-400: oklch(60% 0.22 35);
|
|
51
|
-
--error-500: oklch(54% 0.24 35);
|
|
52
|
-
--error-600: oklch(47% 0.22 35);
|
|
53
|
-
|
|
54
|
-
/* Warn palette — based on #fa6436 */
|
|
55
|
-
--warn-50: oklch(96% 0.08 45);
|
|
56
|
-
--warn-100: oklch(90% 0.12 45);
|
|
57
|
-
--warn-200: oklch(80% 0.16 45);
|
|
58
|
-
--warn-300: oklch(70% 0.20 45);
|
|
59
|
-
--warn-400: oklch(60% 0.24 45);
|
|
60
|
-
--warn-500: oklch(54% 0.26 45);
|
|
61
|
-
--warn-600: oklch(47% 0.24 45);
|
|
62
|
-
|
|
63
|
-
/* Info palette */
|
|
64
|
-
--info-50: oklch(96% 0.06 240);
|
|
65
|
-
--info-100: oklch(90% 0.10 240);
|
|
66
|
-
--info-200: oklch(80% 0.14 240);
|
|
67
|
-
--info-300: oklch(70% 0.18 240);
|
|
68
|
-
--info-400: oklch(60% 0.22 240);
|
|
69
|
-
--info-500: oklch(54% 0.24 240);
|
|
70
|
-
--info-600: oklch(47% 0.22 240);
|
|
8
|
+
--color-white: #ffffff;
|
|
9
|
+
--color-black: #000000;
|
|
10
|
+
--gray-100: oklch(95% 0 0);
|
|
11
|
+
--gray-200: oklch(90% 0 0);
|
|
12
|
+
--gray-800: oklch(20% 0 0);
|
|
13
|
+
--gray-900: oklch(10% 0 0);
|
|
14
|
+
--brand: oklch(62% 0.17 145); /* Base brand accent */
|
|
71
15
|
}
|
|
16
|
+
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/primitives/motion.css
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Essential motion parameters.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
:root {
|
|
8
|
-
|
|
9
|
-
--duration-
|
|
10
|
-
--
|
|
11
|
-
--
|
|
12
|
-
|
|
13
|
-
/* Easing curves */
|
|
14
|
-
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
15
|
-
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
16
|
-
--ease-in-out: cubic-bezier(0.4, 0, 0.6, 1);
|
|
17
|
-
--ease-linear: linear;
|
|
8
|
+
--duration-fast: 120ms;
|
|
9
|
+
--duration-normal: 240ms;
|
|
10
|
+
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
11
|
+
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
12
|
+
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
18
13
|
}
|
|
19
14
|
|
|
20
|
-
@media (prefers-reduced-motion: reduce) {
|
|
21
|
-
:root {
|
|
22
|
-
--duration-fast: 0ms;
|
|
23
|
-
--duration-normal: 0ms;
|
|
24
|
-
--duration-slow: 0ms;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/primitives/spacing.css
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Minimal numeric spacing scale.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
:root {
|
|
8
|
-
--space-
|
|
9
|
-
--space-
|
|
10
|
-
--space-
|
|
11
|
-
--space-
|
|
12
|
-
--space-
|
|
13
|
-
--space-lg: 1.5rem; /* 24px */
|
|
14
|
-
--space-xl: 2rem; /* 32px */
|
|
15
|
-
--space-2xl: 3rem; /* 48px */
|
|
16
|
-
--space-3xl: 4rem; /* 64px */
|
|
17
|
-
--space-4xl: 6rem; /* 96px */
|
|
18
|
-
--space-5xl: 8rem; /* 128px */
|
|
8
|
+
--space-0: 0px;
|
|
9
|
+
--space-px: 1px;
|
|
10
|
+
--space-2: 0.5rem; /* 8px */
|
|
11
|
+
--space-3: 0.75rem; /* 12px */
|
|
12
|
+
--space-4: 1rem; /* 16px */
|
|
19
13
|
}
|
|
14
|
+
|
|
@@ -1,49 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/primitives/typography.css
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Google Fonts: Inter, JetBrains Mono, IBM Plex Sans
|
|
4
|
+
* Essential typography settings.
|
|
6
5
|
*/
|
|
7
6
|
|
|
8
|
-
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap");
|
|
9
|
-
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap");
|
|
10
|
-
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..900;1,100..900&display=swap");
|
|
11
|
-
|
|
12
7
|
:root {
|
|
13
|
-
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
|
|
24
|
-
/* Font weights */
|
|
25
|
-
--font-light: 300;
|
|
26
|
-
--font-normal: 400;
|
|
27
|
-
--font-medium: 500;
|
|
28
|
-
--font-semibold: 600;
|
|
29
|
-
--font-bold: 700;
|
|
30
|
-
|
|
31
|
-
/* Line heights */
|
|
32
|
-
--leading-tight: 1.25;
|
|
33
|
-
--leading-snug: 1.375;
|
|
34
|
-
--leading-normal: 1.5;
|
|
35
|
-
--leading-relaxed: 1.625;
|
|
36
|
-
--leading-loose: 2;
|
|
37
|
-
|
|
38
|
-
/* Letter spacing */
|
|
39
|
-
--tracking-tight: -0.025em;
|
|
40
|
-
--tracking-normal: 0;
|
|
41
|
-
--tracking-wide: 0.025em;
|
|
42
|
-
--tracking-wider: 0.05em;
|
|
43
|
-
--tracking-widest: 0.1em;
|
|
44
|
-
|
|
45
|
-
/* Font families */
|
|
46
|
-
--font-sans: 'Inter', system-ui, -apple-system, sans-serif;
|
|
47
|
-
--font-serif: 'IBM Plex Sans', serif;
|
|
48
|
-
--font-mono: 'JetBrains Mono', monospace;
|
|
8
|
+
--font-sans: system-ui, -apple-system, sans-serif;
|
|
9
|
+
--font-size-base: 1rem;
|
|
10
|
+
--font-size-lg: 1.25rem;
|
|
11
|
+
--font-size-xl: 1.5rem;
|
|
12
|
+
--font-size-2xl: 1.875rem;
|
|
13
|
+
--font-size-3xl: 2.25rem;
|
|
14
|
+
--font-weight-regular: 400;
|
|
15
|
+
--font-weight-semibold: 600;
|
|
16
|
+
--line-height-normal: 1.5;
|
|
17
|
+
--line-height-tight: 1.25;
|
|
49
18
|
}
|
|
19
|
+
|
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/registered/colors.css
|
|
3
3
|
*
|
|
4
|
-
* Houdini @property registrations for animatable semantic color tokens.
|
|
5
|
-
* This permits smooth, GPU-accelerated theme transition morphs.
|
|
6
|
-
* Source: doc 26 §5
|
|
4
|
+
* Houdini @property registrations for animatable core semantic color tokens.
|
|
7
5
|
*/
|
|
8
6
|
|
|
9
7
|
@property --color-surface-page {
|
|
10
8
|
syntax: '<color>';
|
|
11
9
|
inherits: true;
|
|
12
|
-
initial-value: oklch(
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
@property --color-surface-card {
|
|
16
|
-
syntax: '<color>';
|
|
17
|
-
inherits: true;
|
|
18
|
-
initial-value: oklch(100% 0 0);
|
|
10
|
+
initial-value: oklch(98% 0 0);
|
|
19
11
|
}
|
|
20
12
|
|
|
21
13
|
@property --color-surface-elevated {
|
|
@@ -24,12 +16,6 @@
|
|
|
24
16
|
initial-value: oklch(100% 0 0);
|
|
25
17
|
}
|
|
26
18
|
|
|
27
|
-
@property --color-surface-inverse {
|
|
28
|
-
syntax: '<color>';
|
|
29
|
-
inherits: true;
|
|
30
|
-
initial-value: oklch(10% 0 0);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
19
|
@property --color-content-primary {
|
|
34
20
|
syntax: '<color>';
|
|
35
21
|
inherits: true;
|
|
@@ -39,95 +25,18 @@
|
|
|
39
25
|
@property --color-content-secondary {
|
|
40
26
|
syntax: '<color>';
|
|
41
27
|
inherits: true;
|
|
42
|
-
initial-value: oklch(
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@property --color-content-disabled {
|
|
46
|
-
syntax: '<color>';
|
|
47
|
-
inherits: true;
|
|
48
|
-
initial-value: oklch(64% 0 0);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@property --color-content-inverse {
|
|
52
|
-
syntax: '<color>';
|
|
53
|
-
inherits: true;
|
|
54
|
-
initial-value: oklch(97% 0 0);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@property --color-content-link {
|
|
58
|
-
syntax: '<color>';
|
|
59
|
-
inherits: true;
|
|
60
|
-
initial-value: oklch(55% 0.22 250);
|
|
28
|
+
initial-value: oklch(30% 0 0);
|
|
61
29
|
}
|
|
62
30
|
|
|
63
31
|
@property --color-interactive {
|
|
64
32
|
syntax: '<color>';
|
|
65
33
|
inherits: true;
|
|
66
|
-
initial-value: oklch(
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@property --color-interactive-hover {
|
|
70
|
-
syntax: '<color>';
|
|
71
|
-
inherits: true;
|
|
72
|
-
initial-value: oklch(46% 0.20 250);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@property --color-interactive-active {
|
|
76
|
-
syntax: '<color>';
|
|
77
|
-
inherits: true;
|
|
78
|
-
initial-value: oklch(38% 0.18 250);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
@property --color-interactive-focus {
|
|
82
|
-
syntax: '<color>';
|
|
83
|
-
inherits: true;
|
|
84
|
-
initial-value: oklch(55% 0.22 250);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@property --color-interactive-disabled {
|
|
88
|
-
syntax: '<color>';
|
|
89
|
-
inherits: true;
|
|
90
|
-
initial-value: oklch(88% 0 0);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
@property --color-feedback-success {
|
|
94
|
-
syntax: '<color>';
|
|
95
|
-
inherits: true;
|
|
96
|
-
initial-value: oklch(63% 0.19 145);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@property --color-feedback-warning {
|
|
100
|
-
syntax: '<color>';
|
|
101
|
-
inherits: true;
|
|
102
|
-
initial-value: oklch(75% 0.18 65);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@property --color-feedback-error {
|
|
106
|
-
syntax: '<color>';
|
|
107
|
-
inherits: true;
|
|
108
|
-
initial-value: oklch(58% 0.22 25);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@property --color-feedback-info {
|
|
112
|
-
syntax: '<color>';
|
|
113
|
-
inherits: true;
|
|
114
|
-
initial-value: oklch(60% 0.18 230);
|
|
34
|
+
initial-value: oklch(62% 0.17 145);
|
|
115
35
|
}
|
|
116
36
|
|
|
117
37
|
@property --color-border-default {
|
|
118
38
|
syntax: '<color>';
|
|
119
39
|
inherits: true;
|
|
120
|
-
initial-value: oklch(
|
|
40
|
+
initial-value: oklch(90% 0 0);
|
|
121
41
|
}
|
|
122
42
|
|
|
123
|
-
@property --color-border-strong {
|
|
124
|
-
syntax: '<color>';
|
|
125
|
-
inherits: true;
|
|
126
|
-
initial-value: oklch(64% 0 0);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
@property --color-border-focus {
|
|
130
|
-
syntax: '<color>';
|
|
131
|
-
inherits: true;
|
|
132
|
-
initial-value: oklch(55% 0.22 250);
|
|
133
|
-
}
|
|
@@ -1,31 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/registered/dimensions.css
|
|
3
3
|
*
|
|
4
|
-
* Houdini @property registrations for animatable
|
|
5
|
-
* This permits smooth, type-checked transitions on spacing and layout.
|
|
6
|
-
* Source: doc 26 §5
|
|
4
|
+
* Houdini @property registrations for animatable transition tokens.
|
|
7
5
|
*/
|
|
8
6
|
|
|
9
|
-
@property --
|
|
10
|
-
syntax: '<
|
|
11
|
-
inherits: true;
|
|
12
|
-
initial-value: 16px;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
@property --radius-md {
|
|
16
|
-
syntax: '<length>';
|
|
7
|
+
@property --transition-duration {
|
|
8
|
+
syntax: '<time>';
|
|
17
9
|
inherits: true;
|
|
18
|
-
initial-value:
|
|
10
|
+
initial-value: 240ms;
|
|
19
11
|
}
|
|
20
12
|
|
|
21
|
-
@property --
|
|
13
|
+
@property --transition-offset {
|
|
22
14
|
syntax: '<length>';
|
|
23
15
|
inherits: true;
|
|
24
|
-
initial-value:
|
|
16
|
+
initial-value: 30px;
|
|
25
17
|
}
|
|
26
18
|
|
|
27
|
-
@property --duration-normal {
|
|
28
|
-
syntax: '<time>';
|
|
29
|
-
inherits: true;
|
|
30
|
-
initial-value: 200ms;
|
|
31
|
-
}
|
|
@@ -2,50 +2,22 @@
|
|
|
2
2
|
* tokens/semantic/contrast.css
|
|
3
3
|
*
|
|
4
4
|
* WCAG AAA compliant high-contrast semantic token overrides.
|
|
5
|
-
* Enhances readability for visually impaired users.
|
|
6
|
-
* Source: doc 26 §3, library2.md §Phase 1-B
|
|
7
5
|
*/
|
|
8
6
|
|
|
9
7
|
[data-theme="high-contrast"] {
|
|
10
|
-
|
|
11
|
-
--color-surface-
|
|
12
|
-
--color-
|
|
13
|
-
--color-
|
|
14
|
-
--color-
|
|
8
|
+
--color-surface-page: var(--color-white);
|
|
9
|
+
--color-surface-elevated: var(--color-white);
|
|
10
|
+
--color-content-primary: var(--color-black);
|
|
11
|
+
--color-content-secondary: var(--color-black);
|
|
12
|
+
--color-interactive: var(--color-black);
|
|
13
|
+
--color-border-default: var(--color-black);
|
|
15
14
|
|
|
16
|
-
/* Content */
|
|
17
|
-
--color-content-primary: var(--color-neutral-1000);
|
|
18
|
-
--color-content-secondary: var(--color-neutral-900);
|
|
19
|
-
--color-content-disabled: var(--color-neutral-700);
|
|
20
|
-
--color-content-inverse: var(--color-neutral-0);
|
|
21
|
-
--color-content-link: var(--color-brand-900);
|
|
22
|
-
|
|
23
|
-
/* Interactive Elements */
|
|
24
|
-
--color-interactive: var(--color-brand-900);
|
|
25
|
-
--color-interactive-hover: var(--color-neutral-1000);
|
|
26
|
-
--color-interactive-active: var(--color-neutral-1000);
|
|
27
|
-
--color-interactive-disabled: var(--color-neutral-600);
|
|
28
|
-
|
|
29
|
-
/* Borders */
|
|
30
|
-
--color-border-default: var(--color-neutral-1000);
|
|
31
|
-
--color-border-strong: var(--color-neutral-1000);
|
|
32
|
-
--color-border-focus: var(--color-brand-900);
|
|
33
|
-
|
|
34
|
-
/* Automatic theme morph — same timing as light theme */
|
|
35
15
|
transition:
|
|
36
16
|
--color-surface-page 220ms var(--ease-out),
|
|
37
|
-
--color-surface-card 220ms var(--ease-out),
|
|
38
17
|
--color-surface-elevated 220ms var(--ease-out),
|
|
39
|
-
--color-surface-inverse 220ms var(--ease-out),
|
|
40
18
|
--color-content-primary 180ms var(--ease-out),
|
|
41
19
|
--color-content-secondary 180ms var(--ease-out),
|
|
42
|
-
--color-content-disabled 180ms var(--ease-out),
|
|
43
|
-
--color-content-inverse 180ms var(--ease-out),
|
|
44
|
-
--color-content-link 180ms var(--ease-out),
|
|
45
20
|
--color-interactive 180ms var(--ease-out),
|
|
46
|
-
--color-
|
|
47
|
-
--color-interactive-active 180ms var(--ease-out),
|
|
48
|
-
--color-border-default 180ms var(--ease-out),
|
|
49
|
-
--color-border-strong 180ms var(--ease-out),
|
|
50
|
-
--color-border-focus 180ms var(--ease-out);
|
|
21
|
+
--color-border-default 180ms var(--ease-out);
|
|
51
22
|
}
|
|
23
|
+
|
|
@@ -5,57 +5,22 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
[data-theme="dark"] {
|
|
8
|
-
|
|
9
|
-
--
|
|
10
|
-
--
|
|
11
|
-
--
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
--foreground: var(--gray-50);
|
|
15
|
-
--foreground-muted: var(--gray-400);
|
|
16
|
-
--foreground-disabled: var(--gray-600);
|
|
17
|
-
--foreground-inverse: var(--gray-900);
|
|
18
|
-
--foreground-link: var(--brand-300);
|
|
19
|
-
|
|
20
|
-
/* Interactive Elements */
|
|
21
|
-
--primary: var(--brand-400);
|
|
22
|
-
--primary-hover: var(--brand-300);
|
|
23
|
-
--primary-active: var(--brand-200);
|
|
24
|
-
--primary-focus: var(--brand-400);
|
|
25
|
-
--primary-disabled: var(--gray-700);
|
|
26
|
-
--primary-foreground: var(--gray-0);
|
|
27
|
-
|
|
28
|
-
/* Borders */
|
|
29
|
-
--border: var(--gray-800);
|
|
30
|
-
--border-strong: var(--gray-600);
|
|
31
|
-
--border-focus: var(--brand-400);
|
|
8
|
+
--color-surface-page: var(--gray-900);
|
|
9
|
+
--color-surface-elevated: var(--gray-800);
|
|
10
|
+
--color-content-primary: var(--color-white);
|
|
11
|
+
--color-content-secondary:var(--gray-100);
|
|
12
|
+
--color-interactive: var(--brand);
|
|
13
|
+
--color-border-default: var(--gray-800);
|
|
32
14
|
}
|
|
33
15
|
|
|
34
16
|
@media (prefers-color-scheme: dark) {
|
|
35
17
|
:root:not([data-theme="light"]) {
|
|
36
|
-
|
|
37
|
-
--
|
|
38
|
-
--
|
|
39
|
-
--
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
--foreground: var(--gray-50);
|
|
43
|
-
--foreground-muted: var(--gray-400);
|
|
44
|
-
--foreground-disabled: var(--gray-600);
|
|
45
|
-
--foreground-inverse: var(--gray-900);
|
|
46
|
-
--foreground-link: var(--brand-300);
|
|
47
|
-
|
|
48
|
-
/* Interactive Elements */
|
|
49
|
-
--primary: var(--brand-400);
|
|
50
|
-
--primary-hover: var(--brand-300);
|
|
51
|
-
--primary-active: var(--brand-200);
|
|
52
|
-
--primary-focus: var(--brand-400);
|
|
53
|
-
--primary-disabled: var(--gray-700);
|
|
54
|
-
--primary-foreground: var(--gray-0);
|
|
55
|
-
|
|
56
|
-
/* Borders */
|
|
57
|
-
--border: var(--gray-800);
|
|
58
|
-
--border-strong: var(--gray-600);
|
|
59
|
-
--border-focus: var(--brand-400);
|
|
18
|
+
--color-surface-page: var(--gray-900);
|
|
19
|
+
--color-surface-elevated: var(--gray-800);
|
|
20
|
+
--color-content-primary: var(--color-white);
|
|
21
|
+
--color-content-secondary:var(--gray-100);
|
|
22
|
+
--color-interactive: var(--brand);
|
|
23
|
+
--color-border-default: var(--gray-800);
|
|
60
24
|
}
|
|
61
25
|
}
|
|
26
|
+
|
|
@@ -5,53 +5,21 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
:root {
|
|
8
|
-
|
|
9
|
-
--
|
|
10
|
-
--
|
|
11
|
-
--
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
--foreground: var(--gray-900);
|
|
15
|
-
--foreground-muted: var(--gray-600);
|
|
16
|
-
--foreground-disabled: var(--gray-400);
|
|
17
|
-
--foreground-inverse: var(--gray-50);
|
|
18
|
-
--foreground-link: var(--brand-600);
|
|
19
|
-
|
|
20
|
-
/* Interactive Elements */
|
|
21
|
-
--primary: var(--brand-500);
|
|
22
|
-
--primary-hover: var(--brand-600);
|
|
23
|
-
--primary-active: var(--brand-700);
|
|
24
|
-
--primary-focus: var(--brand-500);
|
|
25
|
-
--primary-disabled: var(--gray-300);
|
|
26
|
-
--primary-foreground: var(--gray-0);
|
|
27
|
-
|
|
28
|
-
/* Feedback Semantics */
|
|
29
|
-
--success: var(--success-500);
|
|
30
|
-
--warn: var(--warn-500);
|
|
31
|
-
--error: var(--error-500);
|
|
32
|
-
--info: var(--info-500);
|
|
33
|
-
|
|
34
|
-
/* Borders */
|
|
35
|
-
--border: var(--gray-200);
|
|
36
|
-
--border-strong: var(--gray-400);
|
|
37
|
-
--border-focus: var(--brand-500);
|
|
8
|
+
--color-surface-page: var(--color-white);
|
|
9
|
+
--color-surface-elevated: var(--color-white);
|
|
10
|
+
--color-content-primary: var(--gray-900);
|
|
11
|
+
--color-content-secondary:var(--gray-800);
|
|
12
|
+
--color-interactive: var(--brand);
|
|
13
|
+
--color-border-default: var(--gray-200);
|
|
38
14
|
|
|
39
15
|
/* Automatic theme morph configuration */
|
|
40
16
|
transition:
|
|
41
|
-
--
|
|
42
|
-
--
|
|
43
|
-
--
|
|
44
|
-
--
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
--foreground-inverse 180ms var(--ease-out),
|
|
48
|
-
--foreground-link 180ms var(--ease-out),
|
|
49
|
-
--primary 180ms var(--ease-out),
|
|
50
|
-
--primary-hover 180ms var(--ease-out),
|
|
51
|
-
--primary-active 180ms var(--ease-out),
|
|
52
|
-
--border 180ms var(--ease-out),
|
|
53
|
-
--border-strong 180ms var(--ease-out),
|
|
54
|
-
--border-focus 180ms var(--ease-out);
|
|
17
|
+
--color-surface-page 220ms var(--ease-out),
|
|
18
|
+
--color-surface-elevated 220ms var(--ease-out),
|
|
19
|
+
--color-content-primary 180ms var(--ease-out),
|
|
20
|
+
--color-content-secondary 180ms var(--ease-out),
|
|
21
|
+
--color-interactive 180ms var(--ease-out),
|
|
22
|
+
--color-border-default 180ms var(--ease-out);
|
|
55
23
|
}
|
|
56
24
|
|
|
57
25
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -59,3 +27,4 @@
|
|
|
59
27
|
transition: none !important;
|
|
60
28
|
}
|
|
61
29
|
}
|
|
30
|
+
|
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tokens/semantic/transitions.css
|
|
3
3
|
*
|
|
4
|
-
* View Transition pseudo-element
|
|
5
|
-
*
|
|
4
|
+
* View Transition pseudo-element mapping and layout swap animations.
|
|
5
|
+
*
|
|
6
|
+
* Docks use element-scoped view transitions via this.startViewTransition().
|
|
7
|
+
* The transitioned element gets viewTransitionName='dock-swap'.
|
|
8
|
+
* Never target (root) — that animates the stable chrome (sidebar, header).
|
|
6
9
|
*/
|
|
7
10
|
|
|
8
11
|
:root {
|
|
9
|
-
/* Backdrop behind old and new page snapshots during a transition */
|
|
10
|
-
--transition-bg: var(--color-surface-page);
|
|
11
|
-
|
|
12
|
-
/* Timing tokens used by JS when calling startViewTransition */
|
|
13
12
|
--transition-duration: var(--duration-normal);
|
|
14
13
|
--transition-easing: var(--ease-out);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
--transition-push: var(--ease-out);
|
|
18
|
-
--transition-pop: var(--ease-in);
|
|
14
|
+
--transition-push: cubic-bezier(0.1, 0.9, 0.2, 1);
|
|
15
|
+
--transition-pop: cubic-bezier(0.9, 0.1, 1, 0.2);
|
|
19
16
|
--transition-replace: var(--ease-in-out);
|
|
17
|
+
--transition-offset: 30px;
|
|
18
|
+
--transition-bg: var(--color-surface-page);
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
::view-transition-old(
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
::view-transition-old(dock-swap) {
|
|
22
|
+
animation: 90ms ease-in both fade-out;
|
|
23
|
+
}
|
|
24
|
+
::view-transition-new(dock-swap) {
|
|
25
|
+
animation: var(--transition-duration) var(--transition-easing) both slide-in;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@keyframes fade-out {
|
|
29
|
+
to { opacity: 0; }
|
|
30
|
+
}
|
|
31
|
+
@keyframes slide-in {
|
|
32
|
+
from { transform: translateY(var(--transition-offset)); }
|
|
33
|
+
to { transform: translateY(0); }
|
|
25
34
|
}
|
|
26
35
|
|
|
27
36
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -29,4 +38,8 @@
|
|
|
29
38
|
--transition-duration: 0ms;
|
|
30
39
|
--transition-easing: linear;
|
|
31
40
|
}
|
|
41
|
+
::view-transition-old(dock-swap),
|
|
42
|
+
::view-transition-new(dock-swap) {
|
|
43
|
+
animation: none !important;
|
|
44
|
+
}
|
|
32
45
|
}
|