Repository navigation
Replace Material Design Lite with Bootstrap 5 - #146
Merged
Merged
Conversation
MDL hasn't been maintained since 2016 (#84). The pages now use Bootstrap 5.3.8 and Bootstrap Icons 1.13.1, both self-hosted from their npm packages, in place of MDL, Roboto and Material Icons. No page loads anything from another site. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🚀 Staging Preview Deployed! URL: https://preview-seating-pr-146-137456085712.us-west1.run.app |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #146 +/- ##
=======================================
Coverage 80.01% 80.01%
=======================================
Files 31 31
Lines 2442 2442
=======================================
Hits 1954 1954
Misses 488 488
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # server/static/css/style.css # server/templates/email.html
pancakereport
marked this pull request as ready for review
October 23, 2026 00:02
Author
|
Feels like big visual changes. I'm going to merge now and fix things I don't like later when I go through things with a fine-toothed comb for a11y purposes. |
|
Cool! One thing you can do, tell claude to upload screenshots of the app to PRs. :) |
pancakereport
added a commit
to berkeley-cdss/sections
that referenced
this pull request
Oct 26, 2026
…y colors Follow seating (berkeley-cdss/seating#146): - The landing, offerings and import pages use Bootstrap 5.3.8 instead of MDL, Roboto and Material Icons. Bootstrap is self-hosted (the same files seating vendors), so these pages load nothing from another site. - Both they and the course pages (the React app) use Berkeley Blue in place of Bootstrap's blue, and a Berkeley Blue header underlined in California Gold, as seating does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #84. Material Design Lite hasn't been maintained since 2016. #85 pointed the pages at a working copy of it, and #133 then hosted that copy in the repo, but both PRs left Bootstrap 5 as the long-term replacement. This PR makes that switch. The two vendor files are hosted in the repo the same way #133 hosted MDL. Google Fonts was the last thing pages loaded from another site, and it's gone too, so no page loads anything from another site now.
Changes
server/static/vendor/bootstrap/: Bootstrap 5.3.8 (the latest 5.x), withbootstrap.min.css,bootstrap.bundle.min.js(includes Popper, which dropdowns and tooltips need), their source maps, and the MITLICENSE. These are thedist/files of the npm packagebootstrap@5.3.8.server/static/vendor/bootstrap-icons/: Bootstrap Icons 1.13.1, withbootstrap-icons.min.css, itswoff2/wofffonts, and the MITLICENSE, from the npm package. These replace the Material Icons ligature font from Google Fonts. The newest version, 1.13.2, came out on Oct 8, which is too recent to adopt yet.server/static/vendor/material-design-lite/: removed. Roboto is gone as well, and the pages now use Bootstrap's system font stack.navbarthat folds into a menu button on narrow screens. The Rooms and user menus are Bootstrap dropdowns, which also fixes the old<a>-wrapped<li>markup.nav-tabs, which work with the keyboard and carry tab/tabpanel ARIA roles.form-labelabove aform-control. Floating labels were dropped. Several checkbox labels pointed at a wrapperdivinstead of the input, so clicking the label did nothing. They now point at the input itself.btn btn-primaryfor main actions,btn-outline-*for secondary ones, anddangerfor deleting.list-groupandtable.<div onclick>. They're now real<a>or<button>elements witharia-labels, so they can be reached with the keyboard.utils.jscovers every page..seat-tooltipplaced right after the seat. Since tooltips now open on focus as well as hover, the layout preview's seat buttons show theirs from the keyboard.data-bs-title.errorcategory maps to Bootstrap'sdanger.h1. Page headings were shifted down two levels (<h4>→<h2 class="h4">, and so on) so they still look the same but no longer skip levels, which the axe tests check for.#003262) replaces Bootstrap's blue everywhere it appears: the header, buttons, links, tabs, checkboxes, focus rings and the dropdown's active item. A California Gold (#FDB515) line runs under the header, and a gold underline marks the hovered nav link. These are the valueslayout_preview.cssalready cites from brand.berkeley.edu. Bootstrap's prebuilt CSS hard-codes its blue in several components, sostyle.cssoverrides each one the pages use.#f7f7f7.Tests
Some tests matched MDL markup, so they were updated to match the new markup: list-item links, tooltip markup, button classes, the recipients note, the tab selector, and the Front/Back headings. One test checked that the assign bar sticks while scrolling. MDL scrolled an inner container, while Bootstrap scrolls the window, so the test now scrolls the window.
Not in this PR
Testing
🤖 Generated with Claude Code