Skip to content

Releases: inkdropapp/theme-dev-helpers

v0.6.1

Choose a tag to compare

@craftzdog craftzdog released this 01 Jul 06:35

Fixes

  • generate-palette: map the mermaid manifest category to the preview theme type so --mermaid-* diagram colours are included in the extracted palette.json (the stylesheet was already linked in, but its variables were silently dropped).
  • ci: drop the removed --type ui flag from the palette-generation step (obsolete since generate-palette started extracting all surfaces in one run in v0.6.0).

Chores

  • Bump @inkdropapp/css to ^0.9.0 (adds the mermaid variable category) and @inkdropapp/base-ui-theme to ^0.7.6.
  • Bump puppeteer, react-router-dom, vite, @vitejs/plugin-react, @types/node, oxfmt, and oxlint.

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@craftzdog craftzdog released this 30 Jun 05:36

Highlights

Unified theme palettes

Inkdrop is merging the three theme types (ui / syntax / preview) into a single unified theme that declares "theme": true and styles the app UI, the editor, and the Markdown preview at once. generate-palette follows suit.

Where it previously extracted one theme type per run (chosen via --type or the package's "theme" string), it now extracts all three surfaces in a single run and merges them into one palette.json. Each surface is still read off the element Inkdrop scopes its tokens to:

  • ui<body>
  • syntax.cm-editor
  • preview.mde-preview

Variables are merged in ui → syntax → preview declaration order.

Breaking changes

  • The -t, --type option is removed — a single run now emits every surface's variables, so there is no longer a type to select.
  • A theme package's "theme" field is now a boolean marker ("theme": true); the old "ui" / "syntax" / "preview" string values are no longer used.

Features

  • generate-palette: extract a unified theme palette (UI + syntax + preview) in one run, reading each surface off its scoping element and merging them in declaration order.

Full Changelog: v0.5.2...v0.6.0

v0.5.2

Choose a tag to compare

@craftzdog craftzdog released this 24 Jun 05:37

Highlights

Scope-aware probing for syntax & preview palettes

generate-palette now reads each theme type's variables from the element Inkdrop actually scopes them to, instead of always reading off <body>:

  • ui<body>
  • syntax (--syntax-* / --editor-*) → .cm-editor
  • preview (--gfm-* / markdown) → .mde-preview

A new resolveProbeSelector(type) picks the probe element, and the preview HTML renders both .cm-editor and .mde-preview so theme overrides scoped to those selectors resolve correctly.

Features

  • generate-palette: probe .cm-editor / .mde-preview for syntax and preview palettes so scoped theme overrides are picked up.

Fixes

  • ci: pass --no-sandbox to Puppeteer so Chrome launches on CI runners (Ubuntu 23.10+ disables unprivileged user namespaces).

Chores

  • Bump @inkdropapp/css to ^0.8.0.

Full Changelog: v0.5.1...v0.5.2

v0.5.0

Choose a tag to compare

@craftzdog craftzdog released this 23 Jun 09:35

Highlights

Theme-type palettes (--type)

generate-palette can now extract the variables for a specific theme type. Pass -t, --type <ui|syntax|preview>, or let it default to the theme package's "theme" field:

  • ui — app chrome plus the note status, tags, and task-progress palettes
  • syntax — editor syntax-highlighting tokens
  • preview — the rendered Markdown preview

If no --type is given and the package has no (or an unknown) "theme" field, the CLI errors out and exits non-zero.

This adapts to @inkdropapp/css 0.7.0, whose variables.json is now grouped by category (ui, status, tags, task-progress, markdown, syntax) instead of a flat list.

Features

  • generate-palette: add -t, --type to select which theme type's variables to extract (ui, syntax, or preview), defaulting to the package's "theme" field.
  • generate-palette: load the syntax.css and markdown.css base stylesheets so syntax and preview variables resolve to their defaults.

Chores

  • Bump @inkdropapp/css to ^0.7.0.

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@craftzdog craftzdog released this 19 Jun 01:59

Highlights

Migrated from Bun to Node.js

The toolchain no longer requires Bun — contributors and theme authors only need Node.js (>= 24). The generate-palette CLI is now bundled to plain JS with tsdown, the dev-server runs straight from source via Vite, and unit tests run on Vitest.

Features

  • generate-palette: resolve light-dark() to raw values, picking the theme's light/dark branch so non-CSS consumers (e.g. the mobile renderer) get concrete colors — including nested calls and values embedded in shadows/gradients/borders.

Fixes

  • generate-palette: resolve Inkdrop's base stylesheets from the package's own dependencies (works under pnpm's strict node_modules) and load ui.css, so the extracted palette includes every variable left at its default instead of only the theme's overrides.
  • palette: include task-progress variables in the extracted set.

Chores

  • Bump @inkdropapp/base-ui-theme and @inkdropapp/css.
  • Allow pnpm builds (puppeteer / esbuild).

Full Changelog: v0.3.8...v0.4.0

v0.3.8

Choose a tag to compare

@craftzdog craftzdog released this 17 Jun 06:48

What's Changed

  • fix(dev-server): avoid port clash with Inkdrop's desktop dev server
  • test(generate-palette): add unit tests
  • chore(toolchain): migrate to pnpm, oxlint, oxfmt
  • chore(deps): bump up dependencies

Full Changelog: v0.3.7...v0.3.8