Skip to content

Aaron/bootstrap upgrade#1310

Draft
aaronskiba wants to merge 67 commits intointegrationfrom
aaron/bootstrap-upgrade
Draft

Aaron/bootstrap upgrade#1310
aaronskiba wants to merge 67 commits intointegrationfrom
aaron/bootstrap-upgrade

Conversation

@aaronskiba
Copy link
Collaborator

Fixes # .

Changes proposed in this PR:

@aaronskiba aaronskiba marked this pull request as draft March 19, 2026 20:04
@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch 2 times, most recently from ebc20db to c41e682 Compare March 20, 2026 17:24
gjacob24 and others added 27 commits March 23, 2026 09:22
Cherry-picked commit da4033b from DMPRoadmap repo and left all conflicts as-is.

This commit serves as an audit checkpoint. It is meant to preserve the raw merge-conflict state from the Bootstrap upgrade for traceability and incremental resolution.
Accept all current
Accepted all incoming changes and added the DMP Assistant - specific `@import` statements to the bottom.
NOTE: DMPRoadmap#3374 (comment) describes potential redundancy in this file. It should be addressed after these upgrade-related merge conflicts are resolved.
- Accepted incoming change to remove `@use 'panels';`.
- Kept `@use 'password_checklist';`
Accept all incoming changes for all files.
`app/assets/stylesheets/blocks/_footers.scss`
- Accept all `@import` changes
- Keep current to preserve `#alliance-logo{}` styling. However, `padding-right: calc($grid-gutter-width / 2);` was copied to replace the prior `padding-right: $grid-gutter-width / 2;` line.

`app/assets/stylesheets/blocks/_inverse_dropdowns.scss`
- Accept all current changes

`app/assets/stylesheets/blocks/_logos.scss`
- Accept incoming changes while also preserving prior height values for `.app-logo` and `.org-logo`.

`app/assets/stylesheets/blocks/_navbars.scss`
- Accept all incoming changes

