{"_id":"@dscodotco/theme-presets","_rev":"2-6bfd682856d9b500d87be83a2eda039f","name":"@dscodotco/theme-presets","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dscodotco/theme-presets","version":"0.1.0","license":"MIT","_id":"@dscodotco/theme-presets@0.1.0","maintainers":[{"name":"williamk","email":"wkasel@gmail.com"}],"homepage":"https://github.com/ruopro/flightdeck#readme","bugs":{"url":"https://github.com/ruopro/flightdeck/issues"},"dist":{"shasum":"7b8ec3f78515b0ce27c0e94e114d82ef5ed6be78","tarball":"https://registry.npmjs.org/@dscodotco/theme-presets/-/theme-presets-0.1.0.tgz","fileCount":9,"integrity":"sha512-4P2hS1YrLVyXefPuqIxDoyMXob1SBAMJHV/74h9p1s/NfrpE/nYajY8lZsOtdbyxWn9f5+qquNFq1IR2sh4w8w==","signatures":[{"sig":"MEUCIBHWYBzD7p+nKfmqTuuwWpIMHDgHFFgQlhhQsmD1OAokAiEAzfRyfiIZHTyE2zeCXuGg8N7cab6l02lchxy0jHISIko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52989},"main":"./dist/index.cjs","type":"module","_from":"file:dscodotco-theme-presets-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","development":"./src/index.ts"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"williamk","email":"wkasel@gmail.com"},"_resolved":"/private/var/folders/gd/tyl93m8j5j30dvbb98j87smc0000gn/T/9f3c4d59000ea9fa9e75fc898951989d/dscodotco-theme-presets-0.1.0.tgz","_integrity":"sha512-4P2hS1YrLVyXefPuqIxDoyMXob1SBAMJHV/74h9p1s/NfrpE/nYajY8lZsOtdbyxWn9f5+qquNFq1IR2sh4w8w==","repository":{"url":"git+https://github.com/ruopro/flightdeck.git","type":"git","directory":"packages/theme-presets"},"_npmVersion":"10.9.4","description":"Combinable storefront theme presets — palette × type × structure composed into DTCG tokens, with a matrix generator. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/theme-presets_0.1.0_1789151776914_0.818272299874244","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@dscodotco/theme-presets@0.1.1","bugs":{"url":"https://github.com/ruopro/flightdeck/issues"},"dist":{"shasum":"aca20ebd899e0317d01cb9dc4679e0aaf4c8eabb","tarball":"https://registry.npmjs.org/@dscodotco/theme-presets/-/theme-presets-0.1.1.tgz","fileCount":9,"integrity":"sha512-buaejOJGqSGG8LtxokXPdnJPS/qhtcMvc7lSXw9Lnd8n0XFZEg1GkjoKHsOdOAx+XDU8iXmvajQmPt+6fkAs7g==","signatures":[{"sig":"MEUCIQC5V63CVCU1AkZtMSDHrPsQrFV+/k2E3d5mwoJOgCiJyAIgAge69TZ/lQMnvdP6JfMpBbn9nuXVDSkfgMKbOukVOrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHXJv2DL4Jb9NOlAKVaYR96fTbEA9HM7MD9BEO5aOQnDAiAPL4HBY6nvXOG08sps7y+EBFUF2mwpJ52WX+zVvGt+SQ=="}],"unpackedSize":52950},"main":"./dist/index.cjs","name":"@dscodotco/theme-presets","type":"module","_from":"file:dscodotco-theme-presets-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"license":"MIT","scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"version":"0.1.1","_npmUser":{"name":"williamk","email":"wkasel@gmail.com"},"homepage":"https://github.com/ruopro/flightdeck#readme","_resolved":"/private/var/folders/gd/tyl93m8j5j30dvbb98j87smc0000gn/T/c08bce0f318ac9effe1feafd6b819453/dscodotco-theme-presets-0.1.1.tgz","_integrity":"sha512-buaejOJGqSGG8LtxokXPdnJPS/qhtcMvc7lSXw9Lnd8n0XFZEg1GkjoKHsOdOAx+XDU8iXmvajQmPt+6fkAs7g==","repository":{"url":"git+https://github.com/ruopro/flightdeck.git","type":"git","directory":"packages/theme-presets"},"_npmVersion":"10.9.4","description":"Combinable storefront theme presets — palette × type × structure composed into DTCG tokens, with a matrix generator. Zero dependencies.","directories":{},"maintainers":[{"name":"williamk","email":"wkasel@gmail.com"}],"sideEffects":false,"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/theme-presets_0.1.1_1789172350234_0.3972771912427744"}}},"time":{"created":"2026-09-11T18:36:16.693Z","modified":"2026-09-12T00:19:10.591Z","0.1.0":"2026-09-11T18:36:17.053Z","0.1.1":"2026-09-12T00:19:10.327Z"},"bugs":{"url":"https://github.com/ruopro/flightdeck/issues"},"license":"MIT","homepage":"https://github.com/ruopro/flightdeck#readme","repository":{"url":"git+https://github.com/ruopro/flightdeck.git","type":"git","directory":"packages/theme-presets"},"description":"Combinable storefront theme presets — palette × type × structure composed into DTCG tokens, with a matrix generator. Zero dependencies.","maintainers":[{"name":"williamk","email":"wkasel@gmail.com"}],"readme":"# @dscodotco/theme-presets\n\nCombinable storefront theme presets for the RUO Pro / Flightdeck platform — a store's look decomposed into three independent axes, composed into DTCG-style `theme.tokens` the storefront's derivation engine consumes. Zero dependencies.\n\n```bash\nnpm install @dscodotco/theme-presets\n```\n\n## The three axes\n\n1. **Palette** — the core color roles (`primary`, `accent`, `background`, `surface`, `surfaceMuted`, `text`, `muted`, `border`, `primaryForeground`); the derivation engine computes everything else. Eight palettes: `clinical`, `midnight`, `oceanic`, `warm-sand`, `luxe-mono`, `vivid`, `forest`, `paper-ink` (the RUO Pro brand identity — paper ground, ink primary, DSCO violet accent).\n2. **Type** — a font pairing (heading + body + mono). Five sets: `grotesk`, `editorial`, `brutalist`, `humanist`, `dsco` (the platform's own face).\n3. **Structure** — architectural variants read from the token tree: nav style (`classic` / `glass-pill`), hero style (`off` / `gradient` / `starfield`), footer style (`minimal` / `columns` / `centered`). Five named presets: `editorial-quiet`, `editorial-columns`, `bold-gradient`, `space-hero`, `classic-shop`.\n\nBecause the axes are independent, every combination is a coherent theme: 8 palettes × 5 type sets × 5 structures = 200 distinct, ready-to-ship looks with zero bespoke CSS.\n\n## Compose one theme\n\n```ts\nimport { composeThemeTokens } from \"@dscodotco/theme-presets\";\n\nconst tokens = composeThemeTokens({\n  palette: \"midnight\",\n  type: \"grotesk\",\n  structure: \"space-hero\",\n});\n// -> { color: {...}, font: {...}, nav: { style }, footer: { style }, hero: { style } }\n```\n\nThe result is a manifest `theme.tokens` object. A store can adopt a preset and still override any individual token on top. A structure with `hero: \"off\"` declares no hero style, so the renderer shows no backdrop — that is the hero toggle.\n\n## The full matrix\n\n```ts\nimport { themeMatrix } from \"@dscodotco/theme-presets\";\n\nfor (const { id, choice, tokens } of themeMatrix()) {\n  // id is stable, e.g. \"warm-sand--editorial--editorial-quiet\" — pin it per store\n}\n```\n\n## Curated shortlist\n\n`FEATURED_THEMES` is the named shortlist for the store-builder UI — \"RUO Crystal\", \"Clinical Trust\", \"Midnight Lab\", \"Warm Apothecary\", \"Luxe Mono\", \"Vivid Drop\", \"Deep Ocean\", \"Field Notes\" — each a `ThemeChoice` you can hand straight to `composeThemeTokens`.\n\nThe raw axes are exported too (`PALETTES`, `TYPE_SETS`, `STRUCTURES`) along with their id types (`PaletteId`, `TypeId`, `NavStyleId`, `HeroStyleId`, `FooterStyleId`, `StructurePreset`, `ThemeChoice`), so a builder UI can enumerate options without hardcoding them.\n\n## Status\n\nAlpha (0.x). Palettes are contrast-checked against the storefront's WCAG AA floor (see the `oceanic` note in the source).\n","readmeFilename":"README.md"}