@jaimevalasek/aioson 1.4.0 → 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/CHANGELOG.md +31 -1
- package/LICENSE +661 -21
- package/README.md +9 -1
- package/docs/design-previews/aurora-command-ui-website.html +884 -0
- package/docs/design-previews/aurora-command-ui.html +682 -0
- package/docs/design-previews/bold-editorial-ui-website.html +658 -0
- package/docs/design-previews/bold-editorial-ui.html +717 -0
- package/docs/design-previews/clean-saas-ui-website.html +1202 -0
- package/docs/design-previews/clean-saas-ui.html +549 -0
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
- package/docs/design-previews/cognitive-core-ui.html +463 -0
- package/docs/design-previews/glassmorphism-ui-website.html +572 -0
- package/docs/design-previews/glassmorphism-ui.html +886 -0
- package/docs/design-previews/index.html +699 -0
- package/docs/design-previews/interface-design-website.html +1187 -0
- package/docs/design-previews/interface-design.html +513 -0
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
- package/docs/design-previews/neo-brutalist-ui.html +797 -0
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
- package/docs/design-previews/premium-command-center-ui.html +552 -0
- package/docs/design-previews/warm-craft-ui-website.html +684 -0
- package/docs/design-previews/warm-craft-ui.html +739 -0
- package/docs/en/cli-reference.md +20 -9
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +7 -0
- package/docs/pt/agent-sharding.md +132 -0
- package/docs/pt/agentes.md +131 -11
- package/docs/pt/busca-de-contexto.md +129 -0
- package/docs/pt/cache-de-contexto.md +156 -0
- package/docs/pt/cenarios.md +46 -2
- package/docs/pt/comandos-cli.md +88 -1
- package/docs/pt/design-hybrid-forge.md +107 -0
- package/docs/pt/inicio-rapido.md +72 -5
- package/docs/pt/inteligencia-adaptativa.md +324 -0
- package/docs/pt/monitor-de-contexto.md +104 -0
- package/docs/pt/recuperacao-de-sessao.md +125 -0
- package/docs/pt/sandbox.md +125 -0
- package/docs/pt/skills.md +98 -6
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +9 -9
- package/package.json +2 -2
- package/src/agent-loader.js +280 -0
- package/src/backup-local.js +74 -0
- package/src/cli.js +192 -0
- package/src/commands/agent-loader.js +85 -0
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/context-cache.js +90 -0
- package/src/commands/context-monitor.js +92 -0
- package/src/commands/context-search.js +66 -0
- package/src/commands/design-hybrid-options.js +385 -0
- package/src/commands/health.js +214 -0
- package/src/commands/init.js +54 -13
- package/src/commands/install.js +52 -13
- package/src/commands/learning-evolve.js +355 -0
- package/src/commands/live.js +34 -0
- package/src/commands/recovery.js +43 -0
- package/src/commands/runtime.js +242 -0
- package/src/commands/sandbox.js +37 -0
- package/src/commands/setup-context.js +29 -4
- package/src/commands/setup.js +178 -0
- package/src/commands/skill.js +79 -32
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +52 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +37 -1
- package/src/commands/squad-validate.js +62 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/tool-registry-cmd.js +232 -0
- package/src/commands/update.js +7 -0
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/constants.js +17 -0
- package/src/context-cache.js +159 -0
- package/src/context-search.js +326 -0
- package/src/context-writer.js +45 -1
- package/src/design-variation-catalog.js +503 -0
- package/src/i18n/messages/en.js +159 -3
- package/src/i18n/messages/es.js +147 -2
- package/src/i18n/messages/fr.js +147 -2
- package/src/i18n/messages/pt-BR.js +158 -3
- package/src/install-animation.js +260 -0
- package/src/install-profile.js +143 -0
- package/src/install-wizard.js +474 -0
- package/src/installer.js +38 -10
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/parser.js +7 -1
- package/src/recovery-context-session.js +154 -0
- package/src/runtime-store.js +355 -2
- package/src/sandbox.js +177 -0
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/tool-executor.js +94 -0
- package/src/updater.js +11 -3
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +62 -3
- package/template/.aioson/agents/architect.md +42 -0
- package/template/.aioson/agents/design-hybrid-forge.md +127 -0
- package/template/.aioson/agents/dev.md +223 -11
- package/template/.aioson/agents/deyvin.md +65 -0
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +17 -0
- package/template/.aioson/agents/orchestrator.md +26 -0
- package/template/.aioson/agents/pm.md +58 -0
- package/template/.aioson/agents/product.md +88 -12
- package/template/.aioson/agents/qa.md +80 -0
- package/template/.aioson/agents/setup.md +128 -22
- package/template/.aioson/agents/sheldon.md +704 -0
- package/template/.aioson/agents/squad.md +191 -0
- package/template/.aioson/agents/tester.md +410 -0
- package/template/.aioson/agents/ux-ui.md +12 -0
- package/template/.aioson/config.md +21 -0
- package/template/.aioson/context/forensics/.gitkeep +0 -0
- package/template/.aioson/context/seeds/seed-example.md +27 -0
- package/template/.aioson/context/user-profile.md +42 -0
- package/template/.aioson/locales/en/agents/analyst.md +8 -0
- package/template/.aioson/locales/en/agents/architect.md +8 -0
- package/template/.aioson/locales/en/agents/dev.md +66 -7
- package/template/.aioson/locales/en/agents/deyvin.md +8 -0
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/en/agents/qa.md +49 -0
- package/template/.aioson/locales/en/agents/setup.md +35 -2
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/es/agents/analyst.md +8 -0
- package/template/.aioson/locales/es/agents/architect.md +8 -0
- package/template/.aioson/locales/es/agents/dev.md +66 -7
- package/template/.aioson/locales/es/agents/deyvin.md +8 -0
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/qa.md +26 -0
- package/template/.aioson/locales/es/agents/setup.md +35 -2
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +63 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/fr/agents/analyst.md +8 -0
- package/template/.aioson/locales/fr/agents/architect.md +8 -0
- package/template/.aioson/locales/fr/agents/dev.md +66 -7
- package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/qa.md +26 -0
- package/template/.aioson/locales/fr/agents/setup.md +35 -2
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +63 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
- package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +35 -2
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +144 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +291 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +19 -0
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +1 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +26 -1
- package/template/CLAUDE.md +6 -2
- package/template/OPENCODE.md +2 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Design Tokens — Warm Craft UI
|
|
2
|
+
|
|
3
|
+
All components and patterns depend on these tokens. Load this file first before any other reference.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Typography strategy
|
|
8
|
+
|
|
9
|
+
Default to **system fonts** first. Add Google Fonts only when the agent decides the stack, product context, and delivery constraints justify them.
|
|
10
|
+
|
|
11
|
+
**System font stack (default — works everywhere, no CDN needed):**
|
|
12
|
+
```css
|
|
13
|
+
--font-display: Georgia, "Times New Roman", "Noto Serif", serif;
|
|
14
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
|
|
15
|
+
--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Google Fonts (optional — use when building the full Warm Craft aesthetic explicitly):**
|
|
19
|
+
```css
|
|
20
|
+
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Inter:wght@400;500;600;700&display=swap');
|
|
21
|
+
|
|
22
|
+
--font-display: 'Source Serif 4', Georgia, serif;
|
|
23
|
+
--font-body: 'Inter', system-ui, sans-serif;
|
|
24
|
+
--font-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Complete CSS Variables
|
|
30
|
+
|
|
31
|
+
Include this full block in every project.
|
|
32
|
+
|
|
33
|
+
```css
|
|
34
|
+
/* ═══════════════════════════════════════════
|
|
35
|
+
SHARED TOKENS — in :root (see Token Scope Guardrails)
|
|
36
|
+
═══════════════════════════════════════════ */
|
|
37
|
+
:root {
|
|
38
|
+
/* Typography */
|
|
39
|
+
--font-display: Georgia, "Times New Roman", "Noto Serif", serif;
|
|
40
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
|
|
41
|
+
--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
|
|
42
|
+
|
|
43
|
+
/* Font Sizes */
|
|
44
|
+
--text-xs: 0.75rem; /* 12px — small labels, metadata */
|
|
45
|
+
--text-sm: 0.875rem; /* 14px */
|
|
46
|
+
--text-base: 1rem; /* 16px — default body */
|
|
47
|
+
--text-lg: 1.125rem; /* 18px */
|
|
48
|
+
--text-xl: 1.25rem; /* 20px */
|
|
49
|
+
--text-2xl: 1.5rem; /* 24px */
|
|
50
|
+
--text-3xl: 2rem; /* 32px */
|
|
51
|
+
--text-4xl: 2.5rem; /* 40px — stat numbers */
|
|
52
|
+
--text-5xl: 3.5rem; /* 56px — hero headings */
|
|
53
|
+
|
|
54
|
+
/* Font Weights */
|
|
55
|
+
--weight-normal: 400;
|
|
56
|
+
--weight-medium: 500;
|
|
57
|
+
--weight-semibold: 600;
|
|
58
|
+
--weight-bold: 700;
|
|
59
|
+
|
|
60
|
+
/* Letter Spacing */
|
|
61
|
+
--tracking-tight: -0.02em;
|
|
62
|
+
--tracking-normal: 0;
|
|
63
|
+
--tracking-wide: 0.02em;
|
|
64
|
+
--tracking-wider: 0.05em;
|
|
65
|
+
|
|
66
|
+
/* Line Height */
|
|
67
|
+
--leading-none: 1;
|
|
68
|
+
--leading-tight: 1.2;
|
|
69
|
+
--leading-snug: 1.35;
|
|
70
|
+
--leading-normal: 1.6;
|
|
71
|
+
--leading-relaxed: 1.75;
|
|
72
|
+
|
|
73
|
+
/* Spacing — 4px base rhythm */
|
|
74
|
+
--space-0: 0;
|
|
75
|
+
--space-1: 0.25rem; /* 4px */
|
|
76
|
+
--space-2: 0.5rem; /* 8px */
|
|
77
|
+
--space-3: 0.75rem; /* 12px */
|
|
78
|
+
--space-4: 1rem; /* 16px */
|
|
79
|
+
--space-5: 1.25rem; /* 20px */
|
|
80
|
+
--space-6: 1.5rem; /* 24px */
|
|
81
|
+
--space-8: 2rem; /* 32px */
|
|
82
|
+
--space-10: 2.5rem; /* 40px */
|
|
83
|
+
--space-12: 3rem; /* 48px */
|
|
84
|
+
--space-16: 4rem; /* 64px */
|
|
85
|
+
--space-20: 5rem; /* 80px */
|
|
86
|
+
--space-24: 6rem; /* 96px */
|
|
87
|
+
--space-32: 8rem; /* 128px — hero sections */
|
|
88
|
+
|
|
89
|
+
/* Border Radius — generously rounded */
|
|
90
|
+
--radius-sm: 0.375rem; /* 6px — badges, small chips */
|
|
91
|
+
--radius-md: 0.5rem; /* 8px — inputs, small buttons */
|
|
92
|
+
--radius-lg: 0.75rem; /* 12px — buttons, medium cards */
|
|
93
|
+
--radius-xl: 1rem; /* 16px — cards, panels */
|
|
94
|
+
--radius-2xl: 1.5rem; /* 24px — large cards, modals */
|
|
95
|
+
--radius-3xl: 2rem; /* 32px — hero sections, feature cards */
|
|
96
|
+
--radius-full: 9999px; /* pills, avatars */
|
|
97
|
+
|
|
98
|
+
/* Interactive element heights */
|
|
99
|
+
--control-sm: 2rem; /* 32px — compact buttons */
|
|
100
|
+
--control-md: 2.5rem; /* 40px — default buttons and inputs */
|
|
101
|
+
--control-lg: 3rem; /* 48px — large buttons, prominent inputs */
|
|
102
|
+
--control-xl: 3.5rem; /* 56px — hero CTAs */
|
|
103
|
+
|
|
104
|
+
/* Transitions */
|
|
105
|
+
--transition-fast: 120ms ease;
|
|
106
|
+
--transition-base: 200ms ease;
|
|
107
|
+
--transition-slow: 320ms ease;
|
|
108
|
+
--transition-theme: background 200ms ease, color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
|
|
109
|
+
|
|
110
|
+
/* Focus */
|
|
111
|
+
--focus-ring-width: 2px;
|
|
112
|
+
--focus-ring-offset: 2px;
|
|
113
|
+
|
|
114
|
+
/* Z-index */
|
|
115
|
+
--z-base: 0;
|
|
116
|
+
--z-elevated: 10;
|
|
117
|
+
--z-dropdown: 20;
|
|
118
|
+
--z-sticky: 30;
|
|
119
|
+
--z-modal: 50;
|
|
120
|
+
--z-toast: 60;
|
|
121
|
+
|
|
122
|
+
/* Content widths */
|
|
123
|
+
--content-sm: 640px; /* narrow reading column */
|
|
124
|
+
--content-md: 768px; /* medium content */
|
|
125
|
+
--content-lg: 1024px; /* standard content */
|
|
126
|
+
--content-xl: 1280px; /* wide content */
|
|
127
|
+
--content-full: 1440px; /* max container */
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* ═══════════════════════════════════════════
|
|
131
|
+
LIGHT THEME (default)
|
|
132
|
+
═══════════════════════════════════════════ */
|
|
133
|
+
[data-theme="light"] {
|
|
134
|
+
/* Backgrounds — layered warm whites */
|
|
135
|
+
--bg-void: #F8F6F3;
|
|
136
|
+
--bg-base: #FDFCFA;
|
|
137
|
+
--bg-surface: #FFFFFF;
|
|
138
|
+
--bg-elevated: #F3F1ED;
|
|
139
|
+
--bg-overlay: #EAE7E2;
|
|
140
|
+
|
|
141
|
+
/* Borders */
|
|
142
|
+
--border-subtle: rgba(45, 52, 54, 0.06);
|
|
143
|
+
--border-medium: rgba(45, 52, 54, 0.12);
|
|
144
|
+
--border-strong: rgba(45, 52, 54, 0.20);
|
|
145
|
+
--border-accent: rgba(224, 122, 95, 0.24);
|
|
146
|
+
--border-accent-strong: rgba(224, 122, 95, 0.48);
|
|
147
|
+
|
|
148
|
+
/* Text */
|
|
149
|
+
--text-heading: #2D3436;
|
|
150
|
+
--text-primary: #4A5568;
|
|
151
|
+
--text-secondary: #8896A6;
|
|
152
|
+
--text-muted: #B0BCC7;
|
|
153
|
+
--text-accent: #C4563A;
|
|
154
|
+
--text-inverse: #FDFCFA;
|
|
155
|
+
|
|
156
|
+
/* Accent — terracotta/warm coral */
|
|
157
|
+
--accent: #E07A5F;
|
|
158
|
+
--accent-strong: #C4563A;
|
|
159
|
+
--accent-dim: rgba(224, 122, 95, 0.12);
|
|
160
|
+
--accent-glow: rgba(224, 122, 95, 0.08);
|
|
161
|
+
--accent-subtle: rgba(224, 122, 95, 0.05);
|
|
162
|
+
--accent-hover: #D4694E;
|
|
163
|
+
--accent-contrast: #FFFFFF;
|
|
164
|
+
|
|
165
|
+
/* Secondary accent — sage green (for success, secondary actions) */
|
|
166
|
+
--accent-secondary: #7C9A82;
|
|
167
|
+
--accent-secondary-dim: rgba(124, 154, 130, 0.12);
|
|
168
|
+
|
|
169
|
+
/* Tertiary — warm amber (for warnings, highlights) */
|
|
170
|
+
--accent-tertiary: #D4A76A;
|
|
171
|
+
--accent-tertiary-dim: rgba(212, 167, 106, 0.12);
|
|
172
|
+
|
|
173
|
+
/* Semantic */
|
|
174
|
+
--semantic-green: #5A9E6F;
|
|
175
|
+
--semantic-green-dim: rgba(90, 158, 111, 0.12);
|
|
176
|
+
--semantic-amber: #D4A76A;
|
|
177
|
+
--semantic-amber-dim: rgba(212, 167, 106, 0.12);
|
|
178
|
+
--semantic-red: #D35D6E;
|
|
179
|
+
--semantic-red-dim: rgba(211, 93, 110, 0.12);
|
|
180
|
+
--semantic-blue: #5B8DB8;
|
|
181
|
+
--semantic-blue-dim: rgba(91, 141, 184, 0.12);
|
|
182
|
+
--semantic-purple: #9B8EC4;
|
|
183
|
+
--semantic-purple-dim: rgba(155, 142, 196, 0.12);
|
|
184
|
+
|
|
185
|
+
/* Shadows — warm-tinted, soft */
|
|
186
|
+
--shadow-xs: 0 1px 2px rgba(45, 40, 35, 0.04);
|
|
187
|
+
--shadow-sm: 0 1px 3px rgba(45, 40, 35, 0.06), 0 1px 2px rgba(45, 40, 35, 0.04);
|
|
188
|
+
--shadow-md: 0 4px 12px rgba(45, 40, 35, 0.08), 0 2px 4px rgba(45, 40, 35, 0.04);
|
|
189
|
+
--shadow-lg: 0 12px 32px rgba(45, 40, 35, 0.10), 0 4px 8px rgba(45, 40, 35, 0.04);
|
|
190
|
+
--shadow-xl: 0 20px 48px rgba(45, 40, 35, 0.12), 0 8px 16px rgba(45, 40, 35, 0.04);
|
|
191
|
+
--shadow-glow: 0 0 0 1px rgba(224, 122, 95, 0.06), 0 8px 24px rgba(45, 40, 35, 0.08);
|
|
192
|
+
|
|
193
|
+
/* Scrollbar */
|
|
194
|
+
--scrollbar-track: #F3F1ED;
|
|
195
|
+
--scrollbar-thumb: #D4CFC8;
|
|
196
|
+
|
|
197
|
+
/* Focus ring */
|
|
198
|
+
--focus-ring-color: rgba(224, 122, 95, 0.40);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/* ═══════════════════════════════════════════
|
|
202
|
+
DARK THEME
|
|
203
|
+
═══════════════════════════════════════════ */
|
|
204
|
+
[data-theme="dark"] {
|
|
205
|
+
/* Backgrounds — layered warm darks */
|
|
206
|
+
--bg-void: #1A1814;
|
|
207
|
+
--bg-base: #211F1B;
|
|
208
|
+
--bg-surface: #2A2824;
|
|
209
|
+
--bg-elevated: #353330;
|
|
210
|
+
--bg-overlay: #403E3A;
|
|
211
|
+
|
|
212
|
+
/* Borders */
|
|
213
|
+
--border-subtle: rgba(245, 240, 235, 0.06);
|
|
214
|
+
--border-medium: rgba(245, 240, 235, 0.10);
|
|
215
|
+
--border-strong: rgba(245, 240, 235, 0.16);
|
|
216
|
+
--border-accent: rgba(240, 150, 125, 0.22);
|
|
217
|
+
--border-accent-strong: rgba(240, 150, 125, 0.44);
|
|
218
|
+
|
|
219
|
+
/* Text */
|
|
220
|
+
--text-heading: #F5F0EB;
|
|
221
|
+
--text-primary: #D4CBC2;
|
|
222
|
+
--text-secondary: #9A9088;
|
|
223
|
+
--text-muted: #6B6460;
|
|
224
|
+
--text-accent: #F0967D;
|
|
225
|
+
--text-inverse: #1A1814;
|
|
226
|
+
|
|
227
|
+
/* Accent — lighter terracotta for dark backgrounds */
|
|
228
|
+
--accent: #F0967D;
|
|
229
|
+
--accent-strong: #E07A5F;
|
|
230
|
+
--accent-dim: rgba(240, 150, 125, 0.14);
|
|
231
|
+
--accent-glow: rgba(240, 150, 125, 0.10);
|
|
232
|
+
--accent-subtle: rgba(240, 150, 125, 0.06);
|
|
233
|
+
--accent-hover: #F4A68E;
|
|
234
|
+
--accent-contrast: #1A1814;
|
|
235
|
+
|
|
236
|
+
/* Secondary accent — sage green */
|
|
237
|
+
--accent-secondary: #8DB896;
|
|
238
|
+
--accent-secondary-dim: rgba(141, 184, 150, 0.14);
|
|
239
|
+
|
|
240
|
+
/* Tertiary — warm amber */
|
|
241
|
+
--accent-tertiary: #E0BD82;
|
|
242
|
+
--accent-tertiary-dim: rgba(224, 189, 130, 0.14);
|
|
243
|
+
|
|
244
|
+
/* Semantic */
|
|
245
|
+
--semantic-green: #6BB87A;
|
|
246
|
+
--semantic-green-dim: rgba(107, 184, 122, 0.14);
|
|
247
|
+
--semantic-amber: #E0BD82;
|
|
248
|
+
--semantic-amber-dim: rgba(224, 189, 130, 0.14);
|
|
249
|
+
--semantic-red: #E07080;
|
|
250
|
+
--semantic-red-dim: rgba(224, 112, 128, 0.14);
|
|
251
|
+
--semantic-blue: #7CAED4;
|
|
252
|
+
--semantic-blue-dim: rgba(124, 174, 212, 0.14);
|
|
253
|
+
--semantic-purple: #B0A2D8;
|
|
254
|
+
--semantic-purple-dim: rgba(176, 162, 216, 0.14);
|
|
255
|
+
|
|
256
|
+
/* Shadows */
|
|
257
|
+
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.16);
|
|
258
|
+
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.20), 0 1px 2px rgba(0, 0, 0, 0.12);
|
|
259
|
+
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.24), 0 2px 4px rgba(0, 0, 0, 0.12);
|
|
260
|
+
--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.32), 0 4px 8px rgba(0, 0, 0, 0.16);
|
|
261
|
+
--shadow-xl: 0 20px 48px rgba(0, 0, 0, 0.40), 0 8px 16px rgba(0, 0, 0, 0.20);
|
|
262
|
+
--shadow-glow: 0 0 0 1px rgba(240, 150, 125, 0.06), 0 8px 24px rgba(0, 0, 0, 0.28);
|
|
263
|
+
|
|
264
|
+
/* Scrollbar */
|
|
265
|
+
--scrollbar-track: #211F1B;
|
|
266
|
+
--scrollbar-thumb: #403E3A;
|
|
267
|
+
|
|
268
|
+
/* Focus ring */
|
|
269
|
+
--focus-ring-color: rgba(240, 150, 125, 0.40);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* ═══════════════════════════════════════════
|
|
273
|
+
BASE STYLES
|
|
274
|
+
═══════════════════════════════════════════ */
|
|
275
|
+
body {
|
|
276
|
+
font-family: var(--font-body);
|
|
277
|
+
font-size: var(--text-base);
|
|
278
|
+
line-height: var(--leading-normal);
|
|
279
|
+
margin: 0;
|
|
280
|
+
-webkit-font-smoothing: antialiased;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
[data-theme] {
|
|
284
|
+
color: var(--text-primary);
|
|
285
|
+
background: var(--bg-base);
|
|
286
|
+
transition: var(--transition-theme);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
290
|
+
|
|
291
|
+
/* Custom scrollbar */
|
|
292
|
+
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
293
|
+
::-webkit-scrollbar-track { background: var(--scrollbar-track); border-radius: var(--radius-full); }
|
|
294
|
+
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--radius-full); }
|
|
295
|
+
::-webkit-scrollbar-thumb:hover { background: var(--border-medium); }
|
|
296
|
+
|
|
297
|
+
/* Focus rings */
|
|
298
|
+
:focus-visible {
|
|
299
|
+
outline: var(--focus-ring-width) solid var(--focus-ring-color);
|
|
300
|
+
outline-offset: var(--focus-ring-offset);
|
|
301
|
+
border-radius: var(--radius-md);
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Token Scope Guardrails
|
|
308
|
+
|
|
309
|
+
**This is the most critical implementation rule.** Font and typography bugs almost always come from scope violations.
|
|
310
|
+
|
|
311
|
+
**Rule 1:** Put typography, spacing, radius, and transition tokens in `:root` — not in `[data-theme]`.
|
|
312
|
+
|
|
313
|
+
**Rule 2:** Put theme-specific colors and surface values on the theme owner (`[data-theme]`).
|
|
314
|
+
|
|
315
|
+
**Rule 3:** If `body` consumes `var(--font-body)`, that variable must exist in `:root` or in a scope `body` inherits.
|
|
316
|
+
|
|
317
|
+
**Rule 4:** If the theme lives on a shell container instead of `body`, either keep typography in `:root`, or apply `font-family` directly on that shell.
|
|
318
|
+
|
|
319
|
+
**Safe — typography in :root:**
|
|
320
|
+
```css
|
|
321
|
+
:root { --font-body: system-ui, sans-serif; --font-display: Georgia, serif; }
|
|
322
|
+
body { font-family: var(--font-body); }
|
|
323
|
+
.shell[data-theme="light"] { --bg-base: #FDFCFA; }
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**Safe — theme on shell, font applied there:**
|
|
327
|
+
```css
|
|
328
|
+
:root { --font-body: system-ui, sans-serif; }
|
|
329
|
+
.shell[data-theme="light"] { --bg-base: #FDFCFA; font-family: var(--font-body); }
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Interaction Guardrails
|
|
335
|
+
|
|
336
|
+
These rules exist to stop the most common quality failures: invisible hover states, washed-out accents, and contrast issues on warm backgrounds.
|
|
337
|
+
|
|
338
|
+
1. Primary actions on accent backgrounds must use `var(--accent-contrast)`, not `var(--bg-base)`.
|
|
339
|
+
2. Hover state on accent buttons: darken with `var(--accent-hover)`, never lighten.
|
|
340
|
+
3. Card hover: lift with shadow (`var(--shadow-md)`) + subtle translate, never change background.
|
|
341
|
+
4. Destructive actions: `var(--semantic-red)` as background or text. Never use the warm accent for destructive actions.
|
|
342
|
+
5. Disabled state: `opacity: 0.5` + `pointer-events: none`. Never gray out with cold gray — the disabled state should still feel warm.
|
|
343
|
+
6. Focus ring: `var(--focus-ring-color)` (warm-tinted), never browser default blue.
|
|
344
|
+
7. Link color: `var(--accent-strong)` (darker terracotta for AA compliance on light backgrounds). Never blue unless explicitly part of the domain.
|
|
345
|
+
8. Input focus: `border-color: var(--accent)` + `box-shadow: 0 0 0 3px var(--accent-dim)`. Warm, visible, not aggressive.
|
|
346
|
+
9. Active nav item: `background: var(--bg-elevated)` + `color: var(--text-heading)` + `border-radius: var(--radius-lg)`. Soft highlight, never hard borders.
|
|
347
|
+
10. Toast/notification: `var(--bg-surface)` + `var(--shadow-lg)` + warm border. Never flat-colored blocks.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Typography Rules
|
|
352
|
+
|
|
353
|
+
1. Headings use `var(--font-display)` (serif). This is non-negotiable — it is the primary visual differentiator.
|
|
354
|
+
2. Body text uses `var(--font-body)` (sans-serif). Clean and readable for long sessions.
|
|
355
|
+
3. Labels and metadata use `var(--font-body)` at `var(--weight-medium)` with `var(--tracking-wide)`.
|
|
356
|
+
4. Stat numbers use `var(--font-display)` at large sizes — serif numbers feel premium.
|
|
357
|
+
5. Never use all-uppercase for headings. Warm Craft is sentence-case by default.
|
|
358
|
+
6. Mono font (`var(--font-mono)`) is for code blocks only, never for labels or metadata.
|
|
359
|
+
7. Line-height for body: `var(--leading-normal)` (1.6) minimum. Generous is correct.
|
|
360
|
+
8. Line-height for headings: `var(--leading-tight)` (1.2). Tight but not cramped.
|
|
361
|
+
9. Max reading width: `var(--content-sm)` (640px) for long-form text. Never wider.
|
|
362
|
+
10. Serif italic (`font-style: italic`) is available for pull quotes, emphasis, and editorial moments — use intentionally.
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Warm Palette Rules
|
|
367
|
+
|
|
368
|
+
1. Never use pure `#FFFFFF` as the app background. Use `var(--bg-base)` which has warm undertones.
|
|
369
|
+
2. Never use pure `#000000` for text. Use `var(--text-heading)` which is warm charcoal.
|
|
370
|
+
3. All shadows use warm-tinted RGBA (`rgba(45, 40, 35, ...)`) in light theme, never cold black.
|
|
371
|
+
4. Accent colors in charts and data visualization must come from the warm family: terracotta, sage, amber, slate-blue, muted purple. Never neon, never saturated primary colors.
|
|
372
|
+
5. Semantic colors are desaturated compared to typical UI kits — they feel warm even when communicating error or warning.
|
|
373
|
+
6. Background transitions between sections should use warm gradient: `var(--bg-base)` to `var(--bg-void)` or vice versa.
|
|
374
|
+
7. Hover and active states should feel like the element is getting closer to a warm light source, not colder.
|