From 311639ae9806358ceac7f98ef3fbfee44f151f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Mon, 20 Jul 2026 18:58:12 +0200 Subject: [PATCH] Add z-index scale and overview redirect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce a v2 z-1…z-6 stacking scale so portaled menus sit above in-page media, and redirect the legacy /overview trust-app URL to home. Signed-off-by: Émile Ré --- AGENTS.md | 2 +- .../components/BackdropCard/BackdropCard.tsx | 2 +- .../src/components/CommitmentCard/variants.ts | 2 +- .../src/components/MediaTile/variants.ts | 2 +- .../src/components/PoweredBy/variants.ts | 2 +- .../documents/_components/DocumentEntry.tsx | 4 +- .../subprocessors/_components/variants.ts | 2 +- apps/compliance-portal/src/routes.tsx | 12 +++- contrib/claude/ui.md | 4 +- contrib/claude/v2-tokens.md | 30 +++++++++- packages/ui/src/v2/Dialog/variants.ts | 4 +- packages/ui/src/v2/Drawer/variants.ts | 4 +- packages/ui/src/v2/Dropdown/DropdownPopup.tsx | 3 +- packages/ui/src/v2/Select/SelectPopup.tsx | 3 +- packages/ui/src/v2/Toaster/variants.ts | 2 +- packages/ui/src/v2/theme.css | 2 + packages/ui/src/v2/theme/z-index.css | 56 +++++++++++++++++++ 17 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 packages/ui/src/v2/theme/z-index.css diff --git a/AGENTS.md b/AGENTS.md index e230c1ea9..2e3c8ccbf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,7 +25,7 @@ Detailed guides for specific subsystems live in `contrib/claude/`: - [`contrib/claude/hooks.md`](contrib/claude/hooks.md) — Custom hooks (_lib placement, awaitable useMutation primitive, auto error handling) - [`contrib/claude/react-components.md`](contrib/claude/react-components.md) — React component shape (file/export, props, configure vs data via hooks, naming/suffix taxonomy, error props) - [`contrib/claude/ui.md`](contrib/claude/ui.md) — @probo/ui v2 kit (Base UI headless, Tailwind, tailwind-variants, flat folders, bundle-safe skeletons) -- [`contrib/claude/v2-tokens.md`](contrib/claude/v2-tokens.md) — v2 design tokens (color, typography, radius, shadow scales; native spacing) +- [`contrib/claude/v2-tokens.md`](contrib/claude/v2-tokens.md) — v2 design tokens (color, typography, radius, shadow, z-index scales; native spacing) - [`contrib/claude/forms.md`](contrib/claude/forms.md) — Frontend forms (Base UI Field/Form tiers, native vs zod vs react-hook-form, server errors) - [`contrib/claude/routing.md`](contrib/claude/routing.md) — Frontend routing (@probo/routes, navigation, typed params, URL state, auth/protected routes) - [`contrib/claude/state-management.md`](contrib/claude/state-management.md) — Client state decision order (Relay, URL, local, context, zustand) diff --git a/apps/compliance-portal/src/components/BackdropCard/BackdropCard.tsx b/apps/compliance-portal/src/components/BackdropCard/BackdropCard.tsx index cb5e46ba0..bf23a64b3 100644 --- a/apps/compliance-portal/src/components/BackdropCard/BackdropCard.tsx +++ b/apps/compliance-portal/src/components/BackdropCard/BackdropCard.tsx @@ -28,7 +28,7 @@ import { backdropCard } from "./variants"; interface BackdropCardProps { // Centered content shown above the backdrop (an icon or a logo box). The node // owns its own sizing/color; position it above the backdrop with `relative - // z-10`. + // z-1`. media: ReactNode; // When set, a blurred, magnified copy of this image becomes the backdrop; // otherwise a dotted texture is shown. diff --git a/apps/compliance-portal/src/components/CommitmentCard/variants.ts b/apps/compliance-portal/src/components/CommitmentCard/variants.ts index 69e8fd2d7..105aa18bd 100644 --- a/apps/compliance-portal/src/components/CommitmentCard/variants.ts +++ b/apps/compliance-portal/src/components/CommitmentCard/variants.ts @@ -25,6 +25,6 @@ import { tv } from "tailwind-variants/lite"; // BackdropCard; this slot only styles the icon container. export const commitmentCard = tv({ slots: { - icon: "relative z-10 flex size-8 items-center justify-center text-gold-9", + icon: "relative z-1 flex size-8 items-center justify-center text-gold-9", }, }); diff --git a/apps/compliance-portal/src/components/MediaTile/variants.ts b/apps/compliance-portal/src/components/MediaTile/variants.ts index 558108b28..6d1e34718 100644 --- a/apps/compliance-portal/src/components/MediaTile/variants.ts +++ b/apps/compliance-portal/src/components/MediaTile/variants.ts @@ -32,7 +32,7 @@ export const mediaTile = tv({ backdrop: "pointer-events-none absolute inset-0", blurBackdrop: "pointer-events-none absolute inset-0 size-full scale-150 object-cover opacity-10 blur-lg", backdropFade: "pointer-events-none absolute inset-0 bg-linear-to-b from-sand-1/0 to-sand-1", - mediaContent: "relative z-10 flex size-16 items-center justify-center [&_img]:size-full [&_img]:object-contain", + mediaContent: "relative z-1 flex size-16 items-center justify-center [&_img]:size-full [&_img]:object-contain", caption: "flex w-full items-center justify-center px-4 py-3", }, variants: { diff --git a/apps/compliance-portal/src/components/PoweredBy/variants.ts b/apps/compliance-portal/src/components/PoweredBy/variants.ts index 9552d1633..c22ee4ede 100644 --- a/apps/compliance-portal/src/components/PoweredBy/variants.ts +++ b/apps/compliance-portal/src/components/PoweredBy/variants.ts @@ -27,7 +27,7 @@ export const poweredBy = tv({ root: "relative flex w-full items-center justify-center overflow-hidden bg-sand-2 py-6 text-sand-11", backdrop: "pointer-events-none absolute inset-0", backdropFade: "pointer-events-none absolute inset-0 bg-linear-to-b from-sand-2 to-sand-2/0", - content: "relative z-10 flex items-center justify-center gap-2", + content: "relative z-1 flex items-center justify-center gap-2", logo: "h-6 w-auto text-sand-9", }, }); diff --git a/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx b/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx index 538b41111..84918a713 100644 --- a/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx +++ b/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx @@ -113,14 +113,14 @@ export function DocumentEntry({ ? ( ) : (