@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
|
@@ -7,16 +7,15 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# SpaceX — the mission-console operator reading
|
|
9
9
|
|
|
10
|
-
An operator translation of SpaceX's design language into a mission console. The marketing theatre
|
|
11
|
-
behind: full-bleed rocket and Mars photography, autoplaying launch video, hero-scale display
|
|
12
|
-
museum negative space. What carries is the austere chassis underneath — a pure-black
|
|
13
|
-
achromatic white accent doing every "click me" job, the condensed industrial D-DIN voice
|
|
14
|
-
with the brand's signature *positive* tracking, tight 4px chrome, and a zero-shadow
|
|
15
|
-
the one library entry where the light-default floor legitimately yields: SpaceX
|
|
16
|
-
— pure `#000000` is the load-bearing brand fact — so the default theme
|
|
17
|
-
blesses the override plainly (brand tokens win; a pure `#000000`
|
|
18
|
-
lets a design.md demand).
|
|
19
|
-
states is annotated `# derived:` where it lands.
|
|
10
|
+
An operator translation of SpaceX's design language into a mission console. The marketing theatre
|
|
11
|
+
stays behind: full-bleed rocket and Mars photography, autoplaying launch video, hero-scale display
|
|
12
|
+
type, the museum negative space. What carries is the austere chassis underneath — a pure-black
|
|
13
|
+
canvas, an achromatic white accent doing every "click me" job, the condensed industrial D-DIN voice
|
|
14
|
+
set UPPERCASE with the brand's signature *positive* tracking, tight 4px chrome, and a zero-shadow
|
|
15
|
+
flat depth. This is the one library entry where the light-default floor legitimately yields: SpaceX
|
|
16
|
+
is **categorically dark** — pure `#000000` is the load-bearing brand fact — so the default theme
|
|
17
|
+
wears near-black, and the brief blesses the override plainly (brand tokens win; a pure `#000000`
|
|
18
|
+
surface is exactly the case the catalog lets a design.md demand).
|
|
20
19
|
|
|
21
20
|
## 1 Visual Theme
|
|
22
21
|
|
|
@@ -32,10 +31,10 @@ reading is a mission console — telemetry-dense — not the spacious full-bleed
|
|
|
32
31
|
|
|
33
32
|
## 2 Color Roles
|
|
34
33
|
|
|
35
|
-
Dark values are the default
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
Dark values are the default. The brand has no accent colors; black, white, and a derived telemetry
|
|
35
|
+
set of status hues do all the chromatic work. The corpus's light shop surface (white `#ffffff`, ink
|
|
36
|
+
`#000000`, hairline `#e0e0e8`) is the inverse a light form context can opt into, but the console
|
|
37
|
+
wears black.
|
|
39
38
|
|
|
40
39
|
| Role | Value | Allowed where |
|
|
41
40
|
| --- | --- | --- |
|
|
@@ -170,83 +169,3 @@ modestly, but the principle holds — the display shrinks first.
|
|
|
170
169
|
omits mono — the console adds it for telemetry).
|
|
171
170
|
- Every workflow completes from the keyboard; the white 2px `ring` focus outline is always visible.
|
|
172
171
|
- The 32px ghost pill is a lone hero CTA (a launch / commit confirm), never two side by side.
|
|
173
|
-
|
|
174
|
-
```yaml design-primitives
|
|
175
|
-
radius: 4px # corpus: sharpest chrome radius (rounded.xs, form inputs); the engineered DIN read wants tight corners — the 32px signature pill stays in-scale for a lone ghost hero CTA
|
|
176
|
-
shadow-intensity: 0.2 # derived: corpus uses zero shadow (depth is photographic); operator carries elevation by the near-black surface ladder + hairline, a faint shadow only floats a true overlay
|
|
177
|
-
border-weight: 1px
|
|
178
|
-
density-gap: 0.9 # derived: the operator reading is a mission console — telemetry-dense; marketing's full-bleed spaciousness stays behind
|
|
179
|
-
density-inset: 0.9 # derived: matches the dense tier's tighter component insets
|
|
180
|
-
font-sans: D-DIN, Inter, Arial Narrow, system-ui, sans-serif # corpus display+body face; Inter (700+, tracked) is the corpus-named substitute, Arial Narrow the corpus fallback that keeps the width compression
|
|
181
|
-
font-mono: Space Mono, JetBrains Mono, ui-monospace, monospace # derived: corpus omits mono; a mission console needs a telemetry/ID voice — Space Mono's engineered character suits the DIN aesthetic, JetBrains Mono the reliable fallback
|
|
182
|
-
font-weight-normal: 400 # corpus: D-DIN body weight
|
|
183
|
-
font-weight-strong: 700 # corpus: D-DIN-Bold display is 700; the brand jumps 400 → 700 with no mid weight
|
|
184
|
-
heading-tracking: 0.04em # corpus: the signature is POSITIVE display tracking (uppercase, ~0.02em at 80px, ~0.08em on caps eyebrows); operator headings keep a distinctly positive 0.04em — the one operator brand that tracks OUT, not in
|
|
185
|
-
duration-unit: 50ms # derived: corpus documents no motion; austere functional base
|
|
186
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
187
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
188
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
189
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; mechanical, restrained functional ease
|
|
190
|
-
contrast-boost: 1 # derived: the near-black surface ladder + #3a3a3f hairlines already read as a grid on black
|
|
191
|
-
icon-stroke: 1.5 # derived: corpus uses minimal SVG arrow chevrons; a thin 1.5 stroke keeps them minimal and refined
|
|
192
|
-
icon-size-base: 16px # derived: corpus silent on UI icon sizing; operator standard
|
|
193
|
-
sidebar-width-expanded: 240px # derived: no app shell in corpus (marketing full-bleed); austere/dense read tightens the rail
|
|
194
|
-
sidebar-width-collapsed: 56px # derived: standard icon-rail width
|
|
195
|
-
topbar-height: 52px # derived: corpus nav is marketing-generous (24px vertical padding); operator tightens to a thin overlay bar
|
|
196
|
-
side-panel-width: 420px # derived: no app shell in corpus; operator standard
|
|
197
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
198
|
-
modal-width-max: 560px # derived: confirmations only
|
|
199
|
-
form-max-width: 640px # derived: single-column reading cap
|
|
200
|
-
table-row-height: 36px # derived: dense mission-console rows pack tight; the surface catalog can step further per archetype
|
|
201
|
-
verbosity: compact # derived: austere, minimal-chrome brand trusts the reader over explanatory copy
|
|
202
|
-
feedback: minimal # derived: the brand's austere silence → the most restrained feedback dial
|
|
203
|
-
density-tier: dense # derived: the operator reading is a mission console — telemetry-dense; marketing spaciousness stays behind
|
|
204
|
-
product-traits: [mission-control, telemetry, monitoring, dashboard, command-center]
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
```yaml lever-manifest
|
|
208
|
-
version: 1
|
|
209
|
-
fonts: { sans: "D-DIN, Inter, Arial Narrow, system-ui, sans-serif", mono: "Space Mono, JetBrains Mono, ui-monospace, monospace" }
|
|
210
|
-
color-tokens:
|
|
211
|
-
light:
|
|
212
|
-
background: "#000000"
|
|
213
|
-
foreground: "#ffffff"
|
|
214
|
-
card: "#0a0a0a"
|
|
215
|
-
card-foreground: "#ffffff"
|
|
216
|
-
muted: "#141417" # derived: a step above card for hover rows and subtle fills on the near-black ladder
|
|
217
|
-
muted-foreground: "#8a8a92" # derived: cool mid-gray for secondary text on black; corpus ink-mute #5a5a5f is a light-surface tone
|
|
218
|
-
border: "#3a3a3f"
|
|
219
|
-
input: "#3a3a3f"
|
|
220
|
-
ring: "#ffffff" # derived: achromatic brand → the focus ring is white, maximally visible on black (corpus link-on-dark is white)
|
|
221
|
-
primary: "#ffffff" # derived: the brand has no chromatic accent; white is the one voltage — the primary action inverts to white-on-black
|
|
222
|
-
primary-foreground: "#000000"
|
|
223
|
-
accent: "#1e1e26" # derived: cool near-black selection/hover tint; SpaceX's cool canvas-cool #f0f0fa inverted onto black
|
|
224
|
-
accent-foreground: "#ffffff"
|
|
225
|
-
destructive: "#ff453a" # derived: corpus is achromatic; a telemetry-alert red for error/abort on black
|
|
226
|
-
destructive-foreground: "#ffffff"
|
|
227
|
-
success: "#32d74b" # derived: mission nominal/go green on black
|
|
228
|
-
warning: "#ff9f0a" # derived: telemetry caution amber on black
|
|
229
|
-
popover: "#0a0a0a"
|
|
230
|
-
popover-foreground: "#ffffff"
|
|
231
|
-
secondary: "#1a1a1e" # derived: secondary button fill — a lift above card
|
|
232
|
-
secondary-foreground: "#ffffff"
|
|
233
|
-
chart-1: "#ffffff" # derived: the primary telemetry trace is achromatic white
|
|
234
|
-
chart-2: "#64d2ff" # derived: telemetry cyan
|
|
235
|
-
chart-3: "#32d74b" # derived: nominal green
|
|
236
|
-
chart-4: "#ff9f0a" # derived: caution amber
|
|
237
|
-
chart-5: "#ff453a" # derived: alert red
|
|
238
|
-
sidebar: "#000000" # derived: the nav overlays on pure black (corpus nav-bar-overlay canvas-night), separated by a hairline
|
|
239
|
-
sidebar-foreground: "#ffffff"
|
|
240
|
-
sidebar-primary: "#ffffff" # derived: active nav is white
|
|
241
|
-
sidebar-primary-foreground: "#000000"
|
|
242
|
-
sidebar-accent: "#1e1e26" # derived: selected-nav tint, matches accent
|
|
243
|
-
sidebar-accent-foreground: "#ffffff"
|
|
244
|
-
sidebar-border: "#3a3a3f"
|
|
245
|
-
sidebar-ring: "#ffffff"
|
|
246
|
-
spacing-scale: [4, 8, 12, 16, 18, 24, 32, 48]
|
|
247
|
-
radius-scale: [4, 8, 16, 32, 9999]
|
|
248
|
-
shadow-levels: [none, sm]
|
|
249
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
250
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
251
|
-
accent-count: 1
|
|
252
|
-
```
|
|
@@ -8,12 +8,10 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Spotify — the near-black operator reading
|
|
9
9
|
|
|
10
10
|
A content-first cocoon reduced to one idea: the UI recedes into near-black shadow so the work glows,
|
|
11
|
-
with a single functional green accent doing all the color. This entry is a deliberate operator
|
|
12
|
-
of Spotify — the dark immersion and the one-green discipline carried onto internal tools (a
|
|
13
|
-
library, a catalog console, a content-ops dashboard), with the album-art color source and the
|
|
14
|
-
pill geometry left behind.
|
|
15
|
-
surface set in the default slot (the corpus forbids light primary surfaces). Judgments away from the
|
|
16
|
-
corpus are annotated `# derived:`.
|
|
11
|
+
with a single functional green accent doing all the color. This entry is a deliberate operator
|
|
12
|
+
reading of Spotify — the dark immersion and the one-green discipline carried onto internal tools (a
|
|
13
|
+
media library, a catalog console, a content-ops dashboard), with the album-art color source and the
|
|
14
|
+
hero pill geometry left behind.
|
|
17
15
|
|
|
18
16
|
## 1 Visual Theme
|
|
19
17
|
|
|
@@ -166,83 +164,3 @@ The operator sweep is 375 / 768 / 1024 / 1440:
|
|
|
166
164
|
the 500px hero pills, uppercase wide-tracking on every button, the light-mode marketing pills, and the
|
|
167
165
|
literal music transport bar. What carries: the near-black palette, the one functional green, the
|
|
168
166
|
achromatic discipline, the compact dense type, the rounded/circular geometry, and shadow-carried depth.
|
|
169
|
-
|
|
170
|
-
```yaml design-primitives
|
|
171
|
-
radius: 8px # corpus: Spotify's comfortable/dialog radius; controls read rounded-tactile without the 500px hero pill (left behind)
|
|
172
|
-
shadow-intensity: 0.8 # corpus: depth is heavy shadow (0.3-0.5 alpha at 8-24px) — on near-black a hairline vanishes, so shadow lifts; the flat default is inverted here
|
|
173
|
-
border-weight: 1px
|
|
174
|
-
density-gap: 0.85 # derived: dark-compression — Spotify packs content densely, gaps and rows tighten
|
|
175
|
-
density-inset: 0.85 # derived: matches the dense tier's tighter component insets
|
|
176
|
-
font-sans: SpotifyMixUI, Inter, system-ui, sans-serif # SpotifyMixUI (Circular family); Inter is the corpus-adjacent substitute; the Title cut serves headings, same family
|
|
177
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # derived: corpus names no mono (a player has no IDs/logs); operator tables need a numeric voice
|
|
178
|
-
font-weight-normal: 400 # corpus: regular is 400
|
|
179
|
-
font-weight-strong: 700 # corpus: the bold/regular binary — most text is 700 or 400, 600 sparingly
|
|
180
|
-
heading-tracking: 0 # corpus: Spotify titles track normal; the wide 1.4-2px tracking rides the uppercase label voice, not headings
|
|
181
|
-
duration-unit: 50ms # derived: corpus silent on motion; functional operator base
|
|
182
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
183
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
184
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
185
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
186
|
-
contrast-boost: 1 # derived: the grid reads via surface-lightening and shadow, not boosted hairlines
|
|
187
|
-
icon-stroke: 2 # derived: Spotify's filled, bold glyph character → the full lucide stroke, not the refined 1.75
|
|
188
|
-
icon-size-base: 16px # derived: corpus silent; operator base control-icon size
|
|
189
|
-
sidebar-width-expanded: 256px # derived: a media-library rail wants room for playlist/entity names; a touch wider than the dense 248 default
|
|
190
|
-
sidebar-width-collapsed: 56px # derived: corpus silent; operator icon rail
|
|
191
|
-
topbar-height: 64px # derived: Spotify's top chrome is generous for the search pill and account
|
|
192
|
-
side-panel-width: 420px # derived: corpus's now-playing/queue panel; operator standard
|
|
193
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
194
|
-
modal-width-max: 560px # derived: corpus silent; confirmations only
|
|
195
|
-
form-max-width: 640px # derived: corpus silent; operator standard
|
|
196
|
-
table-row-height: 40px # derived: Spotify's album-thumbnail track rows run taller (~56px); a bare operator data row lands at 40px, dense archetypes step down
|
|
197
|
-
verbosity: compact # derived: content-first, scannable — Spotify trusts dense content over explanatory chrome
|
|
198
|
-
feedback: subtle
|
|
199
|
-
density-tier: dense # corpus: content density over breathing room, dark compression
|
|
200
|
-
product-traits: [media-library, catalog, dashboard, content-ops, admin]
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
```yaml lever-manifest
|
|
204
|
-
version: 1
|
|
205
|
-
fonts: { sans: "SpotifyMixUI, Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
206
|
-
color-tokens:
|
|
207
|
-
light: # categorically-dark brand — the default slot carries Spotify's near-black surface set; the corpus forbids light primary surfaces
|
|
208
|
-
background: "#121212"
|
|
209
|
-
foreground: "#ffffff"
|
|
210
|
-
card: "#181818"
|
|
211
|
-
card-foreground: "#ffffff"
|
|
212
|
-
muted: "#1f1f1f"
|
|
213
|
-
muted-foreground: "#b3b3b3"
|
|
214
|
-
border: "#2a2a2a" # derived: subtle grid/field hairline on near-black; corpus reserves #4d4d4d for control borders and prefers inset/surface-lightening over exposed lines
|
|
215
|
-
input: "#2a2a2a" # derived: field edge; input focus draws the ring
|
|
216
|
-
ring: "#1ed760" # derived: keyboard-first needs a visible ring; the accent green is the natural choice (corpus's #000000 focus edge fails the ring-visible floor)
|
|
217
|
-
primary: "#1ed760" # corpus: Spotify Green — the one accent
|
|
218
|
-
primary-foreground: "#000000" # corpus: black icon/text on green — the signature, never white on green
|
|
219
|
-
accent: "#282828" # derived: selection/hover lightens the surface a step (corpus hover = background lightening), a neutral lift, never a green wash
|
|
220
|
-
accent-foreground: "#ffffff"
|
|
221
|
-
destructive: "#f3727f" # corpus: negative red (--text-negative)
|
|
222
|
-
destructive-foreground: "#000000" # derived: black reads on the light coral-red; white on #f3727f fails contrast
|
|
223
|
-
success: "#1db954" # corpus: the deeper green-border variant, distinct from the bright #1ed760 accent so status green does not read as the primary CTA
|
|
224
|
-
warning: "#ffa42b" # corpus: warning orange (--text-warning)
|
|
225
|
-
popover: "#282828" # derived: elevated overlay/menu surface, a step above card, lifted by heavy shadow
|
|
226
|
-
popover-foreground: "#ffffff"
|
|
227
|
-
secondary: "#1f1f1f" # corpus: interactive/button surface (#1f1f1f)
|
|
228
|
-
secondary-foreground: "#ffffff"
|
|
229
|
-
chart-1: "#1ed760" # green
|
|
230
|
-
chart-2: "#539df5" # corpus: announcement blue
|
|
231
|
-
chart-3: "#ffa42b" # corpus: warning orange
|
|
232
|
-
chart-4: "#f3727f" # corpus: negative red
|
|
233
|
-
chart-5: "#b3b3b3" # derived: silver neutral for the fifth series (green + achromatic palette — no purple)
|
|
234
|
-
sidebar: "#121212" # corpus: navigation sidebar #121212
|
|
235
|
-
sidebar-foreground: "#ffffff"
|
|
236
|
-
sidebar-primary: "#1ed760"
|
|
237
|
-
sidebar-primary-foreground: "#000000"
|
|
238
|
-
sidebar-accent: "#282828"
|
|
239
|
-
sidebar-accent-foreground: "#ffffff"
|
|
240
|
-
sidebar-border: "#2a2a2a"
|
|
241
|
-
sidebar-ring: "#1ed760"
|
|
242
|
-
spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48]
|
|
243
|
-
radius-scale: [4, 6, 8, 12, 9999]
|
|
244
|
-
shadow-levels: [none, sm, md, lg]
|
|
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
|
-
```
|
|
@@ -8,11 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Stripe — operator reading
|
|
9
9
|
|
|
10
10
|
The operator translation of Stripe's financial-infrastructure brand — a marketing system built on a
|
|
11
|
-
gradient-mesh hero, thin Sohne display type at negative tracking, single-indigo pill CTAs, and
|
|
12
|
-
money figures. This entry keeps the operator-durable core — the indigo accent, the deep-navy
|
|
13
|
-
cool temperature, the soft blue-tinted lift, the thin editorial type voice, the
|
|
14
|
-
signal — and leaves the marketing scaffolding behind; §9 lists exactly what
|
|
15
|
-
|
|
11
|
+
gradient-mesh hero, thin Sohne display type at negative tracking, single-indigo pill CTAs, and
|
|
12
|
+
tabular money figures. This entry keeps the operator-durable core — the indigo accent, the deep-navy
|
|
13
|
+
ink, the cool temperature, the soft blue-tinted lift, the thin editorial type voice, the
|
|
14
|
+
tabular-figure money signal — and leaves the marketing scaffolding behind; §9 lists exactly what
|
|
15
|
+
carries and what stays.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -27,9 +27,8 @@ dashboard reads clean and moderate, neither terminal-dense nor consumer-spacious
|
|
|
27
27
|
|
|
28
28
|
## 2 Color Roles
|
|
29
29
|
|
|
30
|
-
Light values
|
|
31
|
-
|
|
32
|
-
charts, never chrome.
|
|
30
|
+
Light values. One chromatic accent — indigo is the only brand hue that carries meaning; status hues
|
|
31
|
+
speak only status; the gradient palette lives in charts, never chrome.
|
|
33
32
|
|
|
34
33
|
| Role | Value | Allowed where |
|
|
35
34
|
| --- | --- | --- |
|
|
@@ -159,83 +158,3 @@ product-UI mockups · the dark-app dashboard shell as the working surface.
|
|
|
159
158
|
workflow completes from the keyboard with the indigo `ring` outline always visible.
|
|
160
159
|
- Lift a card on the soft blue-tinted shadow, not a gray one; reach past a hairline only for a real
|
|
161
160
|
overlay. Leave the gradient mesh, the hero display, and the cream bands behind.
|
|
162
|
-
|
|
163
|
-
```yaml design-primitives
|
|
164
|
-
radius: 6px # derived: the input/sm corner is the operator-appropriate step; the pill CTA and 16px mockup chrome stay marketing-only
|
|
165
|
-
shadow-intensity: 0.5 # derived: brand lifts cards on a soft blue-tinted shadow (corpus ~0.08 alpha) — present but restrained
|
|
166
|
-
border-weight: 1px
|
|
167
|
-
density-gap: 1
|
|
168
|
-
density-inset: 1
|
|
169
|
-
font-sans: Inter, 'SF Pro Display', system-ui, -apple-system, sans-serif # derived: Sohne is proprietary; Inter with ss01 is the documented open substitute carrying the brand rhythm
|
|
170
|
-
font-mono: ui-monospace, SFMono-Regular, Menlo, monospace # derived: corpus ships no mono; a system mono keeps IDs/codes refined without a techy display face
|
|
171
|
-
font-weight-normal: 400 # derived: brand body is display-thin 300; dense operator body needs 400 to stay legible
|
|
172
|
-
font-weight-strong: 500 # derived: a thin brand — emphasis lifts to medium 500, never a heavy 600
|
|
173
|
-
heading-tracking: -0.02em # derived: the brand's negative-tracking display signature (-0.64px/32px), carried to operator heading sizes
|
|
174
|
-
duration-unit: 60ms # derived: corpus silent on motion; a slightly softer base suits the refined brand
|
|
175
|
-
duration-fast: 120ms # derived: corpus silent on motion; refined-airy operator timing
|
|
176
|
-
duration-normal: 180ms # derived: corpus silent on motion
|
|
177
|
-
duration-slow: 240ms # derived: corpus silent on motion
|
|
178
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on motion; standard operator ease
|
|
179
|
-
contrast-boost: 1
|
|
180
|
-
icon-stroke: 1.5 # derived: the thin type voice calls for a lighter icon stroke than lucide's 2
|
|
181
|
-
icon-size-base: 16px # derived: corpus has no icon spec; operator standard
|
|
182
|
-
sidebar-width-expanded: 240px # derived: corpus is marketing-only; Stripe-dashboard nav width
|
|
183
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
184
|
-
topbar-height: 56px # derived: a touch airier than a dense console, matching the brand posture
|
|
185
|
-
side-panel-width: 440px # derived: refined detail panels breathe a touch wider than the 420px norm
|
|
186
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
187
|
-
modal-width-max: 560px # derived: confirmation dialog cap
|
|
188
|
-
form-max-width: 640px # derived: single-column form cap
|
|
189
|
-
table-row-height: 44px # derived: dashboard rows breathe more than a terminal at standard density
|
|
190
|
-
verbosity: default
|
|
191
|
-
feedback: subtle # derived: Stripe's micro-feedback is polished and present, not austere silence
|
|
192
|
-
density-tier: standard # derived: the dashboard reads clean and moderate, neither terminal-dense nor consumer-spacious
|
|
193
|
-
product-traits: [payments, fintech, dashboard, b2b]
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
```yaml lever-manifest
|
|
197
|
-
version: 1
|
|
198
|
-
fonts: { sans: "Inter, 'SF Pro Display', system-ui, -apple-system, sans-serif", mono: "ui-monospace, SFMono-Regular, Menlo, monospace" }
|
|
199
|
-
color-tokens:
|
|
200
|
-
light:
|
|
201
|
-
background: "#ffffff"
|
|
202
|
-
foreground: "#0d253d"
|
|
203
|
-
card: "#ffffff"
|
|
204
|
-
card-foreground: "#0d253d"
|
|
205
|
-
muted: "#f6f9fc"
|
|
206
|
-
muted-foreground: "#64748d"
|
|
207
|
-
border: "#e3e8ee"
|
|
208
|
-
input: "#a8c3de" # brand's cooler input hairline (hairline-input)
|
|
209
|
-
ring: "#533afd"
|
|
210
|
-
primary: "#533afd"
|
|
211
|
-
primary-foreground: "#ffffff"
|
|
212
|
-
accent: "#edecfe" # derived: pale indigo wash for row/nav selection, lighter than the tag fill #b9b9f9
|
|
213
|
-
accent-foreground: "#4434d4"
|
|
214
|
-
destructive: "#ea2261" # derived: brand ships no semantic red; ruby is the nearest hue, reads as a raspberry error
|
|
215
|
-
destructive-foreground: "#ffffff"
|
|
216
|
-
success: "#1a8754" # derived: brand ships no green; a teal-leaning success green
|
|
217
|
-
warning: "#bb5504" # derived: brand ships no amber; a burnt-amber warning, warmer cousin of lemon
|
|
218
|
-
popover: "#ffffff"
|
|
219
|
-
popover-foreground: "#0d253d"
|
|
220
|
-
secondary: "#f6f9fc"
|
|
221
|
-
secondary-foreground: "#0d253d"
|
|
222
|
-
chart-1: "#533afd" # indigo primary
|
|
223
|
-
chart-2: "#003770" # derived: shadow-blue deep ocean, second categorical series
|
|
224
|
-
chart-3: "#1a8754" # derived: success green as third series
|
|
225
|
-
chart-4: "#bb5504" # derived: amber as fourth series
|
|
226
|
-
chart-5: "#ea2261" # ruby as fifth series
|
|
227
|
-
sidebar: "#f6f9fc" # derived: faint cool sidebar tint against the white canvas
|
|
228
|
-
sidebar-foreground: "#0d253d"
|
|
229
|
-
sidebar-primary: "#533afd"
|
|
230
|
-
sidebar-primary-foreground: "#ffffff"
|
|
231
|
-
sidebar-accent: "#edecfe" # derived: matches accent — pale indigo nav selection
|
|
232
|
-
sidebar-accent-foreground: "#4434d4"
|
|
233
|
-
sidebar-border: "#e3e8ee"
|
|
234
|
-
sidebar-ring: "#533afd"
|
|
235
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
236
|
-
radius-scale: [0, 4, 6, 8, 12, 9999]
|
|
237
|
-
shadow-levels: [none, sm, md]
|
|
238
|
-
motion: { durations: [120, 180, 240], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
239
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
240
|
-
accent-count: 1
|
|
241
|
-
```
|
|
@@ -31,8 +31,8 @@ achromatic grey (white through `#fafafa`, `#ededed`, `#dfdfdf` down to `#171717`
|
|
|
31
31
|
|
|
32
32
|
## 2 Color Roles
|
|
33
33
|
|
|
34
|
-
Light values first
|
|
35
|
-
|
|
34
|
+
Light values first. One accent — emerald `primary` is the only chromatic hue that carries meaning;
|
|
35
|
+
status hues speak only status.
|
|
36
36
|
|
|
37
37
|
| Role | Value | Allowed where |
|
|
38
38
|
| --- | --- | --- |
|
|
@@ -54,12 +54,10 @@ indigo, tomato, crimson) is chart-and-logo voltage and carries no operator role
|
|
|
54
54
|
|
|
55
55
|
## 3 Typography
|
|
56
56
|
|
|
57
|
-
One sans, one mono. `font-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
webfont) for IDs, codes, timestamps, log lines, and SQL; numeric columns render `tabular-nums`. The
|
|
62
|
-
marketing display scale (64/48px) stays behind — an operator surface tops out at a 28px page title.
|
|
57
|
+
One sans, one mono. `font-mono` is the brand's **system mono** stack (`ui-monospace`, Menlo / Monaco
|
|
58
|
+
/ Consolas — the corpus ships no proprietary mono webfont) for IDs, codes, timestamps, log lines,
|
|
59
|
+
and SQL; numeric columns render `tabular-nums`. The marketing display scale (64/48px) stays behind —
|
|
60
|
+
an operator surface tops out at a 28px page title.
|
|
63
61
|
|
|
64
62
|
| Step | Role | Size · line | Weight · tracking |
|
|
65
63
|
| --- | --- | --- | --- |
|
|
@@ -173,83 +171,3 @@ Directives the emitting agent follows verbatim:
|
|
|
173
171
|
- Keyboard-first: the emerald `ring` focus outline is always visible.
|
|
174
172
|
- Leave behind: the 64/48px hero display, the composited product-mockup float shadows, the dark
|
|
175
173
|
featured pricing tier, and the 64–96px section rhythm — marketing chrome, not operator chrome.
|
|
176
|
-
|
|
177
|
-
```yaml design-primitives
|
|
178
|
-
radius: 6px # corpus: signature button/input radius (rounded.sm 6px); scale offers 8/12/16 for cards and modals; pill is badges-only
|
|
179
|
-
shadow-intensity: 0.4 # derived: operator depth is hairline-first; the corpus's Level 2/3 float shadows are marketing-mockup only, so only true overlays lift
|
|
180
|
-
border-weight: 1px
|
|
181
|
-
density-gap: 1 # derived: standard tier — the clean/generous marketing read translated down to an honest operator density; data archetypes step denser
|
|
182
|
-
density-inset: 1 # derived: matches the standard density-gap for coherent component insets
|
|
183
|
-
font-sans: Inter, system-ui, sans-serif # corpus: brand face Circular is proprietary; Inter at weight 500 is the corpus's own shippable substitute
|
|
184
|
-
font-mono: ui-monospace, Menlo, Monaco, Consolas, monospace # corpus: brand ships no proprietary mono webfont — system mono for code, logs, SQL
|
|
185
|
-
font-weight-normal: 400 # corpus: body weight 400
|
|
186
|
-
font-weight-strong: 500 # corpus: display/emphasis weight 500, capped — the calibrated mid-weight breaks at 600+
|
|
187
|
-
heading-tracking: -0.02em # corpus: the signature negative display tracking (-1.92px at 64px scaling down to -0.42px at 28px) resolves to ~-0.02em at operator heading sizes
|
|
188
|
-
duration-unit: 50ms # derived: corpus documents no motion; functional operator base
|
|
189
|
-
duration-fast: 100ms # derived: corpus silent on motion; functional tempo
|
|
190
|
-
duration-normal: 150ms # derived: corpus silent on motion; standard functional tempo
|
|
191
|
-
duration-slow: 250ms # derived: corpus silent on motion; overlay/panel transition
|
|
192
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on motion; standard functional ease
|
|
193
|
-
contrast-boost: 1 # derived: the brand's fine greyscale hairline ladder is deliberately calibrated; hairlines carry the grid, no boost
|
|
194
|
-
icon-stroke: 1.75 # derived: corpus silent on icon stroke; precise/technical operator stroke one step under lucide's 2, matching the dev-tool voice
|
|
195
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator default
|
|
196
|
-
sidebar-width-expanded: 248px # derived: brand has no app sidebar (marketing top nav); standard operator rail (~brand dashboard width)
|
|
197
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
198
|
-
topbar-height: 56px # derived: from the corpus nav padding (16px/24px) resolving to ~56px
|
|
199
|
-
side-panel-width: 420px # derived: brand has no app side panel; standard operator detail panel
|
|
200
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
201
|
-
modal-width-max: 560px # derived: corpus modal chrome (xl 16px radius) gives no width; operator confirmation cap
|
|
202
|
-
form-max-width: 640px # derived: brand's ~1280px marketing container is marketing; operator form cap
|
|
203
|
-
table-row-height: 40px # derived: the brand's dense product tables and 8px/12px control padding read at a 40px operator row; dense archetypes step down via the surface catalog
|
|
204
|
-
verbosity: default
|
|
205
|
-
feedback: subtle # derived: the brand is quietly technical and calm — gentle present feedback, not austere silence
|
|
206
|
-
density-tier: standard # derived: the clean/generous marketing read down to an honest operator tier; data-heavy archetypes step denser, never the whole app
|
|
207
|
-
product-traits: [dev-tools, database, dashboard, admin]
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
```yaml lever-manifest
|
|
211
|
-
version: 1
|
|
212
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "ui-monospace, Menlo, Monaco, Consolas, monospace" }
|
|
213
|
-
color-tokens:
|
|
214
|
-
light:
|
|
215
|
-
background: "#ffffff"
|
|
216
|
-
foreground: "#171717"
|
|
217
|
-
card: "#ffffff"
|
|
218
|
-
card-foreground: "#171717"
|
|
219
|
-
muted: "#fafafa"
|
|
220
|
-
muted-foreground: "#707070"
|
|
221
|
-
border: "#dfdfdf"
|
|
222
|
-
input: "#dfdfdf"
|
|
223
|
-
ring: "#3ecf8e"
|
|
224
|
-
primary: "#3ecf8e"
|
|
225
|
-
primary-foreground: "#171717" # corpus: near-black on the green button, never white — the "lit" read is the brand's idiosyncratic choice
|
|
226
|
-
accent: "#ededed" # derived: hairline-cool grey lift for selection/hover; neutral, never green (green stays reserved for CTAs)
|
|
227
|
-
accent-foreground: "#171717"
|
|
228
|
-
destructive: "#dc2626" # derived: corpus's reds (tomato #ff2201, crimson #e2005a) are logo/chart-only and too loud for a destructive fill; clean operator red
|
|
229
|
-
destructive-foreground: "#ffffff"
|
|
230
|
-
success: "#24b47e" # derived: brand deep-emerald (the CTA pressed state) doubles as a status green distinct from the mint #3ecf8e CTA
|
|
231
|
-
warning: "#ffdb13" # corpus: the brand's documented status yellow (accent-yellow, "status indicator only")
|
|
232
|
-
popover: "#ffffff"
|
|
233
|
-
popover-foreground: "#171717"
|
|
234
|
-
secondary: "#f2f2f2" # derived: a clean step below canvas-soft for secondary-button/segmented fills
|
|
235
|
-
secondary-foreground: "#171717"
|
|
236
|
-
chart-1: "#3ecf8e" # corpus: emerald — primary data series
|
|
237
|
-
chart-2: "#644fc1" # corpus: accent-violet
|
|
238
|
-
chart-3: "#054cff" # corpus: accent-indigo
|
|
239
|
-
chart-4: "#c7007e" # corpus: accent-pink
|
|
240
|
-
chart-5: "#ffdb13" # corpus: accent-yellow
|
|
241
|
-
sidebar: "#fafafa" # derived: brand has no app sidebar; a faint canvas-soft tint separates the rail from the white content canvas
|
|
242
|
-
sidebar-foreground: "#171717"
|
|
243
|
-
sidebar-primary: "#3ecf8e" # derived: emerald active-nav indicator
|
|
244
|
-
sidebar-primary-foreground: "#171717" # derived: near-black on green, matching the button's on-primary read
|
|
245
|
-
sidebar-accent: "#ededed" # derived: neutral hover/selected nav lift, matching accent
|
|
246
|
-
sidebar-accent-foreground: "#171717"
|
|
247
|
-
sidebar-border: "#dfdfdf"
|
|
248
|
-
sidebar-ring: "#3ecf8e"
|
|
249
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
250
|
-
radius-scale: [0, 4, 6, 8, 12, 16, 9999]
|
|
251
|
-
shadow-levels: [none, sm, md]
|
|
252
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
253
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
254
|
-
accent-count: 1
|
|
255
|
-
```
|
|
@@ -8,12 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Superhuman — the warm-editorial operator reading
|
|
9
9
|
|
|
10
10
|
An operator translation of Superhuman's fast-productivity brand: a warm, quiet, editorial system
|
|
11
|
-
whose content body is white with off-black warm-grey ink, anchored by a single deep indigo-navy
|
|
12
|
-
The marketing surfaces are theatrical — a violet-sky atmospheric hero, hero-scale display
|
|
13
|
-
deep-teal closing band that resolves every page. None of that theatre belongs on a queue or
|
|
14
|
-
detail; what carries is the warmth (warm neutrals, sub-default type weights, off-black ink),
|
|
15
|
-
8px rounded-rectangle radius character, and the one-accent indigo discipline.
|
|
16
|
-
fully valued; every judgment away from the marketing brand is annotated `# derived:` where it lands.
|
|
11
|
+
whose content body is white with off-black warm-grey ink, anchored by a single deep indigo-navy
|
|
12
|
+
accent. The marketing surfaces are theatrical — a violet-sky atmospheric hero, hero-scale display
|
|
13
|
+
type, a deep-teal closing band that resolves every page. None of that theatre belongs on a queue or
|
|
14
|
+
a case detail; what carries is the warmth (warm neutrals, sub-default type weights, off-black ink),
|
|
15
|
+
the 8px rounded-rectangle radius character, and the one-accent indigo discipline.
|
|
17
16
|
|
|
18
17
|
## 1 Visual Theme
|
|
19
18
|
|
|
@@ -144,83 +143,3 @@ Directives the emitting agent follows verbatim:
|
|
|
144
143
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
|
|
145
144
|
- Every workflow completes from the keyboard; the indigo `ring` focus outline is always visible.
|
|
146
145
|
- Stay flat and warm — hairline and weight before shadow; never pure black, never a pill on a CTA.
|
|
147
|
-
|
|
148
|
-
```yaml design-primitives
|
|
149
|
-
radius: 8px # brand signature button radius (rounded rectangle, never pill)
|
|
150
|
-
shadow-intensity: 0.4 # derived: brand body is flat; shadow reserved for true overlays
|
|
151
|
-
border-weight: 1px
|
|
152
|
-
density-gap: 1
|
|
153
|
-
density-inset: 1
|
|
154
|
-
font-sans: Super Sans VF, Inter, system-ui, -apple-system, sans-serif # brand face; Inter Variable is the documented substitute at sub-default weights
|
|
155
|
-
font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # derived: marketing brand ships no mono; operator IDs/codes/timestamps need one
|
|
156
|
-
font-weight-normal: 460 # brand's sub-default body weight — the warmth signature (not 400)
|
|
157
|
-
font-weight-strong: 600 # brand's label weight (button-cap); clearer operator heading than the softer display 540
|
|
158
|
-
heading-tracking: -0.02em # brand's negative display tracking, proportioned to operator heading sizes
|
|
159
|
-
duration-unit: 50ms # derived: corpus documents no motion
|
|
160
|
-
duration-fast: 100ms # derived: functional operator motion
|
|
161
|
-
duration-normal: 150ms # derived
|
|
162
|
-
duration-slow: 250ms # derived
|
|
163
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived
|
|
164
|
-
contrast-boost: 1
|
|
165
|
-
icon-stroke: 1.5 # derived: refined editorial character → one step under lucide's 2
|
|
166
|
-
icon-size-base: 16px # derived
|
|
167
|
-
sidebar-width-expanded: 256px # derived: editorial roominess
|
|
168
|
-
sidebar-width-collapsed: 56px # derived
|
|
169
|
-
topbar-height: 56px # derived: from the brand nav padding 16px x 24px
|
|
170
|
-
side-panel-width: 440px # derived: roomier editorial detail panel
|
|
171
|
-
side-panel-width-rich: 640px # derived
|
|
172
|
-
modal-width-max: 560px # derived
|
|
173
|
-
form-max-width: 640px # derived: narrower than the ~960px marketing column, capped for form legibility
|
|
174
|
-
table-row-height: 44px # derived: editorial roominess + the corpus's 44px touch-target floor
|
|
175
|
-
verbosity: default # derived
|
|
176
|
-
feedback: subtle # derived: editorial calm
|
|
177
|
-
density-tier: standard # derived: editorial-spacious brand read as a comfortable operator standard; roominess carried by radius/rows/spacing, archetypes step denser
|
|
178
|
-
product-traits: [productivity, inbox, crm, queue]
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
```yaml lever-manifest
|
|
182
|
-
version: 1
|
|
183
|
-
fonts: { sans: "Super Sans VF, Inter, system-ui, -apple-system, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
184
|
-
color-tokens:
|
|
185
|
-
light:
|
|
186
|
-
background: "#ffffff"
|
|
187
|
-
foreground: "#292827"
|
|
188
|
-
card: "#ffffff"
|
|
189
|
-
card-foreground: "#292827"
|
|
190
|
-
muted: "#f4f2ed" # derived: warm off-white one step deeper than canvas-soft #fafaf8 for a perceptible hover/fill
|
|
191
|
-
muted-foreground: "#73706d"
|
|
192
|
-
border: "#e8e4dd"
|
|
193
|
-
input: "#e8e4dd"
|
|
194
|
-
ring: "#1b1938"
|
|
195
|
-
primary: "#1b1938"
|
|
196
|
-
primary-foreground: "#ffffff"
|
|
197
|
-
accent: "#edecf2" # derived: pale indigo tint of primary for selected/hover rows and nav
|
|
198
|
-
accent-foreground: "#1b1938"
|
|
199
|
-
destructive: "#c0362b" # derived: warm red; brand ships no error hue
|
|
200
|
-
destructive-foreground: "#ffffff"
|
|
201
|
-
success: "#157a52" # derived: status green tuned toward the brand's teal family
|
|
202
|
-
warning: "#b5791f" # derived: warm amber matching the warm-grey temperature
|
|
203
|
-
popover: "#ffffff"
|
|
204
|
-
popover-foreground: "#292827"
|
|
205
|
-
secondary: "#f4f2ed" # derived: aligned with muted warm off-white
|
|
206
|
-
secondary-foreground: "#292827"
|
|
207
|
-
chart-1: "#1b1938"
|
|
208
|
-
chart-2: "#155555" # derived: brand surface-teal-mid as a chart hue
|
|
209
|
-
chart-3: "#8b6fd6" # derived: saturated violet from the surface-violet-soft family
|
|
210
|
-
chart-4: "#b5791f" # derived: warm amber (warning family)
|
|
211
|
-
chart-5: "#157a52" # derived: green (success family)
|
|
212
|
-
sidebar: "#fafaf8" # derived: warm off-white (brand canvas-soft), one tint off the white canvas
|
|
213
|
-
sidebar-foreground: "#292827"
|
|
214
|
-
sidebar-primary: "#1b1938"
|
|
215
|
-
sidebar-primary-foreground: "#ffffff"
|
|
216
|
-
sidebar-accent: "#edecf2" # derived: matches the accent tint
|
|
217
|
-
sidebar-accent-foreground: "#1b1938"
|
|
218
|
-
sidebar-border: "#e8e4dd"
|
|
219
|
-
sidebar-ring: "#1b1938"
|
|
220
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
221
|
-
radius-scale: [4, 6, 8, 12, 16, 9999]
|
|
222
|
-
shadow-levels: [none, sm, md]
|
|
223
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
224
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
225
|
-
accent-count: 1
|
|
226
|
-
```
|