444 lines
12 KiB
SCSS
444 lines
12 KiB
SCSS
/* ═══════════════════════════════════════════════════════════════
|
|
TOKYO NIGHT STORM — info-board.win
|
|
Deep navy. Electric blue. Built for night owls and coders.
|
|
═══════════════════════════════════════════════════════════════ */
|
|
|
|
.d-header,
|
|
#main-outlet,
|
|
html body {
|
|
--tn-bg: #1a1b2e;
|
|
--tn-bg-deep: #13141f;
|
|
--tn-surface: #1f2033;
|
|
--tn-surface2: #252640;
|
|
--tn-border: #2a2d3e;
|
|
--tn-border2: #222336;
|
|
--tn-fg: #c0caf5;
|
|
--tn-fg-dim: #787c99;
|
|
--tn-fg-muted: #565f89;
|
|
--tn-blue: #7aa2f7;
|
|
--tn-blue-dim: rgba(122,162,247,0.12);
|
|
--tn-violet: #bb9af7;
|
|
--tn-violet-dim: rgba(187,154,247,0.1);
|
|
--tn-cyan: #7dcfff;
|
|
--tn-green: #9ece6a;
|
|
--tn-gold: #e0af68;
|
|
--tn-rose: #f7768e;
|
|
--tn-orange: #ff9e64;
|
|
--tn-radius: 8px;
|
|
--tn-radius-lg: 13px;
|
|
--tn-t: 0.15s ease;
|
|
}
|
|
|
|
/* ── LAYOUT ── */
|
|
#main-outlet .wrap,
|
|
.d-header .wrap {
|
|
max-width: 1420px;
|
|
padding: 0 36px;
|
|
}
|
|
|
|
body {
|
|
font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;
|
|
font-size: 15px;
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* ── HEADER ── */
|
|
.d-header {
|
|
background: var(--tn-bg-deep) !important;
|
|
border-bottom: 1px solid var(--tn-border) !important;
|
|
box-shadow: 0 1px 0 rgba(122,162,247,0.1), 0 4px 20px rgba(0,0,0,0.5) !important;
|
|
height: 62px;
|
|
}
|
|
|
|
.d-header-icons .btn.icon,
|
|
.d-header .icons .btn.icon {
|
|
color: var(--tn-fg-muted) !important;
|
|
border-radius: var(--tn-radius);
|
|
transition: color var(--tn-t), background var(--tn-t);
|
|
}
|
|
|
|
.d-header-icons .btn.icon:hover,
|
|
.d-header .icons .btn.icon:hover {
|
|
color: var(--tn-blue) !important;
|
|
background: var(--tn-blue-dim) !important;
|
|
}
|
|
|
|
/* ── NAV ── */
|
|
.nav-pills .nav-item a {
|
|
color: var(--tn-fg-muted) !important;
|
|
border-radius: var(--tn-radius);
|
|
font-weight: 500;
|
|
font-size: 0.875rem;
|
|
padding: 6px 14px;
|
|
transition: all var(--tn-t);
|
|
}
|
|
|
|
.nav-pills .nav-item.active a,
|
|
.nav-pills .nav-item a:hover {
|
|
color: var(--tn-blue) !important;
|
|
background: var(--tn-blue-dim) !important;
|
|
}
|
|
|
|
/* ── SIDEBAR ── */
|
|
.sidebar-wrapper {
|
|
background: var(--tn-bg) !important;
|
|
border-right: 1px solid var(--tn-border2) !important;
|
|
}
|
|
|
|
.sidebar-sections .sidebar-section-header-wrapper button {
|
|
color: var(--tn-fg-muted) !important;
|
|
font-size: 0.67rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.sidebar-sections .sidebar-section-link-wrapper a {
|
|
color: var(--tn-fg-dim) !important;
|
|
border-radius: var(--tn-radius);
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
padding: 6px 10px;
|
|
border-left: 2px solid transparent;
|
|
transition: all var(--tn-t);
|
|
}
|
|
|
|
.sidebar-sections .sidebar-section-link-wrapper a:hover {
|
|
color: var(--tn-fg) !important;
|
|
background: var(--tn-surface2) !important;
|
|
}
|
|
|
|
.sidebar-sections .sidebar-section-link-wrapper a.active {
|
|
color: var(--tn-blue) !important;
|
|
background: var(--tn-blue-dim) !important;
|
|
border-left-color: var(--tn-blue);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* ── TOPIC LIST ── */
|
|
.topic-list thead th {
|
|
font-size: 0.7rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.09em;
|
|
color: var(--tn-fg-muted) !important;
|
|
border-bottom: 1px solid var(--tn-border) !important;
|
|
background: transparent !important;
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.topic-list tbody .topic-list-item {
|
|
border-bottom: 1px solid var(--tn-border2) !important;
|
|
transition: background var(--tn-t);
|
|
}
|
|
|
|
.topic-list tbody .topic-list-item:hover {
|
|
background: var(--tn-surface) !important;
|
|
}
|
|
|
|
.topic-list .main-link a.title,
|
|
.topic-list .link-top-line a.title {
|
|
color: var(--tn-fg) !important;
|
|
font-weight: 600;
|
|
font-size: 0.925rem;
|
|
line-height: 1.4;
|
|
transition: color var(--tn-t);
|
|
}
|
|
|
|
.topic-list .main-link a.title:hover,
|
|
.topic-list .link-top-line a.title:hover {
|
|
color: var(--tn-blue) !important;
|
|
}
|
|
|
|
.topic-list .link-bottom-line { margin-top: 5px; }
|
|
|
|
.topic-list .topic-excerpt {
|
|
color: var(--tn-fg-muted) !important;
|
|
font-size: 0.8rem;
|
|
line-height: 1.5;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.topic-list .num a,
|
|
.topic-list .num { color: var(--tn-fg-muted) !important; font-size: 0.82rem; }
|
|
|
|
/* ── CATEGORY LIST ── */
|
|
.category-list thead th {
|
|
font-size: 0.7rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.09em;
|
|
color: var(--tn-fg-muted) !important;
|
|
border-bottom: 1px solid var(--tn-border) !important;
|
|
background: transparent !important;
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.category-list tbody tr {
|
|
border-bottom: 1px solid var(--tn-border2) !important;
|
|
transition: background var(--tn-t);
|
|
}
|
|
|
|
.category-list tbody tr:hover { background: var(--tn-surface) !important; }
|
|
|
|
.category-list td.category .category-name a {
|
|
color: var(--tn-fg) !important;
|
|
font-weight: 700;
|
|
font-size: 0.975rem;
|
|
transition: color var(--tn-t);
|
|
}
|
|
|
|
.category-list td.category .category-name a:hover { color: var(--tn-blue) !important; }
|
|
|
|
.category-list td.category .category-description,
|
|
.category-list td.category p {
|
|
color: var(--tn-fg-muted) !important;
|
|
font-size: 0.82rem;
|
|
margin-top: 4px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* ── POST CONTENT ── */
|
|
.cooked {
|
|
font-size: 0.95rem;
|
|
line-height: 1.82;
|
|
color: var(--tn-fg) !important;
|
|
}
|
|
|
|
.cooked p { margin: 0 0 1em; }
|
|
|
|
.cooked a {
|
|
color: var(--tn-blue) !important;
|
|
text-decoration: none;
|
|
border-bottom: 1px solid rgba(122,162,247,0.3);
|
|
transition: border-color var(--tn-t);
|
|
}
|
|
|
|
.cooked a:hover { border-bottom-color: var(--tn-blue); }
|
|
|
|
.cooked h1, .cooked h2, .cooked h3,
|
|
.cooked h4, .cooked h5, .cooked h6 {
|
|
font-weight: 700;
|
|
line-height: 1.3;
|
|
margin: 1.75em 0 0.65em;
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid var(--tn-border);
|
|
}
|
|
|
|
.cooked h1 { font-size: 1.7rem; color: var(--tn-violet) !important; font-weight: 800; }
|
|
.cooked h2 { font-size: 1.35rem; color: var(--tn-blue) !important; }
|
|
.cooked h3 { font-size: 1.1rem; color: var(--tn-cyan) !important; }
|
|
.cooked h4 { font-size: 0.975rem; color: var(--tn-gold) !important; border-bottom: none; }
|
|
.cooked h5, .cooked h6 { font-size: 0.9rem; color: var(--tn-orange) !important; border-bottom: none; }
|
|
|
|
.cooked code:not(pre code) {
|
|
background: var(--tn-surface) !important;
|
|
color: var(--tn-violet) !important;
|
|
border: 1px solid var(--tn-border) !important;
|
|
border-radius: 5px;
|
|
font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;
|
|
font-size: 0.84em;
|
|
padding: 2px 7px;
|
|
}
|
|
|
|
.cooked pre {
|
|
background: var(--tn-bg-deep) !important;
|
|
border: 1px solid var(--tn-border) !important;
|
|
border-left: 4px solid var(--tn-blue) !important;
|
|
border-radius: 0 var(--tn-radius) var(--tn-radius) 0;
|
|
padding: 20px 22px;
|
|
margin: 18px 0;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.cooked pre code {
|
|
background: transparent !important;
|
|
border: none !important;
|
|
padding: 0 !important;
|
|
color: var(--tn-green) !important;
|
|
font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;
|
|
font-size: 0.875rem;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.cooked blockquote {
|
|
border-left: 4px solid var(--tn-violet) !important;
|
|
background: var(--tn-violet-dim) !important;
|
|
border-radius: 0 var(--tn-radius) var(--tn-radius) 0;
|
|
padding: 14px 20px;
|
|
margin: 18px 0;
|
|
color: var(--tn-fg) !important;
|
|
font-style: italic;
|
|
}
|
|
|
|
.cooked blockquote p { margin: 0; }
|
|
|
|
.cooked ul, .cooked ol { padding-left: 1.5em; margin: 0.75em 0; }
|
|
.cooked li { margin: 0.35em 0; }
|
|
|
|
.cooked table {
|
|
border-collapse: collapse;
|
|
width: 100%;
|
|
margin: 18px 0;
|
|
border: 1px solid var(--tn-border);
|
|
border-radius: var(--tn-radius);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cooked table th {
|
|
background: var(--tn-surface) !important;
|
|
color: var(--tn-blue) !important;
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
padding: 11px 16px;
|
|
border-bottom: 2px solid var(--tn-border) !important;
|
|
text-align: left;
|
|
}
|
|
|
|
.cooked table td {
|
|
padding: 10px 16px;
|
|
border-bottom: 1px solid var(--tn-border2) !important;
|
|
}
|
|
|
|
.cooked table tr:last-child td { border-bottom: none !important; }
|
|
.cooked table tr:nth-child(even) td { background: rgba(31,32,51,0.5) !important; }
|
|
|
|
.cooked hr { border: none; border-top: 1px solid var(--tn-border); margin: 24px 0; }
|
|
|
|
/* ── TOPIC TITLE ── */
|
|
.fancy-title, #topic-title h1, .title-wrapper h1 {
|
|
font-size: 1.55rem;
|
|
font-weight: 800;
|
|
line-height: 1.28;
|
|
letter-spacing: -0.02em;
|
|
color: var(--tn-fg) !important;
|
|
}
|
|
|
|
/* ── BUTTONS ── */
|
|
.btn { border-radius: var(--tn-radius) !important; font-weight: 600; font-size: 0.875rem; transition: all var(--tn-t); }
|
|
|
|
.btn-primary {
|
|
background: var(--tn-blue) !important;
|
|
color: var(--tn-bg-deep) !important;
|
|
border: none !important;
|
|
box-shadow: 0 2px 12px rgba(122,162,247,0.35);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: #8fb3ff !important;
|
|
box-shadow: 0 4px 20px rgba(122,162,247,0.5) !important;
|
|
}
|
|
|
|
.btn-default {
|
|
background: var(--tn-surface) !important;
|
|
border: 1px solid var(--tn-border) !important;
|
|
color: var(--tn-fg) !important;
|
|
}
|
|
|
|
.btn-default:hover {
|
|
background: var(--tn-surface2) !important;
|
|
border-color: var(--tn-blue) !important;
|
|
color: var(--tn-blue) !important;
|
|
}
|
|
|
|
/* ── POST ACTIONS ── */
|
|
.post-controls .actions .btn {
|
|
color: var(--tn-fg-muted) !important;
|
|
background: transparent !important;
|
|
border-radius: var(--tn-radius) !important;
|
|
padding: 5px 10px;
|
|
font-size: 0.82rem;
|
|
transition: all var(--tn-t);
|
|
}
|
|
|
|
.post-controls .actions .btn:hover {
|
|
color: var(--tn-blue) !important;
|
|
background: var(--tn-blue-dim) !important;
|
|
}
|
|
|
|
.post-controls .actions .btn.like-button.has-like .d-icon { color: var(--tn-rose) !important; }
|
|
|
|
/* ── TAGS ── */
|
|
.discourse-tag {
|
|
background: var(--tn-blue-dim) !important;
|
|
color: var(--tn-blue) !important;
|
|
border: 1px solid rgba(122,162,247,0.3) !important;
|
|
border-radius: 20px !important;
|
|
font-size: 0.72rem;
|
|
font-weight: 600;
|
|
padding: 3px 10px !important;
|
|
transition: all var(--tn-t);
|
|
}
|
|
|
|
.discourse-tag:hover { background: rgba(122,162,247,0.2) !important; }
|
|
|
|
/* ── BADGE ── */
|
|
.badge-notification {
|
|
background: var(--tn-blue) !important;
|
|
color: var(--tn-bg-deep) !important;
|
|
border-radius: 10px;
|
|
font-size: 0.68rem;
|
|
font-weight: 700;
|
|
padding: 2px 7px;
|
|
}
|
|
|
|
/* ── COMPOSER ── */
|
|
.d-editor-textarea-wrapper {
|
|
border-radius: var(--tn-radius) !important;
|
|
border-color: var(--tn-border) !important;
|
|
background: var(--tn-surface) !important;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.d-editor-input {
|
|
font-family: "JetBrains Mono", "Fira Code", "Consolas", monospace !important;
|
|
font-size: 0.9rem !important;
|
|
line-height: 1.65 !important;
|
|
}
|
|
|
|
.d-editor-preview { background: var(--tn-bg-deep) !important; border-left: 1px solid var(--tn-border) !important; }
|
|
|
|
/* ── INPUTS ── */
|
|
input[type="text"], input[type="email"],
|
|
input[type="password"], textarea, select {
|
|
border-radius: var(--tn-radius) !important;
|
|
padding: 8px 12px !important;
|
|
border-color: var(--tn-border) !important;
|
|
transition: border-color var(--tn-t), box-shadow var(--tn-t);
|
|
}
|
|
|
|
input:focus, textarea:focus, select:focus {
|
|
border-color: var(--tn-blue) !important;
|
|
box-shadow: 0 0 0 3px rgba(122,162,247,0.15) !important;
|
|
outline: none !important;
|
|
}
|
|
|
|
/* ── USER CARD ── */
|
|
.user-card, .group-card {
|
|
border-radius: var(--tn-radius-lg) !important;
|
|
box-shadow: 0 12px 40px rgba(0,0,0,0.6) !important;
|
|
border: 1px solid var(--tn-border) !important;
|
|
}
|
|
|
|
/* ── NOTIFICATIONS ── */
|
|
.notification.unread { background: rgba(122,162,247,0.06) !important; border-left: 2px solid var(--tn-blue) !important; }
|
|
|
|
/* ── SCROLLBAR ── */
|
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
::-webkit-scrollbar-track { background: var(--tn-bg-deep); }
|
|
::-webkit-scrollbar-thumb { background: var(--tn-border); border-radius: 3px; }
|
|
::-webkit-scrollbar-thumb:hover { background: var(--tn-fg-muted); }
|
|
|
|
/* ── RESPONSIVE ── */
|
|
@media (max-width: 1100px) { #main-outlet .wrap, .d-header .wrap { padding: 0 20px; } }
|
|
@media (max-width: 768px) {
|
|
body { font-size: 14px; }
|
|
.fancy-title, #topic-title h1 { font-size: 1.2rem; }
|
|
.cooked { font-size: 0.9rem; }
|
|
#main-outlet .wrap, .d-header .wrap { padding: 0 14px; }
|
|
}
|