Skip to content

redesign: replace Bootstrap with TailwindCSS#3126

Draft
Soxasora wants to merge 5 commits into
stackernews:masterfrom
Soxasora:redesign-tailwind
Draft

redesign: replace Bootstrap with TailwindCSS#3126
Soxasora wants to merge 5 commits into
stackernews:masterfrom
Soxasora:redesign-tailwind

Conversation

@Soxasora

@Soxasora Soxasora commented Jul 3, 2026

Copy link
Copy Markdown
Member

Description

This PR:

  • introduces TailwindCSS
  • replaces all the used Bootstrap utility classes with Tailwind utility classes
    • codemods were used to do this mechanically
  • temporarily bridges Bootstrap and Tailwind until Bootstrap is fully removed

Bootstrap is an amazing library that still serves a good fraction of the web, but its development has slowed in recent years. Its team is working hard on version 6, but compared to how fast the rest of the web is moving, it feels like it's lagging behind.
Tailwind gives us updated utilities and, more importantly, a powerful platform for our redesign.

This migration supports mixing Tailwind with CSS modules: Tailwind utility classes have the most important CSS layer, they always win over unlayered (even with !important) bootstrap utilities and CSS modules.


Up next:

  • redesign: SN UI components with Base UI
  • redesign: custom SN tokens

Screenshots

Stacker News homepage rendered with Tailwind utility classes

image some things are not right, e.g. the price carousel's text color is not greyish/muted

Additional Context

This PR only removes the usage of Bootstrap(css classes, where possible) and introduces the Tailwind fundamentals to create our own UI components with Base-UI.
Bootstrap still coexists with Tailwind until all the tokens and css modules have been adjusted.

postcss-preset-env is used (maybe temporarily) to restore Next.js postcss defaults and smooth the transition.

Checklist

Are your changes backward compatible? Please answer below:

For example, a change is not backward compatible if you removed a GraphQL field or dropped a database column.

On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:

For frontend changes: Tested on mobile, light and dark mode? Please answer below:

Did you introduce any new environment variables? If so, call them out explicitly here:

Did you use AI for this? If so, how much did it assist you?

Yes, for codemods and bootstrap compatibility layer

Soxasora added 4 commits July 3, 2026 14:46
…d.css; move katex out of globals.scss to avoid tailwind re-tokenization
- bs-tw-map
  - bootstrap to tailwind utility codemod
- bs-utility-check
  - bootstrap utility leftover checker
- bs-tw-map
  - bootstrap to tailwind token map
@socket-security

socket-security Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpostcss@​8.5.10 ⏵ 8.5.16100 +11008192100
Addedtailwindcss@​4.3.21001008498100
Addedpostcss-preset-env@​11.3.29610010093100
Added@​tailwindcss/​postcss@​4.3.29910010098100

View full report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant