From c91caffa5ef7f2c1024fdd1441fecee1d5c57000 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Sat, 18 Jul 2026 19:11:25 +0200 Subject: [PATCH 1/2] refactor(z-index): name the stacking layers as a token scale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace ~48 magic z-index values (z-10..z-[9999] + 2 inline zIndex) with named tailwind zIndex tokens (base/menu/chrome/paneltab/panel/rail/overlay/popover/ tooltip/tuner). Values are UNCHANGED — a rename, not a renumber — so layering is identical; the names give one source of truth for the stack. --- frontend/src/components/AddToPlaylist.tsx | 2 +- frontend/src/components/BackToTop.tsx | 2 +- frontend/src/components/ChannelPage.tsx | 6 ++--- frontend/src/components/Channels.tsx | 2 +- frontend/src/components/DataTable.tsx | 4 ++-- frontend/src/components/DownloadCenter.tsx | 2 +- frontend/src/components/Header.tsx | 2 +- frontend/src/components/LanguageSwitcher.tsx | 4 ++-- frontend/src/components/Modal.tsx | 2 +- frontend/src/components/NavSidebar.tsx | 4 ++-- frontend/src/components/PanelGroup.tsx | 2 +- frontend/src/components/PlayerModal.tsx | 14 +++++------ frontend/src/components/PlexBrowse.tsx | 6 ++--- frontend/src/components/PlexPlayer.tsx | 8 +++---- frontend/src/components/ShareDialog.tsx | 2 +- frontend/src/components/SidePanel.tsx | 4 ++-- frontend/src/components/SyncStatus.tsx | 2 +- frontend/src/components/TagManager.tsx | 4 ++-- frontend/src/components/Toaster.tsx | 2 +- frontend/src/components/Tooltip.tsx | 2 +- frontend/src/components/VideoEditor.tsx | 6 ++--- frontend/src/components/ViewSwitcher.tsx | 2 +- frontend/src/components/Welcome.tsx | 2 +- frontend/src/components/ui/DraftSaveBar.tsx | 4 ++-- frontend/src/lib/plexDetailUi.tsx | 2 +- frontend/tailwind.config.js | 25 ++++++++++++++++++++ 26 files changed, 71 insertions(+), 46 deletions(-) diff --git a/frontend/src/components/AddToPlaylist.tsx b/frontend/src/components/AddToPlaylist.tsx index cdb2405d..33f3f899 100644 --- a/frontend/src/components/AddToPlaylist.tsx +++ b/frontend/src/components/AddToPlaylist.tsx @@ -130,7 +130,7 @@ export default function AddToPlaylist({
e.stopPropagation()} >
diff --git a/frontend/src/components/BackToTop.tsx b/frontend/src/components/BackToTop.tsx index 4950495b..016561e4 100644 --- a/frontend/src/components/BackToTop.tsx +++ b/frontend/src/components/BackToTop.tsx @@ -48,7 +48,7 @@ export default function BackToTop({ dep, threshold = 600 }: { dep?: unknown; thr return createPortal(
- {/* Identity + actions. relative+z-10 so the avatar that overlaps up into the banner + {/* Identity + actions. relative+z-base so the avatar that overlaps up into the banner paints ABOVE it (the banner's positioned container would otherwise cover it). */} -
+
diff --git a/frontend/src/components/DataTable.tsx b/frontend/src/components/DataTable.tsx index 79cfcc95..a065a82f 100644 --- a/frontend/src/components/DataTable.tsx +++ b/frontend/src/components/DataTable.tsx @@ -208,7 +208,7 @@ export default function DataTable({ return (
{f.kind === "text" && ( ({ away with the collapsed table box in some browsers. The `::after` paints a short fade just BELOW the header so rows dissolve as they slide under it (the header itself stays crisp — the page scroller's own top fade is off on these pages). */} - + {columns.map((col) => { const sorted_ = sort?.key === col.key; diff --git a/frontend/src/components/DownloadCenter.tsx b/frontend/src/components/DownloadCenter.tsx index d788620f..a2c36647 100644 --- a/frontend/src/components/DownloadCenter.tsx +++ b/frontend/src/components/DownloadCenter.tsx @@ -447,7 +447,7 @@ function QuotaUserPicker({ onPick }: { onPick: (u: { id: number; email: string } className={inputCls} /> {open && filtered.length > 0 && ( -
+
{filtered.map((u) => ( {expanded && ( -