Skip to content

fix(ui): apply backdrop blur to modal scrims for better separation#123

Merged
InstaZDLL merged 1 commit into
mainfrom
fix/wizard-modal-background
May 23, 2026
Merged

fix(ui): apply backdrop blur to modal scrims for better separation#123
InstaZDLL merged 1 commit into
mainfrom
fix/wizard-modal-background

Conversation

@InstaZDLL
Copy link
Copy Markdown
Owner

@InstaZDLL InstaZDLL commented May 23, 2026

Summary

  • Adds backdrop-blur-md to the 10 modal backdrops that were rendering as a flat bg-black/80 scrim, matching the existing OnboardingModal pattern.
  • Underlying library / playlist / settings content stops bleeding through behind wizards and forms, so the dialog reads as a distinct surface rather than mixing with the page underneath (issue bug: new / add /edit , new profile - need better background #108).
  • Lightbox is intentionally untouched: image viewing keeps the dark bg-black/90 canvas with no blur.

Closes #108

Test plan

  • Open Settings → create / rename / delete a profile — backdrop is clearly blurred behind the wizard.
  • Trigger Create Playlist, Create Library, Cover Picker, Artist Image Picker, Smart Playlist Editor, Track Properties, Batch Tag Edit, Duplicates, Lyrics Editor — all show the same blurred scrim.
  • Open the Lightbox (cover full-screen) — still flat dark, no blur (regression check).

Summary by CodeRabbit

Release Notes

  • Style
    • Amélioration visuelle des modales : application d'un effet de flou d'arrière-plan pour une meilleure présentation lors de l'affichage des modales de l'application, offrant une expérience utilisateur plus polished.

Review Change Stack

Aligns all 10 modal backdrops on the OnboardingModal pattern
(`bg-black/80 backdrop-blur-md`) so the wizard / form panel stops
visually blending with the underlying app content. Lightbox keeps
its `bg-black/90` (no blur) since image viewing wants a clean dark
canvas.

Closes #108
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 23, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: bf627441-2e1a-4b9a-a2c2-cbd09d6fca2e

📥 Commits

Reviewing files that changed from the base of the PR and between 2f539ec and 0b9bd75.

📒 Files selected for processing (10)
  • src/components/common/ArtistImagePickerModal.tsx
  • src/components/common/BatchTagEditModal.tsx
  • src/components/common/CoverPickerModal.tsx
  • src/components/common/CreateLibraryModal.tsx
  • src/components/common/CreatePlaylistModal.tsx
  • src/components/common/DuplicatesModal.tsx
  • src/components/common/LyricsEditorModal.tsx
  • src/components/common/ProfileSelectorModal.tsx
  • src/components/common/SmartPlaylistEditorModal.tsx
  • src/components/common/TrackPropertiesModal.tsx

📝 Walkthrough

Walkthrough

La PR ajoute l'effet visuel backdrop-blur-md à dix composants modaux : ArtistImagePickerModal, BatchTagEditModal, CoverPickerModal, CreateLibraryModal, CreatePlaylistModal, DuplicatesModal, LyricsEditorModal, ProfileSelectorModal, SmartPlaylistEditorModal et TrackPropertiesModal. Chaque modification applique la classe Tailwind CSS backdrop-blur-md au conteneur d'overlay fixed de la modale, sans altérer la logique métier.

Changes

Effet de flou d'arrière-plan sur les modales

Couche / Fichier(s) Résumé
Ajout de backdrop-blur-md aux conteneurs overlay des modales
src/components/common/ArtistImagePickerModal.tsx, src/components/common/BatchTagEditModal.tsx, src/components/common/CoverPickerModal.tsx, src/components/common/CreateLibraryModal.tsx, src/components/common/CreatePlaylistModal.tsx, src/components/common/DuplicatesModal.tsx, src/components/common/LyricsEditorModal.tsx, src/components/common/ProfileSelectorModal.tsx, src/components/common/SmartPlaylistEditorModal.tsx, src/components/common/TrackPropertiesModal.tsx
La classe utilitaire backdrop-blur-md est ajoutée à chaque conteneur overlay fixe (fixed inset-0) des modales, améliorant la séparation visuelle du contenu des dialogues par rapport au contenu d'arrière-plan.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🎨 Dix modales se voilent de flou gracieux,
Le fond s'estompe, délicat et lumineux,
Lisibilité retrouvée, clarté qui danse,
L'interface respire avec élégance. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed Le titre décrit précisément la modification : application du flou de fond aux modales pour améliorer leur séparation visuelle.
Description check ✅ Passed La description complète la structure : explique le changement (ajout backdrop-blur-md), justifie le pourquoi (lisibilité, problème #108), teste la régression.
Linked Issues check ✅ Passed Les modifications adressent directement le problème #108 : ajout de backdrop-blur-md à 10 modales pour empêcher le contenu sous-jacent de fusionner visuellement.
Out of Scope Changes check ✅ Passed Toutes les modifications visent un objectif unique et cohérent : amélioration visuelle des modales, aucun changement hors-scope détecté.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/wizard-modal-background

Comment @coderabbitai help to get the list of available commands and usage tips.

@InstaZDLL InstaZDLL added scope: frontend React/Vite frontend (src/) type: fix Bug fix size: s 10-50 lines labels May 23, 2026
@InstaZDLL InstaZDLL self-assigned this May 23, 2026
@InstaZDLL InstaZDLL merged commit 715762a into main May 23, 2026
13 checks passed
@InstaZDLL InstaZDLL deleted the fix/wizard-modal-background branch May 23, 2026 19:25
InstaZDLL added a commit that referenced this pull request May 23, 2026
Brings the themes branch up to date with the v1.2.0 → v1.3.0 main
work and applies the CodeRabbit findings on the original diff. Major
points of conflict resolution + new work in this merge:

* All ten modal backdrops now read `bg-black/80 backdrop-blur-md`
  (from PR #123) — the AnimatedModalShell default carries the blur,
  the four bespoke motion.div modals carry it in their own
  className.

* SettingsView keeps the Lokal-style category tablist from main
  (#83) and moves the theme picker into the now-active Appearance
  tab. `PlayerBarLayoutCard` also lives in Appearance now — it was
  parked under Playback while the tab was still a placeholder
  (deferred from #122 with the explicit "move when themes land"
  note).

* MoreActionsMenu / TrackPropertiesModal / BatchTagEditModal /
  ProfileSelectorModal / OnboardingModal kept their main-side
  imports and structure (delete view, profile-name step, 1080p cap,
  scroll-wheel volume, etc.) while taking the themes branch's
  framer-motion wrappers and the per-modal CodeRabbit cleanup.

CodeRabbit findings addressed in this merge:

* `index.html` ships an inline theme-bootstrap script that paints
  the right `dark` class + `data-theme` + ambient bg before React
  mounts, so a fresh boot with the dark default no longer flashes
  white (FOUC).

* `app.css` focus-visible outline reads `var(--accent-500)` instead
  of the hardcoded `#10b981`, so the focus ring follows the active
  preset (Midnight, Sunset, Crimson… were stuck on green).

* `ThemeContext.readStoredTheme` migrates the legacy
  `waveflow.theme.is_dark` boolean to the new id key on first read
  and removes the legacy entry, so a downgrade-then-upgrade cycle
  can't silently overwrite a custom preset with the stale boolean.

* `ThemeContext.setThemeId` wraps `document.startViewTransition` in
  try/catch — some WebKitGTK builds throw synchronously, which
  previously left `writeStoredTheme` persisted but `setTheme(next)`
  never called.

* `ContextMenu` and `ContextMenuSub` flip math reads
  `offsetWidth`/`offsetHeight` instead of `getBoundingClientRect()`
  so the menu mounted at `scale: 0.96` doesn't underestimate its
  size and misfire the flip near the viewport edges.

* `ProfileSelectorModal` aria-label is now computed from `view`
  (`select` / `create` / `delete`) so the screen reader announces
  the actual content, and the leftover `animate-fade-in` class on
  the create / delete cards was removed — the outer motion.div
  already owns the fade.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: frontend React/Vite frontend (src/) size: s 10-50 lines type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: new / add /edit , new profile - need better background

1 participant