@jaimevalasek/aioson 1.3.0 → 1.5.1
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 +22 -3
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +235 -23
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +49 -5
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +226 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +63 -2
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +10 -10
- package/package.json +4 -4
- package/src/agents.js +21 -5
- package/src/backup-local.js +74 -0
- package/src/backup-provider.js +303 -0
- package/src/cli.js +276 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +1075 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +30 -2
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- 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 +103 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -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 +38 -2
- package/src/commands/squad-validate.js +118 -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/test-agents.js +6 -1
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +88 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +47 -1
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +333 -8
- package/src/i18n/messages/es.js +240 -6
- package/src/i18n/messages/fr.js +239 -5
- package/src/i18n/messages/pt-BR.js +330 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +1037 -42
- package/src/session-handoff.js +77 -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/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +40 -9
- package/template/.aioson/agents/architect.md +24 -5
- package/template/.aioson/agents/dev.md +254 -25
- package/template/.aioson/agents/deyvin.md +174 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +388 -0
- package/template/.aioson/agents/orchestrator.md +63 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +113 -29
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +18 -5
- package/template/.aioson/agents/setup.md +138 -18
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +866 -28
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +289 -34
- package/template/.aioson/config.md +181 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +34 -4
- package/template/.aioson/locales/en/agents/architect.md +18 -0
- package/template/.aioson/locales/en/agents/dev.md +155 -11
- package/template/.aioson/locales/en/agents/deyvin.md +137 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +56 -0
- package/template/.aioson/locales/en/agents/setup.md +53 -6
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
- package/template/.aioson/locales/es/agents/analyst.md +24 -4
- package/template/.aioson/locales/es/agents/architect.md +18 -0
- package/template/.aioson/locales/es/agents/dev.md +136 -9
- package/template/.aioson/locales/es/agents/deyvin.md +97 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +33 -0
- package/template/.aioson/locales/es/agents/setup.md +30 -6
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +284 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/fr/agents/analyst.md +24 -4
- package/template/.aioson/locales/fr/agents/architect.md +18 -0
- package/template/.aioson/locales/fr/agents/dev.md +136 -9
- package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +33 -0
- package/template/.aioson/locales/fr/agents/setup.md +30 -6
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +279 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
- package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +434 -1
- 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 +203 -0
- 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 +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -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/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -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/squad/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -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/.gitkeep +0 -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/.gitkeep +0 -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 +307 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -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/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +3 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +37 -6
- package/template/CLAUDE.md +34 -4
- package/template/OPENCODE.md +8 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Dashboard Presets — Bold Editorial UI
|
|
2
|
+
|
|
3
|
+
Composition guides for common dashboard types. Every preset uses the App Shell from `patterns.md`, tokens from `design-tokens.md`, and components from `components.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## General Dashboard Rules
|
|
8
|
+
|
|
9
|
+
1. **Stats use display font, not body.** Key numbers must be in `var(--font-display)` at `text-3xl` minimum. The number IS the content.
|
|
10
|
+
2. **One hero metric.** Never open a dashboard with four equal KPI cards. Find the single number that tells the story and give it dominant space.
|
|
11
|
+
3. **Charts use editorial palette only.** See chart colors below. Never use library defaults.
|
|
12
|
+
4. **Background is dark.** Bold Editorial dashboards default to `var(--bg-base)` (near-black). Light mode is the exception.
|
|
13
|
+
5. **Mono everywhere for data labels.** Axis labels, timestamps, category labels, column headers — all `var(--font-mono)`.
|
|
14
|
+
6. **Card depth hierarchy:** hero insight gets `var(--shadow-md)`, secondary cards get `var(--shadow-sm)`, tables get border only.
|
|
15
|
+
7. **Breathing room:** `var(--space-5)` or `var(--space-6)` minimum gap between cards.
|
|
16
|
+
8. **Section headers use display font:** `var(--font-display)`, `var(--text-lg)`, `var(--weight-bold)`, preceded by a mono overline.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Preset 1: Marketing Dashboard
|
|
21
|
+
|
|
22
|
+
Use for: conversion tracking, campaign performance, paid media, growth metrics.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
HEADER
|
|
26
|
+
overline: "MARKETING / OVERVIEW" (mono)
|
|
27
|
+
title: dashboard name (display, text-3xl)
|
|
28
|
+
right: date range selector + export button
|
|
29
|
+
|
|
30
|
+
HERO METRIC (full width or 2/3 width)
|
|
31
|
+
Primary KPI: "Total Conversions — 4,218"
|
|
32
|
+
font-display, text-5xl, text-heading
|
|
33
|
+
trend badge (mono, semantic color) + context sentence below
|
|
34
|
+
background: bg-surface, shadow-md, radius-lg
|
|
35
|
+
|
|
36
|
+
SECONDARY STATS (3 columns)
|
|
37
|
+
Stat cards: spend, CPL, ROAS
|
|
38
|
+
Smaller numbers (text-3xl), shadow-sm
|
|
39
|
+
|
|
40
|
+
PRIMARY CHART (full width)
|
|
41
|
+
Area chart: conversions over time
|
|
42
|
+
Warm gradient fill under line
|
|
43
|
+
bg-surface card, radius-lg
|
|
44
|
+
|
|
45
|
+
BREAKDOWN (two columns)
|
|
46
|
+
Left: Donut chart — channel attribution
|
|
47
|
+
Right: Campaign table (sortable, mono labels)
|
|
48
|
+
|
|
49
|
+
COMPARISON TABLE (full width)
|
|
50
|
+
Channel | Spend | Conversions | CPA | ROAS | Trend sparkline
|
|
51
|
+
Mono column headers, text-sm data
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Preset 2: Developer Dashboard
|
|
57
|
+
|
|
58
|
+
Use for: API monitoring, build pipelines, deployment status, error tracking.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
HEADER
|
|
62
|
+
overline: "SYSTEM / STATUS" (mono)
|
|
63
|
+
title: service name
|
|
64
|
+
right: environment badge ([PRODUCTION]) + refresh button
|
|
65
|
+
|
|
66
|
+
STATUS ROW (horizontal strip)
|
|
67
|
+
3-5 services: service name (mono) + status badge ([UP] / [DEGRADED] / [DOWN])
|
|
68
|
+
green/amber/red semantic colors
|
|
69
|
+
background: bg-surface, border-medium, radius-md
|
|
70
|
+
|
|
71
|
+
HERO METRIC
|
|
72
|
+
"API Latency — 42ms"
|
|
73
|
+
comparison: "↓ from 380ms" (semantic-green)
|
|
74
|
+
shadow-md card
|
|
75
|
+
|
|
76
|
+
SECONDARY STATS (3-4 columns)
|
|
77
|
+
Error rate, requests/min, uptime %, active deployments
|
|
78
|
+
|
|
79
|
+
LATENCY CHART (full width)
|
|
80
|
+
Line chart: p50 / p95 / p99 latency over 24h
|
|
81
|
+
accent for p50, secondary for p99
|
|
82
|
+
Threshold line with dashed style and mono label
|
|
83
|
+
|
|
84
|
+
RECENT EVENTS (two columns)
|
|
85
|
+
Left: Error log — mono timestamps, severity badges, message truncated
|
|
86
|
+
Right: Deploy feed — mono commit hash, author, status badge, time
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Preset 3: Analytics Overview
|
|
92
|
+
|
|
93
|
+
Use for: product analytics, traffic analysis, funnel tracking, user behavior.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
HEADER
|
|
97
|
+
overline: "ANALYTICS / OVERVIEW" (mono)
|
|
98
|
+
title: product/site name
|
|
99
|
+
right: date range selector (prominent — most used action)
|
|
100
|
+
|
|
101
|
+
METRIC STRIP (horizontal, bg-surface card)
|
|
102
|
+
4-5 metrics inline with dividers:
|
|
103
|
+
Users | Sessions | Bounce Rate | Avg Duration | Conversions
|
|
104
|
+
Each: mono label + display number (text-2xl) + trend badge
|
|
105
|
+
No individual card frames — one strip card
|
|
106
|
+
|
|
107
|
+
PRIMARY CHART (full width)
|
|
108
|
+
Area chart: main KPI (sessions/users) over time
|
|
109
|
+
accent gradient fill
|
|
110
|
+
Interactive tooltip: values + date (mono)
|
|
111
|
+
|
|
112
|
+
BREAKDOWN SECTION (two columns)
|
|
113
|
+
Left: Horizontal bar chart — top pages/sources
|
|
114
|
+
Right: Sortable table — page | views | bounce | duration
|
|
115
|
+
|
|
116
|
+
FUNNEL CHART (full width)
|
|
117
|
+
Horizontal stages: Visit → Sign Up → Activate → Retain
|
|
118
|
+
Bar per stage, accent fill, mono labels, conversion % between stages
|
|
119
|
+
|
|
120
|
+
COMPARISON TABLE (full width)
|
|
121
|
+
With trend sparklines in cells
|
|
122
|
+
Mono font for all data
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Preset 4: Content Dashboard
|
|
128
|
+
|
|
129
|
+
Use for: CMS dashboards, editorial tools, content calendar, publication tracking.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
HEADER
|
|
133
|
+
overline: "CONTENT / PUBLISHING" (mono)
|
|
134
|
+
title: publication or site name
|
|
135
|
+
right: "[+ New Article]" button (primary, medium)
|
|
136
|
+
|
|
137
|
+
STATUS CARDS (3 columns)
|
|
138
|
+
Published | Drafts | Scheduled
|
|
139
|
+
Count in text-4xl display font
|
|
140
|
+
Trend vs last period
|
|
141
|
+
|
|
142
|
+
CONTENT CALENDAR (full width card)
|
|
143
|
+
Grid: rows = weeks, columns = days
|
|
144
|
+
Each day: dot(s) for published content (accent) / drafts (muted)
|
|
145
|
+
Click → day view expands
|
|
146
|
+
|
|
147
|
+
PERFORMANCE CHART (full width)
|
|
148
|
+
Area chart: pageviews by article over time
|
|
149
|
+
Multi-series: top 3-5 articles, each with distinct editorial palette color
|
|
150
|
+
|
|
151
|
+
TOP CONTENT TABLE (full width)
|
|
152
|
+
Rank | Title (truncated, clickable) | Published | Views | Avg Time | Shares
|
|
153
|
+
Mono for numbers and dates, body font for titles
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Preset 5: Executive Summary
|
|
159
|
+
|
|
160
|
+
Use for: C-suite reports, investor dashboards, company-wide KPIs, board-level views.
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
HEADER
|
|
164
|
+
overline: "EXECUTIVE / SUMMARY — Q1 2025" (mono)
|
|
165
|
+
title: company name (display, large)
|
|
166
|
+
right: period label + export PDF
|
|
167
|
+
|
|
168
|
+
HERO INSIGHT (full width)
|
|
169
|
+
"Revenue — $2.4M" in text-5xl display font
|
|
170
|
+
"124% of Q1 target" — semantic green
|
|
171
|
+
Bar: actual vs target visual
|
|
172
|
+
shadow-md, generous padding
|
|
173
|
+
|
|
174
|
+
QUARTERLY COMPARISON (full width)
|
|
175
|
+
Grouped bar chart: Q1 vs Q2 vs Q3 vs Q4
|
|
176
|
+
Accent for current quarter, muted for past
|
|
177
|
+
Mono x-axis labels, display values above bars
|
|
178
|
+
|
|
179
|
+
DEPARTMENT CARDS (3-4 columns)
|
|
180
|
+
Each: department name (mono overline) + primary KPI (display, text-3xl) + trend
|
|
181
|
+
Cards with radius-lg, shadow-sm
|
|
182
|
+
|
|
183
|
+
ALERTS & HIGHLIGHTS (full width)
|
|
184
|
+
3-column card grid or horizontal list:
|
|
185
|
+
Flag type badge + metric + context sentence
|
|
186
|
+
Green for above target, amber for at risk, red for missed
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Chart Color Palette
|
|
192
|
+
|
|
193
|
+
For all dashboards, use these colors in order. Never use library default colors.
|
|
194
|
+
|
|
195
|
+
```css
|
|
196
|
+
/* Primary data series */
|
|
197
|
+
--chart-1: var(--accent); /* #FF4D2A — red-orange (primary) */
|
|
198
|
+
--chart-2: #B8B8B8; /* light gray — secondary series */
|
|
199
|
+
--chart-3: var(--semantic-blue); /* #60A5FA — for comparison data */
|
|
200
|
+
--chart-4: var(--semantic-green); /* #22C55E — positive/growth */
|
|
201
|
+
--chart-5: var(--semantic-amber); /* #F59E0B — warning/attention */
|
|
202
|
+
--chart-6: var(--text-muted); /* #484848 — background/reference series */
|
|
203
|
+
|
|
204
|
+
/* Background fills (for area charts) */
|
|
205
|
+
--chart-fill-1: rgba(255, 77, 42, 0.15); /* accent */
|
|
206
|
+
--chart-fill-2: rgba(184, 184, 184, 0.10);
|
|
207
|
+
--chart-fill-3: rgba(96, 165, 250, 0.12);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Rules:
|
|
211
|
+
- Area charts: gradient fill from `--chart-fill-*` color to transparent (top to bottom).
|
|
212
|
+
- Bar charts: solid `--chart-*` color, no gradient, `border-radius: 3px 3px 0 0` (slight top curve).
|
|
213
|
+
- Donut charts: `--chart-*` colors, center transparent (shows background).
|
|
214
|
+
- Line charts: 2px stroke, dot markers on hover only; no fill unless area chart.
|
|
215
|
+
- Grid lines: `var(--border-subtle)` — never dark, never prominent.
|
|
216
|
+
- Axis labels: `var(--font-mono)`, `var(--text-xs)`, `var(--text-muted)`.
|
|
217
|
+
- Tooltips: use the Tooltip component from `components.md`, mono font for values.
|
|
218
|
+
- Zero decorative backgrounds on chart area — bg-surface only.
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
# Design Tokens — Bold Editorial UI
|
|
2
|
+
|
|
3
|
+
All CSS custom properties for the Bold Editorial system. Apply these to the root `:root` or a `[data-theme]` container.
|
|
4
|
+
|
|
5
|
+
**Token scope rule**: always declare tokens on the topmost shared ancestor, never inline. Never hardcode a color, font, or size that has a token equivalent.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Font Imports
|
|
10
|
+
|
|
11
|
+
```css
|
|
12
|
+
/* Clash Display — Fontshare (free for commercial use) */
|
|
13
|
+
@import url('https://api.fontshare.com/v2/css?f[]=clash-display@200;300;400;500;600;700&display=swap');
|
|
14
|
+
|
|
15
|
+
/* Fallback if Fontshare unavailable: Cabinet Grotesk or Syne */
|
|
16
|
+
/* @import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&display=swap'); */
|
|
17
|
+
|
|
18
|
+
/* Body + Mono */
|
|
19
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Typography Tokens
|
|
25
|
+
|
|
26
|
+
```css
|
|
27
|
+
:root {
|
|
28
|
+
/* Font families */
|
|
29
|
+
--font-display: 'Clash Display', 'Cabinet Grotesk', 'Syne', Impact, "Arial Black", system-ui, sans-serif;
|
|
30
|
+
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
|
|
31
|
+
--font-mono: 'JetBrains Mono', 'Space Mono', ui-monospace, 'Courier New', monospace;
|
|
32
|
+
|
|
33
|
+
/* Font sizes — editorial scale, larger than most systems */
|
|
34
|
+
--text-xs: 0.75rem; /* 12px — mono metadata, captions */
|
|
35
|
+
--text-sm: 0.875rem; /* 14px — body small */
|
|
36
|
+
--text-base: 1rem; /* 16px — body */
|
|
37
|
+
--text-lg: 1.25rem; /* 20px — lead paragraph */
|
|
38
|
+
--text-xl: 1.5rem; /* 24px — subheadings */
|
|
39
|
+
--text-2xl: 2rem; /* 32px — section titles */
|
|
40
|
+
--text-3xl: 3rem; /* 48px — page headlines */
|
|
41
|
+
--text-4xl: 4.5rem; /* 72px — hero headlines */
|
|
42
|
+
--text-5xl: 6rem; /* 96px — statement text */
|
|
43
|
+
--text-6xl: 8rem; /* 128px — manifesto / display — maximum impact */
|
|
44
|
+
|
|
45
|
+
/* Font weights */
|
|
46
|
+
--weight-regular: 400;
|
|
47
|
+
--weight-medium: 500;
|
|
48
|
+
--weight-semibold: 600;
|
|
49
|
+
--weight-bold: 700;
|
|
50
|
+
|
|
51
|
+
/* Line heights */
|
|
52
|
+
--leading-none: 0.9; /* text-5xl, text-6xl — tight for display */
|
|
53
|
+
--leading-tight: 1.05; /* text-4xl — headlines */
|
|
54
|
+
--leading-snug: 1.2; /* text-3xl, text-2xl */
|
|
55
|
+
--leading-normal: 1.5; /* text-lg, text-xl — comfortable reading */
|
|
56
|
+
--leading-relaxed: 1.65; /* text-base — body */
|
|
57
|
+
--leading-loose: 2; /* text-sm, text-xs in tables */
|
|
58
|
+
|
|
59
|
+
/* Letter spacing */
|
|
60
|
+
--tracking-tighter: -0.04em; /* display headings at large sizes */
|
|
61
|
+
--tracking-tight: -0.02em; /* section headlines */
|
|
62
|
+
--tracking-normal: 0;
|
|
63
|
+
--tracking-wide: 0.05em; /* subheadings, labels */
|
|
64
|
+
--tracking-wider: 0.08em; /* mono labels, uppercase */
|
|
65
|
+
--tracking-widest: 0.15em; /* mono overlines, badges, category text */
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Typography usage rules
|
|
70
|
+
|
|
71
|
+
- `--font-display` for all headlines `text-2xl` and above. Never use body font for display sizes.
|
|
72
|
+
- `--font-body` for all body copy, descriptions, form labels, navigation.
|
|
73
|
+
- `--font-mono` for all overlines, category labels, dates, version badges, metadata, code. This is non-negotiable.
|
|
74
|
+
- At `text-5xl` and `text-6xl`: always `line-height: var(--leading-none)` + `letter-spacing: var(--tracking-tighter)`.
|
|
75
|
+
- At `text-3xl` and `text-4xl`: `line-height: var(--leading-tight)` + `letter-spacing: var(--tracking-tight)`.
|
|
76
|
+
- Mono text: always `uppercase` + `letter-spacing: var(--tracking-widest)`.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Color Tokens — Dark Theme (default)
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
[data-theme="dark"],
|
|
84
|
+
:root {
|
|
85
|
+
/* Backgrounds — near-black, not navy or warm */
|
|
86
|
+
--bg-void: #050505;
|
|
87
|
+
--bg-base: #0A0A0A;
|
|
88
|
+
--bg-surface: #141414;
|
|
89
|
+
--bg-elevated: #1E1E1E;
|
|
90
|
+
--bg-overlay: #282828;
|
|
91
|
+
|
|
92
|
+
/* Text */
|
|
93
|
+
--text-heading: #FFFFFF;
|
|
94
|
+
--text-primary: #B8B8B8;
|
|
95
|
+
--text-secondary: #787878;
|
|
96
|
+
--text-muted: #484848;
|
|
97
|
+
--text-inverse: #0A0A0A; /* for text on light surfaces */
|
|
98
|
+
|
|
99
|
+
/* Accent — red-orange, energetic */
|
|
100
|
+
--accent: #FF4D2A;
|
|
101
|
+
--accent-strong: #E03A18;
|
|
102
|
+
--accent-dim: rgba(255, 77, 42, 0.15);
|
|
103
|
+
--accent-hover: #FF6647;
|
|
104
|
+
--accent-contrast: #FFFFFF;
|
|
105
|
+
|
|
106
|
+
/* Borders */
|
|
107
|
+
--border-subtle: rgba(255, 255, 255, 0.06);
|
|
108
|
+
--border-medium: rgba(255, 255, 255, 0.12);
|
|
109
|
+
--border-strong: rgba(255, 255, 255, 0.22);
|
|
110
|
+
|
|
111
|
+
/* Semantic */
|
|
112
|
+
--semantic-green: #22C55E;
|
|
113
|
+
--semantic-green-dim: rgba(34, 197, 94, 0.15);
|
|
114
|
+
--semantic-amber: #F59E0B;
|
|
115
|
+
--semantic-amber-dim: rgba(245, 158, 11, 0.15);
|
|
116
|
+
--semantic-red: #EF4444;
|
|
117
|
+
--semantic-red-dim: rgba(239, 68, 68, 0.15);
|
|
118
|
+
--semantic-blue: #60A5FA;
|
|
119
|
+
--semantic-blue-dim: rgba(96, 165, 250, 0.15);
|
|
120
|
+
--semantic-purple: #A78BFA;
|
|
121
|
+
--semantic-purple-dim: rgba(167, 139, 250, 0.15);
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Color Tokens — Light Theme
|
|
128
|
+
|
|
129
|
+
```css
|
|
130
|
+
[data-theme="light"] {
|
|
131
|
+
/* Backgrounds — off-white, slightly cool */
|
|
132
|
+
--bg-void: #F5F5F0;
|
|
133
|
+
--bg-base: #FAFAF7;
|
|
134
|
+
--bg-surface: #FFFFFF;
|
|
135
|
+
--bg-elevated: #EFEFEA;
|
|
136
|
+
--bg-overlay: #E5E5DF;
|
|
137
|
+
|
|
138
|
+
/* Text */
|
|
139
|
+
--text-heading: #0A0A0A;
|
|
140
|
+
--text-primary: #3A3A3A;
|
|
141
|
+
--text-secondary: #7A7A7A;
|
|
142
|
+
--text-muted: #AAAAAA;
|
|
143
|
+
--text-inverse: #FFFFFF;
|
|
144
|
+
|
|
145
|
+
/* Accent — deeper red-orange for light backgrounds */
|
|
146
|
+
--accent: #E03A18;
|
|
147
|
+
--accent-strong: #C42E0F;
|
|
148
|
+
--accent-dim: rgba(224, 58, 24, 0.10);
|
|
149
|
+
--accent-hover: #FF4D2A;
|
|
150
|
+
--accent-contrast: #FFFFFF;
|
|
151
|
+
|
|
152
|
+
/* Borders */
|
|
153
|
+
--border-subtle: rgba(0, 0, 0, 0.06);
|
|
154
|
+
--border-medium: rgba(0, 0, 0, 0.12);
|
|
155
|
+
--border-strong: rgba(0, 0, 0, 0.22);
|
|
156
|
+
|
|
157
|
+
/* Semantic */
|
|
158
|
+
--semantic-green: #16A34A;
|
|
159
|
+
--semantic-green-dim: rgba(22, 163, 74, 0.10);
|
|
160
|
+
--semantic-amber: #D97706;
|
|
161
|
+
--semantic-amber-dim: rgba(217, 119, 6, 0.10);
|
|
162
|
+
--semantic-red: #DC2626;
|
|
163
|
+
--semantic-red-dim: rgba(220, 38, 38, 0.10);
|
|
164
|
+
--semantic-blue: #2563EB;
|
|
165
|
+
--semantic-blue-dim: rgba(37, 99, 235, 0.10);
|
|
166
|
+
--semantic-purple: #7C3AED;
|
|
167
|
+
--semantic-purple-dim: rgba(124, 58, 237, 0.10);
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Shadow Tokens
|
|
174
|
+
|
|
175
|
+
```css
|
|
176
|
+
:root {
|
|
177
|
+
/* Dark theme — deep cinematic shadows */
|
|
178
|
+
--shadow-xs: 0 1px 4px rgba(0, 0, 0, 0.20);
|
|
179
|
+
--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
|
|
180
|
+
--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
|
|
181
|
+
--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.45);
|
|
182
|
+
--shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.55);
|
|
183
|
+
|
|
184
|
+
/* Accent glow — ONE element per viewport maximum */
|
|
185
|
+
--shadow-glow: 0 0 60px rgba(255, 77, 42, 0.15);
|
|
186
|
+
|
|
187
|
+
/* Light theme shadows — visible but measured */
|
|
188
|
+
--shadow-xs-light: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
189
|
+
--shadow-sm-light: 0 2px 8px rgba(0, 0, 0, 0.10);
|
|
190
|
+
--shadow-md-light: 0 8px 24px rgba(0, 0, 0, 0.12);
|
|
191
|
+
--shadow-lg-light: 0 16px 48px rgba(0, 0, 0, 0.14);
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Shadow rules:
|
|
196
|
+
- On dark theme: use `--shadow-*` (black-based).
|
|
197
|
+
- On light theme: use `--shadow-*-light` (softer).
|
|
198
|
+
- `--shadow-glow` is for ONE featured element per viewport (hero CTA, featured pricing card). Never apply to more than one element in the same scroll viewport.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Spacing Tokens
|
|
203
|
+
|
|
204
|
+
```css
|
|
205
|
+
:root {
|
|
206
|
+
--space-1: 0.25rem; /* 4px */
|
|
207
|
+
--space-2: 0.5rem; /* 8px */
|
|
208
|
+
--space-3: 0.75rem; /* 12px */
|
|
209
|
+
--space-4: 1rem; /* 16px */
|
|
210
|
+
--space-5: 1.25rem; /* 20px */
|
|
211
|
+
--space-6: 1.5rem; /* 24px */
|
|
212
|
+
--space-8: 2rem; /* 32px */
|
|
213
|
+
--space-10: 2.5rem; /* 40px */
|
|
214
|
+
--space-12: 3rem; /* 48px */
|
|
215
|
+
--space-16: 4rem; /* 64px */
|
|
216
|
+
--space-20: 5rem; /* 80px */
|
|
217
|
+
--space-24: 6rem; /* 96px */
|
|
218
|
+
--space-32: 8rem; /* 128px — hero and editorial sections */
|
|
219
|
+
--space-40: 10rem; /* 160px — maximum editorial breathing room */
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Border Radius Tokens
|
|
226
|
+
|
|
227
|
+
```css
|
|
228
|
+
:root {
|
|
229
|
+
/* Minimal radius — editorial and adult, not bubbly */
|
|
230
|
+
--radius-sm: 0.25rem; /* 4px — badges, chips */
|
|
231
|
+
--radius-md: 0.375rem; /* 6px — buttons (default) */
|
|
232
|
+
--radius-lg: 0.5rem; /* 8px — cards (default) */
|
|
233
|
+
--radius-xl: 0.75rem; /* 12px — modals, larger containers */
|
|
234
|
+
--radius-2xl: 1rem; /* 16px — featured cards, hero containers */
|
|
235
|
+
--radius-full: 9999px; /* pills — used sparingly */
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Radius rules:
|
|
240
|
+
- Default radius for cards: `--radius-lg` (8px).
|
|
241
|
+
- Default radius for buttons: `--radius-md` (6px).
|
|
242
|
+
- Never exceed `--radius-2xl` (16px) in this system — no warm-craft-style extreme rounding.
|
|
243
|
+
- `--radius-full` is allowed for badge pills and avatar circles only.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Layout Tokens
|
|
248
|
+
|
|
249
|
+
```css
|
|
250
|
+
:root {
|
|
251
|
+
/* Content widths */
|
|
252
|
+
--content-xs: 480px;
|
|
253
|
+
--content-sm: 640px;
|
|
254
|
+
--content-md: 768px;
|
|
255
|
+
--content-lg: 1024px;
|
|
256
|
+
--content-xl: 1280px;
|
|
257
|
+
--content-full: 1440px;
|
|
258
|
+
|
|
259
|
+
/* Breakpoints */
|
|
260
|
+
--breakpoint-sm: 640px;
|
|
261
|
+
--breakpoint-md: 768px;
|
|
262
|
+
--breakpoint-lg: 1024px;
|
|
263
|
+
--breakpoint-xl: 1280px;
|
|
264
|
+
--breakpoint-2xl: 1536px;
|
|
265
|
+
|
|
266
|
+
/* Z-index scale */
|
|
267
|
+
--z-below: -1;
|
|
268
|
+
--z-base: 0;
|
|
269
|
+
--z-raised: 10;
|
|
270
|
+
--z-overlay: 20;
|
|
271
|
+
--z-sticky: 30;
|
|
272
|
+
--z-fixed: 40;
|
|
273
|
+
--z-modal: 50;
|
|
274
|
+
--z-toast: 60;
|
|
275
|
+
--z-tooltip: 70;
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Transition Tokens
|
|
282
|
+
|
|
283
|
+
```css
|
|
284
|
+
:root {
|
|
285
|
+
--transition-fast: 100ms ease;
|
|
286
|
+
--transition-base: 200ms ease;
|
|
287
|
+
--transition-slow: 400ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
288
|
+
--transition-hero: 800ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
289
|
+
|
|
290
|
+
/* Theme switch — all affected properties together */
|
|
291
|
+
--transition-theme: background-color 200ms ease,
|
|
292
|
+
color 200ms ease,
|
|
293
|
+
border-color 200ms ease,
|
|
294
|
+
box-shadow 200ms ease;
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Token Scope Guardrails
|
|
301
|
+
|
|
302
|
+
| What | Rule |
|
|
303
|
+
|------|------|
|
|
304
|
+
| Background colors | Only `--bg-*` tokens. Never hardcode hex for surfaces. |
|
|
305
|
+
| Text colors | Only `--text-*` tokens. Never `color: white` or `color: #fff` inline. |
|
|
306
|
+
| Accent usage | `--accent` for CTAs, active states, single highlights. Never for borders, background sections, or repeated decorative elements. |
|
|
307
|
+
| `--shadow-glow` | One element per scroll viewport. The hero CTA or featured card. |
|
|
308
|
+
| Font sizes | Only `--text-*` scale tokens. Never arbitrary `font-size: 53px`. |
|
|
309
|
+
| Spacing | Only `--space-*` tokens. Never arbitrary `margin: 17px`. |
|
|
310
|
+
| Border radius | Only `--radius-*` tokens. Never `border-radius: 10px` inline. |
|
|
311
|
+
| Borders | Only `--border-*` tokens. Never `border: 1px solid rgba(...)` inline. |
|
|
312
|
+
| Shadows | Only `--shadow-*` tokens. Never arbitrary `box-shadow` values. |
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Interaction Guardrails
|
|
317
|
+
|
|
318
|
+
| Rule | Why |
|
|
319
|
+
|------|-----|
|
|
320
|
+
| Never use blue as accent | This is red-orange. Blue breaks the visual DNA instantly. |
|
|
321
|
+
| Never use warm beige (`#FDF8F0`) as base | That belongs to Warm Craft. Bold Editorial uses cool off-whites. |
|
|
322
|
+
| Never use `border-radius > --radius-2xl` | Sharp edges define this system. Extreme rounding destroys the editorial feel. |
|
|
323
|
+
| Never use blur/glass effects | That belongs to Glassmorphism UI. Bold Editorial surfaces are opaque. |
|
|
324
|
+
| Never use `--shadow-glow` on more than one element per viewport | The glow exists to draw the eye. If everything glows, nothing does. |
|
|
325
|
+
| Mono captions are mandatory for all metadata | Overlines, categories, timestamps, version tags — always `--font-mono` + `uppercase` + wide tracking. |
|
|
326
|
+
| Serif fonts prohibited | Source Serif belongs to Warm Craft. Bold Editorial uses display sans and body sans only. |
|