Skip to content

Releases: jayeshmepani/cssforge

v0.3.1 — Comment Carry & Nest Merge

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:30

Safety-first semantic CSS refactoring and modernization workbench.

🩹 Patch on 0.3.0

Gather/nest selectors are unchanged from 0.3.0 (including :focus-visible { .skip-link:focus:not(&) }). This release only fixes how comments and duplicate nested blocks are assembled.

  • Leading comments travel with gathered rules: a /* … */ immediately above a moved rule is copied into the parent (just above the nest) and removed from the old location. No more orphan comments after gather.
  • Same nested selector merges: &.flash { animation } plus &.flash { @media { animation: none } } become one &.flash block.

📦 Version

0.3.00.3.1

Compatible with 0.3 (cssforge-core = "0.3" will pick this up).


Official Multi-Platform Binaries

Platform Architecture Archive File
Windows Intel / AMD x64 cssforge-v0.3.1-windows-x64.zip
Windows Snapdragon / ARM64 cssforge-v0.3.1-windows-arm64.zip
Linux Intel / AMD x64 cssforge-v0.3.1-linux-x64.tar.gz
Linux Snapdragon / ARM64 cssforge-v0.3.1-linux-arm64.tar.gz
macOS Apple Silicon M-Series cssforge-v0.3.1-macos-arm64.tar.gz

Checksums

SHA256 checksums are available in SHA256SUMS.txt.

Verification Example

sha256sum -c SHA256SUMS.txt

v0.3.0 — Smart Gather & Nesting

Choose a tag to compare

@github-actions github-actions released this 18 Aug 08:26

Safety-first semantic CSS refactoring and modernization workbench.

🧠 Smart Gather & Nesting

gather-related-selector-rules and the nest family now pick one home per rule instead of copying the same declarations into every matching parent.

  • Strongest existing parent wins: specificity first (.skip-link beats *; a class beats body). On a tie, prefix nesting (+ *, &:has(*)) beats appended &.
  • Appended & (MDN): when no stronger prefix home exists, reverse the context — .featured .card.card { .featured & { } }, :not(.card):not(&).
  • Gather through conditionals: related rules inside @media / @supports / @container / @starting-style can invert into the parent (.skip-link { :not(*) { @media (width <= 1024px) { … } } }).
  • Busy at-rules stay grouped: if an at-block has 3+ inner style rules that would land in 2+ different homes, the @media (etc.) is left populated. One or two inners, or every inner assigned to the same home, still nest into that selector.
  • Universal / document roots are weak homes: *, html, body, :root, and :host no longer absorb component rules via appended & (no more .skip-link+& / .skip-link:has(&) inside *).

