@ciderpress/theme
1.0.0-rc.2
Patch Changes
-
e4d81aa: Test/exercise the CI release pipeline.
No code changes — this changeset only exists to force the changesets bot to open a release PR, validate that the GitHub Actions workflow can publish via npm trusted publishing (no
NPM_TOKEN, OIDC-only withid-token: write+NPM_CONFIG_PROVENANCE: true), and confirm provenance attestations land on the resulting1.0.0-rc.2releases. Following the local bootstrap publish of1.0.0-rc.1, this is the first CI-driven cut.
1.0.0-rc.1
Major Changes
-
0a651df: Rename to
ciderpress. The project moved to thethebytefarmorg and the kit now lives at the unscopedciderpresspackage name (replacing@zpress/kit).Consumer migration:
@zpress/cli→@ciderpress/cli@zpress/config→@ciderpress/config@zpress/ui→@ciderpress/ui@zpress/theme→@ciderpress/theme@zpress/templates→@ciderpress/templates@zpress/kit→ciderpress(unscoped)zpress.config.ts→ciderpress.config.ts- Window globals:
__ZPRESS_*__→__CIDERPRESS_*__ - CSS vars:
--zp-*→--cp-*
The
@zpress/*packages are not republished —@ciderpress/*starts fresh at this version. Tagline: press your docs.
1.0.0-rc.0
Major Changes
-
ciderpress 1.0 — release candidate
This is a major release that locks the v1 public API. Headline changes:
Theme system
- Renamed the built-in
basetheme tohoneycrisp(apple red, the canonical brand theme) and addedgrannysmith(apple green) as a second apple-themed default. Both ship withdarkandlightvariants; the sun/moon toggle swaps between them. The legacy slug'default'aliases to'honeycrisp'viaTHEME_ALIASESfor backward compatibility. The full built-in roster is nowhoneycrisp,grannysmith,midnight, andarcade. - Replaced
theme.colorModewiththeme.variant(values:'dark' | 'light'). The'toggle'value is no longer supported — themes that declare both variants always show the toggle; themes that declare one hide it. defineTheme()input shape changed from{ name, tokens, modes, defaultMode }to{ name, variants: { dark?, light? }, defaultVariant? }. The factory validates the envelope before parsing token trees so error messages now point at the offending input field.ciderpressand@ciderpress/configno longer re-exportColorMode,ThemeMode,COLOR_MODES, orresolveDefaultColorMode. UseThemeVariant,THEME_VARIANTS, andresolveDefaultVariantfrom@ciderpress/theme. The deprecated aliases remain in@ciderpress/themeitself for one-version migration safety.
Config surface
Frontmatteris now strict — unknown keys are rejected at config load and produce a typed compile-time error. On-disk markdown frontmatter is unaffected (gray-matter never typed it asFrontmatter).- Renamed
WorkspaceCategory→WorkspaceGroup. Theconfig.workspacesfield name is unchanged. - Every field on
CiderpressConfigand its sub-types now has solid JSDoc that propagates to IDE hover docs. - Tightened the CLI
--color-modeschema fromstringtoenum('dark', 'light').
Dependency hygiene
- Removed
gray-matter(last released 2021, drags in the abandonedjs-yaml@3line with known prototype-pollution CVEs). Replaced with a ~25-lineparse/stringifyhelper built onyaml(eemeli/yaml). - Removed unused
js-yamland@types/js-yamldirect deps from@ciderpress/cli.
Fixes
safe-url.tsregex is now stored with�- escape sequences instead of raw control bytes. Git no longer marks the file as binary; editors render it correctly.- Deleted orphaned
packages/ui/src/head/js/color-mode-{dark,light}.js. - Hardened variant resolution across the head IIFE, theme provider, and theme switcher with cross-reference comments and a re-entrancy guard on the MutationObserver snap-back.
Migration
- Renamed the built-in
0.3.2
Patch Changes
- b912b2d: Update and add READMEs
0.3.1
Patch Changes
-
3e7a28a: Enforce consistent file structure conventions across all packages and upgrade dependencies to latest versions.
File Structure
Apply a standardized file layout pattern to every source file in the monorepo:
- Exports first: All exported functions, constants, and types appear at the top of each file immediately after imports.
- Private separator: Non-exported (private) helper functions are placed below a
// --- Private ---section separator comment. - Complete JSDoc: Every function now has full JSDoc documentation including
@paramand@returnstags. Non-exported helpers include the@privatetag. - Spacing cleanup: Removed inconsistent double blank lines between declarations across all packages.
Test Colocation
Moved all test files from
packages/*/test/directories to sit alongside their source files inpackages/*/src/:packages/cli/test/→packages/cli/src/lib/packages/config/test/→packages/config/src/packages/core/test/→packages/core/src/(includingsync/andsync/sidebar/subdirectories)packages/templates/test/→packages/templates/src/packages/theme/test/→packages/theme/src/packages/ui/test/→packages/ui/src/
Standards
Updated
.claude/rules/typescript.mdto codify the file structure conventions so all future code follows the same pattern.Dependency Upgrades
oxlint1.55.0 → 1.56.0oxfmt0.40.0 → 0.41.0@kidd-cli/core0.4.0 → 0.7.0c124.0.0-beta.3 → 4.0.0-beta.4laufen1.1.0 → 1.2.1@iconify-json/material-icon-theme1.2.55 → 1.2.56@iconify-json/simple-icons1.2.73 → 1.2.74
0.3.0
Minor Changes
- c57ab70: Add per-theme
modessupport to declare supported color modes (dark, light, or both) and hide the appearance toggle for single-mode themes like arcade and midnight
Patch Changes
- 1b3b8e3: Add vitest test infrastructure and 122 unit tests across all packages
0.2.1
Patch Changes
- 6df5ab7: fix(packages/core): map nav items with
textinstead oftitlefor Rspress compatibility fix(packages/ui): inject critical CSS via Rsbuildhtml.tagsso loading screen works in dev mode fix(packages/ui): re-enabledata-cp-readydismiss flag in ThemeProvider fix(packages/ui): replace pong/invaders loaders with simple dots loader fix(packages/theme): removearcade-fxas standalone theme (effects already apply with arcade)
0.2.0
Minor Changes
-
2055c1a: New Packages: @ciderpress/theme and @ciderpress/config
This release introduces two new packages that refactor configuration and theme management:
@ciderpress/theme - Theme definitions and utilities
- Type-safe theme definitions with
LiteralUnionpattern for autocomplete + extensibility - Built-in themes:
base,midnight,arcade,arcade-fx - Icon color types with autocomplete support
- Zod schemas for theme validation
- Utility functions:
resolveDefaultColorMode,isBuiltInTheme,isBuiltInIconColor
@ciderpress/config - Configuration loading and validation
- Multi-format config support:
.ts,.js,.json,.jsonc,.yml,.yaml - Type-safe
defineConfighelper loadConfigfunction with Result-based error handling- Zod schemas for complete config validation
- JSON Schema generation for IDE autocomplete (
@ciderpress/config/schema) - Re-exports theme utilities for convenience
@ciderpress/core - Internal refactoring
- Removed direct
c12dependency - Now re-exports config and theme utilities from
@ciderpress/config - Public API remains backwards compatible
- Added new exports:
ICON_COLORS,ConfigErrorType,LoadConfigOptions
@ciderpress/ui - Dependency updates
- Removed
@ciderpress/coredependency for config types - Now uses
@ciderpress/configand@ciderpress/themedirectly - Added support for custom themes with fallback to 'toggle' color mode
- Fixed: Added
arcade-fxtheme to theme switcher
Migration Guide
For most users, this is a drop-in replacement with no migration needed. All existing imports from
@ciderpress/corecontinue to work.If you were importing from internal paths, update as follows:
JSON/YAML Config Support
You can now use JSON or YAML config files with IDE autocomplete:
Custom Themes
The
ThemeNametype now supports custom theme names with autocomplete for built-ins: - Type-safe theme definitions with