sintbot 1.0.16 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.en.json +99 -0
- package/CHANGELOG.json +99 -0
- package/README.md +20 -158
- package/README.zh-CN.md +20 -166
- package/THIRD-PARTY-NOTICES.md +394 -0
- package/bin/sintbot-v2.js +363 -0
- package/docs/AI-ASSISTED-INSTALL.md +11 -35
- package/docs/install.md +61 -167
- package/docs/zh-CN/AI-ASSISTED-INSTALL.md +11 -35
- package/docs/zh-CN/install.md +61 -165
- package/install.sh +84 -0
- package/package.json +73 -37
- package/src/agent/claudecode.js +149 -108
- package/src/agent/codexapp.js +458 -0
- package/src/agent/codexcode.js +210 -107
- package/src/agent/errtag.js +34 -0
- package/src/agent/privatecore.js +790 -0
- package/src/agent/privatecore.wasm +0 -0
- package/src/agent/runner.js +10 -8
- package/src/agent/winexec.js +35 -5
- package/src/c2install.js +117 -0
- package/src/config.js +2 -1
- package/src/core/c2cardeffectbridge.js +51 -0
- package/src/core/c2cardterminalpath.js +216 -0
- package/src/core/c2durableingress.js +148 -0
- package/src/core/c2durablejournal.js +1560 -0
- package/src/core/c2durableruntime.js +2361 -0
- package/src/core/c2eventidentity.js +90 -0
- package/src/core/c2globalfault.js +401 -0
- package/src/core/c2localeffectexecutor.js +193 -0
- package/src/core/c2payloadhandles.js +333 -0
- package/src/core/c2persistrelation.js +179 -0
- package/src/core/c2persiststate.js +342 -0
- package/src/core/c2platformrecoverysender.js +76 -0
- package/src/core/c2recoverygate.js +385 -0
- package/src/core/c2runnerinput.js +63 -0
- package/src/core/c2servicestartgate.js +103 -0
- package/src/core/c2sessionbridge.js +72 -0
- package/src/core/c2sourcequarantine.js +30 -0
- package/src/core/c2startuprecovery.js +105 -0
- package/src/core/c2successorbridge.js +151 -0
- package/src/core/c2terminaleffectbridge.js +154 -0
- package/src/core/c2terminalprune.js +108 -0
- package/src/core/c2turnprojection.js +177 -0
- package/src/core/enginecheckpoint.js +211 -0
- package/src/core/engineeffectcursor.js +394 -0
- package/src/core/enginestepcoordinator.js +183 -0
- package/src/core/store.js +52 -8
- package/src/core/v2engine.js +1469 -0
- package/src/platform/feishu.js +324 -67
- package/src/plugins.js +1 -9
- package/assets/design-styles/acid-pop.md +0 -155
- package/assets/design-styles/archive-index.md +0 -161
- package/assets/design-styles/art-deco.md +0 -164
- package/assets/design-styles/cinematic-noir.md +0 -178
- package/assets/design-styles/editorial.md +0 -121
- package/assets/design-styles/extra/README.md +0 -23
- package/assets/design-styles/extra/constructivism.md +0 -146
- package/assets/design-styles/extra/neo-brutalism.md +0 -175
- package/assets/design-styles/extra/new-wave.md +0 -166
- package/assets/design-styles/extra/nordic-material.md +0 -162
- package/assets/design-styles/extra/paris-couture.md +0 -162
- package/assets/design-styles/extra/tropical-modern.md +0 -168
- package/assets/design-styles/extra/ulm-functional.md +0 -182
- package/assets/design-styles/extra/wa-shikimen.md +0 -160
- package/assets/design-styles/extra/y2k-chrome.md +0 -172
- package/assets/design-styles/geometric-pop.md +0 -122
- package/assets/design-styles/hand-drawn.md +0 -117
- package/assets/design-styles/islamic-geometry.md +0 -155
- package/assets/design-styles/liquid-glass.md +0 -183
- package/assets/design-styles/neo-chinese.md +0 -136
- package/assets/design-styles/precision-mono.md +0 -156
- package/assets/design-styles/quiet-luxury.md +0 -163
- package/assets/design-styles/riso-print.md +0 -116
- package/assets/design-styles/soft-friendly.md +0 -174
- package/assets/design-styles/swiss-grid.md +0 -156
- package/assets/design-styles/tech-dark.md +0 -182
- package/assets/favicon.svg +0 -6
- package/assets/logo.svg +0 -24
- package/bin/sbot.js +0 -4716
- package/docs/slack-app-manifest.yaml +0 -104
- package/sbot.config.example.json +0 -235
- package/src/agent/askonce.js +0 -76
- package/src/agent/claudemodels.js +0 -60
- package/src/agent/claudestatus.js +0 -74
- package/src/agent/claudeusage.js +0 -200
- package/src/agent/codexstatus.js +0 -181
- package/src/agent/imagen.js +0 -458
- package/src/agent/quotaerr.js +0 -44
- package/src/agent/transienterr.js +0 -32
- package/src/cdp.js +0 -254
- package/src/cli-secret.js +0 -36
- package/src/clilang.js +0 -31
- package/src/core/cron.js +0 -182
- package/src/core/cronfire.js +0 -120
- package/src/core/cronrun.js +0 -116
- package/src/core/engine.js +0 -2758
- package/src/core/interfaces.js +0 -114
- package/src/core/issues.js +0 -185
- package/src/core/ledger.js +0 -30
- package/src/core/opsalert.js +0 -214
- package/src/core/pending.js +0 -123
- package/src/core/proxy.js +0 -424
- package/src/core/quotaalert.js +0 -79
- package/src/core/quotaerr.js +0 -55
- package/src/core/scheduler.js +0 -59
- package/src/design.js +0 -5161
- package/src/gitrepo.js +0 -150
- package/src/health.js +0 -353
- package/src/installdeps.js +0 -72
- package/src/leftover.js +0 -174
- package/src/platform/boardnotice.js +0 -77
- package/src/platform/boardops.js +0 -36
- package/src/platform/boardwatch.js +0 -447
- package/src/platform/cli.js +0 -45
- package/src/platform/slack.js +0 -1289
- package/src/platform/takeovercard.js +0 -37
- package/src/platform/wecom.js +0 -938
- package/src/platform/wecomcli.js +0 -128
- package/src/platform/wecomgate.js +0 -108
- package/src/platform/wecomname.js +0 -43
- package/src/platform/wecompoll.js +0 -241
- package/src/preview.js +0 -581
- package/src/projectmemory.js +0 -175
- package/src/service.js +0 -317
- package/src/ui/auth.js +0 -31
- package/src/ui/browser.html +0 -392
- package/src/ui/browserroutes.js +0 -234
- package/src/ui/console.html +0 -5526
- package/src/ui/dashboard.js +0 -168
- package/src/ui/feishulogin.js +0 -136
- package/src/ui/server.js +0 -2314
- package/src/ui/sessions.js +0 -78
- package/src/ui/takeover.js +0 -108
- package/src/updater.js +0 -243
- package/src/upgrade.js +0 -35
- package/src/usage.js +0 -144
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 暗场影像
|
|
3
|
-
description: 碳黑底上的满幅影像与巨字——胶片颗粒、四角暗角、骨白文字,像放映厅而不是控制台
|
|
4
|
-
name_en: "Cinematic Noir"
|
|
5
|
-
description_en: "Full-bleed imagery and huge type on carbon black, with film grain, corner vignettes and bone-white text. A screening room, not a dashboard."
|
|
6
|
-
suits: "品牌门面 · 生图插画"
|
|
7
|
-
colors:
|
|
8
|
-
bg: "#08090A"
|
|
9
|
-
surface: "#131417"
|
|
10
|
-
ink: "#EDE9E1"
|
|
11
|
-
sand: "#E6D5BB"
|
|
12
|
-
muted: "#8B8A86"
|
|
13
|
-
accent: "#FF4D00"
|
|
14
|
-
line: "#23252A"
|
|
15
|
-
fonts:
|
|
16
|
-
latin: "'Familjen Grotesk'"
|
|
17
|
-
cjk: sans
|
|
18
|
-
typography:
|
|
19
|
-
headline:
|
|
20
|
-
latin: "'PP Neue Montreal', 'Familjen Grotesk'"
|
|
21
|
-
fontSize: "88px"
|
|
22
|
-
fontWeight: 500
|
|
23
|
-
lineHeight: 0.95
|
|
24
|
-
letterSpacing: "-0.03em"
|
|
25
|
-
body:
|
|
26
|
-
fontSize: "17px"
|
|
27
|
-
fontWeight: 400
|
|
28
|
-
lineHeight: 1.55
|
|
29
|
-
measure: "60ch"
|
|
30
|
-
label:
|
|
31
|
-
latin: "'Martian Mono', 'Geist Mono'"
|
|
32
|
-
generic: "ui-monospace, monospace"
|
|
33
|
-
fontSize: "12px"
|
|
34
|
-
fontWeight: 400
|
|
35
|
-
letterSpacing: "0.12em"
|
|
36
|
-
textTransform: uppercase
|
|
37
|
-
border:
|
|
38
|
-
width: "0px"
|
|
39
|
-
style: solid
|
|
40
|
-
emphasis: "1px"
|
|
41
|
-
rounded:
|
|
42
|
-
none: 0px
|
|
43
|
-
spacing:
|
|
44
|
-
unit: "8px"
|
|
45
|
-
gutter: "24px"
|
|
46
|
-
maxWidth: "1440px"
|
|
47
|
-
elevation:
|
|
48
|
-
mode: flat
|
|
49
|
-
levels: "1"
|
|
50
|
-
imagery:
|
|
51
|
-
ratio: "16:9"
|
|
52
|
-
treatment: grayscale
|
|
53
|
-
crop: full-bleed
|
|
54
|
-
icon:
|
|
55
|
-
style: line
|
|
56
|
-
strokeWidth: "1px"
|
|
57
|
-
linecap: butt
|
|
58
|
-
corner: sharp
|
|
59
|
-
components:
|
|
60
|
-
button-primary:
|
|
61
|
-
backgroundColor: "{colors.accent}"
|
|
62
|
-
textColor: "{colors.bg}"
|
|
63
|
-
typography: "{typography.label}"
|
|
64
|
-
rounded: "{rounded.none}"
|
|
65
|
-
height: "48px"
|
|
66
|
-
padding: "24px"
|
|
67
|
-
button-secondary:
|
|
68
|
-
backgroundColor: "{colors.bg}"
|
|
69
|
-
textColor: "{colors.sand}"
|
|
70
|
-
typography: "{typography.label}"
|
|
71
|
-
rounded: "{rounded.none}"
|
|
72
|
-
height: "48px"
|
|
73
|
-
padding: "24px"
|
|
74
|
-
card:
|
|
75
|
-
backgroundColor: "{colors.surface}"
|
|
76
|
-
textColor: "{colors.ink}"
|
|
77
|
-
rounded: "{rounded.none}"
|
|
78
|
-
padding: "32px"
|
|
79
|
-
input-field:
|
|
80
|
-
backgroundColor: "{colors.surface}"
|
|
81
|
-
textColor: "{colors.ink}"
|
|
82
|
-
rounded: "{rounded.none}"
|
|
83
|
-
height: "48px"
|
|
84
|
-
padding: "16px"
|
|
85
|
-
tag:
|
|
86
|
-
backgroundColor: "{colors.surface}"
|
|
87
|
-
textColor: "{colors.muted}"
|
|
88
|
-
typography: "{typography.label}"
|
|
89
|
-
rounded: "{rounded.none}"
|
|
90
|
-
height: "26px"
|
|
91
|
-
padding: "10px"
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Overview
|
|
95
|
-
|
|
96
|
-
参照物(均实测过 CSS):TRIONN `trionn.com`(Awwwards SOTD,底色 `#040508`、文字 `#D8D8D8`,Familjen Grotesk 配 Martian Mono)、Obys 的 Experiment Space `experiment.obys.agency`、RISK `risk.film`(骨色 `#E6D5BB` 就是它的主文字色)、Monolog `bymonolog.com`。
|
|
97
|
-
|
|
98
|
-
这是**放映厅的暗**,不是软件的深色模式:满幅影像铺满屏,巨大的标题压在图上,小字是等宽全大写的场记标签,画面有颗粒、四角有暗角。气质是「胶片」—— 克制、有重量、不发光;所有戏都在图与字号的落差里。
|
|
99
|
-
|
|
100
|
-
**它和「科技深色」是两件事,别混** —— 一个给人操作,一个给人看:
|
|
101
|
-
- **科技深色 = 产品控制台**:石墨蓝底 `#0B0E14`、数据青标活数据、6/10px 圆角、有完整组件体系、画面是图表与密排卡片。
|
|
102
|
-
- **暗场影像 = 品牌影像面**:纯碳黑 `#08090A`、骨白与灼橙、圆角恒 0、几乎没有组件(只有图、字、线)、画面是满幅图 + 巨字 + 颗粒。
|
|
103
|
-
|
|
104
|
-
## Colors
|
|
105
|
-
|
|
106
|
-
- **bg (#08090A)**:碳黑。不用纯黑 `#000` —— 差这一点点,颗粒与暗角才有地方落。
|
|
107
|
-
- **surface (#131417)**:比底色只亮一档。它是唯一的「面」,靠明度差从底上浮起来。
|
|
108
|
-
- **ink (#EDE9E1)**:**暖白,不是纯白**。纯白 `#FFF` 在碳黑上 19.9:1,刺眼且发蓝;暖白 16.5:1,够用而且有胶片的奶感。**这条最容易被改错。**
|
|
109
|
-
- **sand (#E6D5BB)**:骨色(13.9:1),用于标题、引言、需要一点温度的大字。它与 ink 二选一定调:整站要么暖白主骨色点,要么反过来,**别两种主文字色并行**。
|
|
110
|
-
- **muted (#8B8A86)**:场记标签、图注、时间码(5.8:1)。
|
|
111
|
-
- **accent (#FF4D00)**:灼橙。**一屏一处**,通常只是一个词、一条线或一个小方块;黑字压橙 6.0:1,是它唯一能安全承载文字的用法。
|
|
112
|
-
- **line (#23252A)**:分区细线。深色画面的秩序靠线,不靠色块。
|
|
113
|
-
|
|
114
|
-
## Typography
|
|
115
|
-
|
|
116
|
-
- 标题 PP Neue Montreal / Familjen Grotesk,**字重 500 就够**,字距 `-0.03em`。大字靠大取胜不靠粗,800 字重在这里会显得吵。
|
|
117
|
-
- 正文 Familjen Grotesk 400,行长 60ch 以内;中文系统黑体(苹方 / 微软雅黑),字重同样压在 400-500。
|
|
118
|
-
- 小标签走等宽(Martian Mono / Geist Mono)+ 全大写 + `0.12em`,像镜头边上的元数据 —— 占比很小但不能没有;夹在标签里的汉字兜到系统黑体,与正文同一套。
|
|
119
|
-
- **字号跨度必须 ≥10 倍**:12px 标签 ↔ 140px 标题同屏出现,中间几乎不放东西。跨度不够,整套就塌回普通深色网页。
|
|
120
|
-
|
|
121
|
-
## Layout
|
|
122
|
-
|
|
123
|
-
- 满幅优先:图片贴四边出血,内容压在图上;左右边距 40px 只对文字块生效。
|
|
124
|
-
- 12 列网格**只用来对齐文字**,图片不受网格约束。
|
|
125
|
-
- 大量垂直留白:标题上下各留屏高的 15-20%,让巨字有呼吸。一屏一个信息单元 —— 这是滚动叙事的版式,不是信息聚合页。
|
|
126
|
-
|
|
127
|
-
## Elevation & Depth
|
|
128
|
-
|
|
129
|
-
底色是平的(`flat`,零投影),纵深靠**画面本身**造,三个来源:
|
|
130
|
-
|
|
131
|
-
1. **胶片颗粒**:整幅覆一层 `<feTurbulence baseFrequency="0.9">` 噪声,`opacity: .06; mix-blend-mode: overlay`。它让纯色区不再死板,是「胶片感」的九成。
|
|
132
|
-
2. **四角暗角**:`radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.45))` 压在图片与整屏上 —— 视线被收进画面中央,这是镜头的物理属性。
|
|
133
|
-
3. **明度分层**:bg `#08090A` 与 surface `#131417` 只差一档。面浮起来靠这一档,不靠边框也不靠阴影。
|
|
134
|
-
|
|
135
|
-
Don't:**任何 `box-shadow`**。碳黑上的柔阴影只会糊成一团脏,毫无立体感 —— 浅底那套抬升手法在这里全部失效。
|
|
136
|
-
|
|
137
|
-
## Shapes
|
|
138
|
-
|
|
139
|
-
形状语言 = **矩形与线**,没有第三种。
|
|
140
|
-
|
|
141
|
-
- **圆角恒 0**,包括图片、按钮、输入框、标签、头像。出现圆角这个风格就变成通用深色 App。
|
|
142
|
-
- 线 1px `line` 色、平头相交、不用虚线;线的作用是分区,不是装饰。
|
|
143
|
-
- 图标细线 1px、方头、直角,尺寸小(16-20px),永远不填色。
|
|
144
|
-
- 允许的图形:矩形、细线、`+` 十字标记(角标/裁切标记)、时间码方块。**不用圆形**,除非画的是真实的镜头或唱片。
|
|
145
|
-
|
|
146
|
-
## Components
|
|
147
|
-
|
|
148
|
-
这个风格几乎没有组件体系 —— 下面四个是「不得不有」时的写法,能不用就不用。
|
|
149
|
-
|
|
150
|
-
- **主按钮**:灼橙实色 + 黑字 + 直角,一屏最多一个。
|
|
151
|
-
- **次按钮**:透明底 + 骨色字 + 1px `line` 边;hover **只换文字色**,不加背景。
|
|
152
|
-
- **卡片**:surface 底、直角、32px 内边距、无边框无投影;卡片里不放第二张卡片。
|
|
153
|
-
- **输入框**:surface 底 + 底部 1px `line` 单边线(不是四边框),聚焦态底线换 accent,**不加发光**。
|
|
154
|
-
- **标签**:等宽小字 + surface 底,成排横列,像胶片边上的编号条。
|
|
155
|
-
|
|
156
|
-
## Do's and Don'ts
|
|
157
|
-
|
|
158
|
-
- Do:图先行 —— 先定一张能撑满屏的图再排字。这个风格没有好图就不成立。
|
|
159
|
-
- Do:颗粒与暗角**全站统一一套参数**,只调一次,别一页一个强度。
|
|
160
|
-
- Do:accent 保持稀缺;想加第二处橙色时,先删掉一处。
|
|
161
|
-
- Don't:发光、霓虹、辉光描边 —— 那是赛博朋克,不是影像。
|
|
162
|
-
- Don't:纯白 `#FFF` 正文(见 Colors)。
|
|
163
|
-
- Don't:任何 `box-shadow`、任何圆角、任何渐变按钮。
|
|
164
|
-
- Don't:彩色照片直接上版;先转灰阶或压成低饱和暖调,否则配色纪律立刻散架。
|
|
165
|
-
- Don't:把它当控制台用 —— 要密排数据与组件时改用「科技深色」。
|
|
166
|
-
|
|
167
|
-
## Composition
|
|
168
|
-
|
|
169
|
-
- 满幅图 + 压图巨标题 + 一行等宽小字,三层结束,一屏就这么多。
|
|
170
|
-
- 标题可以压在图片较暗的区域,但**必须先压一层暗角或 40% 黑蒙版**再放字。
|
|
171
|
-
- 图片处理成灰阶或单一暖调,硬裁、贴边出血,不加边框不加圆角。
|
|
172
|
-
- 序列感来自节奏:满幅图 → 大留白文字页 → 满幅图,交替推进。
|
|
173
|
-
|
|
174
|
-
## Image Prompt Templates
|
|
175
|
-
|
|
176
|
-
- base: "cinematic dark editorial layout, full-bleed desaturated film still, deep carbon black background (#08090A), warm bone-white oversized headline typography (#EDE9E1), tiny uppercase monospaced caption with wide letter spacing, one burnt orange accent detail (#FF4D00), heavy film grain overlay, strong vignette at corners, sharp 90-degree corners, no glow, flat and matte, 35mm photographic mood"
|
|
177
|
-
- negative: "neon glow, cyberpunk purple pink, rounded corners, drop shadow, pure white text, glossy 3D render, lens flare, dashboard widgets, colorful saturated photo, gradient background"
|
|
178
|
-
- 注:先写**镜头与光**(侧逆光/夜景街灯/雾)再写内容;文字宁少勿多,一两个大词就够。中文版面补 "clean CJK sans-serif typography, light weight"。
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 杂志编辑
|
|
3
|
-
description: 独立生活杂志的版式——大图、衬线大标题、不对称留白,安静而有故事感
|
|
4
|
-
name_en: "Editorial"
|
|
5
|
-
description_en: "The layout of an independent lifestyle magazine: big images, large serif headlines and asymmetric white space. Quiet, with a story to tell."
|
|
6
|
-
suits: "内容阅读"
|
|
7
|
-
colors:
|
|
8
|
-
paper: "#FBF9F4"
|
|
9
|
-
ink: "#1A1A1A"
|
|
10
|
-
accent: "#7A342E"
|
|
11
|
-
muted: "#8C8578"
|
|
12
|
-
fonts:
|
|
13
|
-
cjk: sans
|
|
14
|
-
typography:
|
|
15
|
-
headline:
|
|
16
|
-
latin: "'Canela', 'Playfair Display'"
|
|
17
|
-
cjk: serif
|
|
18
|
-
fontSize: "56px"
|
|
19
|
-
fontWeight: 500
|
|
20
|
-
standfirst:
|
|
21
|
-
generic: "serif"
|
|
22
|
-
fontWeight: 400
|
|
23
|
-
body:
|
|
24
|
-
latin: "'Neue Haas Grotesk'"
|
|
25
|
-
fontSize: "17px"
|
|
26
|
-
lineHeight: 1.75
|
|
27
|
-
measure: "58ch"
|
|
28
|
-
fontWeight: 400
|
|
29
|
-
caption:
|
|
30
|
-
fontWeight: 400
|
|
31
|
-
letterSpacing: "0.06em"
|
|
32
|
-
border:
|
|
33
|
-
width: "0px"
|
|
34
|
-
style: solid
|
|
35
|
-
emphasis: "1px"
|
|
36
|
-
rounded:
|
|
37
|
-
none: 0px
|
|
38
|
-
spacing:
|
|
39
|
-
unit: 12px
|
|
40
|
-
omitted: ["Components"]
|
|
41
|
-
imagery:
|
|
42
|
-
ratio: "4:5"
|
|
43
|
-
treatment: none
|
|
44
|
-
crop: full-bleed
|
|
45
|
-
icon:
|
|
46
|
-
style: line
|
|
47
|
-
strokeWidth: "1px"
|
|
48
|
-
linecap: butt
|
|
49
|
-
corner: sharp
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Overview
|
|
53
|
-
|
|
54
|
-
参照物:Kinfolk、Monocle、《生活月刊》的内页——摄影当主角、文字当配乐的编辑版式。
|
|
55
|
-
一整页只讲一件事:一张好图 + 一个衬线大标题 + 两三行导语。
|
|
56
|
-
气质是安静、笃定、略带温度的高级感;所有戏剧性都交给「图片与留白的比例」。
|
|
57
|
-
|
|
58
|
-
## Colors
|
|
59
|
-
|
|
60
|
-
- **paper (#FBF9F4)**:米白纸底。
|
|
61
|
-
- **ink (#1A1A1A)**:标题与正文的近黑。
|
|
62
|
-
- **accent (#7A342E)**:酒红,只用于页码、栏头、一个关键词——编辑元素,不是视觉主角。
|
|
63
|
-
- **muted (#8C8578)**:图注、辅助信息的暖灰。
|
|
64
|
-
- 摄影本身是第五种颜色:选图时偏自然光、低饱和、有生活痕迹的画面。
|
|
65
|
-
|
|
66
|
-
## Typography
|
|
67
|
-
|
|
68
|
-
- 标题衬线(拉丁 Canela/Playfair 一路的现代衬线,中文走系统宋体、思源宋体兜底),字号大但字重不重(500 以内)——大而轻是编辑感的来源。
|
|
69
|
-
- 正文与图注用无衬线小字,与标题形成衬线/无衬线的质感对比。
|
|
70
|
-
- 导语(standfirst)单独一档:比正文大一号的衬线,行长短、行距松。
|
|
71
|
-
|
|
72
|
-
## Layout
|
|
73
|
-
|
|
74
|
-
- 不对称是纪律:图占 2/3 版面时字压另 1/3;绝不左右居中对称。
|
|
75
|
-
- 大图出血(贴边),小图留宽白边;两种用法不混在同一版。
|
|
76
|
-
- 图注紧贴图片,小字 + 一条细线或什么都不加。
|
|
77
|
-
|
|
78
|
-
## Elevation & Depth
|
|
79
|
-
|
|
80
|
-
版面是平的。层级来自**图片的裁切方式**与**字号**,不来自 z 轴。
|
|
81
|
-
|
|
82
|
-
1. **满出血大图**:顶到版心之外、贴到纸边——它是版面上最「上层」的东西,**一页只有一张**。
|
|
83
|
-
2. **版心内图**:规矩落在栏宽上,与正文同层;它是内容,不是主角。
|
|
84
|
-
3. **正文唯一的层级工具是字号与行距**:56px 标题 / standfirst / 17px 正文 / caption 小字,
|
|
85
|
-
四档到底,不靠颜色不靠底色块。
|
|
86
|
-
|
|
87
|
-
Don't:投影、卡片、圆角容器——**这三样一出现,就从杂志变成了网页**。
|
|
88
|
-
Don't:用底色块框住一段文字来「强调」;编辑版式的强调靠位置与留白。
|
|
89
|
-
|
|
90
|
-
## Shapes
|
|
91
|
-
|
|
92
|
-
形状语言 = **矩形**,而且是**照片本身的矩形**。
|
|
93
|
-
|
|
94
|
-
- **圆角恒 0**(`rounded.none`),包括图片、图注、页脚。圆角是屏幕的语言,不是印刷的。
|
|
95
|
-
- **图片形状只有两种**:4:5 竖构图(默认)与满出血。**不裁圆、不裁异形、不加白色描边**。
|
|
96
|
-
- **线条**:0.5-1px 发丝线,ink 或 muted 色、端点 butt;全页最多两条(栏间线、图注线),
|
|
97
|
-
**不用作装饰**。
|
|
98
|
-
- `border.width: 0` 是默认状态——元素一律不描边;`emphasis 1px` 只留给图注上方那一条。
|
|
99
|
-
- 允许的图形:矩形、页码数字、一个 accent 色的小方点(栏头标记)。**没有图标。**
|
|
100
|
-
- **图标**:版面里不放装饰性图标(见上);功能位不得不用时(分享、目录、翻页),用与栏间线
|
|
101
|
-
同一支笔——1px 发丝线、端点 butt、转角是直角,不描粗也不填实心。
|
|
102
|
-
|
|
103
|
-
## Do's and Don'ts
|
|
104
|
-
|
|
105
|
-
- Don't:一切元素居中堆成轴对称——那是 PPT,不是杂志。
|
|
106
|
-
- Don't:装饰性分割线、花边、角标。
|
|
107
|
-
- Don't:图片加圆角、加白色描边、加投影。
|
|
108
|
-
- Don't:标题用粗黑体大写吼人;编辑风的音量靠字号,不靠字重。
|
|
109
|
-
- Do:留白敢占一半版面;一页只有一个视觉入口。
|
|
110
|
-
- Do:图片调性统一(同一组图同一种光线与饱和度)。
|
|
111
|
-
|
|
112
|
-
## Composition
|
|
113
|
-
|
|
114
|
-
- 封面/海报:主图 + 压图或邻接的衬线大标题 + 极小的辅助信息行,三层结束。
|
|
115
|
-
- 内页式排版:栏宽窄(45-65 字符),行距 1.6 以上,段间不空行用首行缩进(中文)。
|
|
116
|
-
|
|
117
|
-
## Image Prompt Templates
|
|
118
|
-
|
|
119
|
-
- base: "editorial magazine layout, large natural-light photograph as hero, warm off-white paper (#FBF9F4), elegant light-weight serif headline, asymmetric composition with generous white space, small sans-serif captions, one burgundy accent detail (#7A342E), Kinfolk-style quiet sophistication, printed matter aesthetic"
|
|
120
|
-
- negative: "centered symmetrical layout, decorative dividers, rounded photo corners, drop shadow, bold heavy typography, oversaturated colors, stock-photo look"
|
|
121
|
-
- 注:选图气质大于构图技巧——描述画面时写清光线(自然光/侧光)与饱和度(低),否则出图容易素材库味。
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# 备选风格档(不进默认风格库)
|
|
2
|
-
|
|
3
|
-
这一层的档**不会出现在 `sbot design styles` 里** —— `listStyles` 只扫上一级目录,
|
|
4
|
-
子目录天然不被收录。放在这里的都是**质量合格但位置太挤**的风格:库里已经有一个
|
|
5
|
-
离它很近的了,两个并排出候选图时用户分不出差别,反而让选择变难。
|
|
6
|
-
|
|
7
|
-
要启用某一个:`mv extra/<slug>.md ../` 即可,代码零改动。
|
|
8
|
-
|
|
9
|
-
## 为什么砍这九个(判据是「彼此够不够远」,不是「好不好」)
|
|
10
|
-
|
|
11
|
-
| 档 | 与谁太近 |
|
|
12
|
-
|---|---|
|
|
13
|
-
| `paris-couture` 巴黎高定 | ≈ 静奢(都是浅底近黑字、0 圆角 0 描边,靠强调色与间距单位区分) |
|
|
14
|
-
| `nordic-material` 北欧物性 | ≈ 杂志编辑 + 圆融亲和的交集 |
|
|
15
|
-
| `wa-shikimen` 和・色面 | 与新中式方向相反(色面平涂 vs 线描、灰调伝統色 vs 暖宣纸),但对用户就是「两个东方风格」 |
|
|
16
|
-
| `constructivism` 构成主义 | ≈ 几何构成(纪律其实相反:斜轴/动势 vs 正交/静态,但视觉相近) |
|
|
17
|
-
| `tropical-modern` 热带现代 | 撞构成主义 —— `muted` 是**同一个 hex** `#6E6A63`,红只差 2 |
|
|
18
|
-
| `new-wave` 新浪潮 | 最难稳定复现:它要求「精确计算的失序」,AI 极易做成随机旋转 |
|
|
19
|
-
| `y2k-chrome` 千禧未来 | ≈ 酸性荧光(都是高能 + 铬/荧光;分界是「光打在表面」vs「光穿过物体」) |
|
|
20
|
-
| `ulm-functional` 乌尔姆功能 | 撞精密仪表 —— 同 `suits`、同 4px unit、圆角 2/4 对 4/6 |
|
|
21
|
-
| `neo-brutalism` 新粗野主义 | 2022-2023 被组件库大量复制,已经是廉价感的信号;「吵闹」那一格由酸性荧光填 |
|
|
22
|
-
|
|
23
|
-
内容本身没有问题:实测色值、真实参照、文化误用清单都在,捡回来即可用。
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 构成主义
|
|
3
|
-
description: 一条斜轴、一个红、超窄超粗的大字与摄影蒙太奇——像装配工业品一样把版面搭起来
|
|
4
|
-
suits: "活动推广 · 品牌门面"
|
|
5
|
-
colors:
|
|
6
|
-
paper: "#F0EBE1"
|
|
7
|
-
ink: "#111111"
|
|
8
|
-
red: "#D6202A"
|
|
9
|
-
overprint: "#8E1418"
|
|
10
|
-
muted: "#6E6A63"
|
|
11
|
-
line: "#111111"
|
|
12
|
-
fonts:
|
|
13
|
-
latin: "'Archivo Narrow'"
|
|
14
|
-
cjk: sans
|
|
15
|
-
typography:
|
|
16
|
-
headline:
|
|
17
|
-
latin: "'Druk Condensed Super', 'Anton'"
|
|
18
|
-
fontSize: "72px"
|
|
19
|
-
fontWeight: 900
|
|
20
|
-
lineHeight: 0.92
|
|
21
|
-
letterSpacing: "-0.01em"
|
|
22
|
-
body:
|
|
23
|
-
fontSize: "16px"
|
|
24
|
-
fontWeight: 400
|
|
25
|
-
lineHeight: 1.55
|
|
26
|
-
measure: "58ch"
|
|
27
|
-
label:
|
|
28
|
-
fontSize: "12px"
|
|
29
|
-
fontWeight: 700
|
|
30
|
-
letterSpacing: "0.12em"
|
|
31
|
-
border:
|
|
32
|
-
width: "3px"
|
|
33
|
-
style: solid
|
|
34
|
-
emphasis: "4px"
|
|
35
|
-
rounded:
|
|
36
|
-
none: 0px
|
|
37
|
-
circle: 999px
|
|
38
|
-
spacing:
|
|
39
|
-
unit: "8px"
|
|
40
|
-
gutter: "24px"
|
|
41
|
-
margin: "40px"
|
|
42
|
-
maxWidth: "1080px"
|
|
43
|
-
columns: 12
|
|
44
|
-
elevation:
|
|
45
|
-
mode: flat
|
|
46
|
-
levels: "0"
|
|
47
|
-
imagery:
|
|
48
|
-
ratio: "3:4"
|
|
49
|
-
treatment: duotone
|
|
50
|
-
crop: hard
|
|
51
|
-
icon:
|
|
52
|
-
style: solid
|
|
53
|
-
strokeWidth: "3px"
|
|
54
|
-
linecap: butt
|
|
55
|
-
corner: sharp
|
|
56
|
-
components:
|
|
57
|
-
button-primary:
|
|
58
|
-
backgroundColor: "{colors.red}"
|
|
59
|
-
textColor: "{colors.paper}"
|
|
60
|
-
typography: "{typography.label}"
|
|
61
|
-
rounded: "{rounded.none}"
|
|
62
|
-
height: "46px"
|
|
63
|
-
padding: "20px"
|
|
64
|
-
tag:
|
|
65
|
-
backgroundColor: "{colors.ink}"
|
|
66
|
-
textColor: "{colors.paper}"
|
|
67
|
-
typography: "{typography.label}"
|
|
68
|
-
rounded: "{rounded.none}"
|
|
69
|
-
height: "26px"
|
|
70
|
-
card:
|
|
71
|
-
backgroundColor: "{colors.paper}"
|
|
72
|
-
textColor: "{colors.ink}"
|
|
73
|
-
rounded: "{rounded.none}"
|
|
74
|
-
padding: "24px"
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Overview
|
|
78
|
-
|
|
79
|
-
参照物:1920 年代苏俄,三条原则撑起全部形式 —— **tectonics**(暴露结构)、**faktura**(暴露材料本性)、**construction**(作品要像工业品一样被装配出来)。
|
|
80
|
-
**Rodchenko《书籍!》**(1924,为 Lengiz 出版社做的广告,模特 Lilya Brik,呐喊手势 + 摄影蒙太奇 + 几何切分)是这套语言最出名的一张,**El Lissitzky《用红楔子攻打白军》**(1919)是最纯的一张,Stenberg 兄弟的电影海报把它推到极致。
|
|
81
|
-
**当代传承链条**:Barbara Kruger 的白字红底 Futura Bold Oblique 直接继承这套语言 → Supreme 1994 年的 box logo,James Jebbia 交给设计师时参考的正是一本 Kruger 作品集。
|
|
82
|
-
一句话:**斜轴 + 一个红 + 超窄超粗的字 + 高反差照片**,四件东西被装配在一起,不是被排版出来的。
|
|
83
|
-
|
|
84
|
-
## Colors
|
|
85
|
-
|
|
86
|
-
- **paper (#F0EBE1)**:毛边纸白,微黄。纸感是 faktura 的一部分,纯白会把整件事变成 PPT。
|
|
87
|
-
- **ink (#111111)**:文字、粗线、几何块,paper 上 15.9:1。**line** 与它同值。
|
|
88
|
-
- **red (#D6202A)**:**唯一的彩色**,面积占 15-30% 且**集中成块**,不打散成一堆小红点。实测红底白字 5.1:1(AA 通过),但**正文别用红底** —— 红是喊口号的,不是读文章的。
|
|
89
|
-
- **overprint (#8E1418)**:红块与黑块重叠处压出来的叠印色。它是被"算"出来的,不是被"选"出来的。
|
|
90
|
-
- **muted (#6E6A63)**:次级文字 / 图注,paper 上 4.5:1。
|
|
91
|
-
- ⚠ 加第二个彩色就滑向孟菲斯。想加颜色时,先问是不是构图没搭好。
|
|
92
|
-
|
|
93
|
-
## Typography
|
|
94
|
-
|
|
95
|
-
- 标题 Druk Condensed Super(Commercial Type,Berton Hasebe 2014;Condensed 一支是为 *Bloomberg Businessweek* 2011 年度特刊而画),**需授权**;免费回退 **Anton** —— 超窄超粗、x-height 极高,是最接近的替身。中文用思源黑体 Heavy 适度压窄。
|
|
96
|
-
- 正文 Archivo Narrow 400;小标签同族 700 + 0.12em 字距、全大写。
|
|
97
|
-
- **标题与正文字号拉开 ≥6 倍**(72/16)。构成主义的张力来自尺度悬殊 —— 中间字号是它的敌人。
|
|
98
|
-
- 大字要**咬合**:字距 -0.01em、行高 0.92,字与字几乎无空隙,整块字读作一个几何体;文字可沿斜轴排、可竖排、可被色块切断,但**永远保持可读**,不做镜像与扭曲。
|
|
99
|
-
|
|
100
|
-
## Layout
|
|
101
|
-
|
|
102
|
-
- 版面是**装配**出来的:先定斜轴,再挂上大字块、照片、色块、细节文字,每件都露出接缝。
|
|
103
|
-
- **一条贯穿版面的斜轴**,全站只用**一个**角度,从 15° / 30° / 45° 里选定一个(30° 最典型)。⚠ **不允许"随便转几度"** —— 多个角度并存的那一刻,它就从构成主义变成杂乱。
|
|
104
|
-
- 不对称是纪律:重心刻意偏离中线,靠一块大红或一张大照片压住另一侧;允许出血,允许元素被版心切断(切断本身就是"结构"的证据)。
|
|
105
|
-
- 分隔用 **2-4px 粗线**,**不用 1px 细线** —— 细线是瑞士网格的语言,进不了这套。
|
|
106
|
-
|
|
107
|
-
## Elevation & Depth
|
|
108
|
-
|
|
109
|
-
`flat`。没有投影、没有渐变、没有模糊,层次只有一个合法来源:**叠印**。
|
|
110
|
-
|
|
111
|
-
- 红块压在黑块上,重叠处变成 **overprint (#8E1418)**,黑压红同理。这是印刷的物理事实,也是这个风格唯一承认的"第三个颜色"。
|
|
112
|
-
- 照片与色块的关系也是叠印式的:照片做高反差单色,直接压在红块上,交界不留白边。
|
|
113
|
-
- 需要更多层次时,加的是**尺度差**与**方向差**(大 vs 小、正 vs 斜),不是加 z 轴。Don't:任何 `box-shadow`、任何渐变、任何"浮起来"的卡片 —— 这里所有东西都贴在纸上。
|
|
114
|
-
|
|
115
|
-
## Shapes
|
|
116
|
-
|
|
117
|
-
- **圆角恒 0**。唯一的圆是**实心红圆盘**,它是构件(标记、节点、句点),不是圆角。
|
|
118
|
-
- 基本词汇:矩形条、三角楔、实心圆盘、粗线、箭头,全部实心平涂,不描边;线宽 3px 起(强调 4px),端点 butt,直角相交,图标同规格。
|
|
119
|
-
- 图片 3:4 竖构图硬裁 —— 竖版是海报的画幅,也让斜轴有地方跑。
|
|
120
|
-
|
|
121
|
-
## Components
|
|
122
|
-
|
|
123
|
-
- **主按钮**:红底 paper 字、直角、全大写窄体标签;一屏一个,它就是那句口号。
|
|
124
|
-
- **标签**:黑底 paper 字,小而紧,成组出现做编号与分类。
|
|
125
|
-
- **卡片 / 输入框**:paper 底 + 3px 黑边 + 直角,**无投影**;卡片可以被斜轴切过,输入框聚焦时边框换红、不加发光。
|
|
126
|
-
|
|
127
|
-
## Do's and Don'ts
|
|
128
|
-
|
|
129
|
-
- Do:彩色只有一个红,面积 15-30% 且集中成块;一个角度贯穿全站,所有斜的东西共用它。
|
|
130
|
-
- Do:照片先做高反差单色化(黑 + 纸,或红 + 纸)再进版面,不用原色照片。
|
|
131
|
-
- Do:留出纸的呼吸区,大字块附近尤其要空。
|
|
132
|
-
- Don't:加第二个彩色(加了就滑向孟菲斯);用渐变或投影模拟层次 —— **叠印是唯一合法层次**。
|
|
133
|
-
- Don't:让斜轴变成多个角度并存,不要"随手转 7°";不用 1px 细线、圆角、居中对称构图。
|
|
134
|
-
- **与「几何构成」的分界**(这两者常被混为一谈,但纪律完全相反):包豪斯是**静态、正交、三原色平衡**,形状为形状本身服务,**不用照片**;构成主义是**动态、斜轴、单一红色的政治性不对称**,而**摄影蒙太奇正是它的核心手法**。看到照片被切碎压在色块上,基本就是构成主义。
|
|
135
|
-
- **与「瑞士网格」的分界**:瑞士可以看成构成主义的**降温版** —— 抽掉斜轴与政治性,只留下秩序、网格与无衬线。反过来说:给瑞士网格加一条 30° 斜轴和一块大红,它就往回走了 30 年。
|
|
136
|
-
|
|
137
|
-
## Composition
|
|
138
|
-
|
|
139
|
-
- 海报:一条 30° 斜轴 + 一个占满 2/3 的窄粗大字块 + 一张高反差人像 + 一块红,重心偏向一侧。
|
|
140
|
-
- 图解:粗线连接实心几何块,标注用全大写窄体小字,编号用实心红圆盘;文字量少而重 —— 一句口号 + 几个数据,不写段落。
|
|
141
|
-
|
|
142
|
-
## Image Prompt Templates
|
|
143
|
-
|
|
144
|
-
- base: "Russian constructivist poster, 1920s Rodchenko and Lissitzky style, off-white paper (#F0EBE1) with pure black (#111111) and a single bold red (#D6202A), one strong 30-degree diagonal axis, ultra-condensed heavy sans-serif type locked tightly together, high-contrast duotone photo montage of a figure, solid red circle and triangular wedge as constructed elements, thick 3px rules, flat overprint where red meets black, asymmetric composition, no shadows"
|
|
145
|
-
- negative: "gradient, drop shadow, 3D render, multiple accent colors, pastel, rounded corners, centered symmetric layout, thin hairlines, glossy, Memphis style, random rotation angles"
|
|
146
|
-
- 注:角度要写死("one single 30-degree diagonal"),不写模型会到处乱转;颜色写成 "exactly one red, everything else black and paper";照片必须点名 "high-contrast duotone photomontage",否则会给你一张全彩摄影。中文版面补 "heavy condensed CJK sans-serif"。
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 新粗野主义
|
|
3
|
-
description: 粗黑描边配零模糊硬投影,元素像贴纸压在纸上——拒绝一切柔化,要被一眼记住
|
|
4
|
-
suits: "活动推广 · 品牌门面"
|
|
5
|
-
colors:
|
|
6
|
-
paper: "#FFFDF5"
|
|
7
|
-
ink: "#0A0A0A"
|
|
8
|
-
muted: "#4F4B45"
|
|
9
|
-
accent: "#FFD23F"
|
|
10
|
-
coral: "#FF6B6B"
|
|
11
|
-
sky: "#74B9FF"
|
|
12
|
-
line: "#0A0A0A"
|
|
13
|
-
fonts:
|
|
14
|
-
latin: "'Space Grotesk'"
|
|
15
|
-
cjk: sans
|
|
16
|
-
typography:
|
|
17
|
-
headline:
|
|
18
|
-
latin: "'Syne', 'Archivo Black'"
|
|
19
|
-
fontSize: "52px"
|
|
20
|
-
fontWeight: 800
|
|
21
|
-
lineHeight: 1.05
|
|
22
|
-
letterSpacing: "-0.02em"
|
|
23
|
-
body:
|
|
24
|
-
fontSize: "17px"
|
|
25
|
-
fontWeight: 500
|
|
26
|
-
lineHeight: 1.6
|
|
27
|
-
measure: "62ch"
|
|
28
|
-
label:
|
|
29
|
-
latin: "'Space Mono', 'Noto Sans Mono CJK SC'"
|
|
30
|
-
fontSize: "12px"
|
|
31
|
-
fontWeight: 700
|
|
32
|
-
letterSpacing: "0.08em"
|
|
33
|
-
border:
|
|
34
|
-
width: "3px"
|
|
35
|
-
style: solid
|
|
36
|
-
emphasis: "3px"
|
|
37
|
-
rounded:
|
|
38
|
-
none: 0px
|
|
39
|
-
spacing:
|
|
40
|
-
unit: "8px"
|
|
41
|
-
gutter: "24px"
|
|
42
|
-
margin: "32px"
|
|
43
|
-
maxWidth: "1120px"
|
|
44
|
-
columns: 12
|
|
45
|
-
elevation:
|
|
46
|
-
mode: offset
|
|
47
|
-
levels: "2"
|
|
48
|
-
imagery:
|
|
49
|
-
ratio: "1:1"
|
|
50
|
-
treatment: duotone
|
|
51
|
-
crop: hard
|
|
52
|
-
icon:
|
|
53
|
-
style: solid
|
|
54
|
-
strokeWidth: "3px"
|
|
55
|
-
linecap: butt
|
|
56
|
-
corner: sharp
|
|
57
|
-
components:
|
|
58
|
-
button-primary:
|
|
59
|
-
backgroundColor: "{colors.accent}"
|
|
60
|
-
textColor: "{colors.ink}"
|
|
61
|
-
typography: "{typography.label}"
|
|
62
|
-
rounded: "{rounded.none}"
|
|
63
|
-
height: "44px"
|
|
64
|
-
padding: "16px"
|
|
65
|
-
button-primary-hover:
|
|
66
|
-
backgroundColor: "{colors.coral}"
|
|
67
|
-
card:
|
|
68
|
-
backgroundColor: "{colors.paper}"
|
|
69
|
-
rounded: "{rounded.none}"
|
|
70
|
-
padding: "24px"
|
|
71
|
-
input-field:
|
|
72
|
-
backgroundColor: "{colors.paper}"
|
|
73
|
-
textColor: "{colors.ink}"
|
|
74
|
-
rounded: "{rounded.none}"
|
|
75
|
-
height: "44px"
|
|
76
|
-
tag:
|
|
77
|
-
backgroundColor: "{colors.sky}"
|
|
78
|
-
textColor: "{colors.ink}"
|
|
79
|
-
rounded: "{rounded.none}"
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## Overview
|
|
83
|
-
|
|
84
|
-
参照物:Gumroad 2021 年那次重设计、Tony's Chocolonely 的包装与官网。
|
|
85
|
-
底子是建筑的粗野主义(*béton brut*,粗混凝土)——不掩饰材料、不修饰接缝。
|
|
86
|
-
落到界面上就一句话:**每个元素都是一张贴纸,硬边、平涂、压在纸上有影子。**
|
|
87
|
-
气质是「不装」——它不追求高级,追求被记住。
|
|
88
|
-
|
|
89
|
-
## Colors
|
|
90
|
-
|
|
91
|
-
- **paper (#FFFDF5)**:微暖白纸底。不用纯白 —— 纯白配纯黑太像未加样式的 HTML。
|
|
92
|
-
- **ink (#0A0A0A)**:文字、描边、投影**三者同一个值**。这是这个风格最省事也最关键的一条。
|
|
93
|
-
- **muted (#4F4B45)**:次级文字。
|
|
94
|
-
- **accent (#FFD23F)**:主强调。黄底黑字 12.6:1,是唯一能安全承载文字的强调色。
|
|
95
|
-
- **coral (#FF6B6B)** / **sky (#74B9FF)**:第二、第三色块。
|
|
96
|
-
⚠ **只做块面,不做文字底** —— coral 上放白字只有 2.6:1,必挂。
|
|
97
|
-
- **line (#0A0A0A)**:与 ink 同色。这个风格里"线"和"字"本来就是一回事。
|
|
98
|
-
|
|
99
|
-
## Typography
|
|
100
|
-
|
|
101
|
-
- 标题用 Syne 或 Archivo Black,字重 800,字距收到 -0.02em —— 字要挤、要重、要占满。
|
|
102
|
-
- 正文 Space Grotesk 500 —— 比常规正文重一档,才压得住粗描边。
|
|
103
|
-
- 小标签走等宽(Space Mono)+ 全大写 + 0.08em 字距,是这个风格的签名细节。
|
|
104
|
-
- **标题与正文反差 3 倍以上**(52/17)。这个风格没有中间字号,要么很大要么很小。
|
|
105
|
-
|
|
106
|
-
## Layout
|
|
107
|
-
|
|
108
|
-
- 12 列网格,但**允许元素越栏** —— 贴纸不会正好贴在格子里。
|
|
109
|
-
- 留白靠大间距(24/32/48 跳档),不靠细腻的行距微调。粗描边需要大留白才不糊。
|
|
110
|
-
- 卡片可以轻微重叠(压住彼此 8-16px),重叠处**不做半透明**,后来的直接盖住。
|
|
111
|
-
|
|
112
|
-
## Elevation & Depth
|
|
113
|
-
|
|
114
|
-
深度是**物理的**:元素有厚度,光是平行光,所以影子是实心的、不散。
|
|
115
|
-
|
|
116
|
-
1. **Level 0**:paper 纸底,所有内容落在上面。
|
|
117
|
-
2. **Level 1**(卡片/按钮/标签):`3px 3px 0 0 #0A0A0A` —— 零模糊、零扩散,投影色就是 ink。
|
|
118
|
-
3. **Level 2**(弹层/悬停):`5px 5px 0 0 #0A0A0A`。**最多到这里**,第三层就糊了。
|
|
119
|
-
|
|
120
|
-
**交互态是这个风格的灵魂**:hover 阴影涨到 `8px 8px 0`;按下时元素 `translate(3px, 3px)`
|
|
121
|
-
同时阴影归零 —— 「压下去」的物理感来自**位移**,不来自颜色变化。
|
|
122
|
-
|
|
123
|
-
Don't:任何带 blur 的阴影(哪怕 1px);多个方向的投影;阴影用灰色或半透明黑
|
|
124
|
-
(必须是 ink 纯色,这是"硬"的来源)。
|
|
125
|
-
|
|
126
|
-
## Shapes
|
|
127
|
-
|
|
128
|
-
形状语言 = **贴纸**。硬边、直角、粗轮廓。
|
|
129
|
-
|
|
130
|
-
- **圆角恒 0**(`rounded.none`),**无例外**,包括头像、图标底、输入框。
|
|
131
|
-
圆角出现的那一刻这个风格就死了。
|
|
132
|
-
- **描边 3px 全站统一**,不按元素大小变。转角族 `rounded`(直角),不用切角。
|
|
133
|
-
- **线条**:3px 实线,端点 butt(平头),直角相交。不用虚线。
|
|
134
|
-
- **允许的形状**:矩形、正圆(仅作徽章与图标底)、45° 实心三角(仅作箭头)。
|
|
135
|
-
|
|
136
|
-
## Components
|
|
137
|
-
|
|
138
|
-
- **按钮**:accent 实色 + 3px 黑边 + 硬投影,一屏最多两个。次级按钮用 paper 底同款黑边。
|
|
139
|
-
- **输入框**:与按钮同规格(44px 高、3px 边、直角)。聚焦态 = 边框换 coral,**不加外发光**。
|
|
140
|
-
- **标签**:sky 或 coral 实色 + 黑边,小而密集地成排出现是这个风格的典型画面。
|
|
141
|
-
- **卡片**:paper 底 + 黑边 + 硬投影。**卡片里不再套卡片**(投影叠投影立刻脏)。
|
|
142
|
-
|
|
143
|
-
## Do's and Don'ts
|
|
144
|
-
|
|
145
|
-
- Do:描边宽度全站锁死一个值(这里是 3px),粗细统一比粗细讲究更重要。
|
|
146
|
-
- Do:正文区永远 paper 底 + ink 字(19:1);彩色只给块面、按钮、标签。
|
|
147
|
-
- Do:强调色一屏 ≤2 个。第三个想出现时,先删掉一个。
|
|
148
|
-
- Don't:任何圆角、任何模糊阴影、任何渐变。
|
|
149
|
-
- Don't:把 coral / sky 当文字底(对比度不够,见 Colors)。
|
|
150
|
-
- Don't:**做成那个烂大街的模板** —— 这是本风格最大的风险,单列一节说。
|
|
151
|
-
|
|
152
|
-
## 怎么做才不像那个模板
|
|
153
|
-
|
|
154
|
-
这个风格在 2022-2023 被组件库大量复制,已经有了一套「一眼看穿是套模板」的长相:
|
|
155
|
-
**黄底 + 黑边 + 圆角 12px + 卡片网格 + Inter 字体 + 到处都是彩色小方块**。
|
|
156
|
-
它现在反而是廉价感的信号 —— 收进本库是因为它的**手法**(硬投影、按压位移)有价值,
|
|
157
|
-
不是因为那个长相。四条硬约束把它和模板分开:
|
|
158
|
-
|
|
159
|
-
1. **圆角必须是 0**。模板几乎都用 8-12px 圆角配黑边 —— 那是「粗野的柔化版」,自相矛盾。
|
|
160
|
-
2. **不用 Inter / Roboto**。用 Syne 或 Archivo Black 这类有性格的显示字,标题才立得住。
|
|
161
|
-
3. **色块要大、要少**。模板的通病是满屏彩色小方块;这里的正解是一两块大色面。
|
|
162
|
-
4. **投影颜色 = 文字颜色**。模板常用灰色或半透明黑投影,那一步就软了。
|
|
163
|
-
|
|
164
|
-
## Composition
|
|
165
|
-
|
|
166
|
-
- 单主体、强对比:一个大标题 + 一块大色面 + 一个按钮,就是一屏。
|
|
167
|
-
- 元素可以出血、可以歪一点点(≤2°),但**绝不旋转超过 5°** —— 那是孟菲斯不是粗野。
|
|
168
|
-
- 图片处理成双色(duotone,ink + 一个强调色),硬裁成正方,加 3px 黑边。
|
|
169
|
-
|
|
170
|
-
## Image Prompt Templates
|
|
171
|
-
|
|
172
|
-
- base: "neo-brutalist web design, thick 3px solid black outlines, hard offset drop shadow with zero blur, flat solid color blocks, warm off-white paper background (#FFFDF5), pure black text (#0A0A0A), one bold yellow accent (#FFD23F), sharp 90-degree corners, no rounded corners, no gradients, sticker-like layered elements, bold condensed display typography"
|
|
173
|
-
- negative: "rounded corners, soft shadow, blur, gradient, glassmorphism, pastel, thin lines, drop shadow with spread, 3D render, glossy"
|
|
174
|
-
- 注:生成中文版面时补 "clean CJK sans-serif typography, heavy weight";文字宁少勿多,
|
|
175
|
-
这个风格靠一两个大词撑场面。
|