Skip to content

feat(ui): finish the GBA theme pass on the Data Custodian; add theme tests - #246

Merged
dfcoffin merged 1 commit into
mainfrom
feat/gba-theme-followup
Nov 14, 2026
Merged

dfcoffin merged 1 commit into
mainfrom
feat/gba-theme-followup

Conversation

@dfcoffin

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #244: finishes the Green Button Alliance theme pass on the Data Custodian and adds tests that lock the theme in. The two legacy customer pages are deliberately untouched; their implementation is tracked in #245.

Restyle (decorative colours only)

  • Admin dashboard: the five action buttons and icons are GBA green; they were green/cyan/red/yellow, and Notify isn't destructive, so it isn't red. The four coloured statistic cards are now white gba-stat tiles with a green rule and figure.
  • Login: feature icons in GBA green.
  • Error pages: "Try Again" is btn-outline-primary; the 5 rem icon size moved from inline style= to a theme class.
  • Kept on purpose (semantic):
    • status badges (Active/Revoked/Expired/Pending, Enabled, role);
    • the red Delete and Revoke buttons;
    • the warning/danger error icons;
    • the neutral Cancel and Go Back buttons.

Footer and layout

CSS cleanup

  • DC application.css is cut to the rules still in use that the theme doesn't cover: table header row, focus outline, print. The old Material palette, radii, hover lifts, gradients and light footer were fighting the theme.
  • The theme drops most of its !important overrides and the --gb-* bridge. The remaining !importants are on the hero, where Bootstrap's own !important utilities still appear in markup.
  • The theme now keeps inputs and tables white. Bootstrap fills them with the body colour, which the theme sets to the grey page background.

Small fix

In the retail customers list, Delete is now btn-sm like View and Edit. btn-group-sm doesn't reach a button nested in a <form>.

Tests

  • GbaThemeResourcesTest (DC):
  • GbaLayoutPagesTest (TP; the first Third Party test that boots a full Spring context):
    • /, /login, /TermsOfService and /UsagePolicy render anonymously with the GBA layout, SRI assets and no root-relative /about link;
    • the theme assets are served.

Test plan

  • mvn verify DC: 178 tests pass (+6); TP: 51 pass (+7, 2 skipped, pre-existing)
  • Live on the local profile, logged in as the dev admin: dashboard, Change Password (footer pinned to the bottom, full width, parentElement = BODY) and Retail Customers (white table, green header row)

🤖 Generated with Claude Code

Follow-up to #244.

- Data Custodian admin dashboard: GBA-green action buttons and icons (the
  rainbow btn-success/info/danger/warning are gone) and white "stat" tiles in
  place of the coloured cards. Login icons and the error pages' "Try Again"
  button use the palette; the error icon size moves from inline styles to a
  theme class. Semantic colours stay: status badges, Delete/Revoke, warning
  and danger error icons, neutral Cancel/Go Back.
- Footer moved out of the page container in 18 templates (and the leftover
  <hr> separators removed), so it is a full-width child of <body> pinned to the
  bottom of short pages. The two legacy customer pages (#245) are untouched;
  the theme keeps a full-bleed rule for them until #245.
- application.css reduced to the rules still used that the theme does not
  cover (table header, focus outline, print). The old Material palette, radii,
  hover lifts, gradients and light footer were fighting the theme, so the
  theme drops most of its !important overrides and the --gb-* bridge.
- Theme: white inputs and tables (Bootstrap fills them with the grey body
  colour), stat-tile and status-icon classes, page content grows so the
  footer sits at the bottom.
- Retail customers list: the Delete button is btn-sm like View/Edit
  (btn-group-sm does not reach a button nested in a form).
- Tests: GbaThemeResourcesTest (DC) and GbaLayoutPagesTest (TP, the first TP
  test with a full Spring context) check that the theme, logo and favicons are
  served anonymously (the logo byte-for-byte, so resource filtering cannot
  corrupt it), that pages render the GBA layout with SRI-pinned assets, and
  that the TP public pages are reachable without login.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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