mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Refine layout tokens and utilities
This commit is contained in:
1 parent
036412c601
commit
13cb9c44c1
11 files changed
+240
-115
No files matched your search
+61
-90
@@ -2,9 +2,9 @@
|
||||
|
||||
:root {
|
||||
--scrollbar-width: 0.5rem;
|
||||
--scrollbar-track: rgba(255, 255, 255, 0.1);
|
||||
--scrollbar-thumb: rgba(255, 255, 255, 0.3);
|
||||
--scrollbar-thumb-hover: rgba(255, 255, 255, 0.4);
|
||||
--scrollbar-track: var(--color-white-soft);
|
||||
--scrollbar-thumb: var(--color-white-softer);
|
||||
--scrollbar-thumb-hover: var(--color-white-softest);
|
||||
/* Sidebar stack must remain below modal overlays. */
|
||||
--z-sidebar-overlay: 10;
|
||||
--z-sidebar: 20;
|
||||
@@ -98,30 +98,6 @@ header img {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
/* Video Grids */
|
||||
#videoList {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 1.5rem 0;
|
||||
}
|
||||
|
||||
/* Subscriptions grid: same pattern as #videoList */
|
||||
#subscriptionsVideoList {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 1.5rem 0;
|
||||
}
|
||||
|
||||
/* Now also match for channelVideoList (channel profile) */
|
||||
#channelVideoList {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 1.5rem 0;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Legacy component compatibility shims
|
||||
--------------------------------------------------------------------------
|
||||
@@ -136,26 +112,26 @@ header img {
|
||||
|
||||
.video-card.video-card--owner-private {
|
||||
box-shadow:
|
||||
0 0 0 0.125rem rgba(168, 85, 247, 0.55),
|
||||
0 0 0 0.125rem var(--color-ring-private),
|
||||
var(--shadow-md);
|
||||
}
|
||||
|
||||
.video-card.video-card--owner-private:hover {
|
||||
box-shadow:
|
||||
0 0 0 0.125rem rgba(192, 132, 252, 0.65),
|
||||
0 0 0 0.125rem var(--color-ring-private-hover),
|
||||
var(--shadow-lg);
|
||||
}
|
||||
|
||||
.video-card.video-card--nsfw-owner {
|
||||
background-color: #000;
|
||||
background-color: var(--color-black);
|
||||
box-shadow:
|
||||
0 0 0 0.0625rem rgba(239, 68, 68, 0.4),
|
||||
0 0 0 0.0625rem var(--color-ring-critical),
|
||||
var(--shadow-md);
|
||||
}
|
||||
|
||||
.video-card.video-card--nsfw-owner:hover {
|
||||
box-shadow:
|
||||
0 0 0 0.0625rem rgba(239, 68, 68, 0.55),
|
||||
0 0 0 0.0625rem var(--color-ring-critical-strong),
|
||||
var(--shadow-lg);
|
||||
}
|
||||
|
||||
@@ -169,13 +145,13 @@ header img {
|
||||
|
||||
.video-card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] {
|
||||
box-shadow:
|
||||
0 0 0 0.0625rem rgba(239, 68, 68, 0.35),
|
||||
0 0 0 0.0625rem var(--color-ring-critical-soft),
|
||||
var(--shadow-md);
|
||||
}
|
||||
|
||||
.video-card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"]:hover {
|
||||
box-shadow:
|
||||
0 0 0 0.0625rem rgba(239, 68, 68, 0.45),
|
||||
0 0 0 0.0625rem var(--color-ring-critical-hover),
|
||||
var(--shadow-lg);
|
||||
}
|
||||
|
||||
@@ -196,8 +172,8 @@ header img {
|
||||
.video-visibility-toggle__option[data-active="true"] {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(129, 140, 248, 0.4),
|
||||
rgba(192, 132, 252, 0.32)
|
||||
var(--color-gradient-visibility-start),
|
||||
var(--color-gradient-visibility-end)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -413,12 +389,12 @@ header img {
|
||||
.video-modal__video,
|
||||
#playerModal .player-modal__video {
|
||||
padding: clamp(0.75rem, 3.5vw, 2.5rem);
|
||||
border-bottom: 0.0625rem solid rgba(148, 163, 184, 0.18);
|
||||
border-bottom: 0.0625rem solid var(--color-border-translucent);
|
||||
}
|
||||
|
||||
.video-modal__media,
|
||||
#playerModal .player-modal__video video {
|
||||
box-shadow: 0 1.125rem 2.75rem rgba(8, 11, 30, 0.55);
|
||||
box-shadow: 0 1.125rem 2.75rem var(--color-shadow-floating);
|
||||
max-height: min(80vh, calc(100vw * 9 / 16));
|
||||
}
|
||||
|
||||
@@ -426,7 +402,7 @@ header img {
|
||||
#playerModal .player-modal__info {
|
||||
padding: clamp(1.5rem, 3vw, 2.5rem);
|
||||
padding-bottom: clamp(2.5rem, 6vw, 4rem);
|
||||
box-shadow: inset 0 1px 0 rgba(15, 23, 42, 0.35);
|
||||
box-shadow: inset 0 1px 0 var(--color-divider-strong);
|
||||
}
|
||||
|
||||
.modal-meta {
|
||||
@@ -526,8 +502,8 @@ body.modal-open #sidebarOverlay {
|
||||
.modal-nav,
|
||||
.video-modal__nav {
|
||||
background-color: var(--color-bg);
|
||||
border-bottom: 0.0625rem solid rgba(148, 163, 184, 0.25);
|
||||
box-shadow: 0 0.75rem 2rem rgba(8, 11, 30, 0.45);
|
||||
border-bottom: 0.0625rem solid var(--color-border-translucent-strong);
|
||||
box-shadow: 0 0.75rem 2rem var(--color-shadow-elevated);
|
||||
}
|
||||
|
||||
.modal-nav .flex {
|
||||
@@ -547,10 +523,10 @@ body.modal-open #sidebarOverlay {
|
||||
.zap-popover__content {
|
||||
width: 18rem;
|
||||
max-width: calc(100vw - 2rem);
|
||||
background: rgba(11, 17, 32, 0.96);
|
||||
background: var(--color-overlay-veil);
|
||||
color: var(--color-subtle);
|
||||
border: 1px solid rgba(148, 163, 184, 0.35);
|
||||
box-shadow: 0 22px 48px -18px rgba(8, 14, 28, 0.7);
|
||||
border: 1px solid var(--color-border-translucent-stronger);
|
||||
box-shadow: 0 22px 48px -18px var(--color-shadow-intense);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
backdrop-filter: blur(12px);
|
||||
}
|
||||
@@ -579,7 +555,7 @@ body.modal-open #sidebarOverlay {
|
||||
.progress-bar {
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
background-color: rgb(255 255 255 / 0.1);
|
||||
background-color: var(--color-white-soft);
|
||||
border-radius: 9999px;
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -596,7 +572,7 @@ textarea {
|
||||
width: 100%;
|
||||
padding: 0.75rem;
|
||||
background-color: var(--color-bg);
|
||||
border: 0.0625rem solid rgb(255 255 255 / 0.1);
|
||||
border: 0.0625rem solid var(--color-white-soft);
|
||||
border-radius: 0.5rem;
|
||||
color: var(--color-text);
|
||||
transition: border-color 0.2s;
|
||||
@@ -665,7 +641,7 @@ button:not(.icon-button):focus {
|
||||
margin-bottom: 0;
|
||||
pointer-events: auto;
|
||||
border-radius: 0.75rem;
|
||||
box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.3);
|
||||
box-shadow: 0 1.25rem 3rem var(--color-shadow-notification);
|
||||
}
|
||||
|
||||
/* Base styling without a forced display */
|
||||
@@ -685,7 +661,7 @@ button:not(.icon-button):focus {
|
||||
|
||||
.status-spinner--inline {
|
||||
animation: spin 1s linear infinite;
|
||||
border: 0.125rem solid rgba(96, 165, 250, 0.35);
|
||||
border: 0.125rem solid var(--color-border-info-soft);
|
||||
border-radius: 9999px;
|
||||
border-top-color: var(--color-info);
|
||||
display: inline-block;
|
||||
@@ -718,7 +694,7 @@ button:not(.icon-button):focus {
|
||||
|
||||
.status-banner {
|
||||
align-items: center;
|
||||
background-color: rgba(31, 41, 55, 0.9);
|
||||
background-color: var(--color-overlay-panel);
|
||||
border-radius: 0.5rem;
|
||||
color: var(--color-subtle);
|
||||
display: flex;
|
||||
@@ -729,7 +705,7 @@ button:not(.icon-button):focus {
|
||||
|
||||
.status-banner .status-spinner {
|
||||
animation: spin 1s linear infinite;
|
||||
border: 0.125rem solid rgba(229, 231, 235, 0.35);
|
||||
border: 0.125rem solid var(--color-border-neutral-soft);
|
||||
border-radius: 9999px;
|
||||
border-top-color: var(--color-page-alt);
|
||||
height: 1.25rem;
|
||||
@@ -744,18 +720,13 @@ button:not(.icon-button):focus {
|
||||
|
||||
/* Responsive Design */
|
||||
@media (max-width: 640px) {
|
||||
#videoList {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
border-top: 0.0625rem solid rgba(255, 255, 255, 0.1);
|
||||
border-top: 0.0625rem solid var(--color-white-soft);
|
||||
margin-top: 4rem;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
@@ -772,7 +743,7 @@ footer a:hover {
|
||||
#disclaimerModal {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background-color: rgb(0 0 0 / 0.9);
|
||||
background-color: var(--color-overlay-black);
|
||||
z-index: var(--z-modal-root);
|
||||
/* remove display: none; */
|
||||
display: flex;
|
||||
@@ -800,7 +771,7 @@ footer a:hover {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: var(--color-bg);
|
||||
box-shadow: 0 1.5625rem 3.125rem -0.75rem rgb(0 0 0 / 0.45);
|
||||
box-shadow: 0 1.5625rem 3.125rem -0.75rem var(--color-shadow-sidebar);
|
||||
}
|
||||
|
||||
#disclaimerModal .modal-header {
|
||||
@@ -816,7 +787,7 @@ footer a:hover {
|
||||
#disclaimerModal .modal-footer {
|
||||
padding: 1.25rem 1.5rem 1.75rem;
|
||||
background-color: var(--color-overlay);
|
||||
border-top: 0.0625rem solid rgba(255, 255, 255, 0.1);
|
||||
border-top: 0.0625rem solid var(--color-white-soft);
|
||||
}
|
||||
|
||||
/* Responsive Adjustments for Disclaimer Modal */
|
||||
@@ -862,18 +833,18 @@ footer a:hover {
|
||||
|
||||
/* Override default button styles for back button */
|
||||
.back-button {
|
||||
background: rgba(15, 23, 42, 0.75) !important;
|
||||
background: var(--color-overlay-strong) !important;
|
||||
padding: 0 !important;
|
||||
color: rgb(226 232 240) !important;
|
||||
color: var(--color-subtle-text) !important;
|
||||
transform: none !important;
|
||||
border: 0.0625rem solid rgba(148, 163, 184, 0.4) !important;
|
||||
border: 0.0625rem solid var(--color-border-translucent-strongest) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.back-button:hover {
|
||||
background: rgba(51, 65, 85, 0.95) !important;
|
||||
color: white !important;
|
||||
border-color: rgba(148, 163, 184, 0.55) !important;
|
||||
background: var(--color-overlay-banner) !important;
|
||||
color: var(--color-white) !important;
|
||||
border-color: var(--color-border-translucent-glow) !important;
|
||||
}
|
||||
|
||||
/* Modal Container */
|
||||
@@ -889,7 +860,7 @@ footer a:hover {
|
||||
|
||||
/* Video info cards */
|
||||
.player-modal__info .bg-gray-800\/50 {
|
||||
background-color: rgb(31 41 55 / 0.5);
|
||||
background-color: var(--color-overlay-panel-tint);
|
||||
backdrop-filter: blur(0.25rem);
|
||||
}
|
||||
|
||||
@@ -921,7 +892,7 @@ footer a:hover {
|
||||
.icon-button:focus,
|
||||
.icon-button:active {
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 0.1875rem rgba(220, 38, 38, 0.6);
|
||||
box-shadow: 0 0 0 0.1875rem var(--color-ring-alert);
|
||||
}
|
||||
|
||||
.icon-image {
|
||||
@@ -1017,12 +988,12 @@ footer a:hover {
|
||||
.sidebar-panel {
|
||||
background: linear-gradient(
|
||||
160deg,
|
||||
rgba(30, 41, 59, 0.92) 0%,
|
||||
rgba(15, 23, 42, 0.92) 100%
|
||||
var(--color-overlay-panel-gradient-start) 0%,
|
||||
var(--color-overlay-panel-gradient-end) 100%
|
||||
);
|
||||
border: 1px solid rgba(148, 163, 184, 0.18);
|
||||
border: 1px solid var(--color-border-translucent);
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 1.25rem 2.5rem rgba(15, 23, 42, 0.35);
|
||||
box-shadow: 0 1.25rem 2.5rem var(--color-shadow-panel);
|
||||
padding: 1.25rem 1rem;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
@@ -1049,8 +1020,8 @@ footer a:hover {
|
||||
width: var(--sidebar-control-size);
|
||||
height: var(--sidebar-control-size);
|
||||
border-radius: 9999px;
|
||||
border: 1px solid rgba(148, 163, 184, 0.2);
|
||||
background: rgba(148, 163, 184, 0.08);
|
||||
border: 1px solid var(--color-border-translucent-medium);
|
||||
background: var(--color-surface-tint-subtle);
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
@@ -1062,8 +1033,8 @@ footer a:hover {
|
||||
}
|
||||
|
||||
.sidebar-collapse-toggle:hover {
|
||||
background: rgba(148, 163, 184, 0.18);
|
||||
border-color: rgba(148, 163, 184, 0.35);
|
||||
background: var(--color-border-translucent);
|
||||
border-color: var(--color-border-translucent-stronger);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
@@ -1096,7 +1067,7 @@ footer a:hover {
|
||||
border-radius: 0.875rem;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
color: rgba(226, 232, 240, 0.94);
|
||||
color: var(--color-text-frosted-strong);
|
||||
text-decoration: none;
|
||||
transition:
|
||||
background 160ms ease,
|
||||
@@ -1107,7 +1078,7 @@ footer a:hover {
|
||||
}
|
||||
|
||||
.sidebar-nav-link:hover {
|
||||
background: rgba(148, 163, 184, 0.18);
|
||||
background: var(--color-border-translucent);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
@@ -1119,7 +1090,7 @@ footer a:hover {
|
||||
.sidebar-nav-link--sub {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 500;
|
||||
color: rgba(226, 232, 240, 0.82);
|
||||
color: var(--color-text-frosted-soft);
|
||||
padding-block: 0.55rem;
|
||||
}
|
||||
|
||||
@@ -1151,9 +1122,9 @@ footer a:hover {
|
||||
padding: 0.75rem 0.875rem;
|
||||
min-height: var(--sidebar-control-size);
|
||||
border-radius: 0.875rem;
|
||||
border: 1px solid rgba(148, 163, 184, 0.18);
|
||||
background: rgba(30, 41, 59, 0.85);
|
||||
color: rgba(226, 232, 240, 0.9);
|
||||
border: 1px solid var(--color-border-translucent);
|
||||
background: var(--color-overlay-panel-glass);
|
||||
color: var(--color-text-frosted);
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
@@ -1166,8 +1137,8 @@ footer a:hover {
|
||||
}
|
||||
|
||||
.sidebar-dropup-trigger:hover {
|
||||
background: rgba(51, 65, 85, 0.95);
|
||||
border-color: rgba(148, 163, 184, 0.32);
|
||||
background: var(--color-overlay-banner);
|
||||
border-color: var(--color-border-translucent-bright);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
@@ -1194,10 +1165,10 @@ footer a:hover {
|
||||
}
|
||||
|
||||
.sidebar-dropup-panel {
|
||||
background: rgba(15, 23, 42, 0.88);
|
||||
border: 1px solid rgba(148, 163, 184, 0.18);
|
||||
background: var(--color-overlay-darker);
|
||||
border: 1px solid var(--color-border-translucent);
|
||||
border-radius: 0.875rem;
|
||||
box-shadow: 0 1.5rem 3rem rgba(15, 23, 42, 0.4);
|
||||
box-shadow: 0 1.5rem 3rem var(--color-shadow-panel);
|
||||
padding: 0.75rem 0.5rem;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
@@ -1237,7 +1208,7 @@ footer a:hover {
|
||||
}
|
||||
|
||||
#sidebar.sidebar-open {
|
||||
box-shadow: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.45);
|
||||
box-shadow: 0 0.75rem 1.5rem var(--color-shadow-panel);
|
||||
}
|
||||
|
||||
#sidebarOverlay {
|
||||
@@ -1246,7 +1217,7 @@ footer a:hover {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(15, 23, 42, 0.55);
|
||||
background: var(--color-overlay-muted);
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transition: opacity 0.3s ease;
|
||||
@@ -1453,8 +1424,8 @@ body.sidebar-open #sidebarOverlay {
|
||||
}
|
||||
|
||||
.locked-input {
|
||||
background-color: rgba(31, 41, 55, 0.75) !important;
|
||||
border-color: rgba(55, 65, 81, 0.9) !important;
|
||||
background-color: var(--color-overlay-panel-soft) !important;
|
||||
border-color: var(--color-border-sidebar-strong) !important;
|
||||
color: var(--color-muted) !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
:root{--color-page:#fff;--color-page-alt:#f9fafb;--color-surface:#0f172a;--color-surface-alt:#111827;--color-bg:var(--color-surface);--color-card:#1e293b;--color-card-private:#3b1d74;--color-card-critical:#3f0b13;--color-panel:#1f2937;--color-panel-hover:#334155;--color-border:#374151;--color-border-subtle:#d1d5db;--color-primary:#fe0032;--color-secondary:#ff93a5;--color-info:#60a5fa;--color-info-strong:#2563eb;--color-info-pressed:#1d4ed8;--color-muted-strong:#6b7280;--color-text:#f8fafc;--color-text-strong:#0f172a;--color-muted:#94a3b8;--color-muted-alt:#9ca3af;--color-subtle-text:#e2e8f0;--color-subtle:#e5e7eb;--color-critical:#7f1d1d;--color-critical-strong:#991b1b;--color-neutral-700:#3f3f46;--color-neutral-600:#52525b;--color-white:#fff;--color-black:#000;--color-overlay:#1a2234;--space-2xs:0.25rem;--space-xs:0.5rem;--space-sm:0.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 0.0625rem 0.125rem 0 rgb(0 0 0/5%);--shadow-md:0 0.25rem 0.375rem -0.0625rem rgba(0,0,0,.1);--shadow-lg:0 0.625rem 0.9375rem -0.1875rem rgba(0,0,0,.1);--shadow-modal:0 1.25rem 2.5rem -0.375rem rgba(15,23,42,.55);--font-family-sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--font-family-mono:"Fira Code","SFMono-Regular",ui-monospace,monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--line-height-tight:1.1;--line-height-snug:1.25;--line-height-base:1.5;--line-height-relaxed:1.75;--motion-duration-fast:120ms;--motion-duration-base:160ms;--motion-duration-slow:280ms;--motion-ease-out:cubic-bezier(0.16,1,0.3,1);--motion-ease-in-out:cubic-bezier(0.4,0,0.2,1);--modal-motion-duration:var(--motion-duration-base)}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
||||
:root{--color-page:#fff;--color-page-alt:#f9fafb;--color-surface:#0f172a;--color-surface-alt:#111827;--color-bg:var(--color-surface);--color-card:#1e293b;--color-card-private:#3b1d74;--color-card-critical:#3f0b13;--color-panel:#1f2937;--color-panel-hover:#334155;--color-border:#374151;--color-border-subtle:#d1d5db;--color-primary:#fe0032;--color-secondary:#ff93a5;--color-info:#60a5fa;--color-info-strong:#2563eb;--color-info-pressed:#1d4ed8;--color-muted-strong:#6b7280;--color-text:#f8fafc;--color-text-strong:#0f172a;--color-text-muted:var(--color-muted);--color-muted:#94a3b8;--color-muted-alt:#9ca3af;--color-subtle-text:#e2e8f0;--color-subtle:#e5e7eb;--color-critical:#7f1d1d;--color-critical-strong:#991b1b;--color-neutral-700:#3f3f46;--color-neutral-600:#52525b;--color-white:#fff;--color-black:#000;--color-overlay:#1a2234;--color-overlay-black:rgba(0,0,0,.9);--color-overlay-muted:rgba(15,23,42,.55);--color-overlay-strong:rgba(15,23,42,.75);--color-overlay-darker:rgba(15,23,42,.88);--color-overlay-panel:rgba(31,41,55,.9);--color-overlay-panel-soft:rgba(31,41,55,.75);--color-overlay-panel-tint:rgba(31,41,55,.5);--color-overlay-panel-glass:rgba(30,41,59,.85);--color-overlay-veil:rgba(11,17,32,.96);--color-overlay-banner:rgba(51,65,85,.95);--color-overlay-panel-gradient-start:rgba(30,41,59,.92);--color-overlay-panel-gradient-end:rgba(15,23,42,.92);--color-surface-tint-subtle:rgba(148,163,184,.08);--color-border-translucent:rgba(148,163,184,.18);--color-border-translucent-strong:rgba(148,163,184,.25);--color-border-translucent-bright:rgba(148,163,184,.32);--color-border-translucent-stronger:rgba(148,163,184,.35);--color-border-translucent-strongest:rgba(148,163,184,.4);--color-border-translucent-glow:rgba(148,163,184,.55);--color-border-translucent-medium:rgba(148,163,184,.2);--color-border-neutral-soft:rgba(229,231,235,.35);--color-border-info-soft:rgba(96,165,250,.35);--color-border-sidebar-strong:rgba(55,65,81,.9);--color-ring-private:rgba(168,85,247,.55);--color-ring-private-hover:rgba(192,132,252,.65);--color-ring-critical:rgba(239,68,68,.4);--color-ring-critical-soft:rgba(239,68,68,.35);--color-ring-critical-hover:rgba(239,68,68,.45);--color-ring-critical-strong:rgba(239,68,68,.55);--color-ring-alert:rgba(220,38,38,.6);--color-gradient-visibility-start:rgba(129,140,248,.4);--color-gradient-visibility-end:rgba(192,132,252,.32);--color-white-soft:hsla(0,0%,100%,.1);--color-white-softer:hsla(0,0%,100%,.3);--color-white-softest:hsla(0,0%,100%,.4);--color-shadow-floating:rgba(8,11,30,.55);--color-shadow-elevated:rgba(8,11,30,.45);--color-shadow-panel:rgba(15,23,42,.35);--color-shadow-notification:rgba(15,23,42,.3);--color-shadow-sidebar:rgba(0,0,0,.45);--color-divider-strong:rgba(15,23,42,.35);--color-text-frosted-strong:rgba(226,232,240,.94);--color-text-frosted:rgba(226,232,240,.9);--color-text-frosted-soft:rgba(226,232,240,.82);--space-2xs:0.25rem;--space-xs:0.5rem;--space-sm:0.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 0.0625rem 0.125rem 0 rgb(0 0 0/5%);--shadow-md:0 0.25rem 0.375rem -0.0625rem rgba(0,0,0,.1);--shadow-lg:0 0.625rem 0.9375rem -0.1875rem rgba(0,0,0,.1);--shadow-modal:0 1.25rem 2.5rem -0.375rem rgba(15,23,42,.55);--font-family-sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--font-family-mono:"Fira Code","SFMono-Regular",ui-monospace,monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--line-height-tight:1.1;--line-height-snug:1.25;--line-height-base:1.5;--line-height-relaxed:1.75;--motion-duration-fast:120ms;--motion-duration-base:160ms;--motion-duration-slow:280ms;--motion-ease-out:cubic-bezier(0.16,1,0.3,1);--motion-ease-in-out:cubic-bezier(0.4,0,0.2,1);--modal-motion-duration:var(--motion-duration-base)}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contaiLine truncated
|
||||
|
||||
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-family-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.focus-ring{outline:2px solid transparent;outline-offset:2px}.focus-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-fast);transition-timing-function:cubic-bezier(0,0,.2,1)}.btn{outline:2px solid transparent;outline-offset:2px}.btn:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-fast);transition-timing-function:cubic-bezier(0,0,.2,1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-lg);border-width:1px;border-color:transparent;background-color:var(--color-primary);padding:.5rem 1rem;font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--color-white);--tw-shadow:var(--shadow-md);--tw-shadow-colored:var(--shadow-md);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-funLine truncated
|
||||
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-family-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.focus-ring{outline:2px solid transparent;outline-offset:2px}.focus-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-fast);transition-timing-function:cubic-bezier(0,0,.2,1)}.btn{outline:2px solid transparent;outline-offset:2px}.btn:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-fast);transition-timing-function:cubic-bezier(0,0,.2,1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-lg);border-width:1px;border-color:transparent;background-color:var(--color-primary);padding:.5rem 1rem;font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--color-white);--tw-shadow:var(--shadow-md);--tw-shadow-colored:var(--shadow-md);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-funLine truncated
|
||||
@@ -125,6 +125,19 @@
|
||||
@apply flex flex-col gap-md;
|
||||
}
|
||||
|
||||
.bv-stack {
|
||||
@apply flex flex-col gap-lg;
|
||||
}
|
||||
|
||||
.bv-stack--tight {
|
||||
@apply gap-md;
|
||||
}
|
||||
|
||||
.bv-grid-video {
|
||||
@apply grid gap-xl py-lg;
|
||||
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
|
||||
}
|
||||
|
||||
/* Legacy compatibility shims */
|
||||
.video-card {
|
||||
@apply card overflow-visible;
|
||||
@@ -438,3 +451,10 @@
|
||||
@apply bg-critical text-white hover:bg-critical-strong focus-visible:bg-critical-strong;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 40rem) {
|
||||
.bv-grid-video {
|
||||
gap: var(--space-md);
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,7 @@
|
||||
--color-muted-strong: rgb(107 114 128);
|
||||
--color-text: rgb(248 250 252);
|
||||
--color-text-strong: rgb(15 23 42);
|
||||
--color-text-muted: var(--color-muted);
|
||||
--color-muted: rgb(148 163 184);
|
||||
--color-muted-alt: rgb(156 163 175);
|
||||
--color-subtle-text: rgb(226 232 240);
|
||||
@@ -31,6 +32,50 @@
|
||||
--color-white: rgb(255 255 255);
|
||||
--color-black: rgb(0 0 0);
|
||||
--color-overlay: rgb(26 34 52);
|
||||
--color-overlay-black: rgb(0 0 0 / 0.9);
|
||||
--color-overlay-muted: rgb(15 23 42 / 0.55);
|
||||
--color-overlay-strong: rgb(15 23 42 / 0.75);
|
||||
--color-overlay-darker: rgb(15 23 42 / 0.88);
|
||||
--color-overlay-panel: rgb(31 41 55 / 0.9);
|
||||
--color-overlay-panel-soft: rgb(31 41 55 / 0.75);
|
||||
--color-overlay-panel-tint: rgb(31 41 55 / 0.5);
|
||||
--color-overlay-panel-glass: rgb(30 41 59 / 0.85);
|
||||
--color-overlay-veil: rgb(11 17 32 / 0.96);
|
||||
--color-overlay-banner: rgb(51 65 85 / 0.95);
|
||||
--color-overlay-panel-gradient-start: rgb(30 41 59 / 0.92);
|
||||
--color-overlay-panel-gradient-end: rgb(15 23 42 / 0.92);
|
||||
--color-surface-tint-subtle: rgb(148 163 184 / 0.08);
|
||||
--color-border-translucent: rgb(148 163 184 / 0.18);
|
||||
--color-border-translucent-strong: rgb(148 163 184 / 0.25);
|
||||
--color-border-translucent-bright: rgb(148 163 184 / 0.32);
|
||||
--color-border-translucent-stronger: rgb(148 163 184 / 0.35);
|
||||
--color-border-translucent-strongest: rgb(148 163 184 / 0.4);
|
||||
--color-border-translucent-glow: rgb(148 163 184 / 0.55);
|
||||
--color-border-translucent-medium: rgb(148 163 184 / 0.2);
|
||||
--color-border-neutral-soft: rgb(229 231 235 / 0.35);
|
||||
--color-border-info-soft: rgb(96 165 250 / 0.35);
|
||||
--color-border-sidebar-strong: rgb(55 65 81 / 0.9);
|
||||
--color-ring-private: rgb(168 85 247 / 0.55);
|
||||
--color-ring-private-hover: rgb(192 132 252 / 0.65);
|
||||
--color-ring-critical: rgb(239 68 68 / 0.4);
|
||||
--color-ring-critical-soft: rgb(239 68 68 / 0.35);
|
||||
--color-ring-critical-hover: rgb(239 68 68 / 0.45);
|
||||
--color-ring-critical-strong: rgb(239 68 68 / 0.55);
|
||||
--color-ring-alert: rgb(220 38 38 / 0.6);
|
||||
--color-gradient-visibility-start: rgb(129 140 248 / 0.4);
|
||||
--color-gradient-visibility-end: rgb(192 132 252 / 0.32);
|
||||
--color-white-soft: rgb(255 255 255 / 0.1);
|
||||
--color-white-softer: rgb(255 255 255 / 0.3);
|
||||
--color-white-softest: rgb(255 255 255 / 0.4);
|
||||
--color-shadow-floating: rgb(8 11 30 / 0.55);
|
||||
--color-shadow-elevated: rgb(8 11 30 / 0.45);
|
||||
--color-shadow-panel: rgb(15 23 42 / 0.35);
|
||||
--color-shadow-notification: rgb(15 23 42 / 0.3);
|
||||
--color-shadow-sidebar: rgb(0 0 0 / 0.45);
|
||||
--color-divider-strong: rgb(15 23 42 / 0.35);
|
||||
--color-text-frosted-strong: rgb(226 232 240 / 0.94);
|
||||
--color-text-frosted: rgb(226 232 240 / 0.9);
|
||||
--color-text-frosted-soft: rgb(226 232 240 / 0.82);
|
||||
|
||||
/* Spacing scale */
|
||||
--space-2xs: 0.25rem;
|
||||
|
||||
@@ -68,6 +68,12 @@ Compose them together when mounting new modal portals. If you need a drawer or s
|
||||
|
||||
`.grid-stack` offers gap tokens for dense layouts. Add `data-variant="cards"` for responsive card grids (`grid-cols-1` → `sm:grid-cols-2` → `xl:grid-cols-3`). Switch to `data-orientation="vertical"` for stacked flex columns that reuse the same spacing tokens.
|
||||
|
||||
### Layout Helpers
|
||||
|
||||
- `.bv-stack` creates a vertical flex stack with the default large gap (`var(--space-lg)`). Use it for page sections such as the watch-history summary blocks.
|
||||
- `.bv-stack--tight` reduces the gap to `var(--space-md)` while inheriting the `.bv-stack` flex behaviour. Combine the modifier when stacking smaller card fragments or form controls inside profile templates.
|
||||
- `.bv-grid-video` centralises the responsive video grid (`repeat(auto-fill, minmax(20rem, 1fr))`) with the standard gutter (`gap-xl`) and vertical padding (`py-lg`). Apply it to feed, subscriptions, and channel views instead of repeating inline grid rules.
|
||||
|
||||
## Legacy Compatibility Shims
|
||||
|
||||
During migration we keep existing selectors alive by layering `@apply` calls in `css/style.css`. Notable shims:
|
||||
|
||||
@@ -134,6 +134,79 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="space-y-md">
|
||||
<div class="space-y-xs">
|
||||
<h2 class="text-xl font-semibold text-text-strong">
|
||||
Layout Helpers
|
||||
</h2>
|
||||
<p class="text-sm text-muted">
|
||||
`.bv-stack` and `.bv-grid-video` consolidate our common feed and
|
||||
profile layouts.
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid gap-lg lg:grid-cols-2">
|
||||
<div class="space-y-sm">
|
||||
<h3 class="text-lg font-semibold">Stack (.bv-stack)</h3>
|
||||
<div class="bv-stack">
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Default spacing</h4>
|
||||
<p class="text-sm text-muted">
|
||||
Use `.bv-stack` for page-level groupings such as the watch
|
||||
history header and banners.
|
||||
</p>
|
||||
</article>
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Nested card</h4>
|
||||
<p class="text-sm text-muted">
|
||||
The helper keeps consistent gaps without repeating
|
||||
`space-y-*` utilities.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
<div class="bv-stack bv-stack--tight">
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Tight stack</h4>
|
||||
<p class="text-sm text-muted">
|
||||
Apply `.bv-stack--tight` when stacking compact forms or
|
||||
metadata blocks in profile views.
|
||||
</p>
|
||||
</article>
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Form footer</h4>
|
||||
<p class="text-sm text-muted">
|
||||
The modifier inherits flex behaviour from `.bv-stack` while
|
||||
reducing the gap to `var(--space-md)`.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-sm">
|
||||
<h3 class="text-lg font-semibold">Video Grid (.bv-grid-video)</h3>
|
||||
<div class="bv-grid-video">
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Feed Tile</h4>
|
||||
<p class="text-sm text-muted">
|
||||
Auto-fills with a 20rem minimum column size on desktop.
|
||||
</p>
|
||||
</article>
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Subscription Tile</h4>
|
||||
<p class="text-sm text-muted">
|
||||
The grid collapses to a single column below 40rem.
|
||||
</p>
|
||||
</article>
|
||||
<article class="card p-md">
|
||||
<h4 class="text-base font-semibold">Channel Tile</h4>
|
||||
<p class="text-sm text-muted">
|
||||
Reuse the same helper instead of duplicating inline grid
|
||||
declarations.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="space-y-md">
|
||||
<div class="space-y-xs">
|
||||
<h2 class="text-xl font-semibold text-text-strong">Form Inputs</h2>
|
||||
|
||||
+27
-3
@@ -13,7 +13,19 @@ module.exports = {
|
||||
"page-alt": "var(--color-page-alt)",
|
||||
surface: "var(--color-surface)",
|
||||
"surface-alt": "var(--color-surface-alt)",
|
||||
overlay: "var(--color-overlay)",
|
||||
overlay: {
|
||||
DEFAULT: "var(--color-overlay)",
|
||||
muted: "var(--color-overlay-muted)",
|
||||
strong: "var(--color-overlay-strong)",
|
||||
darker: "var(--color-overlay-darker)",
|
||||
veil: "var(--color-overlay-veil)",
|
||||
banner: "var(--color-overlay-banner)",
|
||||
panel: "var(--color-overlay-panel)",
|
||||
"panel-soft": "var(--color-overlay-panel-soft)",
|
||||
"panel-tint": "var(--color-overlay-panel-tint)",
|
||||
"panel-glass": "var(--color-overlay-panel-glass)",
|
||||
black: "var(--color-overlay-black)"
|
||||
},
|
||||
primary: "var(--color-primary)",
|
||||
secondary: "var(--color-secondary)",
|
||||
panel: {
|
||||
@@ -27,12 +39,24 @@ module.exports = {
|
||||
},
|
||||
border: {
|
||||
DEFAULT: "var(--color-border)",
|
||||
subtle: "var(--color-border-subtle)"
|
||||
subtle: "var(--color-border-subtle)",
|
||||
translucent: "var(--color-border-translucent)",
|
||||
"translucent-strong": "var(--color-border-translucent-strong)",
|
||||
"translucent-bright": "var(--color-border-translucent-bright)",
|
||||
"translucent-stronger": "var(--color-border-translucent-stronger)",
|
||||
"translucent-strongest": "var(--color-border-translucent-strongest)",
|
||||
"translucent-glow": "var(--color-border-translucent-glow)",
|
||||
"info-soft": "var(--color-border-info-soft)",
|
||||
"neutral-soft": "var(--color-border-neutral-soft)",
|
||||
"sidebar-strong": "var(--color-border-sidebar-strong)"
|
||||
},
|
||||
text: {
|
||||
DEFAULT: "var(--color-text)",
|
||||
strong: "var(--color-text-strong)",
|
||||
muted: "var(--color-muted)"
|
||||
muted: "var(--color-muted)",
|
||||
frosted: "var(--color-text-frosted)",
|
||||
"frosted-strong": "var(--color-text-frosted-strong)",
|
||||
"frosted-soft": "var(--color-text-frosted-soft)"
|
||||
},
|
||||
muted: {
|
||||
DEFAULT: "var(--color-muted)",
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
</button>
|
||||
to send zaps.
|
||||
</p>
|
||||
<form id="zapForm" class="space-y-3">
|
||||
<form id="zapForm" class="bv-stack bv-stack--tight">
|
||||
<div>
|
||||
<label
|
||||
for="zapAmountInput"
|
||||
@@ -225,10 +225,7 @@
|
||||
<hr class="my-6" />
|
||||
|
||||
<h3 class="text-lg font-bold mb-4 text-gray-700">Videos by This User</h3>
|
||||
<div
|
||||
id="channelVideoList"
|
||||
class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8"
|
||||
>
|
||||
<div id="channelVideoList" class="bv-grid-video">
|
||||
<!-- User’s videos will go here -->
|
||||
</div>
|
||||
</section>
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
<!-- views/history.html -->
|
||||
<section id="watchHistoryView" class="space-y-6">
|
||||
<div class="space-y-4">
|
||||
<section id="watchHistoryView" class="bv-stack">
|
||||
<div class="bv-stack bv-stack--tight">
|
||||
<div
|
||||
class="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between"
|
||||
>
|
||||
|
||||
@@ -4,10 +4,7 @@
|
||||
<h2 class="text-xl mb-4 text-gray-700">Most Recent Videos</h2>
|
||||
|
||||
<!-- Video List -->
|
||||
<div
|
||||
id="videoList"
|
||||
class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8"
|
||||
>
|
||||
<div id="videoList" class="bv-grid-video">
|
||||
<div class="sidebar-loading-wrapper" role="status" aria-live="polite">
|
||||
<div class="sidebar-loading-indicator">
|
||||
<span class="status-spinner status-spinner--inline" aria-hidden="true"></span>
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
<!-- views/subscriptions.html -->
|
||||
<section>
|
||||
<h2 class="text-xl mb-4">Subscriptions</h2>
|
||||
<div
|
||||
id="subscriptionsVideoList"
|
||||
style="
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 1.5rem 0;
|
||||
"
|
||||
>
|
||||
<div id="subscriptionsVideoList" class="bv-grid-video">
|
||||
<div class="sidebar-loading-wrapper" role="status" aria-live="polite">
|
||||
<div class="sidebar-loading-indicator">
|
||||
<span class="status-spinner status-spinner--inline" aria-hidden="true"></span>
|
||||
|
||||
Reference in new issue
Block a user