ccgx-workflow 1.0.0 → 1.0.2

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.
Files changed (60) hide show
  1. package/README.md +37 -5
  2. package/README.zh-CN.md +35 -5
  3. package/dist/cli.mjs +1 -1
  4. package/dist/index.mjs +2 -2
  5. package/dist/shared/{ccgx-workflow.WgUzkiC3.mjs → ccgx-workflow.Bq9vAaEw.mjs} +17 -110
  6. package/package.json +2 -1
  7. package/templates/commands/agents/phase-runner.md +321 -321
  8. package/templates/commands/autonomous.md +792 -792
  9. package/templates/commands/cancel.md +132 -132
  10. package/templates/commands/debug.md +226 -226
  11. package/templates/commands/status.md +206 -206
  12. package/templates/commands/team.md +484 -0
  13. package/templates/hooks/ccg-session-state.cjs +566 -510
  14. package/templates/scripts/ccg-phase-runner-launcher.mjs +467 -467
  15. package/templates/scripts/invoke-model.mjs +64 -0
  16. package/templates/skills/domains/ai/SKILL.md +35 -35
  17. package/templates/skills/domains/ai/agent-dev.md +242 -242
  18. package/templates/skills/domains/ai/llm-security.md +288 -288
  19. package/templates/skills/domains/ai/rag-system.md +542 -542
  20. package/templates/skills/domains/architecture/SKILL.md +43 -43
  21. package/templates/skills/domains/architecture/api-design.md +225 -225
  22. package/templates/skills/domains/architecture/cloud-native.md +285 -285
  23. package/templates/skills/domains/architecture/security-arch.md +297 -297
  24. package/templates/skills/domains/data-engineering/SKILL.md +208 -208
  25. package/templates/skills/domains/development/SKILL.md +47 -47
  26. package/templates/skills/domains/development/cpp.md +246 -246
  27. package/templates/skills/domains/development/go.md +323 -323
  28. package/templates/skills/domains/development/java.md +277 -277
  29. package/templates/skills/domains/development/python.md +288 -288
  30. package/templates/skills/domains/development/rust.md +313 -313
  31. package/templates/skills/domains/development/shell.md +313 -313
  32. package/templates/skills/domains/development/typescript.md +277 -277
  33. package/templates/skills/domains/devops/SKILL.md +40 -40
  34. package/templates/skills/domains/devops/database.md +217 -217
  35. package/templates/skills/domains/devops/devsecops.md +198 -198
  36. package/templates/skills/domains/devops/git-workflow.md +181 -181
  37. package/templates/skills/domains/devops/testing.md +283 -283
  38. package/templates/skills/domains/frontend-design/SKILL.md +244 -244
  39. package/templates/skills/domains/frontend-design/claymorphism/SKILL.md +121 -121
  40. package/templates/skills/domains/frontend-design/component-patterns.md +202 -202
  41. package/templates/skills/domains/frontend-design/glassmorphism/SKILL.md +142 -142
  42. package/templates/skills/domains/frontend-design/liquid-glass/SKILL.md +139 -139
  43. package/templates/skills/domains/frontend-design/neubrutalism/SKILL.md +145 -145
  44. package/templates/skills/domains/frontend-design/state-management.md +680 -680
  45. package/templates/skills/domains/frontend-design/ui-aesthetics.md +110 -110
  46. package/templates/skills/domains/frontend-design/ux-principles.md +156 -156
  47. package/templates/skills/domains/infrastructure/SKILL.md +201 -201
  48. package/templates/skills/domains/mobile/SKILL.md +225 -225
  49. package/templates/skills/domains/orchestration/SKILL.md +30 -30
  50. package/templates/skills/domains/orchestration/multi-agent.md +228 -228
  51. package/templates/skills/domains/security/SKILL.md +73 -73
  52. package/templates/skills/domains/security/blue-team.md +436 -436
  53. package/templates/skills/domains/security/code-audit.md +265 -265
  54. package/templates/skills/domains/security/pentest.md +226 -226
  55. package/templates/skills/domains/security/red-team.md +374 -374
  56. package/templates/skills/domains/security/threat-intel.md +372 -372
  57. package/templates/skills/domains/security/vuln-research.md +369 -369
  58. package/templates/skills/tools/lib/shared.js +98 -98
  59. package/templates/skills/tools/override-refusal/SKILL.md +53 -53
  60. package/templates/skills/tools/override-refusal/scripts/refusal_rewriter.js +226 -226
