构成主义 Web 设计 · 资源清单
验证规则:本清单中每一条都标注了验证方式。星数与许可证来自
api.github.com的实际返回(不是搜索结果摘要),字体西里尔覆盖来自 Google Fonts 官方元数据(1950 个字族逐族查询),CSS 兼容性来自 MDN 页面上的 Baseline 标识。 未验证的会明确标注「未验证」——请勿把未验证条目当作已确认事实使用。
1. 核心结论(先看这个)
要开始一个构成主义网页项目,真正需要装的其实只有 6 样东西:
| # | 需要什么 | 用什么 | 为什么是它 |
|---|---|---|---|
| 1 | 一个现成的构成主义站点源码当起点 | lsqkk/gallery(4★, MIT) |
⭐ 全清单风格吻合度最高。Astro 构建,含 feTurbulence 噪点 multiply 叠层 + 印刷裁切线 + 西里尔水印。星数极低但风格与授权都最干净 |
| 2 | 一套 token 骨架 | argyleink/open-props(5,539★, MIT) |
把 --radius-* 全部覆写为 0、只用粗描边 + 固定间距阶梯,就得到构成主义 token 体系 |
| 3 | 一套字体 | Oswald(标题)+ PT Sans(正文)+ JetBrains Mono(标签)+ 得意黑(中文标题) | 全部实测支持西里尔;得意黑是中文里少见的窄斜海报字(OFL-1.1) |
| 4 | 半调网点 + 纸颗粒 | paper-design/shaders(3,589★, Apache-2.0) |
含 dithering / dot-grid / grain-gradient / perlin-noise,正是印刷质感的全部所需 |
| 5 | 印刷级排版细节 | davidmerfield/Typeset(2,680★, CC0) |
悬挂标点、小型大写、视觉边距对齐——浏览器至今没实现,它用 <1KB CSS 补齐。CC0 = 无条件商用 |
| 6 | 基础层 + 生成式几何 | csstools/sanitize.css(CC0)+ css-doodle/css-doodle(6,060★, MIT) |
sanitize 是 CC0 最佳基础层;css-doodle 用几十行生成整版至上主义几何构图 |
其余都是"锦上添花"或"仅作参考,不要抄代码"。
2. GitHub 资源
2.1 ⭐ 最值得先拿的(实测星数 + 许可证,全部已验证)
| 仓库 | Star | 许可证 | 作用 | 本项目怎么用 |
|---|---|---|---|---|
lsqkk/gallery |
4 | MIT ✅ | 俄国至上主义/苏联构成主义整站源码(Astro) | ⭐ 建议作为项目视觉与代码起点。实测含 src/styles/global.css(186 行),其中两段关键代码:①噪点纸纹 = 内联 data-URI SVG feTurbulence(baseFrequency 0.85, numOctaves 4)+ mix-blend-mode: multiply;②印刷裁切线(四角 28×28 border 角标)与西里尔 watermark(font-size: clamp(6rem,18vw,16rem), color: rgba(17,17,17,.035)) |
argyleink/open-props |
5,539 | MIT ✅ | 一整套 CSS 自定义属性 token | 覆写 --radius-* 为 0,用 --border-size-1..5(1px→25px)做粗描边,--size-000..10 做严格间距阶梯 |
edwardtufte/tufte-css |
6,575 | MIT ✅ | 印刷编辑版式(边注 sidenotes / 宽栏 / 图注) | 构成主义海报的"窄栏正文 + 旁注 + 图注"结构可直接复用;配色需换成红/黑 |
paper-design/shaders |
3,589 | Apache-2.0 ✅ | 零依赖 canvas/WebGL shader 集合 | ⭐ 实测存在 packages/shaders/src/shaders/ 下的 dithering.ts / dot-grid.ts / grain-gradient.ts / perlin-noise.ts —— 半调网点 + 纸张颗粒的合规终极方案(Apache-2.0 含专利授权,商用友好) |
davidmerfield/Typeset |
2,680 | CC0-1.0 ✅ | HTML 预处理器,补齐精细印刷特性 | ⭐ 提供悬挂标点、连字、视觉边距对齐、小型大写、软连字符。无需客户端 JS,CSS <1KB。构成主义排版的"齐头/悬挂引号/小 caps"正是它的强项 |
css-doodle/css-doodle |
6,060 | MIT ✅ | 用 CSS 做视觉艺术与创意编程的 Web Component | 内建图案生成、随机种子、噪声与 SVG 形状导出 → 用几十行生成整版至上主义几何构图 |
yanliudesign/mono-color-skill |
3,410 | MIT ✅ | "单墨印刷"图像编辑规范 | ⭐ 暖纸底、半调网点照片、主动留白、克制排版 —— 可直接当图像处理规范读(与构成主义同源) |
wintermute-cell/magick.css |
1,039 | MIT ✅ | 单文件 classless CSS,气质介于 LaTeX 与老派规则书 | 作者自陈师承 concrete.css 与 Tufte CSS,以及粗野主义的"可用性即设计"伦理。适合长文档/宣言页 |
pagedjs/pagedjs |
1,530 | MIT ✅ | 浏览器内实现 CSS Paged Media(真实分页/页眉页脚/页码) | 若项目要"网页 + 可打印海报/小册子"双形态,这是唯一成熟方案。@page 规则可直接写 A3/A2 海报规格 |
LukyVj/colofilter.css |
619 | MIT ✅ | 纯 CSS 双色调滤镜库 | 把照片变成"双色油墨印刷" |
louismerlin/concrete.css |
635 | MIT ✅ | classless CSS 框架,--radius 默认就是 0px |
天生硬边,6 个变量(--fg/--bg/--font/--font-h/--main-width/--radius)就能重设 |
rickymetz/duotonegenerator |
89 | MIT ✅ | CSS 双色调生成器 | 调红色/黑色双色调的具体色值 |
dirkweber/svg-filter-typeeffects |
99 | MIT ✅ | SVG 滤镜做字体特效 | 套印错位/字体质感的进阶做法 |
evestera/svg-halftone |
69 | MIT ✅ | 把位图转成 SVG 半调图案 | 适合离线预生成网点素材 |
sahilsaini5/ditherwave |
85 | MIT ✅ | 极小 WebGL2 抖动原语(React),Bayer/halftone/ASCII/误差扩散,<8kb gz | 需要动态抖动时用 |
codrops/UnrevealEffects |
74 | MIT ✅ | 覆盖元素 + clip-path 做页面转场 |
Codrops 中少见的 MIT 授权,优先用它而不是其他 Codrops 仓库 |
bennettfeely/clippy |
~942 | ⚠️ 无许可证 | clip-path 形状可视化生成器 |
手搓构成主义斜切多边形(三角/斜条/箭头)最快。但无授权 → 只用它的可视化结果,不用它的代码 |
boguz/bauhaus-illustration-generator |
5 | MIT ✅ | 交互式包豪斯插画生成器 | 图形素材参考 |
howardz27/poster-generator-skill |
11 | MIT ✅ | 20 种海报风格的 Agent Skill,含 constructivist-impact 风格文件 |
参考它对"构成主义冲击力"的拆解方式 |
luckdvr/photo-riso-poster |
52 | MIT ✅ | 把照片/文字做成 riso 印刷风海报 | riso 与构成主义同源(少色套印),可借鉴 |
jgfall/inkdrum |
3 | MIT ✅ | 浏览器端 risograph 印刷模拟(最多 6 个墨鼓) | 找配色的实验工具 |
2.2 快速试风格 / 原型比稿
| 仓库 | Star | 许可证 | 作用 |
|---|---|---|---|
dohliam/dropin-minimal-css |
1,832 | MIT ✅ | 一键切换预览几十种极简 CSS 框架,快速比风格 |
Luispitik/ux-ui-premium-direction-style-selector |
26–30 | MIT ✅ | 在 Next.js+Tailwind 项目里并排部署 8 种视觉方向(Swiss Minimal → Neo-Brutalist),选中后导出 Tailwind config / CSS 变量 / 基础组件 → 方向比稿阶段直接可用 |
5777-wq/design-styles |
0 | MIT ✅ | 7 套完整设计语言(Swiss / Bauhaus / Neubrutalism 等),含"铁律"、design token、研究笔记与零构建模板 |
zx/new.css |
4,050 | MIT ✅ | classless CSS 框架 |
oxalorg/sakura |
4,386 | MIT ✅ | 极简 CSS 框架/主题 |
pruger/tiny-brutalism-css |
157 | MIT ✅ | <4KB 粗野主义组件框架(单色 + 硬边 + 强投影)。作者自称 Ostblockromantik 风格 |
ecgang/halftone-ui |
5 | MIT ✅ | 半调网点组件库 |
emineugurlu/ASIA |
4 | MIT ✅ | 探索高级 CSS 合成(compositing)的高冲击力落地页 —— 少数有 MIT 许可的混合模式实战案例 |
2.3 风格相近的 Agent Skill(可读其"设计原则"章节当 brief)
| 仓库 | Star | 许可证 | 说明 |
|---|---|---|---|
adewale/swiss-poster-skill |
4 | MIT ✅ | 瑞士海报设计系统:表现性排版、破格构图、叠印、出血、几何张力 |
peterhadorn/swiss-design-skill |
1 | MIT ✅ | 瑞士设计传统建站 |
Ygria/poster-grid-inspector |
11 | MIT ✅ | 用视觉模型反推海报的网格系统 —— 很适合用来拆解构成主义海报 |
⚠️ op7418/guizang-ppt-skill |
~25,900 | ❌ AGPL-3.0 | 内容对口(杂志编辑风/瑞士排版),但 AGPL 对网络服务有传染性,闭源商用需谨慎 |
2.4 与构成主义直接相关的作品复刻(个人项目,作参考)
| 仓库 | Star | 许可证 | 状态 |
|---|---|---|---|
coftob/Lissitzkys-Roter-Keil |
0 | MIT ✅ | 研究《红色楔子》的语义形式语言。有 MIT 授权,可安全取用 |
oziomarc/poster-recreation |
0 | ⚠️ 无许可证 | 纯 HTML+CSS 复刻李西茨基海报。独立核实未成功(API 限流),仅搜索结果显示存在 |
reyrove/Deconstructed-Stage-Generative-Art |
— | — | ⚠️ 未能独立核实。检索结果可见(种子生成式至上主义平面),但独立核实返回 404/不可确认 → 标记为未验证 |
josiebb/about2squares |
— | — | ⚠️ 未能独立核实(同上),标记为未验证 |
patlakh-dev/black-square-dapp |
0–1 | ⚠️ 无许可证 | 至上主义启发的 Web3 dApp,看"单一色块 + 极端负空间"的处理 |
提醒:这些都是 0–5 星的小项目,未经生产验证。参考做法可以,不要指望代码质量。
2.5 为什么没有现成的「构成主义 CSS 框架」
实测:以 constructivist 搜索 GitHub 全站,总共只有 78 个仓库,排在前面的全是机器学习/教育学("constructivism" 在教育学里是"建构主义")——与视觉设计无关。
结论:这个风格的 CSS 框架生态是空白的。 GitHub 上不存在高星、在维护的"构成主义 CSS 框架",也不存在独立的、维护中的"印刷套印错位(misregistration)CSS 库"(css+overprint 搜索仅 1 个 0 星无许可证仓库)。
这不是坏事——意味着你做出来的东西不会像某个模板。本项目的 constructivism-kit/kv.css 就是为填补这个空白写的。
3. ⚠️ 许可证红灯清单(无许可证 = 默认保留所有权利)
"没有 LICENSE 文件"不等于"可以随便用"。 以下仓库经实测确认没有许可证文件,不可直接复制代码进项目,只可阅读借鉴思路:
yoksel/svg-filters(最全的 SVG 滤镜配方,含 paper/dust/zebra/contour preset)、cjimmy/grainy-gradients(最好的 CSS 噪点配方)、tomren1/dither-with-css(Bayer 抖动算法)、bennettfeely/clippy、yoksel/relative-clip-path、davetron5000/brutalist-web-design、codrops/PageTransitions、codrops/DistortedButtonEffects、Volorf/Processing-Posters、gsbm/web-avant-gardes、desandro/breathing-halftone、stewdio/stereoscopic、Kyles-World/Futura-Font
特别点名两个高价值但高风险:
- yoksel/svg-filters —— 最全的 SVG 滤镜配方库,但无授权
- cjimmy/grainy-gradients —— 最好的纯 CSS 噪点渐变配方,但无授权
替代方案:这两者的效果都可用 MIT 的
lsqkk/gallery写法 或 Apache-2.0 的paper-design/shaders等价实现,授权干净。
非标准/易误读许可证(用前必须读原文):
| 仓库 | 问题 |
|---|---|
codrops/CSSGlitchEffect |
自定义条款:可整合进商业项目,但禁止 as-is 转售/再分发/sell pluginized;免费插件必须可见署名并链接原作(而 codrops/UnrevealEffects 是 MIT,优先用它) |
pinecreativelabs/Brutalist-Framework |
437★,SPDX NOASSERTION(有 LICENSE.txt 但非标准)→ 商用前人工审阅 |
IanLunn/Hover |
29,399★,SPDX NOASSERTION → 人工审阅;替代品:argyleink/transition.css(Apache-2.0) |
inuitcss/inuitcss |
NOASSERTION,且更新停滞(2023) |
notofonts/noto-cjk |
API 未检测到许可证文件 → 请自行在仓库确认(Noto 系列实际为 OFL-1.1) |
Kyles-World/Futura-Font |
无许可证。Futura 属商业字体体系(Bauer/Neufville),几乎不可能合法再分发 → 弃用,改用 OFL 的 Jost(Jost 实测含西里尔) |
BSoDium/SVG-gradients |
GPL-2.0(传染性) |
已归档/停止维护(可读不可依赖):
picocss/pico(16,847★,API 实测 archived: true)、zichy/vicco、imperavi/kube、gsbm/web-avant-gardes(已归档)、kristoferjoseph/flexboxgrid(2020)、desandro/breathing-halftone(2015)、stewdio/stereoscopic(2014)、grsmv/bauhaus.css(2015)
4. 字体资源
4.1 结论速查(全部实测西里尔覆盖)
数据来源:
https://fonts.google.com/metadata/fonts(1950 个字族逐族查询subsets字段),非凭印象。
✅ 支持西里尔:Oswald、Unbounded、Russo One、Rubik Mono One、Jost、Play、PT Sans / PT Serif / PT Mono、PT Sans Narrow、Roboto Condensed、Alumni Sans、Manrope、Onest、Golos Text、Commissioner、Noto Sans / Serif、Source Serif 4、IBM Plex Sans / Mono、JetBrains Mono、Fira Sans、Alegreya Sans、Comfortaa、Prata、Podkova、Oranienbaum、Yeseva One、Ruslan Display、Prosto One、Kelly Slab、Iceberg、Marmelad、Inter、Geist / Geist Mono
❌ 不支持西里尔(页面出现俄文即掉字体):Anton、Bebas Neue、Archivo、Archivo Black、Barlow、Barlow Condensed、Bricolage Grotesque、Anybody、Chivo、Space Grotesk、Syne、Teko、Saira Condensed、Fjalla One、League Gothic、League Spartan、Big Shoulders、Alfa Slab One、Ultra、Rye、Bevan、Rozha One、Chonburi、Michroma、Orbitron、Syncopate、Bodoni Moda
🔴 这是本次调研最有价值的单条信息。 - Anton / Bebas Neue / Archivo Black / Barlow Condensed 是设计师做"海报标题"时最顺手的四个选择 —— 全都没有西里尔支持。 -
League Gothic是"窄体大写"的最佳选手之一,可惜不能上西里尔。 - 所有开源"工业木活字 / slab"字体(Alfa Slab One / Ultra / Rye / Bevan / Rozha One / Chonburi)全部无西里尔。 该气质只能靠 Oswald / Russo One / Ruslan Display / PT Sans Narrow 近似。
⚠️ 未找到:Molot(常被推荐用于构成主义海报的西里尔展示体)在 Google Fonts 元数据中 NOT-IN-GF,也未定位到可信的开源仓库 → 不要使用来路不明的副本。
4.2 中文字体(GitHub API 实测星数与许可证)
| 字体 | 仓库 | Star | 许可证 | 定位 |
|---|---|---|---|---|
| 得意黑 Smiley Sans | atelier-anchor/smiley-sans |
14,905 | OFL-1.1 ✅(GitHub License API + Debian 版权文件双重核验) | ⭐ 中文标题首选。窄体+斜骨架,中文里极少数能当"海报字"的开源字体。倾斜、硬朗,天生带速度感与斜切气质 |
| 霞鹜文楷 | lxgw/LxgwWenKai |
26,243 | OFL-1.1 ✅(保留字体名 "霞鹜" 与 "LXGW") | 正文/引文,楷体,气质偏温 → 适合当"引文/档案/批注"的对比层(报纸拼贴感),不要做大标题 |
| 思源黑体 Source Han Sans | adobe-fonts/source-han-sans |
17,331 | OFL-1.1 ✅(实测 LICENSE.txt 原文确认) | ⭐ 首选中文正文/标题。7 字重(含 Heavy/Black)+ 可变字体,能对齐怪诞体的粗黑字重 |
| 未来荧黑 Glow Sans | welai/glow-sans |
— | ⚠️ MIT(注意:是 MIT,不是 OFL) | 可变字重/字宽,现代几何黑体,适合与怪诞体对齐字宽 |
| 朱雀仿宋 Zhuque Fangsong | TrionesType/zhuque |
— | OFL-1.1 ✅ | 仿宋,"旧报纸 / 公文"印刷复古层 |
| Noto Sans SC | google/fonts |
— | OFL-1.1 ✅(ofl/ 前缀即 OFL) |
与思源黑体同源,Web 上子集化后最省流量 |
| Noto CJK | notofonts/noto-cjk |
4,093 | OFL-1.1(实测 Sans/LICENSE 首行原文确认) |
兜底 |
🔴 中文授权陷阱:阿里巴巴普惠体、MiSans、HarmonyOS Sans、OPPO Sans 都不是开源许可证 —— 它们是厂商的「免费商用授权」,条款与 OFL 不同(通常不可修改、不可再分发字体文件、有附加限制)。 必须逐字读官方授权说明,不要当成 OFL 用。本次未能取得这些厂商授权页的可引用 URL,请自行到官方页面确认。
🔴 中文字体必须做
unicode-range分包:思源黑体全量有数 MB,直接@font-face引入会严重拖慢首屏。
4.3 其他含西里尔的开源怪诞体(非 Google Fonts)
| 字体 | 仓库 | Star | 许可证 |
|---|---|---|---|
| Inter | rsms/inter |
19,948 | OFL-1.1,含西里尔,轴 opsz,wght |
| Geist / Geist Mono | vercel/geist-font |
3,637 | OFL-1.1,含西里尔,现代几何怪诞 |
| IBM Plex Sans Condensed | IBM/plex |
11,685 | OFL-1.1,注意其西里尔覆盖标为 cyrillic-ext(非完整 cyrillic 子集) |
| Jost | indestructible-type/Jost |
753 | SPDX 报 NOASSERTION,但仓库内实际是 OFL.txt → 按 OFL 使用。Futura 的合法开源替代品,含西里尔 |
| Giphurs | Corne2Plum3/Giphurs |
106 | OFL-1.1,新怪诞体,含拉丁/希腊/西里尔 |
| Zalando Sans | zalando/sans |
72 | OFL-1.1,可变品牌字体 |
拿字体请认准
google/fonts仓库中每个 family 目录内的OFL.txt/LICENSE.txt。
4.4 字体获取与判定技巧
# ① 权威判定西里尔覆盖(查 1950 个字族的官方元数据)
$m = Invoke-RestMethod 'https://fonts.google.com/metadata/fonts'
$m.familyMetadataList | Where-Object { $_.subsets -contains 'cyrillic' } | Select-Object family
# ② 另一条判定路径:带 text= 请求西里尔字符,字体不含该字形会报错
Invoke-WebRequest 'https://fonts.googleapis.com/css2?family=Oswald&text=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82'
4.5 ⚠️ 字体授权的两个"看起来能用、其实有坑"
① Fontshare(ITF FFL)—— 建议整个排除
| 项 | 实测结论 |
|---|---|
| 授权 | ITF FFL Version 2.0(2026-08-17)。可商用、可自托管(CSS @font-face)、署名非强制 |
| 🔴 但明文禁止 | subset(子集化)、格式转换、放进任何 repository 分发 |
| 后果 | 常规的 next/font / Fontsource / glyphhanger 工作流会直接违规 |
| 西里尔 | ❌ 全部 100 款字体的 languages 字段没有一款含 Russian / Ukrainian / Cyrillic |
| 涉及字体 | Clash Display、Cabinet Grotesk、Satoshi 等 |
→ 本项目排除 Fontshare。授权文本取自它自己的 402KB bundle(fontshare.com/js/main.<hash>.js,因为授权页是纯 JS 单页)。
② Velvetyne —— 官网挂了,但 GitLab 给了一手授权
velvetyne.fr 全站 HTTP 500(首页是罢工公告),但官方 GitLab 群组可用:
https://gitlab.com/api/v4/groups/velvetyne/projects → 34 个项目 + 每个仓库根目录的 LICENSE.txt 原文,全部 OFL 1.1。
| 字体 | 西里尔 | 气质 |
|---|---|---|
grotesk |
✅ | "geometric sans serif with extra-large spacing",全套 4 字重 |
lack |
✅(cyr-ext +124) | — |
murmure |
✅ | — |
StudioTriple/pilowlava |
✅(README 原文:"Support for Cyrillic was added in 2022 by Maksym Kobuzan") | 先锋派展示体 |
format-1452 |
❌ 仅拉丁 | ⭐ 气质最贴构成主义:"Din-like, built with modules, without any optical corrections" |
sligoil |
❌ 仅拉丁 | "monospace with large inktraps" |
❌ 未找到:用户点名的 Cirrus(官网 500、Velvetyne GitLab 34 项里没有、GitLab 全站搜 cirrus 40 条无字体项目)。
❌ Druk 没有任何免费授权,也没有可核实的免费替代授权原文 → 可靠替代只有 Oswald / Anton / Archivo Black 这类 OFL 体。
4.6 字体事实的三处更正与补充(二进制 cmap 实测)
比 Google Fonts 的 subsets 元数据更硬一级 —— 直接下载字体二进制、解析 cmap 表逐字形判定。
- 新增有西里尔的选项:
Stalinist One、Tektur、Lack(cyr-ext +124)—— 其中 Stalinist One 名字与气质都很对口。 Jost需要限定:俄文完整,但乌克兰文不完整(26/31,缺 ұ / є / і / ї)。只做俄文没问题。Space Mono没有西里尔(此前未列入)。"Archivo Expanded"不是一款独立字体 —— 它就是 Archivo 变量字体把wdth轴拉到 125,同样没有西里尔。Oswald的西里尔覆盖最完整(cyr-ext,+140 字形),且 OFL 允许 subset → 依然是本项目标题字的第一顺位。
5. 参考站点
⚠️ 状态图例:✅ 已完成真实 HTTP 请求验证 | ⚠️ 真实存在但被反爬拦截(403) | ❌ 已实测失效(404)
5.1 ⭐ 主题即构成主义的站点(含实测抓到的技术证据)
这一组是最有价值的参考——不是"看起来像",而是实测到了它们的 CSS 令牌。
| 站点 | 实测证据 | URL | 状态 |
|---|---|---|---|
| White Tower VR(叶卡捷琳堡 UZTM 白塔,构成主义建筑遗产) | 抓其 stylesheets/style.css 发现 font-family: rodchenko —— 字体名直接叫「罗琴科」;配色 #123a6b;含 filter: 与 transform: rotateX(35deg) |
https://wtower.ru/ | ✅ |
| Red Avantgarde(苏联海报档案/商店) | 从 110KB 生产 CSS 提取到字体 PT Sans / PT Serif(ParaType,专为西里尔设计)+ hagin_caps_mediumregular / hagin_caps_thinregular(Hagin Caps 本身即构成主义风全大写展示体);色板 #fff×66 / #000×65 / #db3509×14 / #d13309×12 / #ecf3f0 —— 教科书级红黑三色,可直接当作本项目配色的一手依据 |
https://redavantgarde.com/ | ✅ |
| Composition 24(莫斯科 K24 住宅) | Communication Arts 设计说明原文:基于至上主义,「只用一种基本形、三种对比色、一款高度特异字体」;首页 intro 是把至上主义图形变形为建筑本体的矢量动画 | https://www.awwwards.com/sites/composition-24 | ✅(线上站 k24moscow.ru 已 ❌404) |
| The Rodina(Tereza & Vit Ruller,"performative design") | 从 Next.js CSS chunk 提取到字体 lars(Lars Pro)+ Tradition,并含 next/font 自动生成的 lars Fallback(度量校准回退);强调色 #e40014 红 |
https://www.therodina.com/ | ✅ |
| Garage Museum(车库当代艺术博物馆) | 实测 clip-path×14;色板 #1A1A1A / #FFFFFF / #F5E123 黄 / #0051d6 蓝 |
https://garagemca.org/en | ✅ |
| Jewish Museum and Tolerance Center(莫斯科,与特列季亚科夫合办李西茨基展) | 实测色板 #1A1A1A / #E5E5E5 / #08c6d2,页面用 clip-path |
https://www.jewish-museum.ru/ | ✅ |
| Tretyakov Gallery(特列季亚科夫画廊) | 实测 text-shadow×8 + repeating-linear-gradient×2 —— 正好是本项目"套印错位 + 斜向网格"的组合 |
https://www.tretyakovgallery.ru/ | ✅ |
| DIGITAL SUPREMATISM(supabsmin 博客) | 实测 #f21d1d×18 / #fff×41 / #000×13(正是红黑白),用 text-shadow |
https://supabsmin.blogspot.com/ | ✅ |
| Tatlin(tatlin.ru,俄语出版社) | 专出构成主义建筑指南(Tver / Samara 构成主义导览)—— 找真实几何参考的一手来源 | https://tatlin.ru/about | ✅ |
| V&A | 首页存活;另有 Collections 改版博客 | https://www.vam.ac.uk/ | ✅ |
| MoMA "Engineer, Agitator, Constructor"(苏联构成主义大展) | 展览真实存在(新闻稿可查),但页面被 Cloudflare 拦 | https://www.moma.org/calendar/exhibitions/5072 | ⚠️403 |
5.2 字体厂牌 / 活字标本(可直接看"巨型怪诞体 + 红黑白 + 硬边")
| 站点 | 实测证据 | URL | 状态 |
|---|---|---|---|
| Klim Type Foundry | CSS 实测:Söhne + k-american-grotesk-*;色板 #000000 / #ffffff / #e90702 / #E4001C(两枚正红);用 clip-path —— 现成范本 |
https://klim.co.nz/collections/american-grotesk/ | ✅ |
| Fonts In Use | 按 "Russian constructivism" 等标签反查真实印刷品的字体名 —— 考据利器 | https://fontsinuse.com/ | ✅ |
5.3 工作室 / 机构(实测存活,附色板令牌)
| 站点 | 实测证据 | URL | 状态 |
|---|---|---|---|
| By-Kin(英国) | 主强调色 #FF6542(注意:此色白底仅 2.92:1,不可用于文字);栈为 Next.js + GSAP + Strapi |
https://by-kin.com/ | ✅ |
| Bureau Mirko Borsche | 实测 clip-path×3 |
https://bureauborsche.com/ | ✅ |
| Shuka / Brand Bureau | Framer 站,字体含 Fragment Mono;色板近乎单色 #000 / #2a2a2a / #7f7f7f |
https://shuka.design/ | ✅ |
| Studio von M(Museum Ludwig 展陈设计) | 项目页存活;博物馆展陈视觉对口参考 | https://studiovonm.com/works/museum-ludwig | ✅ |
| Cargo | 设计师建站工具,「编辑 / 粗野主义作品集」的温床 | https://cargo.site/ | ✅ |
| Pentagram / Zak Group / Mucho / Studio Dumbar / Order / Neubau | 六个首页均实测 200,但 HTML 未暴露字体/技术令牌(SPA)→ 不对其具体手法下断言 | 各自主域名 | ✅ |
5.4 可用性纪律参考(不是视觉参考)
| 站点 | 状态 | 说明 |
|---|---|---|
| brutalist-web.design | ✅ 已直接抓取全文 | 粗野主义网页设计七条准则:内容可读、只有链接和按钮响应点击、链接必须带下划线、返回键正常、靠滚动阅读、装饰克制、性能即功能。读它的可用性纪律,不要读它的视觉。内容授权 CC BY-NC-SA 4.0(NC = 禁止商用) |
| monolith.nyc | ⚠️ 未直接抓取 | 见于 Communication Arts Webpicks(采访页 ✅ 已抓取)。CUSP 自述:瑞士风格 + 粗野主义影响,Next.js + Sanity + GSAP/Framer Motion —— 可作为"瑞士 × 粗野"的对照 |
5.5 灵感目录
Awwwards SOTD ✅ https://www.awwwards.com/websites/sites_of_the_day/ | Godly ✅ https://godly.website/ | Httpster ✅ https://httpster.net/ | Cargo ✅ https://cargo.site/ ❓未实测:SiteInspire、Behance 专题页;Awwwards 粗野主义分类页 https://www.awwwards.com/websites/brutalism/ 返回 200 但列表由前端渲染,抓不到内容。
5.6 实测已失效的链接(不要写进页面)
| 链接 | 状态 |
|---|---|
https://k24moscow.ru/(Composition 24 线上站) |
❌ 404(Awwwards / CommArts 案例页仍在) |
https://grainy-gradients.vercel.app(CSS-Tricks 文章里的 playground) |
❌ 402 |
https://ultimatedesigntools.com/tools/noise-generator/ |
❌ 404 |
5.7 一手史料
ROSTA 橱窗(马雅可夫斯基 + 罗德琴科,1919–1921)—— 俄罗斯电讯社宣传窗,最"原始"的构成主义排版范本。建议单独检索 ROSTA Windows 图像。
6. 一手史料来源
| 来源 | URL | 内容 |
|---|---|---|
| Tate — Constructivism | https://www.tate.org.uk/art/art-terms/c/constructivism | 定义 + 1923 年《Lef》杂志宣言原文摘引 |
| TheArtStory — Constructivism | https://www.theartstory.org/movement/constructivism/ | 完整运动概览、关键主张、9 件代表作逐件分析 |
| TheArtStory — Photomontage | https://www.theartstory.org/definition/photomontage/ | 照片拼贴技法;含李西茨基《自画像(构成者)》分析 |
| TheArtStory — Rodchenko | https://www.theartstory.org/artist/rodchenko-alexander/ | 生平 + 7 件代表作(Lengiz 出版社海报、红十月饼干广告等) |
| Brutalist Web Design | https://brutalist-web.design/ | 粗野主义网页设计准则全文(CC BY-NC-SA 4.0) |
6.1 找到但未能读取的重要资料(缺口,建议人工获取)
| 资料 | 说明 |
|---|---|
| 《构成主义对现代网页设计视觉语言与结构方案的影响》 | 俄文论文,ВЛИЯНИЕ КОНСТРУКТИВИЗМА НА ВИЗУАЛЬНЫЙ ЯЗЫК И СТРУКТУРНЫЕ РЕШЕНИЯ СОВРЕМЕННОГО ВЕБ-ДИЗАЙНА,URL 为 PDF(本环境不支持 PDF)。这是与本次任务最对口的一篇文献,建议人工下载 |
| MoMA《The Russian Avant-Garde Book 1910–1934》展览 PDF | https://www.moma.org/interactives/exhibitions/2002/russian/5_pdfs/rowell.pdf |
| Monoskop — Aleksei Gan, Constructivism 1917–1928 | monoskop.org 上的 PDF,本环境不支持 |
| MoMA Rodchenko 展览(照片拼贴章节) | https://www.moma.org/interactives/exhibitions/1998/rodchenko/texts/photocollage.html — 抓取返回 403 |
| V&A Klutsis 海报 | https://collections.vam.ac.uk/item/O74952/ — 未直接抓取验证 |
7. ✅ 公有领域图像素材(已实测验证)
7.1 方法突破:Commons 网页被拦,但 API 通
本环境的 web_fetch 访问 commons.wikimedia.org 的网页会失败,但 commons.wikimedia.org/w/api.php 完全可用。这是一条通用经验:被 Cloudflare 拦的是网页,不代表 API 也被拦。
可复现的查询方式:
# 按关键词搜文件,并直接带出许可元数据
$u = "https://commons.wikimedia.org/w/api.php?action=query&generator=search" +
"&gsrsearch=El%20Lissitzky%20poster&gsrnamespace=6&gsrlimit=6" +
"&prop=imageinfo&iiprop=url|extmetadata&format=json"
Invoke-RestMethod -Uri $u -Headers @{ 'User-Agent' = 'your-tool/1.0 (contact)' }
⚠️ Commons API 限流较严(实测连续请求会返回 429)。请放慢节奏(每次间隔 15–20 秒),并在 User-Agent 里写明用途与联系方式。
7.2 已实测确认的公有领域作品
以下每一条都通过 Commons API 逐件查询,extmetadata.LicenseShortName 返回 Public domain:
| 作品 | 作者 | 尺寸 | 直链(已实测返回 200) |
|---|---|---|---|
| 《用红色楔子打击白军》 Beat the Whites with the Red Wedge | 李西茨基 El Lissitzky | 1920 × 1572(301 KB) | https://upload.wikimedia.org/wikipedia/commons/1/13/Beat_the_Whites_with_the_Red_Wedge.jpg |
| 《动态至上主义》 Dynamic Suprematism, 1916 | 马列维奇 Malevich | 1536 × 1522 | https://upload.wikimedia.org/wikipedia/commons/0/0b/Dynamic_Suprematism_%28Malevich%2C_1916%29.jpg |
同批查询中还确认了下列文件为 Public domain(文件页 URL 用下面的稳定模式构造即可):
🔴 但请先读 7.4 的版权判定表再动手。 下表里凡是克卢西斯(Klutsis)相关的,虽然 Commons 标了
Public domain, 仍可能因"死后平反"条款保护到 2027 年 —— 2027 年前建议回避。
| 文件 | 作者 / 主题 |
|---|---|
Beat the Whites with the Red Wedge.png |
李西茨基 |
Klinom Krasnym Bej Belych.JPG |
李西茨基(俄文原题) |
Gustav Klutsis.jpg、Gustav Klutsis-1915.jpg |
克卢西斯 |
Valentina Kulagina by Gustav Klutsis 1929.jpg / ...1929b.jpg |
克卢西斯 |
Gustav Klutsis and Valentina Kulagina photomontage book cover... |
克卢西斯 |
Suprematism - Abstract Composition (Malevich, 1915...).jpg |
马列维奇 |
Suprematism by Malevich (1915, GRM).jpg、Supremus 55 (Malevich, 1916).jpg |
马列维奇 |
Rodchenko-Stepanova.jpg |
罗德琴科与斯捷潘诺娃 |
1930. Александр Родченко на перилах 2.jpg、1931. Портрет А.М. Родченко.jpg |
罗德琴科(肖像,PD) |
SA 1929, 5.jpg、Варвара Степанова во время подготовки представления... |
斯捷潘诺娃 |
Lyubov Popova.jpg |
波波娃 |
Vladimir Tatlin with assistants working on the Tower... |
塔特林塔(工作照,PD) |
RIAN archive 436925 Poster -742 "Rosta Windows"... |
ROSTA 橱窗(马雅可夫斯基/罗德琴科时期宣传窗) |
7.3 稳定链接模式(已验证)
不要硬编码 upload.wikimedia.org 的具体哈希路径(会变)。用 Commons 的官方重定向模式:
文件页:https://commons.wikimedia.org/wiki/File:<文件名>
直链 :https://commons.wikimedia.org/wiki/Special:FilePath/<URL编码后的文件名>
已实测:Special:FilePath/Beat%20the%20Whites%20with%20the%20Red%20Wedge.jpg → HTTP 200,301 KB,正确重定向到 upload.wikimedia.org 原图。
7.4 🔴 版权判定:一个必须先看的陷阱表
依据:Wikimedia Commons 官方模板 Template:PD-Russia-1996/en 的逐字原文。
俄罗斯 PD 的判定条件是「作者卒于 1942-01-01 之前」;美国侧依据「URAA 日(1996-01-01)时在母国已 PD」。
| 艺术家 | 生卒年 | 俄罗斯 PD | 美国 PD | 结论 |
|---|---|---|---|---|
| 波波娃 Popova | 1889–1924 | 已 PD | 已 PD | ✅ 零风险,可直接商用 |
| 马列维奇 Malevich | 1879–1935 | 已 PD | 已 PD | ✅ 零风险 |
| 李西茨基 Lissitzky | 1890–1941-12-30 | 已 PD | 已 PD | ✅ 零风险。只差 2 天就落在 1942-01-01 之后,但规则适用无疑义 |
| 罗德琴科 Rodchenko | 1891–1956 | 2027 年才到期 | 仅 1930 年及以前出版的 | ⚠️ 只取 1930 年前出版物,并加免责说明 |
| 斯捷潘诺娃 Stepanova | 1894–1958 | 2029-01-01 | ⚠️ | ⚠️ 谨慎,建议回避 |
| 克卢西斯 Klutsis | 1895–1938 | ⚠️ 表面已 PD,但有例外条款 | 已 PD | 🔴 2027 年前建议回避(见下) |
🔴 克卢西斯陷阱(这是本次最容易被忽略的一条) 他虽然 1938 年去世(表面符合「卒于 1942 前」),但
PD-Russia-1996模板有脚注规定: 若作者曾遭镇压并获死后平反,保护期自平反年起算。 若他的平反发生在 1956 年,则保护期顺延至 2027-01-01。 (他的确切平反年份我未能在可达页面核实 —— 标记为「未找到」,因此按最保守口径处理。) → 本项目的海报一律不使用克卢西斯作品。🟠 Rodchenko 同样处于边缘状态:俄罗斯侧 2027 年才到期;美国侧只认 1930 年及以前的出版物。 我在
soviet-press页面里用的是李西茨基(零风险),没有用罗德琴科或克卢西斯的图像 —— 这是刻意的选择。
7.5 🔴 翻拍件陷阱(比版权到期更容易踩)
Commons 上大量标着"构成主义海报"的文件,其实是 2021/2022 年现代摄影师的翻拍照片, 授权是 CC BY / CC BY-SA —— 翻拍件本身是新的版权客体,用它必须署名并以相同方式共享。
实测两例:
- Varvara stepanova, giocatori di biliardo → CC BY-SA 4.0,摄影 Francesco Bini,2022
- Long Live the USSR! 1935 → CC BY 2.0,摄影 Steve Knight,2021
筛选方法:查 extmetadata.Artist 是不是画家本人,再看 DateTimeOriginal 是不是 1920s。
两个条件都满足才是真·扫描件。
真·PD 高清件(实测像素):
| 文件 | 尺寸 | 备注 |
|---|---|---|
Beat the Whites with the Red Wedge.jpg |
1920 × 1572 | 李西茨基 ✅ 本项目在用 |
Malevich, Kazimir Severinovich - Black Square.jpg |
8032 × 8000(52 MB) | 马列维奇 ✅ |
Under the banner of Lenin… Klucis |
4000 × 5516(3.19 MB) | 克卢西斯 🔴 2027 年前回避 |
7.6 ⚠️ 其他仍需注意
- ⚠️
LicenseShortName = Public domain是 Commons 社区自己的判定,不是法律意见。商用前请逐件复核。 - ⚠️ Art Institute of Chicago API 也可调用(
https://api.artic.edu/api/v1/artworks/search,返回is_public_domain),但实测以constructivism检索出的俄国纺织品设计 多为not-PD,价值有限。 - ❌ 已实测失效的 API:Met Museum(HTTP 410)、Rijksmuseum(410)、Europeana(401,需 key)。
7.7 纹理与纸张素材(全部实测授权原文)
| 来源 | 授权 | 可用内容 |
|---|---|---|
| ambientCG | ✅ CC0(授权页原文核实:"all ambientCG assets are provided under the Creative Commons CC0 1.0 Universal License… even for commercial purposes, all without asking permission") | ⭐ Paper001–006、Cardboard001–004、CardboardSet001、CardboardSubstance001(含 PBR 凹凸)。编号经 api/v1/full_json 按 tag 过滤确认存在 |
| Poly Haven | ✅ CC0(授权页原文核实) | 材质与 HDRI |
Commons Graph_paper_mm_green_A4.svg |
✅ CC0 | 毫米工程格纸 |
Commons MmPapier_orange_no_scale.svg |
✅ CC0 | 毫米格纸 |
Commons Halftoning_introduction.svg |
✅ PD | 半调原理示意 |
Commons Blau_zusammendruck.jpg |
✅ PD / 不受版权保护 | 套印错位(overprint)实拍参考 |
Commons Cmyk_AM_screen.png |
⚠️ CC BY-SA 4.0 | 印刷网屏 —— 需署名 + 相同方式共享,与"无义务"不符 |
❌ 未找到:Rawpixel(只返机器人壳)、NYPL(JS 壳)、Met(429)、MoMA(403)、Smithsonian(403)、Lost&Taken / Toptal(403)、Transparent Textures(超时)、Hero Patterns(授权页未读到)、扫描划痕类位图来源。
💡 6 类效果里有 5 类可以零字节用 CSS/SVG 实现:
feTurbulence纸纤维、radial-gradient+<pattern patternTransform="rotate(45)">真 45° 网屏、非等向baseFrequency="0.015 0.6"做横向扫描划痕、repeating-conic-gradient颗粒、mix-blend-mode: multiply+ 伪元素位移做套印错位、六层repeating-linear-gradient做毫米工程格。只有真实纸浆纤维建议用 CC0 位图。
7.5 作者生卒年(版权判定的起点)
| 艺术家 | 生卒年 | 版权判定起点 |
|---|---|---|
| 亚历山大·罗德琴科 Rodchenko | 1891-12-05 – 1956-12-03 | 逝世 1956 → 多数司法管辖区 70 年后(2026 年)刚进入公有领域,边缘状态,需逐件确认 |
| 卡济米尔·马列维奇 Malevich | 1879 – 1935 | 已过 70 年 |
| 李西茨基 El Lissitzky | 1890 – 1941 | 已过 70 年(但美国出版年规则另有计算方式) |
| 柳博芙·波波娃 Popova | 1889 – 1924 | 已过 70 年 |
| 瓦尔瓦拉·斯捷潘诺娃 Stepanova | 1894 – 1958 | 70 年后为 2028 年,尚未到期 |
| 古斯塔夫·克卢西斯 Klutsis | 1895 – 1938 | 已过 70 年 |
⚠️ 上表只是起点,不构成法律意见。 俄罗斯 70 年规则、美国"出版年 + 95 年"规则、以及"二战期间作品可能延长"等因素都会改变结论。
替代方案(无需版权图片): 1. 用自己的照片做双色调/半调加工 —— 最安全,且符合构成主义"用真实照片当材料"的精神 2. 用 CSS/SVG 纯几何生成 —— 楔形、圆、射线、网点全部可代码生成,零版权风险 3. 用 AI 生成图像后自行加工 —— 注意你自己对生成结果的权利
8. 检索方法论备忘(下次可直接复用)
本环境的网络限制与绕行方案(这本身是有价值的发现):
| 通道 | 状态 | 用途 |
|---|---|---|
api.github.com(REST API) |
✅ 可用(未认证:搜索 10 次/分钟,其他 60 次/小时) | 查真实星数、许可证、文件树、文件内容 |
fonts.google.com/metadata/fonts |
✅ 可用 | 1950 个字族的子集/字重/类目权威数据 |
fonts.googleapis.com/css2 |
✅ 可用 | 判定西里尔覆盖、抓取字体 CSS |
developer.mozilla.org |
✅ 可用 | Baseline 兼容性唯一可靠来源 |
github.com 网页版 / raw.githubusercontent.com |
❌ 不可达 | 改用 api.github.com 的 contents / trees 接口 |
en.wikipedia.org |
❌ 不可达 | 改用 Tate / TheArtStory |
cdn.jsdelivr.net / data.jsdelivr.com |
⚠️ 表现不稳定 | 有时可读仓库文件树与内容,可作 api.github.com 的补充 |
| PDF(任意站点) | ❌ 不支持 | 只能记录标题与 URL,无法读取 |
commons.wikimedia.org/w/api.php(Commons API) |
✅ 可用!(网站网页被拦,但 API 通;限流较严,连续请求会 429,需间隔 15–20 秒并写明 User-Agent) | ⭐ 公有领域图像素材的唯一可靠通道,可带出 extmetadata 许可信息 |
api.artic.edu(芝加哥艺术学院 API) |
✅ 可用 | 返回 is_public_domain 字段;但俄国构成主义相关藏品多为 not-PD |
collectionapi.metmuseum.org(大都会 API) |
❌ HTTP 410 | 已失效 |
api.europeana.eu |
❌ HTTP 401 | 需 API key |
www.rijksmuseum.nl/api |
❌ HTTP 410 | 已失效 |
未认证 GitHub API 的省流技巧(避免海量 JSON 挤爆上下文):
$r = Invoke-RestMethod "https://api.github.com/search/repositories?q=brutalist+css&sort=stars&per_page=5" `
-Headers @{ 'User-Agent'='x'; 'Accept'='application/vnd.github+json' }
$r.items | Select-Object full_name, stargazers_count, @{n='lic';e={$_.license.spdx_id}}, pushed_at
9. 交付缺口清单(我知道自己没做到的)
- ✅ 公有领域海报的高清下载链接 —— 已通过 Commons API 解决,见第 7 节(李西茨基、马列维奇等作品的直链已实测 200)。剩余缺口:克卢西斯、斯捷潘诺娃、波波娃的具体直链未逐条取(文件已确认为 PD,但为避免再次触发 429 未逐一取 URL),可自行用
Special:FilePath模式构造 - ❌ 每件作品的精确版权状态 —— 只给了作者生卒年作为起点,未逐件核定
- ⚠️ RGB 以外的深度案例 —— 第 5 节已补入 11 个实测抓到 CSS 证据的真实站点,但 Behance / SiteInspire 上的俄语区案例未逐页核实
- ❌ 俄文论文《构成主义对现代网页设计的影响》全文 —— PDF 无法读取
- ❌ 真实的构成主义印刷网点/纸张扫描素材 —— 未找到可验证的免费商用下载源
- ❌
reyrove/Deconstructed-Stage-Generative-Art、josiebb/about2squares、oziomarc/poster-recreation—— 检索结果可见,但独立核实未成功(API 限流 / 404),标记为未验证 - ⚠️
@property/animation-timeline/text-spacing-trim的兼容性 —— MDN 未取到 Baseline 标识,未做断言(animation-timeline在05-前端技术方案.md中有更细的 BCD 数据) - ⚠️ 几个仓库的许可证细节 ——
pinecreativelabs/Brutalist-Framework(Other)需人工确认 - ❌ 厂商中文字体的官方授权页 URL —— 阿里巴巴普惠体 / MiSans / HarmonyOS Sans / OPPO Sans 的授权页未取得
- ⚠️
shape()与color-mix()的精确 BCD 版本号 —— 已标注未核实,未填数字
这些缺口的共同原因都是网络访问限制,不是没去找。 建议在能访问外网的机器上补齐。
其中真正影响动手的只有第 1 条(找不到合法可用的历史海报素材)。但它有干净的替代方案:用自己的照片做双色调/半调加工,或用 CSS/SVG 纯几何生成——两者都零版权风险,且更符合构成主义"用真实照片当材料"的精神。