@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,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: ClickHouse
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ClickHouse — an operator reading of the black-canvas, electric-yellow system
|
|
9
|
+
|
|
10
|
+
ClickHouse's web system is the highest-contrast brand in the data-platform category: near-black canvas,
|
|
11
|
+
one electric-yellow voltage, white confident-bold sans, real SQL in dark cards. This entry is the
|
|
12
|
+
*operator* reading — an internal tool (query console, cluster dashboard, job queue, log stream) in
|
|
13
|
+
ClickHouse's language. What carries: the near-black canvas, the one yellow accent held scarce, white
|
|
14
|
+
ink on dark surfaces, flat shadowless depth from surface contrast and hairlines, the 8px-not-pill
|
|
15
|
+
radius, and Inter's tight bold-700 voice. What stays behind: the 72/56/40px hero display, full-bleed
|
|
16
|
+
yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm.
|
|
17
|
+
|
|
18
|
+
**This brand is categorically dark.** ClickHouse ships no light-mode surface — the black canvas *is*
|
|
19
|
+
the identity. White-canvas is off-brand.
|
|
20
|
+
|
|
21
|
+
## 1 Visual Theme
|
|
22
|
+
|
|
23
|
+
Dark by default — the near-black `background` (`#0a0a0a`) is the floor of every surface, with no light
|
|
24
|
+
counterpart. Emphatically flat: hierarchy comes from the surface ladder (canvas → card → elevated),
|
|
25
|
+
hairline `border`, type weight, and white-on-black contrast — never shadow. A single accent,
|
|
26
|
+
electric-yellow `primary` (`#faff69`), is held scarce: it wears the one primary action, the focus
|
|
27
|
+
`ring`, and the active-nav indicator, nothing else. The neutral ramp is pure achromatic grey (white
|
|
28
|
+
ink down through `#cccccc` to `#888888`), so the UI reads engineered and monochrome, yellow its only
|
|
29
|
+
voltage. Density is `dense` — the brand's engineering-grade rhythm.
|
|
30
|
+
|
|
31
|
+
## 2 Color Roles
|
|
32
|
+
|
|
33
|
+
Dark values. One accent — yellow `primary` is the only chromatic hue that carries meaning; status
|
|
34
|
+
hues speak only status.
|
|
35
|
+
|
|
36
|
+
| Role | Value | Allowed where |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| `background` | near-black canvas `#0a0a0a` | page floor and content area — the dominant surface |
|
|
39
|
+
| `foreground` | white ink `#ffffff` | headlines and primary text |
|
|
40
|
+
| `card` / `popover` / `secondary` | dim panel `#1a1a1a` | cards, overlays, secondary-button fills — lifted off the canvas |
|
|
41
|
+
| `muted` | recessive fill `#121212` | inset wells, disabled tracks, faint band tints |
|
|
42
|
+
| `muted-foreground` | mid grey `#888888` | labels, captions, secondary text |
|
|
43
|
+
| `accent` | elevated grey `#242424` | hover and selected rows and nav — a neutral lift |
|
|
44
|
+
| `border` / `input` | hairline `#2a2a2a` | every separator, grid line, and field edge |
|
|
45
|
+
| `primary` | electric yellow `#faff69` | the one primary action; active-nav indicator; key interactive detail |
|
|
46
|
+
| `primary-foreground` | black `#0a0a0a` | text on the yellow action — the high-contrast brand signal |
|
|
47
|
+
| `ring` | yellow `#faff69` | the focus outline — unmistakable, because keyboard-first |
|
|
48
|
+
| `destructive` | red `#ef4444` | destructive actions and error state only |
|
|
49
|
+
| `success` / `warning` | emerald `#22c55e` / amber `#f59e0b` | status signalling only, never chrome |
|
|
50
|
+
|
|
51
|
+
The yellow's power is its scarcity at element level; full-bleed yellow bands and stat numbers are
|
|
52
|
+
marketing voltage and carry no operator role (see §7).
|
|
53
|
+
|
|
54
|
+
## 3 Typography
|
|
55
|
+
|
|
56
|
+
One sans, one mono. `font-sans` is Inter — body, UI, and headings all ride it; weight and tight
|
|
57
|
+
tracking, not a second family, carry the display voice. `font-mono` is JetBrains Mono for IDs, codes,
|
|
58
|
+
timestamps, log lines, and SQL; numeric columns render `tabular-nums`. The marketing display scale
|
|
59
|
+
(72/56/40px) stays behind — an operator surface tops out at a 24px page title.
|
|
60
|
+
|
|
61
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
62
|
+
| --- | --- | --- | --- |
|
|
63
|
+
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
64
|
+
| h2 | section head | 18px / 1.35 | `font-weight-strong` · `heading-tracking` |
|
|
65
|
+
| h3 | card / group head | 15px / 1.4 | `font-weight-strong` |
|
|
66
|
+
| body | UI + prose | 14px / 1.5 | `font-weight-normal` |
|
|
67
|
+
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
68
|
+
| caption | uppercase eyebrow | 12px / 1.4 | `font-weight-strong`, `+0.1em`, uppercase |
|
|
69
|
+
|
|
70
|
+
Headings run Inter at the strong weight (700) with tight negative tracking — the brand's defining
|
|
71
|
+
trait, preserved at operator sizes even as the display *scale* stays behind. Build hierarchy on size
|
|
72
|
+
and weight, never a second family; bump weight for emphasis, never size.
|
|
73
|
+
|
|
74
|
+
## 4 Component Stylings
|
|
75
|
+
|
|
76
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
77
|
+
|
|
78
|
+
- **Button** — primary: filled yellow `primary` on black `primary-foreground`, `radius`, never a pill. Secondary: `secondary` dim-panel fill, `border`, `foreground`. Ghost: transparent, `accent` on hover.
|
|
79
|
+
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the yellow `ring` at full 2px, no glow.
|
|
80
|
+
- **Card** — `card` dim-panel surface, 1px `border`, `radius`; depth is the surface lift off the canvas, not shadow; inset by `density-inset`.
|
|
81
|
+
- **Table row** — height `table-row-height`; `border` grid lines carry the grid; `accent` on hover; `tabular-nums` on numeric columns; selection tints `accent` with a yellow `primary` left-indicator.
|
|
82
|
+
- **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
|
|
83
|
+
- **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, never `primary`. Pill radius is badges-only.
|
|
84
|
+
|
|
85
|
+
## 5 Layout
|
|
86
|
+
|
|
87
|
+
Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` — the marketing
|
|
88
|
+
96px section rhythm stays behind. Shell dimensions map one-to-one to the layout primitives: sidebar
|
|
89
|
+
`sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height` (64px, the brand's nav
|
|
90
|
+
height), side panel `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms
|
|
91
|
+
`form-max-width`, tables full-width. Density is governed globally by `density-tier` (dense, rewriting
|
|
92
|
+
the spacing scale through `density-gap`) and stepped per archetype by the surface catalog.
|
|
93
|
+
|
|
94
|
+
## 6 Depth
|
|
95
|
+
|
|
96
|
+
Flat and shadowless. Depth comes from the surface ladder and hairlines, not drop shadows:
|
|
97
|
+
|
|
98
|
+
- **0 — canvas** `background` (`#0a0a0a`), no border.
|
|
99
|
+
- **1 — panel / card** `card` (`#1a1a1a`) on a 1px `border`; the dim-panel lift off the near-black canvas carries rank. Hover/selected lift one step to `accent` (`#242424`).
|
|
100
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest lift, enough to separate an overlay from the black canvas above a scrim. Rank is surface, border, and position — never a heavier shadow.
|
|
101
|
+
|
|
102
|
+
Focus is a 2px yellow `ring` outline (never a glow), visible on every interactive element. Three
|
|
103
|
+
z-levels: content, sticky chrome, overlay.
|
|
104
|
+
|
|
105
|
+
## 7 Do's & Don'ts
|
|
106
|
+
|
|
107
|
+
- **Do** anchor every surface on the near-black canvas; the yellow-on-black pairing is the brand.
|
|
108
|
+
- **Do** reserve yellow `primary` for the primary action, the focus `ring`, and the active-nav indicator — nothing else. Its scarcity at element scale is what reads as voltage.
|
|
109
|
+
- **Do** carry hierarchy with the surface ladder, hairlines, weight, and size — the brand is flat.
|
|
110
|
+
- **Do** run headings Inter 700 with tight negative tracking; build hierarchy on size and weight.
|
|
111
|
+
- **Do** apply `tabular-nums` to numeric columns and `font-mono` to IDs, codes, timestamps, and SQL.
|
|
112
|
+
- **Don't** introduce a second brand color — ClickHouse is monochrome plus one yellow.
|
|
113
|
+
- **Don't** fill large surfaces with yellow or set body text in yellow; the full-bleed yellow band is marketing-only.
|
|
114
|
+
- **Don't** pill controls or reach for a radius outside `radius-scale` — the button/input radius is 8px.
|
|
115
|
+
- **Don't** signal elevation with drop shadows, or adapt the shell to a light canvas — this brand has no light surface.
|
|
116
|
+
|
|
117
|
+
## 8 Responsive
|
|
118
|
+
|
|
119
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
120
|
+
|
|
121
|
+
| Breakpoint | What changes |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
124
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
125
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
126
|
+
| 1440 | content caps at `form-max-width` for forms; tables and dashboards use the full width |
|
|
127
|
+
|
|
128
|
+
## 9 Agent Prompt Guide
|
|
129
|
+
|
|
130
|
+
Directives the emitting agent follows verbatim:
|
|
131
|
+
|
|
132
|
+
- Wear the near-black canvas by default; this brand is categorically dark — no light surface to fall back to. Cards and panels are the dim-panel lift off it, not white.
|
|
133
|
+
- Spend yellow once per surface: the primary action, the focus ring, the active-nav indicator. If two things want the yellow, one is not primary. Color otherwise belongs to data and status.
|
|
134
|
+
- Depth is surface contrast and hairlines, never shadow; reach for the faint overlay lift only for a true modal or popover over the canvas.
|
|
135
|
+
- Headings ride Inter 700 with tight tracking; the display scale (72/56/40px) stays behind — operator headings top out at 24px, hierarchy is size and weight.
|
|
136
|
+
- Every numeric column is `tabular-nums`; every ID / code / timestamp / log line and SQL block is `font-mono` (JetBrains Mono). Show the real query, not an illustration of one.
|
|
137
|
+
- Detail and edit go in the side panel beside the work; a modal is a confirmation, not a workspace.
|
|
138
|
+
- Keyboard-first: the yellow `ring` focus outline is always visible.
|
|
139
|
+
- Leave behind: full-bleed yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm — marketing voltage, not operator chrome.
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Cohere
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cohere — an operator reading of the enterprise-AI editorial system
|
|
9
|
+
|
|
10
|
+
Cohere's web system is a controlled enterprise-AI interface: stark white editorial canvas, a
|
|
11
|
+
monochrome near-black UI shell, warm mineral surfaces, and a type split between carved display
|
|
12
|
+
headlines and precise Unica77 UI text. This entry is the *operator* reading of that brand — an
|
|
13
|
+
internal tool (agent console, review queue, research dashboard) in Cohere's language. What carries:
|
|
14
|
+
the white canvas, near-black actions, one cool blue for interactive detail, hairline-led flatness, the
|
|
15
|
+
rounded-but-not-pill radii, and the light-weight, tightly-tracked type voice. What stays behind: the
|
|
16
|
+
hero-scale display type (96/72/60px), pill CTAs, coral editorial taxonomy, and the deep-green/navy
|
|
17
|
+
media bands where color arrives through photography, not chrome.
|
|
18
|
+
|
|
19
|
+
## 1 Visual Theme
|
|
20
|
+
|
|
21
|
+
Light by default; dark is opt-in. Emphatically flat — hierarchy is carried by hairline `border`,
|
|
22
|
+
surface alternation, and tight type, never by shadow. The shell is austere black-and-white: a white
|
|
23
|
+
canvas, near-black ink, and a single chromatic accent, `accent-foreground` action-blue, reserved for
|
|
24
|
+
links, selection, and the one detail that must read as clickable. The primary action wears near-black
|
|
25
|
+
`primary`, not a color — a monochrome UI where color arrives through data, not chrome. Warm soft-stone
|
|
26
|
+
tints `secondary` so the system reads editorial. Density is `spacious`: whitespace is a trust signal
|
|
27
|
+
here, so rows run tall and sections breathe.
|
|
28
|
+
|
|
29
|
+
## 2 Color Roles
|
|
30
|
+
|
|
31
|
+
One chromatic accent — action-blue is the only hue that carries interactive meaning; status hues
|
|
32
|
+
speak only status.
|
|
33
|
+
|
|
34
|
+
| Role | Value | Allowed where |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `background` / `card` / `popover` | canvas white `#ffffff` | page, cards, and overlays — the dominant surface |
|
|
37
|
+
| `foreground` | ink `#212121` | all primary text |
|
|
38
|
+
| `muted` | soft neutral `#f2f2f2` | hover rows, subtle fills, containment |
|
|
39
|
+
| `muted-foreground` | body-muted `#616161` | labels, captions, secondary text |
|
|
40
|
+
| `secondary` | soft-stone `#eeece7` | warm neutral blocks, secondary buttons — the mineral surface |
|
|
41
|
+
| `border` / `input` | hairline `#d9d9dd` | every list rule, grid line, and field edge |
|
|
42
|
+
| `primary` | near-black `#17171c` | the one primary action; active nav — a neutral, not a color |
|
|
43
|
+
| `accent` | pale-blue wash `#f1f5ff` | selected/hovered rows and nav |
|
|
44
|
+
| `accent-foreground` | action-blue `#1863dc` | links, the single interactive-detail hue |
|
|
45
|
+
| `ring` | focus-blue `#4c6ee6` | the keyboard focus outline — the brand's own focus color |
|
|
46
|
+
| `destructive` | error red `#b30000` | destructive actions and error state only |
|
|
47
|
+
| `success` / `warning` | emerald / burnt-coral | status signalling only, never chrome |
|
|
48
|
+
|
|
49
|
+
Coral, deep enterprise green, and dark navy are marketing graces — editorial taxonomy chips and
|
|
50
|
+
media bands with no operator chrome role (see §7); deep-green and navy survive only as chart hues.
|
|
51
|
+
|
|
52
|
+
## 3 Typography
|
|
53
|
+
|
|
54
|
+
Two families for the UI, one for technical labels. `font-sans` is Unica77 Cohere Web (Inter fallback) —
|
|
55
|
+
body, UI, and headings all ride it; size, tracking, and surface contrast carry hierarchy, not heavy
|
|
56
|
+
weight. `font-mono` is CohereMono for IDs, codes, timestamps, and the uppercase labels that mark
|
|
57
|
+
systems and taxonomy. Numeric columns render `tabular-nums`. The display faces (CohereText hero at
|
|
58
|
+
96/72px) stay behind — an operator surface starts at the UI end of the ramp.
|
|
59
|
+
|
|
60
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
|
|
63
|
+
| h2 | section head | 20px / 1.35 | `font-weight-strong` · `-0.01em` |
|
|
64
|
+
| h3 | card / group head | 16px / 1.4 | `font-weight-strong` |
|
|
65
|
+
| body | UI + prose | 15px / 1.5 | `font-weight-normal` |
|
|
66
|
+
| small | labels, meta, dense table | 13px / 1.45 | `font-weight-normal` |
|
|
67
|
+
| mono-label | uppercase system / category marker | 13px / 1.4 | `font-mono`, `+0.28px`, uppercase |
|
|
68
|
+
|
|
69
|
+
Keep display type tight and carved; avoid heavy bold — hierarchy is size, tracking, and contrast.
|
|
70
|
+
Bump weight one step for emphasis; never change size to emphasize.
|
|
71
|
+
|
|
72
|
+
## 4 Component Stylings
|
|
73
|
+
|
|
74
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
75
|
+
|
|
76
|
+
- **Button** — primary: filled near-black `primary` on `primary-foreground`, `radius`, never a pill (the
|
|
77
|
+
32px pill is marketing-only). Secondary: `secondary` soft-stone fill, `border`. Ghost: `accent` hover.
|
|
78
|
+
- **Input** — `background` fill, 1px `border`, `radius`; focus draws the `ring` at full 2px, no glow.
|
|
79
|
+
- **Card** — `card` surface, 1px `border`, `radius`; shadow only for a true overlay; inset `density-inset`.
|
|
80
|
+
- **Table row** — height `table-row-height` (tall, editorial); `border` grid lines carry the rows;
|
|
81
|
+
`muted` on hover; `tabular-nums` on numeric columns; selection tints `accent`.
|
|
82
|
+
- **Side panel** — detail and edit open in the panel (`side-panel-width` / `side-panel-width-rich`),
|
|
83
|
+
beside the work, not over it.
|
|
84
|
+
- **Badge** — hairline `border`, `muted`/status fill, uppercase mono label; status badges take
|
|
85
|
+
`success` / `warning` / `destructive`, never `primary` or `accent-foreground`.
|
|
86
|
+
|
|
87
|
+
## 5 Layout
|
|
88
|
+
|
|
89
|
+
Base spacing follows an 8px cadence; the on-scale ramp is `2 · 6 · 8 · 12 · 16 · 24 · 32 · 40 · 56 ·
|
|
90
|
+
80` — the 80 preserves Cohere's dramatic section breathing. Shell dimensions map one-to-one to the
|
|
91
|
+
layout primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar
|
|
92
|
+
`topbar-height`, side panel `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`,
|
|
93
|
+
forms `form-max-width`, tables full-width. Density is governed globally by `density-tier` (spacious)
|
|
94
|
+
and stepped per archetype by the surface catalog.
|
|
95
|
+
|
|
96
|
+
## 6 Depth
|
|
97
|
+
|
|
98
|
+
Emphatically flat. Depth comes from surface alternation, hairline borders, and rounded corners — never
|
|
99
|
+
drop shadows.
|
|
100
|
+
|
|
101
|
+
- **0 — canvas** `background`, no border.
|
|
102
|
+
- **1 — panel / card** `card` on a 1px `border`; borders and warm `secondary` blocks carry rank.
|
|
103
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
|
|
104
|
+
shadow. No level stacks a heavier shadow; rank is border, surface, and position.
|
|
105
|
+
|
|
106
|
+
Focus is a 2px `ring` (focus-blue) outline, never a glow, on every interactive element. Three
|
|
107
|
+
z-levels: content, sticky chrome, overlay.
|
|
108
|
+
|
|
109
|
+
## 7 Do's & Don'ts
|
|
110
|
+
|
|
111
|
+
- **Do** reserve near-black `primary` for the single most important action; keep the shell monochrome.
|
|
112
|
+
- **Do** carry the grid with hairlines and surface alternation — the brand is border-led and flat.
|
|
113
|
+
- **Do** let action-blue `accent-foreground` be the one chromatic hue for links, selection, and focus.
|
|
114
|
+
- **Do** apply `tabular-nums` to numeric columns and `font-mono` to IDs, codes, and uppercase labels.
|
|
115
|
+
- **Don't** pill the CTA or reach for a radius outside `radius-scale` — the 32px pill stays in
|
|
116
|
+
marketing.
|
|
117
|
+
- **Don't** turn coral, deep-green, or navy into decorative surface fills; they are media-band and
|
|
118
|
+
editorial-taxonomy colors, not operator chrome.
|
|
119
|
+
- **Don't** add heavy drop shadows to cards; reach past a hairline only for a real overlay.
|
|
120
|
+
- **Don't** collapse the display/body type split into one flat sans, or promote a second chromatic
|
|
121
|
+
accent.
|
|
122
|
+
|
|
123
|
+
## 8 Responsive
|
|
124
|
+
|
|
125
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
126
|
+
|
|
127
|
+
| Breakpoint | What changes |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; rows keep their rule structure, metadata below the title |
|
|
130
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); card grids drop 3→2; tables scroll overflow |
|
|
131
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side; 3-column grids return |
|
|
132
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width with generous section intervals |
|
|
133
|
+
|
|
134
|
+
## 9 Agent Prompt Guide
|
|
135
|
+
|
|
136
|
+
Directives the emitting agent follows verbatim:
|
|
137
|
+
|
|
138
|
+
- Reach first for the monochrome shell: white canvas, near-black `primary` actions, hairline borders.
|
|
139
|
+
- One chromatic accent — action-blue `accent-foreground` for links, selection, focus. A second hue as
|
|
140
|
+
chrome is wrong; color belongs to data and status.
|
|
141
|
+
- Stay flat — hairline and surface alternation before shadow; reach past a hairline only for a real
|
|
142
|
+
overlay. Honor the editorial calm: spacious density, tall rows, generous section gaps.
|
|
143
|
+
- Uppercase mono labels (`font-mono`) mark categories and systems; every numeric column is
|
|
144
|
+
`tabular-nums`; every ID / code / timestamp is `font-mono`. Every workflow completes from the
|
|
145
|
+
keyboard, the focus-blue `ring` always visible.
|
|
146
|
+
- Leave behind: hero/product display type (96/72/60px), pill CTAs, coral taxonomy chips, and the
|
|
147
|
+
deep-green/navy marketing media bands — brand-decorative, not operator chrome.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Coinbase
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Coinbase — the operator reading
|
|
9
|
+
|
|
10
|
+
The institutional-calm reading of Coinbase's brand — a quietly-confident financial-services look
|
|
11
|
+
that happens to trade crypto. Coinbase's own surfaces are marketing-editorial: an 80px hero display,
|
|
12
|
+
full-bleed near-black heroes carrying floating product-UI mockup cards, a white/gray/dark band
|
|
13
|
+
rotation at a 96px rhythm. This entry keeps what survives at operator scale — the pure-white canvas,
|
|
14
|
+
the single scarce Coinbase Blue accent, the cool near-black ink, the rounded geometry, the
|
|
15
|
+
editorial-calm type voice — and leaves the heroes, hero display, mockup stacks, and 96px rhythm
|
|
16
|
+
behind. Where a fellow exchange (Binance) runs a dense trading terminal, Coinbase reads calmer — its
|
|
17
|
+
density lives behind login walls, so the operator tier stays an honest `standard`.
|
|
18
|
+
|
|
19
|
+
## 1 Visual Theme
|
|
20
|
+
|
|
21
|
+
Light by default; the near-black editorial heroes are marketing and stay behind. Flat: depth comes from
|
|
22
|
+
card-on-card layering and 1px hairlines, never decorative shadow. A single accent — Coinbase Blue
|
|
23
|
+
`primary` (`#0052ff`) — is used scarcely, one or two blue moments per surface, on the one action that
|
|
24
|
+
matters. Ink is a cool near-black `foreground` (`#0a0b0d`) on a pure-white `background` (`#ffffff`); the
|
|
25
|
+
neutral field is a cool gray ladder (`#f7f7f7` → `#eef0f3`) that reads institutional, not flatly warm.
|
|
26
|
+
The geometry is rounded — soft corners throughout, sharp corners essentially absent. Density is
|
|
27
|
+
`standard` and editorially calm; the anchor surface is a white canvas beside a faintly cool `sidebar`.
|
|
28
|
+
|
|
29
|
+
## 2 Color Roles
|
|
30
|
+
|
|
31
|
+
Light values. One accent: `primary` is the only chromatic hue that carries brand meaning; the
|
|
32
|
+
trading up/down hues and sub-brand gold speak status only.
|
|
33
|
+
|
|
34
|
+
| Role | Value | Allowed where |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `background` / `card` / `popover` | pure white `#ffffff` | page, cards, and overlays — the dominant surface, differentiated by hairline not brightness |
|
|
37
|
+
| `foreground` | cool near-black `#0a0b0d` | all primary ink and headings |
|
|
38
|
+
| `muted` | soft gray `#f7f7f7` | hover rows, subtle fills, quiet alternating bands |
|
|
39
|
+
| `secondary` | strong gray `#eef0f3` | secondary button fill, one step darker than canvas |
|
|
40
|
+
| `muted-foreground` | cool gray `#5b616e` | labels, captions, secondary running text |
|
|
41
|
+
| `border` / `input` | hairline `#dee1e6` | every separator, grid line, and field edge — the highest-frequency token |
|
|
42
|
+
| `primary` | Coinbase Blue `#0052ff` (press `#003ecc`, disabled `#a8b8cc`) | the one primary action; active nav; the inline brand link — used scarcely |
|
|
43
|
+
| `accent` | blue wash `#e6eeff` | selected/hovered rows and nav — a light wash of `primary`, on-accent surfaces only |
|
|
44
|
+
| `ring` | `primary` blue | the focus outline — inputs focus to a 2px Coinbase Blue edge |
|
|
45
|
+
| `destructive` | trading-down red `#cf202f` | destructive actions, error state, and down-moves |
|
|
46
|
+
| `success` | trading-up green `#05b169` | success status and up-moves |
|
|
47
|
+
| `warning` | gold `#f4b000` | caution status only — never a chrome fill |
|
|
48
|
+
|
|
49
|
+
The `#0a0b0d` near-black is ink here, not a page surface — the full-bleed dark heroes it powers stay
|
|
50
|
+
behind (§9). Blue stays scarce; the up/down hues live only in figures and status.
|
|
51
|
+
|
|
52
|
+
## 3 Typography
|
|
53
|
+
|
|
54
|
+
One sans, one mono. `font-sans` is Inter — the corpus-named substitute for both CoinbaseDisplay and
|
|
55
|
+
CoinbaseSans; the single sans serves UI, body, headings, and labels, with heading weight and the
|
|
56
|
+
editorial negative tracking carrying the display voice. `font-mono` is JetBrains Mono (substitute for
|
|
57
|
+
CoinbaseMono) — the "trustworthy number" voice for asset prices, percent changes, IDs, and timestamps.
|
|
58
|
+
Numeric columns render `tabular-nums` so figures align down a column.
|
|
59
|
+
|
|
60
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
|
|
63
|
+
| h2 | section head | 18px / 1.33 | `font-weight-strong` · `heading-tracking` |
|
|
64
|
+
| h3 | card / group head | 16px / 1.25 | `font-weight-strong` |
|
|
65
|
+
| body | UI + prose | 14px / 1.5 | `font-weight-normal` |
|
|
66
|
+
| small | labels, meta, dense table | 13px / 1.5 | `font-weight-normal` |
|
|
67
|
+
| caption | uppercase eyebrow | 12px / 1.5 | `font-weight-strong`, uppercase |
|
|
68
|
+
| number | table figures, prices | 14px / 1.4 · 500 | `font-mono`, `tabular-nums` |
|
|
69
|
+
|
|
70
|
+
The corpus's editorial signature — a modest display weight (400) with strong negative tracking — lives
|
|
71
|
+
on the 80/64/52px hero display, which stays behind. At operator heading scale, weight steps to
|
|
72
|
+
`font-weight-strong` (600) while the negative tracking carries.
|
|
73
|
+
|
|
74
|
+
## 4 Component Stylings
|
|
75
|
+
|
|
76
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
77
|
+
|
|
78
|
+
- **Button** — `primary`: filled Coinbase Blue on `primary-foreground`, `radius` (8px), no hero pill;
|
|
79
|
+
press darkens to the active blue, disabled fades. Secondary: `secondary` gray fill, `foreground`.
|
|
80
|
+
Tertiary: transparent text in `primary`.
|
|
81
|
+
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the `ring` at a
|
|
82
|
+
2px Coinbase Blue edge, no glow.
|
|
83
|
+
- **Card** — `card` surface on a 1px `border`; card radius steps one or two up from control radius (the
|
|
84
|
+
corpus's containers are notably round); shadow only when a card must lift off the canvas.
|
|
85
|
+
- **Table / asset row** — height `table-row-height`; `border` grid lines; `muted` on hover; selection
|
|
86
|
+
tints `accent`; price/amount cells take `font-mono` + `tabular-nums`; direction cells take `success`
|
|
87
|
+
(up) / `destructive` (down) as text color, never a fill.
|
|
88
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
|
|
89
|
+
beside the work, not over it.
|
|
90
|
+
- **Badge / avatar** — pill/full radius (the round brand nod): badges take hairline `border`, `muted` /
|
|
91
|
+
status fill, uppercase caption (`success` / `warning` / `destructive`, never `primary`); asset glyphs
|
|
92
|
+
sit on a full-circle `muted` plate — the one place full-round geometry carries.
|
|
93
|
+
|
|
94
|
+
## 5 Layout
|
|
95
|
+
|
|
96
|
+
Base spacing unit 4px; the on-scale ramp is `4 · 8 · 12 · 16 · 20 · 24 · 32 · 48` (the marketing 96px
|
|
97
|
+
section rhythm stays behind). Shell dimensions map one-to-one to the layout primitives: topbar
|
|
98
|
+
`topbar-height` (64px, Coinbase's native top-nav height), sidebar `sidebar-width-expanded` /
|
|
99
|
+
`sidebar-width-collapsed`, side panel `side-panel-width` / `side-panel-width-rich`, modal cap
|
|
100
|
+
`modal-width-max`, forms `form-max-width`, tables full-width. Density is governed globally by
|
|
101
|
+
`density-tier` and stepped per archetype by the surface catalog — never by absolute overrides; the
|
|
102
|
+
layout breathes a hair more than a dense console, editorial calm carried through spacing.
|
|
103
|
+
|
|
104
|
+
## 6 Depth
|
|
105
|
+
|
|
106
|
+
Flat, layering-first. Hierarchy comes from the surface ladder and hairlines, not shadow:
|
|
107
|
+
|
|
108
|
+
- **0 — canvas** `background` (`#ffffff`), no border.
|
|
109
|
+
- **1 — panel / card** `card` on a 1px `border`; the corpus builds depth by floating one card over
|
|
110
|
+
another, so rank reads by hairline and position, not brightness. Shadow only when a card must lift.
|
|
111
|
+
- **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the single
|
|
112
|
+
soft shadow tier (`sm`); no level stacks a heavier shadow to signal rank.
|
|
113
|
+
|
|
114
|
+
Focus is a 2px `ring` (Coinbase Blue) outline, never a glow, on every interactive element; three
|
|
115
|
+
z-levels: content, sticky chrome, overlay.
|
|
116
|
+
|
|
117
|
+
## 7 Do's & Don'ts
|
|
118
|
+
|
|
119
|
+
- **Do** reserve `primary` (Coinbase Blue) for the single most important action, active nav, and inline
|
|
120
|
+
brand links — one or two blue moments per surface. Its scarcity is the brand.
|
|
121
|
+
- **Do** keep the geometry rounded — 8px controls, rounder cards, pill badges, full-circle glyphs — and
|
|
122
|
+
build depth by layering cards over hairlines, the way the marketing surfaces float mockups.
|
|
123
|
+
- **Do** carry every figure in `font-mono` with `tabular-nums`; direction rides `success` /
|
|
124
|
+
`destructive` as text color.
|
|
125
|
+
- **Don't** introduce a second brand accent — the trading up/down hues and the sub-brand gold are
|
|
126
|
+
status/chart roles; and never use green or red as a button or surface fill (direction is text only).
|
|
127
|
+
- **Don't** pill dense operator buttons — the hero pill CTA stays behind; buttons take 8px `radius`,
|
|
128
|
+
pill radius is for badges and chips.
|
|
129
|
+
- **Don't** signal elevation with heavy or stacked drop shadows — the system has one soft tier.
|
|
130
|
+
|
|
131
|
+
## 8 Responsive
|
|
132
|
+
|
|
133
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
134
|
+
|
|
135
|
+
| Breakpoint | What changes |
|
|
136
|
+
| --- | --- |
|
|
137
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; asset rows stack ticker over price |
|
|
138
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
139
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
140
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
141
|
+
|
|
142
|
+
## 9 Agent Prompt Guide
|
|
143
|
+
|
|
144
|
+
Directives the emitting agent follows verbatim:
|
|
145
|
+
|
|
146
|
+
- Anchor on the pure-white canvas; accent only the primary action in Coinbase Blue. If two things want
|
|
147
|
+
the blue, one is not primary — keep it to one or two moments per surface.
|
|
148
|
+
- Keep the geometry rounded and calm: 8px controls, 16–24px cards, pill badges, full-circle glyphs.
|
|
149
|
+
Never sharp-corner a control.
|
|
150
|
+
- Every numeric column is `tabular-nums` and every price / ID / timestamp is `font-mono`; direction and
|
|
151
|
+
status ride `success` / `destructive` as text color, never a fill.
|
|
152
|
+
- Stay flat — layer cards over hairlines before any shadow; reach past the single soft tier only for a
|
|
153
|
+
true overlay. Emphasise by weight, not size; carry the negative `heading-tracking` on headings.
|
|
154
|
+
- Leave the marketing skin behind (heroes, 80px display, mockup stacks, band rotation, 96px rhythm,
|
|
155
|
+
hero pill CTA). What carries: the palette, its cool temperature, the single scarce blue, the rounded
|
|
156
|
+
geometry, the tabular number voice, and card-on-card flat depth.
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Composio
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Composio — dark developer-infrastructure operator design
|
|
9
|
+
|
|
10
|
+
An operator reading of Composio, a developer-tools brand for AI-agent tool integration. Composio is
|
|
11
|
+
**categorically dark** — a near-black canvas holding white type and a single electric-blue voltage —
|
|
12
|
+
so this entry keeps dark as the default theme (the categorically-dark override of the general
|
|
13
|
+
light-default). Carrying in: the palette, the cool near-black temperature, the compact
|
|
14
|
+
developer-ergonomic radii, the single sans voice. Staying behind: the marketing signature — the 2×2
|
|
15
|
+
terminal-mockup hero, the spotlight glows, the 72px display, the 96px section rhythm.
|
|
16
|
+
|
|
17
|
+
## 1 Visual Theme
|
|
18
|
+
|
|
19
|
+
Dark by default — a light inversion is the opt-in, not the base. Flat: hierarchy comes from a
|
|
20
|
+
brightness-step surface ladder (`background` → `card` → `secondary`/`accent`), hairline `border`, and
|
|
21
|
+
type weight, never from drop shadow. A single accent, Composio Blue `primary` (`#0007cd`), reserved
|
|
22
|
+
for the one action that matters — primary CTA, active nav, key interactive detail. The neutral ramp is
|
|
23
|
+
a true cool near-black: canvas `#0f0f0f`, cards `#181818`, elevated fills `#222222`. The anchor surface
|
|
24
|
+
is a near-black content canvas beside a same-tone `sidebar` that the hairline `border` delineates.
|
|
25
|
+
Density is `standard` — technical but not cramped, inheriting the marketing's composure over terminal-cramming.
|
|
26
|
+
|
|
27
|
+
## 2 Color Roles
|
|
28
|
+
|
|
29
|
+
Dark values are the default theme. `primary` is the only chromatic hue that carries meaning; cyan
|
|
30
|
+
and violet are illustration-only and take no operator role; status hues speak only status.
|
|
31
|
+
|
|
32
|
+
| Role | Value | Allowed where |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| `background` | `#0f0f0f` | the page floor — near-black canvas, the dominant surface |
|
|
35
|
+
| `card` / `popover` | `#181818` / `#2a2a2a` | content cards; overlays and dropdowns lift to the top surface |
|
|
36
|
+
| `foreground` | `#ffffff` | primary ink — table values, headings, high-emphasis text |
|
|
37
|
+
| `muted` / `secondary` | `#222222` | subtle fills, secondary buttons, disabled surfaces |
|
|
38
|
+
| `muted-foreground` | `#a8a8a8` | labels, captions, running secondary text |
|
|
39
|
+
| `border` / `input` | `#222222` / `#333333` | every separator and grid line; fields take the stronger hairline edge |
|
|
40
|
+
| `primary` | `#0007cd` | the one primary action; active nav; brand detail |
|
|
41
|
+
| `accent` | `#2a2a2a` | hover and selected rows — a neutral lift, never a second hue |
|
|
42
|
+
| `ring` | `#1a26ff` | the focus outline — the brighter blue glow tone, legible on near-black |
|
|
43
|
+
| `destructive` | `#ff4d4d` | destructive actions and error state only |
|
|
44
|
+
| `success` / `warning` | `#33d17a` / `#f5a524` | status signalling only, never chrome |
|
|
45
|
+
|
|
46
|
+
Pure black `#000000` is reserved for code, terminal, and log surfaces — never as general chrome (see §7).
|
|
47
|
+
|
|
48
|
+
## 3 Typography
|
|
49
|
+
|
|
50
|
+
One sans, one mono. `font-sans` is abcDiatype (the licensed brand face) with Inter as the open
|
|
51
|
+
substitute at weight 500 / -1.5% tracking — UI, body, and headings all ride it; weight and tight
|
|
52
|
+
tracking, not a second family, carry the display voice. `font-mono` is JetBrains Mono for code, CLI,
|
|
53
|
+
IDs, and log lines. Numeric columns render `tabular-nums` so figures align down a column.
|
|
54
|
+
|
|
55
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
56
|
+
| --- | --- | --- | --- |
|
|
57
|
+
| h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
|
|
58
|
+
| h2 | section head | 18px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
59
|
+
| h3 | card / group head | 16px / 1.4 | `font-weight-strong` · `heading-tracking` |
|
|
60
|
+
| body | UI + prose | 16px / 1.5 | `font-weight-normal` |
|
|
61
|
+
| small | labels, meta, dense table | 14px / 1.5 | `font-weight-normal` |
|
|
62
|
+
| caption | uppercase eyebrow | 11px / 1.4 | `font-weight-strong`, `+0.08em`, uppercase |
|
|
63
|
+
| code | IDs, CLI, log lines | 13px / 1.5 | `font-mono` · 400 |
|
|
64
|
+
|
|
65
|
+
Bump weight for emphasis, never size; display weight never drops below 500.
|
|
66
|
+
|
|
67
|
+
## 4 Component Stylings
|
|
68
|
+
|
|
69
|
+
- **Button** — `primary`: filled `primary` on `primary-foreground`, `radius` (8px), no pill. Secondary:
|
|
70
|
+
`secondary` fill, `foreground`, `radius`. Ghost: transparent, `accent` on hover.
|
|
71
|
+
- **Input** — `card` fill, 1px `input` border (`border-weight`), `radius`; focus draws the `ring` at
|
|
72
|
+
full 2px, no glow.
|
|
73
|
+
- **Card** — `card` surface stepped one brightness rung above `background`, 1px `border`, `radius`;
|
|
74
|
+
depth from the surface step, not shadow.
|
|
75
|
+
- **Table row** — height `table-row-height`; `border` grid lines; `accent` on hover and selection;
|
|
76
|
+
`tabular-nums` on numeric columns; IDs in `font-mono`.
|
|
77
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
|
|
78
|
+
for content-heavy), beside the work, not over it.
|
|
79
|
+
- **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take
|
|
80
|
+
`success` / `warning` / `destructive`, never `primary`. Pill radius is legal for small label badges only.
|
|
81
|
+
|
|
82
|
+
## 5 Layout
|
|
83
|
+
|
|
84
|
+
Base spacing unit 4px; the on-scale ramp is `4 · 8 · 12 · 16 · 20 · 24 · 32 · 48 · 96`. Shell
|
|
85
|
+
dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` /
|
|
86
|
+
`sidebar-width-collapsed`, topbar `topbar-height`, side panel `side-panel-width` /
|
|
87
|
+
`side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables full-width.
|
|
88
|
+
Density is governed globally by `density-tier` through `density-gap` and stepped per archetype by the
|
|
89
|
+
surface catalog — never by absolute overrides.
|
|
90
|
+
|
|
91
|
+
## 6 Depth
|
|
92
|
+
|
|
93
|
+
Flat, brightness-step depth — the brand's signature. Rank rises by surface brightness, not shadow:
|
|
94
|
+
|
|
95
|
+
- **0 — canvas** `background` (`#0f0f0f`), no border.
|
|
96
|
+
- **1 — panel / card** `card` (`#181818`) one rung up, on a 1px `border`.
|
|
97
|
+
- **2 — overlay** `popover` / side panel / modal (`#2a2a2a`), the top rung; `shadow-intensity` stays
|
|
98
|
+
near-absent even here — the brightness step carries the lift.
|
|
99
|
+
|
|
100
|
+
Code, terminal, and log surfaces recess to pure `#000000`. Focus is a 2px `ring` outline in the
|
|
101
|
+
`primary-glow` blue (never a glow), on every interactive element. Three z-levels: content, chrome, overlay.
|
|
102
|
+
|
|
103
|
+
## 7 Do's & Don'ts
|
|
104
|
+
|
|
105
|
+
- **Do** reserve `primary` (Composio Blue) for the single most important action on a surface;
|
|
106
|
+
everything else is neutral or status.
|
|
107
|
+
- **Do** carry depth with the brightness-step ladder and hairlines — the brand adds no drop-shadow tiers.
|
|
108
|
+
- **Do** render code, CLI, IDs, and timestamps in `font-mono`; apply `tabular-nums` to numeric columns.
|
|
109
|
+
- **Do** keep CTAs at `radius` (8px) — compact developer-ergonomic geometry, not full pills.
|
|
110
|
+
- **Don't** promote a second chromatic accent — cyan (`#00d4ff`) and violet (`#7b3aed`) are
|
|
111
|
+
illustration-only; pill the primary CTA; or reach for a radius outside `radius-scale`.
|
|
112
|
+
- **Don't** use pure `#000000` outside code/terminal/log surfaces, signal elevation with heavy drop
|
|
113
|
+
shadows, or drop display weight below 500.
|
|
114
|
+
|
|
115
|
+
## 8 Responsive
|
|
116
|
+
|
|
117
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
118
|
+
|
|
119
|
+
| Breakpoint | What changes |
|
|
120
|
+
| --- | --- |
|
|
121
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
122
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); top nav → hamburger; tables scroll overflow |
|
|
123
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
124
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
|
|
125
|
+
|
|
126
|
+
## 9 Agent Prompt Guide
|
|
127
|
+
|
|
128
|
+
Directives the emitting agent follows verbatim:
|
|
129
|
+
|
|
130
|
+
- Run dark by default — this brand is categorically dark; the light map is the opt-in, not the base.
|
|
131
|
+
- Lead every list surface with its table; lead every entity with its primary read, not its chrome.
|
|
132
|
+
- Accent only the primary action with Composio Blue. If two things want the accent, one is not primary.
|
|
133
|
+
- Depth is a brightness step, never a shadow — step surfaces up from `background` to `card` to overlay.
|
|
134
|
+
- Code, CLI, IDs, and log lines are `font-mono`; numeric columns are `tabular-nums`; code surfaces
|
|
135
|
+
recess to `#000000`.
|
|
136
|
+
- Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
|
|
137
|
+
- Leave the marketing behind — no terminal-mockup hero, no spotlight glows, no 72px display, no 96px
|
|
138
|
+
band rhythm. The palette, near-black temperature, 8px radii, and single sans voice carry; the show does not.
|