@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,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clean-saas-ui
|
|
3
|
+
description: Clean SaaS UI is a design system for professional, neutral B2B interfaces that prioritize clarity, consistency, and efficiency. Use it when `design_skill: clean-saas-ui` is set in project.context.md OR when the user explicitly asks for "clean SaaS", "professional dashboard", "business app", "admin panel", "neutral UI", "no-frills", "enterprise", "CRM", "ERP", "internal tool", or similar. Ideal for B2B SaaS products, admin panels, CRM systems, project management tools, internal enterprise apps, and any product where reliability and efficiency matter more than visual flair. Supports apps, dashboards, and marketing sites — light by default with a polished dark variant. Do NOT use this skill unless explicitly selected.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clean SaaS UI
|
|
7
|
+
|
|
8
|
+
Clean SaaS UI sits at the intersection of **professional neutrality** and **systematic precision** — a design system optimized for the humans who live inside B2B software for 8 hours a day. No personality for personality's sake. No decoration that costs attention. Just excellent, reliable, efficient UI.
|
|
9
|
+
|
|
10
|
+
Inspiration: Stripe Dashboard, Linear app, GitHub, Notion (app), Figma (panels).
|
|
11
|
+
|
|
12
|
+
**This is one visual system.** Never combine it with another design skill.
|
|
13
|
+
|
|
14
|
+
## Package structure
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
.aioson/skills/design/clean-saas-ui/
|
|
18
|
+
SKILL.md ← you are here (load this first)
|
|
19
|
+
references/
|
|
20
|
+
art-direction.md ← intent, expression modes, signature moves, anti-generic tests
|
|
21
|
+
design-tokens.md ← CSS variables light + dark, typography, spacing, radius, shadows
|
|
22
|
+
components.md ← All reusable components (table, filter bar, sidebar, form groups, etc.)
|
|
23
|
+
patterns.md ← Page layouts: app shell, list, detail, form, dashboard, settings, onboarding
|
|
24
|
+
dashboards.md ← Dashboard presets: SaaS metrics, CRM, PM, support, admin overview
|
|
25
|
+
websites.md ← Landing/marketing page patterns + anti-patterns
|
|
26
|
+
motion.md ← Animations: fast functional transitions, micro-interactions, reduced motion
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Activation rules
|
|
30
|
+
|
|
31
|
+
- Apply this package **only** when `project.context.md` contains `design_skill: "clean-saas-ui"` or the user explicitly chooses it.
|
|
32
|
+
- If another design skill is selected, do **not** load this package.
|
|
33
|
+
- Never auto-select this skill — always require explicit confirmation.
|
|
34
|
+
- If no skill is set yet, the active agent must ask or confirm before applying.
|
|
35
|
+
|
|
36
|
+
## Responsibility boundary
|
|
37
|
+
|
|
38
|
+
This skill defines:
|
|
39
|
+
- Visual direction and aesthetic DNA
|
|
40
|
+
- Design tokens (colors, typography, spacing, radius, shadows)
|
|
41
|
+
- Component vocabulary and anatomy
|
|
42
|
+
- Page composition patterns
|
|
43
|
+
- Theme switching behavior (light default / dark optional)
|
|
44
|
+
|
|
45
|
+
This skill does **not** decide:
|
|
46
|
+
- Stack (React, Vue, Blade, HTML, etc.)
|
|
47
|
+
- Output format (single file, multi-file, CSS modules, Tailwind, etc.)
|
|
48
|
+
- Icon library choice
|
|
49
|
+
- Whether a theme toggle exists in the product (the agent decides)
|
|
50
|
+
|
|
51
|
+
## Loading guide
|
|
52
|
+
|
|
53
|
+
Always load only what the current task needs:
|
|
54
|
+
|
|
55
|
+
| Task | Load |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Any UI work | `references/design-tokens.md` |
|
|
58
|
+
| Reusable components | `references/design-tokens.md` + `references/components.md` |
|
|
59
|
+
| Dashboard or admin panel | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` + `references/dashboards.md` |
|
|
60
|
+
| Detail / settings page | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/patterns.md` |
|
|
61
|
+
| Landing page or website | `references/art-direction.md` + `references/design-tokens.md` + `references/components.md` + `references/websites.md` |
|
|
62
|
+
| Motion / animation | add `references/motion.md` when animation materially improves the result |
|
|
63
|
+
| Full UI build | all seven reference files |
|
|
64
|
+
|
|
65
|
+
## Visual signature — three pillars
|
|
66
|
+
|
|
67
|
+
1. **Professional neutrality** — Cores neutras com um único accent blue (não teal, não terracotta — azul clássico de confiança). Zero personalidade excessiva. O design é invisível — o usuário foca no trabalho, não na UI. Parece que "sempre esteve ali".
|
|
68
|
+
2. **Systematic consistency** — Cada componente segue um grid rígido. Spacing 8px base, strict. Heights de controle fixos. Nenhum componente inventado ad-hoc. Tudo vem do sistema. O resultado parece um kit comercial de alta qualidade (Stripe Dashboard, Linear app).
|
|
69
|
+
3. **Data-friendly density** — Density média: mais compacto que warm-craft, menos que cognitive-core. Tables, forms e lists são cidadãos de primeira classe. O sistema é otimizado para mostrar dados de forma limpa com scan rápido.
|
|
70
|
+
|
|
71
|
+
## Theme system
|
|
72
|
+
|
|
73
|
+
```html
|
|
74
|
+
<div data-theme="light"> <!-- or data-theme="dark" -->
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- **Light (default)**: apps, dashboards, admin — a maioria dos SaaS B2B
|
|
78
|
+
- **Dark**: optional, para preferência do usuário ou ambientes low-light
|
|
79
|
+
- Toggle always available by default
|
|
80
|
+
|
|
81
|
+
If the user does not specify: default to **light with a theme toggle** in the top bar.
|
|
82
|
+
|
|
83
|
+
## Visual DNA
|
|
84
|
+
|
|
85
|
+
### Colors — light theme (default)
|
|
86
|
+
- Background void: `#F3F4F6` (gray-100)
|
|
87
|
+
- Background base: `#F9FAFB` (gray-50)
|
|
88
|
+
- Surface: `#FFFFFF`
|
|
89
|
+
- Elevated: `#F3F4F6` (gray-100 — hover, nested)
|
|
90
|
+
- Primary accent: `#2563EB` (blue-600 — professional blue)
|
|
91
|
+
- Text heading: `#111827` (gray-900)
|
|
92
|
+
- Text primary: `#374151` (gray-700)
|
|
93
|
+
- Text secondary: `#6B7280` (gray-500)
|
|
94
|
+
- Text muted: `#9CA3AF` (gray-400)
|
|
95
|
+
|
|
96
|
+
### Colors — dark theme
|
|
97
|
+
- Background void: `#111827` (gray-900)
|
|
98
|
+
- Background base: `#1F2937` (gray-800)
|
|
99
|
+
- Surface: `#374151` (gray-700)
|
|
100
|
+
- Elevated: `#4B5563` (gray-600)
|
|
101
|
+
- Primary accent: `#3B82F6` (blue-500 — brighter for dark bg)
|
|
102
|
+
- Text heading: `#F9FAFB`
|
|
103
|
+
- Text primary: `#E5E7EB`
|
|
104
|
+
|
|
105
|
+
### Typography
|
|
106
|
+
- Headings and body: `Inter`, system-ui, sans-serif — both. Differentiator is weight and tracking, not family.
|
|
107
|
+
- Headings: weight 600–700, letter-spacing -0.02em
|
|
108
|
+
- Body: weight 400, tracking normal
|
|
109
|
+
- Mono (metadata only): `JetBrains Mono`, uppercase, 0.675rem — used sparingly in code, IDs, table row metadata
|
|
110
|
+
|
|
111
|
+
### Layout structure (app)
|
|
112
|
+
```
|
|
113
|
+
┌──────────────────────────────────────────────────────────┐
|
|
114
|
+
│ SIDEBAR (256px) │ PAGE HEADER: title + actions │
|
|
115
|
+
│ Logo ├──────────────────────────────────────┤
|
|
116
|
+
│ Nav groups │ FILTER BAR (when list/table page) │
|
|
117
|
+
│ Active: blue ├──────────────────────────────────────┤
|
|
118
|
+
│ left border 2px │ CONTENT AREA │
|
|
119
|
+
│ │ (table / form sections / charts) │
|
|
120
|
+
│ Footer: user │ │
|
|
121
|
+
└───────────────────┴──────────────────────────────────────┘
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Signature details
|
|
125
|
+
- Active sidebar item: `border-left: 2px solid var(--accent)` + `bg-elevated`
|
|
126
|
+
- Active tab: `border-bottom: 2px solid var(--accent)` + accent text
|
|
127
|
+
- Inputs: 36px height (control-md), 1px border, 6px radius
|
|
128
|
+
- Card hover: shadow-sm → shadow-md, 150ms, no translateY lift
|
|
129
|
+
- Separator: borders over shadows — clean and flat
|
|
130
|
+
- Buttons: flat, no gradients, consistent 36px height
|
|
131
|
+
- Badges: radius-full, height 20px, px-2, 6 semantic variants
|
|
132
|
+
- Tables: alternating row bg optional, sticky header, inline actions on hover
|
|
133
|
+
|
|
134
|
+
## Application rules
|
|
135
|
+
|
|
136
|
+
- Treat `references/design-tokens.md` as the source of truth for ALL tokens.
|
|
137
|
+
- Treat `references/art-direction.md` as the source of truth for expression and anti-generic decisions.
|
|
138
|
+
- Never combine this package with `interface-design`, `cognitive-core-ui`, `warm-craft-ui`, `bold-editorial-ui`, or any other design skill.
|
|
139
|
+
- Reuse the project's component library if one exists — map Clean SaaS tokens onto it instead of rebuilding primitives.
|
|
140
|
+
- Adapt code examples to the active stack. Reference snippets are design specifications, not copy-paste code.
|
|
141
|
+
- Accessibility, responsiveness, and production semantics are the agent's responsibility (not this skill).
|
|
142
|
+
|
|
143
|
+
## Intent before visuals
|
|
144
|
+
|
|
145
|
+
Before choosing layout, answer all three:
|
|
146
|
+
|
|
147
|
+
1. Who is the human using this page right now?
|
|
148
|
+
2. What is the main action or decision they must complete?
|
|
149
|
+
3. How should this interface feel in concrete words, not generic labels?
|
|
150
|
+
|
|
151
|
+
Bad answers:
|
|
152
|
+
- "for users"
|
|
153
|
+
- "manage data"
|
|
154
|
+
- "clean and modern"
|
|
155
|
+
|
|
156
|
+
Good answers:
|
|
157
|
+
- "operations manager reviewing team workload before assigning a new batch"
|
|
158
|
+
- "account exec scanning their CRM pipeline for deals at risk"
|
|
159
|
+
- "calm, efficient, trustworthy, invisible — the tool gets out of their way"
|
|
160
|
+
|
|
161
|
+
## Workflow discipline
|
|
162
|
+
|
|
163
|
+
1. Audit the current page or existing UI before changing visuals.
|
|
164
|
+
2. Explore the product domain and choose one expression mode from `references/art-direction.md`.
|
|
165
|
+
3. Name one signature move and repeat it intentionally across the page.
|
|
166
|
+
4. Consolidate repeating patterns instead of inventing new card/button/table variants for each screen.
|
|
167
|
+
5. Build from tokens first, then components, then page composition.
|
|
168
|
+
6. Validate state parity before finishing: default, hover, active, focus, disabled.
|
|
169
|
+
7. Validate contrast before shipping: body text must meet WCAG AA, controls must stay legible in all themes.
|
|
170
|
+
|
|
171
|
+
## Non-negotiable quality gates
|
|
172
|
+
|
|
173
|
+
- Never use a lighter hover state if it reduces text contrast.
|
|
174
|
+
- Never put near-white text on a bright accent in light theme. Use a darker accent or a darker foreground token.
|
|
175
|
+
- Do not use mono for navigation groups, paragraphs, or long button copy.
|
|
176
|
+
- Keep one spacing rhythm per surface: 8px increments, aligned text edges, consistent control heights.
|
|
177
|
+
- When a layout feels chaotic, reduce variant count first. Do not add decorative layers.
|
|
178
|
+
- Hardcoded colors, arbitrary shadows, and one-off font choices are design-system failures.
|
|
179
|
+
- Sameness is failure. If the result looks like a default Tailwind UI starter, iterate before presenting.
|
|
180
|
+
- Every page must pass the Blue Test: does the accent blue feel "chosen" or "default"?
|
|
181
|
+
- Every full page must pass the Template Test: if you remove the logo and change the accent, does it still look like your product?
|
|
182
|
+
- Tables must never stack into card lists on mobile — they scroll horizontally.
|
|
183
|
+
|
|
184
|
+
## Positioning vs other skills
|
|
185
|
+
|
|
186
|
+
| Aspect | clean-saas-ui | warm-craft-ui | cognitive-core-ui |
|
|
187
|
+
|--------|--------------|---------------|-------------------|
|
|
188
|
+
| Accent | Blue (#2563EB) | Terracotta | Teal/Cyan |
|
|
189
|
+
| Headings | Sans-serif (Inter) | Serif (Source Serif) | Sans-serif (Inter) |
|
|
190
|
+
| Radius | Medium (8px cards) | Large (16px+ cards) | Small-Medium |
|
|
191
|
+
| Density | Medium | Low | High |
|
|
192
|
+
| Personality | Neutral/professional | Warm/human | Premium/tactical |
|
|
193
|
+
| Default theme | Light | Light | Dark |
|
|
194
|
+
| Best for | B2B SaaS, admin, CRM | B2C, productivity, health | Command centers, ops |
|
|
195
|
+
|
|
196
|
+
## Delivery modes
|
|
197
|
+
|
|
198
|
+
### Greenfield
|
|
199
|
+
1. Choose page variant (list, detail, form, dashboard, settings, onboarding, landing)
|
|
200
|
+
2. Load relevant references
|
|
201
|
+
3. Apply token scope from `design-tokens.md`
|
|
202
|
+
4. Compose layout from `patterns.md` or `websites.md`
|
|
203
|
+
5. Build components from `components.md`
|
|
204
|
+
|
|
205
|
+
### Brownfield
|
|
206
|
+
1. Audit existing UI before rewriting
|
|
207
|
+
2. Map Clean SaaS tokens onto the existing component library
|
|
208
|
+
3. Fix token scope issues (font/color variables must be on the correct container)
|
|
209
|
+
4. Consolidate duplicate variants before introducing new ones
|
|
210
|
+
5. Prefer targeted upgrades over full rewrites unless the user asks for a redesign
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# Art Direction — Clean SaaS UI
|
|
2
|
+
|
|
3
|
+
Read this file for any page-level work where differentiation matters: apps, dashboards, landing pages, websites, and major flows.
|
|
4
|
+
|
|
5
|
+
This file exists to stop Clean SaaS UI from collapsing into the same generic Tailwind admin starter every time.
|
|
6
|
+
|
|
7
|
+
The system stays coherent, but the expression must change with the product, the user, and the dominant task.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Core Rule
|
|
12
|
+
|
|
13
|
+
**Same system, different expressions.**
|
|
14
|
+
|
|
15
|
+
Keep the Clean SaaS DNA:
|
|
16
|
+
- systematic component consistency
|
|
17
|
+
- neutral professional blue accent
|
|
18
|
+
- data-friendly medium density
|
|
19
|
+
- light-first with controlled shadows and borders
|
|
20
|
+
|
|
21
|
+
But do **not** keep the exact same composition, header, table layout, or sidebar structure from product to product.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Mandatory Pre-Build Outputs
|
|
26
|
+
|
|
27
|
+
Before designing a full page, produce all of these:
|
|
28
|
+
|
|
29
|
+
1. **Human**
|
|
30
|
+
The real person using this page right now.
|
|
31
|
+
|
|
32
|
+
2. **Main action**
|
|
33
|
+
The one decision, action, or question that matters most on this screen.
|
|
34
|
+
|
|
35
|
+
3. **Felt quality**
|
|
36
|
+
Concrete words such as `efficient`, `trustworthy`, `methodical`, `calm`, `precise`, `grounded`, `authoritative`.
|
|
37
|
+
Never use empty labels like `clean`, `modern`, or `professional`.
|
|
38
|
+
|
|
39
|
+
4. **Domain vocabulary**
|
|
40
|
+
At least 5 concepts from the product's world.
|
|
41
|
+
Example for CRM: `deal`, `pipeline`, `stage`, `account`, `close date`.
|
|
42
|
+
|
|
43
|
+
5. **Color world**
|
|
44
|
+
At least 5 tones or materials that belong to that product world.
|
|
45
|
+
Example for finance: cool gray, document white, navy authority, amber caution, muted green approval.
|
|
46
|
+
|
|
47
|
+
6. **Defaults to avoid**
|
|
48
|
+
Name 3 obvious UI choices that would make the result generic.
|
|
49
|
+
|
|
50
|
+
7. **Signature move**
|
|
51
|
+
One memorable design detail that can appear in at least 5 places on the page.
|
|
52
|
+
|
|
53
|
+
If you cannot produce these seven, you are not ready to compose the page.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Expression Modes
|
|
58
|
+
|
|
59
|
+
Choose **one primary mode** per screen. You may borrow a small amount from a secondary mode only after the main expression is clear.
|
|
60
|
+
|
|
61
|
+
### 1. Structured Workspace
|
|
62
|
+
|
|
63
|
+
Use for:
|
|
64
|
+
- project management
|
|
65
|
+
- task trackers
|
|
66
|
+
- team collaboration tools
|
|
67
|
+
- sprint boards
|
|
68
|
+
|
|
69
|
+
Feel:
|
|
70
|
+
- organized
|
|
71
|
+
- reliable
|
|
72
|
+
- efficient
|
|
73
|
+
- predictable
|
|
74
|
+
|
|
75
|
+
Composition:
|
|
76
|
+
- sidebar navigation clara, content area com sections bem definidas
|
|
77
|
+
- header actions consistentes no topo da página
|
|
78
|
+
- breadcrumb trail sempre presente
|
|
79
|
+
- collapsible sidebar com transição suave
|
|
80
|
+
|
|
81
|
+
Visual cues:
|
|
82
|
+
- borders sutis para separação de seções (não shadows)
|
|
83
|
+
- badge chips para status
|
|
84
|
+
- avatar groups para team
|
|
85
|
+
- inline editable fields
|
|
86
|
+
|
|
87
|
+
Signature ideas:
|
|
88
|
+
- breadcrumb + page title sempre juntos, nunca separados
|
|
89
|
+
- task row com hover reveal de ações inline
|
|
90
|
+
- sidebar com grupos colapsáveis rotulados
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### 2. Data Table Pro
|
|
95
|
+
|
|
96
|
+
Use for:
|
|
97
|
+
- CRM
|
|
98
|
+
- ERP
|
|
99
|
+
- analytics admin
|
|
100
|
+
- inventory management
|
|
101
|
+
- financial data
|
|
102
|
+
|
|
103
|
+
Feel:
|
|
104
|
+
- efficient
|
|
105
|
+
- scannable
|
|
106
|
+
- precise
|
|
107
|
+
- trustworthy
|
|
108
|
+
|
|
109
|
+
Composition:
|
|
110
|
+
- table como elemento dominante da página
|
|
111
|
+
- filter bar horizontal acima da table
|
|
112
|
+
- bulk actions bar aparece ao selecionar linhas
|
|
113
|
+
- column sorting e pagination clean abaixo
|
|
114
|
+
|
|
115
|
+
Visual cues:
|
|
116
|
+
- alternating row backgrounds sutis (gray-50 / white)
|
|
117
|
+
- sticky header da tabela
|
|
118
|
+
- inline action buttons aparecem no hover da row
|
|
119
|
+
- badges de status dentro das células
|
|
120
|
+
|
|
121
|
+
Signature ideas:
|
|
122
|
+
- advanced filter builder como drawer lateral
|
|
123
|
+
- column customization via dropdown
|
|
124
|
+
- inline cell editing com confirmation bar
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 3. Form-Heavy Admin
|
|
129
|
+
|
|
130
|
+
Use for:
|
|
131
|
+
- settings
|
|
132
|
+
- configuration panels
|
|
133
|
+
- user management
|
|
134
|
+
- compliance tools
|
|
135
|
+
- onboarding setup
|
|
136
|
+
|
|
137
|
+
Feel:
|
|
138
|
+
- clear
|
|
139
|
+
- methodical
|
|
140
|
+
- helpful
|
|
141
|
+
- professional
|
|
142
|
+
|
|
143
|
+
Composition:
|
|
144
|
+
- multi-section forms com vertical rhythm rígido
|
|
145
|
+
- section dividers com header e description
|
|
146
|
+
- inline validation em tempo real
|
|
147
|
+
- sticky save bar no rodapé
|
|
148
|
+
|
|
149
|
+
Visual cues:
|
|
150
|
+
- label-above-input consistente em todo formulário
|
|
151
|
+
- helper text em toda parte (text-xs, text-secondary)
|
|
152
|
+
- section cards com header próprio
|
|
153
|
+
- progress indicator se for multi-step
|
|
154
|
+
|
|
155
|
+
Signature ideas:
|
|
156
|
+
- auto-save indicator no header ("Saved 2 min ago")
|
|
157
|
+
- section navigation sidebar à esquerda para forms longas
|
|
158
|
+
- inline diff preview para mudanças críticas
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 4. Metric Hub
|
|
163
|
+
|
|
164
|
+
Use for:
|
|
165
|
+
- dashboards de métricas
|
|
166
|
+
- reporting
|
|
167
|
+
- KPI tracking
|
|
168
|
+
- executive views
|
|
169
|
+
- analytics
|
|
170
|
+
|
|
171
|
+
Feel:
|
|
172
|
+
- informative
|
|
173
|
+
- clean
|
|
174
|
+
- authoritative
|
|
175
|
+
- at-a-glance
|
|
176
|
+
|
|
177
|
+
Composition:
|
|
178
|
+
- KPI cards → charts → tables (hierarquia vertical)
|
|
179
|
+
- date range selector proeminente no header
|
|
180
|
+
- export actions no header
|
|
181
|
+
- drill-down disponível em cada seção
|
|
182
|
+
|
|
183
|
+
Visual cues:
|
|
184
|
+
- chart colors do sistema (blue-first, não cores default de library)
|
|
185
|
+
- stat cards com trends (+ / - e cor semântica)
|
|
186
|
+
- sparklines inline nos stat cards
|
|
187
|
+
- chart backgrounds levemente separados do bg-base
|
|
188
|
+
|
|
189
|
+
Signature ideas:
|
|
190
|
+
- comparison toggle (vs previous period)
|
|
191
|
+
- goal progress indicators em stat cards
|
|
192
|
+
- drill-down table abaixo do chart
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### 5. Onboarding Flow
|
|
197
|
+
|
|
198
|
+
Use for:
|
|
199
|
+
- setup wizards
|
|
200
|
+
- account creation
|
|
201
|
+
- integration config
|
|
202
|
+
- first-run experiences
|
|
203
|
+
|
|
204
|
+
Feel:
|
|
205
|
+
- guided
|
|
206
|
+
- clear
|
|
207
|
+
- encouraging
|
|
208
|
+
- professional
|
|
209
|
+
|
|
210
|
+
Composition:
|
|
211
|
+
- step progress bar no topo
|
|
212
|
+
- content area centralizado, max-width 480–560px
|
|
213
|
+
- clear actions no rodapé (back + continue)
|
|
214
|
+
- completion feedback visual
|
|
215
|
+
|
|
216
|
+
Visual cues:
|
|
217
|
+
- numbered steps com estado visual (done / active / pending)
|
|
218
|
+
- completion percentage ou progress bar
|
|
219
|
+
- ilustrações simples geométricas (não hand-drawn)
|
|
220
|
+
- contextual help tooltips
|
|
221
|
+
|
|
222
|
+
Signature ideas:
|
|
223
|
+
- checklist progress card como elemento central
|
|
224
|
+
- integration logo grid para conexões
|
|
225
|
+
- inline preview do que será criado
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Signature Move Library
|
|
230
|
+
|
|
231
|
+
Pick one and commit. Do not apply three weak gestures when one strong one would do.
|
|
232
|
+
|
|
233
|
+
### Apps & Dashboards
|
|
234
|
+
- filter bar sempre visível acima de qualquer table — nunca escondida em modal
|
|
235
|
+
- page header consistente: left (title + breadcrumb) + right (actions) — mesma estrutura em todas as páginas
|
|
236
|
+
- sidebar active item: blue left border 2px + bg-elevated — sem glow, sem gradiente
|
|
237
|
+
|
|
238
|
+
### Data Heavy Pages
|
|
239
|
+
- sticky table header com sort indicators sempre visíveis
|
|
240
|
+
- bulk action bar que desliza para cima quando rows são selecionadas
|
|
241
|
+
- inline row actions que aparecem no hover (não em dropdown separado)
|
|
242
|
+
|
|
243
|
+
### Forms & Settings
|
|
244
|
+
- section cards com header azul (text accent) + description text-secondary
|
|
245
|
+
- auto-save indicator discreto no corner superior direito
|
|
246
|
+
- input helper text sempre presente, mesmo antes de erro
|
|
247
|
+
|
|
248
|
+
### Marketing Pages
|
|
249
|
+
- product screenshot com shadow-lg + radius-xl ligeiramente inclinado (2–3deg)
|
|
250
|
+
- feature grid com ícone + título + descrição — clean, sem background nos cards
|
|
251
|
+
- pricing table com coluna "most popular" com accent border e slight elevation
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Anti-Generic Tests
|
|
256
|
+
|
|
257
|
+
Run these before presenting:
|
|
258
|
+
|
|
259
|
+
### Template Test
|
|
260
|
+
Remove the logo and change the accent color. Does the result still look like a specific product, or does it look like a Tailwind UI starter?
|
|
261
|
+
|
|
262
|
+
If it looks like a starter: add one signature move.
|
|
263
|
+
|
|
264
|
+
### Density Test
|
|
265
|
+
Are there wasted empty zones OR areas that feel cramped?
|
|
266
|
+
|
|
267
|
+
Clean SaaS = equilibrium — nem esparramo nem cramped. Medium density aplicado consistentemente.
|
|
268
|
+
|
|
269
|
+
### Consistency Test
|
|
270
|
+
- All inputs have the same height (36px control-md)?
|
|
271
|
+
- All buttons have the same radius (6px)?
|
|
272
|
+
- All tables have the same header style?
|
|
273
|
+
- All page headers follow the same left/right pattern?
|
|
274
|
+
|
|
275
|
+
Inconsistency is a system failure, not a style choice.
|
|
276
|
+
|
|
277
|
+
### Blue Test (unique to this skill)
|
|
278
|
+
Does the accent blue feel like "a chosen blue" or "default bootstrap blue"?
|
|
279
|
+
|
|
280
|
+
The accent blue should have a personality — `#2563EB` (blue-600) is sharp and decisive, not soft and corporate. It should feel intentional, not default.
|
|
281
|
+
|
|
282
|
+
### Domain Test
|
|
283
|
+
Hide the product name. Does the page still feel like it was built for this specific product world? Or could it be any SaaS product?
|
|
284
|
+
|
|
285
|
+
If generic: inject domain vocabulary into labels, section names, empty states, and helper text.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Variation Rules By Surface Type
|
|
290
|
+
|
|
291
|
+
### Apps
|
|
292
|
+
- Do not always start with a stat row — some apps start with a table, a queue, or a task list.
|
|
293
|
+
- Do not always use a fixed left sidebar if a top nav fits better (simpler products).
|
|
294
|
+
- Active state must be unambiguous — blue left border is the primary indicator, not color alone.
|
|
295
|
+
|
|
296
|
+
### Dashboards
|
|
297
|
+
- Avoid four equal KPI cards as the only opening move.
|
|
298
|
+
- Prefer one focal story above the fold: MRR trend, team workload, queue status, or alert count.
|
|
299
|
+
- Charts must use the system's chart palette — never the library's default rainbow.
|
|
300
|
+
|
|
301
|
+
### Forms & Settings
|
|
302
|
+
- Every section must have a clear header — do not run form fields without grouping.
|
|
303
|
+
- Validation must be inline — not only on submit.
|
|
304
|
+
- Long forms must have a section navigation mechanism (sidebar links or step tabs).
|
|
305
|
+
|
|
306
|
+
### Landing Pages
|
|
307
|
+
- Do not default to centered hero + three feature cards + testimonials + CTA.
|
|
308
|
+
- Use at least one composition break: offset screenshot, split layout, or alternating sections.
|
|
309
|
+
- Every section should have a different job — not the same card rhythm repeated.
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Non-Negotiable Expression Rules
|
|
314
|
+
|
|
315
|
+
1. One accent color (blue), one expression mode, one signature move per page.
|
|
316
|
+
2. The page must feel designed for this specific domain, not for "a SaaS product."
|
|
317
|
+
3. Typography carries the neutral character — weight and tracking, not family variety.
|
|
318
|
+
4. Borders and backgrounds separate zones — shadows are minimal and purposeful.
|
|
319
|
+
5. If the design feels familiar, push the composition before adding decoration.
|