Files
sundynix-site/web/src/index.css
T
Blizzard 6334dccf4a feat(admin): 侧边栏布局 + 仪表盘 + 全局隐藏滚动条
- 全局隐藏滚动条(web + admin),保留正常滚动
- admin 顶栏改侧边栏导航(仪表盘/文章),响应式移动端抽屉
- 路由重构:首页→仪表盘,文章列表移到 /posts
- 仪表盘页:文章总数/已发布/草稿统计卡片 + 最近更新列表
- 后端 GET /api/admin/stats

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 17:35:05 +08:00

191 lines
4.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@import "tailwindcss";
@plugin "@tailwindcss/typography";
@custom-variant dark (&:is(.dark *));
/* ── 设计 token(品牌改版 v2:跟随 logo)────────────────
霓虹数据流 logo:青 #34E5E0 → 蓝 #3B82F6 → 紫 #A855F7
强调色取青蓝段,紫色只在 logo 与品牌渐变里出现;
中性色向冷蓝偏移,终端窗为深岩蓝底。 */
:root {
--ground: #f5f7f9;
--surface: #ffffff;
--ink: #151c24;
--ink-2: #526069;
--ink-3: #8595a0;
--hairline: #e0e7ec;
--hairline-strong: #c6d2da;
--accent: #0284c7;
--accent-ink: #075985;
--accent-soft: #e0f2fe;
--code-bg: #ebf1f5;
--term-bg: #0e1620;
--term-ink: #c9e4f5;
--brand-g1: #0891b2;
--brand-g2: #2563eb;
--brand-g3: #9333ea;
}
.dark {
--ground: #0b1117;
--surface: #111925;
--ink: #e6edf3;
--ink-2: #93a6b4;
--ink-3: #62737f;
--hairline: #1f2c38;
--hairline-strong: #32434f;
--accent: #38bdf8;
--accent-ink: #7dd3fc;
--accent-soft: #0b3049;
--code-bg: #14202b;
--term-bg: #0a121b;
--term-ink: #bfe3f7;
--brand-g1: #22d3ee;
--brand-g2: #60a5fa;
--brand-g3: #c084fc;
}
@theme inline {
--color-ground: var(--ground);
--color-surface: var(--surface);
--color-ink: var(--ink);
--color-ink-2: var(--ink-2);
--color-ink-3: var(--ink-3);
--color-hairline: var(--hairline);
--color-hairline-strong: var(--hairline-strong);
--color-accent: var(--accent);
--color-accent-ink: var(--accent-ink);
--color-accent-soft: var(--accent-soft);
--color-code: var(--code-bg);
--color-term: var(--term-bg);
--color-term-ink: var(--term-ink);
--font-sans: -apple-system, "PingFang SC", "Hiragino Sans GB",
"Microsoft YaHei", "Noto Sans SC", sans-serif;
--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas,
monospace;
}
html {
background: var(--ground);
scroll-behavior: smooth;
}
body {
@apply bg-ground text-ink font-sans antialiased;
font-size: 16px;
line-height: 1.75;
}
::selection {
background: var(--accent-soft);
color: var(--accent-ink);
}
/* 全局隐藏滚动条(保留滚动功能) */
* {
scrollbar-width: none;
-ms-overflow-style: none;
}
*::-webkit-scrollbar {
width: 0;
height: 0;
display: none;
}
/* 品牌渐变文字(logo 同源:青→蓝→紫),克制使用 */
.text-brand-gradient {
background: linear-gradient(
92deg,
var(--brand-g1),
var(--brand-g2) 55%,
var(--brand-g3)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* 文章排版 — prose 对齐设计 token */
.prose-site {
--tw-prose-body: var(--ink-2);
--tw-prose-headings: var(--ink);
--tw-prose-links: var(--accent-ink);
--tw-prose-bold: var(--ink);
--tw-prose-counters: var(--ink-3);
--tw-prose-bullets: var(--hairline-strong);
--tw-prose-hr: var(--hairline);
--tw-prose-quotes: var(--ink-2);
--tw-prose-quote-borders: var(--accent);
--tw-prose-code: var(--accent-ink);
--tw-prose-pre-bg: var(--term-bg);
--tw-prose-pre-code: var(--term-ink);
--tw-prose-th-borders: var(--hairline-strong);
--tw-prose-td-borders: var(--hairline);
--tw-prose-captions: var(--ink-3);
}
.prose-site :where(code):not(:where(pre code))::before,
.prose-site :where(code):not(:where(pre code))::after {
content: none;
}
.prose-site :where(code):not(:where(pre code)) {
background: var(--code-bg);
border-radius: 4px;
padding: 2px 6px;
font-weight: 500;
}
/* 终端光标 */
@keyframes caret-blink {
50% {
opacity: 0;
}
}
.caret-blink {
animation: caret-blink 1.1s steps(1) infinite;
}
/* 滚动进场(配合 Reveal 组件) */
.reveal {
opacity: 0;
transform: translateY(16px);
transition:
opacity 0.6s ease,
transform 0.6s ease;
}
.reveal-in {
opacity: 1;
transform: none;
}
/* 终端事件流:逐行浮现 */
@keyframes term-line-in {
from {
opacity: 0;
transform: translateY(6px);
}
to {
opacity: 1;
transform: none;
}
}
.term-line {
opacity: 0;
animation: term-line-in 0.45s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
.caret-blink,
.term-line {
animation: none;
}
.term-line {
opacity: 1;
}
.reveal {
opacity: 1;
transform: none;
transition: none;
}
}