@nurix/etna 0.18.20 → 0.18.22
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 +3 -3
- package/data/harnesses/code/agents/brainstorm.md +1 -1
- package/data/harnesses/code/agents/maintenance.md +8 -7
- 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 +4 -4
- package/data/harnesses/code/skills/brainstorm/SKILL.md +5 -3
- package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +15 -11
- package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +5 -5
- package/data/harnesses/code/skills/design/SKILL.md +14 -11
- package/data/harnesses/code/skills/design/data/catalog/rules.csv +4 -4
- 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 +27 -238
- package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +7 -88
- package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +1 -82
- package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +4 -85
- package/data/harnesses/code/skills/design/data/design-md/library/apple.md +5 -86
- package/data/harnesses/code/skills/design/data/design-md/library/binance.md +4 -87
- package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +7 -86
- package/data/harnesses/code/skills/design/data/design-md/library/cal.md +4 -84
- package/data/harnesses/code/skills/design/data/design-md/library/clay.md +5 -86
- package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +3 -84
- package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +2 -82
- package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +10 -91
- package/data/harnesses/code/skills/design/data/design-md/library/composio.md +2 -84
- package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +3 -85
- package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +7 -90
- package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -80
- package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -80
- package/data/harnesses/code/skills/design/data/design-md/library/framer.md +5 -85
- package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +2 -82
- package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +5 -86
- package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +9 -91
- package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +9 -89
- package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -115
- package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +5 -85
- package/data/harnesses/code/skills/design/data/design-md/library/meta.md +7 -88
- package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +3 -84
- package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +4 -85
- package/data/harnesses/code/skills/design/data/design-md/library/miro.md +8 -88
- package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +8 -88
- package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +4 -85
- package/data/harnesses/code/skills/design/data/design-md/library/notion.md +4 -84
- package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +7 -88
- package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +5 -86
- package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +6 -87
- package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +9 -91
- package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +5 -88
- package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +9 -89
- package/data/harnesses/code/skills/design/data/design-md/library/resend.md +4 -119
- package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +4 -84
- package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -82
- package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +3 -86
- package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +13 -94
- package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +2 -82
- package/data/harnesses/code/skills/design/data/design-md/library/slack.md +6 -88
- package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +13 -94
- package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +4 -86
- package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +7 -88
- package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +6 -88
- package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +5 -86
- package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +6 -86
- package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +12 -93
- package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +11 -91
- package/data/harnesses/code/skills/design/data/design-md/library/uber.md +8 -88
- package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +2 -82
- package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +11 -126
- package/data/harnesses/code/skills/design/data/design-md/library/warp.md +8 -88
- package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +3 -83
- package/data/harnesses/code/skills/design/data/design-md/library/wired.md +10 -91
- package/data/harnesses/code/skills/design/data/design-md/library/wise.md +7 -90
- package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +6 -88
- package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +9 -89
- package/data/harnesses/code/skills/design/data/design-md/nurix.md +4 -87
- 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/surface-catalog.md +1 -1
- package/data/harnesses/code/skills/design/references/create.md +14 -9
- package/data/harnesses/code/skills/design/references/diagnosis.md +1 -1
- package/data/harnesses/code/skills/design/references/hard-rules.md +4 -4
- package/data/harnesses/code/skills/design/references/improve.md +11 -9
- package/data/harnesses/code/skills/design/references/introspect.md +1 -1
- package/data/harnesses/code/skills/design/references/personality.md +337 -413
- package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
- package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +596 -296
- package/data/harnesses/code/skills/design/scripts/{detector.mjs → lib/checks.mjs} +145 -140
- package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
- package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +105 -37
- package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +60 -73
- package/data/harnesses/code/skills/design/scripts/render-rung.mjs +1 -1
- package/data/harnesses/code/skills/design/scripts/scaffold.mjs +1 -1
- package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +205 -37
- 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 +306 -52
- package/data/harnesses/etna/CLAUDE.md +3 -3
- package/data/harnesses/etna/agents/brainstorm.md +1 -1
- package/data/harnesses/etna/agents/maintenance.md +8 -7
- 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 +4 -4
- package/data/harnesses/etna/skills/brainstorm/SKILL.md +5 -3
- package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +15 -11
- package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +5 -5
- 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 +306 -52
- package/data/harnesses/mobile/CLAUDE.md +3 -3
- package/data/harnesses/mobile/agents/brainstorm.md +1 -1
- package/data/harnesses/mobile/agents/maintenance.md +8 -7
- 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 +4 -4
- package/data/harnesses/mobile/skills/brainstorm/SKILL.md +5 -3
- package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +15 -11
- package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +5 -5
- 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 +306 -52
- package/package.json +1 -1
- package/data/harnesses/code/skills/design/scripts/hook-config.json +0 -11
|
@@ -8,12 +8,12 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Miro — the operator reading
|
|
9
9
|
|
|
10
10
|
Miro's marketing canvas is a confident, playful frame: a canary-yellow wordmark on stark white,
|
|
11
|
-
black-pill CTAs, and oversized pastel feature cards echoing the live whiteboard's sticky-note
|
|
12
|
-
The 80px Roobert display, the 120px hero rhythm, the real-board mockups, and the exuberant
|
|
13
|
-
on the marketing site. An operator surface inherits the *spine*: black ink on white,
|
|
14
|
-
accent (Miro brand blue), the friendly geometric Roobert type voice at its elegant
|
|
15
|
-
roomy rounded radius — a friendly tool made by people who like color, the joy
|
|
16
|
-
|
|
11
|
+
black-pill CTAs, and oversized pastel feature cards echoing the live whiteboard's sticky-note
|
|
12
|
+
palette. The 80px Roobert display, the 120px hero rhythm, the real-board mockups, and the exuberant
|
|
13
|
+
pastels stay on the marketing site. An operator surface inherits the *spine*: black ink on white,
|
|
14
|
+
one chromatic accent (Miro brand blue), the friendly geometric Roobert type voice at its elegant
|
|
15
|
+
medium weight, and a roomy rounded radius — a friendly tool made by people who like color, the joy
|
|
16
|
+
demoted to chart encodings.
|
|
17
17
|
|
|
18
18
|
## 1 Visual Theme
|
|
19
19
|
|
|
@@ -28,8 +28,8 @@ tier, stepping denser per archetype.
|
|
|
28
28
|
|
|
29
29
|
## 2 Color Roles
|
|
30
30
|
|
|
31
|
-
Light values first
|
|
32
|
-
|
|
31
|
+
Light values first. One chromatic accent — brand blue carries interactive meaning; the sticky-note
|
|
32
|
+
pastels appear only as chart series; yellow is a grace.
|
|
33
33
|
|
|
34
34
|
| Role | Value | Allowed where |
|
|
35
35
|
| --- | --- | --- |
|
|
@@ -151,83 +151,3 @@ Directives the emitting agent follows verbatim:
|
|
|
151
151
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
|
|
152
152
|
- The sticky-note pastels live only in charts (`chart-1..5`); stay flat — hairline and weight before
|
|
153
153
|
shadow, and reach past a hairline only for a real, soft, navy-tinted overlay.
|
|
154
|
-
|
|
155
|
-
```yaml design-primitives
|
|
156
|
-
radius: 8px # corpus: Miro's functional radius (rounded.md — inputs, search-pill, ghost); the marketing 28-32px pastel cards stay behind
|
|
157
|
-
shadow-intensity: 0.5 # derived: predominantly flat with soft navy-tinted shadows (corpus 0.04-0.12 alpha); shadow lifts only true overlays
|
|
158
|
-
border-weight: 1px
|
|
159
|
-
density-gap: 1
|
|
160
|
-
density-inset: 1
|
|
161
|
-
font-sans: Roobert PRO, Noto Sans, -apple-system, BlinkMacSystemFont, sans-serif # corpus: Roobert PRO plus documented fallbacks
|
|
162
|
-
font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # derived: Miro ships no mono (all Roobert); operator IDs/codes/logs need one — Geist Mono's geometric humanist character pairs with Roobert
|
|
163
|
-
font-weight-normal: 400 # corpus: body 400
|
|
164
|
-
font-weight-strong: 500 # corpus: headings AND medium emphasis run 500; Roobert never uses 700 — the elegant medium-weight display voice carries
|
|
165
|
-
heading-tracking: -0.01em # derived: display tracks -2px…-1px but relaxes to 0 by heading-3; a faint -0.01em echoes the display DNA at operator heading sizes
|
|
166
|
-
duration-unit: 50ms # derived: corpus documents no timings; operator functional base
|
|
167
|
-
duration-fast: 100ms # derived: operator functional default
|
|
168
|
-
duration-normal: 150ms # corpus: recommends 150-200ms ease
|
|
169
|
-
duration-slow: 200ms # corpus: recommends 150-200ms ease (upper bound); friendly-quick
|
|
170
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus recommends a generic "ease"; standard functional curve
|
|
171
|
-
contrast-boost: 1 # derived: Miro's hairlines are visible and inputs already take a stronger edge; no boost needed
|
|
172
|
-
icon-stroke: 1.75 # derived: Miro ships no icon system; lucide at 1.75 matches Roobert's geometric medium-weight character
|
|
173
|
-
icon-size-base: 16px # derived: operator standard
|
|
174
|
-
sidebar-width-expanded: 256px # derived: Miro is marketing (no app shell); the airy brand rhythm → a touch roomier than a dense rail
|
|
175
|
-
sidebar-width-collapsed: 64px # derived: mirrors Miro's ~64px nav height as the icon rail
|
|
176
|
-
topbar-height: 64px # corpus: Miro's documented top-nav height (~64px)
|
|
177
|
-
side-panel-width: 440px # derived: no shell in corpus; roomy per the friendly brand rhythm
|
|
178
|
-
side-panel-width-rich: 640px # derived: no shell; content-heavy detail width
|
|
179
|
-
modal-width-max: 560px # derived: no shell; modals for confirmations only
|
|
180
|
-
form-max-width: 640px # derived: no shell; comfortable single-column form cap
|
|
181
|
-
table-row-height: 44px # corpus: Miro's 44px form/touch-target height → roomy operator rows; dense archetypes step down via the surface catalog
|
|
182
|
-
verbosity: default
|
|
183
|
-
feedback: subtle # rationale: Miro's friendly, responsive brand wants present-but-tasteful feedback
|
|
184
|
-
density-tier: standard # rationale: a spacious, airy consumer brand read down to an honest operator tier, leaning roomy; density earned per archetype
|
|
185
|
-
product-traits: [saas, collaboration, workspace, dashboard, admin]
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
```yaml lever-manifest
|
|
189
|
-
version: 1
|
|
190
|
-
fonts: { sans: "Roobert PRO, Noto Sans, -apple-system, BlinkMacSystemFont, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
191
|
-
color-tokens:
|
|
192
|
-
light:
|
|
193
|
-
background: "#ffffff"
|
|
194
|
-
foreground: "#1c1c1e"
|
|
195
|
-
card: "#ffffff"
|
|
196
|
-
card-foreground: "#1c1c1e"
|
|
197
|
-
muted: "#f7f8fa"
|
|
198
|
-
muted-foreground: "#555a6a"
|
|
199
|
-
border: "#e0e2e8"
|
|
200
|
-
input: "#c7cad5" # corpus: hairline-strong — Miro gives inputs a heavier edge than dividers
|
|
201
|
-
ring: "#4262ff" # corpus: brand blue on the focus edge (text-input-focused)
|
|
202
|
-
primary: "#1c1c1e" # corpus: the black-pill primary CTA color
|
|
203
|
-
primary-foreground: "#ffffff"
|
|
204
|
-
accent: "#f5f3ff" # corpus: surface-pricing-featured lavender — the featured/selected wash
|
|
205
|
-
accent-foreground: "#4262ff" # corpus: brand blue on the lavender tint
|
|
206
|
-
destructive: "#e5484d" # derived: Miro ships only soft error backgrounds; a saturated red is needed for destructive fills, tuned to the warm coral-leaning palette
|
|
207
|
-
destructive-foreground: "#ffffff"
|
|
208
|
-
success: "#00b473" # corpus: success-accent green
|
|
209
|
-
warning: "#fcb900" # derived: brand-yellow-deep repurposed as the amber warning hue
|
|
210
|
-
popover: "#ffffff"
|
|
211
|
-
popover-foreground: "#1c1c1e"
|
|
212
|
-
secondary: "#f7f8fa"
|
|
213
|
-
secondary-foreground: "#1c1c1e"
|
|
214
|
-
chart-1: "#4262ff" # brand: blue anchors the ramp as the saturated primary series
|
|
215
|
-
chart-2: "#0fbcb0" # brand: teal sticky-note hue
|
|
216
|
-
chart-3: "#ff9999" # brand: coral sticky-note hue
|
|
217
|
-
chart-4: "#fcb900" # brand: deep-yellow sticky-note hue
|
|
218
|
-
chart-5: "#00b473" # brand: green success accent, completing the sticky-note set
|
|
219
|
-
sidebar: "#f7f8fa"
|
|
220
|
-
sidebar-foreground: "#1c1c1e"
|
|
221
|
-
sidebar-primary: "#1c1c1e"
|
|
222
|
-
sidebar-primary-foreground: "#ffffff"
|
|
223
|
-
sidebar-accent: "#eef0f3" # corpus: hairline-soft — neutral nav hover/selection tint
|
|
224
|
-
sidebar-accent-foreground: "#1c1c1e"
|
|
225
|
-
sidebar-border: "#e0e2e8"
|
|
226
|
-
sidebar-ring: "#4262ff" # corpus: brand-blue focus ring in the nav
|
|
227
|
-
spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
|
|
228
|
-
radius-scale: [0, 4, 8, 12, 16, 9999]
|
|
229
|
-
shadow-levels: [none, sm, md]
|
|
230
|
-
motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
231
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
232
|
-
accent-count: 1
|
|
233
|
-
```
|
|
@@ -7,12 +7,12 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Mistral AI — the operator reading
|
|
9
9
|
|
|
10
|
-
Mistral's public brand is cinematographic: sunset gradients over mountain photography, a
|
|
11
|
-
"stripe" closing every page, hero-scale near-serif display type. This is the *operator*
|
|
12
|
-
palette temperature, the single saturated-orange accent, the sober editorial geometry,
|
|
13
|
-
voice carry across; the gradients, photographic heroes, and hero-scale display face
|
|
14
|
-
internal tool wearing Mistral is a warm, cream-panelled console with one orange
|
|
15
|
-
|
|
10
|
+
Mistral's public brand is cinematographic: sunset gradients over mountain photography, a
|
|
11
|
+
red-to-cream "stripe" closing every page, hero-scale near-serif display type. This is the *operator*
|
|
12
|
+
reading — the palette temperature, the single saturated-orange accent, the sober editorial geometry,
|
|
13
|
+
and the type voice carry across; the gradients, photographic heroes, and hero-scale display face
|
|
14
|
+
stay behind. An internal tool wearing Mistral is a warm, cream-panelled console with one orange
|
|
15
|
+
action, not a landing page.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -24,8 +24,8 @@ without a gradient. Density is `standard`, leaning comfortable (44px rows), dens
|
|
|
24
24
|
|
|
25
25
|
## 2 Color Roles
|
|
26
26
|
|
|
27
|
-
Light values; hex is the brand's native format
|
|
28
|
-
|
|
27
|
+
Light values; hex is the brand's native format. One accent — `primary` orange is the only chromatic
|
|
28
|
+
hue that carries meaning; status hues speak only status.
|
|
29
29
|
|
|
30
30
|
| Role | Value | Allowed where |
|
|
31
31
|
| --- | --- | --- |
|
|
@@ -138,83 +138,3 @@ behind: the sunset gradient bands, the hero-scale PP Editorial Old display face,
|
|
|
138
138
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
|
|
139
139
|
- Every workflow completes from the keyboard; the orange `ring` focus outline is always visible.
|
|
140
140
|
- Stay flat and sober — hairline and weight before shadow, no pills, no gradient chrome.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # derived: brand button radius is md=8px; scale keeps 12px for cards
|
|
144
|
-
shadow-intensity: 0.4 # derived: brand runs predominantly flat, shadows at 0.04 alpha — lift only overlays
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif # brand's UI/prose face; the hero-scale near-serif display stays behind
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 500 # derived: brand headings emphasize at 500 (editorial), not 600 — 600 reserved for the eyebrow
|
|
152
|
-
heading-tracking: -0.01em # brand display tracks -0.5px at the large heads; operator heads echo the tightening
|
|
153
|
-
duration-unit: 50ms # derived: corpus does not extract motion timings
|
|
154
|
-
duration-fast: 100ms # derived: no corpus value; operator default
|
|
155
|
-
duration-normal: 150ms # brand note recommends 150–200ms ease for state transitions
|
|
156
|
-
duration-slow: 200ms # brand note recommends 150–200ms; slow lands at the top of that range
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard operator ease
|
|
158
|
-
contrast-boost: 1
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus does not specify icons; refined operator stroke
|
|
160
|
-
icon-size-base: 16px
|
|
161
|
-
sidebar-width-expanded: 248px # derived: corpus is marketing-nav only; operator shell default
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: operator shell default
|
|
163
|
-
topbar-height: 56px # derived: brand marketing nav ~64px; tightened for an operator topbar
|
|
164
|
-
side-panel-width: 420px # derived: no operator side panel in corpus; standard width
|
|
165
|
-
side-panel-width-rich: 640px # derived: standard rich-content width
|
|
166
|
-
modal-width-max: 560px # derived: corpus has a modal elevation level but no width; standard cap
|
|
167
|
-
form-max-width: 560px # brand contact form caps ~520px; rounded to the operator standard
|
|
168
|
-
table-row-height: 44px # brand touch targets (inputs/buttons) render 44px — comfortable, editorial
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard # derived: brand reads comfortable/editorial; standard keeps it dense-capable, not cramped
|
|
172
|
-
product-traits: [dashboard, ai-console, dev-tools, admin]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#1f1f1f"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#1f1f1f"
|
|
184
|
-
muted: "#fffaeb"
|
|
185
|
-
muted-foreground: "#6a6a6a"
|
|
186
|
-
border: "#e5e5e5"
|
|
187
|
-
input: "#c7c7c7"
|
|
188
|
-
ring: "#fa520f"
|
|
189
|
-
primary: "#fa520f"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#fff0c2"
|
|
192
|
-
accent-foreground: "#1f1f1f"
|
|
193
|
-
destructive: "#d92d20" # derived: source palette ships no semantic red; distinct from the CTA orange
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#16a34a" # derived: source palette ships no green; functional status import
|
|
196
|
-
warning: "#d97706" # derived: amber distinct from CTA orange; brand yellows fail contrast for status
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#1f1f1f"
|
|
199
|
-
secondary: "#fff8e0"
|
|
200
|
-
secondary-foreground: "#1f1f1f"
|
|
201
|
-
chart-1: "#fa520f" # derived: sunset ramp as categorical; warm palette suits sequential/few-series charts
|
|
202
|
-
chart-2: "#cc3a05"
|
|
203
|
-
chart-3: "#ffa110"
|
|
204
|
-
chart-4: "#ffd06a"
|
|
205
|
-
chart-5: "#ff8a00"
|
|
206
|
-
sidebar: "#fff8e0"
|
|
207
|
-
sidebar-foreground: "#1f1f1f"
|
|
208
|
-
sidebar-primary: "#fa520f"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#fff0c2"
|
|
211
|
-
sidebar-accent-foreground: "#1f1f1f"
|
|
212
|
-
sidebar-border: "#e6d5a8" # brand's cream-surface border (beige-deep)
|
|
213
|
-
sidebar-ring: "#fa520f"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
|
|
215
|
-
radius-scale: [4, 6, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -8,12 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# MongoDB — the operator reading
|
|
9
9
|
|
|
10
10
|
MongoDB ships a dual-mode marketing identity — deep navy-teal hero bands carrying the bright MongoDB
|
|
11
|
-
green (`#00ed64`) pill CTA over stark white documentation. This is the *operator* reading: the
|
|
12
|
-
temperature, type voice, and rounder radius carry; the dark hero bands, 72px display type,
|
|
13
|
-
pill-on-everything stay behind. An internal tool wearing MongoDB reads as a light, comfortable,
|
|
11
|
+
green (`#00ed64`) pill CTA over stark white documentation. This is the *operator* reading: the
|
|
12
|
+
palette temperature, type voice, and rounder radius carry; the dark hero bands, 72px display type,
|
|
13
|
+
and pill-on-everything stay behind. An internal tool wearing MongoDB reads as a light, comfortable,
|
|
14
14
|
engineered console — white canvas, deep navy-teal ink, one bright green accent, the category palette
|
|
15
|
-
pressed into chart duty.
|
|
16
|
-
annotated `# derived:`.
|
|
15
|
+
pressed into chart duty.
|
|
17
16
|
|
|
18
17
|
## 1 Visual Theme
|
|
19
18
|
|
|
@@ -154,83 +153,3 @@ in MongoDB's language. What carries and what stays behind:
|
|
|
154
153
|
keyboard; the brand-green-dark `ring` outline is always visible.
|
|
155
154
|
- Stay near-flat — hairline and the cool surface ladder before shadow; reach past a hairline only for a
|
|
156
155
|
real overlay.
|
|
157
|
-
|
|
158
|
-
```yaml design-primitives
|
|
159
|
-
radius: 8px # derived: MongoDB's md/input radius — rounder than a terminal, cards step to 12px, primary action pills
|
|
160
|
-
shadow-intensity: 0.5 # derived: MongoDB uses genuine but soft navy-tinted elevation (alpha 0.04–0.16); one step over a purely flat brand
|
|
161
|
-
border-weight: 1px
|
|
162
|
-
density-gap: 1
|
|
163
|
-
density-inset: 1
|
|
164
|
-
font-sans: Euclid Circular A, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
|
|
165
|
-
font-mono: Source Code Pro, SFMono-Regular, Menlo, Consolas, monospace
|
|
166
|
-
font-weight-normal: 400
|
|
167
|
-
font-weight-strong: 600 # derived: MongoDB reserves 600 for buttons and emphasis; display weight 500 is marketing-scale and stays behind
|
|
168
|
-
heading-tracking: -0.01em # derived: MongoDB tracks display negative (-1.5 to -0.5px); scaled to a subtle operator-heading tighten
|
|
169
|
-
duration-unit: 50ms
|
|
170
|
-
duration-fast: 100ms
|
|
171
|
-
duration-normal: 150ms
|
|
172
|
-
duration-slow: 200ms # derived: corpus recommends 150–200ms ease; motion timings were not extracted
|
|
173
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus does not state an easing; standard operator ease
|
|
174
|
-
contrast-boost: 1
|
|
175
|
-
icon-stroke: 1.75 # derived: corpus names no icon library; lucide at a refined operator stroke
|
|
176
|
-
icon-size-base: 16px
|
|
177
|
-
sidebar-width-expanded: 248px # derived: no operator shell in a marketing corpus; standard operator sidebar
|
|
178
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon-rail width
|
|
179
|
-
topbar-height: 56px # derived: MongoDB's ~64px marketing nav tightened to a slightly-taller-than-baseline operator bar
|
|
180
|
-
side-panel-width: 420px # derived: standard operator detail-panel width
|
|
181
|
-
side-panel-width-rich: 640px # derived: standard content-heavy panel width
|
|
182
|
-
modal-width-max: 560px # derived: standard operator confirmation-modal cap
|
|
183
|
-
form-max-width: 640px # derived: standard operator form column
|
|
184
|
-
table-row-height: 44px # derived: MongoDB's 44px control height carries as a comfortable operator row
|
|
185
|
-
verbosity: default
|
|
186
|
-
feedback: subtle
|
|
187
|
-
density-tier: standard # derived: MongoDB reads comfortable and breathable, not terminal-dense; archetypes step denser per the surface catalog
|
|
188
|
-
product-traits: [dev-tools, database, dashboard, cloud-console]
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
```yaml lever-manifest
|
|
192
|
-
version: 1
|
|
193
|
-
fonts: { sans: "Euclid Circular A, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif", mono: "Source Code Pro, SFMono-Regular, Menlo, Consolas, monospace" }
|
|
194
|
-
color-tokens:
|
|
195
|
-
light:
|
|
196
|
-
background: "#ffffff"
|
|
197
|
-
foreground: "#001e2b"
|
|
198
|
-
card: "#ffffff"
|
|
199
|
-
card-foreground: "#001e2b"
|
|
200
|
-
muted: "#f4f7f6"
|
|
201
|
-
muted-foreground: "#5c6c7a"
|
|
202
|
-
border: "#e1e5e8"
|
|
203
|
-
input: "#c1ccd6"
|
|
204
|
-
ring: "#00684a"
|
|
205
|
-
primary: "#00ed64"
|
|
206
|
-
primary-foreground: "#001e2b"
|
|
207
|
-
accent: "#e3fcef"
|
|
208
|
-
accent-foreground: "#00684a"
|
|
209
|
-
destructive: "#d92d20" # derived: MongoDB defines no error red; a clean red tuned to the cool navy base
|
|
210
|
-
destructive-foreground: "#ffffff"
|
|
211
|
-
success: "#00a35c" # derived: brand-green-mid, deliberately deeper than the bright CTA so status reads as status
|
|
212
|
-
warning: "#946f3f"
|
|
213
|
-
popover: "#ffffff"
|
|
214
|
-
popover-foreground: "#001e2b"
|
|
215
|
-
secondary: "#f4f7f6"
|
|
216
|
-
secondary-foreground: "#001e2b"
|
|
217
|
-
chart-1: "#00684a" # derived: brand-green-dark anchors the chart set — readable green on white
|
|
218
|
-
chart-2: "#3d4f9f" # derived: accent-blue from MongoDB's category palette
|
|
219
|
-
chart-3: "#7b3ff2" # derived: accent-purple from the category palette
|
|
220
|
-
chart-4: "#fa6e39" # derived: accent-orange from the category palette
|
|
221
|
-
chart-5: "#f06bb8" # derived: accent-pink from the category palette
|
|
222
|
-
sidebar: "#f9fbfa"
|
|
223
|
-
sidebar-foreground: "#001e2b"
|
|
224
|
-
sidebar-primary: "#00ed64"
|
|
225
|
-
sidebar-primary-foreground: "#001e2b"
|
|
226
|
-
sidebar-accent: "#e3fcef"
|
|
227
|
-
sidebar-accent-foreground: "#00684a"
|
|
228
|
-
sidebar-border: "#e1e5e8"
|
|
229
|
-
sidebar-ring: "#00684a"
|
|
230
|
-
spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
|
|
231
|
-
radius-scale: [0, 4, 6, 8, 12, 9999]
|
|
232
|
-
shadow-levels: [none, sm, md]
|
|
233
|
-
motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
234
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
235
|
-
accent-count: 1
|
|
236
|
-
```
|
|
@@ -9,10 +9,10 @@ sourced: 2026-07-04
|
|
|
9
9
|
|
|
10
10
|
The operator reading of Notion's brand: a warm, paper-toned workspace where hierarchy is carried by
|
|
11
11
|
hairlines and type weight, a single purple reserved for the one action that matters, and sober
|
|
12
|
-
rectangular geometry — never pills. What carries is the temperament — warm-charcoal ink over
|
|
13
|
-
paper, beige hairline discipline, the 8px-button / 12px-card rhythm, one purple signal.
|
|
14
|
-
behind: the deep-navy marketing hero band, the pastel feature-card rainbow, the 80px
|
|
15
|
-
|
|
12
|
+
rectangular geometry — never pills. What carries is the temperament — warm-charcoal ink over
|
|
13
|
+
off-white paper, beige hairline discipline, the 8px-button / 12px-card rhythm, one purple signal.
|
|
14
|
+
What stays behind: the deep-navy marketing hero band, the pastel feature-card rainbow, the 80px
|
|
15
|
+
display.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
138
|
- Sober rectangles: 8px buttons, 12px cards. Pills are for status badges only — never the CTA.
|
|
139
139
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
|
|
140
140
|
- Every workflow completes from the keyboard, `ring` focus always visible (P6); stay flat — hairline and weight before shadow, reaching past a hairline only for a real overlay.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # derived: Notion button/input radius (md 8px) is the base component radius; scale offers 12px for cards
|
|
144
|
-
shadow-intensity: 0.5 # derived: Notion cards carry soft low-alpha shadows over a flat docs base — moderate lift, never harsh
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif # derived: Notion Sans is proprietary Inter-based; the operator wears its documented Inter fallback
|
|
149
|
-
font-mono: ui-monospace, SFMono-Regular, Menlo, monospace # derived: corpus ships no branded mono; the system mono stack matches Notion's restrained editorial voice
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # Notion headings are 600
|
|
152
|
-
heading-tracking: -0.015em # derived: Notion tracks display sizes negative (-0.5px at 48px, -2px hero); proportional negative tracking at operator heading sizes
|
|
153
|
-
duration-unit: 50ms # derived: corpus records no motion; standard operator base
|
|
154
|
-
duration-fast: 100ms # derived: standard operator fast tier
|
|
155
|
-
duration-normal: 160ms # derived: corpus recommends 150–200ms ease
|
|
156
|
-
duration-slow: 240ms # derived: top of the corpus-recommended 150–200ms band, rounded for slow tier
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard operator ease
|
|
158
|
-
contrast-boost: 1 # Notion's hairlines are soft and low-contrast by design; no boost
|
|
159
|
-
icon-stroke: 1.5 # derived: Notion's iconography reads light and editorial — one step under the operator 1.75 default
|
|
160
|
-
icon-size-base: 16px
|
|
161
|
-
sidebar-width-expanded: 248px # derived: marketing corpus has no app sidebar; standard operator width, matching Notion's ~240px product rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
163
|
-
topbar-height: 56px # derived: Notion marketing nav is ~64px; tightened one step for an operator topbar
|
|
164
|
-
side-panel-width: 420px # derived: standard operator detail-panel width
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy panel, matching Notion's editorial reading measure
|
|
166
|
-
modal-width-max: 560px # derived: standard operator modal cap
|
|
167
|
-
form-max-width: 640px # derived: Notion's editorial content column reads ~640px
|
|
168
|
-
table-row-height: 40px # derived: comfortable standard row; dense archetypes step down via the surface catalog
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard # derived: Notion marketing breathes, but its database/table product runs at a comfortable standard density — the operator mirrors the product, not the marketing
|
|
172
|
-
product-traits: [workspace, docs, knowledge-base, crm, dashboard]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "ui-monospace, SFMono-Regular, Menlo, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#37352f"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#37352f"
|
|
184
|
-
muted: "#f6f5f4"
|
|
185
|
-
muted-foreground: "#5d5b54"
|
|
186
|
-
border: "#e5e3df"
|
|
187
|
-
input: "#c8c4be"
|
|
188
|
-
ring: "#5645d4"
|
|
189
|
-
primary: "#5645d4"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#e6e0f5"
|
|
192
|
-
accent-foreground: "#391c57"
|
|
193
|
-
destructive: "#e03131"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#1aae39"
|
|
196
|
-
warning: "#dd5b00"
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#37352f"
|
|
199
|
-
secondary: "#f6f5f4"
|
|
200
|
-
secondary-foreground: "#37352f"
|
|
201
|
-
chart-1: "#5645d4"
|
|
202
|
-
chart-2: "#2a9d99"
|
|
203
|
-
chart-3: "#1aae39"
|
|
204
|
-
chart-4: "#dd5b00"
|
|
205
|
-
chart-5: "#ff64c8"
|
|
206
|
-
sidebar: "#f6f5f4"
|
|
207
|
-
sidebar-foreground: "#37352f"
|
|
208
|
-
sidebar-primary: "#5645d4"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#e6e0f5"
|
|
211
|
-
sidebar-accent-foreground: "#391c57"
|
|
212
|
-
sidebar-border: "#e5e3df"
|
|
213
|
-
sidebar-ring: "#5645d4"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
|
|
215
|
-
radius-scale: [4, 6, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 160, 240], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -7,14 +7,13 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# NVIDIA — the operator reading
|
|
9
9
|
|
|
10
|
-
The operator reading of NVIDIA's marketing system: an engineering-grade look reduced to four colors
|
|
11
|
-
black, white, gray, and one violently saturated green — on an aggressively angular 2px grid.
|
|
12
|
-
own surfaces alternate deep-black hero/footer chapters with paper-white body content under
|
|
13
|
-
display type. This entry keeps what survives at operator scale: the strict single-green
|
|
14
|
-
pure black/white/gray palette, the 2px radius, the weight-not-size type hierarchy, and
|
|
15
|
-
depth. The 48px display, dark hero chapters, corner squares, and editorial purple/blue
|
|
16
|
-
behind. Unmistakably NVIDIA — stark, technical, one-color
|
|
17
|
-
`# derived:` where it is silent.
|
|
10
|
+
The operator reading of NVIDIA's marketing system: an engineering-grade look reduced to four colors
|
|
11
|
+
— black, white, gray, and one violently saturated green — on an aggressively angular 2px grid.
|
|
12
|
+
NVIDIA's own surfaces alternate deep-black hero/footer chapters with paper-white body content under
|
|
13
|
+
hero-scale display type. This entry keeps what survives at operator scale: the strict single-green
|
|
14
|
+
accent, the pure black/white/gray palette, the 2px radius, the weight-not-size type hierarchy, and
|
|
15
|
+
flat hairline depth. The 48px display, dark hero chapters, corner squares, and editorial purple/blue
|
|
16
|
+
washes stay behind. Unmistakably NVIDIA — stark, technical, one-color.
|
|
18
17
|
|
|
19
18
|
## 1 Visual Theme
|
|
20
19
|
|
|
@@ -140,83 +139,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
140
139
|
- Leave behind the marketing skin: 48px display headlines, dark full-bleed hero chapters, decorative
|
|
141
140
|
corner squares, and the editorial purple/blue/pale accents. What carries: the black/white/gray/green
|
|
142
141
|
palette, the neutral temperature, the 2px angular radius, the weight-not-size voice, and flat depth.
|
|
143
|
-
|
|
144
|
-
```yaml design-primitives
|
|
145
|
-
radius: 2px # corpus: rounded.sm (2px) on every interactive element; the brand's aggressively angular signature
|
|
146
|
-
shadow-intensity: 0.3 # corpus: effectively flat; the lone shadow is a 5px ambient at rgba(0,0,0,0.3) on sticky chrome
|
|
147
|
-
border-weight: 1px # corpus: 1px hairline border is standard (focus edge steps to 2px green)
|
|
148
|
-
density-gap: 0.9 # derived: dense engineering-grid character packs rows tighter than the standard tier
|
|
149
|
-
density-inset: 0.9 # derived: matches the dense tier's tighter component insets
|
|
150
|
-
font-sans: Inter, Arial, Helvetica, sans-serif # corpus: Inter is the named substitute for proprietary NVIDIA-EMEA; Arial the documented fallback
|
|
151
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # derived: the marketing system ships no mono; a neutral engineering mono for operator IDs/logs
|
|
152
|
-
font-weight-normal: 400 # corpus: regular is 400
|
|
153
|
-
font-weight-strong: 700 # corpus: the brand's only bold is 700 — hierarchy is 400-vs-700, no intermediate weight
|
|
154
|
-
heading-tracking: 0 # corpus: letterSpacing is 0 across every display and heading step
|
|
155
|
-
duration-unit: 50ms # derived: motion out of scope in corpus; functional operator default
|
|
156
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
157
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
158
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
159
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
160
|
-
contrast-boost: 1 # derived: pure-black ink already maxes text contrast; borders stay at the brand hairline
|
|
161
|
-
icon-stroke: 2 # derived: brand is bold/700-heavy and angular; full 2px lucide stroke matches, not the refined 1.75
|
|
162
|
-
icon-size-base: 16px # corpus: chrome icons render 14–22px; 16px base control size
|
|
163
|
-
sidebar-width-expanded: 248px # derived: corpus has no app shell (marketing top-nav); operator standard
|
|
164
|
-
sidebar-width-collapsed: 56px # derived: corpus has no app shell; operator standard icon rail
|
|
165
|
-
topbar-height: 56px # corpus: the brand's sub-nav strip is 56px (primary nav 64px); a tight operator bar
|
|
166
|
-
side-panel-width: 420px # derived: corpus has no app shell; operator standard
|
|
167
|
-
side-panel-width-rich: 640px # derived: corpus has no app shell; content-heavy detail width
|
|
168
|
-
modal-width-max: 560px # derived: corpus shows only a locale-selector overlay; confirmations only
|
|
169
|
-
form-max-width: 640px # derived: corpus caps content ~1280px; forms read comfortably at 640px
|
|
170
|
-
table-row-height: 36px # derived: dense technical-grid character → tighter than the 40px standard
|
|
171
|
-
verbosity: compact # derived: dense factual editorial voice trusts terse copy over explanatory chrome
|
|
172
|
-
feedback: minimal # derived: austere single-signal brand — one green focus border, no documented hover
|
|
173
|
-
density-tier: dense # corpus: dense multi-column technical grids are the brand's native mode
|
|
174
|
-
product-traits: [dev-tools, dashboard, infrastructure, admin]
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
```yaml lever-manifest
|
|
178
|
-
version: 1
|
|
179
|
-
fonts: { sans: "Inter, Arial, Helvetica, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
180
|
-
color-tokens:
|
|
181
|
-
light:
|
|
182
|
-
background: "#ffffff"
|
|
183
|
-
foreground: "#000000"
|
|
184
|
-
card: "#ffffff"
|
|
185
|
-
card-foreground: "#000000"
|
|
186
|
-
muted: "#f7f7f7"
|
|
187
|
-
muted-foreground: "#757575"
|
|
188
|
-
border: "#cccccc"
|
|
189
|
-
input: "#cccccc"
|
|
190
|
-
ring: "#76b900"
|
|
191
|
-
primary: "#76b900"
|
|
192
|
-
primary-foreground: "#000000"
|
|
193
|
-
accent: "#eef7d6" # derived: pale NVIDIA-green wash for selection — the operator translation of the green accent
|
|
194
|
-
accent-foreground: "#000000" # derived: black ink on the pale tint, on-brand with the stark-ink discipline
|
|
195
|
-
destructive: "#e52020"
|
|
196
|
-
destructive-foreground: "#ffffff"
|
|
197
|
-
success: "#3f8500" # corpus: success-deep, used where the saturated brand green would clash
|
|
198
|
-
warning: "#df6500"
|
|
199
|
-
popover: "#ffffff"
|
|
200
|
-
popover-foreground: "#000000"
|
|
201
|
-
secondary: "#f7f7f7"
|
|
202
|
-
secondary-foreground: "#000000"
|
|
203
|
-
chart-1: "#76b900" # brand green
|
|
204
|
-
chart-2: "#0046a4" # link-blue
|
|
205
|
-
chart-3: "#952fc6" # editorial purple
|
|
206
|
-
chart-4: "#df6500" # warning orange
|
|
207
|
-
chart-5: "#898989" # derived: mid-gray series — honest to the brand's monochrome-forward palette
|
|
208
|
-
sidebar: "#000000" # derived: NVIDIA's chrome is pure black; the black frame carried to the operator shell
|
|
209
|
-
sidebar-foreground: "#ffffff"
|
|
210
|
-
sidebar-primary: "#76b900"
|
|
211
|
-
sidebar-primary-foreground: "#000000"
|
|
212
|
-
sidebar-accent: "#1a1a1a" # corpus: surface-elevated — hover/active fill on the black frame
|
|
213
|
-
sidebar-accent-foreground: "#ffffff"
|
|
214
|
-
sidebar-border: "#5e5e5e" # corpus: hairline-strong, the divider on dark surfaces
|
|
215
|
-
sidebar-ring: "#76b900"
|
|
216
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
217
|
-
radius-scale: [0, 1, 2, 9999]
|
|
218
|
-
shadow-levels: [none, sm]
|
|
219
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
220
|
-
icons: { family: lucide, stroke: 2 }
|
|
221
|
-
accent-count: 1
|
|
222
|
-
```
|
|
@@ -10,10 +10,9 @@ sourced: 2026-07-04
|
|
|
10
10
|
An operator reading of Ollama's defiantly minimal brand: paper-white canvas end to end, hairline
|
|
11
11
|
borders instead of shadow, and a single accent that is pure black itself. Ollama's marketing surface
|
|
12
12
|
reads like a Markdown README — one continuous white sheet, a rounded display face, a black pill CTA,
|
|
13
|
-
an inline `curl` snippet as the hero. An operator surface keeps the palette, the flatness, the
|
|
14
|
-
type voice, and the airy rhythm; it leaves behind the hero-scale display type, the full-pill
|
|
15
|
-
every action, and the marketing whitespace at 88px.
|
|
16
|
-
judgment away from the marketing brand is annotated `# derived:` where it lands.
|
|
13
|
+
an inline `curl` snippet as the hero. An operator surface keeps the palette, the flatness, the
|
|
14
|
+
rounded type voice, and the airy rhythm; it leaves behind the hero-scale display type, the full-pill
|
|
15
|
+
CTA on every action, and the marketing whitespace at 88px.
|
|
17
16
|
|
|
18
17
|
## 1 Visual Theme
|
|
19
18
|
|
|
@@ -28,8 +27,8 @@ brand's whole layout — and steps denser per surface archetype.
|
|
|
28
27
|
|
|
29
28
|
## 2 Color Roles
|
|
30
29
|
|
|
31
|
-
Values are the brand's own
|
|
32
|
-
status
|
|
30
|
+
Values are the brand's own. One accent — black — carries interaction; status hues signal only
|
|
31
|
+
status.
|
|
33
32
|
|
|
34
33
|
| Role | Value | Allowed where |
|
|
35
34
|
| --- | --- | --- |
|
|
@@ -144,83 +143,3 @@ Directives the emitting agent follows verbatim:
|
|
|
144
143
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp / log line is `font-mono`.
|
|
145
144
|
- The focus `ring` is the blue — the brand's one functional non-monochrome element; keep it visible.
|
|
146
145
|
- Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
|
|
147
|
-
|
|
148
|
-
```yaml design-primitives
|
|
149
|
-
radius: 8px # derived: Ollama's soft-rounded character (cards 12px, chips 6px); operator default sits at md 8px — the marketing pill relaxes for dense scanning (9999 stays in the scale for chips/singular actions)
|
|
150
|
-
shadow-intensity: 0.2 # derived: brand has no drop-shadow elevation anywhere; only a true overlay gets a whisper
|
|
151
|
-
border-weight: 1px
|
|
152
|
-
density-gap: 1.1 # derived: whitespace is the brand's entire layout (88px section rhythm) — spacious tier opens the grid; archetypes step denser
|
|
153
|
-
density-inset: 1.1 # derived: coheres with the spacious tier
|
|
154
|
-
font-sans: Nunito, system-ui, sans-serif # rationale: corpus names Nunito as the SF Pro Rounded substitute; the rounded voice is Ollama's whole brand expression and carries into headings and body alike
|
|
155
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # rationale: corpus's named ui-monospace substitute — IDs, codes, log lines, install snippets
|
|
156
|
-
font-weight-normal: 400
|
|
157
|
-
font-weight-strong: 600 # rationale: brand display runs 500–600; operator headings tighten to 600 for hierarchy against 400 body
|
|
158
|
-
heading-tracking: 0 # rationale: brand tracks every type step at 0 — the rounded face needs no tightening
|
|
159
|
-
duration-unit: 50ms # derived: corpus documents no motion; functional operator base
|
|
160
|
-
duration-fast: 100ms # derived: functional operator motion, no marketing flourish
|
|
161
|
-
duration-normal: 150ms # derived: as above
|
|
162
|
-
duration-slow: 250ms # derived: as above
|
|
163
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: calm, standard functional ease
|
|
164
|
-
contrast-boost: 1 # derived: pure-black ink on white already maxes contrast; no boost needed
|
|
165
|
-
icon-stroke: 1.5 # derived: Ollama's icons are thin stroke-only line drawings; one step under lucide's 2 for a hairline-consistent stroke
|
|
166
|
-
icon-size-base: 16px
|
|
167
|
-
sidebar-width-expanded: 248px
|
|
168
|
-
sidebar-width-collapsed: 56px
|
|
169
|
-
topbar-height: 56px # rationale: brand primary-nav height is 56px
|
|
170
|
-
side-panel-width: 420px
|
|
171
|
-
side-panel-width-rich: 640px
|
|
172
|
-
modal-width-max: 560px
|
|
173
|
-
form-max-width: 640px
|
|
174
|
-
table-row-height: 48px # derived: spacious tier default; dense archetypes step down via the surface catalog
|
|
175
|
-
verbosity: compact # rationale: the README-terse, "the restraint is the design" ethos → lean copy
|
|
176
|
-
feedback: minimal # rationale: the brand carries no banners or toasts; feedback stays understated
|
|
177
|
-
density-tier: spacious # rationale: whitespace is the brand's entire layout
|
|
178
|
-
product-traits: [dev-tools, dashboard, model-registry]
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
```yaml lever-manifest
|
|
182
|
-
version: 1
|
|
183
|
-
fonts: { sans: "Nunito, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
184
|
-
color-tokens:
|
|
185
|
-
light:
|
|
186
|
-
background: "#ffffff"
|
|
187
|
-
foreground: "#000000"
|
|
188
|
-
card: "#ffffff"
|
|
189
|
-
card-foreground: "#000000"
|
|
190
|
-
muted: "#fafafa"
|
|
191
|
-
muted-foreground: "#737373"
|
|
192
|
-
border: "#e5e5e5"
|
|
193
|
-
input: "#e5e5e5"
|
|
194
|
-
ring: "#3b82f6" # derived: brand's translucent focus-ring blue made solid for a crisp operator outline — the one functional non-monochrome element
|
|
195
|
-
primary: "#000000"
|
|
196
|
-
primary-foreground: "#ffffff"
|
|
197
|
-
accent: "#f5f5f5" # derived: one step past muted so row/nav selection reads distinct from hover
|
|
198
|
-
accent-foreground: "#000000"
|
|
199
|
-
destructive: "#c92a2a" # derived: terminal-red family, darkened to AA text contrast on white
|
|
200
|
-
destructive-foreground: "#ffffff"
|
|
201
|
-
success: "#1a7f37" # derived: terminal-green darkened to AA text contrast on white
|
|
202
|
-
warning: "#b45309" # derived: terminal-yellow → text-safe amber
|
|
203
|
-
popover: "#ffffff"
|
|
204
|
-
popover-foreground: "#000000"
|
|
205
|
-
secondary: "#fafafa"
|
|
206
|
-
secondary-foreground: "#000000"
|
|
207
|
-
chart-1: "#000000" # derived: monochrome chart ramp honors the brand's no-color identity — the neutral ladder ink → charcoal → body → mute → hairline-strong
|
|
208
|
-
chart-2: "#525252"
|
|
209
|
-
chart-3: "#737373"
|
|
210
|
-
chart-4: "#a3a3a3"
|
|
211
|
-
chart-5: "#d4d4d4"
|
|
212
|
-
sidebar: "#fafafa" # derived: faint off-white rail distinct from the white canvas
|
|
213
|
-
sidebar-foreground: "#000000"
|
|
214
|
-
sidebar-primary: "#000000"
|
|
215
|
-
sidebar-primary-foreground: "#ffffff"
|
|
216
|
-
sidebar-accent: "#f5f5f5"
|
|
217
|
-
sidebar-accent-foreground: "#000000"
|
|
218
|
-
sidebar-border: "#e5e5e5"
|
|
219
|
-
sidebar-ring: "#3b82f6"
|
|
220
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64, 88]
|
|
221
|
-
radius-scale: [0, 6, 8, 12, 9999]
|
|
222
|
-
shadow-levels: [none, sm, md]
|
|
223
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
224
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
225
|
-
accent-count: 1
|
|
226
|
-
```
|