refactor(z-index): introduce a shared named z-index scale (#723)
* refactor(z-index): introduce a shared named z-index scale Replace scattered magic z-index numbers (100, 150, 200, 201, 250) with named layers (z-app-bar, z-app-bar-elevated, z-modal, z-menu-elevated) so intent is documented at each call site and future additions insert predictably instead of colliding. Defined via Tailwind's @utility directive in two places that mirror each other: packages/ui/src/index.css (ui:-prefixed, for components that live in the @cio/ui package) and apps/dashboard/src/app.css (unprefixed, for dashboard-only files) — a ui:-prefixed custom utility only compiles if it is also used somewhere under packages/ui/src, so dashboard-only usages need the unprefixed twin. Also fixes two pre-existing dropdown/select menus (tags-admin.svelte, mark-exercise-modal.svelte) that used ui:z-[250], which never actually compiled to any CSS rule since nothing under packages/ui/src used that exact class. Co-authored-by: Rotimi Best <[email protected]> * fix(ui): safelist the packaged z-index scale so it always compiles @utility only emits a class when Tailwind's scanner sees that exact candidate under packages/ui/src, so ui:z-app-bar-elevated and ui:z-menu-elevated were documented but silently missing from the compiled @cio/ui CSS since nothing inside the package itself used them. Safelist all four layers via @source inline() so the shipped scale always matches what's documented, regardless of which layers this package happens to reference internally. Co-authored-by: Rotimi Best <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]> Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
co-authored by
Rotimi Best
Cursor Agent
parent
c0f82d9573
commit
0836d9b5bb
@@ -8,6 +8,28 @@
|
||||
|
||||
@custom-variant dark (&:where(.dark, .dark *));
|
||||
|
||||
/**
|
||||
* Shared z-index scale, mirrored from `packages/ui/src/index.css`.
|
||||
*
|
||||
* Dashboard code has its own (unprefixed) Tailwind pipeline, separate from `@cio/ui`'s
|
||||
* `ui:`-prefixed one — a `ui:`-prefixed utility only compiles if that exact class string is
|
||||
* also used somewhere under `packages/ui/src`. So dashboard-only usages (page headers, the
|
||||
* course sidebar, dropdowns/selects that need to escape a sticky header or a modal) must use
|
||||
* these unprefixed names instead. Keep the two scales numerically in sync; see
|
||||
* `packages/ui/README.md` for the full write-up of each layer.
|
||||
*/
|
||||
@utility z-app-bar {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
@utility z-app-bar-elevated {
|
||||
z-index: 150;
|
||||
}
|
||||
|
||||
@utility z-menu-elevated {
|
||||
z-index: 250;
|
||||
}
|
||||
|
||||
/* Geist variable font — self-hosted */
|
||||
@font-face {
|
||||
font-family: 'Geist';
|
||||
|
||||
Reference in New Issue
Block a user