@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,12 +7,11 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Apple — the reverent, photography-first operator reading
|
|
9
9
|
|
|
10
|
-
An operator translation of Apple's web design language. The marketing theatre stays behind:
|
|
11
|
-
product tiles, hero display type, and photography carrying the one drop-shadow in the
|
|
12
|
-
carries is the quiet chassis underneath — a parchment canvas with white cards that lift
|
|
13
|
-
change rather than shadow, near-black ink that reads photographic, a single Action Blue
|
|
14
|
-
every "click me" job, SF Pro's tight-tracked voice, and the 17px reading pace.
|
|
15
|
-
fully valued; every judgment past what the corpus states is annotated `# derived:` where it lands.
|
|
10
|
+
An operator translation of Apple's web design language. The marketing theatre stays behind:
|
|
11
|
+
full-bleed product tiles, hero display type, and photography carrying the one drop-shadow in the
|
|
12
|
+
system. What carries is the quiet chassis underneath — a parchment canvas with white cards that lift
|
|
13
|
+
by surface change rather than shadow, near-black ink that reads photographic, a single Action Blue
|
|
14
|
+
accent doing every "click me" job, SF Pro's tight-tracked voice, and the 17px reading pace.
|
|
16
15
|
|
|
17
16
|
## 1 Visual Theme
|
|
18
17
|
|
|
@@ -138,83 +137,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
138
137
|
- Accent only the primary action; if two things want Action Blue, one of them is not primary.
|
|
139
138
|
- Keep the sidebar recessive and near-black, with Sky Link Blue actives; the light canvas does the talking.
|
|
140
139
|
- Every workflow completes from the keyboard; the 2px Focus Blue `ring` is always visible.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 11px # derived: Apple's Pearl-capsule md (11px) as the base control radius; the pill 9999 stays in-scale for a lone hero CTA
|
|
144
|
-
shadow-intensity: 0.3 # derived: Apple puts zero shadow on chrome (its one shadow is product imagery); overlays earn only the faintest lift
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1.15 # derived: Apple's density is categorically low; the spacious tier widens the spacing base
|
|
147
|
-
density-inset: 1.15 # derived: matches the spacious tier — every control gets generous internal air
|
|
148
|
-
font-sans: -apple-system, system-ui, SF Pro Text, Inter, sans-serif
|
|
149
|
-
font-mono: ui-monospace, SF Mono, SFMono-Regular, Menlo, monospace # derived: Apple's system mono is SF Mono; ui-monospace resolves to it on Apple platforms
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # Apple headlines are weight 600, not 700
|
|
152
|
-
heading-tracking: -0.02em # derived: Apple's negative display tracking (-0.28 to -0.374px) plus the Inter substitution nudge, scaled to operator heading sizes
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no durations; standard operator base
|
|
154
|
-
duration-fast: 100ms # derived: the scale(0.95) press reads snappy
|
|
155
|
-
duration-normal: 200ms # derived: Apple transitions read smooth, a touch more languid than a dense tool
|
|
156
|
-
duration-slow: 300ms # derived: editorial ease-out for larger surface changes
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus documents only the scale(0.95) press, no easing curves; functional smooth ease
|
|
158
|
-
contrast-boost: 1 # derived: Apple's spacious surfaces read as a grid without boosted hairlines
|
|
159
|
-
icon-stroke: 1.5 # derived: Apple's SF Symbols read thin and refined; one step under lucide's 2
|
|
160
|
-
icon-size-base: 18px # derived: Apple's airy scale nudges glyphs up to sit with 17px body
|
|
161
|
-
sidebar-width-expanded: 264px # derived: Apple's airy posture widens the nav rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard icon-rail width
|
|
163
|
-
topbar-height: 52px # derived: Apple's sub-nav height — a thin, recessive operator topbar
|
|
164
|
-
side-panel-width: 440px # derived: a step wider than the operator standard for Apple's airier detail read
|
|
165
|
-
side-panel-width-rich: 680px # derived: content-heavy detail, kept airy
|
|
166
|
-
modal-width-max: 580px # derived: Apple prefers panels to modals; the cap stays generous for the rare confirmation
|
|
167
|
-
form-max-width: 640px # derived: Apple's generous 17px reading pace caps forms comfortably
|
|
168
|
-
table-row-height: 48px # derived: the spacious tier; also clears Apple's 44px minimum touch target
|
|
169
|
-
verbosity: compact # derived: Apple's copy is terse and its chrome recedes
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: spacious
|
|
172
|
-
product-traits: [catalog, dashboard, admin]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "-apple-system, system-ui, 'SF Pro Text', Inter, sans-serif", mono: "ui-monospace, 'SF Mono', SFMono-Regular, Menlo, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#f5f5f7"
|
|
181
|
-
foreground: "#1d1d1f"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#1d1d1f"
|
|
184
|
-
muted: "#f0f0f0"
|
|
185
|
-
muted-foreground: "#6e6e73"
|
|
186
|
-
border: "#e0e0e0"
|
|
187
|
-
input: "#d2d2d7"
|
|
188
|
-
ring: "#0071e3"
|
|
189
|
-
primary: "#0066cc"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#e8f1fb"
|
|
192
|
-
accent-foreground: "#0066cc"
|
|
193
|
-
destructive: "#d70015"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#248a3d"
|
|
196
|
-
warning: "#b25000"
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#1d1d1f"
|
|
199
|
-
secondary: "#e8e8ea"
|
|
200
|
-
secondary-foreground: "#1d1d1f"
|
|
201
|
-
chart-1: "#0066cc"
|
|
202
|
-
chart-2: "#2997ff"
|
|
203
|
-
chart-3: "#5856d6"
|
|
204
|
-
chart-4: "#248a3d"
|
|
205
|
-
chart-5: "#b25000"
|
|
206
|
-
sidebar: "#1d1d1f"
|
|
207
|
-
sidebar-foreground: "#ffffff"
|
|
208
|
-
sidebar-primary: "#2997ff"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#2a2a2c"
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#333333"
|
|
213
|
-
sidebar-ring: "#2997ff"
|
|
214
|
-
spacing-scale: [4, 8, 12, 17, 24, 32, 48, 80]
|
|
215
|
-
radius-scale: [0, 5, 8, 11, 18, 9999]
|
|
216
|
-
shadow-levels: [none, sm, md]
|
|
217
|
-
motion: { durations: [100, 200, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
218
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
219
|
-
accent-count: 1
|
|
220
|
-
```
|
|
@@ -7,13 +7,10 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Binance — the operator reading
|
|
9
9
|
|
|
10
|
-
A confident financial-platform look reduced to one idea: a single electric accent doing all the
|
|
11
|
-
voltage against a calm neutral field. This entry is a deliberate operator reading of Binance —
|
|
12
|
-
trading-terminal density and the black-on-yellow signature carried onto internal tools (a
|
|
13
|
-
console, a queue, a settlement dashboard), with the marketing skin left behind.
|
|
14
|
-
light theme (fully valued, no `hint:`); the dark console — Binance's more iconic, categorically dark
|
|
15
|
-
read — is recorded in Color Roles for the surface that opts into it. Judgments away from the marketing
|
|
16
|
-
surfaces are annotated `# derived:`.
|
|
10
|
+
A confident financial-platform look reduced to one idea: a single electric accent doing all the
|
|
11
|
+
brand voltage against a calm neutral field. This entry is a deliberate operator reading of Binance —
|
|
12
|
+
the trading-terminal density and the black-on-yellow signature carried onto internal tools (a
|
|
13
|
+
markets console, a queue, a settlement dashboard), with the marketing skin left behind.
|
|
17
14
|
|
|
18
15
|
## 1 Visual Theme
|
|
19
16
|
|
|
@@ -141,83 +138,3 @@ The operator sweep is 375 / 768 / 1024 / 1440:
|
|
|
141
138
|
- Leave the marketing skin behind: 64/48px hero display, yellow→dark gradients, pill hero CTAs,
|
|
142
139
|
coin-stack illustrations, the light-footer inversion, 80px editorial bands. What carries: the
|
|
143
140
|
palette, its cool temperature, the tight radius character, the tabular number voice, and flat depth.
|
|
144
|
-
|
|
145
|
-
```yaml design-primitives
|
|
146
|
-
radius: 6px
|
|
147
|
-
shadow-intensity: 0.3 # derived: flat color-block brand; one soft shadow only on true overlays
|
|
148
|
-
border-weight: 1px
|
|
149
|
-
density-gap: 0.9 # derived: markets-terminal density — rows pack but stay legible
|
|
150
|
-
density-inset: 0.9 # derived: matches the dense tier's tighter component insets
|
|
151
|
-
font-sans: BinanceNova, Inter, system-ui, sans-serif # BinanceNova display/body; Inter is the corpus-named substitute
|
|
152
|
-
font-mono: BinancePlex, JetBrains Mono, ui-monospace, monospace # BinancePlex number voice; JetBrains Mono substitute
|
|
153
|
-
font-weight-normal: 400
|
|
154
|
-
font-weight-strong: 600 # derived: operator strong weight; the 700 hero display stays behind
|
|
155
|
-
heading-tracking: 0 # derived: Binance's title tier (24/20/16px) tracks 0; the negative tracking lives on hero display, left behind
|
|
156
|
-
duration-unit: 50ms # derived: motion out of scope in corpus; functional operator default
|
|
157
|
-
duration-fast: 100ms # derived
|
|
158
|
-
duration-normal: 150ms # derived
|
|
159
|
-
duration-slow: 250ms # derived
|
|
160
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard functional ease; timings undocumented
|
|
161
|
-
contrast-boost: 1 # derived: liberal hairlines + the surface ladder already carry the grid
|
|
162
|
-
icon-stroke: 1.75 # derived: corpus icons are coin glyphs; operator line-icon stroke one step under lucide's 2
|
|
163
|
-
icon-size-base: 16px # derived: base control icon (corpus coin icons are 24/32)
|
|
164
|
-
sidebar-width-expanded: 248px # derived: no app sidebar in corpus (marketing top-nav); operator standard
|
|
165
|
-
sidebar-width-collapsed: 56px # derived
|
|
166
|
-
topbar-height: 64px # Binance's native top-nav height
|
|
167
|
-
side-panel-width: 420px # derived
|
|
168
|
-
side-panel-width-rich: 640px # derived
|
|
169
|
-
modal-width-max: 560px # derived
|
|
170
|
-
form-max-width: 640px # derived
|
|
171
|
-
table-row-height: 40px # markets-row 12px vertical padding + number line ≈ 40px; dense archetypes step down via the surface catalog
|
|
172
|
-
verbosity: compact # derived: trading platform trusts dense numbers over explanatory chrome
|
|
173
|
-
feedback: subtle
|
|
174
|
-
density-tier: dense
|
|
175
|
-
product-traits: [trading-desk, dashboard, fintech, payments, crypto-exchange]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
```yaml lever-manifest
|
|
179
|
-
version: 1
|
|
180
|
-
fonts: { sans: "BinanceNova, Inter, system-ui, sans-serif", mono: "BinancePlex, JetBrains Mono, ui-monospace, monospace" }
|
|
181
|
-
color-tokens:
|
|
182
|
-
light:
|
|
183
|
-
background: "#ffffff"
|
|
184
|
-
foreground: "#181a20"
|
|
185
|
-
card: "#ffffff"
|
|
186
|
-
card-foreground: "#181a20"
|
|
187
|
-
muted: "#fafafa"
|
|
188
|
-
muted-foreground: "#707a8a"
|
|
189
|
-
border: "#eaecef"
|
|
190
|
-
input: "#eaecef"
|
|
191
|
-
ring: "#3b82f6"
|
|
192
|
-
primary: "#fcd535"
|
|
193
|
-
primary-foreground: "#181a20"
|
|
194
|
-
accent: "#f5f5f5"
|
|
195
|
-
accent-foreground: "#181a20"
|
|
196
|
-
destructive: "#f6465d"
|
|
197
|
-
destructive-foreground: "#ffffff"
|
|
198
|
-
success: "#0ecb81"
|
|
199
|
-
warning: "#d97706" # derived: Binance ships no warning hue and its yellow is the reserved accent; a distinct amber carries caution without colliding
|
|
200
|
-
popover: "#ffffff"
|
|
201
|
-
popover-foreground: "#181a20"
|
|
202
|
-
secondary: "#f5f5f5"
|
|
203
|
-
secondary-foreground: "#181a20"
|
|
204
|
-
chart-1: "#fcd535"
|
|
205
|
-
chart-2: "#0ecb81"
|
|
206
|
-
chart-3: "#f6465d"
|
|
207
|
-
chart-4: "#3b82f6"
|
|
208
|
-
chart-5: "#2dbdb6" # the single-product turquoise, repurposed as a chart hue
|
|
209
|
-
sidebar: "#fafafa"
|
|
210
|
-
sidebar-foreground: "#181a20"
|
|
211
|
-
sidebar-primary: "#fcd535"
|
|
212
|
-
sidebar-primary-foreground: "#181a20"
|
|
213
|
-
sidebar-accent: "#f5f5f5"
|
|
214
|
-
sidebar-accent-foreground: "#181a20"
|
|
215
|
-
sidebar-border: "#eaecef"
|
|
216
|
-
sidebar-ring: "#3b82f6"
|
|
217
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64, 80]
|
|
218
|
-
radius-scale: [2, 4, 6, 8, 12, 9999]
|
|
219
|
-
shadow-levels: [none, sm]
|
|
220
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
221
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
222
|
-
accent-count: 1
|
|
223
|
-
```
|
|
@@ -7,12 +7,13 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# BMW — measured corporate-automotive, translated for operators
|
|
9
9
|
|
|
10
|
-
The BMW corporate design (distinct from BMW M's motorsport-bombastic variant): measured, settled,
|
|
11
|
-
near-white canvas, a single corporate blue for every primary action, and one
|
|
12
|
-
rectangular, 0px corners** — with depth from a greyscale
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
The BMW corporate design (distinct from BMW M's motorsport-bombastic variant): measured, settled,
|
|
11
|
+
engineered. A light near-white canvas, a single corporate blue for every primary action, and one
|
|
12
|
+
categorical signature — **everything is rectangular, 0px corners** — with depth from a greyscale
|
|
13
|
+
surface ladder and hairlines, never shadow. This operator reading keeps the palette, the blue
|
|
14
|
+
accent, the 0px geometry, the flatness, and the heavy-display type voice; the marketing graces
|
|
15
|
+
(dark-navy hero bands, 64px display type, full-bleed photography, the M tricolor stripe, 80px
|
|
16
|
+
section rhythm) stay behind.
|
|
16
17
|
|
|
17
18
|
## 1 Visual Theme
|
|
18
19
|
|
|
@@ -137,83 +138,3 @@ Directives the emitting agent follows verbatim:
|
|
|
137
138
|
blue — if two things want the accent, one is not primary; stay shadowless, reaching for the `card`
|
|
138
139
|
grey plate and hairlines before any elevation, a whisper `sm` shadow only for a true overlay.
|
|
139
140
|
- Numeric columns are `tabular-nums`, IDs / codes / timestamps `font-mono`, every workflow keyboard-complete with the `ring` focus outline always visible.
|
|
140
|
-
|
|
141
|
-
```yaml design-primitives
|
|
142
|
-
radius: 0px # BMW signature: rectangular everything; scale still offers 12px for the rare large surface
|
|
143
|
-
shadow-intensity: 0.1 # derived: brand never draws shadow; a whisper only lifts a true overlay
|
|
144
|
-
border-weight: 1px
|
|
145
|
-
density-gap: 1 # derived: BMW's native 8px rhythm rides the spacing-scale steps; base multiplier held at 1
|
|
146
|
-
density-inset: 1 # derived: standard operator inset; marketing's generous 24px card padding stays behind
|
|
147
|
-
font-sans: Inter, system-ui, -apple-system, sans-serif # Inter is the corpus-documented open-source stand-in for BMW Type Next Latin
|
|
148
|
-
font-mono: Roboto Mono, ui-monospace, SFMono-Regular, monospace # derived: brand ships no mono; Roboto (BMW's own fallback) mono sibling for IDs/codes/logs
|
|
149
|
-
font-weight-normal: 400 # derived: marketing body is Light 300; dense operator body bumps to BMW's utility weight 400 for legibility
|
|
150
|
-
font-weight-strong: 700 # the BMW heavy-display weight — the 700/normal contrast is the editorial signature
|
|
151
|
-
heading-tracking: 0 # BMW runs a wide body and takes no negative tracking; tightening reads off-brand
|
|
152
|
-
duration-unit: 50ms # derived: corpus marks motion out of scope; functional operator base
|
|
153
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
154
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
155
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
156
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard measured easing
|
|
157
|
-
contrast-boost: 1
|
|
158
|
-
icon-stroke: 2 # derived: BMW's bold engineered voice (700 display, wide tracking) wants the full lucide stroke, not a hairline
|
|
159
|
-
icon-size-base: 16px # derived: corpus silent; operator standard
|
|
160
|
-
sidebar-width-expanded: 256px # derived: BMW is a top-nav marketing site with no sidebar; 8px-rhythm operator shell
|
|
161
|
-
sidebar-width-collapsed: 64px # derived: matches BMW's 64px nav height and 8px rhythm
|
|
162
|
-
topbar-height: 64px # BMW top-nav height (a real corpus value)
|
|
163
|
-
side-panel-width: 440px # derived: no operator shell in corpus; 8px-rhythm detail panel
|
|
164
|
-
side-panel-width-rich: 640px # derived: content-heavy panel on the 8px rhythm
|
|
165
|
-
modal-width-max: 560px # derived: corpus silent; confirmation-scale cap
|
|
166
|
-
form-max-width: 640px # derived: corpus silent; single-column form measure
|
|
167
|
-
table-row-height: 44px # derived: BMW runs tall 48px controls; operator tables tighten one notch but stay above the generic 40px
|
|
168
|
-
verbosity: default
|
|
169
|
-
feedback: subtle # derived: BMW reads measured and settled; restrained feedback
|
|
170
|
-
density-tier: standard # derived: consumer-marketing spaciousness stays behind; the dealership-functional density carries as standard
|
|
171
|
-
product-traits: [inventory, crm, configurator, dashboard, automotive]
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
```yaml lever-manifest
|
|
175
|
-
version: 1
|
|
176
|
-
fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "Roboto Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
177
|
-
color-tokens:
|
|
178
|
-
light:
|
|
179
|
-
background: "#ffffff"
|
|
180
|
-
foreground: "#262626"
|
|
181
|
-
card: "#fafafa"
|
|
182
|
-
card-foreground: "#262626"
|
|
183
|
-
muted: "#f7f7f7"
|
|
184
|
-
muted-foreground: "#6b6b6b"
|
|
185
|
-
border: "#e6e6e6"
|
|
186
|
-
input: "#e6e6e6"
|
|
187
|
-
ring: "#1c69d4"
|
|
188
|
-
primary: "#1c69d4"
|
|
189
|
-
primary-foreground: "#ffffff"
|
|
190
|
-
accent: "#e9f1fc" # derived: faint wash of BMW blue for selection/hover; brand has no blue-tint surface token
|
|
191
|
-
accent-foreground: "#1c69d4"
|
|
192
|
-
destructive: "#dc2626"
|
|
193
|
-
destructive-foreground: "#ffffff"
|
|
194
|
-
success: "#22c55e"
|
|
195
|
-
warning: "#f59e0b"
|
|
196
|
-
popover: "#ffffff"
|
|
197
|
-
popover-foreground: "#262626"
|
|
198
|
-
secondary: "#f7f7f7"
|
|
199
|
-
secondary-foreground: "#262626"
|
|
200
|
-
chart-1: "#1c69d4" # BMW blue
|
|
201
|
-
chart-2: "#0066b1" # derived: M-blue-light recruited as a data-viz categorical only (not chrome)
|
|
202
|
-
chart-3: "#22c55e" # success green
|
|
203
|
-
chart-4: "#f59e0b" # warning amber
|
|
204
|
-
chart-5: "#e22718" # derived: M-red recruited as a data-viz categorical only (not chrome)
|
|
205
|
-
sidebar: "#f7f7f7" # derived: BMW's soft-grey sub-nav band as the chrome surface
|
|
206
|
-
sidebar-foreground: "#262626"
|
|
207
|
-
sidebar-primary: "#1c69d4"
|
|
208
|
-
sidebar-primary-foreground: "#ffffff"
|
|
209
|
-
sidebar-accent: "#e9f1fc" # derived: faint BMW-blue wash for the active/hovered nav item
|
|
210
|
-
sidebar-accent-foreground: "#1c69d4"
|
|
211
|
-
sidebar-border: "#e6e6e6"
|
|
212
|
-
sidebar-ring: "#1c69d4"
|
|
213
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
|
|
214
|
-
radius-scale: [0, 2, 4, 8, 12, 9999]
|
|
215
|
-
shadow-levels: [none, sm]
|
|
216
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
217
|
-
icons: { family: lucide, stroke: 2 }
|
|
218
|
-
accent-count: 1
|
|
219
|
-
```
|
|
@@ -7,10 +7,10 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Cal.com — operator reading
|
|
9
9
|
|
|
10
|
-
The operator reading of Cal.com's design language, distilled from Cal's marketing surface. It keeps
|
|
11
|
-
an internal tool can wear — the monochrome near-black action layer, the light-gray surface
|
|
12
|
-
soft-rounded 8px/12px geometry, the Cal Sans / Inter type voice — and leaves the marketing
|
|
13
|
-
behind (§9).
|
|
10
|
+
The operator reading of Cal.com's design language, distilled from Cal's marketing surface. It keeps
|
|
11
|
+
what an internal tool can wear — the monochrome near-black action layer, the light-gray surface
|
|
12
|
+
ladder, soft-rounded 8px/12px geometry, the Cal Sans / Inter type voice — and leaves the marketing
|
|
13
|
+
scaffolding behind (§9).
|
|
14
14
|
|
|
15
15
|
## 1 Visual Theme
|
|
16
16
|
|
|
@@ -138,83 +138,3 @@ What carries from Cal into an operator surface, and what stays on the marketing
|
|
|
138
138
|
- The near-black `#101010` surface is scarce — one framing element per view, never a panel. Leave behind
|
|
139
139
|
the hero display, the 96px band rhythm, the nav-pill switcher, product-fragment-in-card, and any
|
|
140
140
|
gradient; charts are the only place color spends.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # derived: corpus control radius (md 8px); soft-rounded Cal character, scale still offers 12/16px for cards
|
|
144
|
-
shadow-intensity: 0.5 # derived: corpus uses soft drop shadows on elevated cards (0.05–0.08 alpha), more than a fully flat brand
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1.15 # derived: spacious tier — Cal's generous whitespace opens the scale one notch above the operator default
|
|
147
|
-
density-inset: 1.1 # derived: matches the roomier posture without over-padding dense tables
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, monospace
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600
|
|
152
|
-
heading-tracking: -0.02em # derived: Cal Sans's negative-tracking signature (corpus Inter substitute -0.04em at display scale) eased to operator heading sizes
|
|
153
|
-
duration-unit: 50ms # derived: corpus notes animation timings out of scope; functional operator motion
|
|
154
|
-
duration-fast: 100ms # derived: functional operator motion
|
|
155
|
-
duration-normal: 150ms # derived: functional operator motion
|
|
156
|
-
duration-slow: 250ms # derived: functional operator motion
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard ease; corpus silent on motion
|
|
158
|
-
contrast-boost: 1 # derived: corpus is high-contrast ink on white already; no boost needed
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus names no icon set; lucide one step under 2 for a refined operator stroke
|
|
160
|
-
icon-size-base: 16px # derived: standard operator icon size; corpus silent
|
|
161
|
-
sidebar-width-expanded: 248px # derived: Cal is marketing top-nav with no sidebar; operator-standard rail width
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: operator-standard icon rail
|
|
163
|
-
topbar-height: 64px # corpus top-nav height (64px) — Cal's airier nav band carried over
|
|
164
|
-
side-panel-width: 420px # derived: operator-standard detail panel; corpus has no side panel
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
166
|
-
modal-width-max: 560px # derived: operator confirmation-modal cap
|
|
167
|
-
form-max-width: 640px # derived: corpus 1200px is marketing content width; operator forms cap tighter
|
|
168
|
-
table-row-height: 44px # derived: spacious posture — a step roomier than 40px controls, matching Cal's friendly density
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: spacious # derived: Cal reads as a spacious consumer-friendly SaaS (generous whitespace), not a dense terminal
|
|
172
|
-
product-traits: [scheduling, booking, saas, dashboard, crm]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#ffffff"
|
|
181
|
-
foreground: "#111111"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#111111"
|
|
184
|
-
muted: "#f5f5f5"
|
|
185
|
-
muted-foreground: "#6b7280"
|
|
186
|
-
border: "#e5e7eb"
|
|
187
|
-
input: "#e5e7eb"
|
|
188
|
-
ring: "#111111"
|
|
189
|
-
primary: "#111111"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#f3f4f6"
|
|
192
|
-
accent-foreground: "#111111"
|
|
193
|
-
destructive: "#ef4444"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#10b981"
|
|
196
|
-
warning: "#f59e0b"
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#111111"
|
|
199
|
-
secondary: "#f5f5f5"
|
|
200
|
-
secondary-foreground: "#111111"
|
|
201
|
-
chart-1: "#3b82f6" # derived: brand-accent blue as primary series
|
|
202
|
-
chart-2: "#34d399" # derived: badge-emerald
|
|
203
|
-
chart-3: "#fb923c" # derived: badge-orange
|
|
204
|
-
chart-4: "#8b5cf6" # derived: badge-violet
|
|
205
|
-
chart-5: "#ec4899" # derived: badge-pink
|
|
206
|
-
sidebar: "#f8f9fa" # derived: corpus surface-soft — faint off-white rail vs white canvas
|
|
207
|
-
sidebar-foreground: "#111111"
|
|
208
|
-
sidebar-primary: "#111111"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#f3f4f6" # derived: hover/active nav tint, one step off the rail
|
|
211
|
-
sidebar-accent-foreground: "#111111"
|
|
212
|
-
sidebar-border: "#e5e7eb"
|
|
213
|
-
sidebar-ring: "#111111"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64] # 96 section rhythm stays behind; 64 derived to fill the operator shell gap
|
|
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
|
-
```
|
|
@@ -8,12 +8,11 @@ sourced: 2026-07-04
|
|
|
8
8
|
# Clay — the warm-cream operator reading
|
|
9
9
|
|
|
10
10
|
Clay's marketing surface is the most playful brand in the GTM-data category: a cream-tinted white
|
|
11
|
-
canvas holding 3D claymation illustrations and saturated single-color feature cards in six hues.
|
|
12
|
-
is the *operator* reading — the warmth, the near-black actions, the generous radius, and the
|
|
13
|
-
voice carried into a CRM/queue/dashboard; the hero-scale Plain Black display, the 3D
|
|
14
|
-
the saturated feature-card fills stay behind in marketing. What makes a tool read
|
|
15
|
-
substrate and the disciplined near-black action, not a colored card.
|
|
16
|
-
marketing brand is annotated `# derived:` where it lands.
|
|
11
|
+
canvas holding 3D claymation illustrations and saturated single-color feature cards in six hues.
|
|
12
|
+
This is the *operator* reading — the warmth, the near-black actions, the generous radius, and the
|
|
13
|
+
Inter body voice carried into a CRM/queue/dashboard; the hero-scale Plain Black display, the 3D
|
|
14
|
+
illustrations, and the saturated feature-card fills stay behind in marketing. What makes a tool read
|
|
15
|
+
as Clay is the cream substrate and the disciplined near-black action, not a colored card.
|
|
17
16
|
|
|
18
17
|
## 1 Visual Theme
|
|
19
18
|
|
|
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
137
|
- Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
|
|
139
138
|
- Every workflow completes from the keyboard; the near-black `ring` focus outline is always visible.
|
|
140
139
|
- Plain Black hero type and 3D illustrations are marketing. They never enter the operator surface.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 12px # derived: brand's generous radius (12px buttons/inputs) is the rounded character the brief keeps; operator wears it as-is
|
|
144
|
-
shadow-intensity: 0.35 # derived: brand uses no heavy shadow — depth is color contrast; shadow only lifts true overlays
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1.1 # derived: brand breathes (spacious marketing whitespace); operator leans airy, not cramped
|
|
147
|
-
density-inset: 1.1 # derived: matches the spacious tier
|
|
148
|
-
font-sans: Inter, -apple-system, BlinkMacSystemFont, sans-serif # brand's body/UI font; Plain Black display stays behind
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # derived: brand ships no mono (marketing site); operator needs one for IDs/codes/log lines
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600 # brand titles are Inter 600 (display's 500 is hero-scale, stays behind)
|
|
152
|
-
heading-tracking: -0.01em # derived: brand's negative display tracking, dialled to operator heading sizes (hero -2.5px stays behind)
|
|
153
|
-
duration-unit: 50ms # derived: brand states motion is out of scope; functional operator default
|
|
154
|
-
duration-fast: 100ms # derived: functional operator default
|
|
155
|
-
duration-normal: 150ms # derived: functional operator default
|
|
156
|
-
duration-slow: 250ms # derived: functional operator default
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: brand states motion is out of scope; standard operator ease
|
|
158
|
-
contrast-boost: 1
|
|
159
|
-
icon-stroke: 1.75 # derived: brand documents no icon set; refined operator stroke
|
|
160
|
-
icon-size-base: 16px # derived: standard operator icon size
|
|
161
|
-
sidebar-width-expanded: 260px # derived: no brand sidebar (horizontal marketing nav); spacious operator rail
|
|
162
|
-
sidebar-width-collapsed: 60px # derived: icon rail
|
|
163
|
-
topbar-height: 56px # derived: from brand's 64px top-nav, tightened for an operator topbar
|
|
164
|
-
side-panel-width: 440px # derived: spacious tier
|
|
165
|
-
side-panel-width-rich: 680px # derived: content-heavy detail
|
|
166
|
-
modal-width-max: 560px # derived: standard operator modal cap
|
|
167
|
-
form-max-width: 640px # derived: single-column form width
|
|
168
|
-
table-row-height: 48px # derived: spacious tier; dense archetypes step down via the surface catalog
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: spacious # derived: brand voice is airy and warm; operator tools wearing it breathe, unlike a terminal
|
|
172
|
-
product-traits: [crm, sales, data-orchestration, dashboard]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, -apple-system, BlinkMacSystemFont, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#fffaf0"
|
|
181
|
-
foreground: "#0a0a0a"
|
|
182
|
-
card: "#fffaf0"
|
|
183
|
-
card-foreground: "#0a0a0a"
|
|
184
|
-
muted: "#faf5e8"
|
|
185
|
-
muted-foreground: "#6a6a6a"
|
|
186
|
-
border: "#e5e5e5"
|
|
187
|
-
input: "#e5e5e5"
|
|
188
|
-
ring: "#0a0a0a"
|
|
189
|
-
primary: "#0a0a0a"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#ebe6d6"
|
|
192
|
-
accent-foreground: "#0a0a0a"
|
|
193
|
-
destructive: "#ef4444"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#22c55e"
|
|
196
|
-
warning: "#f59e0b"
|
|
197
|
-
popover: "#fffaf0"
|
|
198
|
-
popover-foreground: "#0a0a0a"
|
|
199
|
-
secondary: "#f5f0e0"
|
|
200
|
-
secondary-foreground: "#0a0a0a"
|
|
201
|
-
chart-1: "#1a3a3a"
|
|
202
|
-
chart-2: "#ff4d8b"
|
|
203
|
-
chart-3: "#b8a4ed"
|
|
204
|
-
chart-4: "#e8b94a"
|
|
205
|
-
chart-5: "#ff6b5a"
|
|
206
|
-
sidebar: "#faf5e8"
|
|
207
|
-
sidebar-foreground: "#0a0a0a"
|
|
208
|
-
sidebar-primary: "#0a0a0a"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#ebe6d6"
|
|
211
|
-
sidebar-accent-foreground: "#0a0a0a"
|
|
212
|
-
sidebar-border: "#e5e5e5"
|
|
213
|
-
sidebar-ring: "#0a0a0a"
|
|
214
|
-
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 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
|
-
```
|
|
@@ -16,8 +16,7 @@ radius, and Inter's tight bold-700 voice. What stays behind: the 72/56/40px hero
|
|
|
16
16
|
yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm.
|
|
17
17
|
|
|
18
18
|
**This brand is categorically dark.** ClickHouse ships no light-mode surface — the black canvas *is*
|
|
19
|
-
the identity.
|
|
20
|
-
theme is dark and fills the required default (`light`) slot in the manifest. White-canvas is off-brand.
|
|
19
|
+
the identity. White-canvas is off-brand.
|
|
21
20
|
|
|
22
21
|
## 1 Visual Theme
|
|
23
22
|
|
|
@@ -31,8 +30,8 @@ voltage. Density is `dense` — the brand's engineering-grade rhythm.
|
|
|
31
30
|
|
|
32
31
|
## 2 Color Roles
|
|
33
32
|
|
|
34
|
-
Dark values
|
|
35
|
-
|
|
33
|
+
Dark values. One accent — yellow `primary` is the only chromatic hue that carries meaning; status
|
|
34
|
+
hues speak only status.
|
|
36
35
|
|
|
37
36
|
| Role | Value | Allowed where |
|
|
38
37
|
| --- | --- | --- |
|
|
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
137
|
- Detail and edit go in the side panel beside the work; a modal is a confirmation, not a workspace.
|
|
139
138
|
- Keyboard-first: the yellow `ring` focus outline is always visible.
|
|
140
139
|
- Leave behind: full-bleed yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm — marketing voltage, not operator chrome.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # derived: brand button/input radius (md); cards step to 12px via the scale; pill is badges-only
|
|
144
|
-
shadow-intensity: 0.2 # derived: brand is shadowless — depth is surface contrast; only true overlays get the faintest lift on the black canvas
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 0.9 # derived: dense tier — the brand's engineering-grade, slightly-compressed rhythm compresses spacing one step
|
|
147
|
-
density-inset: 0.9 # derived: matches the dense density-gap for coherent component insets
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, monospace
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 700 # derived: ClickHouse's defining typographic trait is confident bold-700 headings; the display scale stays behind, the weight carries
|
|
152
|
-
heading-tracking: -0.02em # derived: brand's signature tight negative display tracking (-1 to -2.5px), scaled to operator heading sizes
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no motion (known gap); functional operator base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent; functional tempo
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent; standard functional tempo
|
|
156
|
-
duration-slow: 250ms # derived: corpus silent; overlay/panel transition
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
158
|
-
contrast-boost: 1 # derived: brand's dim-panel contrast is deliberately subtle; hairline borders carry the grid, no boost
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus silent on icons; refined operator stroke one step under lucide's 2, matching the precise/engineered voice
|
|
160
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator default
|
|
161
|
-
sidebar-width-expanded: 248px # derived: brand has no app sidebar (marketing top nav); standard operator rail
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
163
|
-
topbar-height: 64px # corpus top-nav height (64px)
|
|
164
|
-
side-panel-width: 420px # derived: corpus silent; standard operator detail panel
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy detail panel
|
|
166
|
-
modal-width-max: 560px # derived: corpus's yellow CTA bands are full-bleed marketing; operator confirmation cap
|
|
167
|
-
form-max-width: 640px # derived: brand max content ~1280px is marketing; operator form cap
|
|
168
|
-
table-row-height: 40px # derived: matches the brand's 40px control height; dense archetypes step down via the surface catalog
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle # derived: brand is quiet in motion ("don't add hover beyond what the system encodes"); functional feedback only
|
|
171
|
-
density-tier: dense # derived: brand's engineering-grade, slightly-compressed whitespace reads dense
|
|
172
|
-
product-traits: [dev-tools, database, dashboard, analytics]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light: # categorically-dark brand: the default-worn theme is dark and fills this required default slot; there is no light surface
|
|
180
|
-
background: "#0a0a0a"
|
|
181
|
-
foreground: "#ffffff"
|
|
182
|
-
card: "#1a1a1a"
|
|
183
|
-
card-foreground: "#ffffff"
|
|
184
|
-
muted: "#121212"
|
|
185
|
-
muted-foreground: "#888888"
|
|
186
|
-
border: "#2a2a2a"
|
|
187
|
-
input: "#2a2a2a"
|
|
188
|
-
ring: "#faff69"
|
|
189
|
-
primary: "#faff69"
|
|
190
|
-
primary-foreground: "#0a0a0a"
|
|
191
|
-
accent: "#242424"
|
|
192
|
-
accent-foreground: "#ffffff"
|
|
193
|
-
destructive: "#ef4444"
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#22c55e"
|
|
196
|
-
warning: "#f59e0b"
|
|
197
|
-
popover: "#1a1a1a"
|
|
198
|
-
popover-foreground: "#ffffff"
|
|
199
|
-
secondary: "#1a1a1a"
|
|
200
|
-
secondary-foreground: "#ffffff"
|
|
201
|
-
chart-1: "#faff69" # derived: electric yellow — primary data series
|
|
202
|
-
chart-2: "#3b82f6" # derived: accent blue
|
|
203
|
-
chart-3: "#22c55e" # derived: emerald
|
|
204
|
-
chart-4: "#f59e0b" # derived: amber
|
|
205
|
-
chart-5: "#ef4444" # derived: rose
|
|
206
|
-
sidebar: "#0a0a0a" # derived: brand nav rides the canvas; the hairline sidebar-border carries the seam
|
|
207
|
-
sidebar-foreground: "#cccccc" # derived: resting nav labels dim to brand body grey, brightening on active
|
|
208
|
-
sidebar-primary: "#faff69" # derived: yellow active-nav indicator
|
|
209
|
-
sidebar-primary-foreground: "#0a0a0a"
|
|
210
|
-
sidebar-accent: "#242424" # derived: hover/selected nav lift
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#2a2a2a"
|
|
213
|
-
sidebar-ring: "#faff69"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 12, 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
|
-
```
|