@@ -1,142 +1,142 @@
1
- ---
2
- name: glassmorphism
3
- description: Glassmorphism 玻璃态设计(毛玻璃、透明度、模糊、分层深度)。
4
- license: MIT
5
- user-invocable: false
6
- disable-model-invocation: false
7
- context: fork
8
- paths: "*.tsx,*.jsx,*.vue,*.svelte,*.css,*.scss"
9
- ---
10
-
11
- # Glassmorphism Design Spec
12
-
13
- ## 4 Core Elements
14
-
15
- 1. **Transparency** — Semi-transparent backgrounds using `rgba()` or `hsla()` with alpha `0.05–0.4`
16
- 2. **Blur** — `backdrop-filter: blur()` ranging 8–40px for frosted-glass effect
17
- 3. **Border** — Subtle semi-transparent borders (`1px solid rgba(255,255,255,0.18)`) to define edges
18
- 4. **Shadow** — Soft layered `box-shadow` for depth separation from background
19
-
20
- ## CSS Tokens
21
-
22
- Reference: [references/tokens.css](references/tokens.css)
23
-
24
- Use CSS custom properties from `tokens.css` for consistent theming:
25
-
26
- ```css
27
- @import 'references/tokens.css';
28
-
29
- .glass-card {
30
- background: var(--glass-bg);
31
- backdrop-filter: var(--glass-blur);
32
- -webkit-backdrop-filter: var(--glass-blur);
33
- border: var(--glass-border);
34
- border-radius: var(--glass-radius);
35
- box-shadow: var(--glass-shadow);
36
- }
37
- ```
38
-
39
- ## Component Examples
40
-
41
- ### Card
42
- ```css
43
- .glass-card {
44
- background: var(--glass-bg);
45
- backdrop-filter: var(--glass-blur);
46
- -webkit-backdrop-filter: var(--glass-blur);
47
- border: var(--glass-border);
48
- border-radius: var(--glass-radius);
49
- box-shadow: var(--glass-shadow);
50
- padding: 1.5rem;
51
- }
52
- ```
53
-
54
- ### Navbar
55
- ```css
56
- .glass-nav {
57
- background: var(--glass-bg-heavy);
58
- backdrop-filter: var(--glass-blur-strong);
59
- -webkit-backdrop-filter: var(--glass-blur-strong);
60
- border-bottom: var(--glass-border);
61
- box-shadow: var(--glass-shadow);
62
- position: sticky;
63
- top: 0;
64
- z-index: 100;
65
- }
66
- ```
67
-
68
- ### Modal Overlay
69
- ```css
70
- .glass-modal-backdrop {
71
- background: rgba(0, 0, 0, 0.4);
72
- backdrop-filter: blur(4px);
73
- }
74
- .glass-modal {
75
- background: var(--glass-bg-heavy);
76
- backdrop-filter: var(--glass-blur-strong);
77
- -webkit-backdrop-filter: var(--glass-blur-strong);
78
- border: var(--glass-border);
79
- border-radius: var(--glass-radius-lg);
80
- box-shadow: var(--glass-shadow-elevated);
81
- }
82
- ```
83
-
84
- ### Button
85
- ```css
86
- .glass-btn {
87
- background: var(--glass-bg-light);
88
- backdrop-filter: var(--glass-blur-light);
89
- -webkit-backdrop-filter: var(--glass-blur-light);
90
- border: var(--glass-border);
91
- border-radius: var(--glass-radius);
92
- transition: background 0.2s;
93
- }
94
- .glass-btn:hover {
95
- background: var(--glass-bg);
96
- }
97
- ```
98
-
99
- ## Browser Compatibility
100
-
101
- | Feature | Chrome | Firefox | Safari | Edge |
102
- |---------|--------|---------|--------|------|
103
- | `backdrop-filter` | 76+ | 103+ | 9+ (`-webkit-`) | 79+ |
104
- | `rgba()` backgrounds | All | All | All | All |
105
-
106
- - Always include `-webkit-backdrop-filter` for Safari support
107
- - Firefox <103: use `@supports` fallback with solid semi-transparent bg
108
- - Fallback pattern:
109
-
110
- ```css
111
- .glass-card {
112
- background: rgba(255, 255, 255, 0.85); /* fallback */
113
- }
114
- @supports (backdrop-filter: blur(1px)) {
115
- .glass-card {
116
- background: var(--glass-bg);
117
- backdrop-filter: var(--glass-blur);
118
- }
119
- }
120
- ```
121
-
122
- ## Accessibility Notes
123
-
124
- - Ensure **contrast ratio ≥ 4.5:1** for text over glass surfaces — test against all possible backgrounds
125
- - Provide `prefers-reduced-transparency` media query to disable blur/transparency for users who need it
126
- - Avoid placing critical text on highly transparent surfaces without a fallback
127
- - Use `prefers-contrast: more` to increase border opacity and reduce transparency
128
-
129
- ```css
130
- @media (prefers-reduced-transparency: reduce) {
131
- .glass-card {
132
- background: rgba(255, 255, 255, 0.92);
133
- backdrop-filter: none;
134
- }
135
- }
136
- @media (prefers-contrast: more) {
137
- .glass-card {
138
- background: rgba(255, 255, 255, 0.85);
139
- border: 1px solid rgba(0, 0, 0, 0.3);
140
- }
141
- }
142
- ```
1
+ ---
2
+ name: glassmorphism
3
+ description: Glassmorphism 玻璃态设计(毛玻璃、透明度、模糊、分层深度)。
4
+ license: MIT
5
+ user-invocable: false
6
+ disable-model-invocation: false
7
+ context: fork
8
+ paths: "*.tsx,*.jsx,*.vue,*.svelte,*.css,*.scss"
9
+ ---
10
+
11
+ # Glassmorphism Design Spec
12
+
13
+ ## 4 Core Elements
14
+
15
+ 1. **Transparency** — Semi-transparent backgrounds using `rgba()` or `hsla()` with alpha `0.05–0.4`
16
+ 2. **Blur** — `backdrop-filter: blur()` ranging 8–40px for frosted-glass effect
17
+ 3. **Border** — Subtle semi-transparent borders (`1px solid rgba(255,255,255,0.18)`) to define edges
18
+ 4. **Shadow** — Soft layered `box-shadow` for depth separation from background
19
+
20
+ ## CSS Tokens
21
+
22
+ Reference: [references/tokens.css](references/tokens.css)
23
+
24
+ Use CSS custom properties from `tokens.css` for consistent theming:
25
+
26
+ ```css
27
+ @import 'references/tokens.css';
28
+
29
+ .glass-card {
30
+ background: var(--glass-bg);
31
+ backdrop-filter: var(--glass-blur);
32
+ -webkit-backdrop-filter: var(--glass-blur);
33
+ border: var(--glass-border);
34
+ border-radius: var(--glass-radius);
35
+ box-shadow: var(--glass-shadow);
36
+ }
37
+ ```
38
+
39
+ ## Component Examples
40
+
41
+ ### Card
42
+ ```css
43
+ .glass-card {
44
+ background: var(--glass-bg);
45
+ backdrop-filter: var(--glass-blur);
46
+ -webkit-backdrop-filter: var(--glass-blur);
47
+ border: var(--glass-border);
48
+ border-radius: var(--glass-radius);
49
+ box-shadow: var(--glass-shadow);
50
+ padding: 1.5rem;
51
+ }
52
+ ```
53
+
54
+ ### Navbar
55
+ ```css
56
+ .glass-nav {
57
+ background: var(--glass-bg-heavy);
58
+ backdrop-filter: var(--glass-blur-strong);
59
+ -webkit-backdrop-filter: var(--glass-blur-strong);
60
+ border-bottom: var(--glass-border);
61
+ box-shadow: var(--glass-shadow);
62
+ position: sticky;
63
+ top: 0;
64
+ z-index: 100;
65
+ }
66
+ ```
67
+
68
+ ### Modal Overlay
69
+ ```css
70
+ .glass-modal-backdrop {
71
+ background: rgba(0, 0, 0, 0.4);
72
+ backdrop-filter: blur(4px);
73
+ }
74
+ .glass-modal {
75
+ background: var(--glass-bg-heavy);
76
+ backdrop-filter: var(--glass-blur-strong);
77
+ -webkit-backdrop-filter: var(--glass-blur-strong);
78
+ border: var(--glass-border);
79
+ border-radius: var(--glass-radius-lg);
80
+ box-shadow: var(--glass-shadow-elevated);
81
+ }
82
+ ```
83
+
84
+ ### Button
85
+ ```css
86
+ .glass-btn {
87
+ background: var(--glass-bg-light);
88
+ backdrop-filter: var(--glass-blur-light);
89
+ -webkit-backdrop-filter: var(--glass-blur-light);
90
+ border: var(--glass-border);
91
+ border-radius: var(--glass-radius);
92
+ transition: background 0.2s;
93
+ }
94
+ .glass-btn:hover {
95
+ background: var(--glass-bg);
96
+ }
97
+ ```
98
+
99
+ ## Browser Compatibility
100
+
101
+ | Feature | Chrome | Firefox | Safari | Edge |
102
+ |---------|--------|---------|--------|------|
103
+ | `backdrop-filter` | 76+ | 103+ | 9+ (`-webkit-`) | 79+ |
104
+ | `rgba()` backgrounds | All | All | All | All |
105
+
106
+ - Always include `-webkit-backdrop-filter` for Safari support
107
+ - Firefox <103: use `@supports` fallback with solid semi-transparent bg
108
+ - Fallback pattern:
109
+
110
+ ```css
111
+ .glass-card {
112
+ background: rgba(255, 255, 255, 0.85); /* fallback */
113
+ }
114
+ @supports (backdrop-filter: blur(1px)) {
115
+ .glass-card {
116
+ background: var(--glass-bg);
117
+ backdrop-filter: var(--glass-blur);
118
+ }
119
+ }
120
+ ```
121
+
122
+ ## Accessibility Notes
123
+
124
+ - Ensure **contrast ratio ≥ 4.5:1** for text over glass surfaces — test against all possible backgrounds
125
+ - Provide `prefers-reduced-transparency` media query to disable blur/transparency for users who need it
126
+ - Avoid placing critical text on highly transparent surfaces without a fallback
127
+ - Use `prefers-contrast: more` to increase border opacity and reduce transparency
128
+
129
+ ```css
130
+ @media (prefers-reduced-transparency: reduce) {
131
+ .glass-card {
132
+ background: rgba(255, 255, 255, 0.92);
133
+ backdrop-filter: none;
134
+ }
135
+ }
136
+ @media (prefers-contrast: more) {
137
+ .glass-card {
138
+ background: rgba(255, 255, 255, 0.85);
139
+ border: 1px solid rgba(0, 0, 0, 0.3);
140
+ }
141
+ }
142
+ ```
@@ -1,139 +1,139 @@
1
- ---
2
- name: liquid-glass
3
- description: Apple Liquid Glass 液态玻璃设计(半透明、深度感知、Apple 设计语言)。
4
- license: MIT
5
- user-invocable: false
6
- disable-model-invocation: false
7
- context: fork
8
- paths: "*.tsx,*.jsx,*.vue,*.svelte,*.css,*.scss"
9
- ---
10
-
11
- # Liquid Glass Design System
12
-
13
- Apple-inspired translucent glass UI with depth, refraction, and ambient light response.
14
-
15
- ## Core Principles
16
-
17
- 1. **Translucency** — Surfaces reveal layered content beneath via backdrop blur
18
- 2. **Depth** — Elements float on distinct z-layers with realistic shadows
19
- 3. **Ambient Response** — Glass tints shift based on underlying content color
20
- 4. **Minimal Chrome** — Borders are subtle; shape and blur define boundaries
21
- 5. **Motion** — Transitions feel physical: spring-based, with inertia
22
-
23
- ## Usage
24
-
25
- Import the token file in your CSS:
26
-
27
- ```css
28
- @import 'references/tokens.css';
29
- ```
30
-
31
- ## CSS Tokens Reference
32
-
33
- All tokens are defined in `references/tokens.css`. Key categories:
34
-
35
- | Category | Prefix | Example |
36
- |---|---|---|
37
- | Glass backgrounds | `--lg-bg-*` | `--lg-bg-primary` |
38
- | Blur | `--lg-blur-*` | `--lg-blur-md` |
39
- | Borders | `--lg-border-*` | `--lg-border-color` |
40
- | Shadows | `--lg-shadow-*` | `--lg-shadow-elevated` |
41
- | Radius | `--lg-radius-*` | `--lg-radius-lg` |
42
- | Animation | `--lg-duration-*` | `--lg-duration-normal` |
43
-
44
- ## Component Patterns
45
-
46
- ### Glass Card
47
-
48
- ```css
49
- .glass-card {
50
- background: var(--lg-bg-primary);
51
- backdrop-filter: blur(var(--lg-blur-md));
52
- -webkit-backdrop-filter: blur(var(--lg-blur-md));
53
- border: 1px solid var(--lg-border-color);
54
- border-radius: var(--lg-radius-lg);
55
- box-shadow: var(--lg-shadow-elevated);
56
- transition: transform var(--lg-duration-normal) var(--lg-easing-spring);
57
- }
58
-
59
- .glass-card:hover {
60
- transform: translateY(-2px);
61
- box-shadow: var(--lg-shadow-high);
62
- }
63
- ```
64
-
65
- ### Glass Toolbar
66
-
67
- ```css
68
- .glass-toolbar {
69
- background: var(--lg-bg-toolbar);
70
- backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
71
- -webkit-backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
72
- border-bottom: 1px solid var(--lg-border-subtle);
73
- }
74
- ```
75
-
76
- ### Glass Button
77
-
78
- ```css
79
- .glass-btn {
80
- background: var(--lg-bg-interactive);
81
- backdrop-filter: blur(var(--lg-blur-sm));
82
- border: 1px solid var(--lg-border-color);
83
- border-radius: var(--lg-radius-md);
84
- transition: all var(--lg-duration-fast) var(--lg-easing-spring);
85
- }
86
-
87
- .glass-btn:active {
88
- transform: scale(0.97);
89
- background: var(--lg-bg-pressed);
90
- }
91
- ```
92
-
93
- ### Glass Modal Overlay
94
-
95
- ```css
96
- .glass-overlay {
97
- background: var(--lg-bg-scrim);
98
- backdrop-filter: blur(var(--lg-blur-xl));
99
- }
100
-
101
- .glass-modal {
102
- background: var(--lg-bg-elevated);
103
- border: 1px solid var(--lg-border-color);
104
- border-radius: var(--lg-radius-xl);
105
- box-shadow: var(--lg-shadow-high);
106
- }
107
- ```
108
-
109
- ## Dark / Light Mode
110
-
111
- Tokens auto-switch via `prefers-color-scheme`. Light mode uses white-tinted glass; dark mode uses dark-tinted glass with higher blur to maintain readability.
112
-
113
- ```css
114
- /* Force a mode on a subtree */
115
- .light-glass { color-scheme: light; }
116
- .dark-glass { color-scheme: dark; }
117
- ```
118
-
119
- ## Animations
120
-
121
- Use spring-based easing for physical feel:
122
-
123
- ```css
124
- /* Entry */
125
- @keyframes glass-enter {
126
- from { opacity: 0; transform: scale(0.95) translateY(8px); }
127
- to { opacity: 1; transform: scale(1) translateY(0); }
128
- }
129
-
130
- .glass-animate-in {
131
- animation: glass-enter var(--lg-duration-normal) var(--lg-easing-spring) both;
132
- }
133
- ```
134
-
135
- ## Accessibility
136
-
137
- - Ensure `contrast-ratio ≥ 4.5:1` for text over glass surfaces
138
- - Respect `prefers-reduced-motion` — disable blur animations, use opacity-only transitions
139
- - Provide `prefers-contrast: high` overrides that replace translucent backgrounds with solid ones
1
+ ---
2
+ name: liquid-glass
3
+ description: Apple Liquid Glass 液态玻璃设计(半透明、深度感知、Apple 设计语言)。
4
+ license: MIT
5
+ user-invocable: false
6
+ disable-model-invocation: false
7
+ context: fork
8
+ paths: "*.tsx,*.jsx,*.vue,*.svelte,*.css,*.scss"
9
+ ---
10
+
11
+ # Liquid Glass Design System
12
+
13
+ Apple-inspired translucent glass UI with depth, refraction, and ambient light response.
14
+
15
+ ## Core Principles
16
+
17
+ 1. **Translucency** — Surfaces reveal layered content beneath via backdrop blur
18
+ 2. **Depth** — Elements float on distinct z-layers with realistic shadows
19
+ 3. **Ambient Response** — Glass tints shift based on underlying content color
20
+ 4. **Minimal Chrome** — Borders are subtle; shape and blur define boundaries
21
+ 5. **Motion** — Transitions feel physical: spring-based, with inertia
22
+
23
+ ## Usage
24
+
25
+ Import the token file in your CSS:
26
+
27
+ ```css
28
+ @import 'references/tokens.css';
29
+ ```
30
+
31
+ ## CSS Tokens Reference
32
+
33
+ All tokens are defined in `references/tokens.css`. Key categories:
34
+
35
+ | Category | Prefix | Example |
36
+ |---|---|---|
37
+ | Glass backgrounds | `--lg-bg-*` | `--lg-bg-primary` |
38
+ | Blur | `--lg-blur-*` | `--lg-blur-md` |
39
+ | Borders | `--lg-border-*` | `--lg-border-color` |
40
+ | Shadows | `--lg-shadow-*` | `--lg-shadow-elevated` |
41
+ | Radius | `--lg-radius-*` | `--lg-radius-lg` |
42
+ | Animation | `--lg-duration-*` | `--lg-duration-normal` |
43
+
44
+ ## Component Patterns
45
+
46
+ ### Glass Card
47
+
48
+ ```css
49
+ .glass-card {
50
+ background: var(--lg-bg-primary);
51
+ backdrop-filter: blur(var(--lg-blur-md));
52
+ -webkit-backdrop-filter: blur(var(--lg-blur-md));
53
+ border: 1px solid var(--lg-border-color);
54
+ border-radius: var(--lg-radius-lg);
55
+ box-shadow: var(--lg-shadow-elevated);
56
+ transition: transform var(--lg-duration-normal) var(--lg-easing-spring);
57
+ }
58
+
59
+ .glass-card:hover {
60
+ transform: translateY(-2px);
61
+ box-shadow: var(--lg-shadow-high);
62
+ }
63
+ ```
64
+
65
+ ### Glass Toolbar
66
+
67
+ ```css
68
+ .glass-toolbar {
69
+ background: var(--lg-bg-toolbar);
70
+ backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
71
+ -webkit-backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
72
+ border-bottom: 1px solid var(--lg-border-subtle);
73
+ }
74
+ ```
75
+
76
+ ### Glass Button
77
+
78
+ ```css
79
+ .glass-btn {
80
+ background: var(--lg-bg-interactive);
81
+ backdrop-filter: blur(var(--lg-blur-sm));
82
+ border: 1px solid var(--lg-border-color);
83
+ border-radius: var(--lg-radius-md);
84
+ transition: all var(--lg-duration-fast) var(--lg-easing-spring);
85
+ }
86
+
87
+ .glass-btn:active {
88
+ transform: scale(0.97);
89
+ background: var(--lg-bg-pressed);
90
+ }
91
+ ```
92
+
93
+ ### Glass Modal Overlay
94
+
95
+ ```css
96
+ .glass-overlay {
97
+ background: var(--lg-bg-scrim);
98
+ backdrop-filter: blur(var(--lg-blur-xl));
99
+ }
100
+
101
+ .glass-modal {
102
+ background: var(--lg-bg-elevated);
103
+ border: 1px solid var(--lg-border-color);
104
+ border-radius: var(--lg-radius-xl);
105
+ box-shadow: var(--lg-shadow-high);
106
+ }
107
+ ```
108
+
109
+ ## Dark / Light Mode
110
+
111
+ Tokens auto-switch via `prefers-color-scheme`. Light mode uses white-tinted glass; dark mode uses dark-tinted glass with higher blur to maintain readability.
112
+
113
+ ```css
114
+ /* Force a mode on a subtree */
115
+ .light-glass { color-scheme: light; }
116
+ .dark-glass { color-scheme: dark; }
117
+ ```
118
+
119
+ ## Animations
120
+
121
+ Use spring-based easing for physical feel:
122
+
123
+ ```css
124
+ /* Entry */
125
+ @keyframes glass-enter {
126
+ from { opacity: 0; transform: scale(0.95) translateY(8px); }
127
+ to { opacity: 1; transform: scale(1) translateY(0); }
128
+ }
129
+
130
+ .glass-animate-in {
131
+ animation: glass-enter var(--lg-duration-normal) var(--lg-easing-spring) both;
132
+ }
133
+ ```
134
+
135
+ ## Accessibility
136
+
137
+ - Ensure `contrast-ratio ≥ 4.5:1` for text over glass surfaces
138
+ - Respect `prefers-reduced-motion` — disable blur animations, use opacity-only transitions
139
+ - Provide `prefers-contrast: high` overrides that replace translucent backgrounds with solid ones