🛡️ Safer Transformations

  • Selector lists are not combinators: ::view-transition-old(root), ::view-transition-new(root) is no longer rewritten as ::view-transition-new(root) { ::view-transition-old(root), & { } }. A comma list stays a list.
  • Pseudo-elements are not gather homes: & cannot represent ::…, so ::view-transition-* / ::before rules are not used as merge targets for other selectors.
  • Selector-list lines stay intact: &, / &::before, / &:hover, are not treated as declarations, so they no longer become &::before,; or a stray ;.
  • Missing semicolons repaired: last declarations without ; get one before a nested {, so display: block !important no longer runs into + .tabpanel {.
  • Media range syntax modernizes features with or without spaces: (max-width:60rem)(width <= 60rem).

📦 Version

0.2.10.3.0

This is a 0.x minor: same CLI and the same 26 rule IDs, but default gather/nest output can change. Dependents pinned to 0.2 will not pick this up automatically.


Official Multi-Platform Binaries

Platform Architecture Archive File
Windows Intel / AMD x64 cssforge-v0.3.0-windows-x64.zip
Windows Snapdragon / ARM64 cssforge-v0.3.0-windows-arm64.zip
Linux Intel / AMD x64 cssforge-v0.3.0-linux-x64.tar.gz
Linux Snapdragon / ARM64 cssforge-v0.3.0-linux-arm64.tar.gz
macOS Apple Silicon M-Series cssforge-v0.3.0-macos-arm64.tar.gz

Checksums

SHA256 checksums are available in SHA256SUMS.txt.

Verification Example

sha256sum -c SHA256SUMS.txt

v0.2.1 — Smart Safe File Discovery

Choose a tag to compare

@github-actions github-actions released this 18 Aug 05:49

Safety-first semantic CSS refactoring and modernization workbench.

📁 Smart Safe File Discovery Engine

CSSForge now applies zero-config safety ignore filters when scanning workspaces recursively, protecting build artifacts and preventing recursion loops:

  • Generated & Artifact Exclusions: Automatically ignores *.modern.css (prevents recursive re-modernization on output files), *.min.css, *.bundle.css, *.chunk.css, *.map.css, and backup files (*.bak.css, *.backup.css).
  • Directory Exclusions: Automatically skips node_modules/, target/, dist/, build/, out/, .next/, .nuxt/, .turbo/, .svelte-kit/, vendor/, .git/, .hg/, .svn/, and .cache/.
  • Explicit Target Override: Explicitly targeting any file path directly (e.g. cssforge interactive ./dist/bundle.min.css) continues to process the requested file.

📦 Version

0.2.00.2.1


Official Multi-Platform Binaries

Platform Architecture Archive File
Windows Intel / AMD x64 cssforge-v0.2.1-windows-x64.zip
Windows Snapdragon / ARM64 cssforge-v0.2.1-windows-arm64.zip
Linux Intel / AMD x64 cssforge-v0.2.1-linux-x64.tar.gz
Linux Snapdragon / ARM64 cssforge-v0.2.1-linux-arm64.tar.gz
macOS Apple Silicon M-Series cssforge-v0.2.1-macos-arm64.tar.gz

Checksums

SHA256 checksums are available in SHA256SUMS.txt.

Verification Example

sha256sum -c SHA256SUMS.txt

v0.2.0 — Gather Related Selectors, Select All & Windows TUI Scroll Fix

Choose a tag to compare

@github-actions github-actions released this 17 Aug 17:35

Safety-first semantic CSS refactoring and modernization workbench.

Gather related selector rules

CSSForge can now gather scattered, non-adjacent occurrences of the same selector into one canonical rule block.

/* before — same selector, far apart */
.skip-link { position: absolute; font-weight: 700; }
/* …unrelated rules, comments, @keyframes… */
.skip-link { font: optional; }
.skip-link+* { display: block; }
.skip-link::backdrop { background-color: gray; }
.skip-link:has(*) { color: #27ca3f; }
/* after */
.skip-link {
    position: absolute;
    font-weight: 700;
    font: optional;

    + * { display: block; }
    &::backdrop { background-color: gray; }
    &:has(*) { color: #27ca3f; }
}

What is gathered:

  • Exact selector duplicates — later blocks merge into the first; declarations are promoted to the top of that block
  • Directly attached pseudo-classes / elements → &:hover, &:has(*), &::backdrop
  • Combinator variants → + *, > .child, ~ .peer
  • Whitespace descendants → :not(*), .child (no spurious &)

Intervening rules, comments, and @keyframes are left untouched.

Safety: REVIEW. Requires --allow-review on the CLI, or enabling the rule in the TUI. Verify cascade order after apply.

TUI

  • Windows scroll fix on Select Rules: wrapped descriptions no longer bleed into the next row or desync the cursor. Each rule is one clipped line; only the list pane scrolls; header and enabled-count stay fixed.
  • PgUp / PgDn move the rules (and files) cursor by a page.
  • Select All (a) on the rules screen — same toggle-all behavior as files. Press again to deselect all.

Fixes

  • Worktree preservation: GatherRelatedSelectorRules previously replaced first.start..last.end, deleting everything between non-adjacent matches (including @keyframes). It now writes one replacement at first.start..first.end and a deletion plan per later occurrence.
  • Descendant & prefix: extract_related_nested_selector no longer prepends & to whitespace-separated descendants. .skip-link :not(*) nests as :not(*), not &:not(*).

Version

0.1.00.2.0

Official Multi-Platform Binaries

Platform Architecture Archive File
Windows Intel / AMD x64 cssforge-v0.2.0-windows-x64.zip
Windows Snapdragon / ARM64 cssforge-v0.2.0-windows-arm64.zip
Linux Intel / AMD x64 cssforge-v0.2.0-linux-x64.tar.gz
Linux Snapdragon / ARM64 cssforge-v0.2.0-linux-arm64.tar.gz
macOS Apple Silicon M-Series cssforge-v0.2.0-macos-arm64.tar.gz

Checksums

SHA256 checksums are available in SHA256SUMS.txt.

Verification Example

sha256sum -c SHA256SUMS.txt

CSSForge v0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 12:36

CSSForge v0.1.0

Safety-first semantic CSS refactoring and modernization workbench.

Official Multi-Platform Binaries

Platform Architecture Archive File
Windows Intel / AMD x64 cssforge-v0.1.0-windows-x64.zip
Windows Snapdragon / ARM64 cssforge-v0.1.0-windows-arm64.zip
Linux Intel / AMD x64 cssforge-v0.1.0-linux-x64.tar.gz
Linux Snapdragon / ARM64 cssforge-v0.1.0-linux-arm64.tar.gz
macOS Apple Silicon M-Series cssforge-v0.1.0-macos-arm64.tar.gz

Checksums

SHA256 checksums are available in SHA256SUMS.txt.

Verification Example

sha256sum -c SHA256SUMS.txt