agent-Specialization/website-design/exp/site-assets/site.css
JOJO 39a7a5fc6f chore(website): 归档官网文档内容与设计素材
- website-content/:官网 10 篇文档内容 + README
- website-design/:官网设计稿、动画实验、预览图与资源
- 根目录官网截图两张
- .gitignore 忽略 website-design/exp/static/dist 构建产物(7.1MB)
2026-09-02 14:38:51 +08:00

550 lines
14 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.

/* ═══════════════════════════════════════════════════════════
Astrion 官网主页 — 深空主题
原则:无 glow、无圆角套娃、无大面积纯黑、克制用色
═══════════════════════════════════════════════════════════ */
:root {
/* 深空底色:带蓝意的暗色,不用纯黑 */
--bg-0: #0c1120; /* 页面最深底 */
--bg-1: #111830; /* 天顶微亮 */
--bg-panel: #151c31; /* 实体面板(不透明) */
--text-1: #eef1f8;
--text-2: #a7b0c4;
--text-3: #6b7488;
--line: rgba(168, 180, 210, 0.14);
--line-strong: rgba(168, 180, 210, 0.24);
/* 唯一强调色星空冰蓝克制使用eyebrow/hover/active 态) */
--accent: #a9c2f0;
--accent-strong: #c1d4f6;
--accent-ink: #0c1120;
/* CTA 用星白实底 */
--cta: #eef1f8;
--cta-hover: #dde3f0;
/* 迷你示意用的状态色(低饱和) */
--ok: #7ba889;
--del: #b0766a;
--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC",
"Noto Sans SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
--font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas,
"Liberation Mono", monospace;
--page-max: 1120px;
--topbar-h: 60px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html {
scroll-behavior: smooth;
/* 橡皮筋过度滚动时露出的底色:与页面渐变同源,杜绝露白 */
background: linear-gradient(180deg, #111830 0%, #0c1120 34rem, #0c1120 100%);
background-color: #0c1120;
}
body {
font-family: var(--font-sans);
color: var(--text-1);
background: linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 34rem, var(--bg-0) 100%);
background-attachment: fixed;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
::selection { background: rgba(169, 194, 240, 0.3); }
a { color: inherit; text-decoration: none; }
code {
font-family: var(--font-mono);
font-size: 0.86em;
padding: 0.1em 0.42em;
background: rgba(168, 180, 210, 0.12);
border-radius: 5px;
}
/* ───────── 星空画布fixed 全页背景,内容浮在上 ───────── */
#starfield {
position: fixed;
inset: 0;
width: 100%;
height: 100%;
z-index: 0;
pointer-events: none;
}
.topbar, main, .footer { position: relative; z-index: 1; }
/* ───────── 通用 ───────── */
.eyebrow {
font-family: var(--font-mono);
font-size: 12px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--accent);
}
.section-head {
max-width: var(--page-max);
margin: 0 auto;
padding: 0 32px;
}
.section-title {
margin-top: 14px;
font-size: clamp(26px, 3.4vw, 36px);
font-weight: 650;
letter-spacing: -0.01em;
line-height: 1.25;
}
.section-sub {
margin-top: 12px;
max-width: 560px;
color: var(--text-2);
font-size: 15px;
}
/* ───────── 按钮:固定高度,状态切换不改尺寸 ───────── */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
height: 44px;
padding: 0 22px;
border-radius: 8px;
font-size: 15px;
font-weight: 550;
letter-spacing: 0.01em;
border: 1px solid transparent;
transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
white-space: nowrap;
}
.btn-sm { height: 36px; padding: 0 16px; font-size: 13.5px; }
.btn-primary { background: var(--cta); color: var(--accent-ink); }
.btn-primary:hover { background: var(--cta-hover); }
.btn-ghost { border-color: var(--line-strong); color: var(--text-1); }
.btn-ghost:hover { border-color: var(--text-2); background: rgba(168, 180, 210, 0.06); }
/* ───────── 顶栏 ───────── */
.topbar {
position: fixed;
top: 0; left: 0; right: 0;
height: var(--topbar-h);
z-index: 50;
/* 初始透明(浮在 hero 上),滚动后实底 */
background: transparent;
border-bottom: 1px solid transparent;
transition: background-color 0.2s ease, border-color 0.2s ease;
}
.topbar.scrolled {
background: var(--bg-0);
border-bottom-color: var(--line);
}
.topbar-inner {
max-width: var(--page-max);
height: 100%;
margin: 0 auto;
padding: 0 32px;
display: flex;
align-items: center;
justify-content: space-between;
}
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand-logo { width: 26px; height: 26px; color: var(--text-1); display: inline-flex; }
.brand-logo .astrion-avatar { width: 100%; height: 100%; }
.brand-logo-sm { width: 20px; height: 20px; }
.brand-name { font-size: 16px; font-weight: 620; letter-spacing: 0.01em; }
.topnav { display: flex; align-items: center; gap: 26px; }
.topnav-link {
font-size: 14px;
color: var(--text-2);
transition: color 0.15s ease;
}
.topnav-link:hover { color: var(--text-1); }
/* ───────── 总览 ───────── */
.hero {
max-width: var(--page-max);
margin: 0 auto;
padding: calc(var(--topbar-h) + 96px) 32px 110px;
}
.hero-title-row { margin-top: 22px; }
.hero-title {
font-size: clamp(72px, 12.5vw, 156px);
font-weight: 700;
letter-spacing: -0.035em;
line-height: 1;
background: linear-gradient(160deg, #f4f6fc 30%, #b9c3da 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* 六边形眼睛跟随标题字号:
盒高 1.025em → 六边形实高 ≈0.71em= 大写字高),
vertical-align 补偿 viewBox 底部余白,与标题 baseline 对齐 */
.hero-mascot {
display: inline-block;
width: 1.025em;
height: 1.025em;
margin-left: 0.16em;
vertical-align: -0.157em;
color: #eef1f8;
}
.hero-mascot .astrion-avatar { width: 100%; height: 100%; }
.hero-sub {
margin-top: 28px;
max-width: 520px;
font-size: 17px;
color: var(--text-2);
}
.hero-actions { margin-top: 34px; display: flex; gap: 14px; }
.hero-platforms {
margin-top: 44px;
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 14px;
font-family: var(--font-mono);
font-size: 13px;
color: var(--text-3);
}
.platform em { font-style: normal; color: var(--text-3); opacity: 0.75; }
.platform-sep { width: 3px; height: 3px; border-radius: 50%; background: var(--text-3); opacity: 0.5; }
/* ───────── 演示区 ───────── */
.demo { padding: 60px 0 40px; scroll-margin-top: 40px; }
.demo-frame-wrap {
max-width: calc(var(--page-max) + 2px);
margin: 34px auto 0;
padding: 0 32px;
}
.demo-frame {
position: relative;
border: 1px solid var(--line-strong);
border-radius: 10px;
overflow: hidden;
background: var(--bg-panel);
}
.demo-frame iframe {
display: block;
border: 0;
width: 1400px; /* 逻辑尺寸:永不触发窄屏断点 */
height: 860px;
transform-origin: top left;
}
.demo-note {
max-width: var(--page-max);
margin: 14px auto 0;
padding: 0 32px;
font-size: 13px;
color: var(--text-3);
}
/* ───────── 特色功能 ───────── */
.features { padding: 110px 0 30px; scroll-margin-top: 20px; }
.feature-list {
max-width: var(--page-max);
margin: 26px auto 0;
padding: 0 32px;
}
.feature-row {
display: block;
padding: 54px 0;
border-top: 1px solid var(--line);
}
.feature-row:last-child { border-bottom: 1px solid var(--line); }
/* 带动画的行:左文右动画。动画列给足 54003/04 舞台逻辑宽)→ 舞台 curScale=1 不缩放,
三个动画的智能体渲染尺寸一致 */
.feature-row--anim {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 540px);
gap: clamp(32px, 6vw, 80px);
align-items: center;
}
.feature-anim {
position: relative;
height: 388px;
}
/* 动画内部元素样式在 anim-embed.css与 anim-demo 共用类名, token 取自主题) */
.feature-index {
font-family: var(--font-mono);
font-size: 12.5px;
color: var(--text-3);
letter-spacing: 0.14em;
}
.feature-title {
margin-top: 10px;
font-size: clamp(21px, 2.6vw, 27px);
font-weight: 640;
letter-spacing: -0.01em;
}
.feature-desc {
margin-top: 12px;
max-width: 560px;
font-size: 15px;
color: var(--text-2);
}
/* —— 迷你 UI 示意:纯 CSS无装饰性元素 —— */
.feature-visual {
display: flex;
justify-content: center;
align-items: center;
min-height: 120px;
}
/* 01 三档分段控件 */
.mini-modeswitch {
display: flex;
border: 1px solid var(--line-strong);
border-radius: 9px;
overflow: hidden;
background: var(--bg-panel);
}
.mini-mode {
height: 38px;
display: flex;
align-items: center;
padding: 0 22px;
font-size: 14px;
color: var(--text-2);
border-left: 1px solid var(--line);
}
.mini-mode:first-child { border-left: 0; }
.mini-mode.is-active { background: rgba(169, 194, 240, 0.13); color: var(--accent-strong); }
/* 02 权限开关组 */
.mini-perms {
display: flex;
flex-direction: column;
gap: 2px;
border: 1px solid var(--line-strong);
border-radius: 9px;
background: var(--bg-panel);
padding: 6px 0;
min-width: 260px;
}
.mini-perm {
display: flex;
align-items: center;
justify-content: space-between;
height: 40px;
padding: 0 16px;
}
.mini-perm + .mini-perm { border-top: 1px solid var(--line); }
.mini-perm-label { font-size: 14px; color: var(--text-1); }
.mini-switch {
width: 34px;
height: 20px;
border-radius: 10px;
background: rgba(168, 180, 210, 0.22);
position: relative;
transition: background-color 0.16s ease;
}
.mini-switch::after {
content: "";
position: absolute;
top: 2px; left: 2px;
width: 16px; height: 16px;
border-radius: 50%;
background: var(--text-1);
transition: transform 0.16s ease;
}
.mini-switch.is-on { background: var(--accent); }
.mini-switch.is-on::after { transform: translateX(14px); background: #0c1120; }
/* 03 diff 片段 */
.mini-diff {
border: 1px solid var(--line-strong);
border-radius: 9px;
background: var(--bg-panel);
font-family: var(--font-mono);
font-size: 12.5px;
min-width: 300px;
overflow: hidden;
}
.mini-diff-file {
padding: 9px 14px;
color: var(--text-2);
border-bottom: 1px solid var(--line);
}
.mini-diff-line { padding: 5px 14px; white-space: nowrap; }
.mini-diff-line.is-add { color: var(--ok); background: rgba(123, 168, 137, 0.08); }
.mini-diff-line.is-del { color: var(--del); background: rgba(176, 118, 106, 0.07); }
.mini-diff-stat {
padding: 8px 14px;
border-top: 1px solid var(--line);
color: var(--text-3);
}
/* 04 检查点时间线 */
.mini-timeline {
display: flex;
flex-direction: column;
gap: 0;
border: 1px solid var(--line-strong);
border-radius: 9px;
background: var(--bg-panel);
padding: 8px 0;
min-width: 260px;
}
.mini-tl-node {
display: flex;
align-items: center;
gap: 12px;
height: 40px;
padding: 0 16px;
position: relative;
}
.mini-tl-node + .mini-tl-node::before {
content: "";
position: absolute;
left: 21px;
top: -6px;
width: 1px;
height: 12px;
background: var(--line-strong);
}
.mini-tl-dot {
width: 11px; height: 11px;
border-radius: 50%;
border: 2px solid var(--text-3);
flex: none;
}
.mini-tl-node.is-current .mini-tl-dot { border-color: var(--accent); background: var(--accent); }
.mini-tl-label { font-size: 14px; color: var(--text-1); }
.mini-tl-node.is-current .mini-tl-label { color: var(--accent-strong); }
/* ───────── FAQ ───────── */
.faq { padding: 110px 0 60px; scroll-margin-top: 20px; }
.faq-list {
max-width: 760px;
margin: 30px auto 0;
padding: 0 32px;
}
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-q {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
min-height: 62px;
padding: 12px 2px;
cursor: pointer;
font-size: 16px;
font-weight: 550;
list-style: none;
transition: color 0.15s ease;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q:hover { color: var(--accent-strong); }
.faq-icon {
flex: none;
width: 14px; height: 14px;
position: relative;
}
.faq-icon::before, .faq-icon::after {
content: "";
position: absolute;
background: var(--text-2);
transition: transform 0.2s ease;
}
.faq-icon::before { left: 0; top: 6px; width: 14px; height: 1.5px; }
.faq-icon::after { left: 6.25px; top: 0; width: 1.5px; height: 14px; }
.faq-item[open] .faq-icon::after { transform: scaleY(0); }
.faq-a {
overflow: hidden;
/* JS 做高度动画;无 JS 时 details 原生展开也完整可读 */
}
.faq-a p {
padding: 2px 2px 22px;
max-width: 640px;
color: var(--text-2);
font-size: 15px;
}
/* ───────── 底栏 ───────── */
.footer {
border-top: 1px solid var(--line);
margin-top: 60px;
}
.footer-inner {
max-width: var(--page-max);
margin: 0 auto;
padding: 26px 32px;
display: flex;
align-items: center;
justify-content: space-between;
}
.footer-brand {
display: flex;
align-items: center;
gap: 9px;
font-size: 14px;
font-weight: 580;
color: var(--text-2);
}
.footer-links { display: flex; gap: 24px; }
.footer-links a { font-size: 13.5px; color: var(--text-3); transition: color 0.15s ease; }
.footer-links a:hover { color: var(--text-1); }
/* ───────── 响应式 ───────── */
@media (max-width: 860px) {
.feature-row--anim { grid-template-columns: minmax(0, 1fr); }
.feature-anim { height: 340px; }
.topnav-link { display: none; }
.hero { padding-top: calc(var(--topbar-h) + 64px); padding-bottom: 72px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.btn, .topbar, .faq-q { transition: none; }
}