@nurix/etna 0.18.19 → 0.18.21
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/README.md +1 -1
- package/data/harness-index.json +1 -1
- package/data/harnesses/code/CLAUDE.md +1 -1
- package/data/harnesses/code/agents/brainstorm.md +1 -1
- package/data/harnesses/code/agents/maintenance.md +2 -2
- package/data/harnesses/code/harness.json +2 -2
- package/data/harnesses/code/rules/database.md +38 -0
- package/data/harnesses/code/rules/express.md +28 -0
- package/data/harnesses/code/rules/frontend.md +14 -0
- package/data/harnesses/code/rules/general.md +2 -40
- package/data/harnesses/code/rules/nomenclature.md +1 -8
- package/data/harnesses/code/rules/nustack.md +150 -0
- package/data/harnesses/code/skills/brainstorm/README.md +1 -1
- package/data/harnesses/code/skills/brainstorm/SKILL.md +1 -1
- package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +4 -4
- package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +3 -3
- package/data/harnesses/code/skills/design/SKILL.md +68 -0
- package/data/harnesses/code/skills/design/data/catalog/rules.csv +132 -0
- package/data/harnesses/code/skills/design/data/combinations/Readme.md +29 -0
- package/data/harnesses/code/skills/design/data/combinations/charts.csv +33 -0
- package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +437 -0
- package/data/harnesses/code/skills/design/data/combinations/icons.csv +157 -0
- package/data/harnesses/code/skills/design/data/combinations/landing.csv +38 -0
- package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +2001 -0
- package/data/harnesses/code/skills/design/data/combinations/manifest.json +283 -0
- package/data/harnesses/code/skills/design/data/combinations/palettes.csv +49 -0
- package/data/harnesses/code/skills/design/data/combinations/product-router.csv +80 -0
- package/data/harnesses/code/skills/design/data/combinations/styles.csv +54 -0
- package/data/harnesses/code/skills/design/data/combinations/typography.csv +61 -0
- package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +106 -0
- package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +154 -0
- package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +151 -0
- package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/apple.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/binance.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cal.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/clay.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +147 -0
- package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +156 -0
- package/data/harnesses/code/skills/design/data/design-md/library/composio.md +138 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +138 -0
- package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +137 -0
- package/data/harnesses/code/skills/design/data/design-md/library/expo.md +148 -0
- package/data/harnesses/code/skills/design/data/design-md/library/figma.md +141 -0
- package/data/harnesses/code/skills/design/data/design-md/library/framer.md +156 -0
- package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +153 -0
- package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +158 -0
- package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +156 -0
- package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +122 -0
- package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/meta.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/miro.md +153 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +155 -0
- package/data/harnesses/code/skills/design/data/design-md/library/notion.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +141 -0
- package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +145 -0
- package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +142 -0
- package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +152 -0
- package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +137 -0
- package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/resend.md +170 -0
- package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +145 -0
- package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +137 -0
- package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +168 -0
- package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +163 -0
- package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +147 -0
- package/data/harnesses/code/skills/design/data/design-md/library/slack.md +158 -0
- package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +171 -0
- package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +166 -0
- package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +160 -0
- package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +173 -0
- package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +145 -0
- package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +153 -0
- package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +167 -0
- package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/uber.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +130 -0
- package/data/harnesses/code/skills/design/data/design-md/library/warp.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +140 -0
- package/data/harnesses/code/skills/design/data/design-md/library/wired.md +139 -0
- package/data/harnesses/code/skills/design/data/design-md/library/wise.md +137 -0
- package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +138 -0
- package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +158 -0
- package/data/harnesses/code/skills/design/data/design-md/nurix.md +134 -0
- package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +580 -0
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +964 -0
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +960 -0
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +965 -0
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +954 -0
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +949 -0
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +962 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +958 -0
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +953 -0
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +960 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +973 -0
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +954 -0
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +963 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +968 -0
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +981 -0
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +962 -0
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +964 -0
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +959 -0
- package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +251 -0
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +965 -0
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +978 -0
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +982 -0
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +958 -0
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +23 -0
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +589 -0
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +964 -0
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +955 -0
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +977 -0
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +950 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +976 -0
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +979 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +955 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +958 -0
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +953 -0
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +904 -0
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +957 -0
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +945 -0
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +960 -0
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +953 -0
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +955 -0
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +958 -0
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +23 -0
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +613 -0
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +968 -0
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +956 -0
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +960 -0
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +958 -0
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +980 -0
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +964 -0
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +957 -0
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +979 -0
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +974 -0
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +973 -0
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +979 -0
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +966 -0
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +961 -0
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +977 -0
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +991 -0
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +966 -0
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +988 -0
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +23 -0
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +602 -0
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +974 -0
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +979 -0
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +960 -0
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +968 -0
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +965 -0
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +988 -0
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +20 -0
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +978 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +248 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +245 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +223 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +88 -0
- package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +132 -0
- package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +76 -0
- package/data/harnesses/code/skills/design/references/create.md +131 -0
- package/data/harnesses/code/skills/design/references/diagnosis.md +108 -0
- package/data/harnesses/code/skills/design/references/hard-rules.md +155 -0
- package/data/harnesses/code/skills/design/references/improve.md +87 -0
- package/data/harnesses/code/skills/design/references/interaction.md +77 -0
- package/data/harnesses/code/skills/design/references/introspect.md +100 -0
- package/data/harnesses/code/skills/design/references/lifecycle.md +73 -0
- package/data/harnesses/code/skills/design/references/personality.md +428 -0
- package/data/harnesses/code/skills/design/references/structure.md +138 -0
- package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
- package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +1006 -0
- package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +551 -0
- package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +903 -0
- package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
- package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +454 -0
- package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +267 -0
- package/data/harnesses/code/skills/design/scripts/render-rung.mjs +690 -0
- package/data/harnesses/code/skills/design/scripts/scaffold.mjs +552 -0
- package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +600 -0
- package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +68 -0
- package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +314 -0
- package/data/harnesses/code/skills/documentation/SKILL.md +61 -17
- package/data/harnesses/code/skills/documentation/references/examples.md +41 -0
- package/data/harnesses/code/skills/documentation/references/style-guide.md +14 -9
- package/data/harnesses/code/skills/documentation/references/templates.md +305 -51
- package/data/harnesses/etna/CLAUDE.md +1 -1
- package/data/harnesses/etna/agents/brainstorm.md +1 -1
- package/data/harnesses/etna/agents/maintenance.md +2 -2
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/etna/rules/general.md +2 -40
- package/data/harnesses/etna/rules/nomenclature.md +1 -8
- package/data/harnesses/etna/skills/brainstorm/README.md +1 -1
- package/data/harnesses/etna/skills/brainstorm/SKILL.md +1 -1
- package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +4 -4
- package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +3 -3
- package/data/harnesses/etna/skills/documentation/SKILL.md +61 -17
- package/data/harnesses/etna/skills/documentation/references/examples.md +41 -0
- package/data/harnesses/etna/skills/documentation/references/style-guide.md +14 -9
- package/data/harnesses/etna/skills/documentation/references/templates.md +305 -51
- package/data/harnesses/mobile/CLAUDE.md +1 -1
- package/data/harnesses/mobile/agents/brainstorm.md +1 -1
- package/data/harnesses/mobile/agents/maintenance.md +2 -2
- package/data/harnesses/mobile/harness.json +2 -2
- package/data/harnesses/mobile/rules/database.md +38 -0
- package/data/harnesses/mobile/rules/general.md +2 -40
- package/data/harnesses/mobile/rules/nomenclature.md +1 -8
- package/data/harnesses/mobile/rules/nustack.md +150 -0
- package/data/harnesses/mobile/skills/brainstorm/README.md +1 -1
- package/data/harnesses/mobile/skills/brainstorm/SKILL.md +1 -1
- package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +4 -4
- package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +3 -3
- package/data/harnesses/mobile/skills/documentation/SKILL.md +61 -17
- package/data/harnesses/mobile/skills/documentation/references/examples.md +41 -0
- package/data/harnesses/mobile/skills/documentation/references/style-guide.md +14 -9
- package/data/harnesses/mobile/skills/documentation/references/templates.md +305 -51
- package/package.json +1 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Vercel
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Vercel — stark ink-on-near-white developer-platform operator design
|
|
9
|
+
|
|
10
|
+
The operator reading of Vercel's design language. Vercel's own surface is a marketing deck for
|
|
11
|
+
engineers — a near-white canvas broken at hero scale by a multi-stop mesh gradient (cyan / blue /
|
|
12
|
+
magenta / amber) that is the entire decoration system. This entry keeps what survives at operator
|
|
13
|
+
scale: the stark ink-on-near-white palette, the deliberate gray ramp, the two-tone canvas, the Geist
|
|
14
|
+
type voice (via Inter), negative heading tracking, the 6px radius, and the calm stacked-shadow-plus-
|
|
15
|
+
hairline elevation. The mesh gradient, the pill CTA, the hero display, and the dark bands stay behind.
|
|
16
|
+
|
|
17
|
+
## 1 Visual Theme
|
|
18
|
+
|
|
19
|
+
Light by default; dark is opt-in. The system is achromatic to its core — ink `foreground` `#171717`
|
|
20
|
+
on a two-tone near-white field: the page body is `#fafafa` (98% white) and cards sit on pure white
|
|
21
|
+
`#ffffff`, separated by a `#ebebeb` hairline, not by brightness. Flat: hierarchy is carried by the
|
|
22
|
+
gray ramp, hairline `border`, and type weight — never heavy shadow. The single accent is the ink
|
|
23
|
+
itself — Vercel's primary action is a **black button** (`primary` `#171717` on white); one chromatic
|
|
24
|
+
hue, link/focus blue `#0070f3`, is reserved for interaction. Density is `standard`; the anchor surface
|
|
25
|
+
is a white canvas beside a faintly-tinted `sidebar`.
|
|
26
|
+
|
|
27
|
+
## 2 Color Roles
|
|
28
|
+
|
|
29
|
+
Light values. The identity is monochrome — ink + a deliberate gray ramp; the one chromatic accent is
|
|
30
|
+
the interaction blue, and status speaks status.
|
|
31
|
+
|
|
32
|
+
| Role | Value | Allowed where |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| `background` | near-white `#fafafa` | the page body — 98% white, the dominant field |
|
|
35
|
+
| `card` / `popover` | pure white `#ffffff` | cards, panels, and overlays — set off the body by a hairline, not brightness |
|
|
36
|
+
| `foreground` | ink `#171717` | all primary ink and headlines |
|
|
37
|
+
| `muted` / `secondary` | canvas-soft-2 `#f5f5f5` | hover rows, inset regions, secondary button fills |
|
|
38
|
+
| `muted-foreground` | gray `#666666` | labels, captions, secondary text |
|
|
39
|
+
| `border` / `input` | hairline `#ebebeb` | every separator, grid line, and field edge |
|
|
40
|
+
| `primary` | ink `#171717` | the one primary action — the black button; active nav indicator |
|
|
41
|
+
| `accent` | canvas-soft-2 `#f5f5f5` | selected / hovered rows and nav — a neutral gray wash, never coloured |
|
|
42
|
+
| `ring` | interaction blue `#0070f3` | the focus outline — the one chromatic hue, unmistakable and keyboard-first |
|
|
43
|
+
| `destructive` | red `#ee0000` | destructive actions and error state only |
|
|
44
|
+
| `success` / `warning` | green `#16a34a` / amber `#f5a623` | status signalling only, never chrome |
|
|
45
|
+
|
|
46
|
+
The mesh gradient (cyan `#50e3c2`, violet `#7928ca`, pink `#ff0080`, amber) is a hero-only marketing
|
|
47
|
+
object with no operator role (see §7); its hues survive only as chart series.
|
|
48
|
+
|
|
49
|
+
## 3 Typography
|
|
50
|
+
|
|
51
|
+
One sans, one mono, single continuous voice. `font-sans` is **Geist** — the brand's custom geometric
|
|
52
|
+
face — with **Inter** the corpus-named open substitute (`Geist, Inter, system-ui, sans-serif`); it
|
|
53
|
+
carries display, body, button, and label. `font-mono` is Geist Mono (JetBrains Mono the substitute)
|
|
54
|
+
for IDs, codes, timestamps, terminal mockups, and technical eyebrows. Numeric columns render `tabular-nums`.
|
|
55
|
+
|
|
56
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
59
|
+
| h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
60
|
+
| h3 | card / group head | 16px / 1.5 | `font-weight-strong` · -0.01em |
|
|
61
|
+
| body | UI + prose | 14px / 1.45 | `font-weight-normal` · -0.28px |
|
|
62
|
+
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
63
|
+
| eyebrow | technical label, section eyebrow | 12px / 1.35 | `font-weight-normal`, mono |
|
|
64
|
+
| code | IDs, logs, command snippets | 13px / 1.5 | `font-weight-normal`, mono |
|
|
65
|
+
|
|
66
|
+
Weight 600 is the display ceiling — the sans never reaches 700, and the brand reads calm for it. Bump
|
|
67
|
+
weight to emphasise, never size. Negative tracking is the voice (hero -0.05em stays behind; headings hold -0.03em).
|
|
68
|
+
|
|
69
|
+
## 4 Component Stylings
|
|
70
|
+
|
|
71
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
72
|
+
|
|
73
|
+
- **Button** — `primary`: filled ink on `primary-foreground`, `radius` 6px, no pill — the black button
|
|
74
|
+
is the signature, kept square. Secondary: white `card` fill, 1px `border`. Ghost: `accent` on hover.
|
|
75
|
+
- **Input** — `background` fill, 1px `border`, `radius`; focus draws the blue `ring` at 2px, no glow (field 40px).
|
|
76
|
+
- **Card** — pure white `card` on a 1px `border`, `radius`; a faint stacked shadow plus inset-hairline ring only when lifted.
|
|
77
|
+
- **Table row** — height `table-row-height`; `border` grid; `muted` on hover; selection tints `accent`; `tabular-nums` on numerics.
|
|
78
|
+
- **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich`), beside the work, not over it.
|
|
79
|
+
- **Badge** — hairline `border`, `muted`/status fill; status uses `success` / `warning` / `destructive`, never `primary`.
|
|
80
|
+
|
|
81
|
+
## 5 Layout
|
|
82
|
+
|
|
83
|
+
Base spacing unit 4px (corpus `--geist-space`); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 ·
|
|
84
|
+
48 · 64` — the marketing 96 / 128 / 192px section rhythm stays behind. Shell dimensions map one-to-one
|
|
85
|
+
to the layout primitives: sidebar `sidebar-width-expanded` (256px) / `sidebar-width-collapsed` (56px),
|
|
86
|
+
topbar `topbar-height` (64px, the corpus nav height), side panel `side-panel-width` (440px) /
|
|
87
|
+
`side-panel-width-rich` (640px), modal `modal-width-max`, forms `form-max-width`, tables full-width.
|
|
88
|
+
The page reads engineered — large gaps between regions, tight interior stacks. Density is governed by
|
|
89
|
+
`density-tier`, stepped per archetype by the surface catalog, never by absolute overrides.
|
|
90
|
+
|
|
91
|
+
## 6 Depth
|
|
92
|
+
|
|
93
|
+
Flat, calm, achromatic. Rank comes from the gray ladder and hairlines, never a heavy drop:
|
|
94
|
+
|
|
95
|
+
- **0 — canvas** `background` (`#fafafa`), no border.
|
|
96
|
+
- **1 — card / panel** pure white `card` set off the body by a 1px `border` + inset hairline ring.
|
|
97
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft
|
|
98
|
+
stacked `md` shadow, kept subtle (corpus elevation rides 4–12% black, never a single 8px blur).
|
|
99
|
+
|
|
100
|
+
Focus is a 2px blue `ring` outline (never a glow) on every interactive element — the one place a
|
|
101
|
+
chromatic hue appears, because the achromatic ink would vanish on the black button. Three z-levels: content, sticky chrome, overlay.
|
|
102
|
+
|
|
103
|
+
## 7 Do's & Don'ts
|
|
104
|
+
|
|
105
|
+
- **Do** anchor on the two-tone near-white field — `#fafafa` page, `#ffffff` cards, set off by a hairline.
|
|
106
|
+
- **Do** make the primary action a square black button (`primary` ink, `radius` 6px); it is the brand.
|
|
107
|
+
- **Do** carry hierarchy with the gray ramp, hairlines, and type weight — the system is flat.
|
|
108
|
+
- **Do** set every ID, code, timestamp, and technical eyebrow in `font-mono`; mono is the platform's voice.
|
|
109
|
+
- **Don't** introduce a second chromatic accent — the interaction blue is focus and links only.
|
|
110
|
+
- **Don't** render the CTA as a 100px pill or mix pill with 6px radii — pick the 6px in-app scale and hold it.
|
|
111
|
+
- **Don't** bring the mesh gradient in at all — it is a hero-scale object, never an icon or a swatch.
|
|
112
|
+
- **Don't** promote the geometric sans past weight 600, set body in mono, or signal elevation with a heavy drop.
|
|
113
|
+
|
|
114
|
+
## 8 Responsive
|
|
115
|
+
|
|
116
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
117
|
+
|
|
118
|
+
| Breakpoint | What changes |
|
|
119
|
+
| --- | --- |
|
|
120
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
121
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; nav → hamburger |
|
|
122
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
123
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
124
|
+
|
|
125
|
+
Code and terminal panels keep mono legibility at every breakpoint by scrolling horizontally, not wrapping.
|
|
126
|
+
|
|
127
|
+
## 9 Agent Prompt Guide
|
|
128
|
+
|
|
129
|
+
Directives the emitting agent follows verbatim:
|
|
130
|
+
|
|
131
|
+
- Anchor on the two-tone near-white field — `#fafafa` page, white cards set off by a hairline; never
|
|
132
|
+
pure-white everywhere, never a coloured page.
|
|
133
|
+
- Make the one primary action a square black button; accent nothing else. Reserve the interaction blue
|
|
134
|
+
`#0070f3` for the focus `ring` and inline links only — never a fill, never a second accent.
|
|
135
|
+
- Set page titles in the geometric sans with negative tracking (never past weight 600); set every ID,
|
|
136
|
+
code, timestamp, and technical eyebrow in `font-mono`; every numeric column is `tabular-nums`.
|
|
137
|
+
- Carry depth with the gray ladder, hairlines, and the inset-hairline card ring — past a hairline only
|
|
138
|
+
for a real overlay. Every workflow completes from the keyboard; the blue `ring` is always visible.
|
|
139
|
+
- Leave marketing behind entirely: the mesh gradient, the 100px pill CTA, the 48px hero display, the
|
|
140
|
+
dark bands, and the 96 / 128 / 192px section rhythm.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: VoltAgent
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# VoltAgent — near-black electric-green developer-console operator design
|
|
9
|
+
|
|
10
|
+
The *operator* reading of VoltAgent — a near-black IDE dressed as a documentation site: an
|
|
11
|
+
unrelenting `#101010` canvas with no light counterpart, one electric-green accent, hairline-bordered
|
|
12
|
+
cards, code-editor mockups. **Categorically dark**, like the source: dark is the signature, a valued
|
|
13
|
+
light daytime mode ships alongside. What carries — the near-black canvas, the single accent held
|
|
14
|
+
scarce, hairline-only flat depth, Inter + SF Mono, the 6px radius, near-black text on green (never
|
|
15
|
+
white); what stays behind — the 60px hero, the code-editor mockups, the 48px band rhythm, the green
|
|
16
|
+
divider band. One green does everything, so `success` is the brand's own deeper emerald `#10b981`
|
|
17
|
+
(its inline-link green), never the accent.
|
|
18
|
+
|
|
19
|
+
## 1 Visual Theme
|
|
20
|
+
|
|
21
|
+
Dark by default; light is the opt-in daytime mode. The UI floats on the near-black canvas `background` (`#101010`) —
|
|
22
|
+
no gradient, no glow, no illustration, just the surface and its hairlines. Emphatically flat: hierarchy comes from
|
|
23
|
+
1px `border` hairlines, type weight, and the off-white/near-black contrast, never a drop shadow (only true overlays
|
|
24
|
+
lift). A single accent, electric-green `primary` (`#00d992`), is reserved for the one primary action, live-status
|
|
25
|
+
indicators, the active-nav mark, and the focus `ring`; ink is a strain-reducing off-white `foreground` (`#f2f2f2`).
|
|
26
|
+
Density is `standard`, dense-capable from the engineered-documentation heritage, stepping denser per archetype. The
|
|
27
|
+
anchor surface is the near-black canvas beside a hair-darker `sidebar`, separated by a hairline, not a band.
|
|
28
|
+
|
|
29
|
+
## 2 Color Roles
|
|
30
|
+
|
|
31
|
+
The signature is dark; both themes are valued. One chromatic accent — `primary` is the only hue that
|
|
32
|
+
carries the primary-action meaning; status hues speak only status; the deeper emerald `success` is
|
|
33
|
+
deliberately not the accent green.
|
|
34
|
+
|
|
35
|
+
| Role | Light (daytime) | Dark (signature) | Allowed where |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| `background` / `card` | `#ffffff` / `#ffffff` | `#101010` / `#1a1a1a` | page canvas; panels a hairline above it |
|
|
38
|
+
| `foreground` | `#101010` | `#f2f2f2` | all primary ink (off-white on dark to ease strain) |
|
|
39
|
+
| `muted` / `secondary` | `#f4f4f5` | `#242424` | hover rows, quiet fills, secondary-button fill |
|
|
40
|
+
| `muted-foreground` | `#6b7280` | `#8b949e` | labels, captions, secondary text |
|
|
41
|
+
| `border` / `input` | `#e4e4e7` | `#3d3a39` | every separator, grid line, and field edge |
|
|
42
|
+
| `primary` | `#00d992` | `#00d992` | the one primary action; live indicators; active nav; `ring` |
|
|
43
|
+
| `primary-foreground` | `#101010` | `#101010` | text on the green — near-black, never white (brand mandate) |
|
|
44
|
+
| `accent` | `#ececed` | `#2e2e2e` | selected / hovered rows and nav — a neutral surface lift, never green |
|
|
45
|
+
| `ring` | `#00d992` | `#00d992` | the focus outline — unmistakable, because keyboard-first |
|
|
46
|
+
| `destructive` | `#dc2626` | `#f04438` | destructive actions and error state only |
|
|
47
|
+
| `success` / `warning` | `#10b981` / `#d97706` | `#10b981` / `#f59e0b` | status only, never chrome; `success` is the deeper emerald, not the accent |
|
|
48
|
+
|
|
49
|
+
## 3 Typography
|
|
50
|
+
|
|
51
|
+
Two faces. `font-sans` is Inter (weights 400 / 500 / 600 / 700) — display, body, UI, button, and every uppercase
|
|
52
|
+
eyebrow ride it; a second family never does the label work. `font-mono` is SF Mono (`SFMono-Regular` with Menlo /
|
|
53
|
+
Monaco / Consolas fallbacks; JetBrains Mono or Geist Mono the free substitutes) for IDs, codes, timestamps, log
|
|
54
|
+
lines, and metric counters; numeric columns render `tabular-nums`. The signature label is the **uppercase Inter
|
|
55
|
+
eyebrow with wide positive tracking** (`+0.18em`, the source's `2.52px` at `14px`) — the brand's one flourish.
|
|
56
|
+
|
|
57
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
58
|
+
| --- | --- | --- | --- |
|
|
59
|
+
| h1 | page title | 24px / 1.35 | `font-weight-strong` (600) · `heading-tracking` |
|
|
60
|
+
| h2 | section head | 20px / 1.4 | `font-weight-strong` (600) · `heading-tracking` |
|
|
61
|
+
| h3 | card / group head | 16px / 1.5 | `font-weight-strong` (600) · 0 |
|
|
62
|
+
| body | UI + prose | 14px / 1.45 | `font-weight-normal` (400) |
|
|
63
|
+
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
64
|
+
| caption | uppercase eyebrow | 12px / 1.3 | `font-weight-strong`, `+0.18em`, uppercase |
|
|
65
|
+
| code | IDs, logs, amounts | mono 13px / 1.4 | `font-weight-normal` |
|
|
66
|
+
|
|
67
|
+
The calm 60px/400 hero display stays behind — operator headings top out at a 24px title, emphasized by
|
|
68
|
+
weight, never by a heavier display.
|
|
69
|
+
|
|
70
|
+
## 4 Component Stylings
|
|
71
|
+
|
|
72
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
73
|
+
|
|
74
|
+
- **Button** — primary: filled green `primary` on near-black `primary-foreground`, `radius` (6px), never a pill. Secondary: `card` fill, 1px `border`, `foreground`. Ghost: transparent, green `primary` label (the one place a green *label* is allowed), `accent` on hover.
|
|
75
|
+
- **Input** — `muted` fill on dark, `background` fill on light; 1px `border` (`border-weight`), `radius`; focus draws the green `ring` at full 2px, no glow.
|
|
76
|
+
- **Card** — `card` surface on a 1px `border`; the hairline carries the edge, not a shadow; inset by `density-inset`. Featured cards take a 3px `border` or a 2px `primary` green edge, never a fill.
|
|
77
|
+
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection tints `accent` (neutral, never green).
|
|
78
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
|
|
79
|
+
- **Badge** — pill radius (badges only), `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, live pills take `primary`.
|
|
80
|
+
|
|
81
|
+
## 5 Layout
|
|
82
|
+
|
|
83
|
+
Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the marketing
|
|
84
|
+
48px band rhythm stays behind). Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
85
|
+
`sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (52px),
|
|
86
|
+
side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal `modal-width-max`, forms
|
|
87
|
+
`form-max-width`, tables full-width — the source has only a marketing top-nav, so these are the operator
|
|
88
|
+
standard. Density is governed globally by `density-tier` and stepped per archetype by the surface catalog.
|
|
89
|
+
|
|
90
|
+
## 6 Depth
|
|
91
|
+
|
|
92
|
+
Flat and hairline-first. Depth comes from the surface ladder and hairlines, not shadow:
|
|
93
|
+
|
|
94
|
+
- **0 — canvas** `background` (`#101010` dark / `#ffffff` light), no border.
|
|
95
|
+
- **1 — panel / card** `card` a hairline above the canvas on a 1px `border` — the source seats marketing cards directly on the canvas with only a hairline; the operator reading lifts panels one surface step so dense tables read, keeping the hairline as the primary edge.
|
|
96
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft lift; rank is border, surface, and position, never a heavier shadow.
|
|
97
|
+
|
|
98
|
+
A 2px `primary` green border marks a featured or active card; the dashed divider stays behind. Focus is a 2px green `ring` outline (never a glow) on every interactive element; three z-levels: content, sticky chrome, overlay.
|
|
99
|
+
|
|
100
|
+
## 7 Do's & Don'ts
|
|
101
|
+
|
|
102
|
+
- **Do** anchor the signature on the near-black canvas (`#101010`); ship the light daytime mode as the opt-in, never the default read.
|
|
103
|
+
- **Do** reserve electric-green `primary` for the single primary action, live indicators, the active-nav mark, and the focus `ring` — its scarcity is what reads as voltage.
|
|
104
|
+
- **Do** render code, log, and terminal surfaces in `font-mono` (SF Mono) with `tabular-nums`; carry the uppercase Inter eyebrow at `+0.18em` for section labels.
|
|
105
|
+
- **Don't** fill a decorative surface with the accent green — it is action, live-status, and the focus ring only; a green *label* is allowed only on the ghost button.
|
|
106
|
+
- **Don't** let a status green equal the accent green — `success` is the deeper emerald `#10b981`, never a CTA.
|
|
107
|
+
- **Don't** pill the primary CTA or use a radius outside `radius-scale` (buttons/inputs 6px, cards 8px; pill is badges and live tags only), and don't signal elevation with drop shadows — hairlines and the one-step surface lift carry depth.
|
|
108
|
+
|
|
109
|
+
## 8 Responsive
|
|
110
|
+
|
|
111
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
112
|
+
|
|
113
|
+
| Breakpoint | What changes |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
116
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
117
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
118
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
119
|
+
|
|
120
|
+
Code and log surfaces keep mono legibility by scrolling horizontally, not wrapping.
|
|
121
|
+
|
|
122
|
+
## 9 Agent Prompt Guide
|
|
123
|
+
|
|
124
|
+
Directives the emitting agent follows verbatim:
|
|
125
|
+
|
|
126
|
+
- Wear the near-black canvas as the signature; the light daytime mode is opt-in only — never make light the default for this brand. Panels sit a hairline above the canvas.
|
|
127
|
+
- Spend the electric green once per surface: the primary action, live indicators, the active-nav mark, the focus `ring`. If two things want the green, one is not primary. Never fill a decorative surface with it; text on the green is near-black (`#101010`), never white.
|
|
128
|
+
- `success` is the deeper emerald `#10b981`, never the accent green — keep status legible against a brand whose accent is already green.
|
|
129
|
+
- Render every code, log, terminal, and metric surface in `font-mono` (SF Mono); every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; section labels wear the uppercase Inter eyebrow at `+0.18em`.
|
|
130
|
+
- Depth is hairlines and one surface step, never shadow; reach for the overlay lift only for a true modal or popover. Detail and edit go in the side panel, never a modal. The green `ring` focus outline is always visible. Leave behind the 60px hero, the code-editor mockups, the 48px band rhythm, and the green divider.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Warp
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Warp — the warm-monochrome terminal operator design
|
|
9
|
+
|
|
10
|
+
Warp is an agentic development environment — a terminal wrapping an AI agent — and its marketing site
|
|
11
|
+
mirrors the product: a single warm near-charcoal band running the whole page (warmer than pure black),
|
|
12
|
+
copy almost entirely in Inter, DM Mono for the terminal mockups, no gradient, no chromatic accent
|
|
13
|
+
anywhere. This entry is the *operator* reading of that brand — an internal tool (agent-run console,
|
|
14
|
+
session queue, deploy stream) in Warp's language. What carries: the warm brown-beige temperature on
|
|
15
|
+
every neutral, the extremely tight near-rectangular radius, the Inter + DM Mono voice, the quiet display
|
|
16
|
+
(weight 400, negative tracking, never heavy), hairline-only flat depth, and — the defining trait — a
|
|
17
|
+
**monochrome** system with no chromatic accent. What stays behind: the 64px hero display, the 96px
|
|
18
|
+
section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
|
|
19
|
+
|
|
20
|
+
**Warm, light, and monochrome.** Warp's identity is the warmth, not the darkness — `oklch` hue 84.6,
|
|
21
|
+
a brown-beige tint on every neutral. This theme keeps that warmth on a **light** paper floor so the
|
|
22
|
+
light-default floor holds cleanly; the brand's own warm-charcoal `#2b2622` survives as the code /
|
|
23
|
+
log / terminal inlay (Warp is a terminal — that surface is real chrome, not a mockup). With no
|
|
24
|
+
chromatic accent, the one operator accent is **ink**: the primary action is a filled warm-charcoal
|
|
25
|
+
button.
|
|
26
|
+
|
|
27
|
+
## 1 Visual Theme
|
|
28
|
+
|
|
29
|
+
Light by default; dark is opt-in. The whole UI floats on a warm paper `background` (`#f2efe8`); cards
|
|
30
|
+
lift to Warp's own off-white `card` (`#f7f5f0`), so a panel reads by a hair of brightness plus its warm
|
|
31
|
+
hairline, never a shadow. Emphatically flat: hierarchy is carried by warm hairline `border`, type
|
|
32
|
+
weight, and the paper-to-off-white surface step. There is **no chromatic accent** — the single accent is
|
|
33
|
+
monochrome ink, warm near-charcoal `primary` (`#2b2622`, Warp's own canvas color), reserved for the one
|
|
34
|
+
primary action, the active-nav indicator, and the focus `ring`. Density is `standard`; the temperature
|
|
35
|
+
and near-rectangular radius keep the terminal-dialect tightness.
|
|
36
|
+
|
|
37
|
+
## 2 Color Roles
|
|
38
|
+
|
|
39
|
+
Light values. No chromatic accent: `primary` is monochrome ink; the chart series live only in charts
|
|
40
|
+
(see §7); status hues speak only status.
|
|
41
|
+
|
|
42
|
+
| Role | Value | Allowed where |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| `background` | warm paper `#f2efe8` | the page floor and content canvas — the dominant surface |
|
|
45
|
+
| `card` / `popover` | Warp off-white `#f7f5f0` | cards and overlays — a bright warm lift off the paper, differentiated by hairline |
|
|
46
|
+
| `foreground` | warm charcoal `#2b2622` | display and all primary ink — Warp's own canvas color, inverted to ink |
|
|
47
|
+
| `muted` / `secondary` | soft warm fill `#eae6dd` | hover rows, quiet band tints, secondary-button fill |
|
|
48
|
+
| `muted-foreground` | warm gray `#6b655c` | labels, captions, secondary text |
|
|
49
|
+
| `border` / `input` | warm hairline `#e2ddd2` | every separator, grid line, and field edge — one warm step, not an ink line |
|
|
50
|
+
| `primary` | warm charcoal `#2b2622` | the one primary action; the focus `ring`; the active-nav indicator — ink, not a hue |
|
|
51
|
+
| `primary-foreground` | off-white `#f7f5f0` | text on the charcoal action — the brand's own light tone |
|
|
52
|
+
| `accent` | warm selection lift `#e4dfd4` | selected / hovered rows and nav — a neutral warm step, never ink-filled |
|
|
53
|
+
| `ring` | `primary` charcoal | the focus outline — unmistakable, because keyboard-first |
|
|
54
|
+
| `destructive` | warm brick-red `#c0392b` | destructive actions and error state only |
|
|
55
|
+
| `success` / `warning` | warm green `#5b8a45` / warm amber `#b8791f` | status signalling only, never chrome |
|
|
56
|
+
|
|
57
|
+
The warm-charcoal `#2b2622` is not only ink — it is also the code / log / terminal inlay surface (§6).
|
|
58
|
+
|
|
59
|
+
## 3 Typography
|
|
60
|
+
|
|
61
|
+
`font-sans` is Inter — one sans carries body, UI, labels, and headings, weights 400 / 500 the working
|
|
62
|
+
pair. `font-mono` is DM Mono for IDs, codes, timestamps, log lines, and every terminal surface; numeric
|
|
63
|
+
columns render `tabular-nums`. The defining typographic trait is the **quiet display**: page titles wear
|
|
64
|
+
weight 400 with negative tracking — never a billboard — while smaller component heads step up to the
|
|
65
|
+
strong 500. The 64px hero display and rare Instrument Serif italic stay behind; a surface tops out at a
|
|
66
|
+
24px page title.
|
|
67
|
+
|
|
68
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| h1 | page title | 24px / 1.25 | `font-weight-normal` (400) · `heading-tracking` |
|
|
71
|
+
| h2 | section head | 20px / 1.3 | `font-weight-normal` (400) · `heading-tracking` |
|
|
72
|
+
| h3 | card / group head | 15px / 1.4 | `font-weight-strong` (500) · 0 |
|
|
73
|
+
| body | UI + prose | 14px / 1.45 | `font-weight-normal` |
|
|
74
|
+
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
75
|
+
| caption | uppercase eyebrow | 12px / 1.4 | `font-weight-strong`, `+0.04em`, uppercase |
|
|
76
|
+
| code | IDs, logs, amounts | mono 13px / 1.4 | `font-weight-normal` |
|
|
77
|
+
|
|
78
|
+
Keep page titles at 400 with negative tracking — the quiet voice; never a heading at 700+, and emphasise by size, never heavy weight.
|
|
79
|
+
|
|
80
|
+
## 4 Component Stylings
|
|
81
|
+
|
|
82
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
83
|
+
- **Button** — primary: filled charcoal `primary` on off-white `primary-foreground`, `radius` (near-rectangular), never a pill. Secondary: off-white `card` fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
|
|
84
|
+
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the charcoal `ring` at full 2px, no glow.
|
|
85
|
+
- **Card** — off-white `card` surface on a 1px `border` — the bright step off the paper carries the lift; shadow only when a true overlay must separate; inset by `density-inset`.
|
|
86
|
+
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection warms to `accent`.
|
|
87
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
|
|
88
|
+
- **Badge** — pill radius (badges only), `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
89
|
+
|
|
90
|
+
## 5 Layout
|
|
91
|
+
|
|
92
|
+
Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` — the marketing
|
|
93
|
+
96px section rhythm stays behind. Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
94
|
+
`sidebar-width-expanded` (240px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (52px, the
|
|
95
|
+
brand's nav height), side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap
|
|
96
|
+
`modal-width-max`, forms `form-max-width`, tables full-width — a touch tight, the terminal dialect
|
|
97
|
+
through the shell. Density is governed globally by `density-tier` and stepped per archetype by the
|
|
98
|
+
surface catalog — never by absolute overrides.
|
|
99
|
+
|
|
100
|
+
## 6 Depth
|
|
101
|
+
|
|
102
|
+
Flat and hairline-only. Depth comes from the paper-to-off-white surface step and warm hairlines, not shadow:
|
|
103
|
+
- **0 — canvas** `background` (`#f2efe8`), no border.
|
|
104
|
+
- **1 — panel / card** off-white `card` (`#f7f5f0`) on a 1px `border`; the bright step off the paper plus the hairline carries the lift. Selected / hover rows warm to `accent` (`#e4dfd4`).
|
|
105
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest soft lift, enough to float an overlay above the paper. Rank is surface, border, and position — never a heavier shadow.
|
|
106
|
+
- **inlay — code / log / terminal** warm charcoal `#2b2622` with off-white text and `font-mono` — Warp's own terminal chrome carried into a light UI.
|
|
107
|
+
|
|
108
|
+
Focus is a 2px charcoal `ring` outline (never a glow), visible on every interactive element; three z-levels: content, sticky chrome, overlay.
|
|
109
|
+
|
|
110
|
+
## 7 Do's & Don'ts
|
|
111
|
+
|
|
112
|
+
- **Do** anchor every surface on the warm paper canvas — pure white as the page floor reads as any-other-tool; the brown-beige tint is Warp.
|
|
113
|
+
- **Do** keep the accent monochrome — the primary action, the focus `ring`, and the active-nav indicator are warm-charcoal ink. There is no chromatic accent, by design.
|
|
114
|
+
- **Do** keep page titles at weight 400 with negative tracking, and render every code, log, and terminal surface in `font-mono` (DM Mono) on the warm-charcoal inlay, with `tabular-nums` on numeric columns.
|
|
115
|
+
- **Don't** introduce a chromatic brand accent — the off-white-and-charcoal monochrome IS Warp's voice; a colored CTA breaks the brand.
|
|
116
|
+
- **Don't** render a heading at 700+ or reach for a generous pill radius — the display is quiet at 400 and the button radius is near-rectangular (3–4px); pill is badges only.
|
|
117
|
+
- **Don't** drop a soft drop-shadow on cards or replace the warm paper with a cool gray or pure white — hairlines and the surface step carry depth, and the warmth is the identity.
|
|
118
|
+
|
|
119
|
+
## 8 Responsive
|
|
120
|
+
|
|
121
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
122
|
+
|
|
123
|
+
| Breakpoint | What changes |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
126
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
127
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
128
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
129
|
+
|
|
130
|
+
Code and log inlays keep mono legibility at every breakpoint by scrolling, not wrapping.
|
|
131
|
+
|
|
132
|
+
## 9 Agent Prompt Guide
|
|
133
|
+
|
|
134
|
+
Directives the emitting agent follows verbatim:
|
|
135
|
+
- Reach for the warm paper canvas first — never pure white or a cool gray for the page floor; the brown-beige tint is Warp. Cards are the off-white bright step above it.
|
|
136
|
+
- The accent is monochrome ink: spend warm-charcoal once per surface on the primary action, the focus `ring`, and the active-nav indicator. There is no chromatic accent — do not introduce one. Color otherwise belongs to data and status.
|
|
137
|
+
- Page titles wear weight 400 with negative tracking — the quiet voice; component heads and labels earn the strong 500. Never render a heading at 700+.
|
|
138
|
+
- Render code, log, and terminal panels in `font-mono` (DM Mono) on the warm-charcoal `#2b2622` inlay — show real terminal chrome, not a light mockup of it. Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
|
|
139
|
+
- Keep the geometry near-rectangular — the button/input radius is 3–4px; pill is badges only. Depth is the paper-to-off-white step and warm hairlines, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work, never a modal.
|
|
140
|
+
- Keyboard-first: the charcoal `ring` focus outline is always visible. Leave behind the 64px hero display, the 96px section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Webflow
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Webflow — the visual-builder operator reading
|
|
9
|
+
|
|
10
|
+
A deliberate operator reading of the Webflow brand: engineered, near-monochrome, hairline-first. The
|
|
11
|
+
marketing site breathes 80px hero display type and full-saturation category cards; an operator
|
|
12
|
+
surface keeps the near-black primary, the pure-gray neutrals, and the single crisp blue, and leaves
|
|
13
|
+
the display type and chromatic fills behind.
|
|
14
|
+
|
|
15
|
+
## 1 Visual Theme
|
|
16
|
+
|
|
17
|
+
Light by default; dark is opt-in. Flat and engineered: a generous white canvas (`background`
|
|
18
|
+
`#ffffff`) carries near-black ink (`foreground` `#080808` — deeper than pure black, so it reads as
|
|
19
|
+
branded, not default). Hierarchy comes from hairline `border` (`#d8d8d8`), type weight, and contrast —
|
|
20
|
+
never heavy shadow; the brand's layered drop-shadow is a marketing flourish operator surfaces reserve
|
|
21
|
+
for true overlays. The primary action is a near-black fill, not a color; a single chromatic accent — a
|
|
22
|
+
crisp blue `#146ef5` — is reserved for interactive state (focus, selection, active nav). The neutral
|
|
23
|
+
ramp is pure achromatic gray, no temperature. Density is `standard`; the anchor surface is white
|
|
24
|
+
content beside a barely-tinted `sidebar`.
|
|
25
|
+
|
|
26
|
+
## 2 Color Roles
|
|
27
|
+
|
|
28
|
+
Light values first. One chromatic accent — the blue carries interactive meaning; near-black is the
|
|
29
|
+
action ink; status hues speak only status. The five brand hues live only in charts (§9).
|
|
30
|
+
|
|
31
|
+
| Role | Value | Allowed where |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
|
|
34
|
+
| `foreground` | near-black `#080808` | all primary ink, headings, wordmark |
|
|
35
|
+
| `muted` / `secondary` | light gray `#f4f4f4` | hover rows, subtle fills, secondary buttons |
|
|
36
|
+
| `muted-foreground` | mid gray `#5a5a5a` | labels, captions, secondary text |
|
|
37
|
+
| `border` / `input` | hairline `#d8d8d8` | every separator, grid line, and field edge |
|
|
38
|
+
| `primary` | near-black `#080808` | the one primary action; every primary CTA |
|
|
39
|
+
| `primary-foreground` | white `#ffffff` | ink on the near-black action |
|
|
40
|
+
| `accent` | faint blue tint `#eaf1fe` | selected/hovered rows and nav, on-accent surfaces only |
|
|
41
|
+
| `accent-foreground` / `ring` | blue `#146ef5` | active nav ink, link emphasis, and the focus outline |
|
|
42
|
+
| `destructive` | red `#ee1d36` | destructive actions and error state only |
|
|
43
|
+
| `success` / `warning` | green `#00d722` / amber `#ffae13` | status signalling only, never chrome |
|
|
44
|
+
|
|
45
|
+
The purple / pink / blue / orange / green category palette is marketing fill; it carries no operator role except as the chart series (§7).
|
|
46
|
+
|
|
47
|
+
## 3 Typography
|
|
48
|
+
|
|
49
|
+
One sans, one mono. `font-sans` is WF Visual Sans Variable (falling back to Inter) — a single family
|
|
50
|
+
carries UI, body, and headings; weight and tracking, not a second face, carry the display voice. The
|
|
51
|
+
brand's ceiling is `font-weight-strong` 600 — it never goes heavier. `font-mono` is WFVisualSans-Mono
|
|
52
|
+
(Inconsolata fallback) for IDs, codes, timestamps, and log lines. Display tracks negative
|
|
53
|
+
(`heading-tracking` `-0.01em`) — tight kerning is part of the voice. Numeric columns render
|
|
54
|
+
`tabular-nums` so figures align down a column (floor P4).
|
|
55
|
+
|
|
56
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
57
|
+
| --- | --- | --- | --- |
|
|
58
|
+
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
59
|
+
| h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
60
|
+
| h3 | card / group head | 16px / 1.5 | `font-weight-strong` |
|
|
61
|
+
| body | UI + prose, dense table | 14px / 1.6 | `font-weight-normal` |
|
|
62
|
+
| caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.6px`, uppercase |
|
|
63
|
+
|
|
64
|
+
Bump weight one step for emphasis — never past 600, never by resizing. Badge labels take the brand's signature semibold caption; the marketing eyebrow (`+1.5px` uppercase) survives as the section label.
|
|
65
|
+
|
|
66
|
+
## 4 Component Stylings
|
|
67
|
+
|
|
68
|
+
Every recurring component composes from the primitives — no literal values.
|
|
69
|
+
|
|
70
|
+
- **Button** — `primary`: filled `primary` (near-black) on `primary-foreground`, `radius` 4px, no pill.
|
|
71
|
+
Secondary: `background` fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
|
|
72
|
+
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the `ring`
|
|
73
|
+
(blue) at 2px, no glow.
|
|
74
|
+
- **Card** — `card` surface, 1px `border`, `radius` steps up to the 8px card radius; shadow only when
|
|
75
|
+
lifted (`shadow-intensity`); inset by `density-inset`.
|
|
76
|
+
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
|
|
77
|
+
numeric columns; row selection tints `accent`.
|
|
78
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
|
|
79
|
+
for content-heavy), beside the work, not over it (floor P3).
|
|
80
|
+
- **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take
|
|
81
|
+
`success` / `warning` / `destructive`, never `primary`; the info badge fills `ring` blue.
|
|
82
|
+
|
|
83
|
+
## 5 Layout
|
|
84
|
+
|
|
85
|
+
Base spacing unit 4px (Tailwind `--spacing` 0.25rem); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 20 ·
|
|
86
|
+
24 · 32 · 48 · 64`. Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
87
|
+
`sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
|
|
88
|
+
`side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`,
|
|
89
|
+
tables full-width. Density is governed globally by `density-tier` (rewriting the scale through
|
|
90
|
+
`density-gap`) and stepped per archetype by the surface catalog — never by absolute overrides.
|
|
91
|
+
|
|
92
|
+
## 6 Depth
|
|
93
|
+
|
|
94
|
+
Flat. Hierarchy comes from the surface ladder and hairlines, not shadow:
|
|
95
|
+
|
|
96
|
+
- **0 — canvas** `background`, no border.
|
|
97
|
+
- **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
|
|
98
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
|
|
99
|
+
shadow. The brand's five-stop layered drop-shadow collapses to this single restrained lift; rank is
|
|
100
|
+
border and position, never a heavier stack.
|
|
101
|
+
|
|
102
|
+
Focus is a 2px `ring` (blue) outline, never a glow, on every interactive element (floor P6). Three
|
|
103
|
+
z-levels: content, sticky chrome, overlay.
|
|
104
|
+
|
|
105
|
+
## 7 Do's & Don'ts
|
|
106
|
+
|
|
107
|
+
- **Do** reserve `primary` (near-black) for the single most important action; everything else is
|
|
108
|
+
neutral or status, and hierarchy rides hairlines, weight, and whitespace — the brand is flat.
|
|
109
|
+
- **Do** keep one chromatic accent: blue `#146ef5` for interactive state; nothing else competes.
|
|
110
|
+
- **Do** apply `tabular-nums` to numeric columns, `font-mono` to IDs/codes/timestamps, and cap type
|
|
111
|
+
weight at 600 — emphasize by weight, never by resizing or a heavier face.
|
|
112
|
+
- **Don't** use the purple / pink / blue / orange / green category palette as button or chrome fills —
|
|
113
|
+
those stay in the chart series; a chromatic CTA is off-brand.
|
|
114
|
+
- **Don't** pill the primary CTA or reach for a radius outside `radius-scale` (buttons 4px, cards 8px).
|
|
115
|
+
- **Don't** open detail or edit in a modal when the side panel fits — modals are confirmations only.
|
|
116
|
+
- **Don't** import the 80px hero display type or marketing gutters into an operator surface.
|
|
117
|
+
|
|
118
|
+
## 8 Responsive
|
|
119
|
+
|
|
120
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
121
|
+
|
|
122
|
+
| Breakpoint | What changes |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
125
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
126
|
+
| 1024 / 1440 | sidebar expands; two-pane queue+detail holds; forms cap at `form-max-width`, tables full-width |
|
|
127
|
+
|
|
128
|
+
## 9 Agent Prompt Guide
|
|
129
|
+
|
|
130
|
+
Directives the emitting agent follows verbatim:
|
|
131
|
+
|
|
132
|
+
- What carries: the near-black `primary` action, pure achromatic gray neutrals, the single blue
|
|
133
|
+
interactive accent, 4px button / 8px card radius, the WF Visual Sans → Inter voice at weights
|
|
134
|
+
400–600 with negative tracking, and the five brand hues as the chart series. What stays behind: the
|
|
135
|
+
80px hero display type, full-saturation category-card fills, and marketing gutters.
|
|
136
|
+
- Accent only the primary action with near-black; reserve blue for focus, selection, and active nav.
|
|
137
|
+
If two things want emphasis, one of them is not primary.
|
|
138
|
+
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
|
|
139
|
+
- Every workflow completes from the keyboard; the 2px blue `ring` is always visible (P6). Stay flat —
|
|
140
|
+
hairline and weight before shadow; reach past a hairline only for a real overlay.
|