Upgrade daisyUI to 5.7, remove daisyUI 4 leftovers and add a UI guard closes #597 #606

Merged
simon merged 13 commits from issue/mitgliederverwaltung-597 into main 2026-10-17 11:14:36 +02:00
Owner

closes #597

Description of the implemented changes

The changes were:

  • Bugfixing
  • New Feature
  • Breaking Change
  • Refactoring

Upgrades Tailwind to 4.3.3 and daisyUI to 5.7.50, replaces all remaining daisyUI 4 classes, removes dead CSS and components, unifies icon sizes, and adds a source-scanning UI guard to just ci-dev that fails on new daisyUI 4 classes, palette colors, data-confirm and raw modals beyond a documented exception list. A dev-only component showcase at /dev/components renders the components in both themes.

What has been changed?

  • Upgrade Tailwind to 4.3.3 and keep the previous sans-serif stack
  • Upgrade daisyUI to 5.7.50 and keep outline badge contrast
  • Darken the file input's selector button only while it is hovered
  • Replace daisyUI 4 field classes with fieldset and label markup
  • Remove the unused generic_list component
  • Remove dead CSS rules and the unused Tailwind 3 config
  • Translate the remaining German comments in app.css
  • Use the standard icon sizes, a heroicon search icon and the z-100 scale
  • Fail CI on new daisyUI 4 classes, palette colors, data-confirm and raw modals
  • Document the guard's rules and its exception list
  • Add a component showcase at /dev/components in both themes

Definition of Done

Code Quality

  • No new technical depths
  • Linting passed
  • Documentation is added were needed

Accessibility

  • New elements are properly defined with html-tags
  • Colour contrast follows WCAG criteria
  • Aria labels are added when needed
  • Everything is accessible by keyboard
  • Tab-Order is comprehensible
  • All interactive elements have a visible focus

Testing

  • Tests for new code are written
  • All tests pass
  • axe-core dev tools show no critical or major issues

Additional Notes

Larger commits: the daisyUI upgrade (vendored daisyui.js/daisyui-theme.js, ~1200 lines), the daisyUI 4 field replacement (18 files) and the icon commit (15 files) are mostly mechanical; the UI guard commit (~1400 lines) is the scanner in test/support/ui_guard.ex with its property tests.

Visual check: before/after screenshots in both themes were compared; two upgrade regressions (Tailwind 4.3 default font stack, daisyUI 5.7 outline badge text) were fixed. The new fieldset spacing in the join form and the group/custom-field delete dialogs was verified by markup tests, not visually.

closes #597 ## Description of the implemented changes The changes were: - [x] Bugfixing - [x] New Feature - [ ] Breaking Change - [x] Refactoring Upgrades Tailwind to 4.3.3 and daisyUI to 5.7.50, replaces all remaining daisyUI 4 classes, removes dead CSS and components, unifies icon sizes, and adds a source-scanning UI guard to `just ci-dev` that fails on new daisyUI 4 classes, palette colors, `data-confirm` and raw modals beyond a documented exception list. A dev-only component showcase at `/dev/components` renders the components in both themes. ## What has been changed? - Upgrade Tailwind to 4.3.3 and keep the previous sans-serif stack - Upgrade daisyUI to 5.7.50 and keep outline badge contrast - Darken the file input's selector button only while it is hovered - Replace daisyUI 4 field classes with fieldset and label markup - Remove the unused generic_list component - Remove dead CSS rules and the unused Tailwind 3 config - Translate the remaining German comments in app.css - Use the standard icon sizes, a heroicon search icon and the z-100 scale - Fail CI on new daisyUI 4 classes, palette colors, data-confirm and raw modals - Document the guard's rules and its exception list - Add a component showcase at /dev/components in both themes ## Definition of Done ### Code Quality - [ ] No new technical depths - [x] Linting passed - [x] Documentation is added were needed ### Accessibility - [ ] New elements are properly defined with html-tags - [ ] Colour contrast follows WCAG criteria - [ ] Aria labels are added when needed - [ ] Everything is accessible by keyboard - [ ] Tab-Order is comprehensible - [ ] All interactive elements have a visible focus ### Testing - [x] Tests for new code are written - [x] All tests pass - [ ] axe-core dev tools show no critical or major issues ## Additional Notes Larger commits: the daisyUI upgrade (vendored `daisyui.js`/`daisyui-theme.js`, ~1200 lines), the daisyUI 4 field replacement (18 files) and the icon commit (15 files) are mostly mechanical; the UI guard commit (~1400 lines) is the scanner in `test/support/ui_guard.ex` with its property tests. Visual check: before/after screenshots in both themes were compared; two upgrade regressions (Tailwind 4.3 default font stack, daisyUI 5.7 outline badge text) were fixed. The new fieldset spacing in the join form and the group/custom-field delete dialogs was verified by markup tests, not visually.
daisyUI 5.7 sets the outline badge text through color instead of --badge-fg, so the contrast overrides now set color and border-color.
The rule keys on ::file-selector-button:hover rather than the input's :hover, because a <label for> passes :hover on to its control and made the button react across the whole field row.
The exception list is a ratchet: counts must match exactly, so each cleanup issue has to lower its entries instead of leaving stale headroom.
Merge remote-tracking branch 'origin/main' into issue/mitgliederverwaltung-597
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
3a409f746f
simon merged commit 3f1f3671a7 into main 2026-10-17 11:14:36 +02:00
simon deleted branch issue/mitgliederverwaltung-597 2026-10-17 11:14:36 +02:00
Sign in to join this conversation.
No description provided.