mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 16:02:26 +00:00
3981 lines
98 KiB
CSS
3981 lines
98 KiB
CSS
@import "./tokens.css";
|
|
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
html {
|
|
font-size: 100%;
|
|
}
|
|
|
|
@media (min-width: theme('screens.lg')) {
|
|
html {
|
|
font-size: 75%;
|
|
}
|
|
}
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: var(--scrollbar-thumb) transparent;
|
|
}
|
|
|
|
*::-webkit-scrollbar {
|
|
width: var(--scrollbar-width);
|
|
height: var(--scrollbar-width);
|
|
}
|
|
|
|
*::-webkit-scrollbar-track {
|
|
background: var(--scrollbar-track);
|
|
}
|
|
|
|
*::-webkit-scrollbar-thumb {
|
|
background: var(--scrollbar-thumb);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
*::-webkit-scrollbar-thumb:hover {
|
|
background: var(--scrollbar-thumb-hover);
|
|
}
|
|
|
|
body {
|
|
font-family: var(--font-family-sans);
|
|
background-color: var(--color-page);
|
|
color: var(--color-text-strong);
|
|
line-height: 1.5;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
#nip71TagsFieldset > legend,
|
|
#editNip71TagsFieldset > legend {
|
|
margin-left: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#app {
|
|
background-color: var(--color-page);
|
|
color: inherit;
|
|
}
|
|
|
|
html.modal-open,
|
|
body.modal-open {
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
body.modal-open #app {
|
|
overflow: hidden;
|
|
}
|
|
|
|
body.modal-open #sidebar,
|
|
body.modal-open #sidebarOverlay {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
body.modal-open #sidebar {
|
|
z-index: var(--z-sidebar-overlay);
|
|
}
|
|
|
|
body.modal-open #sidebarOverlay {
|
|
z-index: calc(var(--z-sidebar-overlay) - 1);
|
|
}
|
|
|
|
#sidebar.is-modal-hidden,
|
|
#sidebarOverlay.is-modal-hidden {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
[ng\:cloak],
|
|
[ng-cloak],
|
|
[data-ng-cloak],
|
|
[x-ng-cloak],
|
|
.ng-cloak,
|
|
.x-ng-cloak,
|
|
.ng-hide:not(.ng-hide-animate) {
|
|
display: none !important;
|
|
}
|
|
|
|
ng\:form {
|
|
display: block;
|
|
}
|
|
|
|
.ng-animate-shim {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.ng-anchor {
|
|
position: absolute;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.ds-header {
|
|
@apply flex items-center justify-start py-md;
|
|
}
|
|
|
|
.ds-metric-probe {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
contain: layout size style;
|
|
inline-size: 0;
|
|
block-size: var(--ds-metric-probe-length, 0);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.ds-header__logo {
|
|
@apply h-24 w-auto max-w-none;
|
|
}
|
|
|
|
.focus-ring {
|
|
@apply outline-none focus-visible:ring-2 focus-visible:ring-info focus-visible:ring-opacity-70 focus-visible:ring-offset-2 focus-visible:ring-offset-surface focus-visible:transition-shadow focus-visible:duration-fast focus-visible:ease-out;
|
|
}
|
|
|
|
.bv-logo {
|
|
--logo-wordmark-color: var(--color-logo-wordmark);
|
|
--logo-accent-color: var(--color-logo-accent);
|
|
--logo-background-color: var(--color-logo-background);
|
|
}
|
|
|
|
.bv-logo[data-variant="inverse"] {
|
|
--logo-wordmark-color: var(--color-logo-wordmark-inverse);
|
|
--logo-background-color: var(--color-logo-background-inverse);
|
|
}
|
|
|
|
.bv-logo[data-wordmark="current"] {
|
|
--logo-wordmark-color: currentColor;
|
|
}
|
|
|
|
.bv-logo[data-accent="current"] {
|
|
--logo-accent-color: currentColor;
|
|
}
|
|
|
|
.bv-logo[data-background="transparent"] {
|
|
--logo-background-color: transparent;
|
|
}
|
|
|
|
.bv-logo__wordmark {
|
|
fill: var(--logo-wordmark-color);
|
|
color: var(--logo-wordmark-color);
|
|
}
|
|
|
|
.bv-logo__accent {
|
|
fill: var(--logo-accent-color);
|
|
color: var(--logo-accent-color);
|
|
}
|
|
|
|
.bv-logo__background {
|
|
fill: var(--logo-background-color);
|
|
color: var(--logo-background-color);
|
|
}
|
|
|
|
.markdown-prose {
|
|
@apply prose max-w-none leading-relaxed text-text-strong;
|
|
}
|
|
|
|
.markdown-prose :where(pre, code) {
|
|
@apply font-mono;
|
|
}
|
|
|
|
[data-floating-anchor="true"] {
|
|
anchor-name: --floating-panel;
|
|
}
|
|
|
|
[data-floating-panel] {
|
|
--floating-transform-origin-inline: 50%;
|
|
--floating-transform-origin-block: 50%;
|
|
--floating-fallback-top: auto;
|
|
--floating-fallback-left: auto;
|
|
position: fixed;
|
|
inset: auto;
|
|
top: var(--floating-fallback-top);
|
|
left: var(--floating-fallback-left);
|
|
right: auto;
|
|
bottom: auto;
|
|
transform-origin: var(--floating-transform-origin-inline)
|
|
var(--floating-transform-origin-block);
|
|
}
|
|
|
|
[data-floating-panel][data-floating-strategy="absolute"] {
|
|
position: absolute;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-mode="anchor"] {
|
|
position-anchor: --floating-panel;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="top"] {
|
|
--floating-transform-origin-block: 100%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="bottom"] {
|
|
--floating-transform-origin-block: 0%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="left"] {
|
|
--floating-transform-origin-inline: 100%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="right"] {
|
|
--floating-transform-origin-inline: 0%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="top"][data-floating-alignment="start"],
|
|
[data-floating-panel][data-floating-placement="bottom"][data-floating-alignment="start"],
|
|
[data-floating-panel][data-floating-placement="top"][data-floating-alignment="end"],
|
|
[data-floating-panel][data-floating-placement="bottom"][data-floating-alignment="end"] {
|
|
--floating-transform-origin-inline: 50%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-dir="ltr"][data-floating-placement="top"][data-floating-alignment="start"],
|
|
[data-floating-panel][data-floating-dir="ltr"][data-floating-placement="bottom"][data-floating-alignment="start"] {
|
|
--floating-transform-origin-inline: 0%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-dir="ltr"][data-floating-placement="top"][data-floating-alignment="end"],
|
|
[data-floating-panel][data-floating-dir="ltr"][data-floating-placement="bottom"][data-floating-alignment="end"] {
|
|
--floating-transform-origin-inline: 100%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-dir="rtl"][data-floating-placement="top"][data-floating-alignment="start"],
|
|
[data-floating-panel][data-floating-dir="rtl"][data-floating-placement="bottom"][data-floating-alignment="start"] {
|
|
--floating-transform-origin-inline: 100%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-dir="rtl"][data-floating-placement="top"][data-floating-alignment="end"],
|
|
[data-floating-panel][data-floating-dir="rtl"][data-floating-placement="bottom"][data-floating-alignment="end"] {
|
|
--floating-transform-origin-inline: 0%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="left"][data-floating-alignment="start"],
|
|
[data-floating-panel][data-floating-placement="right"][data-floating-alignment="start"] {
|
|
--floating-transform-origin-block: 0%;
|
|
}
|
|
|
|
[data-floating-panel][data-floating-placement="left"][data-floating-alignment="end"],
|
|
[data-floating-panel][data-floating-placement="right"][data-floating-alignment="end"] {
|
|
--floating-transform-origin-block: 100%;
|
|
}
|
|
|
|
.popover {
|
|
@apply relative inline-flex;
|
|
}
|
|
|
|
.popover__panel {
|
|
@apply focus-ring absolute left-0 top-full z-overlay-floating mt-2 min-w-menu max-w-popover-safe origin-top rounded-lg border border-border border-opacity-40 bg-panel px-popup-inline py-popup-block text-sm text-text shadow-lg transition-transform transition-opacity duration-[var(--motion-duration-base)] ease-[var(--motion-ease-out)] opacity-0 scale-95 pointer-events-none;
|
|
}
|
|
|
|
.popover__panel[data-state="open"] {
|
|
@apply pointer-events-auto opacity-100 scale-100;
|
|
}
|
|
|
|
.ds-overlay-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--overlay-backdrop-color);
|
|
backdrop-filter: blur(var(--overlay-backdrop-blur));
|
|
-webkit-backdrop-filter: blur(var(--overlay-backdrop-blur));
|
|
}
|
|
|
|
.popover__panel[data-variant="zap"] {
|
|
background: var(--color-overlay-veil);
|
|
color: var(--color-subtle);
|
|
border: var(--border-width-hairline) solid var(--color-border-translucent-stronger);
|
|
box-shadow: var(--shadow-popover-zap);
|
|
backdrop-filter: blur(var(--popover-backdrop-blur));
|
|
-webkit-backdrop-filter: blur(var(--popover-backdrop-blur));
|
|
}
|
|
|
|
.btn {
|
|
@apply focus-ring inline-flex items-center justify-center gap-2 rounded-full border border-transparent bg-info-strong px-5 py-2.5 text-base font-semibold text-white shadow-lg transition duration-base ease-in-out;
|
|
}
|
|
|
|
.btn:hover {
|
|
@apply bg-info;
|
|
}
|
|
|
|
.btn:focus-visible {
|
|
@apply bg-info-pressed;
|
|
}
|
|
|
|
.btn:disabled {
|
|
@apply pointer-events-none cursor-not-allowed opacity-60 shadow-none;
|
|
}
|
|
|
|
.progress,
|
|
[data-progress-meter] {
|
|
--progress-height: var(--progress-height-md);
|
|
--progress-track: var(--progress-track-color);
|
|
--progress-fill: var(--progress-fill-color);
|
|
--progress-radius-current: var(--progress-radius);
|
|
display: block;
|
|
width: 100%;
|
|
height: var(--progress-height);
|
|
border: none;
|
|
border-radius: var(--progress-radius-current);
|
|
overflow: hidden;
|
|
background-color: var(--progress-track);
|
|
appearance: none;
|
|
}
|
|
|
|
.progress::-webkit-progress-bar,
|
|
[data-progress-meter]::-webkit-progress-bar {
|
|
background-color: var(--progress-track);
|
|
border-radius: var(--progress-radius-current);
|
|
}
|
|
|
|
.progress::-webkit-progress-value,
|
|
[data-progress-meter]::-webkit-progress-value {
|
|
background-color: var(--progress-fill);
|
|
border-radius: var(--progress-radius-current);
|
|
transition: width var(--progress-transition-duration)
|
|
var(--progress-transition-ease);
|
|
}
|
|
|
|
.progress::-moz-progress-bar,
|
|
[data-progress-meter]::-moz-progress-bar {
|
|
background-color: var(--progress-fill);
|
|
border-radius: var(--progress-radius-current);
|
|
transition: width var(--progress-transition-duration)
|
|
var(--progress-transition-ease);
|
|
}
|
|
|
|
.progress[data-variant="surface"],
|
|
[data-progress-meter][data-variant="surface"],
|
|
.progress.progress--surface,
|
|
[data-progress-meter].progress--surface {
|
|
--progress-track: var(--color-panel);
|
|
}
|
|
|
|
.progress[data-variant="accent"],
|
|
[data-progress-meter][data-variant="accent"],
|
|
.progress.progress--accent,
|
|
[data-progress-meter].progress--accent {
|
|
--progress-fill: var(--color-info-strong);
|
|
}
|
|
|
|
.progress[data-variant="blog"],
|
|
[data-progress-meter][data-variant="blog"],
|
|
.progress.progress--blog,
|
|
[data-progress-meter].progress--blog {
|
|
--progress-height: var(--blog-carousel-progress-height);
|
|
--progress-track: var(--blog-carousel-progress-track);
|
|
--progress-fill: var(--blog-carousel-progress-active);
|
|
--progress-radius-current: var(--blog-carousel-progress-radius);
|
|
}
|
|
|
|
.btn-ghost {
|
|
@apply btn border border-border border-opacity-60 bg-transparent text-text shadow-none;
|
|
}
|
|
|
|
.btn-ghost:hover {
|
|
@apply bg-panel-hover text-text;
|
|
}
|
|
|
|
.btn-ghost:focus-visible {
|
|
@apply bg-panel-hover;
|
|
}
|
|
|
|
.btn-ghost:disabled {
|
|
@apply pointer-events-none opacity-50 shadow-none;
|
|
}
|
|
|
|
.btn-ghost[data-variant="critical"] {
|
|
@apply border border-critical border-opacity-60 text-critical;
|
|
}
|
|
|
|
.btn-ghost[data-variant="critical"]:hover,
|
|
.btn-ghost[data-variant="critical"]:focus-visible {
|
|
@apply bg-critical bg-opacity-20 text-critical-strong;
|
|
}
|
|
|
|
.btn-ghost[data-state="active"],
|
|
.btn-ghost[aria-pressed="true"] {
|
|
@apply border-transparent bg-primary text-white shadow-md;
|
|
}
|
|
|
|
.btn-ghost[data-state="active"]:hover,
|
|
.btn-ghost[data-state="active"]:focus-visible,
|
|
.btn-ghost[aria-pressed="true"]:hover,
|
|
.btn-ghost[aria-pressed="true"]:focus-visible {
|
|
@apply bg-info-strong;
|
|
}
|
|
|
|
.modal-progress {
|
|
width: var(--progress-width, 0%);
|
|
transition: width var(--motion-duration-base, 160ms)
|
|
var(--motion-ease-out, ease-out);
|
|
}
|
|
|
|
.cloudflare-progress__fill {
|
|
width: var(--cloudflare-progress-width, 0%);
|
|
transition: width var(--motion-duration-base, 160ms)
|
|
var(--motion-ease-out, ease-out);
|
|
}
|
|
|
|
.blog-embed-shell {
|
|
height: var(--blog-embed-height);
|
|
}
|
|
|
|
/*
|
|
* Blog carousel component styles
|
|
* Tokens consumed here are defined in css/tokens.css under the
|
|
* "Blog carousel tokens" section:
|
|
* --blog-carousel-gap
|
|
* --blog-carousel-slide-radius
|
|
* --blog-carousel-slide-min-height
|
|
* --blog-carousel-slide-background
|
|
* --blog-carousel-slide-foreground
|
|
* --blog-carousel-slide-scale-inactive
|
|
* --blog-carousel-progress-height
|
|
* --blog-carousel-progress-radius
|
|
* --blog-carousel-progress-track
|
|
* --blog-carousel-progress-active
|
|
*/
|
|
.blog-carousel {
|
|
position: relative;
|
|
display: grid;
|
|
gap: var(--blog-carousel-gap);
|
|
--blog-carousel-index: 0;
|
|
--blog-carousel-track-duration: var(--motion-duration-slow, 320ms);
|
|
--blog-carousel-track-ease: var(--motion-ease-out, ease-out);
|
|
--blog-carousel-slide-duration: var(--motion-duration-base, 160ms);
|
|
--blog-carousel-progress-duration: var(--motion-duration-slow, 320ms);
|
|
--blog-carousel-per-page: 1;
|
|
}
|
|
|
|
.blog-carousel[data-transition="instant"] {
|
|
--blog-carousel-track-duration: 0s;
|
|
--blog-carousel-slide-duration: 0s;
|
|
}
|
|
|
|
.blog-carousel__viewport {
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-radius: var(--blog-carousel-slide-radius);
|
|
}
|
|
|
|
.blog-carousel__track {
|
|
display: grid;
|
|
grid-auto-flow: column;
|
|
grid-auto-columns: minmax(0, calc(100% / var(--blog-carousel-per-page)));
|
|
gap: var(--blog-carousel-gap);
|
|
width: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
transform: translate3d(calc(var(--blog-carousel-index) * -100%), 0, 0);
|
|
transition: transform var(--blog-carousel-track-duration)
|
|
var(--blog-carousel-track-ease);
|
|
will-change: transform;
|
|
}
|
|
|
|
.blog-carousel__track[data-transition="instant"] {
|
|
--blog-carousel-track-duration: 0s;
|
|
}
|
|
|
|
.blog-carousel[data-index="0"] {
|
|
--blog-carousel-index: 0;
|
|
}
|
|
|
|
.blog-carousel[data-index="1"] {
|
|
--blog-carousel-index: 1;
|
|
}
|
|
|
|
.blog-carousel[data-index="2"] {
|
|
--blog-carousel-index: 2;
|
|
}
|
|
|
|
.blog-carousel[data-index="3"] {
|
|
--blog-carousel-index: 3;
|
|
}
|
|
|
|
.blog-carousel[data-index="4"] {
|
|
--blog-carousel-index: 4;
|
|
}
|
|
|
|
.blog-carousel[data-index="5"] {
|
|
--blog-carousel-index: 5;
|
|
}
|
|
|
|
.blog-carousel[data-index="6"] {
|
|
--blog-carousel-index: 6;
|
|
}
|
|
|
|
.blog-carousel[data-index="7"] {
|
|
--blog-carousel-index: 7;
|
|
}
|
|
|
|
.blog-carousel[data-index="8"] {
|
|
--blog-carousel-index: 8;
|
|
}
|
|
|
|
.blog-carousel__slide {
|
|
position: relative;
|
|
display: grid;
|
|
align-content: stretch;
|
|
min-height: var(--blog-carousel-slide-min-height);
|
|
border-radius: var(--blog-carousel-slide-radius);
|
|
background: var(--blog-carousel-slide-background);
|
|
color: var(--blog-carousel-slide-foreground);
|
|
overflow: hidden;
|
|
box-shadow: var(--shadow-md);
|
|
opacity: 0.55;
|
|
transform: scale(var(--blog-carousel-slide-scale-inactive));
|
|
transition:
|
|
opacity var(--blog-carousel-slide-duration)
|
|
var(--motion-ease-in-out, ease-in-out),
|
|
transform var(--blog-carousel-slide-duration)
|
|
var(--blog-carousel-track-ease),
|
|
box-shadow var(--blog-carousel-slide-duration)
|
|
var(--blog-carousel-track-ease);
|
|
}
|
|
|
|
.blog-carousel__slide[data-active="true"] {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
box-shadow: var(--shadow-lg);
|
|
z-index: 1;
|
|
}
|
|
|
|
.blog-carousel__slide[data-state="leaving"] {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.blog-carousel__slide[data-inert="true"] {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.blog-carousel[data-per-page="1"] {
|
|
--blog-carousel-per-page: 1;
|
|
}
|
|
|
|
.blog-carousel[data-per-page="2"] {
|
|
--blog-carousel-per-page: 2;
|
|
}
|
|
|
|
.blog-carousel[data-per-page="3"] {
|
|
--blog-carousel-per-page: 3;
|
|
}
|
|
|
|
.blog-carousel[data-per-page="4"] {
|
|
--blog-carousel-per-page: 4;
|
|
}
|
|
|
|
.blog-carousel__controls {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: var(--space-sm);
|
|
}
|
|
|
|
.blog-progress {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.blog-progress [data-progress-meter] {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.blog-carousel {
|
|
--blog-carousel-track-duration: 0s;
|
|
--blog-carousel-slide-duration: 0s;
|
|
--blog-carousel-progress-duration: 0s;
|
|
}
|
|
|
|
.blog-carousel__track {
|
|
transition-duration: 0s;
|
|
}
|
|
|
|
.blog-carousel__slide {
|
|
transition-duration: 0s;
|
|
}
|
|
|
|
}
|
|
|
|
.blog-emoji-showdown {
|
|
font-family: var(--font-family-mono);
|
|
text-decoration-line: underline;
|
|
text-decoration-style: dashed;
|
|
text-decoration-color: var(--color-blog-teal-accent);
|
|
text-underline-position: under;
|
|
}
|
|
|
|
.blog-task-list-item {
|
|
list-style-type: none;
|
|
}
|
|
|
|
.blog-task-checkbox {
|
|
margin: 0 0.35em 0.25em -1.6em;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.blog-table-align {
|
|
text-align: left;
|
|
}
|
|
|
|
.blog-table-align--left {
|
|
text-align: left;
|
|
}
|
|
|
|
.blog-table-align--right {
|
|
text-align: right;
|
|
}
|
|
|
|
.blog-table-align--center {
|
|
text-align: center;
|
|
}
|
|
|
|
.blog-ztr-watermark {
|
|
float: right;
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.badge {
|
|
@apply inline-flex items-center gap-1 rounded-full border border-status-neutral-border bg-status-neutral-surface px-3 py-1 text-2xs font-semibold uppercase tracking-extra-wide text-status-neutral-on;
|
|
}
|
|
|
|
.badge[data-variant="info"] {
|
|
@apply border-status-info-border bg-status-info-surface text-status-info-on;
|
|
}
|
|
|
|
.badge[data-variant="success"] {
|
|
@apply border-status-success-border bg-status-success-surface text-status-success-on;
|
|
}
|
|
|
|
.badge[data-variant="warning"] {
|
|
@apply border-status-warning-border bg-status-warning-surface text-status-warning-on;
|
|
}
|
|
|
|
.badge[data-variant="critical"] {
|
|
@apply border-status-danger-border bg-status-danger-surface text-status-danger-on;
|
|
}
|
|
|
|
.badge[data-variant="private"] {
|
|
@apply border-status-private-border bg-status-private-surface text-status-private-on;
|
|
}
|
|
|
|
.badge[data-variant="neutral"] {
|
|
@apply border-status-neutral-border bg-status-neutral-surface text-status-neutral-on;
|
|
}
|
|
|
|
.pill {
|
|
@apply inline-flex items-center gap-2 rounded-full border border-status-neutral-border bg-status-neutral-surface px-3 py-1 text-xs font-medium text-status-neutral-on;
|
|
}
|
|
|
|
.pill[data-size="compact"] {
|
|
@apply px-2 py-0.5 text-2xs;
|
|
}
|
|
|
|
.pill[data-variant="info"] {
|
|
@apply border-status-info-border bg-status-info-surface text-status-info-on;
|
|
}
|
|
|
|
.pill[data-variant="success"] {
|
|
@apply border-status-success-border bg-status-success-surface text-status-success-on;
|
|
}
|
|
|
|
.pill[data-variant="warning"] {
|
|
@apply border-status-warning-border bg-status-warning-surface text-status-warning-on;
|
|
}
|
|
|
|
.pill[data-variant="critical"] {
|
|
@apply border-status-danger-border bg-status-danger-surface text-status-danger-on;
|
|
}
|
|
|
|
.pill[data-variant="private"] {
|
|
@apply border-status-private-border bg-status-private-surface text-status-private-on;
|
|
}
|
|
|
|
.pill[data-variant="neutral"] {
|
|
@apply border-status-neutral-border bg-status-neutral-surface text-status-neutral-on;
|
|
}
|
|
|
|
.overlay-scrim {
|
|
background-color: var(--surface-overlay);
|
|
}
|
|
|
|
.overlay-scrim[data-strength="muted"] {
|
|
background-color: var(--surface-overlay-muted);
|
|
}
|
|
|
|
.overlay-scrim[data-strength="strong"] {
|
|
background-color: var(--surface-overlay-strong);
|
|
}
|
|
|
|
.overlay-panel {
|
|
background-color: var(--surface-overlay-panel);
|
|
}
|
|
|
|
.overlay-panel[data-variant="soft"] {
|
|
background-color: var(--surface-overlay-panel-soft);
|
|
}
|
|
|
|
.overlay-panel[data-variant="glass"] {
|
|
background-color: var(--surface-overlay-panel-glass);
|
|
}
|
|
|
|
.menu {
|
|
@apply flex flex-col gap-1 py-2;
|
|
}
|
|
|
|
.menu__heading {
|
|
@apply px-4 pb-2 text-xs font-semibold uppercase tracking-wide text-muted;
|
|
}
|
|
|
|
.menu__separator {
|
|
@apply my-2 h-px bg-border bg-opacity-20;
|
|
}
|
|
|
|
.menu__item {
|
|
@apply focus-ring relative flex w-full items-center gap-3 rounded-md px-4 py-2 text-sm font-medium text-text transition-colors duration-[var(--motion-duration-fast)] ease-[var(--motion-ease-in-out)];
|
|
}
|
|
|
|
.menu__item:hover {
|
|
@apply bg-panel-hover text-text;
|
|
}
|
|
|
|
.menu__item[data-state="active"] {
|
|
@apply bg-info bg-opacity-20 text-info-strong;
|
|
}
|
|
|
|
.menu__item[data-variant="critical"] {
|
|
@apply text-critical-strong;
|
|
}
|
|
|
|
.menu__item[data-variant="critical"]:hover {
|
|
@apply bg-critical bg-opacity-20;
|
|
}
|
|
|
|
.menu__item:disabled,
|
|
.menu__item[aria-disabled="true"] {
|
|
@apply cursor-not-allowed bg-transparent text-muted opacity-60;
|
|
}
|
|
|
|
.menu__item:disabled:hover,
|
|
.menu__item[aria-disabled="true"]:hover {
|
|
@apply bg-transparent text-muted;
|
|
}
|
|
|
|
.card {
|
|
@apply focus-ring relative rounded-lg border border-transparent bg-card text-text shadow-md transition duration-base ease-in-out;
|
|
}
|
|
|
|
.card:hover {
|
|
@apply shadow-lg;
|
|
}
|
|
|
|
.card:focus-visible {
|
|
@apply border-info border-opacity-40 shadow-lg;
|
|
}
|
|
|
|
.card[data-state="critical"] {
|
|
@apply border border-critical border-opacity-40 bg-card-critical;
|
|
}
|
|
|
|
.card[data-state="private"] {
|
|
@apply bg-card-private shadow-lg;
|
|
}
|
|
|
|
.card[data-state="disabled"] {
|
|
@apply opacity-60 shadow-none;
|
|
}
|
|
|
|
.form-control {
|
|
@apply focus-ring block w-full rounded-md border border-border-subtle bg-surface-alt px-3 py-2 text-sm text-text shadow-sm transition duration-base ease-in-out placeholder:text-muted;
|
|
}
|
|
|
|
.form-control:hover {
|
|
@apply border-border;
|
|
}
|
|
|
|
.form-control:focus-visible {
|
|
@apply border-info-strong;
|
|
}
|
|
|
|
.form-control:disabled {
|
|
@apply cursor-not-allowed bg-surface text-muted opacity-60;
|
|
}
|
|
|
|
.form-control:invalid {
|
|
@apply border-critical border-opacity-60;
|
|
}
|
|
|
|
.form-control[data-state="locked"],
|
|
.input[data-state="locked"],
|
|
.textarea[data-state="locked"],
|
|
.select[data-state="locked"],
|
|
textarea.form-control[data-state="locked"],
|
|
select.form-control[data-state="locked"] {
|
|
@apply cursor-default border-border-sidebar-strong bg-overlay-panel-soft text-muted;
|
|
}
|
|
|
|
.form-control[data-state="locked"]:focus-visible,
|
|
.input[data-state="locked"]:focus-visible,
|
|
.textarea[data-state="locked"]:focus-visible,
|
|
.select[data-state="locked"]:focus-visible,
|
|
textarea.form-control[data-state="locked"]:focus-visible,
|
|
select.form-control[data-state="locked"]:focus-visible {
|
|
@apply border-border-sidebar-strong outline-none ring-0 ring-offset-0 shadow-none;
|
|
}
|
|
|
|
.form-control[data-state="locked"]:disabled,
|
|
.input[data-state="locked"]:disabled,
|
|
.textarea[data-state="locked"]:disabled,
|
|
.select[data-state="locked"]:disabled,
|
|
textarea.form-control[data-state="locked"]:disabled,
|
|
select.form-control[data-state="locked"]:disabled {
|
|
@apply cursor-default opacity-100;
|
|
}
|
|
|
|
.input {
|
|
@apply form-control;
|
|
}
|
|
|
|
.textarea {
|
|
@apply form-control min-h-[var(--form-textarea-min-height)] resize-y;
|
|
}
|
|
|
|
.select {
|
|
@apply form-control appearance-none pr-10;
|
|
--select-arrow-color: var(--color-border);
|
|
background-image: linear-gradient(135deg, transparent 50%, var(--select-arrow-color) 50%),
|
|
linear-gradient(45deg, var(--select-arrow-color) 50%, transparent 50%),
|
|
linear-gradient(to right, var(--color-border-subtle), var(--color-border-subtle));
|
|
background-position: right var(--form-select-icon-offset) center,
|
|
right var(--form-select-icon-gap) center,
|
|
right var(--form-select-icon-hit-area) center;
|
|
background-size: var(--form-select-icon-size) var(--form-select-icon-size),
|
|
var(--form-select-icon-size) var(--form-select-icon-size),
|
|
var(--form-select-divider-width) 60%;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.select:hover {
|
|
--select-arrow-color: var(--color-border);
|
|
}
|
|
|
|
.select:focus-visible {
|
|
--select-arrow-color: var(--color-info-strong);
|
|
}
|
|
|
|
.select:disabled {
|
|
--select-arrow-color: var(--color-border-subtle);
|
|
}
|
|
|
|
.select:invalid {
|
|
--select-arrow-color: var(--color-critical);
|
|
}
|
|
|
|
.checkbox {
|
|
@apply focus-ring inline-flex h-5 w-5 cursor-pointer appearance-none items-center justify-center rounded border border-border-subtle bg-surface-alt text-white transition duration-base ease-in-out;
|
|
}
|
|
|
|
.checkbox:hover {
|
|
@apply border-border;
|
|
}
|
|
|
|
.checkbox:disabled {
|
|
@apply cursor-not-allowed border-border-subtle bg-surface text-muted opacity-60;
|
|
}
|
|
|
|
.checkbox::after {
|
|
content: "";
|
|
@apply pointer-events-none h-2 w-3 border-b-2 border-r-2 border-white opacity-0 transition duration-base ease-in-out;
|
|
transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(0.85);
|
|
}
|
|
|
|
.checkbox:checked,
|
|
.checkbox[aria-checked="true"] {
|
|
@apply border-info-strong bg-info-strong;
|
|
}
|
|
|
|
.checkbox:checked::after,
|
|
.checkbox[aria-checked="true"]::after {
|
|
@apply opacity-100;
|
|
transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(1);
|
|
}
|
|
|
|
.switch {
|
|
@apply focus-ring relative inline-flex h-6 w-11 cursor-pointer items-center rounded-full border border-border-subtle bg-border-subtle transition-colors duration-base ease-in-out;
|
|
}
|
|
|
|
.switch::before {
|
|
content: "";
|
|
@apply pointer-events-none absolute left-0.5 top-1/2 h-5 w-5 -translate-y-1/2 transform rounded-full bg-surface shadow-md transition duration-base ease-in-out;
|
|
}
|
|
|
|
.switch:disabled {
|
|
@apply cursor-not-allowed border-border-subtle bg-surface text-muted opacity-60;
|
|
}
|
|
|
|
.switch[aria-checked="true"],
|
|
.switch.is-on {
|
|
@apply border-info-strong bg-info-strong;
|
|
}
|
|
|
|
.switch[aria-checked="true"]::before,
|
|
.switch.is-on::before {
|
|
@apply translate-x-5;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.form-control,
|
|
.checkbox,
|
|
.checkbox::after,
|
|
.switch,
|
|
.switch::before,
|
|
.popover__panel,
|
|
.menu__item {
|
|
transition: none !important;
|
|
}
|
|
}
|
|
|
|
.bv-modal {
|
|
@apply fixed inset-0 z-[var(--z-modal-root)] flex items-center justify-center p-6 sm:p-8;
|
|
}
|
|
|
|
.bv-modal[hidden],
|
|
.bv-modal.hidden {
|
|
display: none !important;
|
|
}
|
|
|
|
.bv-modal__panel {
|
|
@apply focus-ring relative z-[var(--z-modal-content)] w-full max-w-modal rounded-modal-xl border border-border-translucent px-8 pb-8 pt-7 text-left text-text shadow-modal transition duration-base ease-out;
|
|
background-color: var(--color-modal-surface, var(--color-overlay-panel));
|
|
}
|
|
|
|
.bv-modal__panel:focus-visible {
|
|
@apply border-border-translucent-bright;
|
|
}
|
|
|
|
.bv-modal-backdrop {
|
|
@apply absolute inset-0 z-[var(--z-modal-overlay)] backdrop-saturate-150;
|
|
background-color: var(--color-modal-backdrop, var(--color-overlay-muted));
|
|
backdrop-filter: blur(var(--blur-modal-backdrop));
|
|
-webkit-backdrop-filter: blur(var(--blur-modal-backdrop));
|
|
}
|
|
|
|
.bv-modal-backdrop[data-variant="veil"] {
|
|
@apply backdrop-blur-3xl;
|
|
background-color: var(--color-overlay-veil);
|
|
}
|
|
|
|
.bv-modal-backdrop[data-variant="muted"] {
|
|
background-color: var(--color-overlay-muted);
|
|
}
|
|
|
|
.modal-sheet {
|
|
@apply bv-modal__panel relative my-0 w-full overflow-hidden lg:max-w-4xl;
|
|
max-width: var(--modal-sheet-inline-max);
|
|
}
|
|
|
|
.modal-header {
|
|
@apply flex items-start justify-between gap-md px-8 pb-4 pt-7;
|
|
background: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.modal-header[data-variant="flush"] {
|
|
@apply px-0 pb-0 pt-0;
|
|
background: transparent;
|
|
}
|
|
|
|
.modal-header__title {
|
|
@apply text-xl font-bold text-text;
|
|
}
|
|
|
|
.modal-close {
|
|
@apply focus-ring flex h-10 w-10 items-center justify-center rounded-full bg-overlay-black bg-opacity-40 text-muted transition duration-base ease-out;
|
|
}
|
|
|
|
.modal-close:hover {
|
|
@apply bg-overlay-black bg-opacity-60 text-text;
|
|
}
|
|
|
|
.modal-body {
|
|
@apply space-y-5 px-8 pb-8 pt-2;
|
|
}
|
|
|
|
.modal-body {
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.modal-body::-webkit-scrollbar {
|
|
width: var(--scrollbar-thin-width);
|
|
}
|
|
|
|
.modal-body::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.modal-body::-webkit-scrollbar-thumb {
|
|
background: var(--color-border-translucent);
|
|
border-radius: var(--radius-full);
|
|
}
|
|
|
|
/* Modal embed containers ensure iframe wrappers respect modal sizing tokens. */
|
|
.modal-embed-frame {
|
|
@apply flex h-modal-embed w-full max-h-modal-embed flex-col;
|
|
}
|
|
|
|
.modal-footer {
|
|
@apply flex flex-col gap-3 px-8 pb-8 pt-4;
|
|
}
|
|
|
|
.modal-alert {
|
|
@apply flex items-start gap-3 rounded-md border border-warning-strong border-opacity-60 px-4 py-3 text-sm text-warning-strong;
|
|
backdrop-filter: blur(var(--blur-modal-alert));
|
|
background-color: var(--color-warning-glass);
|
|
}
|
|
|
|
.modal-alert__icon {
|
|
@apply mt-0.5 h-5 w-5 flex-shrink-0 text-warning-strong;
|
|
}
|
|
|
|
.modal-tile {
|
|
@apply rounded-xl border border-border-translucent bg-overlay-panel-soft px-5 py-4 text-sm text-text-frosted;
|
|
background-color: var(--color-overlay-panel-glass-soft);
|
|
}
|
|
|
|
.modal-tile > h3 {
|
|
@apply text-base font-semibold text-text;
|
|
}
|
|
|
|
.modal-primary {
|
|
@apply btn w-full justify-center;
|
|
}
|
|
|
|
.grid-stack {
|
|
@apply grid gap-lg;
|
|
}
|
|
|
|
.grid-stack[data-variant="cards"] {
|
|
@apply grid-cols-1 sm:grid-cols-2 xl:grid-cols-3;
|
|
}
|
|
|
|
.grid-stack[data-orientation="vertical"] {
|
|
@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(var(--grid-card-min-width), 1fr));
|
|
}
|
|
|
|
.card[data-alert="nsfw-owner"] {
|
|
@apply border border-critical border-opacity-40 bg-black;
|
|
}
|
|
|
|
.card[data-alert="nsfw-owner"]:hover {
|
|
@apply border-opacity-60 shadow-lg;
|
|
}
|
|
|
|
.card img[data-thumbnail-state="blurred"] {
|
|
@apply transition duration-base ease-in-out;
|
|
filter: blur(var(--blur-thumbnail-blur));
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] {
|
|
@apply border border-critical border-opacity-40 bg-card-critical;
|
|
}
|
|
|
|
.video-visibility-toggle {
|
|
@apply inline-flex items-center gap-1 rounded-full border border-border bg-panel px-1 py-1;
|
|
}
|
|
|
|
.video-visibility-toggle__option {
|
|
@apply inline-flex items-center justify-center rounded-full border border-transparent bg-panel px-3 py-2 text-xs font-semibold uppercase text-muted transition duration-base ease-in-out;
|
|
}
|
|
|
|
.video-visibility-toggle__option:not(.is-disabled):hover {
|
|
@apply bg-panel-hover text-text;
|
|
}
|
|
|
|
.video-visibility-toggle__option[data-active="true"] {
|
|
@apply border border-info border-opacity-60 text-text shadow-lg;
|
|
}
|
|
|
|
.video-visibility-toggle__option.is-disabled {
|
|
@apply cursor-not-allowed opacity-45;
|
|
}
|
|
|
|
.video-modal__container {
|
|
@apply flex h-full min-h-screen w-full flex-1 flex-col;
|
|
}
|
|
|
|
.player-modal__container {
|
|
@apply video-modal__container;
|
|
}
|
|
|
|
#playerModal > .bv-modal__panel {
|
|
max-width: none;
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
border: none;
|
|
background: transparent;
|
|
display: flex;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.video-modal__panel {
|
|
position: relative;
|
|
z-index: var(--z-modal-content);
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
width: 100%;
|
|
min-height: 100%;
|
|
flex-direction: column;
|
|
overflow: visible;
|
|
padding: 0;
|
|
margin: 0;
|
|
border: none;
|
|
border-radius: 0;
|
|
background-color: var(--color-surface);
|
|
box-shadow: none;
|
|
}
|
|
|
|
#playerModal .watch-container {
|
|
width: 100%;
|
|
max-width: var(--layout-player-max-width);
|
|
margin-inline: auto;
|
|
padding-inline: clamp(var(--space-md), 3vw, var(--space-xl));
|
|
}
|
|
|
|
#playerModal .modal-info-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-lg);
|
|
}
|
|
|
|
#playerModal h2#videoTitle {
|
|
margin: 0;
|
|
font-size: clamp(
|
|
var(--font-size-xl),
|
|
calc(var(--font-size-modal-title-base) + 0.5vw),
|
|
var(--font-size-xl-plus)
|
|
);
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
color: var(--color-text);
|
|
}
|
|
|
|
#playerModal .modal-meta {
|
|
font-size: var(--font-size-sm);
|
|
line-height: 1.4;
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
#playerModal .modal-view-count {
|
|
font-weight: 600;
|
|
color: var(--color-text);
|
|
}
|
|
|
|
#playerModal .channel-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-md);
|
|
padding: var(--space-md-plus) var(--space-lg);
|
|
border-radius: var(--radius-xl);
|
|
border: var(--border-width-hairline) solid var(--color-border-translucent);
|
|
background-color: var(--color-surface);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
@media (max-width: theme('screens.xs')) {
|
|
#playerModal .modal-nav .icon-button {
|
|
width: var(--space-xl);
|
|
height: var(--space-xl);
|
|
min-width: var(--space-xl);
|
|
min-height: var(--space-xl);
|
|
}
|
|
|
|
#playerModal .watch-container {
|
|
padding-inline: var(--space-sm);
|
|
}
|
|
|
|
#playerModal .channel-card {
|
|
gap: var(--space-sm);
|
|
padding: var(--space-sm) var(--space-md);
|
|
}
|
|
}
|
|
|
|
#playerModal .channel-card__avatar {
|
|
flex-shrink: 0;
|
|
width: var(--avatar-size-lg);
|
|
height: var(--avatar-size-lg);
|
|
border-radius: var(--radius-full);
|
|
overflow: hidden;
|
|
background-color: var(--color-border-subtle);
|
|
}
|
|
|
|
#playerModal .channel-card__avatar img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
#playerModal .channel-card__name {
|
|
margin: 0;
|
|
font-size: var(--font-size-lg);
|
|
font-weight: 600;
|
|
color: var(--color-text);
|
|
}
|
|
|
|
#playerModal .channel-card__npub {
|
|
margin: 0;
|
|
font-size: var(--font-size-sm);
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
#playerModal .description-panel {
|
|
padding: var(--space-md-plus) var(--space-lg);
|
|
border-radius: var(--radius-xl);
|
|
border: var(--border-width-hairline) solid var(--color-border-translucent);
|
|
background-color: var(--color-surface);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
#playerModal .description-panel p {
|
|
margin: 0;
|
|
font-size: var(--font-size-sm);
|
|
line-height: 1.6;
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.player-modal__content {
|
|
@apply video-modal__panel;
|
|
}
|
|
|
|
#playerModal .modal-nav {
|
|
@apply sticky top-0 z-overlay-nav transition-transform duration-150 translate-y-0;
|
|
background-color: var(--color-overlay-darker);
|
|
background-image: linear-gradient(
|
|
180deg,
|
|
var(--color-overlay-panel-gradient-start) 0%,
|
|
var(--color-overlay-panel-gradient-end) 100%
|
|
);
|
|
border-bottom: var(--border-width-hairline) solid var(--color-border-translucent);
|
|
backdrop-filter: blur(var(--modal-nav-backdrop-blur));
|
|
-webkit-backdrop-filter: blur(var(--modal-nav-backdrop-blur));
|
|
}
|
|
|
|
#playerModal .modal-nav__bar {
|
|
@apply flex w-full items-center gap-3 px-2 py-2 sm:px-4;
|
|
}
|
|
|
|
#playerModal .modal-nav__context {
|
|
@apply text-xs font-semibold uppercase tracking-wide text-muted;
|
|
}
|
|
|
|
#playerModal .modal-nav .modal-actions {
|
|
@apply flex items-center gap-2;
|
|
margin-left: auto;
|
|
}
|
|
|
|
#playerModal .modal-nav .icon-button {
|
|
@apply inline-flex items-center justify-center rounded-full text-muted transition duration-150 ease-out;
|
|
width: var(--icon-size-lg);
|
|
height: var(--icon-size-lg);
|
|
background: var(--color-surface-tint-subtle);
|
|
border: var(--border-width-hairline) solid var(--color-border-translucent-medium);
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
#playerModal .modal-nav .icon-button:hover,
|
|
#playerModal .modal-nav .icon-button:focus-visible {
|
|
background: var(--color-border-translucent-bright);
|
|
border-color: var(--color-border-translucent-strong);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.modal-nav--hidden {
|
|
@apply -translate-y-full;
|
|
}
|
|
|
|
.modal-nav--visible {
|
|
@apply translate-y-0;
|
|
}
|
|
|
|
.video-modal__layout {
|
|
@apply grid gap-6 lg:gap-8;
|
|
}
|
|
|
|
@media (min-width: theme('screens.lg')) {
|
|
.video-modal__layout {
|
|
grid-template-columns:
|
|
minmax(0, var(--video-modal-primary-fr))
|
|
minmax(var(--video-modal-secondary-min), var(--video-modal-secondary-fr, 1fr));
|
|
}
|
|
}
|
|
|
|
.revert-modal__layout {
|
|
@apply grid gap-6;
|
|
}
|
|
|
|
@media (min-width: theme('screens.lg')) {
|
|
.revert-modal__layout {
|
|
grid-template-columns:
|
|
minmax(var(--revert-modal-sidebar-min), var(--revert-modal-sidebar-width))
|
|
minmax(0, 1fr);
|
|
}
|
|
}
|
|
|
|
.video-modal__primary {
|
|
@apply flex flex-col gap-6;
|
|
}
|
|
|
|
.video-modal__secondary {
|
|
@apply flex flex-col gap-4;
|
|
}
|
|
|
|
.video-modal__video {
|
|
position: relative;
|
|
background-color: var(--color-black);
|
|
padding-block: clamp(var(--space-xs), 2.5vw, var(--space-md-plus));
|
|
}
|
|
|
|
@media (min-width: theme('screens.lg')) {
|
|
.video-modal__video {
|
|
position: sticky;
|
|
top: calc(var(--space-2xl) + var(--space-xl));
|
|
}
|
|
}
|
|
|
|
#playerModal .video-modal__video video {
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: var(--shadow-video-modal);
|
|
max-height: min(80vh, calc(100vw * 9 / 16));
|
|
object-fit: contain;
|
|
}
|
|
|
|
.video-modal__media {
|
|
display: block;
|
|
aspect-ratio: 16 / 9;
|
|
width: 100%;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.video-modal__details {
|
|
@apply flex flex-col gap-6;
|
|
}
|
|
|
|
.video-modal__meta {
|
|
@apply border-b border-border border-opacity-20 pb-4;
|
|
}
|
|
|
|
.video-modal__actions-row {
|
|
@apply flex flex-wrap items-center gap-3;
|
|
}
|
|
|
|
.video-modal__action-button {
|
|
@apply inline-flex h-11 items-center justify-center gap-2 rounded-full border border-border border-opacity-30 bg-panel px-3 text-sm font-semibold text-text transition duration-base ease-out hover:bg-panel-hover;
|
|
min-width: var(--video-modal-action-min-width);
|
|
}
|
|
|
|
.video-modal__action-label {
|
|
@apply hidden sm:inline;
|
|
}
|
|
|
|
.video-modal__action-icon {
|
|
@apply h-5 w-5;
|
|
}
|
|
|
|
.video-modal__channel,
|
|
.video-modal__description,
|
|
.video-modal__stats {
|
|
@apply rounded-2xl border border-border border-opacity-20 bg-surface px-6 py-5 shadow-sm;
|
|
}
|
|
|
|
.video-modal__progress {
|
|
@apply h-2 w-full overflow-hidden rounded-full bg-border-subtle;
|
|
}
|
|
|
|
.video-modal__stat-metrics {
|
|
@apply flex flex-wrap items-center justify-between gap-3 text-sm text-muted;
|
|
}
|
|
|
|
.profile-pane {
|
|
@apply min-h-modal-pane flex flex-col gap-lg;
|
|
}
|
|
|
|
.profile-pane.hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Torrent helper classes */
|
|
.beacon-hidden-download,
|
|
[data-beacon-hidden-download],
|
|
.torrent-download-anchor {
|
|
display: none !important;
|
|
}
|
|
|
|
.beacon-clipboard-offscreen,
|
|
[data-beacon-clipboard-state="offscreen"],
|
|
[data-beacon-clipboard="offscreen"],
|
|
.torrent-clipboard-textarea {
|
|
position: fixed;
|
|
top: 0;
|
|
left: var(--offscreen-offset);
|
|
opacity: 0;
|
|
width: 0;
|
|
height: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.beacon-toast-motion,
|
|
.torrent-toast-motion {
|
|
transition-property: opacity, transform;
|
|
will-change: opacity, transform;
|
|
opacity: 0;
|
|
transform: translateY(var(--toast-translate));
|
|
}
|
|
|
|
.beacon-toast-motion[data-beacon-motion="enter"],
|
|
.beacon-toast-motion[data-beacon-motion="show"],
|
|
.torrent-toast-motion[data-beacon-motion="enter"],
|
|
.torrent-toast-motion[data-beacon-motion="show"] {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.beacon-toast-motion[data-beacon-motion="exit"],
|
|
.torrent-toast-motion[data-beacon-motion="exit"] {
|
|
opacity: 0;
|
|
transform: translateY(var(--toast-translate));
|
|
}
|
|
|
|
.torrent-toast {
|
|
@apply pointer-events-auto w-full max-w-md rounded-lg px-4 py-3 text-sm font-medium tracking-tight shadow-lg ring-1 ring-inset;
|
|
}
|
|
|
|
.torrent-toast--info {
|
|
@apply border border-border-translucent bg-surface text-text;
|
|
}
|
|
|
|
.torrent-toast--success {
|
|
@apply border border-info border-opacity-60 bg-info text-white;
|
|
}
|
|
|
|
.torrent-toast--error {
|
|
@apply border border-critical border-opacity-60 bg-critical text-white;
|
|
}
|
|
|
|
.torrent-toast--warn {
|
|
@apply border border-warning-strong border-opacity-70 bg-warning-strong text-warning-strong;
|
|
}
|
|
|
|
.profile-switcher {
|
|
@apply card flex flex-col gap-lg;
|
|
}
|
|
|
|
.profile-switcher__badge {
|
|
@apply badge self-start;
|
|
}
|
|
|
|
.profile-switcher__header {
|
|
@apply flex flex-col gap-sm sm:flex-row sm:items-center sm:justify-between;
|
|
}
|
|
|
|
.profile-switcher__intro {
|
|
@apply flex flex-col gap-2xs;
|
|
}
|
|
|
|
.profile-switcher__title {
|
|
@apply text-base font-semibold text-text;
|
|
}
|
|
|
|
.profile-switcher__subtitle {
|
|
@apply text-sm text-muted;
|
|
}
|
|
|
|
.profile-switcher__list {
|
|
@apply flex flex-col gap-md;
|
|
}
|
|
|
|
.profile-switcher__helper {
|
|
@apply text-xs text-muted;
|
|
}
|
|
|
|
.profile-card {
|
|
@apply card relative flex cursor-pointer flex-col gap-md p-4 text-text transition duration-base ease-out hover:shadow-lg focus-visible:border-info focus-visible:border-opacity-60 focus-visible:shadow-lg sm:flex-row sm:items-center;
|
|
}
|
|
|
|
.profile-card--active {
|
|
@apply border-info border-opacity-60 shadow-lg;
|
|
}
|
|
|
|
.profile-card__avatar {
|
|
@apply flex h-12 w-12 flex-none items-center justify-center overflow-hidden rounded-full border border-border border-opacity-30 bg-surface;
|
|
}
|
|
|
|
.profile-card__avatar img {
|
|
@apply h-full w-full rounded-full object-cover;
|
|
}
|
|
|
|
.profile-card--active .profile-card__avatar {
|
|
@apply border-info border-opacity-70 ring-2 ring-info ring-opacity-20;
|
|
}
|
|
|
|
.profile-card__meta {
|
|
@apply flex min-w-0 flex-1 flex-col gap-sm;
|
|
}
|
|
|
|
.profile-card__topline {
|
|
@apply flex w-full flex-wrap items-center gap-sm sm:justify-between;
|
|
}
|
|
|
|
.profile-card__label {
|
|
@apply text-xs font-semibold uppercase tracking-wide text-info;
|
|
}
|
|
|
|
.profile-card__name {
|
|
@apply truncate text-sm font-semibold text-text;
|
|
}
|
|
|
|
.profile-card__npub {
|
|
@apply break-all font-mono text-xs text-muted;
|
|
}
|
|
|
|
.profile-card__action,
|
|
.profile-nav-button {
|
|
@apply btn-ghost ml-auto flex-shrink-0 px-3 py-1 text-xs;
|
|
}
|
|
|
|
.profile-switcher__add {
|
|
@apply card hover:bg-info/10 flex cursor-pointer items-center gap-4 border border-dashed border-border border-opacity-40 bg-surface text-left text-muted transition duration-base ease-out hover:border-info hover:border-opacity-60 hover:text-text focus-visible:border-info focus-visible:border-opacity-60;
|
|
}
|
|
|
|
.profile-switcher__addAvatar {
|
|
@apply flex h-12 w-12 flex-none items-center justify-center rounded-full border border-dashed border-current bg-surface;
|
|
}
|
|
|
|
.profile-switcher__addAvatar svg {
|
|
@apply h-5 w-5;
|
|
}
|
|
|
|
.profile-switcher__addCopy {
|
|
@apply flex flex-col gap-1 text-left;
|
|
}
|
|
|
|
.profile-switcher__addTitle {
|
|
@apply text-sm font-semibold text-inherit;
|
|
}
|
|
|
|
.profile-switcher__addHint {
|
|
@apply text-xs text-muted;
|
|
}
|
|
|
|
.watch-history-grid {
|
|
@apply flex w-full flex-col gap-5 py-6 sm:gap-6;
|
|
}
|
|
|
|
.watch-history-grid.watch-history-grid--modal {
|
|
@apply gap-5 py-0 sm:gap-6;
|
|
}
|
|
|
|
.watch-history-card {
|
|
@apply card flex flex-wrap items-stretch gap-5 p-4 transition duration-base ease-out hover:-translate-y-0.5 hover:shadow-lg sm:gap-6 sm:p-5;
|
|
}
|
|
|
|
.watch-history-card--private {
|
|
@apply border-info border-opacity-60;
|
|
}
|
|
|
|
.watch-history-card__primary {
|
|
@apply flex min-w-0 flex-1 flex-wrap items-stretch gap-4 sm:flex-nowrap;
|
|
}
|
|
|
|
.watch-history-card__thumbnail {
|
|
@apply block flex-none text-text no-underline sm:w-56;
|
|
}
|
|
|
|
.watch-history-card__thumbnailInner {
|
|
@apply aspect-video w-full overflow-hidden rounded-lg bg-surface;
|
|
}
|
|
|
|
.watch-history-card__thumbnailInner img {
|
|
@apply h-full w-full object-cover;
|
|
}
|
|
|
|
.watch-history-card__details {
|
|
@apply flex min-w-0 flex-1 flex-col justify-center gap-sm;
|
|
}
|
|
|
|
.watch-history-card__title {
|
|
@apply cursor-pointer text-lg font-semibold leading-snug text-text transition duration-base ease-out;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.watch-history-card__title:hover,
|
|
.watch-history-card__title:focus {
|
|
@apply text-info;
|
|
}
|
|
|
|
.watch-history-card__created {
|
|
@apply text-sm text-muted;
|
|
}
|
|
|
|
.watch-history-card__meta {
|
|
@apply flex min-w-0 flex-col justify-between gap-4 sm:min-w-56 sm:flex-none sm:basis-64;
|
|
}
|
|
|
|
.watch-history-card__watched {
|
|
@apply text-sm text-border-subtle;
|
|
}
|
|
|
|
.watch-history-card__creator {
|
|
@apply flex items-center gap-3;
|
|
}
|
|
|
|
.watch-history-card__creatorAvatar {
|
|
@apply flex h-10 w-10 items-center justify-center rounded-full bg-panel transition duration-base ease-out hover:ring-2 hover:ring-info hover:ring-opacity-50 focus-visible:ring-2 focus-visible:ring-info focus-visible:ring-opacity-50;
|
|
}
|
|
|
|
.watch-history-card__creatorAvatar img {
|
|
@apply h-full w-full rounded-full object-cover;
|
|
}
|
|
|
|
.watch-history-card__creatorName {
|
|
@apply cursor-pointer bg-transparent p-0 text-left text-base font-medium text-muted transition duration-base ease-out hover:text-info focus-visible:text-info;
|
|
}
|
|
|
|
.watch-history-card__actions {
|
|
@apply flex flex-wrap items-center gap-3;
|
|
}
|
|
|
|
.watch-history-card__action {
|
|
@apply inline-flex items-center justify-center gap-2 rounded-full border border-transparent bg-panel px-4 py-2 text-sm font-medium text-muted transition duration-base ease-out hover:border-border hover:bg-surface-alt hover:text-text focus-visible:border-border focus-visible:bg-surface-alt focus-visible:text-text;
|
|
}
|
|
|
|
.watch-history-card__action--primary {
|
|
@apply bg-info-strong text-white hover:bg-info-pressed focus-visible:bg-info-pressed;
|
|
}
|
|
|
|
.watch-history-card__action--danger {
|
|
@apply bg-critical text-white hover:bg-critical-strong focus-visible:bg-critical-strong;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.container {
|
|
max-width: var(--layout-docs-max-width);
|
|
margin: 0 auto;
|
|
padding: var(--space-md);
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 0;
|
|
animation: interface-fade-in 280ms ease-out forwards;
|
|
animation-delay: var(--fade-in-delay, 0ms);
|
|
}
|
|
|
|
.fade-in-delay-100 {
|
|
--fade-in-delay: 100ms;
|
|
}
|
|
|
|
.fade-in-delay-200 {
|
|
--fade-in-delay: 200ms;
|
|
}
|
|
|
|
.fade-in-delay-300 {
|
|
--fade-in-delay: 300ms;
|
|
}
|
|
|
|
.fade-in-delay-400 {
|
|
--fade-in-delay: 400ms;
|
|
}
|
|
|
|
.card[data-motion="enter"] {
|
|
opacity: 0;
|
|
animation: card-motion-enter 220ms ease-out forwards;
|
|
}
|
|
|
|
.icon-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: var(--icon-size-lg);
|
|
height: var(--icon-size-lg);
|
|
min-width: var(--icon-size-lg);
|
|
min-height: var(--icon-size-lg);
|
|
flex: 0 0 var(--icon-size-lg);
|
|
line-height: 0;
|
|
background-color: var(--color-neutral-700);
|
|
color: var(--color-white);
|
|
border: none;
|
|
border-radius: var(--radius-full);
|
|
cursor: pointer;
|
|
transition: background-color 200ms ease, box-shadow 200ms ease;
|
|
}
|
|
|
|
.icon-button:hover {
|
|
background-color: var(--color-neutral-600);
|
|
}
|
|
|
|
.icon-button:focus,
|
|
.icon-button:active {
|
|
outline: none;
|
|
box-shadow: 0 0 0 var(--icon-button-ring-width) var(--color-ring-alert);
|
|
}
|
|
|
|
.icon-image {
|
|
width: var(--icon-size-md);
|
|
height: var(--icon-size-md);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.modal-nav .icon-button {
|
|
box-shadow: none;
|
|
padding: 0;
|
|
gap: 0;
|
|
width: var(--icon-size-lg);
|
|
height: var(--icon-size-lg);
|
|
min-width: var(--icon-size-lg);
|
|
min-height: var(--icon-size-lg);
|
|
border: none;
|
|
}
|
|
|
|
.modal-meta {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-xs);
|
|
}
|
|
|
|
.modal-view-count {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-2xs);
|
|
font-size: var(--font-size-sm);
|
|
line-height: var(--space-md-plus);
|
|
color: var(--color-muted-alt);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.view-count-text {
|
|
white-space: nowrap;
|
|
color: var(--color-muted-strong);
|
|
}
|
|
|
|
.progress-bar {
|
|
width: 100%;
|
|
height: var(--modal-progress-height);
|
|
border-radius: var(--radius-full);
|
|
background-color: var(--color-border-translucent);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress-bar-fill {
|
|
width: 0;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background: linear-gradient(
|
|
90deg,
|
|
var(--color-info-strong),
|
|
var(--color-info)
|
|
);
|
|
transition: width 240ms ease;
|
|
}
|
|
|
|
.ratio-16-9 {
|
|
position: relative;
|
|
width: 100%;
|
|
padding-top: 56.25%;
|
|
background-color: var(--color-card);
|
|
}
|
|
|
|
.ratio-16-9 > img {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
#modalContainer {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: var(--z-modal-root);
|
|
pointer-events: none;
|
|
isolation: isolate;
|
|
}
|
|
|
|
#modalContainer > * {
|
|
pointer-events: auto;
|
|
}
|
|
|
|
#modalContainer > [id$="Modal"]:not(#playerModal) {
|
|
z-index: var(--z-modal-root);
|
|
}
|
|
|
|
#modalContainer > [id$="Modal"]:not(#playerModal) > .bv-modal-backdrop {
|
|
z-index: var(--z-modal-overlay);
|
|
}
|
|
|
|
#modalContainer > [id$="Modal"]:not(#playerModal) .bv-modal__panel {
|
|
z-index: var(--z-modal-content);
|
|
}
|
|
|
|
#modalContainer > #playerModal {
|
|
z-index: var(--z-modal-player);
|
|
}
|
|
|
|
#modalContainer > #playerModal .player-modal__container,
|
|
#modalContainer > #playerModal .player-modal__content {
|
|
z-index: var(--z-modal-content);
|
|
}
|
|
|
|
#playerModal {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: var(--z-modal-player);
|
|
display: none;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
justify-content: stretch;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
background-color: var(--color-surface);
|
|
color: var(--color-subtle-text);
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
#playerModal.flex {
|
|
display: flex;
|
|
}
|
|
|
|
#modalVideo {
|
|
width: 100%;
|
|
aspect-ratio: 16 / 9;
|
|
background-color: var(--color-black);
|
|
}
|
|
|
|
.notification-portal {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: var(--z-overlay-toast);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--space-md);
|
|
padding: calc(var(--space-xl) + env(safe-area-inset-top, 0px)) var(--space-lg)
|
|
var(--space-lg);
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transform: translateY(var(--toast-translate));
|
|
transition: transform var(--motion-duration-base) var(--motion-ease-out),
|
|
opacity var(--motion-duration-base) var(--motion-ease-out);
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.notification-portal {
|
|
align-items: flex-end;
|
|
padding-inline: var(--space-xl);
|
|
}
|
|
}
|
|
|
|
.notification-portal:has(.notification-banner:not(.hidden)) {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.notification-banner,
|
|
.torrent-toast {
|
|
--notify-accent: var(--color-accent-strong);
|
|
--notify-accent-strong: var(--color-accent);
|
|
--notify-border: var(--surface-overlay-panel-tint);
|
|
--notify-background: var(--surface-overlay-panel);
|
|
--notify-foreground: var(--color-text);
|
|
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-md);
|
|
width: min(28rem, 100%);
|
|
padding: var(--space-md) var(--space-xl);
|
|
border-radius: var(--radius-xl);
|
|
border: 1px solid var(--notify-border);
|
|
background: var(--notify-background);
|
|
color: var(--notify-foreground);
|
|
box-shadow: 0 32px 64px var(--color-shadow-notification);
|
|
backdrop-filter: blur(var(--overlay-backdrop-blur));
|
|
pointer-events: auto;
|
|
isolation: isolate;
|
|
@apply text-sm font-semibold leading-snug;
|
|
transition: transform var(--motion-duration-base) var(--motion-ease-out),
|
|
opacity var(--motion-duration-base) var(--motion-ease-out);
|
|
}
|
|
|
|
.notification-banner::before,
|
|
.torrent-toast::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: inherit;
|
|
background: linear-gradient(
|
|
135deg,
|
|
var(--notify-accent) 0%,
|
|
var(--notify-accent-strong) 100%
|
|
);
|
|
opacity: 0.18;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.notification-banner > *,
|
|
.torrent-toast > * {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.notification-dismiss {
|
|
@apply inline-flex h-8 w-8 items-center justify-center rounded-full border border-transparent transition duration-base ease-out;
|
|
color: inherit;
|
|
opacity: 0.75;
|
|
background-color: var(--notify-dismiss-background);
|
|
}
|
|
|
|
.notification-dismiss:hover,
|
|
.notification-dismiss:focus-visible {
|
|
opacity: 1;
|
|
background-color: var(--notify-dismiss-background-hover);
|
|
}
|
|
|
|
.notification-dismiss svg {
|
|
@apply h-4 w-4;
|
|
}
|
|
|
|
.notification-banner:not(.hidden) {
|
|
animation: notification-slide-in var(--motion-duration-base)
|
|
var(--motion-ease-out);
|
|
}
|
|
|
|
.notification-banner--critical,
|
|
.torrent-toast--error {
|
|
--notify-accent: var(--color-critical-strong);
|
|
--notify-accent-strong: var(--color-critical);
|
|
--notify-border: var(--color-ring-critical-soft);
|
|
--notify-background: var(--color-card-critical);
|
|
--notify-foreground: var(--color-critical-strong);
|
|
}
|
|
|
|
.notification-banner--success,
|
|
.torrent-toast--success {
|
|
--notify-accent: var(--status-success-strong);
|
|
--notify-accent-strong: var(--status-success);
|
|
--notify-border: var(--status-success-border);
|
|
--notify-background: var(--status-success-surface);
|
|
--notify-foreground: var(--status-success-on);
|
|
}
|
|
|
|
.notification-banner--info,
|
|
.torrent-toast--info {
|
|
--notify-accent: var(--color-info-strong);
|
|
--notify-accent-strong: var(--color-info);
|
|
--notify-border: var(--color-info-border);
|
|
--notify-background: var(--status-info-surface);
|
|
}
|
|
|
|
.notification-banner--warning,
|
|
.torrent-toast--warn {
|
|
--notify-accent: var(--color-warning-strong);
|
|
--notify-accent-strong: var(--color-warning);
|
|
--notify-border: var(--status-warning-border);
|
|
--notify-background: var(--status-warning-surface);
|
|
--notify-foreground: var(--status-warning-on);
|
|
}
|
|
|
|
.status-banner .status-spinner {
|
|
animation: spin 1s linear infinite;
|
|
border: var(--space-3xs) solid var(--color-info-border);
|
|
border-radius: var(--radius-full);
|
|
border-top-color: var(--color-info);
|
|
flex-shrink: 0;
|
|
height: var(--icon-size-md);
|
|
width: var(--icon-size-md);
|
|
}
|
|
|
|
.status-banner .status-message {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
@keyframes notification-slide-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(var(--toast-translate));
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.status-spinner--inline {
|
|
animation: spin 1s linear infinite;
|
|
border: var(--space-3xs) solid var(--color-border-info-soft);
|
|
border-radius: var(--radius-full);
|
|
border-top-color: var(--color-info);
|
|
display: inline-block;
|
|
height: var(--space-md);
|
|
width: var(--space-md);
|
|
}
|
|
|
|
body.iframe-form {
|
|
background-color: transparent;
|
|
color: var(--color-text);
|
|
font-family: var(--font-family-sans);
|
|
margin: var(--space-lg);
|
|
}
|
|
|
|
body.iframe-form .container {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body.iframe-form .form-container {
|
|
background-color: var(--color-surface-alt);
|
|
border-radius: var(--radius-md);
|
|
box-shadow: var(--shadow-md);
|
|
color: var(--color-text);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-md);
|
|
padding: var(--space-lg);
|
|
}
|
|
|
|
body.iframe-form .form-container > p {
|
|
margin: 0;
|
|
}
|
|
|
|
body.iframe-form form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
body.iframe-form form > * + * {
|
|
margin-top: var(--space-sm);
|
|
}
|
|
|
|
body.iframe-form form h1,
|
|
body.iframe-form form h2 {
|
|
color: var(--color-text);
|
|
margin-top: var(--space-md);
|
|
}
|
|
|
|
body.iframe-form label {
|
|
color: var(--color-subtle-text);
|
|
display: block;
|
|
font-weight: 600;
|
|
margin-top: var(--space-sm);
|
|
}
|
|
|
|
body.iframe-form label + .form-control,
|
|
body.iframe-form label + .textarea,
|
|
body.iframe-form label + .select {
|
|
margin-top: var(--space-xs);
|
|
}
|
|
|
|
body.iframe-form .checkbox-group,
|
|
body.iframe-form .radio-group {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-sm);
|
|
margin-top: var(--space-xs);
|
|
}
|
|
|
|
body.iframe-form .checkbox-group label,
|
|
body.iframe-form .radio-group label {
|
|
align-items: center;
|
|
color: var(--color-subtle-text);
|
|
display: inline-flex;
|
|
font-weight: 500;
|
|
gap: var(--space-xs);
|
|
margin: 0;
|
|
}
|
|
|
|
body.iframe-form .checkbox-group input[type="checkbox"],
|
|
body.iframe-form .radio-group input[type="radio"] {
|
|
margin: 0;
|
|
}
|
|
|
|
body.iframe-form .radio-group input[type="radio"] {
|
|
accent-color: var(--color-info-strong);
|
|
}
|
|
|
|
body.iframe-form button.btn {
|
|
align-self: flex-start;
|
|
margin-top: var(--space-md);
|
|
}
|
|
|
|
body.iframe-form #status {
|
|
background: var(--color-surface);
|
|
border-radius: var(--radius-sm);
|
|
box-shadow: inset 0 0 0 var(--border-width-hairline) var(--color-border-translucent);
|
|
color: var(--color-subtle-text);
|
|
min-height: calc(var(--space-2xl) + var(--space-xl));
|
|
padding: var(--space-sm);
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
body.iframe-form .status-line {
|
|
color: var(--color-subtle-text);
|
|
margin: var(--space-2xs) 0;
|
|
}
|
|
|
|
body.iframe-form .status-line.error {
|
|
color: var(--color-critical-strong);
|
|
}
|
|
|
|
body.iframe-form .status-line.success {
|
|
color: var(--color-info-strong);
|
|
}
|
|
|
|
body.iframe-form .status-line.warn {
|
|
color: var(--color-warning-strong);
|
|
}
|
|
|
|
@media (max-width: theme('screens.sm')) {
|
|
body.iframe-form {
|
|
margin: var(--space-md);
|
|
}
|
|
|
|
body.iframe-form .form-container {
|
|
padding: var(--space-md);
|
|
}
|
|
}
|
|
|
|
#sidebarContainer {
|
|
position: relative;
|
|
overflow: visible;
|
|
}
|
|
|
|
#sidebar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: var(--sidebar-width);
|
|
min-width: var(--sidebar-width);
|
|
height: 100vh;
|
|
height: 100dvh;
|
|
color: var(--color-text-frosted-strong);
|
|
overflow-x: visible;
|
|
overflow-y: auto;
|
|
-webkit-overflow-scrolling: touch;
|
|
overscroll-behavior: contain;
|
|
scrollbar-gutter: stable both-edges;
|
|
background: transparent;
|
|
border-right: none;
|
|
backdrop-filter: none;
|
|
-webkit-backdrop-filter: none;
|
|
transition: width 200ms ease, transform 300ms ease;
|
|
z-index: var(--z-sidebar);
|
|
box-shadow: none;
|
|
isolation: isolate;
|
|
}
|
|
|
|
#sidebar .sidebar__inner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
padding: var(--space-sidebar-shell-block-start) var(--space-sidebar-shell-inline)
|
|
var(--space-sidebar-shell-block-end);
|
|
width: 100%;
|
|
border-radius: var(--radius-sidebar-shell);
|
|
border: none;
|
|
background: none;
|
|
box-shadow: none;
|
|
backdrop-filter: none;
|
|
-webkit-backdrop-filter: none;
|
|
overflow: visible;
|
|
isolation: isolate;
|
|
transition: color 200ms ease;
|
|
}
|
|
|
|
.sidebar-scroll {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-sidebar-scroll-gap);
|
|
width: 100%;
|
|
height: 100%;
|
|
min-height: 0;
|
|
flex: 1 1 auto;
|
|
overflow: visible;
|
|
}
|
|
|
|
.sidebar-panel {
|
|
position: relative;
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-sidebar-panel-gap);
|
|
padding: var(--space-sidebar-panel-padding-block)
|
|
var(--space-sidebar-panel-padding-inline);
|
|
border-radius: var(--radius-sidebar-panel);
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
color: inherit;
|
|
backdrop-filter: none;
|
|
-webkit-backdrop-filter: none;
|
|
overflow: hidden;
|
|
isolation: isolate;
|
|
transition: border-color 200ms ease, box-shadow 220ms ease, background 220ms ease;
|
|
}
|
|
|
|
.sidebar-panel--primary {
|
|
flex: 1 1 auto;
|
|
min-height: 0;
|
|
}
|
|
|
|
.sidebar-panel__header {
|
|
display: none;
|
|
justify-content: flex-end;
|
|
margin-bottom: var(--space-md);
|
|
}
|
|
|
|
.sidebar-collapse-toggle {
|
|
display: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: var(--sidebar-control-size);
|
|
height: var(--sidebar-control-size);
|
|
border-radius: var(--radius-full);
|
|
border: var(--border-width-hairline) solid var(--color-border-translucent-medium);
|
|
background: var(--color-surface-tint-subtle);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
|
|
flex-shrink: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.sidebar-collapse-toggle:hover {
|
|
background: var(--color-border-translucent);
|
|
border-color: var(--color-border-translucent-stronger);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.sidebar-collapse-toggle:focus-visible {
|
|
outline: var(--space-3xs) solid var(--color-secondary);
|
|
outline-offset: var(--space-2xs);
|
|
}
|
|
|
|
.sidebar-collapse-toggle__icon {
|
|
width: var(--icon-size-sm);
|
|
height: var(--icon-size-sm);
|
|
transition: transform 200ms ease;
|
|
}
|
|
|
|
.sidebar-nav {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-xs);
|
|
opacity: 1;
|
|
transition: opacity 160ms ease;
|
|
width: 100%;
|
|
}
|
|
|
|
.sidebar-nav-link {
|
|
--sidebar-nav-translate-x: 0;
|
|
--sidebar-nav-link-highlight-opacity: 0;
|
|
--sidebar-nav-link-highlight-scale: 0.96;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-sidebar-footer-gap);
|
|
padding: var(--space-sidebar-nav-padding-block) var(--space-md);
|
|
min-height: var(--sidebar-control-size);
|
|
border-radius: var(--radius-sidebar-nav);
|
|
font-size: var(--font-size-sidebar-nav);
|
|
font-weight: 600;
|
|
letter-spacing: 0.015em;
|
|
color: var(--color-text);
|
|
text-decoration: none;
|
|
width: 100%;
|
|
position: relative;
|
|
border: var(--border-width-hairline) solid transparent;
|
|
background: none;
|
|
box-shadow: none;
|
|
transform: translateX(var(--sidebar-nav-translate-x));
|
|
transition: color 180ms ease, border-color 200ms ease, box-shadow 220ms ease,
|
|
transform 220ms ease;
|
|
overflow: hidden;
|
|
isolation: isolate;
|
|
backdrop-filter: none;
|
|
-webkit-backdrop-filter: none;
|
|
}
|
|
|
|
.sidebar-nav-link::before,
|
|
.sidebar-nav-link::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: calc(var(--border-width-hairline) * -1);
|
|
border-radius: inherit;
|
|
pointer-events: none;
|
|
transition: opacity 220ms ease, transform 240ms ease;
|
|
z-index: -1;
|
|
}
|
|
|
|
.sidebar-nav-link::before {
|
|
background: linear-gradient(
|
|
120deg,
|
|
var(--color-sidebar-accent-start) 0%,
|
|
var(--color-sidebar-accent-end) 100%
|
|
);
|
|
opacity: var(--sidebar-nav-link-highlight-opacity);
|
|
transform: scale(var(--sidebar-nav-link-highlight-scale));
|
|
filter: saturate(140%);
|
|
}
|
|
|
|
.sidebar-nav-link::after {
|
|
background: linear-gradient(
|
|
105deg,
|
|
var(--color-sidebar-hover) 0%,
|
|
transparent 75%
|
|
);
|
|
opacity: 0.22;
|
|
mix-blend-mode: screen;
|
|
z-index: -2;
|
|
}
|
|
|
|
.sidebar-nav-link:hover,
|
|
.sidebar-nav-link:focus-visible {
|
|
--sidebar-nav-link-highlight-opacity: 1;
|
|
--sidebar-nav-link-highlight-scale: 1.02;
|
|
--sidebar-nav-translate-x: var(--space-sidebar-nav-translate);
|
|
color: var(--color-white);
|
|
border-color: var(--color-sidebar-hover-strong);
|
|
box-shadow: 0 0 0 var(--border-width-hairline) var(--color-sidebar-hover-strong),
|
|
var(--shadow-sidebar-accent);
|
|
}
|
|
|
|
.sidebar-nav-link:focus-visible {
|
|
outline: none;
|
|
box-shadow: var(--shadow-sidebar-focus-ring), var(--shadow-sidebar-accent);
|
|
}
|
|
|
|
.sidebar-nav-link:hover::after,
|
|
.sidebar-nav-link:focus-visible::after {
|
|
opacity: 0.35;
|
|
}
|
|
|
|
.sidebar-nav-link--sub {
|
|
font-size: var(--font-size-sidebar-subnav);
|
|
font-weight: 500;
|
|
color: var(--color-sidebar-text-muted);
|
|
padding-block: var(--space-sidebar-subnav-padding-block);
|
|
letter-spacing: 0.02em;
|
|
--sidebar-nav-link-highlight-opacity: 0.25;
|
|
--sidebar-nav-link-highlight-scale: 1;
|
|
}
|
|
|
|
.sidebar-icon {
|
|
width: var(--space-lg);
|
|
height: var(--space-lg);
|
|
min-width: var(--space-lg);
|
|
min-height: var(--space-lg);
|
|
flex-shrink: 0;
|
|
display: block;
|
|
filter: var(--sidebar-icon-filter);
|
|
transition: filter 180ms ease;
|
|
}
|
|
|
|
.sidebar-footer {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-sidebar-footer-gap);
|
|
margin-top: auto;
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
.sidebar-dropup-trigger {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-sidebar-footer-gap);
|
|
width: 100%;
|
|
padding: var(--space-sidebar-trigger-padding-block) var(--space-md);
|
|
min-height: var(--sidebar-control-size);
|
|
border-radius: var(--radius-sidebar-nav);
|
|
border: var(--border-width-hairline) solid transparent;
|
|
background: none;
|
|
color: var(--color-text);
|
|
font-size: var(--font-size-sidebar-trigger);
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
box-sizing: border-box;
|
|
flex-shrink: 0;
|
|
overflow: hidden;
|
|
isolation: isolate;
|
|
backdrop-filter: none;
|
|
-webkit-backdrop-filter: none;
|
|
box-shadow: none;
|
|
transition: border-color 200ms ease, color 200ms ease, box-shadow 220ms ease;
|
|
}
|
|
|
|
.sidebar-dropup-trigger::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: calc(var(--border-width-hairline) * -1);
|
|
border-radius: inherit;
|
|
pointer-events: none;
|
|
background: linear-gradient(
|
|
120deg,
|
|
var(--color-sidebar-accent-start) 0%,
|
|
var(--color-sidebar-accent-end) 100%
|
|
);
|
|
opacity: 0;
|
|
transform: scale(0.96);
|
|
transition: opacity 200ms ease, transform 220ms ease;
|
|
z-index: -1;
|
|
filter: saturate(140%);
|
|
}
|
|
|
|
.sidebar-dropup-trigger::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: calc(var(--border-width-hairline) * -1);
|
|
border-radius: inherit;
|
|
pointer-events: none;
|
|
background: linear-gradient(110deg, var(--color-sidebar-hover) 0%, transparent 80%);
|
|
opacity: 0.18;
|
|
mix-blend-mode: screen;
|
|
transition: opacity 200ms ease;
|
|
z-index: -2;
|
|
}
|
|
|
|
.sidebar-dropup-trigger:hover,
|
|
.sidebar-dropup-trigger:focus-visible {
|
|
color: var(--color-white);
|
|
border-color: var(--color-sidebar-hover-strong);
|
|
box-shadow: 0 0 0 var(--border-width-hairline) var(--color-sidebar-hover-strong),
|
|
var(--shadow-sidebar-dropup);
|
|
}
|
|
|
|
.sidebar-dropup-trigger:hover::before,
|
|
.sidebar-dropup-trigger:focus-visible::before {
|
|
opacity: 1;
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
.sidebar-dropup-trigger:hover::after,
|
|
.sidebar-dropup-trigger:focus-visible::after {
|
|
opacity: 0.35;
|
|
}
|
|
|
|
.sidebar-dropup-trigger:focus-visible {
|
|
outline: none;
|
|
box-shadow: var(--shadow-sidebar-focus-ring), var(--shadow-sidebar-dropup);
|
|
}
|
|
|
|
.sidebar-dropup-trigger__glyph {
|
|
width: var(--icon-size-md);
|
|
height: var(--icon-size-md);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.sidebar-dropup-trigger__chevron {
|
|
width: var(--icon-size-sm);
|
|
height: var(--icon-size-sm);
|
|
transition: transform 180ms ease;
|
|
}
|
|
|
|
.sidebar-dropup-trigger__chevron.is-rotated,
|
|
.sidebar-dropup-trigger[aria-expanded="true"] .sidebar-dropup-trigger__chevron {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.sidebar-dropup-panel {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: calc(100% + var(--space-sidebar-popover-offset));
|
|
border-radius: var(--radius-xl);
|
|
border: var(--border-width-hairline) solid var(--color-sidebar-border-strong);
|
|
background:
|
|
linear-gradient(
|
|
160deg,
|
|
color-mix(in srgb, var(--color-sidebar-surface) 88%, transparent) 0%,
|
|
color-mix(in srgb, var(--color-sidebar-surface-alt) 68%, transparent) 100%
|
|
);
|
|
box-shadow: inset 0 0 0 var(--border-width-fine) var(--color-sidebar-border),
|
|
var(--shadow-sidebar-panel);
|
|
padding: var(--space-sidebar-popover-padding-block)
|
|
var(--space-sidebar-popover-padding-inline);
|
|
color: var(--color-text-frosted);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
transform: translateY(var(--space-sm));
|
|
transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease,
|
|
box-shadow 220ms ease;
|
|
backdrop-filter: blur(var(--sidebar-panel-backdrop-blur))
|
|
saturate(var(--sidebar-panel-backdrop-saturation));
|
|
-webkit-backdrop-filter: blur(var(--sidebar-panel-backdrop-blur))
|
|
saturate(var(--sidebar-panel-backdrop-saturation));
|
|
z-index: 5;
|
|
isolation: isolate;
|
|
}
|
|
|
|
.sidebar-dropup-panel[data-state="expanded"] {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
pointer-events: auto;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.sidebar-dropup-panel__inner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-sidebar-popover-gap);
|
|
}
|
|
|
|
#sidebar[data-footer-state="expanded"] .sidebar-nav {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
#sidebar[data-footer-state="collapsed"] .sidebar-nav {
|
|
opacity: 1;
|
|
}
|
|
|
|
#sidebar.sidebar-open {
|
|
box-shadow: none;
|
|
}
|
|
|
|
#sidebarOverlay {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transition: opacity 300ms ease;
|
|
}
|
|
|
|
body.sidebar-open #sidebarOverlay {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.sidebar-loading-wrapper {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
padding: var(--space-2xl) 0;
|
|
width: 100%;
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.sidebar-loading-indicator {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--space-sm);
|
|
color: var(--color-muted-strong);
|
|
font-size: var(--font-size-sm);
|
|
font-weight: 500;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.sidebar-loading-text {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (
|
|
max-width: calc(theme('screens.md') - theme('borderWidth.DEFAULT'))
|
|
) {
|
|
#sidebar {
|
|
transform: translate3d(-100%, 0, 0);
|
|
width: min(
|
|
var(--sidebar-width-expanded),
|
|
calc(100vw - var(--sidebar-mobile-gutter))
|
|
);
|
|
}
|
|
|
|
#sidebar.sidebar-open {
|
|
transform: translate3d(0, 0, 0);
|
|
}
|
|
|
|
body.sidebar-open {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
@media (min-width: theme('screens.md')) {
|
|
.sidebar-panel__header {
|
|
display: flex;
|
|
}
|
|
|
|
.sidebar-collapse-toggle {
|
|
display: inline-flex;
|
|
}
|
|
|
|
#sidebar {
|
|
transform: translateX(0) !important;
|
|
width: var(--sidebar-width);
|
|
overflow: visible;
|
|
}
|
|
|
|
#sidebar.sidebar-open {
|
|
box-shadow: none;
|
|
}
|
|
|
|
#sidebarOverlay {
|
|
display: none;
|
|
}
|
|
|
|
#app {
|
|
box-sizing: border-box;
|
|
transition: margin-left 200ms ease, width 200ms ease, max-width 200ms ease;
|
|
}
|
|
|
|
#app[data-sidebar-state="collapsed"] {
|
|
margin-left: calc(
|
|
var(--sidebar-width-collapsed) + var(--sidebar-content-gap)
|
|
);
|
|
width: calc(
|
|
100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap)
|
|
);
|
|
max-width: calc(
|
|
100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap)
|
|
);
|
|
}
|
|
|
|
#app[data-sidebar-state="expanded"] {
|
|
margin-left: calc(
|
|
var(--sidebar-width-expanded) + var(--sidebar-content-gap)
|
|
);
|
|
width: calc(
|
|
100vw - var(--sidebar-width-expanded) - var(--sidebar-content-gap)
|
|
);
|
|
max-width: calc(
|
|
100vw - var(--sidebar-width-expanded) - var(--sidebar-content-gap)
|
|
);
|
|
}
|
|
|
|
body.sidebar-collapsed,
|
|
#sidebar.sidebar-collapsed,
|
|
#app.sidebar-collapsed {
|
|
--sidebar-width: var(--sidebar-width-collapsed);
|
|
}
|
|
|
|
body.sidebar-expanded,
|
|
#sidebar.sidebar-expanded,
|
|
#app.sidebar-expanded {
|
|
--sidebar-width: var(--sidebar-width-expanded);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-nav-link,
|
|
#sidebar.sidebar-collapsed .sidebar-nav-link {
|
|
justify-content: center;
|
|
width: var(--sidebar-control-size);
|
|
padding: 0;
|
|
margin-inline: auto;
|
|
border-radius: var(--radius-full);
|
|
--sidebar-nav-translate-x: 0;
|
|
--sidebar-nav-link-highlight-scale: 1;
|
|
}
|
|
|
|
body.sidebar-expanded #sidebar .sidebar-nav-link,
|
|
#sidebar.sidebar-expanded .sidebar-nav-link {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-text,
|
|
#sidebar.sidebar-collapsed .sidebar-text {
|
|
display: none;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar__inner,
|
|
#sidebar.sidebar-collapsed .sidebar__inner {
|
|
padding-inline: var(--space-2xs);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-panel,
|
|
#sidebar.sidebar-collapsed .sidebar-panel {
|
|
padding-inline: calc(var(--space-3xs) * 3);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-panel__header,
|
|
#sidebar.sidebar-collapsed .sidebar-panel__header {
|
|
justify-content: center;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-collapse-toggle,
|
|
#sidebar.sidebar-collapsed .sidebar-collapse-toggle {
|
|
margin-inline: auto;
|
|
}
|
|
|
|
#sidebar .sidebar-toggle-icon--rotated {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-toggle-icon--rotated,
|
|
#sidebar.sidebar-collapsed .sidebar-toggle-icon--rotated {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-dropup-trigger,
|
|
#sidebar.sidebar-collapsed .sidebar-dropup-trigger {
|
|
justify-content: center;
|
|
width: var(--sidebar-control-size);
|
|
height: var(--sidebar-control-size);
|
|
padding: 0;
|
|
margin-inline: auto;
|
|
border-radius: var(--radius-full);
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-dropup-trigger .sidebar-text,
|
|
#sidebar.sidebar-collapsed .sidebar-dropup-trigger .sidebar-text {
|
|
display: none;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-dropup-trigger__chevron {
|
|
display: none;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-dropup-trigger__glyph,
|
|
#sidebar.sidebar-collapsed .sidebar-dropup-trigger__glyph {
|
|
margin: 0;
|
|
}
|
|
|
|
body.sidebar-collapsed #sidebar .sidebar-nav-link:hover,
|
|
#sidebar.sidebar-collapsed .sidebar-nav-link:hover,
|
|
body.sidebar-collapsed #sidebar .sidebar-nav-link:focus-visible,
|
|
#sidebar.sidebar-collapsed .sidebar-nav-link:focus-visible {
|
|
--sidebar-nav-translate-x: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes card-motion-enter {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(var(--motion-card-enter-translate));
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes video-thumbnail-fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes interface-fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(var(--motion-fade-in-translate));
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
@media (max-width: theme('screens.compact')) {
|
|
.u-max-400-flex-wrap {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.u-max-400-gap-y-sm {
|
|
row-gap: var(--space-sm);
|
|
}
|
|
|
|
.u-max-400-gap-y-xs {
|
|
row-gap: var(--space-xs);
|
|
}
|
|
|
|
.u-max-400-w-full {
|
|
width: 100%;
|
|
}
|
|
|
|
.u-max-400-justify-between {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.u-max-400-ml-0 {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.u-max-400-px-sm {
|
|
padding-left: var(--space-sm);
|
|
padding-right: var(--space-sm);
|
|
}
|
|
|
|
.u-max-400-square-9 {
|
|
height: var(--space-xl-compact);
|
|
width: var(--space-xl-compact);
|
|
min-height: var(--space-xl-compact);
|
|
min-width: var(--space-xl-compact);
|
|
}
|
|
}
|
|
}
|
|
|
|
@media (max-width: theme('screens.sm')) {
|
|
.bv-grid-video {
|
|
gap: var(--space-md);
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
:root {
|
|
--motion-duration-fast: 0s;
|
|
--motion-duration-base: 0s;
|
|
--motion-duration-slow: 0s;
|
|
--modal-motion-duration: 0s;
|
|
}
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-delay: 0s !important;
|
|
animation-duration: 0s !important;
|
|
animation-iteration-count: 1 !important;
|
|
animation-timing-function: linear !important;
|
|
transition-delay: 0s !important;
|
|
transition-duration: 0s !important;
|
|
transition-timing-function: linear !important;
|
|
}
|
|
|
|
.btn,
|
|
.btn-ghost,
|
|
.card,
|
|
.card[data-motion="enter"],
|
|
.fade-in,
|
|
.icon-button,
|
|
.menu__item,
|
|
.modal-nav,
|
|
.popover__panel,
|
|
.progress-bar-fill,
|
|
.notification-banner,
|
|
.notification-portal,
|
|
.torrent-toast,
|
|
.status-banner .status-spinner,
|
|
.status-spinner--inline,
|
|
.video-modal__panel,
|
|
.watch-history-card,
|
|
.watch-history-card__creatorAvatar,
|
|
.watch-history-card__creatorName,
|
|
.watch-history-card__action,
|
|
.watch-history-card__title,
|
|
#app,
|
|
#playerModal .player-modal__content,
|
|
#sidebar,
|
|
#sidebarOverlay,
|
|
.sidebar-collapse-toggle,
|
|
.sidebar-collapse-toggle__icon,
|
|
.sidebar-dropup-panel,
|
|
.sidebar-dropup-trigger,
|
|
.sidebar-dropup-trigger__chevron,
|
|
.sidebar-nav,
|
|
.sidebar-nav-link,
|
|
.sidebar-loading-indicator,
|
|
.sidebar-loading-wrapper {
|
|
transition-property: none !important;
|
|
}
|
|
|
|
.popover__panel {
|
|
transform: none !important;
|
|
}
|
|
|
|
.popover__panel[data-state="open"] {
|
|
opacity: 1;
|
|
}
|
|
|
|
.popover__panel[data-state="closed"] {
|
|
opacity: 0;
|
|
}
|
|
|
|
.card[data-motion="enter"],
|
|
.fade-in {
|
|
opacity: 1;
|
|
animation: none !important;
|
|
}
|
|
|
|
[data-video-thumbnail][data-thumbnail-loaded="true"] {
|
|
animation: none !important;
|
|
opacity: 1;
|
|
}
|
|
|
|
.notification-banner,
|
|
.torrent-toast,
|
|
.status-banner .status-spinner,
|
|
.status-spinner--inline {
|
|
animation: none !important;
|
|
}
|
|
|
|
.notification-portal {
|
|
transform: none !important;
|
|
opacity: 1 !important;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.ui-grid-row {
|
|
border-bottom: var(--border-width-hairline)
|
|
solid var(--color-border-subtle, var(--color-border));
|
|
}
|
|
|
|
.status-line {
|
|
@apply my-1 text-sm leading-snug text-text;
|
|
}
|
|
|
|
/* Status log containers reserve space for dynamic messages. */
|
|
.status-log {
|
|
@apply min-h-status-log;
|
|
}
|
|
|
|
.status-line.error {
|
|
color: var(--color-critical-strong);
|
|
}
|
|
|
|
.status-line.success {
|
|
color: var(--color-blog-green-500);
|
|
}
|
|
|
|
.status-line.warn {
|
|
color: var(--color-warning-strong);
|
|
}
|
|
|
|
/* Blog layout root scaffolding */
|
|
.blog-html {
|
|
font-size: var(--blog-font-size-root);
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-html {
|
|
font-size: var(--font-size-lg);
|
|
}
|
|
}
|
|
|
|
.blog-body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.dark .blog-body {
|
|
background-color: var(--color-text-strong);
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root {
|
|
box-sizing: border-box;
|
|
font-family: var(--font-family-sans);
|
|
color: var(--color-text-strong);
|
|
}
|
|
|
|
.dark .blog-app-root {
|
|
background-color: var(--color-text-strong);
|
|
color: var(--color-blog-gray-170);
|
|
}
|
|
|
|
.blog-widget-shadow-host {
|
|
z-index: 90000;
|
|
}
|
|
|
|
.blog-widget-overflow-fix {
|
|
overflow: auto;
|
|
height: 100%;
|
|
}
|
|
|
|
.blog-app-root a,
|
|
.blog-app-root a:visited {
|
|
color: var(--color-text-strong);
|
|
}
|
|
|
|
.dark .blog-app-root a,
|
|
.dark .blog-app-root a:visited {
|
|
color: var(--color-blog-neutral-100);
|
|
}
|
|
|
|
.blog-app-root ol,
|
|
.blog-app-root ul {
|
|
padding-left: var(--space-md);
|
|
margin: 0;
|
|
}
|
|
|
|
.blog-app-root ol li,
|
|
.blog-app-root ul li {
|
|
margin-bottom: var(--space-md);
|
|
}
|
|
|
|
.blog-app-root blockquote {
|
|
margin: 0;
|
|
padding-left: var(--space-md);
|
|
border-left: var(--space-xs) solid var(--color-blog-gray-170);
|
|
}
|
|
|
|
.blog-app-root code {
|
|
font-size: var(--blog-font-size-body);
|
|
background-color: var(--color-blog-neutral-120);
|
|
}
|
|
|
|
.blog-app-root pre code {
|
|
overflow: scroll;
|
|
display: block;
|
|
padding: var(--space-md) var(--space-xs);
|
|
}
|
|
|
|
.blog-app-root .unfinished-setup {
|
|
width: var(--blog-layout-fluid-width);
|
|
margin: 0 auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.blog-app-root .header.home h1 {
|
|
font-size: var(--blog-font-size-display);
|
|
}
|
|
|
|
.blog-app-root .header .external-link {
|
|
text-align: right;
|
|
margin-top: calc(var(--space-md) * -1);
|
|
font-size: var(--blog-font-size-meta);
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root .header .external-link {
|
|
margin-bottom: var(--space-md);
|
|
margin-right: var(--blog-space-inline-lg);
|
|
}
|
|
}
|
|
|
|
.blog-app-root .header .external-link a {
|
|
text-decoration: underline;
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root .header .picture-container {
|
|
position: relative;
|
|
display: inline-block;
|
|
width: var(--blog-avatar-size);
|
|
height: var(--blog-avatar-size);
|
|
overflow: hidden;
|
|
border-radius: 50%;
|
|
margin-bottom: calc(var(--space-2xs) * -1);
|
|
}
|
|
|
|
.blog-app-root .header .picture-container img {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
transform: translate(-50%, -50%);
|
|
clip-path: circle(50%);
|
|
}
|
|
|
|
.blog-app-root .header.note .picture-container {
|
|
width: var(--blog-avatar-size-compact);
|
|
height: var(--blog-avatar-size-compact);
|
|
margin-bottom: calc(var(--blog-space-snug) * -1);
|
|
}
|
|
|
|
.blog-app-root .header a {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.blog-app-root .header a span {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.dark .blog-app-root .header a:visited {
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.dark .blog-app-root .header .external-link,
|
|
.dark .blog-app-root .header .external-link a {
|
|
color: var(--color-blog-gray-440);
|
|
}
|
|
|
|
.blog-app-root .topic-wrapper {
|
|
margin-bottom: var(--space-lg);
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
row-gap: var(--space-md);
|
|
}
|
|
|
|
.blog-app-root .topic-wrapper div {
|
|
display: inline-grid;
|
|
margin-right: var(--space-md);
|
|
}
|
|
|
|
.blog-app-root .topic-wrapper div a {
|
|
padding: var(--space-xs-snug) var(--space-md);
|
|
background-color: var(--color-blog-gray-190);
|
|
text-decoration: none;
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.blog-app-root .topic-wrapper div a:hover {
|
|
background-color: var(--color-blog-gray-170);
|
|
}
|
|
|
|
.blog-app-root .topic-wrapper div a.selected {
|
|
background-color: var(--color-text-strong);
|
|
color: var(--color-blog-neutral-100);
|
|
}
|
|
|
|
.dark .blog-app-root .topic-wrapper div a {
|
|
background-color: var(--color-blog-gray-440);
|
|
color: var(--color-text-strong);
|
|
}
|
|
|
|
.dark .blog-app-root .topic-wrapper div a:hover {
|
|
background-color: var(--color-blog-neutral-100);
|
|
}
|
|
|
|
.dark .blog-app-root .topic-wrapper div a.selected {
|
|
background-color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root .externalLink {
|
|
display: block;
|
|
text-align: right;
|
|
margin-top: calc(var(--space-md) * -1);
|
|
font-size: 0.8em;
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root .externalLink a {
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root .about {
|
|
margin-bottom: var(--space-xl);
|
|
padding-bottom: var(--space-md);
|
|
border-bottom: var(--space-xs) solid var(--color-blog-gray-170);
|
|
}
|
|
|
|
.dark .blog-app-root .about {
|
|
border-bottom: var(--space-xs) solid var(--color-card);
|
|
}
|
|
|
|
.blog-app-root .separator {
|
|
margin-bottom: var(--space-xl);
|
|
border-bottom: var(--space-xs) solid var(--color-blog-gray-170);
|
|
}
|
|
|
|
.dark .blog-app-root .separator {
|
|
border-bottom: var(--space-xs) solid var(--color-card);
|
|
}
|
|
|
|
.blog-app-root .top-notes {
|
|
display: flex;
|
|
color: var(--color-blog-gray-440);
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
gap: var(--space-xl);
|
|
width: 100%;
|
|
margin-bottom: var(--space-md);
|
|
padding-bottom: var(--space-xl);
|
|
border-bottom: var(--space-xs) solid var(--color-blog-neutral-100);
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root .top-notes {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root .top-notes {
|
|
padding-bottom: 0;
|
|
}
|
|
}
|
|
|
|
.blog-app-root .top-notes .note {
|
|
flex: 1 1 calc(50% - var(--space-xl));
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root .top-notes .note {
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
}
|
|
|
|
.blog-app-root .top-notes .note a {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.blog-app-root .top-notes .note img {
|
|
width: 100%;
|
|
height: var(--blog-top-note-image-height);
|
|
object-fit: cover;
|
|
margin-bottom: var(--space-xs);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.blog-app-root .top-notes .note .title {
|
|
display: block;
|
|
margin-bottom: var(--blog-space-snug);
|
|
font-size: var(--blog-font-size-title);
|
|
font-weight: bolder;
|
|
}
|
|
|
|
.blog-app-root .top-notes .note .summary {
|
|
margin-bottom: var(--blog-space-snug);
|
|
font-size: var(--blog-font-size-body);
|
|
}
|
|
|
|
.blog-app-root .top-notes .note .date {
|
|
font-size: var(--blog-font-size-meta);
|
|
color: var(--color-blog-gray-275);
|
|
}
|
|
|
|
.dark .blog-app-root .top-notes {
|
|
color: var(--color-blog-gray-220);
|
|
border-bottom: var(--space-xs) solid var(--color-card);
|
|
}
|
|
|
|
.blog-app-root .short-notes {
|
|
border-bottom: var(--space-xs) solid var(--color-blog-neutral-100);
|
|
padding-bottom: var(--space-md);
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
|
|
.blog-app-root .short-notes .blog-carousel__slide {
|
|
font-size: var(--blog-font-size-body);
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.blog-app-root .short-notes .blog-carousel__slide a {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.blog-app-root .short-notes .blog-carousel__slide .date {
|
|
font-size: var(--blog-font-size-meta);
|
|
color: var(--color-blog-gray-275);
|
|
margin-bottom: var(--blog-space-compact);
|
|
}
|
|
|
|
.dark .blog-app-root .short-notes {
|
|
border-bottom: var(--space-xs) solid var(--color-card);
|
|
}
|
|
|
|
.dark .blog-app-root .short-notes a {
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root .short-notes [data-carousel-control] {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.blog-app-root .listing-notes {
|
|
margin-top: var(--space-md);
|
|
color: var(--color-blog-gray-440);
|
|
}
|
|
|
|
.blog-app-root .listing-notes.short-feed-full li {
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
|
|
.blog-app-root .listing-notes.short-feed-full .summary {
|
|
color: var(--color-text-strong);
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul {
|
|
list-style-type: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li {
|
|
margin-bottom: var(--space-md);
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li h2 {
|
|
font-size: var(--blog-font-size-title);
|
|
margin-bottom: var(--space-xs);
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li h2 a {
|
|
display: block;
|
|
font-size: var(--blog-font-size-title);
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .summary {
|
|
margin-bottom: var(--blog-space-snug);
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .summary p {
|
|
margin: 0;
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .summary img {
|
|
display: block;
|
|
margin: var(--space-xl) auto;
|
|
max-width: 100%;
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .summary video {
|
|
width: 100%;
|
|
margin: var(--space-xl) auto;
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .summary audio {
|
|
width: 100%;
|
|
margin: var(--space-xl) auto;
|
|
}
|
|
|
|
.blog-app-root .listing-notes ul li .date {
|
|
font-size: var(--blog-font-size-meta);
|
|
color: var(--color-blog-gray-275);
|
|
}
|
|
|
|
.dark .blog-app-root .listing-notes {
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.dark .blog-app-root .listing-notes.short-feed-full .summary {
|
|
color: var(--color-white);
|
|
}
|
|
|
|
.blog-app-root h1 {
|
|
font-size: var(--font-size-2xl);
|
|
line-height: var(--blog-line-height-tight);
|
|
margin-top: 0;
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-app-root h1 {
|
|
font-size: var(--blog-font-size-h1-mobile);
|
|
}
|
|
}
|
|
|
|
.blog-app-root .note-wrapper {
|
|
position: relative;
|
|
margin-top: var(--space-xl);
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.blog-app-root .note-wrapper h1,
|
|
.blog-app-root .note-wrapper h2,
|
|
.blog-app-root .note-wrapper h3 {
|
|
margin-top: var(--blog-space-heading-stack);
|
|
margin-bottom: var(--blog-space-heading-gap);
|
|
}
|
|
|
|
.blog-app-root .note-wrapper h1:first-of-type {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.blog-app-root .note-wrapper .content {
|
|
margin-top: var(--space-lg);
|
|
}
|
|
|
|
.blog-app-root .note-wrapper p {
|
|
line-height: var(--blog-line-height-body);
|
|
margin-top: 0;
|
|
}
|
|
|
|
.blog-app-root .note-wrapper .date {
|
|
display: block;
|
|
margin-bottom: var(--space-xs);
|
|
font-size: var(--blog-font-size-meta);
|
|
color: var(--color-blog-gray-275);
|
|
}
|
|
|
|
.blog-app-root .note-wrapper img {
|
|
display: block;
|
|
margin: var(--space-xl) auto;
|
|
max-width: 100%;
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.blog-app-root .note-wrapper img.note-banner {
|
|
margin: var(--blog-space-media-stack-start) auto var(--blog-space-media-stack-end);
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.blog-app-root .note-wrapper video {
|
|
width: 100%;
|
|
margin: var(--space-xl) auto;
|
|
}
|
|
|
|
.blog-app-root .note-wrapper audio {
|
|
width: 100%;
|
|
margin: var(--space-xl) auto;
|
|
}
|
|
|
|
.blog-app-root .footer {
|
|
margin-top: var(--blog-space-stack-xxl);
|
|
padding-top: var(--space-xl);
|
|
margin-bottom: var(--space-xl);
|
|
border-top: var(--space-xs) solid var(--color-blog-gray-170);
|
|
font-size: var(--blog-font-size-meta);
|
|
text-align: center;
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.blog-app-root .footer a {
|
|
color: var(--color-blog-gray-220);
|
|
}
|
|
|
|
.dark .blog-app-root .footer {
|
|
border-top: var(--space-xs) solid var(--color-card);
|
|
color: var(--color-blog-gray-440);
|
|
}
|
|
|
|
.dark .blog-app-root .footer a,
|
|
.dark .blog-app-root .footer a:visited {
|
|
color: var(--color-blog-gray-440);
|
|
}
|
|
|
|
.blog-app-root zap-threads {
|
|
font-size: var(--ztr-font-size);
|
|
}
|
|
|
|
.blog-app-root #ztr-content img {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.blog-app-root #ztr-content {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.blog-app-root #ztr-root {
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-family: var(--ztr-font);
|
|
font-size: var(--ztr-font-size);
|
|
color: var(--ztr-text-color);
|
|
border: var(--border-width-hairline) solid transparent;
|
|
word-wrap: break-word;
|
|
margin-top: 4em;
|
|
line-height: 1.2em;
|
|
}
|
|
|
|
.blog-app-root #ztr-subtitle {
|
|
font-size: 1.2em;
|
|
color: var(--color-blog-gray-500);
|
|
}
|
|
|
|
.blog-app-root #ztr-root a {
|
|
color: var(--ztr-link-color);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment {
|
|
position: relative;
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: var(--ztr-background-color);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment:first-child {
|
|
border-top-left-radius: 0.3em;
|
|
border-top-right-radius: 0.3em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment:last-child {
|
|
border-bottom-left-radius: 0.3em;
|
|
border-bottom-right-radius: 0.3em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-body {
|
|
padding: 1em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-wrapper {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-picture {
|
|
width: 3.5em;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-info-items {
|
|
display: flex;
|
|
align-items: center;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-info-items li {
|
|
display: inline-block;
|
|
cursor: default;
|
|
padding-right: 0.5em;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-info-items li a {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-author a {
|
|
font-size: 1.2em;
|
|
padding-right: 0.2em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-dots {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-separator {
|
|
width: 0.5em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-info-picture img {
|
|
width: 2em;
|
|
height: 2em;
|
|
border-radius: 50%;
|
|
padding: 0.5em;
|
|
position: relative;
|
|
display: block;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text,
|
|
.blog-app-root #ztr-content {
|
|
margin-bottom: 0.75em;
|
|
padding: 0 0.8em 0 3.5em;
|
|
line-height: 1.5em;
|
|
line-break: loose;
|
|
word-break: break-word;
|
|
overflow: hidden;
|
|
max-width: var(--layout-blog-max-width);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text p {
|
|
margin: 0 0 0.5em 0;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text code {
|
|
font-size: 1.1em;
|
|
margin: 0 0.2em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text pre,
|
|
.blog-app-root .ztr-info-pane pre {
|
|
white-space: pre-wrap;
|
|
white-space: -moz-pre-wrap;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text img {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text .warning {
|
|
margin-top: 0;
|
|
font-size: 0.8em;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-text .warning svg {
|
|
height: 1.2em;
|
|
fill: var(--color-blog-amber-500);
|
|
padding-right: 0.7em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-replies {
|
|
margin-left: 2em;
|
|
}
|
|
|
|
.blog-app-root .highlight p {
|
|
background: var(--color-blog-amber-400);
|
|
color: var(--color-blog-gray-800);
|
|
display: inline;
|
|
padding: 0.2em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-expand {
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-expand span {
|
|
margin: 1em 0 1em 0.35em;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-actions,
|
|
.blog-app-root .ztr-comment-expand {
|
|
display: flex;
|
|
align-items: center;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0 0 0 3.5em;
|
|
font-weight: 600;
|
|
user-select: none;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-actions li {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
text-align: center;
|
|
padding: 0 2em 0 0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-actions li span {
|
|
padding: 0.25em 0.25em 0 0.25em;
|
|
color: var(--ztr-icon-color);
|
|
}
|
|
|
|
.blog-app-root #ztr-root svg {
|
|
fill: var(--ztr-icon-color);
|
|
width: 1.1em;
|
|
height: 1.1em;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-reply:hover svg {
|
|
fill: var(--color-blog-purple-accent);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-reply:hover span {
|
|
color: var(--color-blog-purple-accent);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-zap:hover svg {
|
|
fill: var(--color-blog-amber-500);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-zap:hover span {
|
|
color: var(--color-blog-amber-500);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-like:hover svg {
|
|
fill: var(--color-blog-orange-600);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-like:hover span {
|
|
color: var(--color-blog-orange-600);
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-form {
|
|
padding: 0 0.5em 0 3.5em;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-form textarea {
|
|
font-family: var(--ztr-font);
|
|
font-size: 1.1em;
|
|
line-height: 1.4;
|
|
color: var(--color-blog-gray-800);
|
|
background-color: var(--color-blog-neutral-50);
|
|
border: var(--border-width-hairline) solid var(--color-blog-gray-220);
|
|
outline: none;
|
|
width: calc(100% - 1.5em);
|
|
padding: 0.7em;
|
|
margin: 0.5em 0;
|
|
height: 4em;
|
|
border-radius: 0.2em;
|
|
min-height: 4em;
|
|
resize: vertical;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-form:disabled {
|
|
opacity: 65%;
|
|
user-select: none;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-controls span {
|
|
font-weight: bold;
|
|
font-size: 0.85em;
|
|
margin-right: 1em;
|
|
user-select: none;
|
|
cursor: default;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-error {
|
|
color: var(--color-blog-error);
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-controls button {
|
|
font-family: var(--ztr-font);
|
|
appearance: none;
|
|
border: none;
|
|
padding: 0.5em 1em;
|
|
border-radius: 0.2em;
|
|
font-size: 0.85em;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-login-button {
|
|
color: var(--color-white);
|
|
background-color: var(--ztr-login-button-color);
|
|
margin-left: 1em;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-button {
|
|
color: var(--ztr-text-color);
|
|
display: flex;
|
|
align-items: center;
|
|
background-color: var(--ztr-background-color);
|
|
}
|
|
|
|
.blog-app-root .ztr-info-pane {
|
|
padding: 0 0.5em 1em 3.5em;
|
|
}
|
|
|
|
.blog-app-root .ztr-info-pane pre {
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
.blog-app-root .ztr-spinner {
|
|
width: 1.2em;
|
|
height: 1.2em;
|
|
padding: 0.9em;
|
|
animation: ztr-rotate 4s linear infinite;
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-button:disabled {
|
|
opacity: 65%;
|
|
pointer-events: none;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.blog-app-root .ztr-spinner .path {
|
|
stroke: var(--ztr-text-color);
|
|
stroke-linecap: round;
|
|
animation: ztr-dash 1.5s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes ztr-rotate {
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@keyframes ztr-dash {
|
|
0% {
|
|
stroke-dasharray: 1, 150;
|
|
stroke-dashoffset: 0;
|
|
}
|
|
|
|
50% {
|
|
stroke-dasharray: 90, 150;
|
|
stroke-dashoffset: -35;
|
|
}
|
|
|
|
100% {
|
|
stroke-dasharray: 90, 150;
|
|
stroke-dashoffset: -124;
|
|
}
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-new .ztr-reply-form {
|
|
margin: 0.5em 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-new .ztr-comment-body {
|
|
padding: 0;
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-new .ztr-comment-actions {
|
|
font-size: 1.1em;
|
|
padding: 0;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
.blog-app-root .ztr-spinner .path {
|
|
stroke: var(--ztr-text-color, var(--color-blog-gray-200));
|
|
}
|
|
|
|
.blog-app-root .ztr-comment,
|
|
.blog-app-root .ztr-reply-button {
|
|
background-color: var(--ztr-background-color, rgba(255, 255, 255, 0.06));
|
|
}
|
|
|
|
.blog-app-root .ztr-reply-login-button {
|
|
color: var(--color-blog-gray-800);
|
|
background-color: var(--ztr-login-button-color, var(--color-blog-gray-200));
|
|
}
|
|
|
|
.blog-app-root #ztr-root svg {
|
|
fill: var(--ztr-icon-color, var(--color-blog-gray-200));
|
|
}
|
|
|
|
.blog-app-root ul.ztr-comment-actions li span {
|
|
color: var(--ztr-icon-color);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-reply:hover svg {
|
|
fill: var(--color-blog-purple-muted);
|
|
}
|
|
|
|
.blog-app-root .ztr-comment-action-reply:hover span {
|
|
color: var(--color-blog-purple-muted);
|
|
}
|
|
}
|
|
|
|
.blog-app-root .loader-container.svelte-181fgen {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.blog-app-root .loader.svelte-181fgen {
|
|
display: inline-block;
|
|
width: var(--blog-loader-dimension-lg);
|
|
height: var(--blog-loader-dimension-lg);
|
|
opacity: 0;
|
|
animation:
|
|
svelte-181fgen-fade-in 0.5s 0.4s forwards,
|
|
svelte-181fgen-loader-animation 2s linear infinite 0.4s;
|
|
}
|
|
|
|
.blog-app-root .loader.svelte-181fgen:after {
|
|
content: " ";
|
|
display: block;
|
|
width: var(--blog-loader-dimension-md);
|
|
height: var(--blog-loader-dimension-md);
|
|
margin: var(--space-xs);
|
|
border-radius: 50%;
|
|
border: var(--blog-loader-border-width) solid var(--color-blog-gray-275);
|
|
border-color: var(--color-blog-gray-275) transparent var(--color-blog-gray-275) transparent;
|
|
animation: svelte-181fgen-loader-animation 2s linear infinite;
|
|
}
|
|
|
|
@keyframes svelte-181fgen-loader-animation {
|
|
0% {
|
|
transform: rotate(0);
|
|
}
|
|
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@keyframes svelte-181fgen-fade-in {
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.dark .blog-app-root .loader.svelte-181fgen:after {
|
|
border: var(--blog-loader-border-width) solid var(--color-card);
|
|
border-color: var(--color-card) transparent var(--color-card) transparent;
|
|
}
|
|
|
|
.blog-body #theme-toggle.svelte-bxrhh.svelte-bxrhh {
|
|
display: none;
|
|
}
|
|
|
|
.blog-body #theme-toggle.svelte-bxrhh + label.svelte-bxrhh {
|
|
display: inline-block;
|
|
cursor: pointer;
|
|
height: var(--space-md);
|
|
width: var(--space-md);
|
|
position: absolute;
|
|
top: var(--space-md);
|
|
right: var(--space-2xl);
|
|
border-radius: var(--radius-toggle-thumb);
|
|
transition-duration: 0.3s;
|
|
content: "";
|
|
}
|
|
|
|
@media (max-width: theme('screens.md')) {
|
|
.blog-body #theme-toggle.svelte-bxrhh + label.svelte-bxrhh {
|
|
right: var(--space-md);
|
|
}
|
|
}
|
|
|
|
.blog-body #theme-toggle.svelte-bxrhh:not(:checked) + label.svelte-bxrhh {
|
|
background-color: var(--color-blog-gray-180);
|
|
}
|
|
|
|
.blog-body #theme-toggle.svelte-bxrhh:checked + label.svelte-bxrhh {
|
|
background-color: transparent;
|
|
box-shadow: var(--blog-theme-toggle-shadow);
|
|
}
|
|
|
|
.blog-app-root .ztr-nowrap {
|
|
white-space: nowrap;
|
|
}
|
|
}
|