mirror of
https://github.com/EDeev/tablo.git
synced 2026-10-07 20:49:31 +03:00
128 lines
5.2 KiB
CSS
128 lines
5.2 KiB
CSS
/* ═══ CSS-переменные ════════════════════════════════════════════════════════ */
|
||
:root,
|
||
[data-theme="light"] {
|
||
--green: #3D7A5F;
|
||
--mint: #E8F5EE;
|
||
--bg: #F9F9F8;
|
||
--surface: #FFFFFF;
|
||
--surface2: #F4F4F3;
|
||
--ink: #1A1A1A;
|
||
--muted: #6B7280;
|
||
--border: #E5E7EB;
|
||
--mono: 'JetBrains Mono', monospace;
|
||
color-scheme: light;
|
||
}
|
||
|
||
[data-theme="dark"] {
|
||
--green: #4A9B77;
|
||
--mint: #1A2E25;
|
||
--bg: #111110;
|
||
--surface: #1C1C1B;
|
||
--surface2: #242423;
|
||
--ink: #EDEDED;
|
||
--muted: #71717A;
|
||
--border: #2E2E2C;
|
||
--mono: 'JetBrains Mono', monospace;
|
||
color-scheme: dark;
|
||
}
|
||
|
||
/* ═══ Сброс ══════════════════════════════════════════════════════════════════ */
|
||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body {
|
||
font-family: 'Inter', sans-serif;
|
||
background: var(--bg);
|
||
color: var(--ink);
|
||
font-size: 14px;
|
||
line-height: 1.5;
|
||
min-height: 100vh;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: stretch;
|
||
}
|
||
a { color: inherit; text-decoration: none; }
|
||
button { font-family: inherit; cursor: pointer; }
|
||
|
||
/* ═══ Страница ════════════════════════════════════════════════════════════════ */
|
||
.t-page { max-width: 1080px; width: 100%; margin: 0 auto; padding: 28px 24px; flex: 1; }
|
||
|
||
/* ═══ Заголовок раздела ═══════════════════════════════════════════════════════ */
|
||
.t-section-title {
|
||
font-size: 15px;
|
||
font-weight: 700;
|
||
letter-spacing: -.01em;
|
||
margin-bottom: 14px;
|
||
margin-top: 32px;
|
||
}
|
||
.t-section-title-inline { margin: 0; }
|
||
|
||
/* ═══ Шапка страницы (PH) ════════════════════════════════════════════════════ */
|
||
.t-ph { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; flex-wrap: wrap; }
|
||
.t-ph-title { font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
|
||
.t-ph-week { font-size: 12px; color: var(--muted); font-family: var(--mono); }
|
||
.t-ph-right { margin-left: auto; display: flex; gap: 8px; }
|
||
.t-ph-name-row { display: flex; align-items: center; gap: 8px; }
|
||
|
||
/* ═══ Утилиты ════════════════════════════════════════════════════════════════ */
|
||
.min-w-0 { min-width: 0; }
|
||
.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||
.text-muted { color: var(--muted); }
|
||
.text-green { color: var(--green); }
|
||
.t-link { color: var(--green); text-decoration: none; }
|
||
.t-link:hover { text-decoration: underline; }
|
||
.mono { font-family: var(--mono); }
|
||
.fw-bold { font-weight: 700; }
|
||
.fw-semi { font-weight: 600; }
|
||
.fs-small { font-size: 11.5px; }
|
||
.hidden { display: none !important; }
|
||
.t-muted { color: var(--muted); font-size: 13px; margin-left: 6px; }
|
||
|
||
/* Layout-помощники */
|
||
.row-center { display: flex; align-items: center; }
|
||
.row-gap-8 { display: flex; align-items: center; gap: 8px; }
|
||
.row-gap-6 { display: flex; align-items: center; gap: 6px; }
|
||
.row-wrap { display: flex; flex-wrap: wrap; gap: 4px; }
|
||
.col-gap-6 { display: flex; flex-direction: column; gap: 6px; }
|
||
.ml-auto { margin-left: auto; }
|
||
|
||
/* ═══ Empty state ════════════════════════════════════════════════════════════ */
|
||
.t-empty {
|
||
text-align: center;
|
||
padding: 64px 0;
|
||
color: var(--muted);
|
||
}
|
||
.t-empty-icon { font-size: 40px; margin-bottom: 14px; }
|
||
.t-empty p { font-size: 13px; margin-bottom: 14px; }
|
||
|
||
/* ═══ Разделитель ════════════════════════════════════════════════════════════ */
|
||
.t-divider { border: none; border-top: 1px solid var(--border); margin: 16px 0; }
|
||
|
||
/* ═══ Футер ══════════════════════════════════════════════════════════════════ */
|
||
.t-footer {
|
||
max-width: 1080px;
|
||
width: 100%;
|
||
margin: 40px auto 24px;
|
||
padding: 16px 24px;
|
||
border-top: 1px solid var(--border);
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
}
|
||
.t-footer-sep { opacity: .4; }
|
||
.t-footer-link { color: var(--muted); text-decoration: none; }
|
||
.t-footer-link:hover { color: var(--ink); }
|
||
.t-footer-brand {
|
||
font-weight: 800;
|
||
font-size: 13px;
|
||
letter-spacing: -.04em;
|
||
color: var(--ink);
|
||
display: flex;
|
||
align-items: center;
|
||
line-height: 1;
|
||
text-decoration: none;
|
||
}
|
||
.t-footer-brand .t-brand-lo {
|
||
font-size: 12px;
|
||
padding: 1px 4px 2px;
|
||
}
|