Files
xiaobaifupan/app/frontend/shared/base.css
T

213 lines
3.0 KiB
CSS

/* Canonical CSS owner: base. Historical layers consolidated 2026-08-02. */
@property --score {
syntax: "<number>";
inherits: false;
initial-value: 0;
}
* {
box-sizing: border-box;
margin: 0px;
padding: 0px;
}
[hidden] {
display: none !important;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0px;
margin: -1px;
overflow: hidden;
clip: rect(0px, 0px, 0px, 0px);
white-space: nowrap;
border: 0px;
}
html {
width: 100%;
min-width: 320px;
min-height: 100%;
height: 100%;
margin: 0px;
background: var(--r2-bg);
color: var(--r2-ink);
font-family: inherit;
font-size: 13px;
}
body {
width: 100%;
min-width: 320px;
min-height: 100%;
height: 100%;
margin: 0px;
padding: 0 0 var(--statusbar-height);
overflow-x: hidden;
display: block;
background: var(--bg);
color: var(--ink);
font-family: inherit;
font-size: 13px;
letter-spacing: 0px;
}
a {
color: inherit;
text-decoration: none;
}
time {
font-variant-numeric: tabular-nums;
}
[tabindex]:focus-visible {
outline: var(--action) solid 2px;
outline-offset: 2px;
}
dialog {
margin: auto;
padding: 0px;
border: 1px solid var(--border);
border-radius: var(--radius-lg);
background: var(--surface);
color: var(--text);
box-shadow: var(--shadow-float);
}
dialog::backdrop {
background: var(--backdrop);
backdrop-filter: blur(2px);
}
@media (min-width: 768px) {
body {
overflow-y: hidden;
}
}
@media (max-width: 767px), (max-width: 1023px) and (max-height: 600px) {
html {
width: 100%;
min-width: var(--mobile-min-width);
}
body {
width: 100%;
min-width: var(--mobile-min-width);
padding-bottom: var(--mobile-nav-height);
}
}
::view-transition-old(root) {
animation: theme-fade-out var(--motion-medium) ease both;
}
::view-transition-new(root) {
animation: theme-fade-in var(--motion-medium) ease both;
}
:root[data-theme="dark"] dialog::backdrop {
background: var(--dialog-backdrop);
}
:root[data-theme="dark"] dialog kbd {
border-color: var(--border);
background: var(--surface-subtle);
color: var(--text-secondary);
}
@media (prefers-reduced-motion: reduce) {
*,
::after,
::before {
scroll-behavior: auto !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
::view-transition-new(root),
::view-transition-old(root) {
animation: auto ease 0s 1 normal none running none;
}
}
/* Mobile document contract: the page owns the only vertical scrollbar. */
@media (max-width: 767px) {
html {
width: 100%;
min-width: var(--mobile-min-width);
min-height: 100%;
height: auto;
overflow-x: hidden;
}
body.mobile-shell {
width: 100%;
min-width: var(--mobile-min-width);
min-height: 100%;
height: auto;
padding-bottom: var(--mobile-content-bottom);
overflow-y: auto;
overscroll-behavior-y: contain;
}
body.mobile-shell.mobile-command-open {
overflow: hidden;
}
}