Skip to content

v7.9.0

Choose a tag to compare

@macCesar macCesar released this 06 May 03:45
· 33 commits to main since this release

[7.9.0] - 2026-05-05

Added

  • Auto-derived alpha keys for opacity modifier on semantic colors. Writing bg-surface/65 (or any other opacity modifier on a class that resolves to a semantic name) now produces a working rule instead of a warning or error. PurgeTSS detects that the underlying value is a semantic name from semantic.colors.json, derives a new key <originalKey>_<alphaPercent> with the original light/dark hex values and the requested alpha applied to both modes, writes the derived key back to semantic.colors.json, and emits the rule against it (e.g. '.bg-surface/65': { backgroundColor: 'surfaceColor_65' }). The Light/Dark switching that semantic colors give you is preserved end-to-end. Works from both direct XML usage (handled in tailwind-purger.js) and apply: strings inside config.cjs (handled in compileApplyDirectives). Idempotent: re-running build/purge reuses the existing key without duplicating; if a key with the same name exists with different values (e.g. a manual edit), the build halts with a Conflict error so user edits are not silently overwritten. Constraints match the existing opacity modifier — integer 0–100 alpha, base key must already exist in semantic.colors.json. The fail-safe warning/throw added earlier this release still fires when the base key is missing.

Changed

  • experimental/completions2.jssrc/core/builders/auto-utilities-builder.js. The file that owns autoBuildUtilitiesTSS — the active production path that emits utilities.tss from config.cjs — was originally placed under experimental/ while the v6→v7 ESM refactor was in flight, then promoted to production without the rename happening. The file is now under src/core/builders/ next to tailwind-builder.js (its only consumer), with a name that matches its single export.
  • User-facing glossary output path renamed: purgetss/experimental/tailwind-classes/purgetss/glossary/tailwind-classes/. Breaking for any tooling or CI that reads from the old path — no transition shim was added on purpose.

Removed

  • Dead helpers in src/core/builders/tailwind-helpers.js: combineAllValues, getBaseValues, removeFitMaxMin. Leftovers from the v6→v7 ESM refactor that were never on the production build path.
  • Dead resetStyles() in src/shared/helpers/core.js. Function was only referenced by tests; not on the active build path.
  • Orphan wrapper src/dev/builders/tailwind-builder.js. Zero consumers anywhere in src/, bin/, lib/, or tests/.

Fixed

  • semantic tonal palette: Light/Dark mapping was inverted. buildSemanticPalette was assigning the mirrored hex to light and the original hex to dark. The two values are now in their natural slots.
  • Opacity modifier on semantic colors no longer crashes or silently disappears. tailwind-purger.js now skips the opacity blend and prints a yellow warning naming the offending class plus three concrete next steps. compileApplyDirectives now throws a descriptive Error with the same three suggestions instead of dereferencing a null regex match.
  • Background gradient color order was position-dependent and could swap from/to after sort(). The two entries are now identified by array length instead of by index.
  • theme.Window / theme.View / theme.ImageView no longer leak framework presets when defined at the top level (replace mode). The merge now tracks userReplaced[comp] BEFORE folding extend into theme and skips the preset injection when the element was defined at the replace level.
  • Gradient direction (bg-gradient-to-X) was silently dropped when combined with gradient colors (from-X to-Y) in the same apply string. Direction and colors now coexist in one object.