Skip to content

chore: Upgrade bslib to 0.11.0 and Bootstrap to 5.3.8, add brite theme#2246

Merged
cpsievert merged 2 commits into
mainfrom
chore/upgrade-bslib-bootstrap-5.3.8
May 28, 2026
Merged

chore: Upgrade bslib to 0.11.0 and Bootstrap to 5.3.8, add brite theme#2246
cpsievert merged 2 commits into
mainfrom
chore/upgrade-bslib-bootstrap-5.3.8

Conversation

@elnelson575
Copy link
Copy Markdown
Contributor

@elnelson575 elnelson575 commented May 19, 2026

Summary

Depends on:

Vendors updated assets from rstudio/bslib@main via make upgrade-html-deps:

  • bslib 0.10.0.90000.11.0.9000
  • Bootstrap 5.3.15.3.8
  • prism-code-editor 0.10.0.90000.11.0.9000
  • New Bootswatch theme: brite — added upstream in Bootswatch, now vendored and exposed as a valid ShinyThemePreset

This was produced as a side-effect of running make upgrade-html-deps to verify the fix in #2242. Split into a separate PR because the Bootstrap minor version bump warrants independent review.

Risk

The Bootstrap 5.3.15.3.8 bump may include CSS changes that affect existing app styling. Review the vendored SCSS/CSS diffs before merging.

Test plan

  • Visually verify representative Shiny apps across a few themes
  • Run Playwright tests
  • Confirm brite theme renders correctly
  • Manually verify regression fix (IntersectionObserver)
Breaking changes evaluation

1. shiny.js — IntersectionObserver fix (rstudio/shiny#4388)

  • Adds resolveObservableTarget() to walk up to the nearest non-.shiny-html-output ancestor before attaching the IntersectionObserver
  • Risk: none. Pure bug fix for uiOutput visibility detection. No API surface changes.

2. CSS — checkbox/radio label margin (rstudio/bslib#1308 + #2256)

  • SCSS source: .shiny-input-checkboxgroup.shiny-input-checkboxgroup.shiny-input-checkboxgroup (specificity bump)
  • Cascade order now correct: shiny.scss inline rule comes before bslib's doubled rule, so bslib wins for all group variants
  • Visible change: The margin-top on label ~ .shiny-options-group shifts from −10px (shiny.scss) to calc(−0.15em − var(--bs-border-width)) (~−3.4px) for both stacked and inline groups
  • Risk: low. This is a visual bug fix — the gap between the group label and its options was too large before. Any user CSS overriding this margin-top with a single-class selector would now need two classes to win, but that's an edge case for a spacing property.

3. Everything else — version string bumps in JSON files and JS headers only; no behavioral changes.

Summary: No breaking changes. The one user-visible effect is the corrected label-to-options gap on checkbox and radio groups in BS5 apps, which is intentional.

Comment thread shiny/www/shared/_version.json Outdated
Vendors updated SCSS/JS/CSS assets from rstudio/bslib@main, including
Bootstrap 5.3.1 → 5.3.8 and the new Bootswatch `brite` theme preset.
Picks up two upstream fixes:
- rstudio/shiny#4388: Fix IntersectionObserver on display:contents uiOutput
- rstudio/bslib#1308: Elevate CSS specificity for BS5 radio/checkbox label margin

The bslib specificity fix is now fully effective because the bundle order
in scripts/_functions_sass.R (from #2256) puts shiny.scss before bslib's
bs3compat layer, so bslib wins same-specificity cascade ties.
@elnelson575 elnelson575 force-pushed the chore/upgrade-bslib-bootstrap-5.3.8 branch 2 times, most recently from c755ac3 to def6504 Compare May 28, 2026 22:21
@elnelson575 elnelson575 marked this pull request as ready for review May 28, 2026 22:31
@elnelson575 elnelson575 requested a review from cpsievert May 28, 2026 22:43
Copy link
Copy Markdown
Collaborator

@cpsievert cpsievert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@cpsievert cpsievert merged commit 050b733 into main May 28, 2026
206 of 208 checks passed
@cpsievert cpsievert deleted the chore/upgrade-bslib-bootstrap-5.3.8 branch May 28, 2026 22:58
@cpsievert cpsievert mentioned this pull request Jun 1, 2026
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