@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
|
# Tesla — radical-subtraction minimalism, translated for operators
|
|
9
9
|
|
|
10
10
|
Tesla's web design is radical subtraction: a white canvas, a single Electric Blue accent, a rich
|
|
11
|
-
grayscale ink ramp, near-zero decoration, and a categorical geometry — **barely-rounded 4px
|
|
12
|
-
This operator reading keeps the white-dominant palette, the one blue accent, the 4px
|
|
13
|
-
the flat/shadowless depth, the two-weight (400 / 500) type discipline, the
|
|
14
|
-
letter-spacing**, and the color-only interaction feel. Left behind: full-viewport
|
|
15
|
-
display type, whitespace-as-luxury rhythm, the frosted-glass nav, the
|
|
16
|
-
|
|
11
|
+
grayscale ink ramp, near-zero decoration, and a categorical geometry — **barely-rounded 4px
|
|
12
|
+
corners**. This operator reading keeps the white-dominant palette, the one blue accent, the 4px
|
|
13
|
+
radius character, the flat/shadowless depth, the two-weight (400 / 500) type discipline, the
|
|
14
|
+
signature **zero letter-spacing**, and the color-only interaction feel. Left behind: full-viewport
|
|
15
|
+
hero photography, 40px display type, whitespace-as-luxury rhythm, the frosted-glass nav, the
|
|
16
|
+
carousel, the chatbot bar.
|
|
17
17
|
|
|
18
18
|
## 1 Visual Theme
|
|
19
19
|
|
|
@@ -151,83 +151,3 @@ Directives the emitting agent follows verbatim:
|
|
|
151
151
|
tempers Tesla's languid 0.33s to a still-smooth normal, parking 330ms for large surface changes.
|
|
152
152
|
- Numeric columns `tabular-nums`, IDs / codes / timestamps `font-mono`; every workflow keyboard-complete
|
|
153
153
|
with the blue `ring` focus outline always visible; stay flat, a whisper `sm` shadow only for a true overlay.
|
|
154
|
-
|
|
155
|
-
```yaml design-primitives
|
|
156
|
-
radius: 4px # Tesla signature: barely-rounded 4px on all controls; scale still offers 12px for a large image-forward tile
|
|
157
|
-
shadow-intensity: 0.1 # derived: Tesla is essentially shadowless (Level-3 hint rgba(0,0,0,0.05)); a whisper only lifts a true overlay
|
|
158
|
-
border-weight: 1px
|
|
159
|
-
density-gap: 1 # derived: standard tier; marketing whitespace-as-luxury stays behind, base multiplier held at 1
|
|
160
|
-
density-inset: 1 # derived: standard operator inset; the generous gallery air stays behind
|
|
161
|
-
font-sans: Universal Sans Text, Inter, system-ui, -apple-system, sans-serif # Universal Sans is Tesla's proprietary family; Inter is the closest open stand-in (geometric with humanist terminals)
|
|
162
|
-
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # derived: Tesla ships no mono; operator-standard mono for IDs/codes/logs
|
|
163
|
-
font-weight-normal: 400 # Tesla body weight (regular)
|
|
164
|
-
font-weight-strong: 500 # Tesla heading/UI weight (medium) — the 500/400 pair is the whole type system; no bold, no light
|
|
165
|
-
heading-tracking: 0 # Tesla signature: zero letter-spacing at every level; unlike most tech brands it takes no negative tracking
|
|
166
|
-
duration-unit: 50ms # derived: corpus documents transition durations, not a base unit; functional operator base
|
|
167
|
-
duration-fast: 100ms # derived: snappy color-only state change
|
|
168
|
-
duration-normal: 200ms # derived: Tesla's smooth 0.33s marketing pace tempered to a still-relaxed operator normal; the color-only character is the carry
|
|
169
|
-
duration-slow: 330ms # Tesla's documented universal 0.33s timing, kept as the slow tier for larger surface changes
|
|
170
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus's main transition curve is an unspecified "cubic-bezier"; standard functional ease (the documented text-link curve is preserved in the manifest)
|
|
171
|
-
contrast-boost: 1 # derived: Tesla's clean minimal surfaces read as a grid without a boost; the light hairline is intentional
|
|
172
|
-
icon-stroke: 1.5 # derived: Tesla's precise, understated aesthetic wants a refined thin stroke, one step under lucide's 2
|
|
173
|
-
icon-size-base: 16px # derived: corpus silent; operator standard
|
|
174
|
-
sidebar-width-expanded: 256px # derived: Tesla is a top-nav marketing site with no sidebar; 8px-rhythm operator shell
|
|
175
|
-
sidebar-width-collapsed: 56px # derived: standard icon-rail width, on the 8px grid
|
|
176
|
-
topbar-height: 56px # derived: Tesla's minimal floating nav → a thin recessive operator topbar
|
|
177
|
-
side-panel-width: 440px # derived: no operator shell in corpus; 8px-rhythm detail panel
|
|
178
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel on the 8px rhythm
|
|
179
|
-
modal-width-max: 480px # derived: Tesla's minimal, confirmation-scale read (its only modal idiom is the region/cookie popup)
|
|
180
|
-
form-max-width: 640px # derived: corpus silent; single-column form measure
|
|
181
|
-
table-row-height: 40px # derived: corpus has no tables; Tesla's calm engineered chrome sits at the operator-standard 40px, on the 8px rhythm
|
|
182
|
-
verbosity: compact # derived: Tesla's radical subtraction — minimal chrome, terse labels, UI that gets out of the way
|
|
183
|
-
feedback: minimal # derived: Tesla's interactions are strictly color-only (no scale/translate); minimal zeroes the press-scale to honor that, ring stays visible
|
|
184
|
-
density-tier: standard # derived: marketing whitespace-as-luxury stays behind; the engineered-uniform chrome carries as standard, neither cramped nor spacious
|
|
185
|
-
product-traits: [inventory, configurator, orders, dashboard, automotive]
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
```yaml lever-manifest
|
|
189
|
-
version: 1
|
|
190
|
-
fonts: { sans: "Universal Sans Text, Inter, system-ui, -apple-system, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
191
|
-
color-tokens:
|
|
192
|
-
light:
|
|
193
|
-
background: "#ffffff"
|
|
194
|
-
foreground: "#171a20"
|
|
195
|
-
card: "#ffffff"
|
|
196
|
-
card-foreground: "#171a20"
|
|
197
|
-
muted: "#f4f4f4"
|
|
198
|
-
muted-foreground: "#5c5e62"
|
|
199
|
-
border: "#eeeeee"
|
|
200
|
-
input: "#d0d1d2"
|
|
201
|
-
ring: "#3e6ae1"
|
|
202
|
-
primary: "#3e6ae1"
|
|
203
|
-
primary-foreground: "#ffffff"
|
|
204
|
-
accent: "#edf1fc" # derived: faint wash of Electric Blue for selection/hover; brand has no blue-tint surface token
|
|
205
|
-
accent-foreground: "#3e6ae1"
|
|
206
|
-
destructive: "#dc2626" # derived: Tesla's marketing site uses browser defaults for status; operator needs a real destructive red
|
|
207
|
-
destructive-foreground: "#ffffff"
|
|
208
|
-
success: "#16a34a" # derived: Tesla avoids semantic color; an engineered green for operator status only
|
|
209
|
-
warning: "#d97706" # derived: Tesla avoids semantic color; an amber for operator status only
|
|
210
|
-
popover: "#ffffff"
|
|
211
|
-
popover-foreground: "#171a20"
|
|
212
|
-
secondary: "#f4f4f4" # Light Ash — the subtle alternate surface as secondary-button fill
|
|
213
|
-
secondary-foreground: "#393c41" # Graphite — Tesla's secondary-CTA text tone
|
|
214
|
-
chart-1: "#3e6ae1" # Electric Blue — the anchor
|
|
215
|
-
chart-2: "#171a20" # derived: Carbon Dark — monochrome-plus-one, so charts run blue + the grayscale ink ramp
|
|
216
|
-
chart-3: "#393c41" # derived: Graphite
|
|
217
|
-
chart-4: "#5c5e62" # derived: Pewter
|
|
218
|
-
chart-5: "#8e8e8e" # derived: Silver Fog
|
|
219
|
-
sidebar: "#f4f4f4" # derived: Tesla has no dark chrome; the Light Ash subtle surface serves as the recessive rail
|
|
220
|
-
sidebar-foreground: "#171a20"
|
|
221
|
-
sidebar-primary: "#3e6ae1"
|
|
222
|
-
sidebar-primary-foreground: "#ffffff"
|
|
223
|
-
sidebar-accent: "#edf1fc" # derived: faint Electric Blue wash for the active/hovered nav item
|
|
224
|
-
sidebar-accent-foreground: "#3e6ae1"
|
|
225
|
-
sidebar-border: "#eeeeee"
|
|
226
|
-
sidebar-ring: "#3e6ae1"
|
|
227
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
|
|
228
|
-
radius-scale: [0, 4, 12, 9999]
|
|
229
|
-
shadow-levels: [none, sm]
|
|
230
|
-
motion: { durations: [100, 200, 330], easings: ["cubic-bezier(0.4,0,0.2,1)", "cubic-bezier(0.5,0,0,0.75)"] }
|
|
231
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
232
|
-
accent-count: 1
|
|
233
|
-
```
|
|
@@ -7,16 +7,16 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# The Verge — the operator reading
|
|
9
9
|
|
|
10
|
-
The operator reading of The Verge's 2024 editorial system. The Verge is categorically dark — "there
|
|
11
|
-
no light mode; the dark canvas is the product" — so this entry earns the doctrine's dark
|
|
12
|
-
near-black canvas fills the default-emitted theme, recorded plainly because the brand
|
|
13
|
-
carries onto internal tools (a content queue, a moderation dashboard, an activity
|
|
14
|
-
canvas, the single acid-mint accent, the mono-uppercase label voice, the flat
|
|
15
|
-
and the rounded-never-square character. What stays behind: the marketing
|
|
16
|
-
display, the saturated rave-flyer story tiles, the FK Roman serif
|
|
17
|
-
thin-weight "fashion whisper" eyebrows. The result is unmistakably
|
|
18
|
-
with club-night color — but it reserves its one accent and
|
|
19
|
-
|
|
10
|
+
The operator reading of The Verge's 2024 editorial system. The Verge is categorically dark — "there
|
|
11
|
+
is no light mode; the dark canvas is the product" — so this entry earns the doctrine's dark
|
|
12
|
+
exception: the near-black canvas fills the default-emitted theme, recorded plainly because the brand
|
|
13
|
+
demands it. What carries onto internal tools (a content queue, a moderation dashboard, an activity
|
|
14
|
+
log): the near-black canvas, the single acid-mint accent, the mono-uppercase label voice, the flat
|
|
15
|
+
color-as-elevation depth, and the rounded-never-square character. What stays behind: the marketing
|
|
16
|
+
shout — 60–107px Manuka hero display, the saturated rave-flyer story tiles, the FK Roman serif
|
|
17
|
+
pulls, the 40px pill CTAs, the thin-weight "fashion whisper" eyebrows. The result is unmistakably
|
|
18
|
+
The Verge — a developer-console feel with club-night color — but it reserves its one accent and
|
|
19
|
+
earns its density.
|
|
20
20
|
|
|
21
21
|
## 1 Visual Theme
|
|
22
22
|
|
|
@@ -31,9 +31,8 @@ the anchor surface is the black canvas beside a fractionally darker `sidebar`.
|
|
|
31
31
|
|
|
32
32
|
## 2 Color Roles
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
ultraviolet, yellow, pink, and electric blue live only in charts, and status hues speak status.
|
|
34
|
+
One accent: `primary` (mint) is the only chromatic hue that carries brand meaning; ultraviolet,
|
|
35
|
+
yellow, pink, and electric blue live only in charts, and status hues speak status.
|
|
37
36
|
|
|
38
37
|
| Role | Value | Allowed where |
|
|
39
38
|
| --- | --- | --- |
|
|
@@ -166,83 +165,3 @@ Directives the emitting agent follows verbatim:
|
|
|
166
165
|
- Leave the marketing shout behind: the 60–107px Manuka hero, the saturated story tiles, the FK Roman
|
|
167
166
|
serif pulls, the 40px pill CTAs, the 300-weight whisper eyebrows. What carries: the near-black palette,
|
|
168
167
|
the single mint accent, the mono-uppercase voice, the rounded-never-square character, and flat depth.
|
|
169
|
-
|
|
170
|
-
```yaml design-primitives
|
|
171
|
-
radius: 8px # derived: the Verge is emphatically never-square; controls stay softly rounded (scale offers 12/20px cards), the 24-40px marketing pill stays behind
|
|
172
|
-
shadow-intensity: 0.2 # derived: militantly flat color-as-elevation brand; on a dark canvas a shadow barely registers, so overlays get only the faintest ring
|
|
173
|
-
border-weight: 1px # corpus: 1px hairlines do the work shadows do elsewhere
|
|
174
|
-
density-gap: 1
|
|
175
|
-
density-inset: 1
|
|
176
|
-
font-sans: PolySans, Space Grotesk, system-ui, sans-serif # PolySans is the UI workhorse; Space Grotesk is the corpus-named substitute
|
|
177
|
-
font-mono: PolySans Mono, Space Mono, ui-monospace, monospace # PolySans Mono is the all-caps label voice; Space Mono substitute
|
|
178
|
-
font-weight-normal: 400 # derived: brand body runs 500 for editorial reading; dense operator body reads cleaner at 400
|
|
179
|
-
font-weight-strong: 700 # corpus: PolySans headlines run 700; the brand is punchy, not calm
|
|
180
|
-
heading-tracking: 0 # derived: PolySans operator headings track ~0; the signature positive tracking lives on the all-caps mono labels, applied by hand
|
|
181
|
-
duration-unit: 50ms # derived: operator base; corpus documents "ease" transitions but not a unit
|
|
182
|
-
duration-fast: 100ms # derived
|
|
183
|
-
duration-normal: 150ms # corpus: cards, tiles, and inputs transition at 150ms ease
|
|
184
|
-
duration-slow: 250ms # derived
|
|
185
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # corpus: transitions are "ease"; standard functional curve
|
|
186
|
-
contrast-boost: 1 # derived: liberal hairlines plus the near-black surface ladder already carry the grid
|
|
187
|
-
icon-stroke: 2 # derived: the Verge's bold, industrial character carries a full-weight 2px stroke, not the refined 1.75 default
|
|
188
|
-
icon-size-base: 16px # derived: corpus silent on UI icons; operator standard
|
|
189
|
-
sidebar-width-expanded: 248px # derived: corpus is an editorial homepage with no app shell; operator standard
|
|
190
|
-
sidebar-width-collapsed: 56px # derived: no shell in corpus; operator standard icon rail
|
|
191
|
-
topbar-height: 56px # derived: corpus top nav is "thin"; operator standard with room for the bold wordmark
|
|
192
|
-
side-panel-width: 420px # derived: no shell in corpus; operator standard
|
|
193
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
194
|
-
modal-width-max: 560px # derived: confirmations only
|
|
195
|
-
form-max-width: 640px # derived: corpus caps content at ~1280px; operator forms cap tighter
|
|
196
|
-
table-row-height: 44px # derived: the brand's paced whitespace → rows breathe a touch over the dense 40px default
|
|
197
|
-
verbosity: default # derived: the mono-label voice likes visible labels, kickers, and tags
|
|
198
|
-
feedback: subtle
|
|
199
|
-
density-tier: standard # derived: an editorial-paced brand read to an honest operator tier; the console density is available per-archetype
|
|
200
|
-
product-traits: [log-stream, dashboard, cms, content-queue, admin]
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
```yaml lever-manifest
|
|
204
|
-
version: 1
|
|
205
|
-
fonts: { sans: "PolySans, Space Grotesk, system-ui, sans-serif", mono: "PolySans Mono, Space Mono, ui-monospace, monospace" }
|
|
206
|
-
color-tokens:
|
|
207
|
-
light:
|
|
208
|
-
background: "#131313" # Canvas Black — the categorically-dark canvas fills the default-emitted theme slot
|
|
209
|
-
foreground: "#ffffff" # Hazard White
|
|
210
|
-
card: "#1a1a1a" # derived: a faint step off canvas so multi-card surfaces read; border still carries
|
|
211
|
-
card-foreground: "#ffffff"
|
|
212
|
-
muted: "#242424" # derived: subtle fill / hover, between card and slate
|
|
213
|
-
muted-foreground: "#949494" # Secondary Text
|
|
214
|
-
border: "#313131" # Image Frame hairline — white/mint reserved for emphasis
|
|
215
|
-
input: "#313131"
|
|
216
|
-
ring: "#1eaedb" # Focus Cyan — the brand's dedicated keyboard-focus hue
|
|
217
|
-
primary: "#3cffd0" # Jelly Mint — the one accent
|
|
218
|
-
primary-foreground: "#000000" # Absolute Black — the only place black appears
|
|
219
|
-
accent: "#2d2d2d" # Surface Slate — neutral selection tint, never a mint wash
|
|
220
|
-
accent-foreground: "#ffffff"
|
|
221
|
-
destructive: "#ff3b5c" # derived: brand has no red; a hazard-register red-pink so destructive reads as danger (corpus error-purple handed to charts)
|
|
222
|
-
destructive-foreground: "#ffffff"
|
|
223
|
-
success: "#22c55e" # derived: brand has no green; a clear green distinct from the mint-cyan primary
|
|
224
|
-
warning: "#ffd23c" # derived: echoes the brand's yellow story tile
|
|
225
|
-
popover: "#1a1a1a"
|
|
226
|
-
popover-foreground: "#ffffff"
|
|
227
|
-
secondary: "#2d2d2d" # Surface Slate — secondary button fill
|
|
228
|
-
secondary-foreground: "#e9e9e9" # Muted Text
|
|
229
|
-
chart-1: "#3cffd0" # mint
|
|
230
|
-
chart-2: "#5200ff" # Verge Ultraviolet — a brand hazard, chart-only here
|
|
231
|
-
chart-3: "#ffd23c" # yellow tile hue
|
|
232
|
-
chart-4: "#ff4da6" # derived: pink tile hue
|
|
233
|
-
chart-5: "#1eaedb" # electric blue / focus cyan doubling as a chart hue
|
|
234
|
-
sidebar: "#0f0f0f" # derived: a hair darker than canvas so the nav reads as chrome
|
|
235
|
-
sidebar-foreground: "#ffffff"
|
|
236
|
-
sidebar-primary: "#3cffd0" # mint active nav
|
|
237
|
-
sidebar-primary-foreground: "#000000"
|
|
238
|
-
sidebar-accent: "#2d2d2d"
|
|
239
|
-
sidebar-accent-foreground: "#ffffff"
|
|
240
|
-
sidebar-border: "#313131"
|
|
241
|
-
sidebar-ring: "#1eaedb"
|
|
242
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
243
|
-
radius-scale: [2, 4, 8, 12, 20, 9999]
|
|
244
|
-
shadow-levels: [none, sm]
|
|
245
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
246
|
-
icons: { family: lucide, stroke: 2 }
|
|
247
|
-
accent-count: 1
|
|
248
|
-
```
|
|
@@ -7,15 +7,15 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Together AI — the white-band operator reading
|
|
9
9
|
|
|
10
|
-
Together AI's surface alternates two registers: near-black hero bands carrying a single piece of
|
|
11
|
-
chrome — a three-color orange-magenta-periwinkle gradient ribbon — and bright white technical
|
|
12
|
-
the real content lives (pricing tables, docs, model rows). This entry is the *operator*
|
|
13
|
-
in the **white technical band**, carried onto a CRM, a queue, or a dashboard. What
|
|
14
|
-
canvas, stark black ink and black CTA, the uppercase mono-caps eyebrow/label
|
|
15
|
-
the tight 4px radius, and a near-black nav rail — the brand's dark nav
|
|
16
|
-
near-black content bands, the gradient ribbon, hero-scale display
|
|
17
|
-
banner, the mint/white hero pills, and the dual-surface
|
|
18
|
-
|
|
10
|
+
Together AI's surface alternates two registers: near-black hero bands carrying a single piece of
|
|
11
|
+
brand chrome — a three-color orange-magenta-periwinkle gradient ribbon — and bright white technical
|
|
12
|
+
bands where the real content lives (pricing tables, docs, model rows). This entry is the *operator*
|
|
13
|
+
reading: it lives in the **white technical band**, carried onto a CRM, a queue, or a dashboard. What
|
|
14
|
+
carries: the white canvas, stark black ink and black CTA, the uppercase mono-caps eyebrow/label
|
|
15
|
+
voice, hairline-led flatness, the tight 4px radius, and a near-black nav rail — the brand's dark nav
|
|
16
|
+
made permanent. What stays behind: near-black content bands, the gradient ribbon, hero-scale display
|
|
17
|
+
(64px), the giant `together.ai` wordmark banner, the mint/white hero pills, and the dual-surface
|
|
18
|
+
alternation. The gradient's colors survive only in data viz.
|
|
19
19
|
|
|
20
20
|
## 1 Visual Theme
|
|
21
21
|
|
|
@@ -31,8 +31,8 @@ archetype; the brand's pricing tables read like a sheet.
|
|
|
31
31
|
|
|
32
32
|
## 2 Color Roles
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
One chromatic accent — periwinkle-indigo carries interactive meaning; status hues (all derived — the
|
|
35
|
+
brand documents none) speak only status.
|
|
36
36
|
|
|
37
37
|
| Role | Value | Allowed where |
|
|
38
38
|
| --- | --- | --- |
|
|
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
138
|
- Every numeric column is `tabular-nums`; every ID, code, model slug, and timestamp is `font-mono`. Every workflow completes from the keyboard; the periwinkle `ring` focus outline is always visible.
|
|
139
139
|
- Stay flat — hairline and surface polarity before shadow; reach past a hairline only for a real overlay.
|
|
140
140
|
- Leave the marketing furniture behind: near-black content bands, the gradient ribbon, the 64px hero display, the wordmark banner, the mint/white hero pills. The gradient's colors return only in charts.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 4px # corpus: the brand's canonical card/button/table radius (rounded.sm 4px); the 9999 pill stays on badges/the chat orb
|
|
144
|
-
shadow-intensity: 0.3 # derived: elevation is hairline + surface polarity + the dark rail; the one soft drop is navy-tinted (brand rgba(1,1,32,0.1))
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: The Future, Inter, "Helvetica Neue", Arial, sans-serif # corpus: custom geometric display sans (The Future) for headings and body; Inter is the corpus-named substitute
|
|
149
|
-
font-mono: PP Neue Montreal Mono, "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace # corpus: uppercase mono-caps face for every eyebrow/label/button/header — the brand signature; JetBrains Mono is the corpus-named substitute
|
|
150
|
-
font-weight-normal: 400 # corpus: body weight 400
|
|
151
|
-
font-weight-strong: 500 # corpus: the face never appears above weight 500 (never bold 700)
|
|
152
|
-
heading-tracking: -0.02em # corpus: tight negative display tracking (-1.92px@64px, -0.16px@16px) preserved at operator heading scale
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no motion; functional operator base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
156
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
158
|
-
contrast-boost: 1 # derived: stark #000 ink is already maximal; the hairline is intentionally faint per brand
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus uses SVG logos/illustration, no icon set; 1.75 suits the tight geometric character
|
|
160
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator standard
|
|
161
|
-
sidebar-width-expanded: 248px # derived: corpus has no sidebar (marketing top-nav); operator shell default
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: operator icon-rail standard
|
|
163
|
-
topbar-height: 56px # derived: from the brand nav-bar rhythm (16px vertical padding on body-md)
|
|
164
|
-
side-panel-width: 420px # derived: corpus has no shell; standard operator detail panel
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
166
|
-
modal-width-max: 560px # derived: corpus modals lean on a tinted scrim, not shadow; operator confirmation cap
|
|
167
|
-
form-max-width: 640px # derived: corpus silent on shell; operator form column
|
|
168
|
-
table-row-height: 40px # corpus: pricing tables "read more like a sheet" — tight 12px-vertical rows carried
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: minimal # derived: the stark black/white, mono-caps, flat register wants terse, engineered feedback, not soft ambient motion
|
|
171
|
-
density-tier: standard # derived: white technical bands run sheet-dense; a general operator default holds standard and steps denser per archetype
|
|
172
|
-
product-traits: [ai-platform, dev-tools, dashboard, api-console]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "The Future, Inter, \"Helvetica Neue\", Arial, sans-serif", mono: "PP Neue Montreal Mono, \"JetBrains Mono\", ui-monospace, \"SF Mono\", Menlo, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#000000"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#000000"
|
|
184
|
-
muted: "#f5f5f5" # derived: a faint neutral for hover rows, lighter than the grid hairline
|
|
185
|
-
muted-foreground: "#666666" # derived: brand secondary-text gray #999999 darkened for legible operator metadata (AA)
|
|
186
|
-
border: "#e6e6e6" # derived: brand card/input hairline rgba(0,0,0,0.08) over white, firmed a step for grid legibility
|
|
187
|
-
input: "#e6e6e6"
|
|
188
|
-
ring: "#4b44dd" # derived: brand periwinkle gradient-leg #bdbbff darkened to a legible interactive indigo — the single accent
|
|
189
|
-
primary: "#000000" # corpus: the black pill CTA carried intact
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#eeedfd" # derived: pale wash of the periwinkle accent for selected/hover rows and nav
|
|
192
|
-
accent-foreground: "#4b44dd" # derived: darkened brand periwinkle — links and selection detail
|
|
193
|
-
destructive: "#dc2626" # derived: corpus documents no error palette; framework red
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#16a34a" # derived: corpus documents no success palette; framework green
|
|
196
|
-
warning: "#d97706" # derived: corpus documents no warning palette; framework amber
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#000000"
|
|
199
|
-
secondary: "#ebebeb" # corpus: the brand's single soft surface (canvas-soft #ebebeb) — table-header rails, toggle rails, secondary buttons
|
|
200
|
-
secondary-foreground: "#000000"
|
|
201
|
-
chart-1: "#4b44dd" # accent periwinkle-indigo — primary data series
|
|
202
|
-
chart-2: "#ef2cc1" # corpus: brand gradient magenta leg
|
|
203
|
-
chart-3: "#fc4c02" # corpus: brand gradient orange leg
|
|
204
|
-
chart-4: "#12a3ad" # derived: brand mint #c8f6f9 deepened to a legible cyan data series
|
|
205
|
-
chart-5: "#666666" # derived: neutral gray series
|
|
206
|
-
sidebar: "#010120" # corpus: the brand's near-black nav color (canvas-dark) carried onto the persistent rail
|
|
207
|
-
sidebar-foreground: "#ffffff" # corpus: on-dark text is white
|
|
208
|
-
sidebar-primary: "#4b44dd" # derived: the accent marks the active nav item on the dark rail (brand's black indicator is invisible on dark)
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#26263a" # corpus: the brand's on-dark hairline tone (surface-dark-soft family) — hover fill on the dark rail
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#26263a" # corpus: on-dark hairline divider within the rail
|
|
213
|
-
sidebar-ring: "#4b44dd" # derived: the accent as focus outline on the dark rail
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 80]
|
|
215
|
-
radius-scale: [0, 4, 8, 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
|
-
```
|
|
@@ -7,12 +7,12 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Uber — the black-and-white super-app operator design
|
|
9
9
|
|
|
10
|
-
The operator reading of Uber's monochrome web brand. The marketing theatre stays behind: hero
|
|
11
|
-
type (52 / 36px), the editorial 4:3 illustrations, the ride-request hero card, and the
|
|
12
|
-
white-then-black band rhythm. What carries is the chassis underneath — a black-and-white
|
|
13
|
-
black `primary` (`#000000`) does every conversion job, the pill on every interactive
|
|
14
|
-
no-shadow-by-default discipline, the neutral-tracked geometric sans voice, and the
|
|
15
|
-
|
|
10
|
+
The operator reading of Uber's monochrome web brand. The marketing theatre stays behind: hero
|
|
11
|
+
display type (52 / 36px), the editorial 4:3 illustrations, the ride-request hero card, and the
|
|
12
|
+
alternating white-then-black band rhythm. What carries is the chassis underneath — a black-and-white
|
|
13
|
+
duet where pure black `primary` (`#000000`) does every conversion job, the pill on every interactive
|
|
14
|
+
control, a flat no-shadow-by-default discipline, the neutral-tracked geometric sans voice, and the
|
|
15
|
+
polarity-flip as the depth cue.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -27,8 +27,8 @@ shadow. The anchor surface is a white canvas beside a black `sidebar` — the sh
|
|
|
27
27
|
|
|
28
28
|
## 2 Color Roles
|
|
29
29
|
|
|
30
|
-
Light values
|
|
31
|
-
|
|
30
|
+
Light values. One accent: black `primary` is the only value that carries meaning; the status hues
|
|
31
|
+
are derived and speak only status.
|
|
32
32
|
|
|
33
33
|
| Role | Value | Allowed where |
|
|
34
34
|
| --- | --- | --- |
|
|
@@ -138,83 +138,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
138
138
|
- Pill the interactive controls; inputs take the soft rect; keep the `sidebar` black with white actives.
|
|
139
139
|
Every numeric column is `tabular-nums`, every ID / code / timestamp `font-mono`, the black `ring` always visible.
|
|
140
140
|
- Stay flat — hairline and polarity-flip before shadow; past a hairline only for a real overlay.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 12px # derived: corpus card is 16px (rounded.xl); base 12px yields the 16px card at xl and the ~8px input at sm — the pill 9999 (the signature interactive shape) stays in-scale, applied per-control
|
|
144
|
-
shadow-intensity: 0.5 # derived: corpus default is Level 0 flat; overlays carry a ~0.12–0.16 alpha drop — 0.5 lifts only true overlays, chrome stays flat
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Inter, system-ui, "Helvetica Neue", Arial, sans-serif # derived: UberMove/UberMoveText are proprietary; corpus names Inter as the closest substitute (font-feature-settings "ss01" approximates UberMove's geometric alternates)
|
|
149
|
-
font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # derived: corpus carries no mono; Geist Mono chosen as the sibling of the corpus-named Geist substitute
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # derived: corpus display is weight 700 across the ramp; the operator reading pulls headings to 600 (the hero 700 stays behind with the display sizes)
|
|
152
|
-
heading-tracking: 0em # corpus: Uber never letter-spaces the display face — neutral tracking is a stated brand invariant
|
|
153
|
-
duration-unit: 50ms # derived: corpus is silent on motion; operator-standard functional base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
156
|
-
duration-slow: 200ms # derived: corpus silent; kept crisp, not cinematic
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
158
|
-
contrast-boost: 1 # derived: the pressed-gray hairlines read as a grid without boosting
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus specifies no stroke; a refined 1.75 suits the clean geometric system
|
|
160
|
-
icon-size-base: 16px # derived: corpus silent; sits with the 15px body
|
|
161
|
-
sidebar-width-expanded: 248px # derived: corpus has no operator shell; standard nav rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard icon rail
|
|
163
|
-
topbar-height: 56px # derived: corpus nav padding (16/32); operator topbar at 56px
|
|
164
|
-
side-panel-width: 440px # derived: corpus has no shell; standard detail panel
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail
|
|
166
|
-
modal-width-max: 560px # derived: confirmation-dialog cap
|
|
167
|
-
form-max-width: 640px # derived: readable form column (corpus's 490px ride-request hero card stays behind)
|
|
168
|
-
table-row-height: 44px # derived: corpus data-cell padding (12/16) → a ~44px row at standard density
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard # derived: Uber's marketing is generous but not airy; an honest operator standard, stepped per archetype
|
|
172
|
-
product-traits: [dispatch, logistics, operations, marketplace, dashboard]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, 'Helvetica Neue', Arial, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#000000"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#000000"
|
|
184
|
-
muted: "#efefef"
|
|
185
|
-
muted-foreground: "#5e5e5e"
|
|
186
|
-
border: "#e2e2e2"
|
|
187
|
-
input: "#e2e2e2"
|
|
188
|
-
ring: "#000000"
|
|
189
|
-
primary: "#000000"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#e2e2e2"
|
|
192
|
-
accent-foreground: "#000000"
|
|
193
|
-
destructive: "#d93025" # derived: corpus documents no error hue (marketing is monochrome); a restrained red for the status triad, chosen not to read as a second brand accent
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#157347" # derived: corpus has no status palette; restrained green for status only
|
|
196
|
-
warning: "#b25000" # derived: corpus has no status palette; restrained amber for status only
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#000000"
|
|
199
|
-
secondary: "#efefef"
|
|
200
|
-
secondary-foreground: "#000000"
|
|
201
|
-
chart-1: "#000000" # derived: monochrome brand → grayscale-forward chart ramp; categorical differentiation carried by pattern/label, not a second hue
|
|
202
|
-
chart-2: "#4b4b4b" # corpus: hairline-mid
|
|
203
|
-
chart-3: "#8a8a8a" # derived: mid-gray fill between hairline-mid and mute for series spread
|
|
204
|
-
chart-4: "#afafaf" # corpus: mute
|
|
205
|
-
chart-5: "#d4d4d4" # derived: light-gray ramp tail
|
|
206
|
-
sidebar: "#000000" # derived: the shell wears Uber's polarity-flip — the sidebar is the black band (corpus footer/band fill #000000)
|
|
207
|
-
sidebar-foreground: "#ffffff"
|
|
208
|
-
sidebar-primary: "#ffffff" # derived: the active nav mark on the black band is white (black would vanish)
|
|
209
|
-
sidebar-primary-foreground: "#000000"
|
|
210
|
-
sidebar-accent: "#282828" # corpus: black-elevated — Uber's documented dark-band hover
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#282828" # derived: the hairline on the black band (black-elevated tone)
|
|
213
|
-
sidebar-ring: "#ffffff"
|
|
214
|
-
spacing-scale: [4, 6, 8, 12, 16, 20, 24, 32, 48]
|
|
215
|
-
radius-scale: [0, 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
|
-
```
|
|
@@ -26,8 +26,8 @@ is a white canvas beside a faintly-tinted `sidebar`.
|
|
|
26
26
|
|
|
27
27
|
## 2 Color Roles
|
|
28
28
|
|
|
29
|
-
Light values
|
|
30
|
-
|
|
29
|
+
Light values. The identity is monochrome — ink + a deliberate gray ramp; the one chromatic accent is
|
|
30
|
+
the interaction blue, and status speaks status.
|
|
31
31
|
|
|
32
32
|
| Role | Value | Allowed where |
|
|
33
33
|
| --- | --- | --- |
|
|
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
138
|
for a real overlay. Every workflow completes from the keyboard; the blue `ring` is always visible.
|
|
139
139
|
- Leave marketing behind entirely: the mesh gradient, the 100px pill CTA, the 48px hero display, the
|
|
140
140
|
dark bands, and the 96 / 128 / 192px section rhythm.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 6px # corpus: --geist-radius (6px) is the in-app base for buttons/inputs/menus; the 100px marketing pill stays behind
|
|
144
|
-
shadow-intensity: 0.3 # derived: corpus elevation is exceptionally subtle — stacked small offsets at 4–12% black + an inset hairline ring
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Geist, Inter, system-ui, -apple-system, sans-serif # corpus: Geist is the brand face; Inter is the named open substitute
|
|
149
|
-
font-mono: Geist Mono, JetBrains Mono, ui-monospace, SFMono-Regular, monospace # corpus: Geist Mono for technical layer; JetBrains Mono the named substitute
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # corpus: weight 600 is the display ceiling; the brand never reaches 700
|
|
152
|
-
heading-tracking: -0.03em # corpus: aggressive negative display tracking (-0.04em at 24px display-md) scaled to operator headings; the -0.05em hero tracking stays behind
|
|
153
|
-
duration-unit: 50ms # derived: corpus silent on motion; snappy operator base — Vercel's UI reads crisp and fast
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
155
|
-
duration-normal: 150ms # derived: functional transition default
|
|
156
|
-
duration-slow: 200ms # derived: kept short — crisp, not cinematic
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard crisp ease
|
|
158
|
-
contrast-boost: 1 # derived: the deliberate gray ramp gives clear hairlines; no boost needed
|
|
159
|
-
icon-stroke: 1.5 # derived: the Geist icon set is fine and geometric; below lucide's default 2 for a refined stroke
|
|
160
|
-
icon-size-base: 16px
|
|
161
|
-
sidebar-width-expanded: 256px # derived: corpus has no operator shell; Vercel dashboard left-nav proportion
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: icon-rail width
|
|
163
|
-
topbar-height: 64px # corpus: nav-bar height (--header-height) is 64px
|
|
164
|
-
side-panel-width: 440px # derived: corpus has no operator shell; detail-panel proportion
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width (corpus content column family)
|
|
166
|
-
modal-width-max: 560px # derived: confirmation-dialog cap
|
|
167
|
-
form-max-width: 640px # derived: readable single-column form width
|
|
168
|
-
table-row-height: 44px # derived: corpus field height is 40px; rows breathe a hair over the dense default at standard density
|
|
169
|
-
verbosity: default # derived: Vercel's product chrome is clean but labelled, not terse-expert
|
|
170
|
-
feedback: subtle # derived: understated, functional feedback matches the calm system
|
|
171
|
-
density-tier: standard # derived: Vercel's product reads clean and engineered, not dense-technical; a standard operator tier
|
|
172
|
-
product-traits: [dev-tools, deployment-dashboard, platform-console, admin]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Geist, Inter, system-ui, -apple-system, sans-serif", mono: "Geist Mono, JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#fafafa" # corpus canvas-soft — the 98% white page body
|
|
181
|
-
foreground: "#171717" # corpus ink
|
|
182
|
-
card: "#ffffff" # corpus canvas — pure white cards
|
|
183
|
-
card-foreground: "#171717"
|
|
184
|
-
muted: "#f5f5f5" # corpus canvas-soft-2 — inset / hover surface
|
|
185
|
-
muted-foreground: "#666666" # derived: Vercel gray ramp mid-tone (between body #4d4d4d and mute #888888) for the label/caption role, readable on white
|
|
186
|
-
border: "#ebebeb" # corpus hairline
|
|
187
|
-
input: "#ebebeb" # corpus hairline — form-input border
|
|
188
|
-
ring: "#0070f3" # corpus link/interactive blue; Vercel's real focus ring is blue, and the achromatic ink would vanish on the black button
|
|
189
|
-
primary: "#171717" # corpus ink — the single black-button CTA
|
|
190
|
-
primary-foreground: "#ffffff" # corpus on-primary
|
|
191
|
-
accent: "#f5f5f5" # corpus canvas-soft-2 — neutral selected/hover wash; monochrome selection is the signature
|
|
192
|
-
accent-foreground: "#171717"
|
|
193
|
-
destructive: "#ee0000" # corpus error
|
|
194
|
-
destructive-foreground: "#ffffff" # corpus on-primary (white on the red)
|
|
195
|
-
success: "#16a34a" # derived: Vercel's full system scale includes a green (corpus notes the 100–1000 green ramp); success reads green so status stays distinct from the interaction blue #0070f3
|
|
196
|
-
warning: "#f5a623" # corpus warning amber
|
|
197
|
-
popover: "#ffffff" # corpus canvas — crisp white overlay lifted by the inset hairline + soft stacked shadow
|
|
198
|
-
popover-foreground: "#171717"
|
|
199
|
-
secondary: "#f5f5f5" # corpus canvas-soft-2 — secondary button / soft surface fill
|
|
200
|
-
secondary-foreground: "#171717"
|
|
201
|
-
chart-1: "#0070f3" # corpus link blue
|
|
202
|
-
chart-2: "#7928ca" # corpus violet
|
|
203
|
-
chart-3: "#50e3c2" # corpus cyan
|
|
204
|
-
chart-4: "#f5a623" # corpus amber
|
|
205
|
-
chart-5: "#ff0080" # corpus highlight pink — the brand accent hues repurposed as categorical series
|
|
206
|
-
sidebar: "#fafafa" # corpus canvas-soft — a faint tint distinct from the white content canvas, a hairline above the page
|
|
207
|
-
sidebar-foreground: "#171717"
|
|
208
|
-
sidebar-primary: "#171717" # corpus: app-shell active nav uses the ink primary as the indicator
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#f5f5f5" # corpus canvas-soft-2 — selected nav-row wash
|
|
211
|
-
sidebar-accent-foreground: "#171717"
|
|
212
|
-
sidebar-border: "#ebebeb" # corpus hairline
|
|
213
|
-
sidebar-ring: "#0070f3"
|
|
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, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|