Skip to content

Replace vendored Bootstrap with a minimal custom stylesheet - #652

Merged
hsbt merged 6 commits into
masterfrom
claude/remove-bootstrap-dependency-fe9f72
Jul 26, 2026
Merged

Replace vendored Bootstrap with a minimal custom stylesheet#652
hsbt merged 6 commits into
masterfrom
claude/remove-bootstrap-dependency-fe9f72

Conversation

@hsbt

@hsbt hsbt commented Jul 26, 2026

Copy link
Copy Markdown
Member

The site loads a vendored bootstrap.min.css (v5.2.3, about 190KB) but only uses its navbar, container, alert, badge, and table styles, and none of its JavaScript. This reimplements that subset in application.css (about 4KB, 1.4KB gzipped) and removes the vendored file, leaving no third-party CSS. Follow-up commits drop the !important flags and selector patterns that only existed to override Bootstrap's specificity, and hoist repeated colors and the navbar height into custom properties.

One visible change is that the navigation links now stay visible on narrow screens. They used to be hidden because the layout had a collapse block but never rendered the toggler button.

Generated with Claude Code

hsbt and others added 6 commits July 27, 2026 07:56
The site only uses the navbar, container, alert, badge, and table
pieces of Bootstrap 5.2.3, and none of its JavaScript. Define that
subset locally so the vendored stylesheet can be dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The collapse wrapper never worked because the toggler button was never
rendered, which also kept the navigation links hidden on narrow
screens. The row and span12 wrappers are Bootstrap 2 leftovers that
current Bootstrap does not style at all.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
application.css now covers everything the site used from Bootstrap,
so drop the 190KB vendored stylesheet and its link tag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
They only existed to out-rank Bootstrap's high-specificity table
selectors. The local rules already win on plain specificity.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collapse the mobile border-stripping lists with :is() and drop the tr
step from the reports selectors, which constrained nothing. Keeping
tbody/tfoot in the last-row rule preserves the thead bottom border.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The status colors, border color, and navbar height were each written
out in several places. Deriving the body offset from --navbar-height
also removes the magic 50px that had to track the navbar size by hand.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hsbt
hsbt merged commit b21691f into master Jul 26, 2026
2 checks passed
@hsbt
hsbt deleted the claude/remove-bootstrap-dependency-fe9f72 branch July 26, 2026 23:08
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.

1 participant