feat: refine spectra lab alignment and components
All checks were successful
Deploy / deploy (push) Successful in 1s
All checks were successful
Deploy / deploy (push) Successful in 1s
This commit is contained in:
210
index.html
210
index.html
@@ -6,7 +6,7 @@
|
||||
<title>Spectra Lab</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Spectra Lab — 一页式编辑感品牌站,强调作品感、排版和克制动效,而不是 AI 式炫技。"
|
||||
content="Spectra Lab — 一页式编辑感品牌站,强调作品感、排版秩序、边界对齐与克制交互。"
|
||||
/>
|
||||
<script>
|
||||
if (location.pathname === '/spectra-lab') {
|
||||
@@ -23,6 +23,11 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-shell">
|
||||
<div class="page-grid" aria-hidden="true">
|
||||
<span></span><span></span><span></span><span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
|
||||
<header class="topbar">
|
||||
<a class="brand" href="#top" aria-label="Spectra Lab 首页">
|
||||
<span class="brand-mark"></span>
|
||||
@@ -32,6 +37,7 @@
|
||||
<a href="#statement">Statement</a>
|
||||
<a href="#works">Works</a>
|
||||
<a href="#system">System</a>
|
||||
<a href="#components">Components</a>
|
||||
<a href="#closing">Closing</a>
|
||||
</nav>
|
||||
<button id="modeToggle" class="mode-toggle" type="button" aria-label="切换页面模式">
|
||||
@@ -41,118 +47,127 @@
|
||||
|
||||
<main id="top">
|
||||
<section class="hero reveal">
|
||||
<div class="hero-meta">
|
||||
<div class="hero-meta ruled-row">
|
||||
<p class="kicker">Front-end concept / 2026</p>
|
||||
<p class="issue">Issue 01 — Reduced Artificiality</p>
|
||||
<p class="issue">Issue 02 — Alignment & Components</p>
|
||||
</div>
|
||||
<div class="hero-grid">
|
||||
|
||||
<div class="hero-grid ruled-row">
|
||||
<div class="hero-copy">
|
||||
<h1>
|
||||
把“像 AI 做的页面”<br />
|
||||
改成“像真的品牌作品”。
|
||||
把背景线、边框和内容列,
|
||||
真正对齐到同一套秩序里。
|
||||
</h1>
|
||||
<p class="hero-text">
|
||||
Spectra Lab 的第二版不再依赖霓虹、玻璃拟态和悬浮指标,而是回到更克制的设计表达:更强的排版、更明确的留白、更少但更准的动效,以及更像真实创意团队会交付的页面气质。
|
||||
这一轮不再只谈风格,而是把页面的基础秩序校准:背景线不再漂浮,边框不再各说各话,卡片与文本块都回到同一套列宽、间距与边界系统里。然后,再往里增加一组真正值得操作的交互组件。
|
||||
</p>
|
||||
</div>
|
||||
<aside class="hero-note">
|
||||
<aside class="hero-note framed-note">
|
||||
<p>
|
||||
这一版的目标不是“更炫”,而是更像作品本身:可阅读、可陈列、可被记住。
|
||||
真正精细的页面,首先要让看不见的结构先成立;风格,只是结构成立之后的结果。
|
||||
</p>
|
||||
</aside>
|
||||
</div>
|
||||
<div class="hero-ledger">
|
||||
|
||||
<div class="hero-ledger ruled-row">
|
||||
<article class="ledger-item">
|
||||
<span>Design principle</span>
|
||||
<strong>Less gesture, more judgment.</strong>
|
||||
<span>Grid discipline</span>
|
||||
<strong>背景线、外框、分隔线与内容容器共享同一套对齐参照。</strong>
|
||||
</article>
|
||||
<article class="ledger-item">
|
||||
<span>Material cue</span>
|
||||
<strong>纸感、墨感、少量暗红,而不是数字炫光。</strong>
|
||||
<span>Border logic</span>
|
||||
<strong>边框只在真正需要建立层级时出现,不再随机地围一圈。</strong>
|
||||
</article>
|
||||
<article class="ledger-item">
|
||||
<span>Reading rhythm</span>
|
||||
<strong>先标题,再说明,再留下停顿。</strong>
|
||||
<span>Interactive layer</span>
|
||||
<strong>组件区不只是摆样子,而是能切换、能反馈、能记住状态。</strong>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="statement" class="statement section reveal">
|
||||
<div class="section-head">
|
||||
<p class="kicker">Statement</p>
|
||||
<h2>先去掉套路,再谈风格。</h2>
|
||||
<section id="statement" class="section reveal">
|
||||
<div class="section-head ruled-row">
|
||||
<div>
|
||||
<p class="kicker">Statement</p>
|
||||
<h2>精细感,首先来自对齐,其次才是风格。</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="statement-grid">
|
||||
|
||||
<div class="statement-grid ruled-row">
|
||||
<p>
|
||||
大多数 AI 味页面的问题,不是技术不够,而是视觉判断太偷懒:到处发光、到处渐变、到处 floating card,像在证明“我会做效果”,而不是在表达“我知道什么该留下”。
|
||||
许多页面第一眼显得“差一点”,并不是因为颜色或字体错了,而是因为线条系统没有被认真处理:背景里的线是背景,卡片边框是卡片边框,文本区是文本区,它们彼此没有参照,自然就显得散。
|
||||
</p>
|
||||
<p>
|
||||
所以这一版只保留三件事:结构、节奏、材质。结构决定像不像品牌,节奏决定高级不高级,材质决定页面有没有手感。除此之外,能删的都删。
|
||||
所以 Spectra Lab 这轮重构,优先把对齐关系收紧:统一页宽、统一纵向节奏、统一卡片边界、统一线条出场方式。只有这样,后面加进去的组件和交互,才不会像“后来又塞了一块东西”。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="works" class="works section reveal">
|
||||
<div class="section-head split-head">
|
||||
<section id="works" class="section reveal">
|
||||
<div class="section-head split-head ruled-row">
|
||||
<div>
|
||||
<p class="kicker">Selected Works</p>
|
||||
<h2>四个页面切片,组成完整气质。</h2>
|
||||
<h2>四个切片,说明这一页如何建立气质。</h2>
|
||||
</div>
|
||||
<p class="section-caption">点击左侧卡片,右侧会切换对应的设计说明。</p>
|
||||
<p class="section-caption">点击左侧卡片,右侧会切换说明与编号。</p>
|
||||
</div>
|
||||
|
||||
<div class="works-layout">
|
||||
<div class="works-layout ruled-row">
|
||||
<div class="work-list" role="tablist" aria-label="设计切片列表">
|
||||
<button
|
||||
class="work-item is-active"
|
||||
type="button"
|
||||
aria-selected="true"
|
||||
data-title="Opening Spread"
|
||||
data-index="01"
|
||||
data-copy="首页像一本刊物的开篇大跨页:强标题、宽留白、细线和小号说明文字共同建立秩序,而不是用一堆发光元素抢注意力。"
|
||||
data-copy="首页像一本刊物的开篇大跨页:不是堆特效,而是用标题、说明、细线和留白一起建立一眼可感知的秩序。"
|
||||
>
|
||||
<span class="work-number">01</span>
|
||||
<span>
|
||||
<strong>Opening Spread</strong>
|
||||
<small>封面感与留白</small>
|
||||
<small>封面感与主次节奏</small>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
class="work-item"
|
||||
type="button"
|
||||
aria-selected="false"
|
||||
data-title="Quiet Contrast"
|
||||
data-index="02"
|
||||
data-copy="对比来自字重、边界和材质差异,而不是夸张色彩。黑、白、灰、纸感米色,再加少量暗红作点缀,已经足够建立品牌记忆。"
|
||||
data-copy="对比来自字重、列宽、材质与边界,而不是夸张颜色。暗红只作为标记,不作为表演。"
|
||||
>
|
||||
<span class="work-number">02</span>
|
||||
<span>
|
||||
<strong>Quiet Contrast</strong>
|
||||
<small>克制颜色,而非特效堆叠</small>
|
||||
<small>克制色彩,而非堆叠效果</small>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
class="work-item"
|
||||
type="button"
|
||||
aria-selected="false"
|
||||
data-title="Measured Motion"
|
||||
data-index="03"
|
||||
data-copy="动效只承担两个任务:引导阅读和提供触感。它不负责表演,也不负责制造噪声,所以 hover、滚动 reveal 和模式切换都很轻。"
|
||||
data-copy="动效只承担两件事:提示切换、改善触感。页面不会为了证明自己会动而到处动。"
|
||||
>
|
||||
<span class="work-number">03</span>
|
||||
<span>
|
||||
<strong>Measured Motion</strong>
|
||||
<small>只做必要的运动</small>
|
||||
<small>把运动当作排版的一部分</small>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
class="work-item"
|
||||
type="button"
|
||||
aria-selected="false"
|
||||
data-title="Material Ending"
|
||||
data-index="04"
|
||||
data-copy="收尾部分不再追加功能堆料,而是用一个有材料感的段落把情绪压住,让整个页面从头到尾有完整的起承转合。"
|
||||
data-copy="结尾像一页真正收住的落版:不抢戏、不吵闹,只让页面在最后留下明确的材质与余味。"
|
||||
>
|
||||
<span class="work-number">04</span>
|
||||
<span>
|
||||
<strong>Material Ending</strong>
|
||||
<small>收住,而不是越做越满</small>
|
||||
<small>收尾比开始更能决定完成度</small>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -163,47 +178,136 @@
|
||||
<div class="stage-index" id="workIndex">01</div>
|
||||
<h3 id="workTitle">Opening Spread</h3>
|
||||
<p id="workCopy">
|
||||
首页像一本刊物的开篇大跨页:强标题、宽留白、细线和小号说明文字共同建立秩序,而不是用一堆发光元素抢注意力。
|
||||
首页像一本刊物的开篇大跨页:不是堆特效,而是用标题、说明、细线和留白一起建立一眼可感知的秩序。
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="system" class="system section reveal">
|
||||
<div class="section-head">
|
||||
<p class="kicker">System</p>
|
||||
<h2>视觉系统不复杂,但必须一致。</h2>
|
||||
<section id="system" class="section reveal">
|
||||
<div class="section-head ruled-row">
|
||||
<div>
|
||||
<p class="kicker">System</p>
|
||||
<h2>一套足够克制、但能支撑细节的视觉系统。</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="system-grid">
|
||||
|
||||
<div class="system-grid ruled-row">
|
||||
<article class="system-card">
|
||||
<span>Typography</span>
|
||||
<strong>Serif headline / Sans body</strong>
|
||||
<p>标题用更有书卷感的衬线中文,正文维持干净无衬线,让页面既有性格也不失可读性。</p>
|
||||
<p>标题用更有书卷感的衬线中文,正文保持无衬线,以免页面陷入“全都在强调”的疲劳状态。</p>
|
||||
</article>
|
||||
<article class="system-card">
|
||||
<span>Palette</span>
|
||||
<strong>Ink / Paper / Oxblood</strong>
|
||||
<p>颜色压到少数几种:墨黑、纸白、米灰、暗红。这样更像品牌系统,而不是灵感拼贴。</p>
|
||||
<p>主色调维持在墨黑、纸白、灰米和暗红之间,确保视觉语言更接近品牌系统,而不是灵感拼贴。</p>
|
||||
</article>
|
||||
<article class="system-card">
|
||||
<span>Motion</span>
|
||||
<strong>Reveal / Shift / Fade</strong>
|
||||
<p>动效只使用最基本的进入、位移和透明度变化,避免每个区域都在“自我表演”。</p>
|
||||
<span>Border & Grid</span>
|
||||
<strong>One shell, one logic</strong>
|
||||
<p>背景线、内容边框、说明条和交互组件全部依附于同一页壳,不再出现互相打架的边界体系。</p>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="closing" class="closing section reveal">
|
||||
<div class="closing-panel">
|
||||
<section id="components" class="section reveal">
|
||||
<div class="section-head split-head ruled-row">
|
||||
<div>
|
||||
<p class="kicker">Components</p>
|
||||
<h2>再加一组真正可以操作的前端交互组件。</h2>
|
||||
</div>
|
||||
<p class="section-caption">切换布局语气、信息密度与材质标记,右侧预览会即时更新。</p>
|
||||
</div>
|
||||
|
||||
<div class="components-layout ruled-row">
|
||||
<div class="control-panel">
|
||||
<div class="control-block">
|
||||
<p class="control-label">Layout tone</p>
|
||||
<div class="segmented" role="tablist" aria-label="布局语气切换">
|
||||
<button class="tone-chip is-active" type="button" data-tone="quiet">Quiet</button>
|
||||
<button class="tone-chip" type="button" data-tone="balanced">Balanced</button>
|
||||
<button class="tone-chip" type="button" data-tone="dramatic">Dramatic</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-block">
|
||||
<label class="control-label" for="densityRange">Information density</label>
|
||||
<input id="densityRange" class="density-range" type="range" min="1" max="3" step="1" value="2" />
|
||||
<div class="density-legend">
|
||||
<span>Airy</span>
|
||||
<span id="densityValue">Balanced</span>
|
||||
<span>Dense</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-block">
|
||||
<p class="control-label">Material accent</p>
|
||||
<div class="swatch-row">
|
||||
<button class="swatch is-active" type="button" data-accent="#7f2f2f" style="--swatch:#7f2f2f"></button>
|
||||
<button class="swatch" type="button" data-accent="#3f5a73" style="--swatch:#3f5a73"></button>
|
||||
<button class="swatch" type="button" data-accent="#6c6250" style="--swatch:#6c6250"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-block">
|
||||
<p class="control-label">Editorial notes</p>
|
||||
<div class="note-stack">
|
||||
<button class="note-item is-active" type="button" data-note="封面对齐决定第一印象。">封面对齐决定第一印象。</button>
|
||||
<button class="note-item" type="button" data-note="组件数量增加后,更需要统一边框逻辑。">组件数量增加后,更需要统一边框逻辑。</button>
|
||||
<button class="note-item" type="button" data-note="交互反馈应该像纸页翻动,而不是界面在炫耀。">交互反馈应该像纸页翻动,而不是界面在炫耀。</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="preview-panel">
|
||||
<div class="preview-card" id="previewCard" data-tone="balanced" data-density="2">
|
||||
<div class="preview-topline">
|
||||
<span id="previewTone">Balanced tone</span>
|
||||
<span id="previewDensity">Density 02</span>
|
||||
</div>
|
||||
<div class="preview-body">
|
||||
<p class="preview-kicker">Live editorial specimen</p>
|
||||
<h3 id="previewTitle">A layout that knows where to stop.</h3>
|
||||
<p id="previewText">
|
||||
这一块不是静态说明,而是一张会随着交互变化的样张:它会根据布局语气、信息密度与材料色点,实时调整状态。
|
||||
</p>
|
||||
</div>
|
||||
<div class="preview-foot">
|
||||
<span id="previewAccentLabel">Accent / Oxblood</span>
|
||||
<strong id="previewNote">封面对齐决定第一印象。</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mini-modules">
|
||||
<details class="mini-module" open>
|
||||
<summary>Spacing rule</summary>
|
||||
<p>所有主要模块共享统一的竖向节奏,避免 section 间的呼吸不一致。</p>
|
||||
</details>
|
||||
<details class="mini-module">
|
||||
<summary>Border rule</summary>
|
||||
<p>边框只在需要建立层级和材料感时出现,不再无差别包裹所有区域。</p>
|
||||
</details>
|
||||
<details class="mini-module">
|
||||
<summary>Motion rule</summary>
|
||||
<p>交互组件只做提示性运动,不做自我表演型运动。</p>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="closing" class="section reveal">
|
||||
<div class="closing-panel ruled-row">
|
||||
<p class="kicker">Closing</p>
|
||||
<h2>真正高级的页面,通常都有一点节制。</h2>
|
||||
<h2>当结构、边界与互动开始说同一种语言,页面才会显得真正完整。</h2>
|
||||
<p>
|
||||
如果第一页就把所有招式用完,观者只会记得“效果很多”。但如果页面知道何时收、何时留白、何时只用一条线和一块色面说话,它才更像真正完成度高的作品。
|
||||
这一版的目的不是把元素做得更多,而是让每一个元素都有归属:线条知道为什么在那里,边框知道为何出现,组件知道自己服务于什么。这样页面才不再只是“看起来不错”,而会更接近真正可落地的前端作品。
|
||||
</p>
|
||||
<div class="closing-signoff">
|
||||
<span>Spectra Lab / Editorial pass</span>
|
||||
<span>Built for calm impact.</span>
|
||||
<span>Spectra Lab / Alignment pass</span>
|
||||
<span>Built with stricter structure.</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user