`app/assets/stylesheets/blocks/_tables.scss`
- Accept all incoming changes.
- NOTE: The removed `.table {}` lines still exist within this file (lines 6-16)
- Accepted current changes wherever existing DMP Assistant styling could be preserved.
- Accepted all incoming `$color-accordion-*` changes (`accordion` styling currently doesn't exist within this file)
TODO: There appear to be duplicate `$color-focus-outline: $color-portage-blue-darker;` statements on lines 87 and 125.
Accept incoming while preserving `hl: @current_locale` from DMP Assistant
Add incoming Bootstrap 5 related changes while preserving `FeatureFlagHelper` logic.
Accept all incoming changes.
Accepted incoming changes
- Preserved` FeatureFlagHelper` from DMP Assistant
- Preserved `autocomplete: "current-password"` lines from DMP Assistant
- Preserved `openid_connect` code from DMP Assistant
  - Changed `class="form-group"` to `class="form-control mb-3"`
  - Changed `btn-default` to `btn-secondary`
Update `app/assets/stylesheets/grey-branding.scss` to align with Bootstrap 5 conventions
Accept incoming chnages
- Keep `autocomplete: "new-password"` from DMP Assistant
- Keep `hl: @current_locale` from DMP Assistant
Accept incoming changes
- Keep `<%= form.label :identifier, _("Identifier"),` from DMP Assistant
Accepted current changes
- Copied over incoming changes that updated `data-toggle` -> `data-bs-toggle`
- Copied over incoming changes that updated `panel` -> `card`
`<div class="form-group col-xs-12">` => `<div class="form-control col-sm-12">` was changed separately from merge conflicts.
This change reverts commit b5e9c43.
Note: Merge conflict resolution was performed along with additional resolutions.
Accept current changes
- Commit cb7c3d5076f37caa4d4586918aa9e9b0dc130a96 addresses the code deleted in this commit.
Also updated `app/views/super_admin/users/_email_confirmation_status.html.erb` for bs-5.
Accepted incoming `<button class="navbar-toggler" type="button" data-bs-toggle="collapse" `, but maybe that `<button...` should remain in the previous spot?
This change preserves DMP Assistant's styling on the "Reference", "Language", and "#{user_name}" dropdowns.
The `<% if org.new_record? %>` related code was not added. DMP Assistant already has the following at the bottom of this file:
```
  <% if !org.new_record? %>
    <%= render partial: "orgs/external_identifiers",
               locals: {
                 form: f,
                 org: org,
                 editable: current_user.can_super_admin?
               } %>
  <% end %>
```
aaronskiba and others added 9 commits March 23, 2026 09:22
Reverts changes from commit f3331b6

All of this logic should currently exist in `spec/support/capybara.rb`
- Request feedback box changed from 'well' to card' class
- Reset password view alignment of checkbox and label fields
- Required field red star alignment for Project Details and Share plan pages
Contributed by @gjacob24 of DCC DMPonline.

The changes:
 - Replaced Selection_tag classes incorrectly set with  'form-control'
   to 'form-select'.

Co-authored-by: gjacob24 <gjacob@ed.ac.uk>
Added `form-control` -> `form-select` for DMP Assistant's custom template dropdown.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Color system
  -  All `lighten()`and `darken()` functions replaced. These functions will mix the color with either white or black instead of changing its lightness by a fixed amount.
     * Replaced `lighten()` by `tint-color()`.
     * Replaced `darken()` by `shade-color()`.
```

This keeps our styling logic consistent with upstream behavior, where colors are mixed with white/black rather than adjusted by fixed lightness, and helps reduce migration drift in the BS3 → BS5 upgrade.
@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch from ed9c2e4 to bae27d2 Compare March 23, 2026 15:23
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Buttons
  - Bootstrap dropped `btn-block` class for utilities. So we removed any styling using it.
  - Close Buttons: Renamed `close` to`btn-close`.
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
- Renamed `btn-default` to `btn-secondary` and variable `$btn-default-color` changed to `$btn-secondary-color`.
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
    - Data attributes changes required by Bootstrap 5 (as used by accordion and dropdown buttons):
       * `data-display` --> `data-bs-display`
       * `data-parent` --> `data-bs-parent`
       * `data-target` --> `data-bs-target`
       * `data-toggle` --> `data-bs-toggle`
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.

Note: `data-toggle-direction` was left as-is (not changed to `data-bs-toggle-direction`)
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Panels, thumbnails & wells (replacements)
  - Bootstrap 5 dropped panels, thumbnails and wells. So pages with them updated with Bootstrap 5 replacements.
    * All views with css classes`panel, panel-body, panel-*` Have panel replaced by card to give `card, card_body, card-*`, etc.
    * As `panel-default` and some otherpanel css classes don't have card equivalents with same suffixes we have added these classes temporarily in `_cards.sccs`, e.g.,`.card-default`, etc.
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Utilities
  - Bootstrap renamed several utilities to use logical property names instead of directional names with the addition of RTL support:
    * Renamed `left-*` and `right-*` to `start-*` and `end-*`.
    * Renamed `float-left` and `float-right` to `float-start` and `float-end`.
    * Renamed `ml-*` and `mr-*` to `ms-*` and `me-*`.
    * Renamed `pl-*` and `pr-*` to `ps-*` and `pe-*`.
    * Renamed `text-left` and `text-right` to `text-start` and `text-end`.
  - The `hidden` and `show` classes have been removed because they conflicted with jQuery's.
    * Replaced `hidden` with `d-none`.
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch from bae27d2 to 016581c Compare March 23, 2026 17:38
@github-actions
Copy link

1 Error
🚫 Please include a CHANGELOG entry. You can find it at CHANGELOG.md.
1 Warning
⚠️ This PR is too big! Consider breaking it down into smaller PRs.

Generated by 🚫 Danger

@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch from 438cc03 to 96057d6 Compare March 24, 2026 19:49
Could you help me with git commit title + desciption?

TITLE: chore(bs-5): form changes

Description
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Form
  - `form-group` class replaced with `form-control`.
  - Form labels now require `form-label` or `form-check-label` to go with `form-control` and `form-check` respectively. So all obsolete `control-label` replaced by `form-label` and missing ones added.
  - Dropped form-specific layout classes for our grid system. Use Bootstrap grid and utilities instead of `form-group`, `form-row`, or `form-inline`.
  - `form-text` no longer sets display, allowing you to create inline or block help text as you wish just by changing the HTML element.
  - Input group addons are now specific to their placement relative to an input. So `input-group-addon` and in our case we replaced with
`input-group-addon`.
  - Renamed `checkbox` and `radio` into `form-check`.
```

Changes in this commit include:
- Find and replace `form-group` class with `form-control mb-3` (upstream changes appear to generally add the mb-3 with this change)
- Find and replace `checkbox` class with `form-check`
- Find and replace all `control-label` with `form-label`
- Add missing `class: 'form-check-label'` to form-check labels

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Images
  - Renamed `img-responsive` to `img-fluid`.
```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.
Extract navbar and nav-tabs styling into dedicated `_navs.scss` and `_navbars.scss` partials under `dmp-assistant/blocks`.

Previously, `navbars` and `nav-tabs` styling was scattered across `rebranding.scss`, `grey-branding.scss`, and `rebranding-animation.scss`, causing duplication and making it harder to maintain during the Bootstrap 3→5 migration.

This change consolidates only the shared nav structure rules into the new partials, while keeping theme-specific branding rules (app-logo, button colors, etc.) in the original theme files. This maintains the load order and override precedence while reducing duplication and improving clarity.
DMPRoadmap@da4033b states the following in `CHANGELOG.md`:
```
+ Navs & navbars
      * Replaced`nav navbar-nav` combination --> `navbar-nav`
      * Replaced`navbar-toggle` --> `navbar-toggler`

```

This keeps our codebase consistent with upstream behavior and helps reduce migration drift in the BS3 → BS5 upgrade.

TODO: The aforementioned changelog also describes the following, which has not yet been addressed:
```
  - Bootstrap rewrote component with flexbox. Dropped nearly all > selectors for simpler styling via un-nested classes.
    Instead of HTML-specific selectors like .nav > li > a, we use separate classes for `navs, nav-items, and nav-links`. (Note because the `nav-link` class has not always been added as it comes with styles not appropriate for our styling for links.)
    This makes your HTML more flexible while bringing along increased extensibility. So we have dropped  HTML-specific selectors and css in `_navs.scss`
    e.g.,
    <br>`.nav-tabs > li > a:hover` --> `nav-tabs nav-link:hover`,
    <br>`.nav-pills > li > a:hover` -->`nav-pills .nav-link:hover`.
    - Pages with css classes `nav` and`navbar` updated to work with Bootstrap 5. So `app/assets/stylesheets/blocks/_navbars.scss` and `app/assets/stylesheets/blocks/_navs.scss` updated.
```
…uide

Updates `_cards.scss` to better reflect upstream’s Bootstrap 3 → 5 migration approach.

Upstream CHANGELOG (da4033b) notes:
- Panel classes (`panel, panel-body, panel-*`) are replaced with card equivalents (`card, card-body, card-*`)
- Panel-specific variants without direct BS5 equivalents (e.g. `panel-default`) are temporarily reintroduced as custom classes in `_cards.scss` (e.g. `.card-default`)

This change follows that approach by effectively porting the existing `_panels.scss` styles to their `.card-*` equivalents (largely a direct copy with renamed selectors), ensuring visual parity with the previous panel-based UI.

Additional updates:
- Fix invalid CSS (`cursor: 'auto'` → `cursor: auto`)
- Minor cleanup (typos, formatting)

This keeps the UI consistent while adhering to the upstream transitional strategy.

Also, delete` _panels.scss` (file no longer exists upstream).
@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch from 9300d89 to 3cc11e7 Compare March 24, 2026 22:51
aaronskiba and others added 3 commits March 24, 2026 16:51
Bootstrap 5 dropdowns automatically generates carets. This change removes the previous manual caret code.
These changes make the form-control input borders more subtle, and reduce the font-weight of text accompanying textboxes.

These changes improve the overall styling and better preserve the app's styling prior to the bs-5 upgrade.

Co-Authored-By: momo3404 <85097704+momo3404@users.noreply.github.com>
- 'text-muted' was muting the color of the text in the headers in the template dropdownn (Alliance templates/organisational templates)
@aaronskiba aaronskiba force-pushed the aaron/bootstrap-upgrade branch from 3cc11e7 to 35d66e1 Compare March 24, 2026 22:51
- Refactored `_navs.scss` and `_navbars.scss` to use Bootstrap 5 class-based selectors (`.nav-link`, `.nav-item`, `.dropdown-item`) instead of structural selectors (e.g., `> li > a`).
- Maintained/ documented fallbacks for legacy Bootstrap 3 states (`.open`, `.in`) to ensure compatibility during migration.
- Updated `org-navbar` and dropdown selectors for BS5 markup and behavior.
- Added TODO comments to mark legacy fallbacks for removal after all BS3 markup/JS is gone.
- No functional or visual changes intended
Prior to this reordering, if one of the sign-in tabs ("Sign in" or "Create account") was selected, its yellow text would turn black / disappear after moving the cursor away from it.
NOTE: This bug existed prior to the changes made in commit 36a270e188500f72d87c29b55b978f988a4c9aa8.
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.

4 participants