156 lines
5.3 KiB
SCSS
156 lines
5.3 KiB
SCSS
/*
|
|
* Nova overrides (keep minimal).
|
|
* The Nova layout is styled primarily via Tailwind utilities from resources/css/app.css.
|
|
*/
|
|
|
|
/* Hero radial background moved from inline styles to a class to respect Nova rules */
|
|
.nb-hero-radial {
|
|
background-image: radial-gradient(circle at 20% 10%, rgba(77,163,255,.25), transparent 35%),
|
|
radial-gradient(circle at 70% 30%, rgba(255,196,77,.18), transparent 40%),
|
|
radial-gradient(circle at 30% 80%, rgba(180,77,255,.16), transparent 45%);
|
|
}
|
|
|
|
/* Nova design tokens and helper classes copied from nova.html preview
|
|
These provide the same color tokens and small utilities used by the preview
|
|
so `blank` renders consistently until Tailwind config is consolidated. */
|
|
:root {
|
|
--sb-bg: #141416;
|
|
--sb-top: #1c1c1f;
|
|
--sb-panel: #191a1f;
|
|
--sb-panel2: #15161b;
|
|
--sb-line: #2a2a33;
|
|
--sb-text: #e3e3e3;
|
|
--sb-muted: #a6a6b0;
|
|
--sb-blue: #4da3ff;
|
|
|
|
/* Primary UI color tokens (Nova palette) */
|
|
--nova-blue: #09101acc;
|
|
--deep-space: #0F1724;
|
|
--panel-dark: #151E2E;
|
|
--soft-blue: #7A8CA5;
|
|
--accent-orange: #E07A21;
|
|
/* Toolbar color (Skinbase Nova) */
|
|
--toolbar-bg: #0F1724;
|
|
/* RGB variants for subtle overlays */
|
|
--nova-blue-rgb: 100,111,131;
|
|
--deep-space-rgb: 15,23,36;
|
|
--panel-dark-rgb: 21,30,46;
|
|
--toolbar-bg-rgb: 15,23,36;
|
|
}
|
|
|
|
/* Background / text helpers (used in preview markup) */
|
|
.bg-sb-bg { background-color: var(--sb-bg) !important; }
|
|
.bg-sb-top { background-color: var(--sb-top) !important; }
|
|
.bg-sb-panel { background-color: var(--sb-panel) !important; }
|
|
.bg-sb-panel2 { background-color: var(--sb-panel2) !important; }
|
|
.text-sb-text { color: var(--sb-text) !important; }
|
|
.text-sb-muted { color: var(--sb-muted) !important; }
|
|
.border-sb-line { border-color: var(--sb-line) !important; }
|
|
|
|
/* Small shadow token used by preview */
|
|
.shadow-sb { box-shadow: 0 12px 30px rgba(0,0,0,.45) !important; }
|
|
|
|
/* Scrollbar helpers used in preview */
|
|
.sb-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
.sb-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 999px; transition: background .2s; }
|
|
.sb-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.25); }
|
|
.sb-scrollbar::-webkit-scrollbar-track { background: transparent; }
|
|
.sb-scrollbar { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.12) transparent; }
|
|
|
|
/* Ensure header and dropdowns are not clipped and render above page content */
|
|
header {
|
|
overflow: visible;
|
|
/* Use the official toolbar background token from the Nova spec */
|
|
background-color: var(--toolbar-bg);
|
|
/* subtle divider to separate toolbar from content */
|
|
border-bottom: 1px solid rgba(255,255,255,0.02);
|
|
}
|
|
|
|
/* Menus may be absolute-positioned; ensure they sit above other UI layers */
|
|
[id^="dd-"] , [data-dropdown-menu], [data-submenu-menu] {
|
|
z-index: 9999 !important;
|
|
background-color: var(--panel-dark);
|
|
color: var(--sb-text);
|
|
border: 1px solid rgba(255,255,255,0.03);
|
|
}
|
|
|
|
/* Convenience helpers for the new nova tokens */
|
|
.bg-nova { background-color: var(--nova-blue) !important; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(2px); }
|
|
.bg-deep { background-color: var(--deep-space) !important; }
|
|
.bg-panel-dark { background-color: var(--panel-dark) !important; }
|
|
.text-soft { color: var(--soft-blue) !important; }
|
|
.text-accent { color: var(--accent-orange) !important; }
|
|
|
|
/* Dropdown section header: subtle, smaller and visually separated */
|
|
.dd-section {
|
|
font-size: 11px;
|
|
color: rgba(166,166,176,0.65);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
border-top: 1px solid rgba(42,42,51,0.12);
|
|
margin-top: 0.5rem;
|
|
padding-top: 0.5rem;
|
|
padding-bottom: 0.25rem;
|
|
}
|
|
|
|
/* ─── Dropdown animations ─────────────────────────────────────── */
|
|
|
|
/**
|
|
* .dd-menu — base (closed) state.
|
|
* Invisible, shifted up slightly, non-interactive.
|
|
* On close the element fades out; visibility is hidden *after* the fade
|
|
* so the element is still rendered during the transition.
|
|
*/
|
|
.dd-menu {
|
|
opacity: 0;
|
|
transform: translateY(-6px) scale(0.97);
|
|
pointer-events: none;
|
|
visibility: hidden;
|
|
transition:
|
|
opacity 140ms ease,
|
|
transform 140ms ease,
|
|
visibility 0s linear 140ms;
|
|
}
|
|
|
|
/**
|
|
* .dd-menu.is-open — open state.
|
|
* Fully visible, interactive, with a snappy entrance spring.
|
|
* visibility is made visible immediately (0s delay), then
|
|
* opacity + transform animate in.
|
|
*/
|
|
.dd-menu.is-open {
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
pointer-events: auto;
|
|
visibility: visible;
|
|
transition:
|
|
opacity 170ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
transform 170ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
visibility 0s linear 0s;
|
|
}
|
|
|
|
/* Chevron rotation indicator for open dropdowns */
|
|
[data-dd] svg:last-child,
|
|
[data-dropdown-toggle] svg:last-child {
|
|
transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
}
|
|
[data-dd][aria-expanded="true"] svg:last-child,
|
|
[data-dropdown-toggle][aria-expanded="true"] svg:last-child {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
/* Item hover: subtle left-border accent when hovering menu links */
|
|
.dd-menu a:hover,
|
|
.dd-menu button:hover {
|
|
border-left: 2px solid rgba(77,163,255,0.4);
|
|
padding-left: calc(1rem - 2px);
|
|
}
|
|
.dd-menu a,
|
|
.dd-menu button {
|
|
border-left: 2px solid transparent;
|
|
transition: border-color 120ms ease, background-color 120ms ease, padding-left 120ms ease;
|
|
}
|
|
|
|
|
|
|