[teamai] Push 87 resource(s) from XingfenD

This commit is contained in:
2026-09-10 16:10:45 +08:00
parent 425c9c078a
commit 65c04def51
1314 changed files with 211681 additions and 0 deletions
@@ -0,0 +1,27 @@
{
"id": "bauhaus-bold",
"name": "Bauhaus Bold",
"nameZh": "包豪斯",
"description": "Pure off-white surface, primary-blue accent, and chunky Archivo Black display type. Bauhaus / brutalist modernist — best for opinionated manifestos and bold product pitches.",
"descriptionZh": "净色底 + 主色蓝强调色 + Archivo Black 黑体. 包豪斯 / 布鲁塔利风格, 适合观点鲜明的演讲与产品发布.",
"mood": [
"light",
"modernist",
"bauhaus",
"geometric",
"bold",
"manifesto"
],
"bestFor": [
"产品发布",
"观点宣言",
"设计演讲",
"品牌主张"
],
"preview": {
"shell": "#f0eee8",
"surface": "#fafaf7",
"text": "#0a0a0a",
"accent": "#1a4cdb"
}
}
@@ -0,0 +1,60 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · bauhaus-bold
* Modernist / brutalist manifesto. Off-white canvas, pure ink black,
* primary-blue accent. Archivo Black display, Inter body. SHARP
* corners (0 radius), THICK borders (4-8px), no decoration. Motion
* is sharp & quick — no overshoot, no easing tricks.
*
* character knobs:
* • hero numbers — Archivo Black, near-zero tracking, MASSIVE
* • rule — 4px solid black (geometric heavy)
* • card — 0 radius, 4px black border
* • surface — clean (no pattern)
* • motion — quick, sharp ease-out only
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #1a1a1a;
--surface: #f4f1ea;
--surface-2: #ffffff;
--surface-3: #e8e3d4;
--text: #0a0a0a;
--text-2: #1f1f1f;
--text-mute: #5a5a5a;
--text-faint: #8c8c8c;
--rule: #0a0a0a;
--accent: #2541ee;
--accent-soft: rgba(37, 65, 238, 0.12);
--accent-glow: rgba(37, 65, 238, 0.40);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Archivo Black", "Inter", "Helvetica Neue", sans-serif;
--font-body: "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "tnum", "ss01";
/* ─── motion: sharp & fast ─── */
--ease-overshoot: cubic-bezier(0.4, 0, 0.2, 1); /* no overshoot in bauhaus */
--dur-quick: 180ms;
--dur-base: 400ms;
--dur-slow: 650ms;
--dur-cinematic: 1000ms;
/* ─── design identity: heavy geometry ─── */
--r-card: var(--r-flat); /* SIGNATURE — pure rectangles */
--r-stage: 0;
--rule-w: 4px; /* SIGNATURE — heavy lines */
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 900;
--hero-num-track: -0.05em;
--stage-pad-x: 80px;
--stage-pad-y: 60px;
--card-shadow: 8px 8px 0 var(--text); /* SIGNATURE — offset solid shadow */
--shadow-stage:
0 60px 160px rgba(0, 0, 0, 0.55),
0 0 0 4px var(--text); /* thick black frame around stage */
--stage-border: 4px solid var(--text);
}
@@ -0,0 +1,28 @@
{
"id": "blueprint",
"name": "Blueprint",
"nameZh": "蓝图",
"description": "Deep navy backdrop with cyan accent and IBM Plex Mono. Engineering blueprint / industrial schematic vibe — best for system architecture and technical breakdowns.",
"descriptionZh": "深藏青底 + 青色强调色 + IBM Plex Mono. 工程蓝图 / 工业图纸气质, 适合系统架构与技术拆解.",
"mood": [
"dark",
"engineering",
"blueprint",
"industrial",
"technical",
"navy"
],
"bestFor": [
"技术架构",
"系统拆解",
"技术评测",
"工程教程",
"API / SDK 介绍"
],
"preview": {
"shell": "#0a121f",
"surface": "#0e1830",
"text": "#e6f0ff",
"accent": "#5fc7e8"
}
}
@@ -0,0 +1,65 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · blueprint
* Engineering schematic / architect's drafting board. Deep navy with
* drafting-cyan accent, IBM Plex Mono everywhere, signature DASHED
* 2px rules + 60px drafting grid baked into the stage. Hero numbers
* are mono cyan with ticks.
*
* character knobs:
* • hero numbers — mono cyan, 0 letter-spacing
* • rule — 2px DASHED cyan (drafting line)
* • card — 2px solid border, 0 radius
* • surface — 60px drafting grid
* • motion — measured (precise drafting tools)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #0a1224;
--surface: #0e1a2e;
--surface-2: #142441;
--surface-3: #1c2f54;
--text: #d6e5ff;
--text-2: #a8c2f0;
--text-mute: #6c89b8;
--text-faint: #3e5680;
--rule: rgba(120, 200, 255, 0.30);
--accent: #4dd2ff;
--accent-soft: rgba(77, 210, 255, 0.10);
--accent-glow: rgba(77, 210, 255, 0.55);
/* ─── fonts (mono pairing) ─── */
--font-display-cn: "IBM Plex Sans", "Noto Sans SC", sans-serif;
--font-display-en: "IBM Plex Mono", "JetBrains Mono", monospace;
--font-body: "IBM Plex Sans", "Noto Sans SC", sans-serif;
--font-mono: "IBM Plex Mono", "JetBrains Mono", monospace;
--font-features: "tnum", "zero", "ss01";
/* ─── motion: drafting-precise ─── */
--dur-base: 500ms;
--dur-slow: 800ms;
--dur-cinematic: 1200ms;
/* ─── design identity: drafting board ─── */
--r-card: var(--r-flat); /* SIGNATURE — engineering, not branding */
--r-stage: 0;
--rule-w: 2px;
--rule-style: dashed; /* SIGNATURE — drafting line */
--hero-num-font: var(--font-mono);
--hero-num-style: normal;
--hero-num-weight: 500;
--hero-num-track: -0.02em;
--stage-pad-x: 96px;
--stage-pad-y: 72px;
--card-shadow: inset 0 0 0 2px var(--rule);
--shadow-stage:
0 60px 160px rgba(0, 20, 60, 0.55),
0 0 0 1px rgba(120, 200, 255, 0.10);
/* ─── decoration: 60px drafting grid ─── */
--surface-pattern:
linear-gradient(rgba(120, 200, 255, 0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(120, 200, 255, 0.08) 1px, transparent 1px),
linear-gradient(rgba(120, 200, 255, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(120, 200, 255, 0.04) 1px, transparent 1px);
--surface-pattern-size: 240px 240px, 240px 240px, 60px 60px, 60px 60px;
}
@@ -0,0 +1,28 @@
{
"id": "bold-signal",
"name": "Bold Signal",
"nameZh": "焦点信号",
"description": "Dark gradient backdrop with a hot orange focal card and Archivo Black / Space Grotesk typography. Signature: oversized orange focal card as the stage's anchor + tabular section numbers. Built for pitch decks, product launches and statement chapters.",
"descriptionZh": "暗渐变底 + 大橙色焦点色卡 + Archivo Black / Space Grotesk 字体。签名:占位主角色卡 + 大编号制表数。适合 pitch deck、产品发布、宣言型章节。",
"mood": [
"dark",
"bold",
"signal",
"hero",
"modern",
"pitch"
],
"bestFor": [
"pitch deck / 投资人路演",
"产品发布 / 新品宣传",
"营销片头 / brand keynote",
"大字宣言 / 标题片",
"season hero / 主题营销"
],
"preview": {
"shell": "#0c0c0c",
"surface": "#1a1a1a",
"text": "#f5f5f5",
"accent": "#ff5722"
}
}
@@ -0,0 +1,71 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · bold-signal
* Hero pitch-deck dark. Dark canvas with a single hot orange as the
* focal accent — chapters build huge accent-colored cards on top of
* the dark surface. Archivo Black for display (chunky modernist
* slogans), Space Grotesk for body, JetBrains Mono for tabular badges.
*
* --shell + --surface form a soft diagonal gradient (via
* --surface-pattern) so the stage doesn't read as flat black.
*
* character knobs:
* • hero numbers — Archivo Black, weight 900, near-zero tracking
* • rule — 2px solid (mid-weight, modern)
* • card — refined 12px radius (chunk + soft)
* • surface — gentle diagonal gradient (#1a1a1a → #2d2d2d)
* • motion — punchy ease-out (quick reveals)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #0c0c0c;
--surface: #1a1a1a;
--surface-2: #2d2d2d;
--surface-3: #3a3a3a;
--text: #f5f5f5;
--text-2: #d8d8d8;
--text-mute: #8a8a8a;
--text-faint: #5a5a5a;
--rule: #3d3d3d;
--accent: #ff5722; /* hot signal orange */
--accent-soft: rgba(255, 87, 34, 0.14);
--accent-glow: rgba(255, 87, 34, 0.50);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Archivo Black", "Inter", "Helvetica Neue", sans-serif;
--font-body: "Space Grotesk", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "tnum", "ss01", "ss02";
/* ─── motion: punchy pitch ─── */
--dur-quick: 180ms;
--dur-base: 420ms;
--dur-slow: 680ms;
--dur-cinematic: 1050ms;
/* ─── design identity: bold hero ─── */
--r-card: var(--r-md); /* 12px chunky-but-soft */
--r-stage: 0;
--rule-w: 2px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 900;
--hero-num-track: -0.04em;
--stage-pad-x: 100px;
--stage-pad-y: 80px;
--card-shadow:
0 24px 60px rgba(0, 0, 0, 0.45),
0 0 0 1px rgba(255, 255, 255, 0.04);
--shadow-stage:
0 60px 160px rgba(0, 0, 0, 0.60),
0 0 0 1px rgba(255, 255, 255, 0.05);
/* ─── decoration: diagonal hero gradient (signal) ─── */
--surface-pattern:
linear-gradient(135deg, rgba(255, 87, 34, 0.0) 0%, rgba(255, 87, 34, 0.04) 40%, transparent 70%),
linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 50%, #1a1a1a 100%);
--surface-pattern-size: 100% 100%, 100% 100%;
--surface-pattern-blend: normal, normal;
--surface-pattern-opacity: 1;
}
@@ -0,0 +1,28 @@
{
"id": "chalk-garden",
"name": "Chalk Garden",
"nameZh": "粉笔花园",
"description": "Dark slate chalkboard backdrop with handwritten Patrick Hand typography and a chalk-yellow accent. Friendly classroom / explainer vibe.",
"descriptionZh": "深色石板底 + Patrick Hand 手写字体 + 粉笔黄强调色. 教室 / 课堂讲解风.",
"mood": [
"dark",
"handwritten",
"classroom",
"playful",
"chalk",
"explainer"
],
"bestFor": [
"科普讲解",
"教学课堂",
"知识分享",
"亲切口吻视频",
"面向初学者"
],
"preview": {
"shell": "#1a1a1a",
"surface": "#1e1e24",
"text": "#f4f4f5",
"accent": "#fde047"
}
}
@@ -0,0 +1,64 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · chalk-garden
* Handwritten classroom: dark slate chalkboard, Patrick Hand body,
* chalk-yellow accent, faint film grain + radial vignette so the
* whole stage feels like a 35mm photo of a real chalkboard.
*
* character knobs:
* • hero numbers — chunky chalk-handwritten
* • rule — 2px DASHED chalk
* • card — soft 16px radius, slight rotation in chapter
* • surface — film grain (overlay) + edge vignette
* • motion — soft, hand-drawn pace
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #16171c;
--surface: #1e1e24;
--surface-2: #28282f;
--surface-3: #34343c;
--text: #f4f4f5;
--text-2: #d4d4d8;
--text-mute: #a1a1aa;
--text-faint: #71717a;
--rule: rgba(255, 255, 255, 0.20);
--accent: #facc15;
--accent-soft: rgba(250, 204, 21, 0.14);
--accent-glow: rgba(250, 204, 21, 0.55);
/* ─── fonts ─── */
--font-display-cn: "Patrick Hand", "Noto Serif SC", cursive, serif;
--font-display-en: "Patrick Hand", "Caveat", cursive;
--font-body: "Patrick Hand", "Noto Sans SC", sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "tnum";
/* ─── motion: hand-drawn pace ─── */
--dur-base: 650ms;
--dur-slow: 950ms;
--dur-cinematic: 1400ms;
/* ─── design identity: chalkboard ─── */
--r-card: var(--r-md);
--r-stage: 0;
--rule-w: 2px;
--rule-style: dashed; /* SIGNATURE — every divider is dashed */
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 400;
--hero-num-track: 0;
--stage-pad-x: 120px;
--stage-pad-y: 80px;
--text-shadow:
0 1px 0 rgba(255, 255, 255, 0.08),
0 0 8px rgba(255, 255, 255, 0.10);
/* ─── decoration: film grain + vignette ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
--surface-pattern-size: 240px 240px;
--surface-pattern-blend: overlay;
--surface-pattern-opacity: 0.20;
--surface-vignette:
radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0, 0, 0, 0.6) 100%);
}
@@ -0,0 +1,28 @@
{
"id": "creative-voltage",
"name": "Creative Voltage",
"nameZh": "电压创意",
"description": "Saturated electric-blue canvas with neon-yellow accent and Syne / Space Mono typography. Signature: halftone dot pattern (retro-punk creative studio). Built for design weeks, creative-studio decks and visual culture talks.",
"descriptionZh": "饱和电光蓝底 + 霓虹黄强调 + Syne 几何衬线 / Space Mono 等宽。签名:halftone 网点纹理(复古朋克工作室感)。适合设计周、创意工作室、视觉文化话题。",
"mood": [
"dark",
"creative",
"energetic",
"retro-modern",
"electric",
"punk"
],
"bestFor": [
"设计周 / 创意分享",
"工作室作品集 / showcase",
"视觉文化 / 字体话题",
"音乐 / 艺术节预热",
"复古朋克 / 街头文化"
],
"preview": {
"shell": "#001a4d",
"surface": "#0033b8",
"text": "#ffffff",
"accent": "#d4ff00"
}
}
@@ -0,0 +1,68 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · creative-voltage
* Retro-modern creative studio. Saturated electric-blue surface (the
* brand color IS the canvas) + neon-yellow accent for shock contrast.
* Syne for display (curved geometric serif-sans hybrid), Space Mono
* for body / mono badges (creative-coder vibe). SIGNATURE: subtle
* halftone dot pattern overlay.
*
* character knobs:
* • hero numbers — Syne, weight 800 (geometric chunk)
* • rule — 2px solid neon yellow (bold, decisive)
* • card — refined-sm radius (mostly sharp)
* • surface — halftone dot pattern (retro print signature)
* • motion — punchy + slight overshoot (energy)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #001a4d;
--surface: #0033b8; /* saturated electric blue */
--surface-2: #00257d;
--surface-3: #001f5e;
--text: #ffffff;
--text-2: #e8eaff;
--text-mute: #98a4d8;
--text-faint: #6878b8;
--rule: rgba(212, 255, 0, 0.32);
--accent: #d4ff00; /* neon yellow */
--accent-soft: rgba(212, 255, 0, 0.14);
--accent-glow: rgba(212, 255, 0, 0.50);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Syne", "Archivo Black", "Inter", sans-serif;
--font-body: "Space Mono", "JetBrains Mono", "Inter", "Noto Sans SC", monospace;
--font-mono: "Space Mono", "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "tnum";
/* ─── motion: punchy energy ─── */
--dur-quick: 200ms;
--dur-base: 450ms;
--dur-slow: 720ms;
--dur-cinematic: 1100ms;
/* ─── design identity: punk studio ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 2px; /* SIGNATURE — bold dividers */
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 800;
--hero-num-track: -0.03em;
--stage-pad-x: 96px;
--stage-pad-y: 72px;
--card-shadow:
0 1px 0 var(--rule),
8px 8px 0 rgba(212, 255, 0, 0.30); /* offset neon-yellow shadow */
--shadow-stage:
0 60px 160px rgba(0, 20, 60, 0.65),
0 0 0 1px rgba(212, 255, 0, 0.18);
/* ─── decoration: SIGNATURE — halftone dot pattern overlay ─── */
--surface-pattern:
radial-gradient(circle, rgba(212, 255, 0, 0.18) 1.5px, transparent 2px);
--surface-pattern-size: 18px 18px;
--surface-pattern-blend: normal;
--surface-pattern-opacity: 0.55;
}
@@ -0,0 +1,28 @@
{
"id": "dark-botanical",
"name": "Dark Botanical",
"nameZh": "暗夜植物",
"description": "Premium editorial dark with elegant Cormorant italic and warm terracotta / blush / gold accents. Soft blurred light pools as the signature — magazine-cover sophistication for fashion, lifestyle, brand storytelling.",
"descriptionZh": "高级感暗底 + Cormorant 斜体衬线 + 暖陶 / 玫粉 / 鎏金叠层。签名:柔光晕染 (blurred light pool)。气质介于时尚刊物封面与博物馆图录之间。",
"mood": [
"dark",
"elegant",
"editorial",
"premium",
"sophisticated",
"botanical"
],
"bestFor": [
"品牌故事 / 形象片",
"时尚 / 美妆",
"生活方式 / 旅行",
"文化 / 艺术评论",
"高端产品发布"
],
"preview": {
"shell": "#0a0a0a",
"surface": "#141312",
"text": "#e8e4df",
"accent": "#d4a574"
}
}
@@ -0,0 +1,68 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · dark-botanical
* Premium editorial dark. Near-black canvas with warm terracotta gold
* accent, Cormorant italic English vs Noto Serif SC Chinese, IBM Plex
* Sans body. Signature: soft blurred light pools (botanical glow) in
* the corners — a single decoration, never grain, never grid.
*
* character knobs:
* • hero numbers — italic Cormorant, weight 400 (editorial)
* • rule — 1px solid faint warm hairline
* • card — refined small radius (paper-lift)
* • surface — soft blurred light pool (gold/terra haze)
* • motion — slow + cinematic (editorial pace)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #0a0a0a;
--surface: #141312;
--surface-2: #1c1a18;
--surface-3: #25221f;
--text: #e8e4df;
--text-2: #c8c0b6;
--text-mute: #7a7268;
--text-faint: #4a4540;
--rule: #2a2622;
--accent: #d4a574; /* warm terracotta gold */
--accent-soft: rgba(212, 165, 116, 0.12);
--accent-glow: rgba(212, 165, 116, 0.45);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Cormorant", "Cormorant Garamond", "GT Sectra", "Playfair Display", Georgia, serif;
--font-body: "IBM Plex Sans", "Manrope", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "tnum", "kern";
/* ─── motion: slow, editorial ─── */
--dur-base: 750ms;
--dur-slow: 1200ms;
--dur-cinematic: 1700ms;
/* ─── design identity: elegant editorial ─── */
--r-card: var(--r-sm); /* refined paper-lift, not flat */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 400;
--hero-num-track: -0.035em;
--stage-pad-x: 140px;
--stage-pad-y: 100px;
--card-shadow:
0 1px 0 var(--rule),
0 20px 60px rgba(0, 0, 0, 0.45);
--shadow-stage:
0 60px 160px rgba(0, 0, 0, 0.65),
0 0 0 1px rgba(212, 165, 116, 0.06);
/* ─── decoration: SIGNATURE — soft blurred light pools (botanical glow) ─── */
--surface-pattern:
radial-gradient(ellipse 60% 50% at 12% 22%, rgba(212, 165, 116, 0.18) 0%, transparent 60%),
radial-gradient(ellipse 55% 45% at 88% 82%, rgba(232, 180, 184, 0.14) 0%, transparent 60%),
radial-gradient(ellipse 40% 35% at 78% 18%, rgba(201, 184, 150, 0.10) 0%, transparent 60%);
--surface-pattern-size: 100% 100%;
--surface-vignette:
radial-gradient(circle at 50% 55%, transparent 0%, rgba(0, 0, 0, 0.55) 100%);
}
@@ -0,0 +1,28 @@
{
"id": "dune",
"name": "Dune",
"nameZh": "沙丘",
"description": "Charcoal-brown on desert sand — near-accent-less restraint. Inter sans display + Source Serif body. Architecture portfolio / gallery brochure / desert dusk aesthetic — quiet, sophisticated, design-first.",
"descriptionZh": "炭褐当墨 + 沙底,几乎不用 accent —— 克制、高级。Inter 显示 + Source Serif 正文。像建筑作品集、画廊手册、沙漠黄昏的色温。",
"mood": [
"light",
"dune",
"sand",
"muted",
"architecture",
"gallery"
],
"bestFor": [
"建筑 / 室内 / 空间",
"艺术展览 / 画廊手册",
"设计师 / 工作室作品集",
"时尚 / 高端品牌",
"审美优先的私享会"
],
"preview": {
"shell": "#dcc8a5",
"surface": "#f0e6d2",
"text": "#1f1a14",
"accent": "#8c6a48"
}
}
@@ -0,0 +1,62 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · dune
* Architecture / gallery brochure restraint. Warm desert sand canvas,
* charcoal-brown ink, near-zero accent saturation (clay-brown). Inter
* for display (architecture portfolios love Inter / Helvetica), Source
* Serif for body (gallery wall-text feel). SIGNATURE: NO decoration,
* NO pattern, NO vignette — purity. Like monochrome-print but warmer
* and with sans-serif headlines instead of serif.
*
* character knobs:
* • hero numbers — Inter, weight 300 (light, refined)
* • rule — 1px solid faint sand hairline
* • card — refined small radius (paper-lift)
* • surface — clean (NO pattern, NO vignette)
* • motion — quietest pace (sand barely moves)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #dcc8a5;
--surface: #f0e6d2;
--surface-2: #f6ecd9;
--surface-3: #e3d7bf;
--text: #1f1a14; /* charcoal-brown ink */
--text-2: #2d2620;
--text-mute: #6b5c46;
--text-faint: #9a8c70;
--rule: #c4b496;
--accent: #8c6a48; /* muted clay (low saturation) */
--accent-soft: rgba(140, 106, 72, 0.10);
--accent-glow: rgba(140, 106, 72, 0.25);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Inter", "Helvetica Neue", "Helvetica", sans-serif;
--font-body: "Source Serif 4", "Source Serif Pro", "Noto Serif SC", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "cv02", "tnum";
/* ─── motion: quietest gallery pace ─── */
--dur-base: 780ms;
--dur-slow: 1250ms;
--dur-cinematic: 1750ms;
/* ─── design identity: gallery restraint ─── */
--r-card: var(--r-xs); /* 4px — barely-there refinement */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 300;
--hero-num-track: -0.04em;
--stage-pad-x: 140px; /* generous = refined */
--stage-pad-y: 100px;
--card-shadow:
0 1px 0 var(--rule),
0 18px 44px rgba(60, 40, 20, 0.10);
--shadow-stage:
0 60px 160px rgba(60, 40, 20, 0.30),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* SIGNATURE: NO surface-pattern, NO vignette — desert dusk purity. */
}
@@ -0,0 +1,28 @@
{
"id": "electric-studio",
"name": "Electric Studio",
"nameZh": "电光企业",
"description": "Clean white canvas with single electric-blue accent and Manrope sans throughout. Signature: 4px electric-blue accent bar baked into the bottom of the stage — corporate confidence without coldness.",
"descriptionZh": "净白底 + 单一电光蓝 + Manrope 全场。签名:贴底 4px 电蓝色块。企业感、清晰、自信,不冷漠,适合 B2B 与投资人场景。",
"mood": [
"light",
"corporate",
"electric",
"confident",
"enterprise",
"clean"
],
"bestFor": [
"B2B 产品演讲",
"投资人 / 路演 deck",
"企业财报 / 季度更新",
"行业研究 / 趋势报告",
"企业咨询 / 培训"
],
"preview": {
"shell": "#0a0a0a",
"surface": "#ffffff",
"text": "#0a0a0a",
"accent": "#4361ee"
}
}
@@ -0,0 +1,68 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · electric-studio
* Corporate clarity. Near-black shell makes the white surface read as
* "stage on dark", single electric-blue accent for emphasis. Manrope
* for display + body (geometric corporate sans). SIGNATURE: a 4px
* electric-blue accent bar baked into the bottom edge of the stage,
* giving every chapter an instantly-recognizable corporate frame
* without a navbar / footer.
*
* character knobs:
* • hero numbers — Manrope, weight 800
* • rule — 1px solid mid-gray
* • card — refined-md radius (12px)
* • surface — clean white + bottom electric-blue accent bar
* • motion — punchy ease-out (corporate snap)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #0a0a0a;
--surface: #ffffff;
--surface-2: #f5f7fb;
--surface-3: #e8ecf3;
--text: #0a0a0a;
--text-2: #1f2530;
--text-mute: #5a6478;
--text-faint: #98a0b0;
--rule: #d8dde6;
--accent: #4361ee; /* electric corporate blue */
--accent-soft: rgba(67, 97, 238, 0.10);
--accent-glow: rgba(67, 97, 238, 0.32);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Manrope", "Inter", -apple-system, sans-serif;
--font-body: "Manrope", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "ss03", "cv02", "tnum";
/* ─── motion: punchy corporate ─── */
--dur-base: 420ms;
--dur-slow: 700ms;
--dur-cinematic: 1050ms;
/* ─── design identity: corporate clarity ─── */
--r-card: var(--r-md); /* 12px modern radius */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 800;
--hero-num-track: -0.035em;
--stage-pad-x: 110px;
--stage-pad-y: 80px;
--card-shadow:
0 1px 2px rgba(20, 30, 60, 0.06),
0 24px 56px rgba(20, 30, 60, 0.10);
--shadow-stage:
0 60px 160px rgba(0, 0, 0, 0.55),
0 0 0 1px rgba(0, 0, 0, 0.06);
/* ─── decoration: SIGNATURE — bottom electric-blue accent bar ─── */
--surface-pattern:
linear-gradient(0deg, #4361ee 0%, #4361ee 4px, transparent 4px, transparent 100%);
--surface-pattern-size: 100% 100%;
--surface-pattern-blend: normal;
--surface-pattern-opacity: 1;
}
@@ -0,0 +1,28 @@
{
"id": "forest-ink",
"name": "Forest Ink",
"nameZh": "森林墨",
"description": "Deep-forest-green ink on ivory cream — the green IS the ink. Source Serif body + Playfair Display + Noto Serif SC display. Reads like a vintage National Geographic issue — sustainable, grounded, considered.",
"descriptionZh": "深森林绿当墨(绿就是字色本身)+ 象牙暖纸。Source Serif 正文 + Playfair Display + Noto Serif SC。像旧版《国家地理》,沉稳、有呼吸感、克制。",
"mood": [
"light",
"forest",
"nature",
"editorial",
"documentary",
"warm"
],
"bestFor": [
"自然 / 可持续 / 环保",
"户外品牌 / 农业",
"纪录 / 非虚构",
"文化 / 行业观察",
"慢生活 / 文学农庄"
],
"preview": {
"shell": "#ece7da",
"surface": "#f5f1e8",
"text": "#1a2e1f",
"accent": "#4d7a4d"
}
}
@@ -0,0 +1,68 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · forest-ink
* Deep-forest-green ink on ivory cream. Like indigo-porcelain, the
* move is that the ink itself is green — text / headings / hero
* numbers all render in deep forest, never pure black. Source Serif
* body + Playfair Display display = vintage National Geographic
* spread. The accent is a slightly brighter green (used sparingly
* for kpi / link emphasis).
*
* character knobs:
* • hero numbers — italic Playfair Display, weight 500
* • rule — 1px solid faint warm hairline
* • card — refined small radius
* • surface — very subtle paper grain (warm, multiply)
* • motion — slow + cinematic (documentary pace)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #ece7da;
--surface: #f5f1e8;
--surface-2: #faf7ee;
--surface-3: #ebe7d8;
--text: #1a2e1f; /* SIGNATURE — forest green IS the ink */
--text-2: #253d2c;
--text-mute: #5c6a5e;
--text-faint: #909a92;
--rule: #c8c0a8;
--accent: #4d7a4d; /* slightly brighter forest for emphasis */
--accent-soft: rgba(77, 122, 77, 0.10);
--accent-glow: rgba(77, 122, 77, 0.32);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Playfair Display", "GT Sectra", "Bodoni 72", "Times New Roman", serif;
--font-body: "Source Serif 4", "Source Serif Pro", "Noto Serif SC", "Times New Roman", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "tnum", "lnum";
/* ─── motion: slow documentary pace ─── */
--dur-base: 720ms;
--dur-slow: 1150ms;
--dur-cinematic: 1650ms;
/* ─── design identity: vintage editorial ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 500;
--hero-num-track: -0.035em;
--stage-pad-x: 130px;
--stage-pad-y: 92px;
--card-shadow:
0 1px 0 var(--rule),
0 20px 48px rgba(26, 46, 31, 0.10);
--shadow-stage:
0 60px 160px rgba(26, 46, 31, 0.28),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* ─── decoration: faint warm paper grain (National Geographic feel) ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.50 0 0 0 0 0.35 0 0 0 0.12 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
--surface-pattern-size: 320px 320px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.55;
}
@@ -0,0 +1,28 @@
{
"id": "indigo-porcelain",
"name": "Indigo Porcelain",
"nameZh": "靛蓝瓷",
"description": "Deep-indigo ink on porcelain white — the indigo IS the ink, not just an accent. Playfair Display + Noto Serif SC + IBM Plex Sans body. Academic, scholarly, like a Chinese journal of contemporary thought.",
"descriptionZh": "深靛蓝当墨(靛蓝就是字色本身,而非 accent)+ 瓷白纸。Playfair Display + Noto Serif SC + IBM Plex Sans。学术、有深度,像蓝印花瓷器或一本当代思想期刊。",
"mood": [
"light",
"indigo",
"porcelain",
"academic",
"editorial",
"scholarly"
],
"bestFor": [
"学术 / 研究 / 论文解读",
"AI / 数据 / 工程深度",
"中国当代文化",
"技术发布会 / 严肃汇报",
"思想型 / 评论型长文改编"
],
"preview": {
"shell": "#e4e8ec",
"surface": "#f1f3f5",
"text": "#0a1f3d",
"accent": "#1e3a8a"
}
}
@@ -0,0 +1,62 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · indigo-porcelain
* Deep-indigo ink on porcelain white. The signature isn't the accent
* color — it's that the INK ITSELF is indigo (not black). All headings
* / body / hero numbers render in deep navy-indigo, so the page reads
* like a Chinese journal of contemporary thought or an academic
* editorial. Playfair Display italic English vs Noto Serif SC for
* display, IBM Plex Sans body adds a quiet technical undertone.
*
* character knobs:
* • hero numbers — italic Playfair Display, weight 500
* • rule — 1px solid faint porcelain hairline
* • card — refined small radius (academic paper-lift)
* • surface — clean porcelain (no pattern; purity)
* • motion — quiet editorial pace (slower than warm-keynote)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #e4e8ec;
--surface: #f1f3f5;
--surface-2: #f8fafc;
--surface-3: #e7ebef;
--text: #0a1f3d; /* SIGNATURE — indigo IS the ink */
--text-2: #152a4a;
--text-mute: #4a5a78;
--text-faint: #8595ad;
--rule: #c6cdd6;
--accent: #1e3a8a; /* slightly brighter indigo for emphasis */
--accent-soft: rgba(30, 58, 138, 0.10);
--accent-glow: rgba(30, 58, 138, 0.30);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Playfair Display", "GT Sectra", "Bodoni 72", "Times New Roman", serif;
--font-body: "IBM Plex Sans", "Manrope", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;
--font-features: "ss01", "tnum", "lnum", "kern";
/* ─── motion: quiet academic pace ─── */
--dur-base: 680ms;
--dur-slow: 1050ms;
--dur-cinematic: 1550ms;
/* ─── design identity: porcelain editorial ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 500;
--hero-num-track: -0.035em;
--stage-pad-x: 130px;
--stage-pad-y: 92px;
--card-shadow:
0 1px 0 var(--rule),
0 18px 48px rgba(10, 31, 61, 0.08);
--shadow-stage:
0 60px 160px rgba(10, 31, 61, 0.20),
0 0 0 1px rgba(10, 31, 61, 0.04);
/* SIGNATURE: NO surface-pattern — porcelain is meant to be clean. */
}
@@ -0,0 +1,28 @@
{
"id": "kraft-paper",
"name": "Kraft Paper",
"nameZh": "牛皮纸",
"description": "Deep-brown ink on kraft beige — old notebook / hand-stamped envelope. Fraunces serif + Noto Serif SC + Source Serif body. Vintage, warm, hand-crafted, with a copper accent for editorial emphasis.",
"descriptionZh": "深棕当墨 + 牛皮米。像老笔记本或手戳信封:暖、有年代感、手作味。Fraunces + Noto Serif SC + Source Serif 正文 + 紫铜色 accent。",
"mood": [
"light",
"vintage",
"literary",
"kraft",
"hand-craft",
"warm"
],
"bestFor": [
"书评 / 文学随笔",
"历史 / 怀旧 / 老物",
"独立杂志 / zine",
"手工艺 / 食物 / 农产品",
"慢生活 / 人文"
],
"preview": {
"shell": "#dccab0",
"surface": "#eedfc7",
"text": "#2a1e13",
"accent": "#a35b2a"
}
}
@@ -0,0 +1,67 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · kraft-paper
* Deep-brown ink on warm kraft beige. Reads like the back of a kraft
* envelope or the pages of a 70s notebook. Fraunces display + Source
* Serif body keeps the hand-crafted character; copper-rust accent for
* page numbers / kicker / link emphasis. SIGNATURE: coarse kraft
* paper grain (warmer than newsroom, heavier than sunset-zine).
*
* character knobs:
* • hero numbers — italic Fraunces, weight 600
* • rule — 1px solid kraft hairline
* • card — refined small radius
* • surface — coarse kraft paper grain (warm multiply)
* • motion — slow + tactile (turning a real page)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #dccab0;
--surface: #eedfc7;
--surface-2: #f3e9d6;
--surface-3: #e0d0b6;
--text: #2a1e13; /* SIGNATURE — deep kraft brown ink */
--text-2: #3a2a1d;
--text-mute: #6e5a40;
--text-faint: #a08c70;
--rule: #b8a486;
--accent: #a35b2a; /* copper-rust */
--accent-soft: rgba(163, 91, 42, 0.10);
--accent-glow: rgba(163, 91, 42, 0.32);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Fraunces", "Recoleta", "GT Sectra", "Playfair Display", serif;
--font-body: "Source Serif 4", "Source Serif Pro", "Noto Serif SC", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "tnum", "dlig";
/* ─── motion: tactile turn-a-page pace ─── */
--dur-base: 720ms;
--dur-slow: 1100ms;
--dur-cinematic: 1550ms;
/* ─── design identity: kraft notebook ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 600;
--hero-num-track: -0.035em;
--stage-pad-x: 130px;
--stage-pad-y: 92px;
--card-shadow:
0 1px 0 var(--rule),
0 22px 56px rgba(60, 40, 20, 0.16);
--shadow-stage:
0 60px 160px rgba(60, 40, 20, 0.40),
0 0 0 1px rgba(0, 0, 0, 0.05);
/* ─── decoration: SIGNATURE — coarse warm kraft grain ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' seed='7'/><feColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.32 0 0 0 0 0.18 0 0 0 0.28 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
--surface-pattern-size: 260px 260px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.55;
}
@@ -0,0 +1,26 @@
{
"id": "midnight-press",
"name": "Midnight Press",
"nameZh": "暗色印刷",
"description": "Warm dark backdrop with a single hot accent. Cinematic, terminal-y, developer vibe.",
"descriptionZh": "暖色暗底 + 单一热橙强调色。电影感、终端气质、开发者审美。",
"mood": [
"dark",
"cinematic",
"terminal",
"developer",
"warm"
],
"bestFor": [
"开发者教程",
"AI / 工具评测",
"极客向产品介绍",
"技术 deep dive"
],
"preview": {
"shell": "#0d0b09",
"surface": "#1a1714",
"text": "#f5f0e5",
"accent": "#ff4a2b"
}
}
@@ -0,0 +1,56 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · midnight-press
* Cinematic editorial dark. Warm espresso instead of pure black, single
* hot orange accent, Instrument-Serif italic English vs Noto-Serif-SC
* Chinese. Magazine-cover gravitas at night.
*
* character knobs:
* • hero numbers — italic editorial serif
* • rule — 1px solid warm hairline
* • card radius — sharp (no radius on stage; small radius on cards)
* • surface — warm vignette only, no grain
* • motion — slow + cinematic (1100ms reveals)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #0d0b09;
--surface: #1a1714;
--surface-2: #231f1a;
--surface-3: #2c2823;
--text: #f5f0e5;
--text-2: #ece4d2;
--text-mute: #7a7972;
--text-faint: #4a443e;
--rule: #2f2a25;
--accent: #ff4a2b;
--accent-soft: rgba(255, 74, 43, 0.14);
--accent-glow: rgba(255, 74, 43, 0.55);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Instrument Serif", "GT Sectra", "Playfair Display", Georgia, serif;
--font-body: "Manrope", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "cv11", "tnum";
/* ─── motion: slow & cinematic ─── */
--dur-base: 700ms;
--dur-slow: 1100ms;
--dur-cinematic: 1600ms;
/* ─── design identity ─── */
--r-card: var(--r-sm); /* refined, almost flat */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 400;
--hero-num-track: -0.025em;
--stage-pad-x: 140px;
--stage-pad-y: 100px;
/* ─── decoration: warm vignette, no grain ─── */
--surface-vignette:
radial-gradient(circle at 50% 60%, transparent 0%, rgba(0, 0, 0, 0.45) 100%);
}
@@ -0,0 +1,28 @@
{
"id": "monochrome-print",
"name": "Monochrome Print",
"nameZh": "黑白印刷",
"description": "Off-white paper with ink-black serif text and a single ink-blue accent. High-contrast print magazine vibe — Monocle, Wallpaper, MIT Press. Quiet, sophisticated, considered.",
"descriptionZh": "微暖白底 + 墨黑 serif + 单一墙墨蓝强调色. 高对比印刷杂志气质, Monocle / Wallpaper / MIT Press 那种沉静讲究.",
"mood": [
"light",
"print",
"minimal",
"serif",
"monochrome",
"sophisticated"
],
"bestFor": [
"深度阅读改编",
"学术 / 思想型内容",
"品牌故事",
"高级感产品",
"文化 / 艺术评论"
],
"preview": {
"shell": "#f5f3ee",
"surface": "#fbfaf6",
"text": "#0a0a0a",
"accent": "#1d4ed8"
}
}
@@ -0,0 +1,60 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · monochrome-print
* Quiet refined print magazine — Monocle / Wallpaper / MIT Press.
* Off-white, ink-black serif body (Source Serif), single deep ink-blue
* accent. Hairlines (1px) only. Generous stage padding. Hero numbers
* are tabular figures in italic Source Serif. No decoration — purity.
*
* character knobs:
* • hero numbers — italic Source Serif, tabular figures, very tight
* • rule — 1px hairline solid (refined ink)
* • card — 4px tiny radius (refined corner cue)
* • surface — clean (NO pattern, NO vignette)
* • motion — extra-quiet, longer durations
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #e8e3d8;
--surface: #fbf9f4;
--surface-2: #ffffff;
--surface-3: #f0ebde;
--text: #0e1418;
--text-2: #1f2a32;
--text-mute: #6b7178;
--text-faint: #a8aeb4;
--rule: #c9c5b8;
--accent: #1a3a8c; /* deep ink-blue */
--accent-soft: rgba(26, 58, 140, 0.08);
--accent-glow: rgba(26, 58, 140, 0.25);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Source Serif 4", "Source Serif Pro", "EB Garamond", "Times New Roman", serif;
--font-body: "Source Serif 4", "Source Serif Pro", "Noto Serif SC", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "tnum", "lnum", "kern";
/* ─── motion: extra quiet ─── */
--dur-base: 750ms;
--dur-slow: 1200ms;
--dur-cinematic: 1700ms;
/* ─── design identity: refined print ─── */
--r-card: var(--r-xs); /* 4px — barely-there refinement */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 500;
--hero-num-track: -0.03em;
--stage-pad-x: 140px; /* generous = refined */
--stage-pad-y: 100px;
--card-shadow:
0 1px 0 var(--rule),
0 16px 40px rgba(20, 30, 40, 0.06);
--shadow-stage:
0 60px 160px rgba(20, 30, 40, 0.20),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* SIGNATURE: NO surface-pattern, NO vignette — purity. */
}
@@ -0,0 +1,28 @@
{
"id": "neon-cyber",
"name": "Neon Cyber",
"nameZh": "霓虹赛博",
"description": "Deep-navy canvas with electric cyan + magenta glow and Clash Display + Satoshi typography. Signature: cyan grid + dual-tone neon outline. Futurist cyberpunk for AI, web3, security and future-tech content.",
"descriptionZh": "深海军底 + 电光青 + 玫红双霓虹 + Clash Display / Satoshi 字体。签名:青色发光网格 + 双色霓虹描边。赛博朋克未来派审美。",
"mood": [
"dark",
"cyberpunk",
"neon",
"futuristic",
"technical",
"saturated"
],
"bestFor": [
"AI / 大模型评测",
"web3 / 区块链",
"网络安全 / 黑客向",
"未来主义产品",
"赛博朋克 / 科幻话题"
],
"preview": {
"shell": "#04060f",
"surface": "#0a0f1c",
"text": "#e8f4ff",
"accent": "#00ffcc"
}
}
@@ -0,0 +1,75 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · neon-cyber
* Cyberpunk future-tech. Deep navy canvas, electric cyan as primary
* accent, magenta as the secondary glow tint (used only via *-glow
* alpha). Clash Display for display, Satoshi for body, JetBrains Mono
* for terminal-y bits. Signature: faint cyan grid + neon text-shadow
* on hero text.
*
* character knobs:
* • hero numbers — Clash Display, weight 700, tabular figures
* • rule — 1px solid cyan (low alpha)
* • card — slight radius (8-12px) with cyan inset glow
* • surface — fine cyan grid (40px) + soft scan vignette
* • motion — snappy + futuristic (faster than midnight)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #04060f;
--surface: #0a0f1c;
--surface-2: #111828;
--surface-3: #1a2238;
--text: #e8f4ff;
--text-2: #b8c8e0;
--text-mute: #6a7a98;
--text-faint: #3a4660;
--rule: rgba(0, 255, 204, 0.22);
--accent: #00ffcc; /* electric cyan */
--accent-soft: rgba(0, 255, 204, 0.10);
--accent-glow: rgba(255, 0, 170, 0.55); /* SIGNATURE — magenta glow */
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Clash Display", "Space Grotesk", "Manrope", "Inter", sans-serif;
--font-body: "Satoshi", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "tnum", "ss01", "ss02", "zero";
/* ─── motion: snappy future ─── */
--dur-quick: 160ms;
--dur-base: 380ms;
--dur-slow: 650ms;
--dur-cinematic: 1050ms;
/* ─── design identity: cyber edge ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 700;
--hero-num-track: -0.02em;
--stage-pad-x: 100px;
--stage-pad-y: 80px;
--text-shadow:
0 0 12px rgba(0, 255, 204, 0.35),
0 0 24px rgba(255, 0, 170, 0.12); /* SIGNATURE — cyan + magenta tail */
--card-shadow:
inset 0 0 0 1px var(--rule),
0 0 40px rgba(0, 255, 204, 0.06);
--shadow-stage:
0 60px 160px rgba(0, 30, 50, 0.65),
0 0 0 1px rgba(0, 255, 204, 0.18),
0 0 80px rgba(0, 255, 204, 0.08);
/* ─── decoration: cyan grid + soft scan vignette ─── */
--surface-pattern:
linear-gradient(rgba(0, 255, 204, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 204, 0.05) 1px, transparent 1px),
linear-gradient(rgba(0, 255, 204, 0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 204, 0.025) 1px, transparent 1px);
--surface-pattern-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px;
--surface-vignette:
radial-gradient(ellipse at center, transparent 35%, rgba(0, 10, 25, 0.6) 100%);
}
@@ -0,0 +1,28 @@
{
"id": "newsroom",
"name": "Newsroom",
"nameZh": "报社",
"description": "Newsprint cream backdrop with ink-black serif type and a banner red accent. Old-school broadsheet / documentary feel — feels like a New York Times feature article.",
"descriptionZh": "报纸奶油底 + 墨黑 serif + 报头红强调色. 老派大报 / 纪录片气质, 像一篇 NYT 特稿.",
"mood": [
"light",
"newspaper",
"editorial",
"serif",
"documentary",
"warm"
],
"bestFor": [
"纪录片 / 报道",
"深度评测",
"时事评论",
"AI 产品分析",
"热点解读"
],
"preview": {
"shell": "#ebe5d6",
"surface": "#f4ede0",
"text": "#1a1a1a",
"accent": "#c9302c"
}
}
@@ -0,0 +1,63 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · newsroom
* NYT broadsheet / documentary. Newsprint cream, ink-black serif body
* (Playfair Display + Noto Serif SC), banner-red accent. Tight stage
* padding mimics newspaper density. Hero numbers are HUGE editorial
* italic figures.
*
* character knobs:
* • hero numbers — italic display serif, very tight tracking
* • rule — 1px hairline solid (broadsheet ink)
* • card — flat (newspaper has no rounded corners)
* • surface — subtle paper grain
* • motion — quiet, longer durations (printed page pace)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #c8bca0;
--surface: #f1ebd8;
--surface-2: #f8f3e2;
--surface-3: #ebe3cc;
--text: #14110b;
--text-2: #2a261a;
--text-mute: #5e564a;
--text-faint: #8c8473;
--rule: #968e7a;
--accent: #c8260d;
--accent-soft: rgba(200, 38, 13, 0.10);
--accent-glow: rgba(200, 38, 13, 0.30);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Playfair Display", "GT Sectra", "Bodoni 72", "Times New Roman", serif;
--font-body: "Source Serif 4", "Source Serif Pro", "Noto Serif SC", "Times New Roman", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "tnum", "lnum";
/* ─── motion: quiet print pace ─── */
--dur-base: 650ms;
--dur-slow: 1000ms;
--dur-cinematic: 1500ms;
/* ─── design identity: broadsheet ─── */
--r-card: var(--r-flat); /* SIGNATURE — newsprint has no radius */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 400;
--hero-num-track: -0.04em;
--stage-pad-x: 100px;
--stage-pad-y: 72px;
--shadow-stage:
0 60px 160px rgba(40, 30, 15, 0.30),
0 0 0 1px rgba(0, 0, 0, 0.05);
/* ─── decoration: subtler paper grain (less hairy than paper-press) ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='8'/><feColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.45 0 0 0 0 0.35 0 0 0 0.10 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
--surface-pattern-size: 320px 320px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.6;
}
@@ -0,0 +1,27 @@
{
"id": "paper-press",
"name": "Paper Press",
"nameZh": "亮色印刷",
"description": "Warm cream backdrop with a single hot accent. Editorial magazine, gentle, daytime vibe.",
"descriptionZh": "暖色奶油底 + 单一热橙强调色。杂志气质、柔和日间审美。",
"mood": [
"light",
"editorial",
"magazine",
"warm",
"daytime"
],
"bestFor": [
"杂志型内容",
"生活方式",
"日常工具评测",
"温和教程",
"面向大众的科技解读"
],
"preview": {
"shell": "#d8cfb8",
"surface": "#efe7d6",
"text": "#1a1714",
"accent": "#ff4a2b"
}
}
@@ -0,0 +1,65 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · paper-press
* Editorial daylight twin of midnight-press. Warm cream paper, hot
* orange accent, subtle film grain (multiply blend) so the surface
* feels printed rather than digital.
*
* character knobs:
* • hero numbers — italic editorial serif
* • rule — 1px solid faint paper line
* • card — refined, paper-lift shadow
* • surface — multiply paper grain
* • motion — slow + cinematic
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #d8cfb8;
--surface: #efe7d6;
--surface-2: #f5f0e5;
--surface-3: #ece4d2;
--text: #1a1714;
--text-2: #2c2823;
--text-mute: #6b685e;
--text-faint: #98948a;
--rule: #d4ccba;
--accent: #ff4a2b;
--accent-soft: rgba(255, 74, 43, 0.10);
--accent-glow: rgba(255, 74, 43, 0.30);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Instrument Serif", "GT Sectra", "Playfair Display", Georgia, serif;
--font-body: "Manrope", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "cv11", "tnum";
/* ─── motion: slow & cinematic ─── */
--dur-base: 700ms;
--dur-slow: 1100ms;
--dur-cinematic: 1600ms;
/* ─── design identity ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 400;
--hero-num-track: -0.025em;
--stage-pad-x: 140px;
--stage-pad-y: 100px;
--card-shadow:
0 1px 0 var(--rule),
0 24px 60px rgba(40, 30, 15, 0.18);
--shadow-stage:
0 60px 160px rgba(40, 30, 15, 0.35),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* ─── decoration: paper grain (multiply on the stage) ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' seed='4'/><feColorMatrix values='0 0 0 0 0.6 0 0 0 0 0.55 0 0 0 0 0.45 0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
--surface-pattern-size: 280px 280px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.45;
}
@@ -0,0 +1,28 @@
{
"id": "pastel-dream",
"name": "Pastel Dream",
"nameZh": "柔光梦",
"description": "Soft pastel canvas with cream card and a single sage-green accent. Plus Jakarta Sans throughout, generous rounded cards. Signature: faint multi-tone pill ribbon along one edge — friendly without being saccharine.",
"descriptionZh": "柔粉蓝灰底 + 奶油卡 + 单一鼠尾草绿强调色 + Plus Jakarta Sans。签名:单边多色 pill 色条。友好但不腻,适合女性向 / 教学 / onboarding。",
"mood": [
"light",
"pastel",
"friendly",
"soft",
"approachable",
"warm"
],
"bestFor": [
"产品 onboarding / 教程",
"友好教学 / 知识科普",
"女性向 / 生活方式",
"心理 / 健康 / 母婴",
"情绪向品牌片"
],
"preview": {
"shell": "#c8d9e6",
"surface": "#faf9f7",
"text": "#1f2429",
"accent": "#5a7c6a"
}
}
@@ -0,0 +1,67 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · pastel-dream
* Friendly modern pastel. Soft blue-gray shell, cream card surface,
* single sage-green as the only saturated accent. Plus Jakarta Sans
* everywhere — rounded geometric sans. SIGNATURE: large rounded
* cards (20px+) + faint multi-tone pill ribbon decoration (sage /
* lavender / blush / cream) tucked along the right edge.
*
* character knobs:
* • hero numbers — Plus Jakarta Sans, weight 800
* • rule — 1px solid soft gray
* • card — large 20px radius (friendly, rounded)
* • surface — pastel pill ribbon at right edge (very faint)
* • motion — soft springy (gentle overshoot)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #c8d9e6;
--surface: #faf9f7;
--surface-2: #ffffff;
--surface-3: #f0ecde;
--text: #1f2429;
--text-2: #3a4046;
--text-mute: #707880;
--text-faint: #a8b0b8;
--rule: #d8d4cb;
--accent: #5a7c6a; /* sage green */
--accent-soft: rgba(90, 124, 106, 0.10);
--accent-glow: rgba(90, 124, 106, 0.30);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Plus Jakarta Sans", "Inter", -apple-system, sans-serif;
--font-body: "Plus Jakarta Sans", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "cv02", "tnum";
/* ─── motion: soft springy ─── */
--dur-base: 520ms;
--dur-slow: 820ms;
--dur-cinematic: 1200ms;
/* ─── design identity: friendly rounded ─── */
--r-card: var(--r-lg); /* SIGNATURE — 20px+ friendly rounding */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 800;
--hero-num-track: -0.035em;
--stage-pad-x: 100px;
--stage-pad-y: 80px;
--card-shadow:
0 1px 0 var(--rule),
0 24px 56px rgba(40, 60, 80, 0.10);
--shadow-stage:
0 60px 160px rgba(50, 70, 90, 0.25),
0 0 0 1px rgba(0, 0, 0, 0.03);
/* ─── decoration: SIGNATURE — pastel pill ribbon at right edge ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1920' height='1080' preserveAspectRatio='xMaxYMid slice'><g><rect x='1820' y='180' width='44' height='160' rx='22' fill='%23f0b4d4' opacity='0.55'/><rect x='1820' y='360' width='44' height='220' rx='22' fill='%23a8d4c4' opacity='0.55'/><rect x='1820' y='600' width='44' height='140' rx='22' fill='%23c7b8ea' opacity='0.55'/><rect x='1820' y='760' width='44' height='180' rx='22' fill='%23ffe6a7' opacity='0.55'/></g></svg>");
--surface-pattern-size: 100% 100%;
--surface-pattern-blend: normal;
--surface-pattern-opacity: 0.9;
}
@@ -0,0 +1,28 @@
{
"id": "split-canvas",
"name": "Split Canvas",
"nameZh": "双拼画布",
"description": "Two-tone canvas: warm peach + cool lavender as paired surfaces. Outfit sans display, magenta accent. Signature: dual-tone surface (left peach / right lavender) — built for contrast and dialog chapters.",
"descriptionZh": "双色画布:暖蜜桃 + 冷薰衣草作为成对底色 + Outfit 几何无衬线 + 玫红强调。签名:双调底色(左桃 / 右紫),适合做对照与对话型章节。",
"mood": [
"light",
"playful",
"dual-tone",
"friendly",
"creative",
"warm-cool"
],
"bestFor": [
"双主题对比 / 辩论",
"故事讲述 / 对话",
"创意分享",
"轻量品牌片",
"概念对照型科普"
],
"preview": {
"shell": "#dcc7b8",
"surface": "#f5e6dc",
"text": "#1a1410",
"accent": "#d24a78"
}
}
@@ -0,0 +1,70 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · split-canvas
* Dual-tone canvas. Warm peach left + cool lavender right (50/50 hard
* vertical split realized via --surface-pattern). Outfit sans for all
* display + body, magenta accent. Chapters can place content on either
* side of the divide, or straddle it for compare / debate / dialog
* layouts.
*
* --surface stays peach (the "primary" half); --surface-2 = lavender
* is exposed for cards / panels that need to live on the cool side.
*
* character knobs:
* • hero numbers — Outfit, weight 800
* • rule — 1px solid warm
* • card — refined-md radius (12px)
* • surface — SIGNATURE — 50/50 peach/lavender hard split
* • motion — playful, medium-fast
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #dcc7b8;
--surface: #f5e6dc; /* peach (left half default) */
--surface-2: #e4dff0; /* lavender (right half / cool card) */
--surface-3: #f0d8c7;
--text: #1a1410;
--text-2: #322820;
--text-mute: #6b5a4d;
--text-faint: #9a8a7c;
--rule: #b8a89a;
--accent: #d24a78; /* magenta */
--accent-soft: rgba(210, 74, 120, 0.10);
--accent-glow: rgba(210, 74, 120, 0.35);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Outfit", "Plus Jakarta Sans", "Inter", -apple-system, sans-serif;
--font-body: "Outfit", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "tnum";
/* ─── motion: playful medium ─── */
--dur-base: 480ms;
--dur-slow: 780ms;
--dur-cinematic: 1150ms;
/* ─── design identity: dual-tone ─── */
--r-card: var(--r-md);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 800;
--hero-num-track: -0.04em;
--stage-pad-x: 100px;
--stage-pad-y: 80px;
--card-shadow:
0 1px 0 var(--rule),
0 20px 48px rgba(80, 50, 40, 0.12);
--shadow-stage:
0 60px 160px rgba(80, 50, 60, 0.30),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* ─── decoration: SIGNATURE — 50/50 hard peach/lavender split ─── */
--surface-pattern:
linear-gradient(90deg, transparent 0%, transparent 49.95%, #e4dff0 50.05%, #e4dff0 100%);
--surface-pattern-size: 100% 100%;
--surface-pattern-blend: normal;
--surface-pattern-opacity: 1;
}
@@ -0,0 +1,28 @@
{
"id": "sunset-zine",
"name": "Sunset Zine",
"nameZh": "日落 Zine",
"description": "Warm peach paper backdrop with a magenta accent and chunky Fraunces serif. Indie magazine / risograph zine vibe — playful, expressive, character-forward.",
"descriptionZh": "暖蜗色纸底 + 玫红强调色 + 厚体 Fraunces serif. 独立杂志 / 丝网印 zine 风, 俏皮有人情味.",
"mood": [
"light",
"magazine",
"zine",
"playful",
"warm",
"expressive"
],
"bestFor": [
"生活向 vlog",
"创意分享",
"趣味评测",
"小红书 / 抖音风",
"文化 / 表达型"
],
"preview": {
"shell": "#f7d8b5",
"surface": "#fbe8d3",
"text": "#2a1c12",
"accent": "#e6386b"
}
}
@@ -0,0 +1,65 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · sunset-zine
* Indie risograph zine. Warm peach paper, riso-magenta accent,
* Fraunces serif (with playful curves), DASHED rules (cut-and-paste
* feel), springy motion. Hero numbers are oversized italic Fraunces.
*
* character knobs:
* • hero numbers — italic Fraunces, very tight tracking
* • rule — 1.5px DASHED (zine cut line)
* • card — 12px radius (slight softening)
* • surface — coarser peach paper grain (riso noise)
* • motion — springy with overshoot (playful)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #f4d4b6;
--surface: #fcecd4;
--surface-2: #ffe6c8;
--surface-3: #f0d4a8;
--text: #2a1810;
--text-2: #4a2c20;
--text-mute: #7a5040;
--text-faint: #a07866;
--rule: #c89878;
--accent: #e91e63; /* riso magenta */
--accent-soft: rgba(233, 30, 99, 0.10);
--accent-glow: rgba(233, 30, 99, 0.40);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Fraunces", "Recoleta", "GT Sectra", "Playfair Display", serif;
--font-body: "Fraunces", "Source Serif Pro", "Noto Serif SC", serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "tnum", "dlig";
/* ─── motion: springy zine ─── */
--dur-base: 550ms;
--dur-slow: 850ms;
--dur-cinematic: 1300ms;
/* ─── design identity: zine ─── */
--r-card: var(--r-md); /* slight softening */
--r-stage: 0;
--rule-w: 2px;
--rule-style: dashed; /* SIGNATURE — cut-and-paste */
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 600;
--hero-num-track: -0.04em;
--stage-pad-x: 110px;
--stage-pad-y: 80px;
--card-shadow:
0 1px 0 var(--rule),
8px 8px 0 var(--accent-soft); /* offset peach shadow */
--shadow-stage:
0 60px 160px rgba(120, 70, 40, 0.30),
0 0 0 1px rgba(0, 0, 0, 0.04);
/* ─── decoration: coarse riso paper grain ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3' seed='12'/><feColorMatrix values='0 0 0 0 0.65 0 0 0 0 0.50 0 0 0 0 0.40 0 0 0 0.20 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
--surface-pattern-size: 200px 200px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.55;
}
@@ -0,0 +1,28 @@
{
"id": "swiss-ikb",
"name": "Swiss IKB",
"nameZh": "瑞士克莱因蓝",
"description": "Swiss International Style. Ultra-thin 200-weight Inter / Helvetica, crisp warm-white canvas, IKB (International Klein Blue) as the single high-saturation accent. Signature: 1px hairline grid + 200-weight hero numbers. Massimo Vignelli + Helvetica Forever energy.",
"descriptionZh": "瑞士国际主义风。**极细 200 weight** Inter / Helvetica + 净暖白底 + 克莱因蓝(IKB)单一锚点色。签名:1px 发丝网格 + 200 重字 hero 数字。Massimo Vignelli / Helvetica Forever 那种克制冷静。",
"mood": [
"light",
"swiss",
"modernist",
"international-style",
"grid",
"extra-light"
],
"bestFor": [
"AI / 科技产品发布",
"年度总结 / 数据汇报",
"设计 / 工程领域分享",
"严肃学术 / 国际化品牌",
"信息驱动设计 / 信息图"
],
"preview": {
"shell": "#e8e8e6",
"surface": "#fafaf8",
"text": "#0a0a0a",
"accent": "#002fa7"
}
}
@@ -0,0 +1,77 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · swiss-ikb
* Swiss International Style. The signature is two-fold:
* 1) ALL display + hero text uses extra-light (200 weight) Inter /
* Helvetica. Tight tracking, big sizes — "越大越细" (bigger gets
* thinner). This is the opposite of bauhaus-bold's 900 weight.
* 2) A 1px hairline grid (#e0e0e0) is baked into the stage as the
* designer's invisible-but-visible scaffolding.
* The single saturated accent is IKB (International Klein Blue) —
* crisp, deep, encyclopedic. Used for kicker / kpi / link emphasis.
*
* Swap accent for the other 3 guizang Swiss flavors by changing
* --accent only:
* • lemon yellow #FFD500 — set --accent-on to #0a0a0a (yellow can't
* carry white text)
* • lemon green #C5E803 — same, --accent-on = #0a0a0a
* • safety orange #FF6B35 — keep --accent-on white but use weight ≥ 600
*
* character knobs:
* • hero numbers — Inter, weight 200 (SIGNATURE — extra-light)
* • rule — 1px solid hairline grey
* • card — flat 0 radius (Swiss = direct rectangles)
* • surface — 1px hairline grid (very faint)
* • motion — punchy + linear (Swiss isn't springy)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #e8e8e6;
--surface: #fafaf8;
--surface-2: #f0f0ee;
--surface-3: #d4d4d2;
--text: #0a0a0a;
--text-2: #2a2a2a;
--text-mute: #737373;
--text-faint: #a8a8a8;
--rule: #e0e0e0;
--accent: #002fa7; /* IKB — International Klein Blue */
--accent-soft: rgba(0, 47, 167, 0.08);
--accent-glow: rgba(0, 47, 167, 0.35);
/* ─── fonts (sans everywhere — Swiss is anti-serif) ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Inter", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
--font-body: "Inter", "Helvetica Neue", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "tnum", "ss01", "ss02", "cv02";
/* ─── motion: punchy + linear (Swiss isn't springy) ─── */
--dur-quick: 180ms;
--dur-base: 400ms;
--dur-slow: 650ms;
--dur-cinematic: 1000ms;
/* ─── design identity: international style ─── */
--r-card: var(--r-flat); /* SIGNATURE — direct rectangles */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 200; /* SIGNATURE — extra-light */
--hero-num-track: -0.04em;
--stage-pad-x: 96px;
--stage-pad-y: 72px;
--card-shadow: inset 0 0 0 1px var(--rule);
--shadow-stage:
0 60px 160px rgba(0, 0, 0, 0.18),
0 0 0 1px rgba(0, 0, 0, 0.06);
/* ─── decoration: SIGNATURE — 1px hairline grid (the Swiss scaffold) ─── */
--surface-pattern:
linear-gradient(rgba(10, 10, 10, 0.045) 1px, transparent 1px),
linear-gradient(90deg, rgba(10, 10, 10, 0.045) 1px, transparent 1px);
--surface-pattern-size: 64px 64px;
--surface-pattern-blend: normal;
--surface-pattern-opacity: 0.85;
}
@@ -0,0 +1,28 @@
{
"id": "terminal-green",
"name": "Terminal Green",
"nameZh": "终端绿",
"description": "True-black backdrop with phosphor-green accent and JetBrains Mono everywhere. Matrix / hacker / 80s terminal vibe — best for technical demos and CLI walkthroughs.",
"descriptionZh": "纯黑底 + 磷光绿强调色, 全程等宽字体. Matrix 黑客 / 80 年代终端感, 最适合技术演示与 CLI 教程.",
"mood": [
"dark",
"terminal",
"hacker",
"monospace",
"phosphor",
"technical"
],
"bestFor": [
"CLI 工具教程",
"黑客 / 安全话题",
"技术演示",
"命令行实操",
"复古技术致敬"
],
"preview": {
"shell": "#050a05",
"surface": "#0a0f0a",
"text": "#d3f0d3",
"accent": "#00ff88"
}
}
@@ -0,0 +1,73 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · terminal-green
* 80s phosphor terminal. True-black backdrop, single phosphor green.
* JetBrains Mono is the ONLY font. Sharp 0-2px corners. CRT scanline
* overlay. Snappy motion (240ms / 480ms / 800ms) — terminal speed.
*
* character knobs:
* • hero numbers — mono, 0 letter-spacing, glow drop-shadow
* • rule — 1px solid phosphor green
* • card — 0 radius (terminal cells)
* • surface — horizontal scanlines (2px) + soft phosphor glow
* • motion — snappy + linear (terminal not springy)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #000000;
--surface: #050a07;
--surface-2: #0a1410;
--surface-3: #0f1c17;
--text: #41ff97;
--text-2: #2ed084;
--text-mute: #1a8a55;
--text-faint: #0f5c39;
--rule: rgba(65, 255, 151, 0.30);
--accent: #41ff97;
--accent-soft: rgba(65, 255, 151, 0.10);
--accent-glow: rgba(65, 255, 151, 0.7);
/* ─── fonts (mono everywhere) ─── */
--font-display-cn: "JetBrains Mono", "Noto Sans Mono CJK SC", monospace;
--font-display-en: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-body: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss05", "zero", "tnum";
/* ─── motion: snappy terminal ─── */
--ease-quart: cubic-bezier(0.4, 0, 0.2, 1);
--ease-expo: cubic-bezier(0.25, 0.1, 0.25, 1);
--dur-quick: 180ms;
--dur-base: 400ms;
--dur-slow: 650ms;
--dur-cinematic: 1000ms;
/* ─── design identity: terminal cells ─── */
--r-card: var(--r-flat); /* SIGNATURE — sharp corners */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-mono);
--hero-num-style: normal;
--hero-num-weight: 500;
--hero-num-track: 0;
--stage-pad-x: 80px;
--stage-pad-y: 60px;
--text-shadow: 0 0 8px rgba(65, 255, 151, 0.4);
--card-shadow: inset 0 0 0 1px var(--rule), 0 0 30px rgba(65, 255, 151, 0.05);
--shadow-stage:
0 60px 160px rgba(65, 255, 151, 0.10),
0 0 0 1px rgba(65, 255, 151, 0.15);
/* ─── decoration: CRT scanlines ─── */
--surface-pattern:
repeating-linear-gradient(
0deg,
transparent 0px,
transparent 2px,
rgba(65, 255, 151, 0.04) 2px,
rgba(65, 255, 151, 0.04) 3px
);
--surface-pattern-size: 100% 100%;
--surface-vignette:
radial-gradient(ellipse at center, transparent 30%, rgba(0, 30, 15, 0.6) 100%);
}
@@ -0,0 +1,28 @@
{
"id": "vintage-editorial",
"name": "Vintage Editorial",
"nameZh": "复古编辑",
"description": "Witty editorial cream canvas with chunky italic Fraunces and a warm terracotta accent. Signature: hairline geometric overlay (circle + line + dot). Personality-forward, conversational — like a magazine columnist who knows you'll laugh.",
"descriptionZh": "奶油底 + 厚体 Fraunces 斜体 + 暖陶强调色,有性格、会说话。签名:细线几何叠层(圆 + 线 + 点)。介于杂志专栏与艺术评论之间,俏皮、自信、有声音。",
"mood": [
"light",
"vintage",
"editorial",
"opinionated",
"witty",
"personality"
],
"bestFor": [
"个人见解 / 评论",
"文化随笔 / 美学话题",
"有声音的博主",
"设计 / 字体话题",
"文艺类长文改编"
],
"preview": {
"shell": "#e8e0cf",
"surface": "#f5f3ee",
"text": "#1a1a1a",
"accent": "#c25e3a"
}
}
@@ -0,0 +1,66 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · vintage-editorial
* Witty light editorial. Warm cream canvas, chunky italic Fraunces
* display, Work Sans body, warm-terra accent. Signature decoration:
* hairline geometric overlay (very faint dot + ring rhythm) so the
* stage reads "designed magazine" rather than blank cream.
*
* character knobs:
* • hero numbers — italic Fraunces, weight 700 (chunky editorial)
* • rule — 1px solid warm hairline
* • card — refined small radius
* • surface — faint geometric dot + ring overlay
* • motion — medium pace with subtle overshoot (witty)
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #e8e0cf;
--surface: #f5f3ee;
--surface-2: #fbf9f3;
--surface-3: #ebe4d2;
--text: #1a1a1a;
--text-2: #2e2a25;
--text-mute: #6b6357;
--text-faint: #9a9385;
--rule: #c8bfa8;
--accent: #c25e3a; /* warm terracotta */
--accent-soft: rgba(194, 94, 58, 0.10);
--accent-glow: rgba(194, 94, 58, 0.32);
/* ─── fonts ─── */
--font-display-cn: "Noto Serif SC", "Source Han Serif SC", serif;
--font-display-en: "Fraunces", "Recoleta", "GT Sectra", "Playfair Display", serif;
--font-body: "Work Sans", "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "ss01", "ss02", "tnum", "dlig";
/* ─── motion: medium with subtle witty overshoot ─── */
--dur-base: 600ms;
--dur-slow: 950ms;
--dur-cinematic: 1400ms;
/* ─── design identity: witty editorial ─── */
--r-card: var(--r-sm);
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: italic;
--hero-num-weight: 700;
--hero-num-track: -0.04em;
--stage-pad-x: 120px;
--stage-pad-y: 88px;
--card-shadow:
0 1px 0 var(--rule),
0 18px 48px rgba(60, 40, 20, 0.10);
--shadow-stage:
0 60px 160px rgba(60, 40, 20, 0.28),
0 0 0 1px rgba(0, 0, 0, 0.05);
/* ─── decoration: SIGNATURE — faint geometric dot + ring overlay ─── */
--surface-pattern:
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><g fill='none' stroke='%23a89878' stroke-width='1' opacity='0.16'><circle cx='80' cy='90' r='52'/><circle cx='340' cy='250' r='78'/><circle cx='180' cy='320' r='2.5' fill='%23a89878' stroke='none'/><circle cx='280' cy='110' r='2.5' fill='%23a89878' stroke='none'/><line x1='40' y1='200' x2='110' y2='200'/><line x1='300' y1='370' x2='370' y2='370'/></g></svg>");
--surface-pattern-size: 400px 400px;
--surface-pattern-blend: multiply;
--surface-pattern-opacity: 0.85;
}
@@ -0,0 +1,27 @@
{
"id": "warm-keynote",
"name": "Warm Keynote",
"nameZh": "暖色 Keynote",
"description": "Cream paper backdrop with a single teal accent and a soft warm grid drawn on the stage. SaaS keynote / editorial vibe.",
"descriptionZh": "奶油纸底 + 单一青色强调色 + 舞台上的暖色网格. SaaS Keynote 与编辑器气质.",
"mood": [
"light",
"keynote",
"editorial",
"warm",
"spring",
"saas"
],
"bestFor": [
"SaaS 产品 keynote",
"B 端产品发布",
"工具产品讲解",
"团队对外汇报"
],
"preview": {
"shell": "#FDFBF7",
"surface": "#FFFFFF",
"text": "#43302B",
"accent": "#14B8A6"
}
}
@@ -0,0 +1,66 @@
/* ─────────────────────────────────────────────────────────────────────
* Theme · warm-keynote
* Modern SaaS keynote with editorial warmth: warm cream canvas + sepia
* ink + teal accent + huge rounded glass slabs. Inter for everything,
* font-black for hero numbers (chunky modernist).
*
* character knobs:
* • hero numbers — chunky black sans (font-weight 900)
* • rule — 1px solid neutral hairline + 4px accent rule
* • card — large radius (24-32px), soft warm shadow
* • surface — warm 40px paper grid
* • motion — springy with slight overshoot
* ───────────────────────────────────────────────────────────────────── */
:root {
/* ─── palette ─── */
--shell: #f5efe1;
--surface: #fdfbf7;
--surface-2: #ffffff;
--surface-3: #f0e9d8;
--text: #43302b;
--text-2: #5b443d;
--text-mute: #8a7969;
--text-faint: #b8a994;
--rule: #e6dcc4;
--accent: #14b8a6;
--accent-soft: rgba(20, 184, 166, 0.10);
--accent-glow: rgba(20, 184, 166, 0.45);
/* ─── fonts ─── */
--font-display-cn: "Noto Sans SC", "Source Han Sans SC", -apple-system, sans-serif;
--font-display-en: "Inter", "SF Pro Display", -apple-system, sans-serif;
--font-body: "Inter", "Noto Sans SC", -apple-system, sans-serif;
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
--font-features: "cv11", "ss01", "tnum";
/* ─── motion: springy keynote ─── */
--dur-base: 500ms;
--dur-slow: 800ms;
--dur-cinematic: 1200ms;
/* ─── design identity: glass slabs ─── */
--r-card: var(--r-xl); /* 32px keynote slabs */
--r-stage: 0;
--rule-w: 1px;
--rule-style: solid;
--hero-num-font: var(--font-display-en);
--hero-num-style: normal;
--hero-num-weight: 900;
--hero-num-track: -0.04em;
--stage-pad-x: 100px;
--stage-pad-y: 80px;
--card-shadow:
0 1px 2px rgba(67, 48, 43, 0.04),
0 24px 60px rgba(67, 48, 43, 0.10);
--card-glass-bg: rgba(255, 255, 255, 0.85);
--card-glass-border: rgba(255, 255, 255, 0.9);
--shadow-stage:
0 60px 160px rgba(67, 48, 43, 0.18),
0 0 0 1px rgba(0, 0, 0, 0.03);
/* ─── decoration: warm 40px grid ─── */
--surface-pattern:
linear-gradient(rgba(190, 175, 150, 0.18) 1px, transparent 1px),
linear-gradient(90deg, rgba(190, 175, 150, 0.18) 1px, transparent 1px);
--surface-pattern-size: 40px 40px;
}