arcanea 3.0.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/CLAUDE.md +169 -0
- package/README.md +376 -0
- package/agents/arcanea-ai-specialist.md +732 -0
- package/agents/arcanea-architect.md +351 -0
- package/agents/arcanea-backend.md +809 -0
- package/agents/arcanea-character-crafter.md +381 -0
- package/agents/arcanea-development.md +304 -0
- package/agents/arcanea-devops.md +736 -0
- package/agents/arcanea-frontend.md +543 -0
- package/agents/arcanea-lore-master.md +366 -0
- package/agents/arcanea-master-orchestrator.md +223 -0
- package/agents/arcanea-story-master.md +144 -0
- package/agents/arcanea-world-expander.md +380 -0
- package/agents/coding/arcanea-architect.md +72 -0
- package/agents/coding/arcanea-coder.md +78 -0
- package/agents/coding/arcanea-debugger.md +113 -0
- package/agents/coding/arcanea-reviewer.md +102 -0
- package/agents/creation-architect.md +176 -0
- package/agents/design-sage.md +213 -0
- package/agents/developer-documentation.md +373 -0
- package/agents/developer-qa-engineer.md +345 -0
- package/agents/luminor-oracle.md +125 -0
- package/agents/production/format-master.md +208 -0
- package/agents/production/sound-designer.md +199 -0
- package/agents/production/visual-director.md +176 -0
- package/agents/prompt-sage.md +227 -0
- package/agents/research/archivist.md +174 -0
- package/agents/research/muse.md +163 -0
- package/agents/research/sage.md +177 -0
- package/agents/research/scout.md +143 -0
- package/agents/teacher-assessor.md +287 -0
- package/agents/teacher-companion.md +243 -0
- package/agents/teacher-curriculum-designer.md +261 -0
- package/agents/teacher-mentor.md +175 -0
- package/agents/visionary-futurist.md +290 -0
- package/agents/visionary-innovator.md +291 -0
- package/agents/visionary-strategist.md +321 -0
- package/agents/visionary-synthesizer.md +310 -0
- package/agents/writing/continuity-guardian.md +156 -0
- package/agents/writing/line-editor.md +129 -0
- package/agents/writing/prose-weaver.md +113 -0
- package/agents/writing/story-architect.md +96 -0
- package/agents/writing/voice-alchemist.md +124 -0
- package/commands/arcanea-author.md +177 -0
- package/commands/arcanea-build.md +241 -0
- package/commands/arcanea-council.md +143 -0
- package/commands/arcanea-db.md +272 -0
- package/commands/arcanea-deploy.md +176 -0
- package/commands/arcanea-dev.md +29 -0
- package/commands/arcanea-lore-expand.md +142 -0
- package/commands/arcanea-sync.md +281 -0
- package/commands/arcanea-team.md +130 -0
- package/commands/arcanea-test.md +151 -0
- package/commands/bestiary.md +38 -0
- package/commands/character-forge.md +55 -0
- package/commands/check-continuity.md +119 -0
- package/commands/compose-theme.md +134 -0
- package/commands/craft-prompt.md +40 -0
- package/commands/edit-chapter.md +118 -0
- package/commands/export-book.md +146 -0
- package/commands/luminor.md +46 -0
- package/commands/outline-story.md +79 -0
- package/commands/story-help.md +40 -0
- package/commands/teacher-team.md +43 -0
- package/commands/ultrabook.md +147 -0
- package/commands/ultraworld.md +201 -0
- package/commands/ultrawrite.md +103 -0
- package/commands/visionary-team.md +78 -0
- package/commands/visualize.md +126 -0
- package/commands/world-build.md +41 -0
- package/commands/write-chapter.md +97 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2675 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +425 -0
- package/dist/install.d.ts +13 -0
- package/dist/install.d.ts.map +1 -0
- package/package.json +54 -0
- package/skills/ai-symbiosis.md +266 -0
- package/skills/arcanea/arcanea-anti-trope.md +60 -0
- package/skills/arcanea/arcanea-canon/SKILL.md +596 -0
- package/skills/arcanea/arcanea-creator-academy/SKILL.md +418 -0
- package/skills/arcanea/arcanea-design-system/SKILL.md +626 -0
- package/skills/arcanea/arcanea-lore/ENHANCEMENT_SUMMARY.md +908 -0
- package/skills/arcanea/arcanea-lore/ONBOARDING_NARRATIVES.md +642 -0
- package/skills/arcanea/arcanea-lore/SKILL.md +1534 -0
- package/skills/arcanea/arcanea-voice/SKILL.md +510 -0
- package/skills/arcanea/centaur-mode/SKILL.md +399 -0
- package/skills/arcanea/design-system/SKILL.md +601 -0
- package/skills/arcanea/luminor-wisdom/SKILL.md +359 -0
- package/skills/arcanea/prompt-craft/SKILL.md +400 -0
- package/skills/character-alchemist.md +242 -0
- package/skills/creative/bestiary-nav/SKILL.md +425 -0
- package/skills/creative/character-forge/SKILL.md +443 -0
- package/skills/creative/story-weave/SKILL.md +441 -0
- package/skills/creative/world-build/SKILL.md +513 -0
- package/skills/creative-bestiary.md +231 -0
- package/skills/development/code-review/SKILL.md +412 -0
- package/skills/development/systematic-debug/SKILL.md +480 -0
- package/skills/development/tdd/SKILL.md +450 -0
- package/skills/luminor-council.md +241 -0
- package/skills/story-weaver.md +308 -0
- package/skills/world-architect.md +253 -0
|
@@ -0,0 +1,626 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Arcanea Design System
|
|
3
|
+
description: Complete visual design language for Arcanea - cosmic theme tokens, component patterns, animation standards, and Academy-specific aesthetics
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Arcanea Design System Skill
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
This skill defines the complete visual design language for Arcanea, ensuring consistent, magical, and accessible interfaces across all platform features. Every component should feel like it belongs in the Kingdom of Light.
|
|
12
|
+
|
|
13
|
+
## Design Philosophy
|
|
14
|
+
|
|
15
|
+
### Core Principles
|
|
16
|
+
|
|
17
|
+
1. **Cosmic Elegance** - Dark, starlit backgrounds with luminous accents
|
|
18
|
+
2. **Magical Realism** - Fantastical elements grounded in usable UI
|
|
19
|
+
3. **Academy Identity** - Distinct visual languages for each Academy
|
|
20
|
+
4. **Accessible Magic** - Beauty that doesn't sacrifice usability
|
|
21
|
+
5. **Responsive Fluidity** - Adapts gracefully across all devices
|
|
22
|
+
|
|
23
|
+
### The Arcanean Aesthetic
|
|
24
|
+
|
|
25
|
+
**What It Is:**
|
|
26
|
+
- Dark, cosmic backgrounds
|
|
27
|
+
- Gradient glows and light effects
|
|
28
|
+
- Floating, ethereal elements
|
|
29
|
+
- Subtle particle systems
|
|
30
|
+
- Crystalline and fluid forms
|
|
31
|
+
- Smooth, flowing animations
|
|
32
|
+
|
|
33
|
+
**What It Isn't:**
|
|
34
|
+
- Flat, corporate design
|
|
35
|
+
- Harsh, angular brutalism
|
|
36
|
+
- Cluttered fantasy kitsch
|
|
37
|
+
- Inaccessible effects-only
|
|
38
|
+
- Static, lifeless layouts
|
|
39
|
+
|
|
40
|
+
## Color System
|
|
41
|
+
|
|
42
|
+
### Core Palette
|
|
43
|
+
|
|
44
|
+
```css
|
|
45
|
+
/* Cosmic Foundation */
|
|
46
|
+
--arcanea-cosmic-950: #050510; /* Deepest void */
|
|
47
|
+
--arcanea-cosmic-900: #0a0a1a; /* Primary background */
|
|
48
|
+
--arcanea-cosmic-800: #121230; /* Elevated surfaces */
|
|
49
|
+
--arcanea-cosmic-700: #1a1a45; /* Cards and containers */
|
|
50
|
+
--arcanea-cosmic-600: #252560; /* Borders and dividers */
|
|
51
|
+
|
|
52
|
+
/* Primary - Violet Magic */
|
|
53
|
+
--arcanea-primary-50: #f5f3ff;
|
|
54
|
+
--arcanea-primary-100: #ede9fe;
|
|
55
|
+
--arcanea-primary-200: #ddd6fe;
|
|
56
|
+
--arcanea-primary-300: #c4b5fd;
|
|
57
|
+
--arcanea-primary-400: #a78bfa;
|
|
58
|
+
--arcanea-primary-500: #8b5cf6; /* Primary action */
|
|
59
|
+
--arcanea-primary-600: #7c3aed;
|
|
60
|
+
--arcanea-primary-700: #6d28d9;
|
|
61
|
+
--arcanea-primary-800: #5b21b6;
|
|
62
|
+
--arcanea-primary-900: #4c1d95;
|
|
63
|
+
|
|
64
|
+
/* Accent - Cyan Glow */
|
|
65
|
+
--arcanea-accent-50: #ecfeff;
|
|
66
|
+
--arcanea-accent-100: #cffafe;
|
|
67
|
+
--arcanea-accent-200: #a5f3fc;
|
|
68
|
+
--arcanea-accent-300: #67e8f9;
|
|
69
|
+
--arcanea-accent-400: #22d3ee;
|
|
70
|
+
--arcanea-accent-500: #06b6d4; /* Secondary action */
|
|
71
|
+
--arcanea-accent-600: #0891b2;
|
|
72
|
+
--arcanea-accent-700: #0e7490;
|
|
73
|
+
--arcanea-accent-800: #155e75;
|
|
74
|
+
--arcanea-accent-900: #164e63;
|
|
75
|
+
|
|
76
|
+
/* Gold - Achievement */
|
|
77
|
+
--arcanea-gold-50: #fffbeb;
|
|
78
|
+
--arcanea-gold-100: #fef3c7;
|
|
79
|
+
--arcanea-gold-200: #fde68a;
|
|
80
|
+
--arcanea-gold-300: #fcd34d;
|
|
81
|
+
--arcanea-gold-400: #fbbf24;
|
|
82
|
+
--arcanea-gold-500: #f59e0b; /* Achievement, premium */
|
|
83
|
+
--arcanea-gold-600: #d97706;
|
|
84
|
+
--arcanea-gold-700: #b45309;
|
|
85
|
+
--arcanea-gold-800: #92400e;
|
|
86
|
+
--arcanea-gold-900: #78350f;
|
|
87
|
+
|
|
88
|
+
/* Text */
|
|
89
|
+
--arcanea-text-primary: #ffffff;
|
|
90
|
+
--arcanea-text-secondary: rgba(255, 255, 255, 0.7);
|
|
91
|
+
--arcanea-text-tertiary: rgba(255, 255, 255, 0.5);
|
|
92
|
+
--arcanea-text-muted: rgba(255, 255, 255, 0.3);
|
|
93
|
+
|
|
94
|
+
/* Semantic */
|
|
95
|
+
--arcanea-success: #10b981;
|
|
96
|
+
--arcanea-warning: #f59e0b;
|
|
97
|
+
--arcanea-error: #ef4444;
|
|
98
|
+
--arcanea-info: #3b82f6;
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Academy Color Palettes
|
|
102
|
+
|
|
103
|
+
```css
|
|
104
|
+
/* Atlantean Academy - Water & Wisdom */
|
|
105
|
+
--atlantean-deep: #0a2540; /* Deep ocean */
|
|
106
|
+
--atlantean-primary: #0ea5e9; /* Bright water */
|
|
107
|
+
--atlantean-secondary: #06b6d4; /* Teal current */
|
|
108
|
+
--atlantean-accent: #5eead4; /* Bioluminescence */
|
|
109
|
+
--atlantean-glow: rgba(14, 165, 233, 0.3);
|
|
110
|
+
|
|
111
|
+
/* Draconic Academy - Fire & Sky */
|
|
112
|
+
--draconic-shadow: #1c0a0a; /* Ember darkness */
|
|
113
|
+
--draconic-primary: #ef4444; /* Dragon fire */
|
|
114
|
+
--draconic-secondary: #f97316; /* Flame orange */
|
|
115
|
+
--draconic-accent: #fbbf24; /* Gold scale */
|
|
116
|
+
--draconic-sky: #38bdf8; /* Sky blue */
|
|
117
|
+
--draconic-glow: rgba(239, 68, 68, 0.3);
|
|
118
|
+
|
|
119
|
+
/* Creation & Light Academy - Sound & Light */
|
|
120
|
+
--creation-void: #0a0a1a; /* Musical silence */
|
|
121
|
+
--creation-primary: #f5f5f5; /* Pure light */
|
|
122
|
+
--creation-secondary: #8b5cf6; /* Violet frequency */
|
|
123
|
+
--creation-accent: #f59e0b; /* Golden note */
|
|
124
|
+
--creation-prismatic: linear-gradient(90deg,
|
|
125
|
+
#ef4444, #f97316, #fbbf24, #22c55e,
|
|
126
|
+
#3b82f6, #8b5cf6, #ec4899);
|
|
127
|
+
--creation-glow: rgba(245, 245, 245, 0.2);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Typography
|
|
131
|
+
|
|
132
|
+
### Font Stack
|
|
133
|
+
|
|
134
|
+
```css
|
|
135
|
+
/* Display - For heroes and major headings */
|
|
136
|
+
--font-display: 'Cal Sans', 'Inter', system-ui, sans-serif;
|
|
137
|
+
|
|
138
|
+
/* Body - For all content */
|
|
139
|
+
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
|
|
140
|
+
|
|
141
|
+
/* Mono - For code and technical content */
|
|
142
|
+
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Type Scale
|
|
146
|
+
|
|
147
|
+
```css
|
|
148
|
+
/* Base: 16px */
|
|
149
|
+
--text-xs: 0.75rem; /* 12px */
|
|
150
|
+
--text-sm: 0.875rem; /* 14px */
|
|
151
|
+
--text-base: 1rem; /* 16px */
|
|
152
|
+
--text-lg: 1.125rem; /* 18px */
|
|
153
|
+
--text-xl: 1.25rem; /* 20px */
|
|
154
|
+
--text-2xl: 1.5rem; /* 24px */
|
|
155
|
+
--text-3xl: 1.875rem; /* 30px */
|
|
156
|
+
--text-4xl: 2.25rem; /* 36px */
|
|
157
|
+
--text-5xl: 3rem; /* 48px */
|
|
158
|
+
--text-6xl: 3.75rem; /* 60px */
|
|
159
|
+
--text-7xl: 4.5rem; /* 72px */
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Line Heights
|
|
163
|
+
|
|
164
|
+
```css
|
|
165
|
+
--leading-none: 1;
|
|
166
|
+
--leading-tight: 1.25;
|
|
167
|
+
--leading-snug: 1.375;
|
|
168
|
+
--leading-normal: 1.5;
|
|
169
|
+
--leading-relaxed: 1.625;
|
|
170
|
+
--leading-loose: 2;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Spacing System
|
|
174
|
+
|
|
175
|
+
### Base Scale
|
|
176
|
+
|
|
177
|
+
```css
|
|
178
|
+
/* 4px base */
|
|
179
|
+
--space-0: 0;
|
|
180
|
+
--space-1: 0.25rem; /* 4px */
|
|
181
|
+
--space-2: 0.5rem; /* 8px */
|
|
182
|
+
--space-3: 0.75rem; /* 12px */
|
|
183
|
+
--space-4: 1rem; /* 16px */
|
|
184
|
+
--space-5: 1.25rem; /* 20px */
|
|
185
|
+
--space-6: 1.5rem; /* 24px */
|
|
186
|
+
--space-8: 2rem; /* 32px */
|
|
187
|
+
--space-10: 2.5rem; /* 40px */
|
|
188
|
+
--space-12: 3rem; /* 48px */
|
|
189
|
+
--space-16: 4rem; /* 64px */
|
|
190
|
+
--space-20: 5rem; /* 80px */
|
|
191
|
+
--space-24: 6rem; /* 96px */
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Border Radius
|
|
195
|
+
|
|
196
|
+
```css
|
|
197
|
+
--radius-none: 0;
|
|
198
|
+
--radius-sm: 0.25rem; /* 4px */
|
|
199
|
+
--radius-md: 0.375rem; /* 6px */
|
|
200
|
+
--radius-lg: 0.5rem; /* 8px */
|
|
201
|
+
--radius-xl: 0.75rem; /* 12px */
|
|
202
|
+
--radius-2xl: 1rem; /* 16px */
|
|
203
|
+
--radius-3xl: 1.5rem; /* 24px */
|
|
204
|
+
--radius-full: 9999px;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Shadows & Effects
|
|
208
|
+
|
|
209
|
+
### Glow Effects
|
|
210
|
+
|
|
211
|
+
```css
|
|
212
|
+
/* Standard Glows */
|
|
213
|
+
--glow-primary: 0 0 20px rgba(139, 92, 246, 0.4);
|
|
214
|
+
--glow-accent: 0 0 20px rgba(6, 182, 212, 0.4);
|
|
215
|
+
--glow-gold: 0 0 20px rgba(245, 158, 11, 0.4);
|
|
216
|
+
|
|
217
|
+
/* Academy Glows */
|
|
218
|
+
--glow-atlantean: 0 0 30px rgba(14, 165, 233, 0.3);
|
|
219
|
+
--glow-draconic: 0 0 30px rgba(239, 68, 68, 0.3);
|
|
220
|
+
--glow-creation: 0 0 30px rgba(255, 255, 255, 0.2);
|
|
221
|
+
|
|
222
|
+
/* Interactive States */
|
|
223
|
+
--glow-hover: 0 0 40px rgba(139, 92, 246, 0.5);
|
|
224
|
+
--glow-focus: 0 0 0 3px rgba(139, 92, 246, 0.3);
|
|
225
|
+
--glow-active: 0 0 60px rgba(139, 92, 246, 0.6);
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Box Shadows
|
|
229
|
+
|
|
230
|
+
```css
|
|
231
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
232
|
+
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3);
|
|
233
|
+
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);
|
|
234
|
+
--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.5);
|
|
235
|
+
--shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.6);
|
|
236
|
+
|
|
237
|
+
/* Cosmic Shadows (with glow) */
|
|
238
|
+
--shadow-cosmic:
|
|
239
|
+
0 10px 15px rgba(0, 0, 0, 0.4),
|
|
240
|
+
0 0 20px rgba(139, 92, 246, 0.1);
|
|
241
|
+
--shadow-cosmic-lg:
|
|
242
|
+
0 20px 25px rgba(0, 0, 0, 0.5),
|
|
243
|
+
0 0 40px rgba(139, 92, 246, 0.15);
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Gradients
|
|
247
|
+
|
|
248
|
+
```css
|
|
249
|
+
/* Background Gradients */
|
|
250
|
+
--gradient-cosmic: linear-gradient(180deg,
|
|
251
|
+
var(--arcanea-cosmic-900) 0%,
|
|
252
|
+
var(--arcanea-cosmic-950) 100%);
|
|
253
|
+
|
|
254
|
+
--gradient-surface: linear-gradient(135deg,
|
|
255
|
+
rgba(255, 255, 255, 0.05) 0%,
|
|
256
|
+
rgba(255, 255, 255, 0.02) 100%);
|
|
257
|
+
|
|
258
|
+
/* Accent Gradients */
|
|
259
|
+
--gradient-primary: linear-gradient(135deg,
|
|
260
|
+
var(--arcanea-primary-500) 0%,
|
|
261
|
+
var(--arcanea-primary-600) 100%);
|
|
262
|
+
|
|
263
|
+
--gradient-glow: linear-gradient(135deg,
|
|
264
|
+
var(--arcanea-primary-500) 0%,
|
|
265
|
+
var(--arcanea-accent-500) 100%);
|
|
266
|
+
|
|
267
|
+
/* Academy Gradients */
|
|
268
|
+
--gradient-atlantean: linear-gradient(180deg,
|
|
269
|
+
rgba(14, 165, 233, 0.2) 0%,
|
|
270
|
+
transparent 100%);
|
|
271
|
+
|
|
272
|
+
--gradient-draconic: linear-gradient(180deg,
|
|
273
|
+
rgba(239, 68, 68, 0.2) 0%,
|
|
274
|
+
transparent 100%);
|
|
275
|
+
|
|
276
|
+
--gradient-creation: radial-gradient(ellipse at center,
|
|
277
|
+
rgba(255, 255, 255, 0.1) 0%,
|
|
278
|
+
transparent 70%);
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Animation Standards
|
|
282
|
+
|
|
283
|
+
### Timing Functions
|
|
284
|
+
|
|
285
|
+
```css
|
|
286
|
+
--ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
|
|
287
|
+
--ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
288
|
+
--ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6);
|
|
289
|
+
--ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Duration Scale
|
|
293
|
+
|
|
294
|
+
```css
|
|
295
|
+
--duration-instant: 50ms;
|
|
296
|
+
--duration-fast: 150ms;
|
|
297
|
+
--duration-normal: 250ms;
|
|
298
|
+
--duration-slow: 400ms;
|
|
299
|
+
--duration-slower: 600ms;
|
|
300
|
+
--duration-slowest: 1000ms;
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Common Animations
|
|
304
|
+
|
|
305
|
+
```css
|
|
306
|
+
/* Fade In */
|
|
307
|
+
@keyframes fadeIn {
|
|
308
|
+
from { opacity: 0; }
|
|
309
|
+
to { opacity: 1; }
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/* Slide Up */
|
|
313
|
+
@keyframes slideUp {
|
|
314
|
+
from {
|
|
315
|
+
opacity: 0;
|
|
316
|
+
transform: translateY(20px);
|
|
317
|
+
}
|
|
318
|
+
to {
|
|
319
|
+
opacity: 1;
|
|
320
|
+
transform: translateY(0);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/* Scale In */
|
|
325
|
+
@keyframes scaleIn {
|
|
326
|
+
from {
|
|
327
|
+
opacity: 0;
|
|
328
|
+
transform: scale(0.95);
|
|
329
|
+
}
|
|
330
|
+
to {
|
|
331
|
+
opacity: 1;
|
|
332
|
+
transform: scale(1);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Glow Pulse */
|
|
337
|
+
@keyframes glowPulse {
|
|
338
|
+
0%, 100% { box-shadow: 0 0 20px rgba(139, 92, 246, 0.4); }
|
|
339
|
+
50% { box-shadow: 0 0 40px rgba(139, 92, 246, 0.6); }
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* Float */
|
|
343
|
+
@keyframes float {
|
|
344
|
+
0%, 100% { transform: translateY(0); }
|
|
345
|
+
50% { transform: translateY(-10px); }
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* Shimmer (for loading) */
|
|
349
|
+
@keyframes shimmer {
|
|
350
|
+
0% { background-position: -200% 0; }
|
|
351
|
+
100% { background-position: 200% 0; }
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* Star Twinkle */
|
|
355
|
+
@keyframes twinkle {
|
|
356
|
+
0%, 100% { opacity: 0.3; }
|
|
357
|
+
50% { opacity: 1; }
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Framer Motion Variants
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
// Standard Transitions
|
|
365
|
+
export const transitions = {
|
|
366
|
+
spring: { type: "spring", stiffness: 300, damping: 30 },
|
|
367
|
+
smooth: { type: "tween", ease: [0.4, 0, 0.2, 1], duration: 0.25 },
|
|
368
|
+
bounce: { type: "spring", stiffness: 400, damping: 10 },
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
// Fade In
|
|
372
|
+
export const fadeIn = {
|
|
373
|
+
initial: { opacity: 0 },
|
|
374
|
+
animate: { opacity: 1 },
|
|
375
|
+
exit: { opacity: 0 },
|
|
376
|
+
transition: transitions.smooth,
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
// Slide Up
|
|
380
|
+
export const slideUp = {
|
|
381
|
+
initial: { opacity: 0, y: 20 },
|
|
382
|
+
animate: { opacity: 1, y: 0 },
|
|
383
|
+
exit: { opacity: 0, y: 20 },
|
|
384
|
+
transition: transitions.spring,
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
// Scale
|
|
388
|
+
export const scale = {
|
|
389
|
+
initial: { opacity: 0, scale: 0.95 },
|
|
390
|
+
animate: { opacity: 1, scale: 1 },
|
|
391
|
+
exit: { opacity: 0, scale: 0.95 },
|
|
392
|
+
transition: transitions.spring,
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
// Stagger Container
|
|
396
|
+
export const stagger = {
|
|
397
|
+
animate: {
|
|
398
|
+
transition: {
|
|
399
|
+
staggerChildren: 0.1,
|
|
400
|
+
},
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
## Component Patterns
|
|
406
|
+
|
|
407
|
+
### Cards
|
|
408
|
+
|
|
409
|
+
```tsx
|
|
410
|
+
// Base Card
|
|
411
|
+
<div className="
|
|
412
|
+
bg-arcanea-cosmic-800/50
|
|
413
|
+
backdrop-blur-sm
|
|
414
|
+
border border-arcanea-cosmic-600/50
|
|
415
|
+
rounded-2xl
|
|
416
|
+
p-6
|
|
417
|
+
transition-all duration-300
|
|
418
|
+
hover:border-arcanea-primary-500/50
|
|
419
|
+
hover:shadow-cosmic
|
|
420
|
+
">
|
|
421
|
+
|
|
422
|
+
// Academy Card (Atlantean example)
|
|
423
|
+
<div className="
|
|
424
|
+
bg-gradient-to-br from-atlantean-deep/80 to-arcanea-cosmic-800/50
|
|
425
|
+
backdrop-blur-sm
|
|
426
|
+
border border-atlantean-primary/30
|
|
427
|
+
rounded-2xl
|
|
428
|
+
p-6
|
|
429
|
+
shadow-[0_0_20px_rgba(14,165,233,0.1)]
|
|
430
|
+
transition-all duration-300
|
|
431
|
+
hover:shadow-glow-atlantean
|
|
432
|
+
hover:border-atlantean-primary/50
|
|
433
|
+
">
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Buttons
|
|
437
|
+
|
|
438
|
+
```tsx
|
|
439
|
+
// Primary Button
|
|
440
|
+
<button className="
|
|
441
|
+
px-6 py-3
|
|
442
|
+
bg-gradient-to-r from-arcanea-primary-500 to-arcanea-primary-600
|
|
443
|
+
hover:from-arcanea-primary-400 hover:to-arcanea-primary-500
|
|
444
|
+
text-white font-medium
|
|
445
|
+
rounded-xl
|
|
446
|
+
shadow-glow-primary
|
|
447
|
+
transition-all duration-300
|
|
448
|
+
hover:shadow-glow-hover
|
|
449
|
+
hover:-translate-y-0.5
|
|
450
|
+
focus:outline-none focus:ring-2 focus:ring-arcanea-primary-400/50
|
|
451
|
+
">
|
|
452
|
+
|
|
453
|
+
// Ghost Button
|
|
454
|
+
<button className="
|
|
455
|
+
px-6 py-3
|
|
456
|
+
bg-transparent
|
|
457
|
+
border border-arcanea-cosmic-600
|
|
458
|
+
hover:border-arcanea-primary-500
|
|
459
|
+
hover:bg-arcanea-primary-500/10
|
|
460
|
+
text-arcanea-text-secondary
|
|
461
|
+
hover:text-arcanea-text-primary
|
|
462
|
+
rounded-xl
|
|
463
|
+
transition-all duration-300
|
|
464
|
+
">
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### Inputs
|
|
468
|
+
|
|
469
|
+
```tsx
|
|
470
|
+
// Text Input
|
|
471
|
+
<input className="
|
|
472
|
+
w-full px-4 py-3
|
|
473
|
+
bg-arcanea-cosmic-800/50
|
|
474
|
+
border border-arcanea-cosmic-600
|
|
475
|
+
rounded-xl
|
|
476
|
+
text-arcanea-text-primary
|
|
477
|
+
placeholder:text-arcanea-text-muted
|
|
478
|
+
transition-all duration-300
|
|
479
|
+
focus:outline-none
|
|
480
|
+
focus:border-arcanea-primary-500
|
|
481
|
+
focus:ring-2 focus:ring-arcanea-primary-500/20
|
|
482
|
+
focus:shadow-glow-focus
|
|
483
|
+
" />
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Luminor Presence Indicator
|
|
487
|
+
|
|
488
|
+
```tsx
|
|
489
|
+
// Luminor Avatar with Glow
|
|
490
|
+
<div className="relative">
|
|
491
|
+
<div className="
|
|
492
|
+
w-12 h-12
|
|
493
|
+
rounded-full
|
|
494
|
+
bg-gradient-to-br from-arcanea-primary-400 to-arcanea-accent-500
|
|
495
|
+
shadow-glow-primary
|
|
496
|
+
animate-[glowPulse_3s_ease-in-out_infinite]
|
|
497
|
+
">
|
|
498
|
+
<img src={luminor.avatar} className="w-full h-full rounded-full" />
|
|
499
|
+
</div>
|
|
500
|
+
|
|
501
|
+
{/* Online Indicator */}
|
|
502
|
+
<div className="
|
|
503
|
+
absolute bottom-0 right-0
|
|
504
|
+
w-3 h-3
|
|
505
|
+
bg-arcanea-success
|
|
506
|
+
rounded-full
|
|
507
|
+
border-2 border-arcanea-cosmic-900
|
|
508
|
+
shadow-[0_0_10px_rgba(16,185,129,0.5)]
|
|
509
|
+
" />
|
|
510
|
+
</div>
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
### Academy Badge
|
|
514
|
+
|
|
515
|
+
```tsx
|
|
516
|
+
// Dynamic Academy Badge
|
|
517
|
+
const academyStyles = {
|
|
518
|
+
atlantean: "from-atlantean-primary to-atlantean-secondary shadow-glow-atlantean",
|
|
519
|
+
draconic: "from-draconic-primary to-draconic-accent shadow-glow-draconic",
|
|
520
|
+
creation: "from-creation-primary to-creation-secondary shadow-glow-creation",
|
|
521
|
+
};
|
|
522
|
+
|
|
523
|
+
<div className={`
|
|
524
|
+
px-3 py-1
|
|
525
|
+
bg-gradient-to-r ${academyStyles[academy]}
|
|
526
|
+
rounded-full
|
|
527
|
+
text-xs font-medium
|
|
528
|
+
uppercase tracking-wide
|
|
529
|
+
`}>
|
|
530
|
+
{academyName}
|
|
531
|
+
</div>
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
## Accessibility Requirements
|
|
535
|
+
|
|
536
|
+
### Color Contrast
|
|
537
|
+
|
|
538
|
+
All text must meet WCAG 2.1 AA standards:
|
|
539
|
+
- Normal text: 4.5:1 contrast ratio
|
|
540
|
+
- Large text (18px+): 3:1 contrast ratio
|
|
541
|
+
- UI components: 3:1 contrast ratio
|
|
542
|
+
|
|
543
|
+
### Focus States
|
|
544
|
+
|
|
545
|
+
All interactive elements must have visible focus indicators:
|
|
546
|
+
```css
|
|
547
|
+
.focus-visible:focus {
|
|
548
|
+
outline: none;
|
|
549
|
+
ring: 2px;
|
|
550
|
+
ring-color: var(--arcanea-primary-400);
|
|
551
|
+
ring-offset: 2px;
|
|
552
|
+
ring-offset-color: var(--arcanea-cosmic-900);
|
|
553
|
+
}
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### Motion Preferences
|
|
557
|
+
|
|
558
|
+
Respect user's motion preferences:
|
|
559
|
+
```css
|
|
560
|
+
@media (prefers-reduced-motion: reduce) {
|
|
561
|
+
*, *::before, *::after {
|
|
562
|
+
animation-duration: 0.01ms !important;
|
|
563
|
+
animation-iteration-count: 1 !important;
|
|
564
|
+
transition-duration: 0.01ms !important;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
### Screen Reader Support
|
|
570
|
+
|
|
571
|
+
- All images have meaningful alt text
|
|
572
|
+
- Icon-only buttons have aria-labels
|
|
573
|
+
- Dynamic content uses aria-live regions
|
|
574
|
+
- Modal dialogs trap focus appropriately
|
|
575
|
+
|
|
576
|
+
## Responsive Breakpoints
|
|
577
|
+
|
|
578
|
+
```css
|
|
579
|
+
/* Mobile First */
|
|
580
|
+
--screen-sm: 640px; /* Small devices */
|
|
581
|
+
--screen-md: 768px; /* Tablets */
|
|
582
|
+
--screen-lg: 1024px; /* Laptops */
|
|
583
|
+
--screen-xl: 1280px; /* Desktops */
|
|
584
|
+
--screen-2xl: 1536px; /* Large screens */
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
## Component Library Reference
|
|
588
|
+
|
|
589
|
+
Using shadcn/ui components with Arcanean customization:
|
|
590
|
+
- Button, Card, Dialog, Dropdown
|
|
591
|
+
- Input, Textarea, Select
|
|
592
|
+
- Tabs, Accordion, Avatar
|
|
593
|
+
- Toast, Tooltip, Popover
|
|
594
|
+
|
|
595
|
+
All components override default themes with Arcanean tokens.
|
|
596
|
+
|
|
597
|
+
## Integration Guidelines
|
|
598
|
+
|
|
599
|
+
### When Building UI
|
|
600
|
+
|
|
601
|
+
1. **Start with tokens** - Use design tokens, not raw values
|
|
602
|
+
2. **Layer properly** - cosmic-900 → cosmic-800 → cosmic-700 for depth
|
|
603
|
+
3. **Glow intentionally** - Use glows for interactive elements and focus
|
|
604
|
+
4. **Animate purposefully** - Motion should guide attention
|
|
605
|
+
5. **Academy-aware** - Adapt colors when in academy context
|
|
606
|
+
|
|
607
|
+
### Quality Checklist
|
|
608
|
+
|
|
609
|
+
```markdown
|
|
610
|
+
## Design System Compliance
|
|
611
|
+
|
|
612
|
+
- [ ] Uses Arcanean color tokens
|
|
613
|
+
- [ ] Correct typography scale
|
|
614
|
+
- [ ] Proper spacing (4px grid)
|
|
615
|
+
- [ ] Glow effects for interactives
|
|
616
|
+
- [ ] Smooth animations (spring-based)
|
|
617
|
+
- [ ] Academy colors if applicable
|
|
618
|
+
- [ ] Accessible contrast ratios
|
|
619
|
+
- [ ] Focus states visible
|
|
620
|
+
- [ ] Motion preference respected
|
|
621
|
+
- [ ] Responsive across breakpoints
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
*This design system ensures every pixel of Arcanea feels magical, consistent, and welcoming. Build with care.*
|