Skip to content

chore(deps): migrate to Tailwind CSS 4 and consolidate pending dependency and fix work - #134

Merged
wavival merged 17 commits into
devfrom
chore/tailwind-4
Oct 6, 2026
Merged

wavival merged 17 commits into
devfrom
chore/tailwind-4

Conversation

@wavival

@wavival wavival commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Summary

Single pull request for this session's work. It supersedes #130 and #132, whose branches are merged into this one.

  • Tailwind CSS 3 to 4 (tailwindcss and @tailwindcss/vite 4.3). The theme moves to the @theme block in src/styles/global.css, dark mode is a @custom-variant, and tailwind.config.mjs, postcss.config.cjs and autoprefixer are removed. Site CSS is imported into the utilities layer to keep a flat cascade as in Tailwind 3; element rules sit in @layer base.
  • Privacy pages mention the quote rate limit (from feat(security): mention the quote rate limit in the privacy pages #130).
  • Decision labels fix: decisions nested in an open part keep their own "Ver" and "Cerrar" labels (from fix(ui): keep each disclosure label tied to its own summary #132), with a test.
  • npm audit fix clears postcss-selector-parser. Four high findings remain (braces, micromatch, fast-glob, @vercel/microfrontends); braces has no patched release.
  • Docs (README, DESIGN, COMPONENTS, security, ROADMAP, engineering, performance) and CHANGELOG updated.

Verification

  • format, lint, astro check, build, csp:check, css:check, security-txt:check, check-audit: pass.
  • Playwright desktop and mobile: 412 passed.
  • Lighthouse CI assertions: pass (public report upload is blocked in the sandbox).
  • Compared with the Tailwind 3 build: same geometry and computed styles on all pages. Only pixel difference: text-wrap: pretty breaks one paragraph of /en/projects/wavival-dev/ differently.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB


Generated by Claude Code

claude and others added 17 commits October 6, 2026 13:15
Section 02 of /privacidad and /en/privacy/ says the quote form counts
submissions per IP address for at most 10 minutes in server memory, without
storing or sharing it. Dates, security guide, roadmap and changelog updated.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
The when-open and when-closed rules used a descendant selector, so an open
ecosystem part switched the closed architecture decisions nested inside it to
"Cerrar". The rules now target the summary of the same disclosure. Test and
changelog added.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
Output of the official upgrade tool: @tailwindcss/postcss replaces the
Tailwind 3 PostCSS plugin, the JavaScript theme moves into an @theme block in
global.css, the dark variant becomes @custom-variant, and the renamed
utilities are migrated. Not verified yet: a pixel comparison of every page
against the Tailwind 3 build is still running, so no pull request is open.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
…k in progress)

Astro's Vite pipeline cannot resolve the PostCSS entry of Tailwind 4, so the
build uses @tailwindcss/vite as the Tailwind documentation recommends for
Astro. postcss.config.cjs is removed.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
Tailwind 4 utilities are layered, so unlayered html, body and anchor rules
beat every utility class (the footer links changed color). The rules now
live in @layer base, which restores the Tailwind 3 cascade.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
The site's component CSS goes in the utilities layer before the generated
utilities, so specificity decides between a utility and a component rule as it
did in Tailwind 3. The @Utility conversion of the upgrade tool is reverted:
it let section-gap beat m-0 and the layered utilities beat the wide project
card rules. Geometry and computed styles match the Tailwind 3 build on every
page.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
The decisions of a case study read Ver and Cerrar; Ver detalle is the label of
a part. The test and the changelog entry now say so.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
Move the theme to @theme in global.css, use @tailwindcss/vite, keep a flat
cascade, update docs and changelog, and run npm audit fix.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MYK1VWRrVBpo1Hvb3wQJnB
@vercel

vercel Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
wavival-dev Ready Ready Preview Oct 6, 2026 1:52pm UTC

@github-actions
github-actions Bot enabled auto-merge October 6, 2026 13:52
@wavival
wavival disabled auto-merge October 6, 2026 13:52
@wavival
wavival merged commit 010955d into dev Oct 6, 2026
15 checks passed
@wavival
wavival deleted the chore/tailwind-4 branch October 6, 2026 14:01

This branch was successfully deployed

1 active deployment
Preview — c0e00826 Deployed Oct 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants