@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
|
@@ -28,8 +28,8 @@ here, so rows run tall and sections breathe.
|
|
|
28
28
|
|
|
29
29
|
## 2 Color Roles
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
One chromatic accent — action-blue is the only hue that carries interactive meaning; status hues
|
|
32
|
+
speak only status.
|
|
33
33
|
|
|
34
34
|
| Role | Value | Allowed where |
|
|
35
35
|
| --- | --- | --- |
|
|
@@ -145,83 +145,3 @@ Directives the emitting agent follows verbatim:
|
|
|
145
145
|
keyboard, the focus-blue `ring` always visible.
|
|
146
146
|
- Leave behind: hero/product display type (96/72/60px), pill CTAs, coral taxonomy chips, and the
|
|
147
147
|
deep-green/navy marketing media bands — brand-decorative, not operator chrome.
|
|
148
|
-
|
|
149
|
-
```yaml design-primitives
|
|
150
|
-
radius: 8px # derived: brand card/dialog radius (sm); honors the rounded-but-not-pill character; the 32px pill stays marketing-only
|
|
151
|
-
shadow-intensity: 0.3 # derived: brand is emphatically flat and border-led ("do not add heavy drop shadows"); shadow only lifts true overlays
|
|
152
|
-
border-weight: 1px
|
|
153
|
-
density-gap: 1.1 # derived: spacious tier — whitespace-as-trust editorial character opens the spacing one step
|
|
154
|
-
density-inset: 1.1 # derived: matches the spacious density-gap for coherent component insets
|
|
155
|
-
font-sans: Unica77 Cohere Web, Inter, ui-sans-serif, system-ui, sans-serif
|
|
156
|
-
font-mono: CohereMono, ui-monospace, SFMono-Regular, Menlo, monospace # derived: corpus's Arial fallback for CohereMono is unfit for tabular columns; override to a real monospace stack
|
|
157
|
-
font-weight-normal: 400
|
|
158
|
-
font-weight-strong: 500 # derived: brand "avoids heavy bold weights" — hierarchy is size/tracking/contrast; button weight is 500
|
|
159
|
-
heading-tracking: -0.02em # derived: brand display uses tight negative tracking (-0.32 to -1.2px); preserved as carved character at operator sizes
|
|
160
|
-
duration-unit: 50ms # derived: corpus documents no motion; functional operator base
|
|
161
|
-
duration-fast: 120ms # derived: corpus silent; calm-editorial functional tempo
|
|
162
|
-
duration-normal: 200ms # derived: corpus silent; unhurried but not sluggish
|
|
163
|
-
duration-slow: 300ms # derived: corpus silent; overlay/panel transition
|
|
164
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
165
|
-
contrast-boost: 1 # derived: hairlines and surface alternation already carry the grid
|
|
166
|
-
icon-stroke: 1.5 # derived: brand uses thin-line geometric illustrations — a refined thin operator stroke
|
|
167
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator default
|
|
168
|
-
sidebar-width-expanded: 260px # derived: no brand sidebar (top nav); slightly wide to honor editorial breathing
|
|
169
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
170
|
-
topbar-height: 56px # derived: corpus silent; a touch taller for the editorial calm
|
|
171
|
-
side-panel-width: 420px # derived: corpus silent; standard operator detail panel
|
|
172
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
173
|
-
modal-width-max: 560px # derived: corpus silent; operator confirmation cap
|
|
174
|
-
form-max-width: 640px # derived: brand forms are rounded white cards with two-column rows
|
|
175
|
-
table-row-height: 48px # derived: brand research rows are "tall, white, border-driven" — taller than a standard operator row
|
|
176
|
-
verbosity: default
|
|
177
|
-
feedback: subtle # derived: brand is "intentionally quiet" and measured
|
|
178
|
-
density-tier: spacious # derived: whitespace is a trust signal here; dramatic vertical breathing room
|
|
179
|
-
product-traits: [ai-platform, enterprise, agent-console, dashboard, research]
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
```yaml lever-manifest
|
|
183
|
-
version: 1
|
|
184
|
-
fonts: { sans: "Unica77 Cohere Web, Inter, ui-sans-serif, system-ui, sans-serif", mono: "CohereMono, ui-monospace, SFMono-Regular, Menlo, monospace" }
|
|
185
|
-
color-tokens:
|
|
186
|
-
light:
|
|
187
|
-
background: "#ffffff"
|
|
188
|
-
foreground: "#212121"
|
|
189
|
-
card: "#ffffff"
|
|
190
|
-
card-foreground: "#212121"
|
|
191
|
-
muted: "#f2f2f2"
|
|
192
|
-
muted-foreground: "#616161"
|
|
193
|
-
border: "#d9d9dd"
|
|
194
|
-
input: "#d9d9dd"
|
|
195
|
-
ring: "#4c6ee6"
|
|
196
|
-
primary: "#17171c"
|
|
197
|
-
primary-foreground: "#ffffff"
|
|
198
|
-
accent: "#f1f5ff"
|
|
199
|
-
accent-foreground: "#1863dc"
|
|
200
|
-
destructive: "#b30000"
|
|
201
|
-
destructive-foreground: "#ffffff"
|
|
202
|
-
success: "#047857" # derived: deep enterprise green #003c33 lightened to a legible status emerald
|
|
203
|
-
warning: "#c2410c" # derived: brand coral #ff7759 deepened toward a legible warm status, distinct from error red
|
|
204
|
-
popover: "#ffffff"
|
|
205
|
-
popover-foreground: "#212121"
|
|
206
|
-
secondary: "#eeece7"
|
|
207
|
-
secondary-foreground: "#212121"
|
|
208
|
-
chart-1: "#1863dc" # derived: action blue — primary data series
|
|
209
|
-
chart-2: "#003c33" # derived: deep enterprise green
|
|
210
|
-
chart-3: "#ff7759" # derived: coral
|
|
211
|
-
chart-4: "#9b60aa" # derived: form-focus violet
|
|
212
|
-
chart-5: "#75758a" # derived: slate — neutral-cool fifth series
|
|
213
|
-
sidebar: "#f7f6f3" # derived: soft-stone diluted toward white — a faint warm mineral rail
|
|
214
|
-
sidebar-foreground: "#212121"
|
|
215
|
-
sidebar-primary: "#17171c"
|
|
216
|
-
sidebar-primary-foreground: "#ffffff"
|
|
217
|
-
sidebar-accent: "#f1f5ff"
|
|
218
|
-
sidebar-accent-foreground: "#1863dc"
|
|
219
|
-
sidebar-border: "#d9d9dd"
|
|
220
|
-
sidebar-ring: "#4c6ee6"
|
|
221
|
-
spacing-scale: [2, 6, 8, 12, 16, 24, 32, 40, 56, 80]
|
|
222
|
-
radius-scale: [0, 4, 8, 16, 22, 9999]
|
|
223
|
-
shadow-levels: [none, sm, md]
|
|
224
|
-
motion: { durations: [120, 200, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
225
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
226
|
-
accent-count: 1
|
|
227
|
-
```
|
|
@@ -7,15 +7,14 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Coinbase — the operator reading
|
|
9
9
|
|
|
10
|
-
The institutional-calm reading of Coinbase's brand — a quietly-confident financial-services look
|
|
11
|
-
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
|
-
at a 96px rhythm. This entry keeps what survives at operator scale — the pure-white canvas,
|
|
14
|
-
scarce Coinbase Blue accent, the cool near-black ink, the rounded geometry, the
|
|
15
|
-
voice — and leaves the heroes, hero display, mockup stacks, and 96px rhythm
|
|
16
|
-
exchange (Binance) runs a dense trading terminal, Coinbase reads calmer — its
|
|
17
|
-
walls, so the operator tier stays an honest `standard`.
|
|
18
|
-
judgment away from the marketing surfaces is annotated `# derived:` where the corpus is silent.
|
|
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`.
|
|
19
18
|
|
|
20
19
|
## 1 Visual Theme
|
|
21
20
|
|
|
@@ -29,8 +28,8 @@ The geometry is rounded — soft corners throughout, sharp corners essentially a
|
|
|
29
28
|
|
|
30
29
|
## 2 Color Roles
|
|
31
30
|
|
|
32
|
-
Light values
|
|
33
|
-
|
|
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.
|
|
34
33
|
|
|
35
34
|
| Role | Value | Allowed where |
|
|
36
35
|
| --- | --- | --- |
|
|
@@ -155,83 +154,3 @@ Directives the emitting agent follows verbatim:
|
|
|
155
154
|
- Leave the marketing skin behind (heroes, 80px display, mockup stacks, band rotation, 96px rhythm,
|
|
156
155
|
hero pill CTA). What carries: the palette, its cool temperature, the single scarce blue, the rounded
|
|
157
156
|
geometry, the tabular number voice, and card-on-card flat depth.
|
|
158
|
-
|
|
159
|
-
```yaml design-primitives
|
|
160
|
-
radius: 8px # corpus: compact rows at rounded.sm (8px), inputs at 12px; operator base honors the round, sharp-corners-absent character
|
|
161
|
-
shadow-intensity: 0.35 # derived: corpus ships one soft tier (0 4px 12px rgba(0,0,0,0.04)) — near-flat, layering carries depth
|
|
162
|
-
border-weight: 1px
|
|
163
|
-
density-gap: 1
|
|
164
|
-
density-inset: 1
|
|
165
|
-
font-sans: Inter, system-ui, sans-serif # corpus: CoinbaseDisplay + CoinbaseSans → Inter is the documented substitute; one sans slot serves both voices
|
|
166
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # corpus: CoinbaseMono → JetBrains Mono substitute; the trustworthy-number voice
|
|
167
|
-
font-weight-normal: 400 # corpus: body-md weight 400
|
|
168
|
-
font-weight-strong: 600 # corpus: titles/buttons/nav-emphasis weight 600; the hero display 400 is a marketing calm that stays behind
|
|
169
|
-
heading-tracking: -0.015em # corpus: the -1.5% editorial negative tracking (substitute note) is the display signature; carried to operator heading scale
|
|
170
|
-
duration-unit: 50ms # derived: corpus declares animation timings out of scope; functional operator base
|
|
171
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
172
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
173
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
174
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
175
|
-
contrast-boost: 1 # derived: editorial-calm brand, not a dense grid; hairlines already carry structure
|
|
176
|
-
icon-stroke: 1.5 # derived: corpus iconography is "geometric and minimal" → a light 1.5 stroke suits the refined read
|
|
177
|
-
icon-size-base: 16px # derived: base control icon; corpus asset glyphs are 32px circles
|
|
178
|
-
sidebar-width-expanded: 248px # derived: no app sidebar in corpus (marketing top-nav only); operator standard
|
|
179
|
-
sidebar-width-collapsed: 56px # derived: corpus has no shell; operator standard icon rail
|
|
180
|
-
topbar-height: 64px # corpus: top-nav height 64px
|
|
181
|
-
side-panel-width: 420px # derived: corpus has no shell; operator standard detail width
|
|
182
|
-
side-panel-width-rich: 640px # derived: corpus has no shell; content-heavy detail width
|
|
183
|
-
modal-width-max: 560px # derived: corpus has no shell; confirmations only
|
|
184
|
-
form-max-width: 640px # derived: corpus content caps ~1200px (marketing); operator forms cap comfortably
|
|
185
|
-
table-row-height: 44px # derived: corpus's interactive height is 44px (button/search-pill/nav); rows honor it, calm not cramped
|
|
186
|
-
verbosity: default # derived: editorial-calm voice — neither compact-terminal nor explanatory-full
|
|
187
|
-
feedback: subtle
|
|
188
|
-
density-tier: standard # rationale: corpus reads editorially calm ("density lives behind login walls") — a fellow exchange runs dense; Coinbase holds an honest standard tier to keep its differentiated calm
|
|
189
|
-
product-traits: [crypto-exchange, trading-desk, fintech, dashboard]
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
```yaml lever-manifest
|
|
193
|
-
version: 1
|
|
194
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
195
|
-
color-tokens:
|
|
196
|
-
light:
|
|
197
|
-
background: "#ffffff"
|
|
198
|
-
foreground: "#0a0b0d"
|
|
199
|
-
card: "#ffffff"
|
|
200
|
-
card-foreground: "#0a0b0d"
|
|
201
|
-
muted: "#f7f7f7"
|
|
202
|
-
muted-foreground: "#5b616e"
|
|
203
|
-
border: "#dee1e6"
|
|
204
|
-
input: "#dee1e6"
|
|
205
|
-
ring: "#0052ff"
|
|
206
|
-
primary: "#0052ff"
|
|
207
|
-
primary-foreground: "#ffffff"
|
|
208
|
-
accent: "#e6eeff" # derived: light Coinbase-Blue wash for row/nav selection; corpus has no light-blue surface token
|
|
209
|
-
accent-foreground: "#0052ff"
|
|
210
|
-
destructive: "#cf202f" # derived: the trading-down red doubles as the destructive/error hue
|
|
211
|
-
destructive-foreground: "#ffffff"
|
|
212
|
-
success: "#05b169"
|
|
213
|
-
warning: "#f4b000" # derived: the sub-brand gold (illustrative-only in marketing) is the only warm hue; promoted to warning status
|
|
214
|
-
popover: "#ffffff"
|
|
215
|
-
popover-foreground: "#0a0b0d"
|
|
216
|
-
secondary: "#eef0f3"
|
|
217
|
-
secondary-foreground: "#0a0b0d"
|
|
218
|
-
chart-1: "#0052ff" # Coinbase Blue
|
|
219
|
-
chart-2: "#05b169" # trading-up green
|
|
220
|
-
chart-3: "#cf202f" # trading-down red
|
|
221
|
-
chart-4: "#f4b000" # sub-brand gold
|
|
222
|
-
chart-5: "#7c828a" # derived: neutral cool gray for a fifth series
|
|
223
|
-
sidebar: "#f7f7f7" # derived: operator sidebar tinted from surface-soft (corpus is top-nav only)
|
|
224
|
-
sidebar-foreground: "#0a0b0d"
|
|
225
|
-
sidebar-primary: "#0052ff"
|
|
226
|
-
sidebar-primary-foreground: "#ffffff"
|
|
227
|
-
sidebar-accent: "#e6eeff" # derived: the blue-wash selection tint
|
|
228
|
-
sidebar-accent-foreground: "#0052ff"
|
|
229
|
-
sidebar-border: "#dee1e6"
|
|
230
|
-
sidebar-ring: "#0052ff"
|
|
231
|
-
spacing-scale: [4, 8, 12, 16, 20, 24, 32, 48]
|
|
232
|
-
radius-scale: [0, 4, 8, 12, 16, 24, 9999]
|
|
233
|
-
shadow-levels: [none, sm]
|
|
234
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
235
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
236
|
-
accent-count: 1
|
|
237
|
-
```
|
|
@@ -26,9 +26,8 @@ Density is `standard` — technical but not cramped, inheriting the marketing's
|
|
|
26
26
|
|
|
27
27
|
## 2 Color Roles
|
|
28
28
|
|
|
29
|
-
Dark values are the default theme
|
|
30
|
-
|
|
31
|
-
take no operator role; status hues speak only status.
|
|
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.
|
|
32
31
|
|
|
33
32
|
| Role | Value | Allowed where |
|
|
34
33
|
| --- | --- | --- |
|
|
@@ -137,84 +136,3 @@ Directives the emitting agent follows verbatim:
|
|
|
137
136
|
- Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
|
|
138
137
|
- Leave the marketing behind — no terminal-mockup hero, no spotlight glows, no 72px display, no 96px
|
|
139
138
|
band rhythm. The palette, near-black temperature, 8px radii, and single sans voice carry; the show does not.
|
|
140
|
-
|
|
141
|
-
```yaml design-primitives
|
|
142
|
-
radius: 8px # derived: corpus CTAs/inputs sit at rounded.md 8px — the operator default; cards take 12px from the scale
|
|
143
|
-
shadow-intensity: 0.2 # derived: brand uses brightness-step elevation, not shadow — keep shadow near-absent
|
|
144
|
-
border-weight: 1px
|
|
145
|
-
density-gap: 1
|
|
146
|
-
density-inset: 1
|
|
147
|
-
font-sans: abcDiatype, Inter, ui-sans-serif, system-ui, sans-serif # abcDiatype is the licensed brand face; Inter (500 / -1.5%) is the shipped substitute
|
|
148
|
-
font-mono: JetBrains Mono, ui-monospace, monospace
|
|
149
|
-
font-weight-normal: 400
|
|
150
|
-
font-weight-strong: 600 # derived: corpus display sits at 500 but component titles at 600; operator strong weight takes 600
|
|
151
|
-
heading-tracking: -0.015em # derived: the Inter-substitute spec (-1.5%) gives operator headings the Composio tight-display character
|
|
152
|
-
duration-unit: 50ms # derived: corpus declares motion out of scope; standard operator base
|
|
153
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
154
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
155
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
156
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard functional easing; corpus silent on motion
|
|
157
|
-
contrast-boost: 1.1 # derived: #222 hairlines on #0f0f0f read faintly — nudge up a step so dense grids read as grids
|
|
158
|
-
icon-stroke: 1.75 # derived: corpus silent on icons; one step under lucide's 2 for a refined operator stroke
|
|
159
|
-
icon-size-base: 16px # derived: corpus silent on icons; standard operator base
|
|
160
|
-
sidebar-width-expanded: 248px # derived: corpus is marketing-only; standard operator shell
|
|
161
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
162
|
-
topbar-height: 56px # derived: corpus marketing nav is 64px; operator topbar tightens to 56px
|
|
163
|
-
side-panel-width: 420px # derived: corpus has no side panel; standard operator width
|
|
164
|
-
side-panel-width-rich: 640px # derived: standard content-heavy width
|
|
165
|
-
modal-width-max: 560px # derived: standard operator modal cap
|
|
166
|
-
form-max-width: 640px # derived: standard operator form width
|
|
167
|
-
table-row-height: 44px # derived: aligns with corpus 44px text-input height; comfortable on dark at standard density
|
|
168
|
-
verbosity: default
|
|
169
|
-
feedback: subtle
|
|
170
|
-
density-tier: standard # derived: the marketing breathes (96px rhythm); the operator translation stays composed, not terminal-dense
|
|
171
|
-
product-traits: [dev-tools, integrations, dashboard, api-console]
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
```yaml lever-manifest
|
|
175
|
-
version: 1
|
|
176
|
-
# categorically dark: the primary theme map holds Composio's near-black brand values (dark-default)
|
|
177
|
-
fonts: { sans: "abcDiatype, Inter, ui-sans-serif, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#0f0f0f"
|
|
181
|
-
foreground: "#ffffff" # derived: promote strong ink to primary text for operator legibility (corpus default running text is body #a8a8a8)
|
|
182
|
-
card: "#181818"
|
|
183
|
-
card-foreground: "#ffffff"
|
|
184
|
-
muted: "#222222"
|
|
185
|
-
muted-foreground: "#a8a8a8"
|
|
186
|
-
border: "#222222"
|
|
187
|
-
input: "#333333" # derived: fields take the stronger hairline for a visible edge on dark
|
|
188
|
-
ring: "#1a26ff" # derived: the brighter primary-glow tone gives a legible focus ring on near-black
|
|
189
|
-
primary: "#0007cd"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#2a2a2a" # derived: hover/selection uses surface-strong so it lifts above the resting card without a second hue
|
|
192
|
-
accent-foreground: "#ffffff"
|
|
193
|
-
destructive: "#ff4d4d"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#33d17a"
|
|
196
|
-
warning: "#f5a524" # derived: corpus ships no warning hue; a standard amber fills the status slot, off-brand-neutral so it reads only as status
|
|
197
|
-
popover: "#2a2a2a" # derived: corpus dropdown menus use surface-strong #2a2a2a — overlays lift to the top surface
|
|
198
|
-
popover-foreground: "#ffffff"
|
|
199
|
-
secondary: "#222222"
|
|
200
|
-
secondary-foreground: "#ffffff"
|
|
201
|
-
chart-1: "#1a26ff" # derived: primary #0007cd is too dark on near-black for a data mark; use the brighter primary-glow
|
|
202
|
-
chart-2: "#00d4ff"
|
|
203
|
-
chart-3: "#33d17a"
|
|
204
|
-
chart-4: "#7b3aed"
|
|
205
|
-
chart-5: "#f5a524" # derived: amber widens the categorical hue spread beyond the corpus blue/cyan/green/violet
|
|
206
|
-
sidebar: "#0f0f0f"
|
|
207
|
-
sidebar-foreground: "#a8a8a8" # derived: nav items sit at body gray until active, then go white/primary
|
|
208
|
-
sidebar-primary: "#0007cd"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#222222"
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#222222"
|
|
213
|
-
sidebar-ring: "#1a26ff" # derived: matches the primary-glow focus ring on dark
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 20, 24, 32, 48, 96]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -19,8 +19,7 @@ the 80px section rhythm, the ink-inverted featured card, and the marketing CTA b
|
|
|
19
19
|
|
|
20
20
|
**Warm, but light.** The cream canvas (`#f7f7f4`) is deliberate warmth, not the cool gray-white the
|
|
21
21
|
category defaults to — but it reads *light*, so the light-default floor holds cleanly (no
|
|
22
|
-
categorically-dark exception); warmth is temperature, not polarity.
|
|
23
|
-
valued; judgments away from the marketing brand are annotated `# derived:` where the corpus is silent.
|
|
22
|
+
categorically-dark exception); warmth is temperature, not polarity.
|
|
24
23
|
|
|
25
24
|
## 1 Visual Theme
|
|
26
25
|
|
|
@@ -34,9 +33,8 @@ Density is `standard`; editorial pacing survives as slightly generous shell dime
|
|
|
34
33
|
|
|
35
34
|
## 2 Color Roles
|
|
36
35
|
|
|
37
|
-
Light values
|
|
38
|
-
|
|
39
|
-
chips (see §7), status hues speak only status.
|
|
36
|
+
Light values. One accent — `primary` is the only chromatic hue that carries UI meaning; the timeline
|
|
37
|
+
pastels live only in charts and agent-stage chips (see §7), status hues speak only status.
|
|
40
38
|
|
|
41
39
|
| Role | Value | Allowed where |
|
|
42
40
|
| --- | --- | --- |
|
|
@@ -138,83 +136,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
136
|
- The timeline pastel palette (peach / mint / blue / lavender / gold) is the brand's one sanctioned multi-hue set — use it for chart series and agent-stage chips (Thinking / Reading / Editing / Done), never for semantic status or general chrome.
|
|
139
137
|
- Depth is the cream-to-white step and warm hairlines, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work, never a modal.
|
|
140
138
|
- Keyboard-first: the orange `ring` focus outline is always visible. Leave behind the 72px hero display, the full-width IDE mockup, the 80px section rhythm, and the marketing CTA bands.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # corpus: buttons/inputs at rounded.md (8px); cards step to 12px (lg), 16px large; pill is badges-only
|
|
144
|
-
shadow-intensity: 0.15 # derived: brand is emphatically hairline-only ("no drop shadows"); only true overlays earn the faintest lift
|
|
145
|
-
border-weight: 1px # corpus: 1px warm hairlines carry all depth
|
|
146
|
-
density-gap: 1 # derived: editorial-spacious brand read to an honest standard operator tier; breathing carried by shell dims, not the data grid
|
|
147
|
-
density-inset: 1 # derived: matches density-gap for coherent component insets
|
|
148
|
-
font-sans: CursorGothic, Inter, system-ui, sans-serif # corpus: CursorGothic is the licensed brand face; Inter is the corpus's documented open-source substitute
|
|
149
|
-
font-mono: JetBrains Mono, Fira Code, ui-monospace, monospace # corpus: JetBrains Mono on every code surface
|
|
150
|
-
font-weight-normal: 400 # corpus: body and — defining trait — the editorial display both sit at 400
|
|
151
|
-
font-weight-strong: 600 # corpus: component titles (title-md/title-sm) and captions at 600; the display stays 400, the brand never bolds it
|
|
152
|
-
heading-tracking: -0.015em # corpus: the documented Inter-substitute tracking (-1.5%); negative display tracking is the editorial signature
|
|
153
|
-
duration-unit: 50ms # derived: corpus declares motion out of scope (known gap); operator-standard functional base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on motion; functional tempo
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent on motion; standard functional tempo
|
|
156
|
-
duration-slow: 250ms # derived: corpus silent on motion; overlay/panel transition
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
158
|
-
contrast-boost: 1 # derived: the soft warm hairlines are intentional editorial calm; no boost
|
|
159
|
-
icon-stroke: 1.5 # derived: corpus silent on icons; a light refined stroke suits the minimal editorial feel
|
|
160
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator standard
|
|
161
|
-
sidebar-width-expanded: 256px # derived: corpus has no app shell (marketing top-nav only); editorial breathing → a touch wider than a dense rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
163
|
-
topbar-height: 64px # corpus: top-nav height 64px (the brand's nav height)
|
|
164
|
-
side-panel-width: 440px # derived: corpus has no shell; standard nudged up for editorial breathing
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
166
|
-
modal-width-max: 560px # derived: corpus's CTA bands are full-bleed marketing; operator confirmation cap
|
|
167
|
-
form-max-width: 640px # derived: corpus max content ~1200px is marketing; editorial single-column reading caps forms at 640
|
|
168
|
-
table-row-height: 44px # derived: editorial warmth → rows breathe a touch over the dense 40px default
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle # derived: corpus is quiet ("hover state never documented"); warm editorial voice wants gentle present feedback, not austere silence
|
|
171
|
-
density-tier: standard # derived: an editorial-spacious brand read down to an honest operator tier; warmth carried by palette/radius, not whitespace
|
|
172
|
-
product-traits: [dev-tools, code-editor, ai-console, dashboard]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "CursorGothic, Inter, system-ui, sans-serif", mono: "JetBrains Mono, Fira Code, ui-monospace, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#f7f7f4"
|
|
181
|
-
foreground: "#26251e"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#26251e"
|
|
184
|
-
muted: "#efeee8" # derived: corpus hairline-soft repurposed as the soft warm fill for hover rows and quiet bands
|
|
185
|
-
muted-foreground: "#807d72"
|
|
186
|
-
border: "#e6e5e0"
|
|
187
|
-
input: "#e6e5e0"
|
|
188
|
-
ring: "#f54e00"
|
|
189
|
-
primary: "#f54e00"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#eae8e0" # derived: warm selection lift one step past muted, so selection reads over hover; never orange
|
|
192
|
-
accent-foreground: "#26251e"
|
|
193
|
-
destructive: "#cf2d56"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#1f8a65"
|
|
196
|
-
warning: "#c08532" # derived: corpus has no warning hue; warm gold matching the palette temperature reads as amber
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#26251e"
|
|
199
|
-
secondary: "#efeee8"
|
|
200
|
-
secondary-foreground: "#26251e"
|
|
201
|
-
chart-1: "#dfa88f" # corpus timeline peach — the brand's own categorical palette carries the chart series
|
|
202
|
-
chart-2: "#9fc9a2" # corpus timeline mint
|
|
203
|
-
chart-3: "#9fbbe0" # corpus timeline blue
|
|
204
|
-
chart-4: "#c0a8dd" # corpus timeline lavender
|
|
205
|
-
chart-5: "#c08532" # corpus timeline gold
|
|
206
|
-
sidebar: "#f2f1ec" # derived: a faint warm step below the cream canvas so the nav rail reads as chrome
|
|
207
|
-
sidebar-foreground: "#26251e"
|
|
208
|
-
sidebar-primary: "#f54e00"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#eae8e0" # derived: hover/selected nav lift, matches accent
|
|
211
|
-
sidebar-accent-foreground: "#26251e"
|
|
212
|
-
sidebar-border: "#e6e5e0"
|
|
213
|
-
sidebar-ring: "#f54e00"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -8,11 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# ElevenLabs — editorial voice-AI, warmed to an operator console
|
|
9
9
|
|
|
10
10
|
The operator reading of the ElevenLabs brand. Its own surfaces read like a quietly editorial print
|
|
11
|
-
magazine — off-white canvas, Waldenburg Light display at weight 300, pastel gradient orbs as the
|
|
12
|
-
"color". This entry keeps what survives at operator scale: the warm canvas, the achromatic ink
|
|
13
|
-
the warm-stone temperature, modest type weight, soft radius, and the pill on the one action.
|
|
14
|
-
hero display, the orbs, and the 96px rhythm stay behind; the five pastels return only as
|
|
15
|
-
|
|
11
|
+
magazine — off-white canvas, Waldenburg Light display at weight 300, pastel gradient orbs as the
|
|
12
|
+
only "color". This entry keeps what survives at operator scale: the warm canvas, the achromatic ink
|
|
13
|
+
accent, the warm-stone temperature, modest type weight, soft radius, and the pill on the one action.
|
|
14
|
+
The 64px hero display, the orbs, and the 96px rhythm stay behind; the five pastels return only as
|
|
15
|
+
charts.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -26,8 +26,8 @@ is an off-white `background` (`#f5f5f5`) holding white cards, beside a warm `sid
|
|
|
26
26
|
|
|
27
27
|
## 2 Color Roles
|
|
28
28
|
|
|
29
|
-
Light values
|
|
30
|
-
|
|
29
|
+
Light values. One accent, and it is not a hue: `primary` is warm near-black ink; the pastel orbs are
|
|
30
|
+
demoted to chart series and status speaks status.
|
|
31
31
|
|
|
32
32
|
| Role | Value | Allowed where |
|
|
33
33
|
| --- | --- | --- |
|
|
@@ -64,9 +64,6 @@ serif holds 300; sans emphasis caps at `font-weight-strong` (500), 600 only on t
|
|
|
64
64
|
| caption | uppercase eyebrow | sans | 12px / 1.4 | 600, +0.08em, uppercase |
|
|
65
65
|
| code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
|
|
66
66
|
|
|
67
|
-
The machine block carries one sans; the agent applies the light serif to h1/h2 by hand (body's +0.01em
|
|
68
|
-
tracking is the editorial dialect).
|
|
69
|
-
|
|
70
67
|
## 4 Component Stylings
|
|
71
68
|
|
|
72
69
|
Every recurring operator component composes from the primitives — no literal values.
|
|
@@ -138,83 +135,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
135
|
- The five pastels are the chart palette only — leave the orbs and the 64px hero display behind.
|
|
139
136
|
- Numeric columns `tabular-nums`; IDs / codes / timestamps `font-mono`; workflows keyboard-complete.
|
|
140
137
|
- Stay flat and spacious — hairline and the stone ladder before shadow.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # corpus: inputs at rounded.md (8px); scale offers 12px cards, 16px feature cards, pill for the CTA
|
|
144
|
-
shadow-intensity: 0.25 # corpus: a single soft-drop tier at 0.04 alpha — barely there; operator lifts only true overlays
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1.1 # rationale: brand is spacious editorial (96px section rhythm, generous pacing); the operator holds an airier gap
|
|
147
|
-
density-inset: 1.1 # rationale: matches the spacious tier — component insets breathe
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif # corpus: Inter carries all body, nav, captions, buttons
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # derived: corpus has no mono; a clean neutral mono for IDs, codes, timestamps
|
|
150
|
-
font-weight-normal: 400 # corpus: Inter body at 400
|
|
151
|
-
font-weight-strong: 500 # corpus: titles/body-strong/buttons at 500; the brand caps emphasis at 500 (600 only on the uppercase eyebrow)
|
|
152
|
-
heading-tracking: -0.01em # corpus: Waldenburg display tracks ~-0.01em at 28-36px
|
|
153
|
-
duration-unit: 50ms # derived: corpus declares motion out of scope; operator-standard base
|
|
154
|
-
duration-fast: 120ms # derived: corpus silent on motion; a calm editorial fast step
|
|
155
|
-
duration-normal: 200ms # derived: corpus silent on motion; an unhurried editorial transition
|
|
156
|
-
duration-slow: 300ms # derived: corpus silent on motion; the slow step for overlays
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard operator ease
|
|
158
|
-
contrast-boost: 1 # derived: warm hairlines are intentional and the surfaces spacious; no dense-grid boost
|
|
159
|
-
icon-stroke: 1.5 # derived: the brand's light editorial weight (display 300) calls for a thin stroke under lucide's default 2
|
|
160
|
-
icon-size-base: 16px # derived: corpus silent; operator standard
|
|
161
|
-
sidebar-width-expanded: 256px # derived: corpus is top-nav only; the spacious posture takes a roomy rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: corpus has no shell; operator standard icon rail
|
|
163
|
-
topbar-height: 64px # corpus: top-nav height 64px — kept; the spacious posture honors it
|
|
164
|
-
side-panel-width: 440px # derived: corpus has no shell; spacious nudge over the dense default
|
|
165
|
-
side-panel-width-rich: 640px # derived: corpus has no shell; content-heavy detail width
|
|
166
|
-
modal-width-max: 560px # derived: corpus has no shell; confirmations only
|
|
167
|
-
form-max-width: 640px # derived: the editorial single-column reading caps forms comfortably
|
|
168
|
-
table-row-height: 48px # rationale: spacious tier; the brand's 44px inputs and airy rows breathe over the dense 40px default
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle # rationale: the calm editorial voice wants gentle, present feedback — not austere silence
|
|
171
|
-
density-tier: spacious # rationale: the brand reads unmistakably spacious (print-magazine pacing); the operator honors it rather than cramming
|
|
172
|
-
product-traits: [saas, content-studio, dashboard, media-library]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#f5f5f5"
|
|
181
|
-
foreground: "#0c0a09"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#0c0a09"
|
|
184
|
-
muted: "#f0efed"
|
|
185
|
-
muted-foreground: "#777169"
|
|
186
|
-
border: "#e7e5e4"
|
|
187
|
-
input: "#d6d3d1"
|
|
188
|
-
ring: "#0c0a09"
|
|
189
|
-
primary: "#292524"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#eae7e3" # derived: warm selection tint, one step deeper than muted so selection reads distinct from hover
|
|
192
|
-
accent-foreground: "#292524"
|
|
193
|
-
destructive: "#dc2626"
|
|
194
|
-
destructive-foreground: "#ffffff" # derived: white on the red
|
|
195
|
-
success: "#16a34a"
|
|
196
|
-
warning: "#d97706" # derived: corpus has no warning; a warm amber that sits in the stone family
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#0c0a09"
|
|
199
|
-
secondary: "#f0efed"
|
|
200
|
-
secondary-foreground: "#292524"
|
|
201
|
-
chart-1: "#a7e5d3" # corpus: gradient-mint — the atmospheric orbs become the data-viz series
|
|
202
|
-
chart-2: "#a8c8e8" # corpus: gradient-sky
|
|
203
|
-
chart-3: "#c8b8e0" # corpus: gradient-lavender
|
|
204
|
-
chart-4: "#f4c5a8" # corpus: gradient-peach
|
|
205
|
-
chart-5: "#e8b8c4" # corpus: gradient-rose
|
|
206
|
-
sidebar: "#f0efed" # derived: warm rail one step deeper than the canvas
|
|
207
|
-
sidebar-foreground: "#292524" # derived: body-strong ink on the warm rail
|
|
208
|
-
sidebar-primary: "#292524"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#e7e5e4" # derived: hover/selected nav tint = the hairline stone
|
|
211
|
-
sidebar-accent-foreground: "#0c0a09"
|
|
212
|
-
sidebar-border: "#e7e5e4"
|
|
213
|
-
sidebar-ring: "#0c0a09"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [120, 200, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -146,83 +146,3 @@ Directives the emitting agent follows verbatim for an operator surface wearing E
|
|
|
146
146
|
type, no dark-inversion feature cards. What carries is the palette, the cool-neutral temperature, the
|
|
147
147
|
8px/12px radius character, and the Inter + JetBrains Mono voice.
|
|
148
148
|
- Every workflow completes from the keyboard; the ink `ring` focus outline is always visible (P6).
|
|
149
|
-
|
|
150
|
-
```yaml design-primitives
|
|
151
|
-
radius: 8px # derived: Expo's developer-dialect CTA/input radius (rounded.md); cards step to 12px in the scale
|
|
152
|
-
shadow-intensity: 0.3 # derived: Expo ships one very-soft drop (0.04 alpha) — flatter than the operator default
|
|
153
|
-
border-weight: 1px
|
|
154
|
-
density-gap: 1
|
|
155
|
-
density-inset: 1
|
|
156
|
-
font-sans: Inter, -apple-system, system-ui, sans-serif
|
|
157
|
-
font-mono: JetBrains Mono, Fira Code, ui-monospace, monospace
|
|
158
|
-
font-weight-normal: 400
|
|
159
|
-
font-weight-strong: 600 # rationale: Expo holds display weight at 600, never 700 — confident, not bombastic
|
|
160
|
-
heading-tracking: -0.02em # derived: Expo tracks display negative (-0.5 to -1.92px); at operator heading sizes that lands near -0.02em
|
|
161
|
-
duration-unit: 50ms # derived: corpus declares motion out of scope; functional operator timing
|
|
162
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
163
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
164
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
165
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on motion; standard operator ease
|
|
166
|
-
contrast-boost: 1 # derived: component borders use hairline-strong (#dcdee0), which reads as a grid at standard density
|
|
167
|
-
icon-stroke: 1.75 # derived: corpus silent on icons; refined operator lucide stroke
|
|
168
|
-
icon-size-base: 16px # derived: corpus silent on icons
|
|
169
|
-
sidebar-width-expanded: 248px # derived: no sidebar in the marketing corpus; operator shell default
|
|
170
|
-
sidebar-width-collapsed: 56px # derived: operator shell default
|
|
171
|
-
topbar-height: 56px # derived: Expo's marketing top-nav is 64px; operator chrome tightens to 56px
|
|
172
|
-
side-panel-width: 420px # derived: no side panel in the marketing corpus; operator shell default
|
|
173
|
-
side-panel-width-rich: 640px # derived: operator shell default
|
|
174
|
-
modal-width-max: 560px # derived: operator shell default
|
|
175
|
-
form-max-width: 640px # derived: operator shell default
|
|
176
|
-
table-row-height: 44px # derived: Expo runs generous component heights (44px inputs); tables echo that airier read
|
|
177
|
-
verbosity: default
|
|
178
|
-
feedback: subtle # rationale: Expo's quiet, editorial voice; feedback stays understated but legible
|
|
179
|
-
density-tier: standard # derived: developer platform between terminal-dense and consumer-spacious; standard, stepping denser per archetype
|
|
180
|
-
product-traits: [dev-tools, developer-platform, dashboard, ci-cd]
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
```yaml lever-manifest
|
|
184
|
-
version: 1
|
|
185
|
-
fonts: { sans: "Inter, -apple-system, system-ui, sans-serif", mono: "JetBrains Mono, Fira Code, ui-monospace, monospace" }
|
|
186
|
-
color-tokens:
|
|
187
|
-
light:
|
|
188
|
-
background: "#ffffff"
|
|
189
|
-
foreground: "#171717"
|
|
190
|
-
card: "#ffffff"
|
|
191
|
-
card-foreground: "#171717"
|
|
192
|
-
muted: "#f0f0f3"
|
|
193
|
-
muted-foreground: "#60646c"
|
|
194
|
-
border: "#dcdee0"
|
|
195
|
-
input: "#dcdee0"
|
|
196
|
-
ring: "#171717"
|
|
197
|
-
primary: "#000000"
|
|
198
|
-
primary-foreground: "#ffffff"
|
|
199
|
-
accent: "#f0f0f3" # derived: black primary has no light chroma tint; selected-row accent falls to the neutral surface-strong
|
|
200
|
-
accent-foreground: "#171717"
|
|
201
|
-
destructive: "#dc2626" # derived: Expo documents only a soft error-text rose (#eb8e90); a destructive action fill needs an accessible red
|
|
202
|
-
destructive-foreground: "#ffffff"
|
|
203
|
-
success: "#16a34a"
|
|
204
|
-
warning: "#ab6400"
|
|
205
|
-
popover: "#ffffff"
|
|
206
|
-
popover-foreground: "#171717"
|
|
207
|
-
secondary: "#f0f0f3"
|
|
208
|
-
secondary-foreground: "#171717"
|
|
209
|
-
chart-1: "#0d74ce" # derived: chart ramp drawn from Expo's scattered accent hues (link blue anchors — black does not chart)
|
|
210
|
-
chart-2: "#47c2ff" # derived: bright cyan from docs-widget accent
|
|
211
|
-
chart-3: "#16a34a" # derived: success green
|
|
212
|
-
chart-4: "#ab6400" # derived: warning amber
|
|
213
|
-
chart-5: "#8145b5" # derived: preview purple
|
|
214
|
-
sidebar: "#fafafa" # derived: no sidebar in corpus; faintly off-white canvas-soft beside the white content canvas
|
|
215
|
-
sidebar-foreground: "#171717"
|
|
216
|
-
sidebar-primary: "#000000"
|
|
217
|
-
sidebar-primary-foreground: "#ffffff"
|
|
218
|
-
sidebar-accent: "#f0f0f3" # derived: neutral hovered/selected nav tint
|
|
219
|
-
sidebar-accent-foreground: "#171717"
|
|
220
|
-
sidebar-border: "#f0f0f3" # derived: softer hairline for the sidebar's internal dividers
|
|
221
|
-
sidebar-ring: "#171717"
|
|
222
|
-
spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48, 64]
|
|
223
|
-
radius-scale: [0, 4, 8, 12, 16, 9999]
|
|
224
|
-
shadow-levels: [none, sm, md]
|
|
225
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
226
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
227
|
-
accent-count: 1
|
|
228
|
-
```
|