Refine layout tokens and utilities

This commit is contained in:
thePR0M3TH3AN committed 2025-10-10 13:48:39 -04:00
1 parent 036412c601
commit 13cb9c44c1
11 files changed
+240 -115

No files matched your search

+61 -90
View File
@@ -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;
}
+2 -2
View File
@@ -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
+20
View File
@@ -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;
}
}
+45
View File
@@ -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;
+6
View File
@@ -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:
+73
View File
@@ -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
View File
@@ -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)",
+2 -5
View File
@@ -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
View File
@@ -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"
>
+1 -4
View File
@@ -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 -9
View File
@@ -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>