@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
|
@@ -16,11 +16,10 @@ console, run queue, log stream, dashboard) in OpenCode's language. What carries:
|
|
|
16
16
|
depth. What stays behind: the full-bleed dark hero TUI mockup, the 38px display headline, the 96px
|
|
17
17
|
section rhythm, the block-pixel ASCII wordmark, and the bracket markers used as bullets.
|
|
18
18
|
|
|
19
|
-
**Monochrome chrome, one held accent.** The chrome is ink-on-cream monochrome; the primary action is
|
|
20
|
-
near-black ink button, not a colored one (the Vercel/Geist dialect), and Apple Blue (`#007aff`) is
|
|
21
|
-
one chromatic accent — reserved, as the source reserves it, for interactive and data signal
|
|
22
|
-
reads *light*, so the light-default floor holds.
|
|
23
|
-
from the brand are annotated `# derived:` where the corpus is silent.
|
|
19
|
+
**Monochrome chrome, one held accent.** The chrome is ink-on-cream monochrome; the primary action is
|
|
20
|
+
a near-black ink button, not a colored one (the Vercel/Geist dialect), and Apple Blue (`#007aff`) is
|
|
21
|
+
the one chromatic accent — reserved, as the source reserves it, for interactive and data signal
|
|
22
|
+
only. It reads *light*, so the light-default floor holds.
|
|
24
23
|
|
|
25
24
|
## 1 Visual Theme
|
|
26
25
|
|
|
@@ -35,8 +34,8 @@ surface is a cream canvas seated beside a barely-warmer `sidebar`, separated by
|
|
|
35
34
|
|
|
36
35
|
## 2 Color Roles
|
|
37
36
|
|
|
38
|
-
Light values
|
|
39
|
-
|
|
37
|
+
Light values. One chromatic accent — Apple Blue is the only hue that carries interactive meaning;
|
|
38
|
+
the primary action is neutral ink; status speaks status.
|
|
40
39
|
|
|
41
40
|
| Role | Value | Allowed where |
|
|
42
41
|
| --- | --- | --- |
|
|
@@ -141,83 +140,3 @@ Directives the emitting agent follows verbatim:
|
|
|
141
140
|
- Keep containers sharp (0px) and interactive elements at 4px — that split is the brand's whole geometry.
|
|
142
141
|
- Depth is hairline, surface, and position — never shadow. Dress terminal, log, and console panels in the dark inlay (`#201d1d`, mono, cream text) — real console chrome, not a light mockup of it.
|
|
143
142
|
- Keyboard-first: the ink `ring` focus outline is always visible. Leave behind the dark hero TUI mockup, the 38px display, the 96px rhythm, the ASCII wordmark, and the bracket bullets — use real lucide icons.
|
|
144
|
-
|
|
145
|
-
```yaml design-primitives
|
|
146
|
-
radius: 4px # source: the single interactive radius (rounded.sm); containers stay sharp at 0
|
|
147
|
-
shadow-intensity: 0.1 # derived: source is categorically flat (no drop shadows, "nothing floats"); only a true overlay earns the faintest whisper
|
|
148
|
-
border-weight: 1px # source: 1px hairlines carry all separation
|
|
149
|
-
density-gap: 0.85 # derived: terminal-native brand reads dense; tighten the base gap
|
|
150
|
-
density-inset: 0.85 # derived: matches the dense gap on component insets
|
|
151
|
-
font-sans: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace # derived: source is monospace-everywhere (Berkeley Mono, proprietary); JetBrains Mono is the documented open substitute — the sans slot carries the mono voice too
|
|
152
|
-
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace # source: one monospaced face for the whole system
|
|
153
|
-
font-weight-normal: 400 # source: body-md is 400
|
|
154
|
-
font-weight-strong: 700 # source: headings and display sit at 700 (500 is the medium step)
|
|
155
|
-
heading-tracking: 0 # source: letter-spacing is 0 on every role — monospace does not track
|
|
156
|
-
duration-unit: 50ms # derived: corpus documents no motion; operator-standard base
|
|
157
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
158
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
159
|
-
duration-slow: 200ms # derived: snappy, near-instant to match the austere terminal character
|
|
160
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard functional ease
|
|
161
|
-
contrast-boost: 1 # derived: the source's hairline is deliberately faint; hold default rather than thicken the grid
|
|
162
|
-
icon-stroke: 2 # derived: the source's icon system is bold ASCII bracket markers; for lucide, a full 2px stroke matches that blocky terminal character
|
|
163
|
-
icon-size-base: 16px # source: the body/glyph grid is 16px
|
|
164
|
-
sidebar-width-expanded: 248px # derived: marketing source has no app shell; operator-standard rail
|
|
165
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
166
|
-
topbar-height: 56px # source: primary-nav height ~56px
|
|
167
|
-
side-panel-width: 420px # derived: source has no shell; standard operator detail panel
|
|
168
|
-
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
169
|
-
modal-width-max: 480px # derived: source favored narrow ~480px columns; kept tight for the austere brand
|
|
170
|
-
form-max-width: 560px # derived: source marketing form column ~480px, widened modestly for operator field density
|
|
171
|
-
table-row-height: 36px # derived: dense terminal brand; tighter than the 40px default (source rows sit ~32–36px)
|
|
172
|
-
verbosity: compact # derived: manpage-terse brand voice
|
|
173
|
-
feedback: minimal # derived: austere, flat, near-motionless system
|
|
174
|
-
density-tier: dense # derived: terminal-native brand reads dense
|
|
175
|
-
product-traits: [dev-tools, terminal, cli, ai-agent]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
```yaml lever-manifest
|
|
179
|
-
version: 1
|
|
180
|
-
fonts: { sans: "JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace" }
|
|
181
|
-
color-tokens:
|
|
182
|
-
light:
|
|
183
|
-
background: "#fdfcfc"
|
|
184
|
-
foreground: "#201d1d"
|
|
185
|
-
card: "#fdfcfc"
|
|
186
|
-
card-foreground: "#201d1d"
|
|
187
|
-
muted: "#f8f7f7"
|
|
188
|
-
muted-foreground: "#646262"
|
|
189
|
-
border: "#e0dddd" # derived: solid equivalent of the source's translucent hairline rgba(15,0,0,0.12) flattened over the cream canvas
|
|
190
|
-
input: "#e0dddd"
|
|
191
|
-
ring: "#201d1d" # source: the focus signal is a flat ink border, no halo (ring == primary)
|
|
192
|
-
primary: "#201d1d" # source: the CTA fill is near-black ink, not a color
|
|
193
|
-
primary-foreground: "#fdfcfc"
|
|
194
|
-
accent: "#f1eeee" # source: surface-card, the warm selected/hover surface — never blue
|
|
195
|
-
accent-foreground: "#201d1d"
|
|
196
|
-
destructive: "#ff3b30"
|
|
197
|
-
destructive-foreground: "#fdfcfc"
|
|
198
|
-
success: "#30d158"
|
|
199
|
-
warning: "#ff9f0a"
|
|
200
|
-
popover: "#fdfcfc"
|
|
201
|
-
popover-foreground: "#201d1d"
|
|
202
|
-
secondary: "#f8f7f7"
|
|
203
|
-
secondary-foreground: "#201d1d"
|
|
204
|
-
chart-1: "#007aff" # source: Apple Blue — the one chromatic accent, carrying the primary chart series
|
|
205
|
-
chart-2: "#30d158" # source: Apple green
|
|
206
|
-
chart-3: "#ff9f0a" # source: Apple amber
|
|
207
|
-
chart-4: "#ff3b30" # source: Apple red
|
|
208
|
-
chart-5: "#5856d6" # derived: Apple HIG system indigo to complete a 5-hue categorical set (source ships only 4 semantic hues)
|
|
209
|
-
sidebar: "#f8f7f7" # derived: barely-warmer step to seat the nav rail; the source forbids heavy gray bands, so kept to the softest surface
|
|
210
|
-
sidebar-foreground: "#201d1d"
|
|
211
|
-
sidebar-primary: "#007aff" # derived: the active-nav indicator is the one place blue enters persistent chrome (source reserves blue for in-product active/interactive)
|
|
212
|
-
sidebar-primary-foreground: "#fdfcfc"
|
|
213
|
-
sidebar-accent: "#f1eeee"
|
|
214
|
-
sidebar-accent-foreground: "#201d1d"
|
|
215
|
-
sidebar-border: "#e0dddd"
|
|
216
|
-
sidebar-ring: "#201d1d" # derived: focus in the rail matches the ink ring
|
|
217
|
-
spacing-scale: [1, 4, 8, 12, 16, 24, 32, 48]
|
|
218
|
-
radius-scale: [0, 4, 9999]
|
|
219
|
-
shadow-levels: [none, sm, md]
|
|
220
|
-
motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
221
|
-
icons: { family: lucide, stroke: 2 }
|
|
222
|
-
accent-count: 1
|
|
223
|
-
```
|
|
@@ -7,14 +7,13 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# PostHog — operator reading
|
|
9
9
|
|
|
10
|
-
The operator distillation of PostHog's engineering-sketchbook brand. The source is a marketing
|
|
11
|
-
a warm cream canvas dotted with hand-drawn hedgehog mascots, hero-scale display type, and a
|
|
12
|
-
loud yellow-orange CTA pill. This entry keeps the temperature and voice that make it PostHog
|
|
13
|
-
cream canvas, the olive ink, the one yellow accent, IBM Plex Sans, the flat hairline depth,
|
|
14
|
-
code island — and leaves the decoration behind: no mascots, no 36px/800 hero type, no
|
|
15
|
-
bands, no pill CTAs on operator chrome. What remains is a warm, calm, flat dev-tools
|
|
16
|
-
|
|
17
|
-
`# derived:` where it lands.
|
|
10
|
+
The operator distillation of PostHog's engineering-sketchbook brand. The source is a marketing
|
|
11
|
+
system: a warm cream canvas dotted with hand-drawn hedgehog mascots, hero-scale display type, and a
|
|
12
|
+
single loud yellow-orange CTA pill. This entry keeps the temperature and voice that make it PostHog
|
|
13
|
+
— the cream canvas, the olive ink, the one yellow accent, IBM Plex Sans, the flat hairline depth,
|
|
14
|
+
the dark code island — and leaves the decoration behind: no mascots, no 36px/800 hero type, no
|
|
15
|
+
pastel callout bands, no pill CTAs on operator chrome. What remains is a warm, calm, flat dev-tools
|
|
16
|
+
console.
|
|
18
17
|
|
|
19
18
|
## 1 Visual Theme
|
|
20
19
|
|
|
@@ -28,9 +27,8 @@ archetype — dense-capable, warm, not cramped.
|
|
|
28
27
|
|
|
29
28
|
## 2 Color Roles
|
|
30
29
|
|
|
31
|
-
Light values first
|
|
32
|
-
|
|
33
|
-
status.
|
|
30
|
+
Light values first. One loud accent — `primary` yellow is the only saturated hue that carries a call
|
|
31
|
+
to action; blue is a quiet functional signal; status hues speak only status.
|
|
34
32
|
|
|
35
33
|
| Role | Value | Allowed where |
|
|
36
34
|
| --- | --- | --- |
|
|
@@ -152,83 +150,3 @@ Directives the emitting agent follows verbatim:
|
|
|
152
150
|
- Blue is links and focus only; green / red / amber are status only; one loud color (yellow).
|
|
153
151
|
- Leave behind: hedgehog mascots, 36px / 800 hero type, pill CTAs on chrome, pastel callout bands, the
|
|
154
152
|
80px marketing section rhythm.
|
|
155
|
-
|
|
156
|
-
```yaml design-primitives
|
|
157
|
-
radius: 6px # brand dominant card/button radius (rounded.md)
|
|
158
|
-
shadow-intensity: 0.3 # derived: brand is flat with zero drop shadows; low value lifts only true overlays
|
|
159
|
-
border-weight: 1px
|
|
160
|
-
density-gap: 1
|
|
161
|
-
density-inset: 1
|
|
162
|
-
font-sans: IBM Plex Sans, system-ui, sans-serif # brand primary face across every role
|
|
163
|
-
font-mono: Source Code Pro, ui-monospace, monospace # brand display monospace for code, IDs, logs
|
|
164
|
-
font-weight-normal: 400
|
|
165
|
-
font-weight-strong: 600 # derived: brand builds hierarchy from weight; body-strong/nav is 600; the 700-800 display tier is marketing-scale and stays behind
|
|
166
|
-
heading-tracking: -0.02em # derived from brand display tracking (-0.5/-0.6px at 21-24px)
|
|
167
|
-
duration-unit: 50ms # derived: corpus silent on motion; standard operator base
|
|
168
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
169
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
170
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
171
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on motion; standard functional ease
|
|
172
|
-
contrast-boost: 1
|
|
173
|
-
icon-stroke: 1.75 # derived: brand uses rounded outline icons; 1.75 is the refined operator stroke
|
|
174
|
-
icon-size-base: 16px # derived: standard operator icon size
|
|
175
|
-
sidebar-width-expanded: 240px # brand doc-sidebar width
|
|
176
|
-
sidebar-width-collapsed: 56px # derived: standard icon rail
|
|
177
|
-
topbar-height: 56px # brand primary-nav height
|
|
178
|
-
side-panel-width: 420px # derived: corpus has no side panel; standard operator width
|
|
179
|
-
side-panel-width-rich: 640px # derived: near the brand's ~720px article column, tuned for a rich panel
|
|
180
|
-
modal-width-max: 560px # derived: standard operator modal cap
|
|
181
|
-
form-max-width: 640px # derived: narrower than the brand's ~720px article for operator forms
|
|
182
|
-
table-row-height: 40px # derived: brand button height is 40px; standard operator row
|
|
183
|
-
verbosity: default
|
|
184
|
-
feedback: subtle # derived: brand is calm and flat with no loud motion
|
|
185
|
-
density-tier: standard # derived: not terminal-dense, not consumer-spacious; a warm readable operator default
|
|
186
|
-
product-traits: [dev-tools, analytics, dashboard]
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
```yaml lever-manifest
|
|
190
|
-
version: 1
|
|
191
|
-
fonts: { sans: "IBM Plex Sans, system-ui, sans-serif", mono: "Source Code Pro, ui-monospace, monospace" }
|
|
192
|
-
color-tokens:
|
|
193
|
-
light:
|
|
194
|
-
background: "#eeefe9"
|
|
195
|
-
foreground: "#23251d"
|
|
196
|
-
card: "#ffffff"
|
|
197
|
-
card-foreground: "#23251d"
|
|
198
|
-
muted: "#e5e7e0"
|
|
199
|
-
muted-foreground: "#6c6e63"
|
|
200
|
-
border: "#bfc1b7"
|
|
201
|
-
input: "#bfc1b7"
|
|
202
|
-
ring: "#2c84e0"
|
|
203
|
-
primary: "#f7a501"
|
|
204
|
-
primary-foreground: "#23251d"
|
|
205
|
-
accent: "#f7eccf" # derived: pale wash of the primary yellow for row/nav selection warmth
|
|
206
|
-
accent-foreground: "#23251d"
|
|
207
|
-
destructive: "#cd4239"
|
|
208
|
-
destructive-foreground: "#ffffff"
|
|
209
|
-
success: "#2c8c66"
|
|
210
|
-
warning: "#b17816" # derived: brand gold-tone (primary-active), kept deeper than the CTA yellow so warning ≠ accent
|
|
211
|
-
popover: "#ffffff"
|
|
212
|
-
popover-foreground: "#23251d"
|
|
213
|
-
secondary: "#e5e7e0"
|
|
214
|
-
secondary-foreground: "#23251d"
|
|
215
|
-
chart-1: "#f7a501"
|
|
216
|
-
chart-2: "#2c84e0"
|
|
217
|
-
chart-3: "#2c8c66"
|
|
218
|
-
chart-4: "#7c44a6"
|
|
219
|
-
chart-5: "#cd4239"
|
|
220
|
-
sidebar: "#e5e7e0" # derived: one step deeper than the cream canvas so the nav rail reads as chrome
|
|
221
|
-
sidebar-foreground: "#23251d"
|
|
222
|
-
sidebar-primary: "#f7a501"
|
|
223
|
-
sidebar-primary-foreground: "#23251d"
|
|
224
|
-
sidebar-accent: "#ffffff" # derived: brand signals active nav by lifting to a white card
|
|
225
|
-
sidebar-accent-foreground: "#23251d"
|
|
226
|
-
sidebar-border: "#bfc1b7"
|
|
227
|
-
sidebar-ring: "#2c84e0"
|
|
228
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
229
|
-
radius-scale: [0, 2, 4, 6, 8, 9999]
|
|
230
|
-
shadow-levels: [none, sm, md]
|
|
231
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
232
|
-
icons: { family: lucide, stroke: 1.75 }
|
|
233
|
-
accent-count: 1
|
|
234
|
-
```
|
|
@@ -7,12 +7,10 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Raycast — operator reading of a categorically-dark developer system
|
|
9
9
|
|
|
10
|
-
Raycast is the rare brand where the doctrine's light default yields: it is *categorically dark* —
|
|
11
|
-
continuous near-black canvas with no light variant in the source. This entry carries that
|
|
12
|
-
operator surfaces: the chrome of Raycast's own command palette (near-black surfaces,
|
|
13
|
-
a single white action, ss03-Inter), with the marketing theatre left behind.
|
|
14
|
-
dark-only, the manifest's single color map holds the near-black surfaces directly — brand tokens win
|
|
15
|
-
over the light-default floor, and there is no light variant. Corpus-silent judgments are `# derived:`.
|
|
10
|
+
Raycast is the rare brand where the doctrine's light default yields: it is *categorically dark* —
|
|
11
|
+
one continuous near-black canvas with no light variant in the source. This entry carries that
|
|
12
|
+
identity onto operator surfaces: the chrome of Raycast's own command palette (near-black surfaces,
|
|
13
|
+
hairline borders, a single white action, ss03-Inter), with the marketing theatre left behind.
|
|
16
14
|
|
|
17
15
|
## 1 Visual Theme
|
|
18
16
|
|
|
@@ -25,8 +23,7 @@ white. Density is `dense` — Raycast's command-palette chrome runs tight, and o
|
|
|
25
23
|
|
|
26
24
|
## 2 Color Roles
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
action — white — carries every primary; the saturated hues speak only status.
|
|
26
|
+
One monochrome action — white — carries every primary; the saturated hues speak only status.
|
|
30
27
|
|
|
31
28
|
| Role | Value | Allowed where |
|
|
32
29
|
| --- | --- | --- |
|
|
@@ -138,83 +135,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
|
|
|
138
135
|
tight 6–10px radius, ss03-Inter, positive heading tracking, keycap shortcut glyphs.
|
|
139
136
|
- **Stays behind:** the red diagonal-stripe hero gradient, hero-scale display (56–64px), full-bleed
|
|
140
137
|
product-screenshot heroes, the 96px marketing section rhythm.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 8px # rationale: rounded.md (8px) is Raycast's standard button/input/card radius; scale still offers 6/10/16
|
|
144
|
-
shadow-intensity: 0 # derived: the system has no drop-shadow elevation at all — depth is the surface ladder
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 0.85 # derived: command-palette chrome is tight; the operator adaptation runs dense
|
|
147
|
-
density-inset: 0.85 # derived: same dense bias on component insets
|
|
148
|
-
font-sans: Inter, system-ui, sans-serif # rationale: Inter is the whole system's face; enable ss03 globally (see §3)
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, monospace # derived: corpus names JetBrains/Geist Mono for code chips; operator IDs and logs need a mono — JetBrains chosen
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 500 # derived: Raycast headings and emphasis sit at 500 — the light weight is signature (display reaches 600, but hero display stays behind)
|
|
152
|
-
heading-tracking: 0.01em # derived: Raycast opens type with positive tracking (+0.2px on headings) rather than tightening — rare and signature
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no motion; standard operator base
|
|
154
|
-
duration-fast: 100ms # derived: corpus silent on motion
|
|
155
|
-
duration-normal: 150ms # derived: corpus silent on motion
|
|
156
|
-
duration-slow: 250ms # derived: corpus silent on motion
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
|
|
158
|
-
contrast-boost: 1.05 # derived: hairlines on near-black read faint; a small boost keeps the dense table grid legible
|
|
159
|
-
icon-stroke: 1.75 # derived: refined operator stroke matching Raycast's fine hairline aesthetic (one step under lucide's 2)
|
|
160
|
-
icon-size-base: 16px # derived: standard operator icon size; corpus silent
|
|
161
|
-
sidebar-width-expanded: 240px # derived: operator shell dim (corpus is marketing-nav only); a tight rail for Raycast's compact character
|
|
162
|
-
sidebar-width-collapsed: 56px # derived: icon rail; echoes the corpus 56px nav height
|
|
163
|
-
topbar-height: 56px # rationale: primary-nav height in the corpus is 56px
|
|
164
|
-
side-panel-width: 420px # derived: standard operator side panel; corpus silent
|
|
165
|
-
side-panel-width-rich: 640px # derived: content-heavy side panel; corpus silent
|
|
166
|
-
modal-width-max: 560px # derived: modest confirmation modal; corpus silent
|
|
167
|
-
form-max-width: 640px # derived: standard operator form column; corpus silent
|
|
168
|
-
table-row-height: 36px # derived: dense, echoing the tight command-palette row (6px 10px padding)
|
|
169
|
-
verbosity: compact # derived: Raycast's UI is spare and keyboard-first — minimal chrome copy
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: dense
|
|
172
|
-
product-traits: [dev-tools, command-palette, launcher, productivity]
|
|
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: # dark-native brand: the single required map carries Raycast's near-black surfaces directly — brand tokens win over the light-default floor; there is no separate light variant
|
|
180
|
-
background: "#07080a"
|
|
181
|
-
foreground: "#f4f4f6"
|
|
182
|
-
card: "#0d0d0d"
|
|
183
|
-
card-foreground: "#f4f4f6"
|
|
184
|
-
muted: "#101111"
|
|
185
|
-
muted-foreground: "#9c9c9d"
|
|
186
|
-
border: "#242728"
|
|
187
|
-
input: "#242728"
|
|
188
|
-
ring: "#ffffff"
|
|
189
|
-
primary: "#ffffff"
|
|
190
|
-
primary-foreground: "#000000"
|
|
191
|
-
accent: "#121212"
|
|
192
|
-
accent-foreground: "#ffffff"
|
|
193
|
-
destructive: "#ff6161"
|
|
194
|
-
destructive-foreground: "#07080a" # derived: near-black text is legible on the bright coral; white on #ff6161 fails contrast
|
|
195
|
-
success: "#59d499"
|
|
196
|
-
warning: "#ffc533"
|
|
197
|
-
popover: "#0d0d0d"
|
|
198
|
-
popover-foreground: "#f4f4f6"
|
|
199
|
-
secondary: "#101111"
|
|
200
|
-
secondary-foreground: "#f4f4f6"
|
|
201
|
-
chart-1: "#57c1ff"
|
|
202
|
-
chart-2: "#59d499"
|
|
203
|
-
chart-3: "#ffc533"
|
|
204
|
-
chart-4: "#ff6161"
|
|
205
|
-
chart-5: "#b48cff" # derived: fifth categorical hue — corpus gives four accents; a cool violet completes the set on near-black
|
|
206
|
-
sidebar: "#07080a"
|
|
207
|
-
sidebar-foreground: "#cdcdcd"
|
|
208
|
-
sidebar-primary: "#ffffff"
|
|
209
|
-
sidebar-primary-foreground: "#000000"
|
|
210
|
-
sidebar-accent: "#101111"
|
|
211
|
-
sidebar-accent-foreground: "#ffffff"
|
|
212
|
-
sidebar-border: "#242728"
|
|
213
|
-
sidebar-ring: "#ffffff"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
215
|
-
radius-scale: [0, 4, 6, 8, 10, 16, 9999]
|
|
216
|
-
shadow-levels: [none, sm]
|
|
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,13 @@ sourced: 2026-07-04
|
|
|
7
7
|
|
|
8
8
|
# Replicate — the warm-cream operator reading
|
|
9
9
|
|
|
10
|
-
Replicate's public surfaces read as an ML lab notebook crossed with a print zine: a warm cream
|
|
11
|
-
ink-dark type, dark monospace code wells, and one hot-orange accent used like a stamp. This
|
|
12
|
-
*operator* reading of that brand — the same warmth and single accent, carried onto a
|
|
13
|
-
dashboard. The hero-scale display grotesque, full-bleed orange bands, the
|
|
14
|
-
mosaics stay behind as marketing furniture. What carries: the
|
|
15
|
-
foreground, the scarce orange, the soft-rounded corners, and
|
|
16
|
-
|
|
10
|
+
Replicate's public surfaces read as an ML lab notebook crossed with a print zine: a warm cream
|
|
11
|
+
canvas, ink-dark type, dark monospace code wells, and one hot-orange accent used like a stamp. This
|
|
12
|
+
entry is the *operator* reading of that brand — the same warmth and single accent, carried onto a
|
|
13
|
+
CRM, a queue, or a dashboard. The hero-scale display grotesque, full-bleed orange bands, the
|
|
14
|
+
gradient mesh, and contributor mosaics stay behind as marketing furniture. What carries: the
|
|
15
|
+
cream-not-white temperature, the ink foreground, the scarce orange, the soft-rounded corners, and
|
|
16
|
+
the strict font lanes.
|
|
17
17
|
|
|
18
18
|
## 1 Visual Theme
|
|
19
19
|
|
|
@@ -27,8 +27,8 @@ editorial warmth wants a little air, operator restraint keeps it from sprawling.
|
|
|
27
27
|
|
|
28
28
|
## 2 Color Roles
|
|
29
29
|
|
|
30
|
-
Light values first
|
|
31
|
-
|
|
30
|
+
Light values first. One accent — `primary` is the only chromatic hue that carries meaning; status
|
|
31
|
+
and focus hues speak only their function.
|
|
32
32
|
|
|
33
33
|
| Role | Value | Allowed where |
|
|
34
34
|
| --- | --- | --- |
|
|
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
|
|
|
138
138
|
flat — warm surface swaps and hairlines before shadow; reach past a hairline only for a real overlay.
|
|
139
139
|
- Leave the marketing furniture behind: no hero grotesque, no full-bleed orange bands, no gradient mesh, no
|
|
140
140
|
contributor mosaics, no pill CTAs. Palette, temperature, soft corners, and font lanes carry; the rest does not.
|
|
141
|
-
|
|
142
|
-
```yaml design-primitives
|
|
143
|
-
radius: 10px # derived: brand's soft "no sharp corners" character — the 10px card radius becomes the operator base; the full-pill 9999 marketing treatment stays behind (kept in scale for badges)
|
|
144
|
-
shadow-intensity: 0.3 # derived: elevation is color-blocking, not shadow; a soft drop only lifts a floating thumbnail — keep shadow faint
|
|
145
|
-
border-weight: 1px
|
|
146
|
-
density-gap: 1
|
|
147
|
-
density-inset: 1
|
|
148
|
-
font-sans: basier-square, Geist, Inter, system-ui, sans-serif # rationale: brand UI/body family with the corpus-named substitutes; the hero display grotesque rb-freigeist-neue is hero-scale and stays behind
|
|
149
|
-
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # brand code family
|
|
150
|
-
font-weight-normal: 400
|
|
151
|
-
font-weight-strong: 600
|
|
152
|
-
heading-tracking: -0.015em # derived: brand tightens type with negative tracking scaling with size; basier-square headings track -0.35px at 24px ≈ -0.015em
|
|
153
|
-
duration-unit: 50ms # derived: corpus documents no motion; operator functional base
|
|
154
|
-
duration-fast: 100ms # derived: functional operator motion
|
|
155
|
-
duration-normal: 150ms # derived
|
|
156
|
-
duration-slow: 250ms # derived
|
|
157
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard functional easing
|
|
158
|
-
contrast-boost: 1 # derived: ink #202020 on cream is high-contrast; the solid hairline already carries the grid
|
|
159
|
-
icon-stroke: 1.75 # derived: corpus uses illustration, not an icon set; 1.75 suits the friendly-precision character
|
|
160
|
-
icon-size-base: 16px # derived
|
|
161
|
-
sidebar-width-expanded: 248px # derived: operator shell (corpus documents the marketing nav only)
|
|
162
|
-
sidebar-width-collapsed: 56px # derived
|
|
163
|
-
topbar-height: 60px # brand nav-bar height, carried
|
|
164
|
-
side-panel-width: 420px # derived
|
|
165
|
-
side-panel-width-rich: 640px # derived
|
|
166
|
-
modal-width-max: 560px # derived
|
|
167
|
-
form-max-width: 640px # derived
|
|
168
|
-
table-row-height: 44px # brand's 44px button/touch rhythm carried to rows for an airier operator read
|
|
169
|
-
verbosity: default
|
|
170
|
-
feedback: subtle
|
|
171
|
-
density-tier: standard # derived: editorial warmth wants air, operator restraint keeps it from spacious
|
|
172
|
-
product-traits: [dev-tools, ml-platform, dashboard, api-console]
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
```yaml lever-manifest
|
|
176
|
-
version: 1
|
|
177
|
-
fonts: { sans: "basier-square, Geist, Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
178
|
-
color-tokens:
|
|
179
|
-
light:
|
|
180
|
-
background: "#f9f7f3"
|
|
181
|
-
foreground: "#202020"
|
|
182
|
-
card: "#ffffff"
|
|
183
|
-
card-foreground: "#202020"
|
|
184
|
-
muted: "#f3f0e8"
|
|
185
|
-
muted-foreground: "#575757"
|
|
186
|
-
border: "#dfddda" # derived: solid equivalent of brand hairline rgba(32,32,32,0.12) blended over the cream canvas
|
|
187
|
-
input: "#dfddda" # derived: same hairline, field edges
|
|
188
|
-
ring: "#3b82f6" # brand focus-blue rgba(59,130,246,0.5) flattened to its base hue — functional, not the accent
|
|
189
|
-
primary: "#ea2804"
|
|
190
|
-
primary-foreground: "#ffffff"
|
|
191
|
-
accent: "#fbe9e3" # derived: pale wash of the orange primary for selected/hover rows and nav
|
|
192
|
-
accent-foreground: "#c01f00" # brand pressed-orange, legible on the pale peach
|
|
193
|
-
destructive: "#b3261e" # derived: a deeper crimson-leaning red, kept distinct from the red-orange primary so delete never reads as the CTA
|
|
194
|
-
destructive-foreground: "#ffffff"
|
|
195
|
-
success: "#2b9a66"
|
|
196
|
-
warning: "#b7791f" # derived: a muted gold amber, pulled yellower than the primary so warning reads apart from the orange accent
|
|
197
|
-
popover: "#ffffff"
|
|
198
|
-
popover-foreground: "#202020"
|
|
199
|
-
secondary: "#f3f0e8"
|
|
200
|
-
secondary-foreground: "#202020"
|
|
201
|
-
chart-1: "#ea2804"
|
|
202
|
-
chart-2: "#2b9a66"
|
|
203
|
-
chart-3: "#b7791f" # derived: gold, third categorical hue in the warm ramp
|
|
204
|
-
chart-4: "#3b82f6" # derived: focus-blue reused as a cool categorical for contrast
|
|
205
|
-
chart-5: "#575757" # derived: charcoal neutral series
|
|
206
|
-
sidebar: "#f3f0e8" # brand bone — the deeper cream, distinguishing the rail from the canvas
|
|
207
|
-
sidebar-foreground: "#202020"
|
|
208
|
-
sidebar-primary: "#ea2804"
|
|
209
|
-
sidebar-primary-foreground: "#ffffff"
|
|
210
|
-
sidebar-accent: "#fbe9e3"
|
|
211
|
-
sidebar-accent-foreground: "#c01f00"
|
|
212
|
-
sidebar-border: "#dfddda"
|
|
213
|
-
sidebar-ring: "#3b82f6"
|
|
214
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64, 96]
|
|
215
|
-
radius-scale: [0, 4, 6, 10, 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
|
-
```
|
|
@@ -18,10 +18,10 @@ Inter UI voice, and the six atmospheric accents repurposed as chart/status hues.
|
|
|
18
18
|
76–96px Domaine Display serif hero, ABC Favorit marketing body, the full-section glow washes, the
|
|
19
19
|
96–128px section bands, and the print-magazine email-mockup insets.
|
|
20
20
|
|
|
21
|
-
**Categorically dark, and truly black.** Two doctrine-floor overrides are legitimate here and
|
|
22
|
-
plainly: the brand is dark by default (`data-theme="dark"` is the signature; a derived
|
|
23
|
-
floor ships alongside per schema), and its canvas is exactly `#000000`, never a
|
|
24
|
-
|
|
21
|
+
**Categorically dark, and truly black.** Two doctrine-floor overrides are legitimate here and
|
|
22
|
+
recorded plainly: the brand is dark by default (`data-theme="dark"` is the signature; a derived
|
|
23
|
+
light daytime floor ships alongside per schema), and its canvas is exactly `#000000`, never a
|
|
24
|
+
near-black.
|
|
25
25
|
|
|
26
26
|
## 1 Visual Theme
|
|
27
27
|
|
|
@@ -168,118 +168,3 @@ Directives the emitting agent follows verbatim:
|
|
|
168
168
|
border thickened to ink. Detail and edit go in the side panel beside the work, never a modal.
|
|
169
169
|
- Keep the UI on Inter; leave behind the Domaine Display serif hero, ABC Favorit body, the full-section
|
|
170
170
|
glows, the 96–128px section bands, and the email-mockup insets.
|
|
171
|
-
|
|
172
|
-
```yaml design-primitives
|
|
173
|
-
radius: 8px # corpus: buttons/inputs at rounded.md (8px); cards and code wells step to 12px (lg), 16px large; pill is badges-only
|
|
174
|
-
shadow-intensity: 0.1 # derived: corpus has no drop-shadow language ("hairlines carry the role drop shadows would"); only the light floor's overlays earn the faintest lift
|
|
175
|
-
border-weight: 1px # corpus: all borders are 1px translucent-white hairlines
|
|
176
|
-
density-gap: 1 # derived: marketing is spacious-editorial (96-128px bands); operator reads down to an honest standard tier, breathing carried by shell dims not the grid
|
|
177
|
-
density-inset: 1 # derived: matches density-gap for coherent component insets
|
|
178
|
-
font-sans: Inter, system-ui, sans-serif # corpus: Inter is the documented open-source UI face; ABC Favorit (marketing body) and Domaine Display (hero serif) stay behind
|
|
179
|
-
font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # corpus: Geist Mono in every code well
|
|
180
|
-
font-weight-normal: 400 # corpus: body weight stays at 400; hierarchy is family/size change, never a weight bump
|
|
181
|
-
font-weight-strong: 500 # corpus: headings and button labels at 500; the brand never bolds body to 600
|
|
182
|
-
heading-tracking: -0.015em # corpus: negative letter-spacing on headings (heading-md -0.4px at 24px) scaled to em; the -0.96px hero display tracking stays behind
|
|
183
|
-
duration-unit: 50ms # derived: corpus documents no motion (marketing site); operator-standard functional base
|
|
184
|
-
duration-fast: 100ms # derived: corpus silent on motion; functional tempo
|
|
185
|
-
duration-normal: 150ms # derived: corpus silent on motion; standard functional tempo
|
|
186
|
-
duration-slow: 250ms # derived: corpus silent on motion; overlay/panel transition
|
|
187
|
-
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard functional ease
|
|
188
|
-
contrast-boost: 1 # derived: the translucent-white hairlines are the intentional depth language; the structural 14% border reads on black without a boost
|
|
189
|
-
icon-stroke: 1.5 # derived: corpus silent on icons; a fine precise stroke suits the minimal editorial-technical feel
|
|
190
|
-
icon-size-base: 16px # derived: corpus silent on icon size; operator standard
|
|
191
|
-
sidebar-width-expanded: 248px # derived: corpus has no app shell (marketing nav only); standard expanded rail
|
|
192
|
-
sidebar-width-collapsed: 56px # derived: standard operator icon rail
|
|
193
|
-
topbar-height: 64px # corpus: nav-bar height 64px (the brand's nav height)
|
|
194
|
-
side-panel-width: 420px # derived: corpus has no shell; standard detail-panel width
|
|
195
|
-
side-panel-width-rich: 640px # corpus: email-mockup inset max width 640px, reused for the content-heavy panel
|
|
196
|
-
modal-width-max: 560px # derived: corpus's CTA/bands are full-bleed marketing; operator confirmation cap
|
|
197
|
-
form-max-width: 640px # derived: corpus max content ~1200px is marketing; readable single-column form cap
|
|
198
|
-
table-row-height: 40px # derived: technical dark grid at standard density; dense archetypes step down via the surface catalog
|
|
199
|
-
verbosity: default
|
|
200
|
-
feedback: subtle # derived: the brand is quiet and precise (pressed/active states barely documented); functional present feedback, not austere silence
|
|
201
|
-
density-tier: standard # derived: a spacious-editorial marketing brand read down to an honest, dense-capable operator tier
|
|
202
|
-
product-traits: [dev-tools, email-api, dashboard, log-stream, admin]
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
```yaml lever-manifest
|
|
206
|
-
version: 1
|
|
207
|
-
fonts: { sans: "Inter, system-ui, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
208
|
-
color-tokens:
|
|
209
|
-
light:
|
|
210
|
-
background: "#ffffff" # derived: no documented light mode; daytime inversion of the black canvas
|
|
211
|
-
foreground: "#000000" # corpus: on-light ink is #000000
|
|
212
|
-
card: "#ffffff"
|
|
213
|
-
card-foreground: "#000000"
|
|
214
|
-
muted: "#f1f7fe" # corpus: surface-light, the one documented light-tinted off-white
|
|
215
|
-
muted-foreground: "#5b6066" # derived: mid cool gray for secondary text on white (corpus on-light-mute is navy-tinted)
|
|
216
|
-
border: "#e4e8ee" # derived: light cool hairline
|
|
217
|
-
input: "#e4e8ee"
|
|
218
|
-
ring: "#000000" # derived: focus thickens to ink; on light that ink is black
|
|
219
|
-
primary: "#000000" # derived: the white-hot primary inverts to near-black — the highest-contrast solid anchor on white
|
|
220
|
-
primary-foreground: "#ffffff"
|
|
221
|
-
accent: "#eef4fc" # derived: cool light selection wash, a tint of muted; never colored
|
|
222
|
-
accent-foreground: "#000000"
|
|
223
|
-
destructive: "#e11d3f" # derived: brand red #ff2047 darkened for white-bg contrast
|
|
224
|
-
destructive-foreground: "#ffffff"
|
|
225
|
-
success: "#0a9d63" # derived: brand neon green #11ff99 darkened for readable status on white
|
|
226
|
-
warning: "#b8790a" # derived: brand yellow #ffc53d darkened to amber for white-bg contrast
|
|
227
|
-
popover: "#ffffff"
|
|
228
|
-
popover-foreground: "#000000"
|
|
229
|
-
secondary: "#f1f7fe"
|
|
230
|
-
secondary-foreground: "#000000"
|
|
231
|
-
chart-1: "#0075ff" # derived: brand accent-blue for light readability (corpus glow rgba(0,117,255))
|
|
232
|
-
chart-2: "#0a9d63" # derived: brand green darkened for light
|
|
233
|
-
chart-3: "#e06600" # derived: brand orange #ff801f darkened for light
|
|
234
|
-
chart-4: "#c2870a" # derived: brand yellow darkened for light
|
|
235
|
-
chart-5: "#e11d3f" # derived: brand red darkened for light
|
|
236
|
-
sidebar: "#f7f9fc" # derived: faint cool tint below the white canvas so the rail reads as chrome
|
|
237
|
-
sidebar-foreground: "#000000"
|
|
238
|
-
sidebar-primary: "#000000"
|
|
239
|
-
sidebar-primary-foreground: "#ffffff"
|
|
240
|
-
sidebar-accent: "#eef4fc"
|
|
241
|
-
sidebar-accent-foreground: "#000000"
|
|
242
|
-
sidebar-border: "#e4e8ee"
|
|
243
|
-
sidebar-ring: "#000000"
|
|
244
|
-
dark:
|
|
245
|
-
background: "#000000" # corpus: canvas is true black #000000, never a near-black — the brand's hard rule
|
|
246
|
-
foreground: "#fcfdff" # corpus: ink, faintly blue-cool off-white
|
|
247
|
-
card: "#0a0a0c" # corpus: surface-card, one luminance step above canvas
|
|
248
|
-
card-foreground: "#fcfdff"
|
|
249
|
-
muted: "#101012" # corpus: surface-elevated — subtle fills and hover, a step above card
|
|
250
|
-
muted-foreground: "#a1a4a5" # corpus: mute, supporting text and inactive labels
|
|
251
|
-
border: "rgba(255,255,255,0.14)" # corpus: hairline-strong, the structural border on cards, code wells, inputs
|
|
252
|
-
input: "rgba(255,255,255,0.14)"
|
|
253
|
-
ring: "#fcfdff" # corpus: focus thickens the border to ink; no separate ring colour
|
|
254
|
-
primary: "#fcfdff" # corpus: the white pill is the brightest pixel and the one accent
|
|
255
|
-
primary-foreground: "#000000" # corpus: black label on the white primary
|
|
256
|
-
accent: "rgba(255,255,255,0.09)" # derived: translucent-white selection wash (the brand's depth idiom); neutral, never colored
|
|
257
|
-
accent-foreground: "#fcfdff"
|
|
258
|
-
destructive: "#ff2047" # corpus: accent-red, inline error red
|
|
259
|
-
destructive-foreground: "#fcfdff"
|
|
260
|
-
success: "#11ff99" # corpus: accent-green, status dots
|
|
261
|
-
warning: "#ffc53d" # corpus: accent-yellow
|
|
262
|
-
popover: "#101012" # corpus: surface-elevated, overlays and menus
|
|
263
|
-
popover-foreground: "#fcfdff"
|
|
264
|
-
secondary: "#101012" # corpus: button-ghost surface is surface-elevated
|
|
265
|
-
secondary-foreground: "#fcfdff"
|
|
266
|
-
chart-1: "#3b9eff" # corpus: accent-blue
|
|
267
|
-
chart-2: "#11ff99" # corpus: accent-green
|
|
268
|
-
chart-3: "#ff801f" # corpus: accent-orange
|
|
269
|
-
chart-4: "#ffc53d" # corpus: accent-yellow
|
|
270
|
-
chart-5: "#ff2047" # corpus: accent-red
|
|
271
|
-
sidebar: "#000000" # corpus: nav-bar background is canvas
|
|
272
|
-
sidebar-foreground: "rgba(252,253,255,0.86)" # corpus: nav-bar text is body off-white at 86%
|
|
273
|
-
sidebar-primary: "#fcfdff" # corpus: the white accent in nav
|
|
274
|
-
sidebar-primary-foreground: "#000000"
|
|
275
|
-
sidebar-accent: "rgba(255,255,255,0.09)" # derived: selected-nav wash, matches accent
|
|
276
|
-
sidebar-accent-foreground: "#fcfdff"
|
|
277
|
-
sidebar-border: "rgba(255,255,255,0.06)" # corpus: hairline, the nav's soft bottom border
|
|
278
|
-
sidebar-ring: "#fcfdff"
|
|
279
|
-
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
280
|
-
radius-scale: [0, 4, 6, 8, 12, 16, 9999]
|
|
281
|
-
shadow-levels: [none, sm, md]
|
|
282
|
-
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
283
|
-
icons: { family: lucide, stroke: 1.5 }
|
|
284
|
-
accent-count: 1
|
|
285
|
-
```
|