@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
|
@@ -120,118 +120,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
120
120
|
is `tabular-nums`; every ID / code / timestamp is `font-mono`; the `ring` is always visible.
|
|
121
121
|
- Leave marketing behind: hero display (40–80px), the -3px display tracking, product screenshots as the
|
|
122
122
|
page protagonist, 96px section rhythm, pill toggles, the inverse-white CTA.
|
|
123
|
-
|
|
124
|
-
```yaml design-primitives
|
|
125
|
-
radius: 8px # derived: Linear's button/input radius (rounded.md 8px) as the operator base; cards step to 12px
|
|
126
|
-
shadow-intensity: 0.3 # derived: Linear resists shadow; rank is surface ladder + hairline
|
|
127
|
-
border-weight: 1px
|
|
128
|
-
density-gap: 0.85 # derived: dense, technical read — tighter than a standard operator app
|
|
129
|
-
density-inset: 0.85 # derived: matches the dense gap
|
|
130
|
-
font-sans: Inter, SF Pro Display, -apple-system, system-ui, sans-serif # derived: Linear's custom sans is proprietary; corpus names Inter as the closest free substitute
|
|
131
|
-
font-mono: Geist Mono, JetBrains Mono, ui-monospace, monospace # derived: Linear Mono substitute per corpus
|
|
132
|
-
font-weight-normal: 400
|
|
133
|
-
font-weight-strong: 600
|
|
134
|
-
heading-tracking: -0.02em # derived: Linear's negative display tracking scaled to operator heading sizes (hero -3px stays behind)
|
|
135
|
-
duration-unit: 50ms # derived: no corpus motion; snappy operator base
|
|
136
|
-
duration-fast: 100ms # derived: Linear's UI reads notably fast
|
|
137
|
-
duration-normal: 150ms # derived: functional transition default
|
|
138
|
-
duration-slow: 200ms # derived: kept short — Linear favors crisp, not cinematic
|
|
139
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: no corpus easing; standard crisp ease
|
|
140
|
-
contrast-boost: 1 # derived: surface-ladder hierarchy needs no border boosting
|
|
141
|
-
icon-stroke: 1.5 # derived: Linear iconography is fine and precise; below lucide's default 2
|
|
142
|
-
icon-size-base: 16px
|
|
143
|
-
sidebar-width-expanded: 240px # derived: Linear product left-nav proportion
|
|
144
|
-
sidebar-width-collapsed: 56px # derived: icon-rail width
|
|
145
|
-
topbar-height: 56px # corpus top-nav height
|
|
146
|
-
side-panel-width: 440px # derived: Linear issue-detail panel proportion
|
|
147
|
-
side-panel-width-rich: 640px # derived: content-heavy detail
|
|
148
|
-
modal-width-max: 560px # derived: confirmation-dialog cap
|
|
149
|
-
form-max-width: 640px # derived: readable form column
|
|
150
|
-
table-row-height: 36px # derived: Linear's dense issue-row height
|
|
151
|
-
verbosity: compact # derived: Linear's chrome is intentionally minimal and terse
|
|
152
|
-
feedback: subtle # derived: understated, functional motion
|
|
153
|
-
density-tier: dense # derived: Linear reads dense like a technical tool, not a spacious consumer app
|
|
154
|
-
product-traits: [dev-tools, issue-tracker, project-management, dashboard]
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
```yaml lever-manifest
|
|
158
|
-
version: 1
|
|
159
|
-
fonts: { sans: "Inter, SF Pro Display, -apple-system, system-ui, sans-serif", mono: "Geist Mono, JetBrains Mono, ui-monospace, monospace" }
|
|
160
|
-
color-tokens:
|
|
161
|
-
light:
|
|
162
|
-
background: "#ffffff"
|
|
163
|
-
foreground: "#0d0e10" # derived: near-black ink, softened from corpus inverse-ink #000000 for operator legibility
|
|
164
|
-
card: "#ffffff"
|
|
165
|
-
card-foreground: "#0d0e10"
|
|
166
|
-
muted: "#f4f5f8" # derived: light cool-gray fill, inverse-surface family
|
|
167
|
-
muted-foreground: "#6b7280" # derived: mid cool gray for secondary text
|
|
168
|
-
border: "#e6e7eb" # derived: light hairline, cool gray
|
|
169
|
-
input: "#d9dbe0" # derived: slightly stronger light field edge
|
|
170
|
-
ring: "#5e69d1"
|
|
171
|
-
primary: "#5e6ad2"
|
|
172
|
-
primary-foreground: "#ffffff"
|
|
173
|
-
accent: "#eceefb" # derived: faint lavender selected-row wash (Linear's product behavior)
|
|
174
|
-
accent-foreground: "#5e6ad2"
|
|
175
|
-
destructive: "#eb5757" # derived: Linear product red (marketing avoids red; the product ships it)
|
|
176
|
-
destructive-foreground: "#ffffff"
|
|
177
|
-
success: "#27a644"
|
|
178
|
-
warning: "#f2994a" # derived: operator amber, Linear product palette family (corpus has no warning)
|
|
179
|
-
popover: "#ffffff"
|
|
180
|
-
popover-foreground: "#0d0e10"
|
|
181
|
-
secondary: "#f4f5f8"
|
|
182
|
-
secondary-foreground: "#0d0e10"
|
|
183
|
-
chart-1: "#5e6ad2" # derived: Linear product tag palette (lavender/blue/green/amber/red)
|
|
184
|
-
chart-2: "#4ea7fc"
|
|
185
|
-
chart-3: "#4cb782"
|
|
186
|
-
chart-4: "#f2994a"
|
|
187
|
-
chart-5: "#eb5757"
|
|
188
|
-
sidebar: "#fbfbfc" # derived: faint cool tint, distinct from the white canvas
|
|
189
|
-
sidebar-foreground: "#0d0e10"
|
|
190
|
-
sidebar-primary: "#5e6ad2"
|
|
191
|
-
sidebar-primary-foreground: "#ffffff"
|
|
192
|
-
sidebar-accent: "#eceefb"
|
|
193
|
-
sidebar-accent-foreground: "#5e6ad2"
|
|
194
|
-
sidebar-border: "#e6e7eb"
|
|
195
|
-
sidebar-ring: "#5e69d1"
|
|
196
|
-
dark:
|
|
197
|
-
background: "#010102"
|
|
198
|
-
foreground: "#f7f8f8"
|
|
199
|
-
card: "#0f1011"
|
|
200
|
-
card-foreground: "#f7f8f8"
|
|
201
|
-
muted: "#141516"
|
|
202
|
-
muted-foreground: "#8a8f98"
|
|
203
|
-
border: "#23252a"
|
|
204
|
-
input: "#34343a" # corpus hairline-strong — field edges read on near-black
|
|
205
|
-
ring: "#5e69d1"
|
|
206
|
-
primary: "#5e6ad2"
|
|
207
|
-
primary-foreground: "#ffffff"
|
|
208
|
-
accent: "#1c1d2b" # derived: faint lavender-tinted surface lift for selected rows
|
|
209
|
-
accent-foreground: "#f7f8f8"
|
|
210
|
-
destructive: "#eb5757" # derived: Linear product red
|
|
211
|
-
destructive-foreground: "#ffffff"
|
|
212
|
-
success: "#27a644"
|
|
213
|
-
warning: "#f2994a" # derived: operator amber (corpus has no warning)
|
|
214
|
-
popover: "#18191a" # corpus surface-3 — dropdowns and menus
|
|
215
|
-
popover-foreground: "#f7f8f8"
|
|
216
|
-
secondary: "#0f1011"
|
|
217
|
-
secondary-foreground: "#f7f8f8"
|
|
218
|
-
chart-1: "#5e6ad2" # derived: Linear product tag palette
|
|
219
|
-
chart-2: "#4ea7fc"
|
|
220
|
-
chart-3: "#4cb782"
|
|
221
|
-
chart-4: "#f2994a"
|
|
222
|
-
chart-5: "#eb5757"
|
|
223
|
-
sidebar: "#0f1011"
|
|
224
|
-
sidebar-foreground: "#d0d6e0" # corpus ink-muted for nav labels
|
|
225
|
-
sidebar-primary: "#5e6ad2"
|
|
226
|
-
sidebar-primary-foreground: "#ffffff"
|
|
227
|
-
sidebar-accent: "#1c1d2b"
|
|
228
|
-
sidebar-accent-foreground: "#f7f8f8"
|
|
229
|
-
sidebar-border: "#23252a"
|
|
230
|
-
sidebar-ring: "#5e69d1"
|
|
231
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
232
|
-
radius-scale: [0, 4, 6, 8, 12, 9999]
|
|
233
|
-
shadow-levels: [none, sm, md]
|
|
234
|
-
motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
235
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
236
|
-
accent-count: 1
|
|
237
|
-
```
|
|
@@ -8,11 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Lovable — warm parchment operator design
|
|
9
9
|
|
|
10
10
|
An operator reading of Lovable's warm, humanist brand. This entry keeps what carries onto a dense
|
|
11
|
-
internal tool — the cream-and-charcoal palette, the opacity-derived neutral ramp, the soft warm
|
|
12
|
-
character, the humanist type voice, the flat border-over-shadow depth — and leaves the
|
|
13
|
-
hero-scale display type, negative tracking at 48–60px, the gradient washes, the
|
|
14
|
-
section spacing. Light by default; a single achromatic accent (charcoal
|
|
15
|
-
|
|
11
|
+
internal tool — the cream-and-charcoal palette, the opacity-derived neutral ramp, the soft warm
|
|
12
|
+
radius character, the humanist type voice, the flat border-over-shadow depth — and leaves the
|
|
13
|
+
marketing behind: hero-scale display type, negative tracking at 48–60px, the gradient washes, the
|
|
14
|
+
96–208px editorial section spacing. Light by default; a single achromatic accent (charcoal
|
|
15
|
+
`primary`) does the emphasis work.
|
|
16
16
|
|
|
17
17
|
## 1 Visual Theme
|
|
18
18
|
|
|
@@ -138,83 +138,3 @@ What carries from Lovable onto an operator tool, and what stays behind:
|
|
|
138
138
|
- **Numbers**: every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
|
|
139
139
|
- **Keyboard-first**: every workflow completes from the keyboard; the `ring` focus outline is always visible (P6).
|
|
140
140
|
- **Left behind** (marketing only): hero type at 36–60px, display-scale negative tracking, the gradient washes, the 96–208px editorial spacing. Warmth comes from palette and type, not lavish gaps.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 6px
|
|
144
|
-
shadow-intensity: 0.3 # derived: brand is flat, borders over shadows; only the soft focus glow and button inset lift
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Camera Plain Variable, ui-sans-serif, system-ui, sans-serif
|
|
149
|
-
font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, monospace # derived: no brand mono documented; IBM Plex Mono's humanist warmth pairs with Camera Plain for IDs/codes/logs
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # derived: brand ceiling is 600 — never 700
|
|
152
|
-
heading-tracking: -0.015em # derived: Camera Plain compresses at scale; scaled down from the −0.9/−1.5px display tracking to a gentle operator-heading value
|
|
153
|
-
duration-unit: 50ms # derived: corpus silent on timing; operator default
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on timing; operator default
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent on timing; operator default
|
|
156
|
-
duration-slow: 250ms # derived: corpus silent on timing; operator default
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard ease suits the soft, diffused character
|
|
158
|
-
contrast-boost: 1 # derived: the soft warm #eceae4 hairline is intentional; boosting contrast would fight the brand
|
|
159
|
-
icon-stroke: 1.75 # derived: shadcn/lucide default 2 stepped to 1.75 for a refined humanist stroke
|
|
160
|
-
icon-size-base: 16px
|
|
161
|
-
sidebar-width-expanded: 248px # derived: source is a marketing site with no shell; operator default
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: operator default
|
|
163
|
-
topbar-height: 56px # derived: a touch taller than baseline to honor the comfortable, breathing rhythm
|
|
164
|
-
side-panel-width: 420px # derived: operator default
|
|
165
|
-
side-panel-width-rich: 640px # derived: operator default
|
|
166
|
-
modal-width-max: 560px # derived: operator default
|
|
167
|
-
form-max-width: 640px # derived: marketing max width ~1200px is hero-scale; operator forms cap tighter
|
|
168
|
-
table-row-height: 44px # derived: comfortable 8×16 button padding character carried to a slightly taller warm row
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle # derived: brand uses opacity-0.8 active and soft diffused focus — gentle, understated feedback
|
|
171
|
-
density-tier: standard # derived: a spacious marketing brand read at operator density; warmth carries via palette and type, not lavish gaps
|
|
172
|
-
product-traits: [dev-tools, ai-builder, no-code]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Camera Plain Variable, ui-sans-serif, system-ui, sans-serif", mono: "IBM Plex Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#f7f4ed"
|
|
181
|
-
foreground: "#1c1c1c"
|
|
182
|
-
card: "#f7f4ed"
|
|
183
|
-
card-foreground: "#1c1c1c"
|
|
184
|
-
muted: "#eeebe5" # derived: charcoal ~4% over cream (rgba(28,28,28,0.04)) resolved to an opaque warm tint
|
|
185
|
-
muted-foreground: "#5f5f5d"
|
|
186
|
-
border: "#eceae4"
|
|
187
|
-
input: "#eceae4"
|
|
188
|
-
ring: "#3b82f6"
|
|
189
|
-
primary: "#1c1c1c"
|
|
190
|
-
primary-foreground: "#fcfbf8"
|
|
191
|
-
accent: "#eeebe5" # derived: subtle warm hover/selection tint, same as muted
|
|
192
|
-
accent-foreground: "#1c1c1c"
|
|
193
|
-
destructive: "#c0392b" # derived: warm red tuned to the parchment palette (corpus silent on status hues)
|
|
194
|
-
destructive-foreground: "#fcfbf8"
|
|
195
|
-
success: "#4f7a3f" # derived: muted sage green, warm-leaning to fit the palette
|
|
196
|
-
warning: "#c08a2d" # derived: ochre amber, warm-leaning
|
|
197
|
-
popover: "#fcfbf8" # derived: off-white lifts overlays a half-step above the cream canvas
|
|
198
|
-
popover-foreground: "#1c1c1c"
|
|
199
|
-
secondary: "#eeebe5" # derived: the cream-surface button given a faint warm fill so it reads against the cream page
|
|
200
|
-
secondary-foreground: "#1c1c1c"
|
|
201
|
-
chart-1: "#1c1c1c" # derived: charcoal anchors the primary series
|
|
202
|
-
chart-2: "#c08a2d" # derived: warm categorical ramp from the status hues + ring blue, kept within the palette
|
|
203
|
-
chart-3: "#4f7a3f" # derived
|
|
204
|
-
chart-4: "#bc6c3a" # derived: terracotta/burnt-orange to extend the warm ramp
|
|
205
|
-
chart-5: "#3b82f6" # derived: the ring blue as a single cool anchor
|
|
206
|
-
sidebar: "#f2efe6" # derived: a faintly deeper cream than the canvas so the nav rail reads as chrome
|
|
207
|
-
sidebar-foreground: "#1c1c1c"
|
|
208
|
-
sidebar-primary: "#1c1c1c"
|
|
209
|
-
sidebar-primary-foreground: "#fcfbf8"
|
|
210
|
-
sidebar-accent: "#eeebe5"
|
|
211
|
-
sidebar-accent-foreground: "#1c1c1c"
|
|
212
|
-
sidebar-border: "#eceae4"
|
|
213
|
-
sidebar-ring: "#3b82f6"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 40, 56, 80] # 8px base; editorial 96–208 stay behind with the marketing
|
|
215
|
-
radius-scale: [4, 6, 8, 12, 16, 9999] # no hard 0 — the brand's soft-corner character starts at 4px
|
|
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,13 +7,12 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Meta — the stark-white, cobalt-accent operator reading
|
|
9
9
|
|
|
10
|
-
An operator translation of Meta's hardware-commerce design language (Quest, Ray-Ban Meta glasses).
|
|
11
|
-
merchandising theatre stays behind: the 64px Optimistic hero display, full-bleed photography,
|
|
12
|
-
dual-CTA hero, the black-pill marketing CTA, the 80/120px rhythm. What carries is the chassis
|
|
13
|
-
— a stark white canvas (`#ffffff`), a single saturated cobalt accent (`#0064e0`, Meta's
|
|
14
|
-
color promoted to the operator primary), a cool blue-gray neutral temperature,
|
|
15
|
-
geometric-humanist voice, moderate rounding, and Facebook-Blue focus.
|
|
16
|
-
judgments past the corpus are annotated `# derived:`, corpus values `# corpus:`.
|
|
10
|
+
An operator translation of Meta's hardware-commerce design language (Quest, Ray-Ban Meta glasses).
|
|
11
|
+
The merchandising theatre stays behind: the 64px Optimistic hero display, full-bleed photography,
|
|
12
|
+
the dual-CTA hero, the black-pill marketing CTA, the 80/120px rhythm. What carries is the chassis
|
|
13
|
+
underneath — a stark white canvas (`#ffffff`), a single saturated cobalt accent (`#0064e0`, Meta's
|
|
14
|
+
own buy-now color promoted to the operator primary), a cool blue-gray neutral temperature,
|
|
15
|
+
Optimistic VF's snug geometric-humanist voice, moderate rounding, and Facebook-Blue focus.
|
|
17
16
|
|
|
18
17
|
## 1 Visual Theme
|
|
19
18
|
|
|
@@ -65,7 +64,7 @@ is drawn snug — body carries a `-0.14` to `-0.16px` negative tracking, reflect
|
|
|
65
64
|
| caption | uppercase eyebrow | 12px / 1.33 | `font-weight-strong`, `+0.02em`, uppercase |
|
|
66
65
|
| code | IDs, codes, timestamps | 13px / 1.5 | `font-weight-normal` |
|
|
67
66
|
|
|
68
|
-
Body runs at 16px, not 14 — Meta's `body-md` reading pace; emphasise by weight, never size.
|
|
67
|
+
Body runs at 16px, not 14 — Meta's `body-md` reading pace; emphasise by weight, never size.
|
|
69
68
|
|
|
70
69
|
## 4 Component Stylings
|
|
71
70
|
|
|
@@ -138,83 +137,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
138
137
|
- Accent only the primary action in cobalt. If two things want the accent, one of them is not primary.
|
|
139
138
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; keep the type snug.
|
|
140
139
|
- Every workflow completes from the keyboard; the Facebook-Blue `ring` focus outline is always visible.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # corpus: form inputs / radio options at rounded.lg (8px); the 100px marketing pill stays behind (badges keep the pill)
|
|
144
|
-
shadow-intensity: 0.3 # corpus: only two elevated layers, at rgba ~0.2–0.3 alpha; chrome is otherwise flat
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: Optimistic VF, Montserrat, Inter, system-ui, sans-serif # corpus: Optimistic VF with Montserrat fallback; Inter added for dense-body legibility
|
|
149
|
-
font-mono: Roboto Mono, ui-monospace, SFMono-Regular, monospace # derived: corpus ships no mono; Roboto Mono is the geometric-neutral sibling to the Optimistic/Montserrat voice
|
|
150
|
-
font-weight-normal: 400 # corpus: body-md weight 400
|
|
151
|
-
font-weight-strong: 600 # derived: corpus display headings are 500 (too light to separate at operator sizes) and functional emphasis 700; 600 is the operator middle
|
|
152
|
-
heading-tracking: -0.01em # derived: corpus tracks headings at 0 but sets body snug (-0.14/-0.16px); Optimistic is drawn snug, so a slight -0.01em keeps that character at heading scale
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no base unit; operator standard
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent below its 150ms floor
|
|
155
|
-
duration-normal: 150ms # corpus: recommends 150–250ms ease-out for primary surface transitions
|
|
156
|
-
duration-slow: 300ms # corpus: recommends 300ms ease-in-out for accordion expand/collapse
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus recommends ease-out; the standard functional curve
|
|
158
|
-
contrast-boost: 1 # derived: standard density reads as a grid without boosted hairlines
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus uses line icons (20–32px); operator-standard stroke
|
|
160
|
-
icon-size-base: 16px # derived: corpus feature icons run 20–32px; the base UI glyph tightens to 16px
|
|
161
|
-
sidebar-width-expanded: 248px # derived: corpus has no app shell; operator standard rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: corpus has no app shell; operator standard icon rail
|
|
163
|
-
topbar-height: 56px # derived: corpus top nav ~64px is marketing-generous; operator tightens to 56px
|
|
164
|
-
side-panel-width: 420px # derived: corpus PDP purchase rail caps ~380px; nudged to 420 for operator detail
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
166
|
-
modal-width-max: 560px # derived: corpus has no shell; confirmations only
|
|
167
|
-
form-max-width: 640px # derived: corpus configurator column; a comfortable form cap
|
|
168
|
-
table-row-height: 44px # derived: corpus has no tables; the 44px input / touch-target height sets a comfortable row
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard # derived: corpus marketing breathes (80/120px) but the commerce configurator runs dense; the operator reading takes the panel's standard tier
|
|
172
|
-
product-traits: [catalog, commerce, dashboard, admin]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Optimistic VF, Montserrat, Inter, system-ui, sans-serif", mono: "Roboto Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#0a1317"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#0a1317"
|
|
184
|
-
muted: "#f1f4f7"
|
|
185
|
-
muted-foreground: "#5d6c7b"
|
|
186
|
-
border: "#dee3e9"
|
|
187
|
-
input: "#ced0d4"
|
|
188
|
-
ring: "#1876f2"
|
|
189
|
-
primary: "#0064e0"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#e6f0fc" # derived: light tint of cobalt #0064e0 (corpus tints callouts with primary-soft at 15% alpha)
|
|
192
|
-
accent-foreground: "#0064e0"
|
|
193
|
-
destructive: "#e41e3f"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#31a24c"
|
|
196
|
-
warning: "#f2a918" # derived: corpus splits attention #f2a918 and promo yellow #f7b928; the operator warning takes the legible amber (promo yellow fails as status text on white)
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#0a1317"
|
|
199
|
-
secondary: "#e9edf2" # derived: one step below surface-soft so secondary buttons separate from the muted hover tint
|
|
200
|
-
secondary-foreground: "#0a1317"
|
|
201
|
-
chart-1: "#0064e0" # cobalt primary
|
|
202
|
-
chart-2: "#0091ff" # primary-soft sky
|
|
203
|
-
chart-3: "#a121ce" # Oculus purple
|
|
204
|
-
chart-4: "#31a24c" # success green
|
|
205
|
-
chart-5: "#f2a918" # attention amber
|
|
206
|
-
sidebar: "#f7f9fb" # derived: a faint cool tint below the white canvas; Meta's nav is white with a hairline, kept faintly recessive for operator chrome
|
|
207
|
-
sidebar-foreground: "#0a1317"
|
|
208
|
-
sidebar-primary: "#0064e0"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#e6f0fc"
|
|
211
|
-
sidebar-accent-foreground: "#0064e0"
|
|
212
|
-
sidebar-border: "#dee3e9"
|
|
213
|
-
sidebar-ring: "#1876f2"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 150, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -9,10 +9,9 @@ sourced: 2026-07-04
|
|
|
9
9
|
|
|
10
10
|
The design a project wears when it names or resembles MiniMax and the user confirms the match. A
|
|
11
11
|
*deliberate* operator reading, not a marketing transcription: MiniMax's public surfaces are stark
|
|
12
|
-
monochrome broken open by vibrant gradient product cards and an oversized 80px hero display. An
|
|
13
|
-
surface keeps the monochrome bones, the near-black signature action, and the DM Sans voice
|
|
14
|
-
the gradients, the pill-everything CTA, and the hero-scale type behind.
|
|
15
|
-
annotated `# derived:`.
|
|
12
|
+
monochrome broken open by vibrant gradient product cards and an oversized 80px hero display. An
|
|
13
|
+
operator surface keeps the monochrome bones, the near-black signature action, and the DM Sans voice
|
|
14
|
+
— and leaves the gradients, the pill-everything CTA, and the hero-scale type behind.
|
|
16
15
|
|
|
17
16
|
## 1 Visual Theme
|
|
18
17
|
|
|
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
137
|
- Accent only the primary action; the one chromatic accent (blue) is for focus and links.
|
|
139
138
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4). Keyboard
|
|
140
139
|
completes every workflow; the `ring` focus outline is always visible (P6). Stay flat — hairline before shadow.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # derived: brand rectangular controls (inputs/data-tables) run 6-8px; 8px is the operator base (the marketing 9999 pill stays behind)
|
|
144
|
-
shadow-intensity: 0.4 # derived: brand runs predominantly flat with subtle rgba(0,0,0,0.04-0.08) shadows; shadow only lifts true overlays
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: DM Sans, Inter, system-ui, sans-serif
|
|
149
|
-
font-mono: ui-monospace, SFMono-Regular, Menlo, monospace # derived: brand ships no dedicated mono, uses system monospace for code
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600
|
|
152
|
-
heading-tracking: -0.01em # derived: brand display tracks -2px to -0.5px; scaled to operator heading sizes that becomes a mild negative to keep the tight voice
|
|
153
|
-
duration-unit: 50ms # derived: motion not extracted; corpus recommends 150-200ms ease
|
|
154
|
-
duration-fast: 100ms # derived: motion not extracted
|
|
155
|
-
duration-normal: 150ms # derived: corpus recommends 150-200ms ease
|
|
156
|
-
duration-slow: 200ms # derived: corpus recommends 150-200ms ease
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard ease; corpus specifies only "ease"
|
|
158
|
-
contrast-boost: 1
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus does not state stroke; refined operator stroke under lucide's 2
|
|
160
|
-
icon-size-base: 16px
|
|
161
|
-
sidebar-width-expanded: 240px # derived: corpus docs rail ~220px; operator nav widened slightly for icon+label
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard icon rail; corpus silent
|
|
163
|
-
topbar-height: 56px # brand platform/docs nav ~56px (denser than the 64px marketing bar)
|
|
164
|
-
side-panel-width: 420px # derived: no side-panel pattern in corpus (marketing/docs only); operator default
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
166
|
-
modal-width-max: 560px # derived: corpus defines a modal elevation level but no width
|
|
167
|
-
form-max-width: 640px # derived: corpus docs prose ~720px; operator form column tightened
|
|
168
|
-
table-row-height: 44px # derived: corpus packs table rows to 16px padding around 14px body -> ~44px
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard
|
|
172
|
-
product-traits: [ai-platform, dashboard, dev-tools, admin]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "DM Sans, Inter, system-ui, sans-serif", mono: "ui-monospace, SFMono-Regular, Menlo, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#0a0a0a"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#0a0a0a"
|
|
184
|
-
muted: "#f7f8fa"
|
|
185
|
-
muted-foreground: "#5f5f5f"
|
|
186
|
-
border: "#e5e7eb"
|
|
187
|
-
input: "#e5e7eb"
|
|
188
|
-
ring: "#1d4ed8"
|
|
189
|
-
primary: "#0a0a0a"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#f2f3f5"
|
|
192
|
-
accent-foreground: "#0a0a0a"
|
|
193
|
-
destructive: "#d45656"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#1ba673"
|
|
196
|
-
warning: "#d97706"
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#0a0a0a"
|
|
199
|
-
secondary: "#f7f8fa"
|
|
200
|
-
secondary-foreground: "#0a0a0a"
|
|
201
|
-
chart-1: "#1456f0"
|
|
202
|
-
chart-2: "#ff5530"
|
|
203
|
-
chart-3: "#a855f7"
|
|
204
|
-
chart-4: "#ea5ec1"
|
|
205
|
-
chart-5: "#3daeff"
|
|
206
|
-
sidebar: "#f7f8fa"
|
|
207
|
-
sidebar-foreground: "#0a0a0a"
|
|
208
|
-
sidebar-primary: "#0a0a0a"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#f2f3f5"
|
|
211
|
-
sidebar-accent-foreground: "#0a0a0a"
|
|
212
|
-
sidebar-border: "#e5e7eb"
|
|
213
|
-
sidebar-ring: "#1d4ed8"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 12, 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
|
-
```
|
|
@@ -17,8 +17,7 @@ gradient hero bands, the 72px hero display, the full-pill buttons, the bright te
|
|
|
17
17
|
and the 96/120px marketing section rhythm.
|
|
18
18
|
|
|
19
19
|
**Light holds cleanly.** The white canvas (`#ffffff`) *is* the brand's documentation surface — no
|
|
20
|
-
categorically-dark exception; the light-default floor stands as-is.
|
|
21
|
-
brand are annotated `# derived:` where the corpus is silent.
|
|
20
|
+
categorically-dark exception; the light-default floor stands as-is.
|
|
22
21
|
|
|
23
22
|
## 1 Visual Theme
|
|
24
23
|
|
|
@@ -32,9 +31,9 @@ on its black-pill button, spent here as text. Density is `standard` — layout-d
|
|
|
32
31
|
|
|
33
32
|
## 2 Color Roles
|
|
34
33
|
|
|
35
|
-
Light values
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
Light values. One accent — mint `primary` is the only chromatic hue that carries UI meaning;
|
|
35
|
+
tag-blue, warn-amber, and testimonial-orange are chart/status graces (see §7), status hues speak
|
|
36
|
+
only status.
|
|
38
37
|
|
|
39
38
|
| Role | Value | Allowed where |
|
|
40
39
|
| --- | --- | --- |
|
|
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
137
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp / type-signature is `font-mono` (Geist Mono). Keep long-form docs prose at 16px/1.5; operator chrome at 14px.
|
|
139
138
|
- Depth is hairlines and surface tints, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work; keyboard-first, the mint `ring` focus outline always visible.
|
|
140
139
|
- Leave behind: the sky/teal gradient hero bands, the 72px hero display, the full-pill buttons, the testimonial-orange card, and the 96/120px section rhythm — marketing presentation, not operator chrome.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # corpus: inputs/search-pill/code-blocks/secondary-cards at rounded.md (8px); cards step to 12px (lg); the full-pill button is marketing — pill is badges/tabs only
|
|
144
|
-
shadow-intensity: 0.4 # derived: docs surfaces run flat (level-0 hairline); the 0.08–0.12 alpha feature/mockup shadows are marketing — only true overlays lift
|
|
145
|
-
border-weight: 1px # corpus: 1px hairlines (#e5e5e5) carry dividers and card edges
|
|
146
|
-
density-gap: 1 # derived: docs are layout-dense but hold 16px/1.5 prose; an honest standard operator tier
|
|
147
|
-
density-inset: 1 # derived: matches density-gap for coherent component insets
|
|
148
|
-
font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif # corpus: Inter across every UI surface, with the documented system fallbacks
|
|
149
|
-
font-mono: Geist Mono, "SF Mono", Menlo, Consolas, monospace # corpus: Geist Mono on every code surface, documented fallbacks
|
|
150
|
-
font-weight-normal: 400 # corpus: body and prose at 400
|
|
151
|
-
font-weight-strong: 600 # corpus: every heading at 600 (button labels/active nav at 500)
|
|
152
|
-
heading-tracking: -0.01em # corpus: negative tracking is display-scale (-2px→-0.5px), relaxing to 0 by 28px; a faint -0.01em keeps operator titles crisp without the hero tightness
|
|
153
|
-
duration-unit: 50ms # derived: corpus notes motion is unextracted (known gap); operator-standard functional base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on curve; functional tempo
|
|
155
|
-
duration-normal: 150ms # corpus: recommends 150–200ms ease for state transitions; standard functional tempo
|
|
156
|
-
duration-slow: 250ms # derived: the corpus 150–200ms recommendation extended for overlay/panel transitions
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on curve; standard functional ease
|
|
158
|
-
contrast-boost: 1 # derived: the light-gray hairlines are intentionally quiet; no boost
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus near-silent on icons (16px chevrons); refined operator stroke one step under lucide's 2
|
|
160
|
-
icon-size-base: 16px # corpus: doc/FAQ chevrons render at 16px
|
|
161
|
-
sidebar-width-expanded: 240px # corpus: documentation left sidebar nav ~240px
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
163
|
-
topbar-height: 56px # corpus: documentation top nav ~56px (the app-like surface; marketing nav is 64px)
|
|
164
|
-
side-panel-width: 420px # derived: corpus TOC (~200px) is thin; standard operator detail panel
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail, near the corpus prose column (~720px)
|
|
166
|
-
modal-width-max: 560px # derived: operator confirmation cap
|
|
167
|
-
form-max-width: 640px # derived: corpus doc prose caps ~720px; operator single-column form caps at 640
|
|
168
|
-
table-row-height: 40px # derived: corpus packs rows to 16px vertical padding on 14px cells; standard operator 40px
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle # derived: corpus is quiet (no-hover policy, unextracted motion); gentle present feedback, not austere silence
|
|
171
|
-
density-tier: standard # derived: docs are layout-dense but insist on readable 16px/1.5 prose; an honest standard operator tier
|
|
172
|
-
product-traits: [dev-tools, documentation, dashboard, saas]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif", mono: "Geist Mono, \"SF Mono\", Menlo, Consolas, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#0a0a0a"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#0a0a0a"
|
|
184
|
-
muted: "#f7f7f7"
|
|
185
|
-
muted-foreground: "#5a5a5c" # corpus steel — labels, table headers, secondary text
|
|
186
|
-
border: "#e5e5e5"
|
|
187
|
-
input: "#e5e5e5"
|
|
188
|
-
ring: "#00d4a4"
|
|
189
|
-
primary: "#00d4a4"
|
|
190
|
-
primary-foreground: "#0a0a0a" # corpus: the mint button carries ink text, not white
|
|
191
|
-
accent: "#ededed" # derived: corpus hairline-soft as the neutral selection lift; mint stays the indicator, never the fill
|
|
192
|
-
accent-foreground: "#0a0a0a"
|
|
193
|
-
destructive: "#d45656" # corpus brand-error
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#1ba673" # corpus brand-annotate green — distinct from the teal-green primary so status reads green, not mint
|
|
196
|
-
warning: "#c37d0d" # corpus brand-warn amber
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#0a0a0a"
|
|
199
|
-
secondary: "#f7f7f7" # corpus surface — secondary-button and search-pill fill
|
|
200
|
-
secondary-foreground: "#0a0a0a"
|
|
201
|
-
chart-1: "#00d4a4" # mint — primary series
|
|
202
|
-
chart-2: "#3772cf" # corpus brand-tag blue
|
|
203
|
-
chart-3: "#c37d0d" # corpus brand-warn amber
|
|
204
|
-
chart-4: "#f55a3c" # corpus testimonial-orange — chart-only here, off general chrome
|
|
205
|
-
chart-5: "#7c5cff" # derived: violet for a fifth categorical hue; corpus has no fifth series
|
|
206
|
-
sidebar: "#fafafa" # derived: corpus surface-soft — a faint chrome step below the white canvas so the rail reads distinct
|
|
207
|
-
sidebar-foreground: "#0a0a0a" # derived: base nav ink; resting items dim to steel, active brighten to ink (corpus)
|
|
208
|
-
sidebar-primary: "#00d4a4" # corpus: mint active-nav indicator
|
|
209
|
-
sidebar-primary-foreground: "#0a0a0a"
|
|
210
|
-
sidebar-accent: "#ededed" # derived: neutral active/hover lift over the #fafafa rail (corpus active-nav bg is neutral gray)
|
|
211
|
-
sidebar-accent-foreground: "#0a0a0a"
|
|
212
|
-
sidebar-border: "#e5e5e5"
|
|
213
|
-
sidebar-ring: "#00d4a4"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 12, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|