← 目录 03 / 11

构成主义 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 表逐字形判定。


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 ⚠️ 其他仍需注意

  1. ⚠️ LicenseShortName = Public domain 是 Commons 社区自己的判定,不是法律意见。商用前请逐件复核。
  2. ⚠️ Art Institute of Chicago API 也可调用(https://api.artic.edu/api/v1/artworks/search,返回 is_public_domain),但实测以 constructivism 检索出的俄国纺织品设计 多为 not-PD,价值有限。
  3. ❌ 已实测失效的 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. 交付缺口清单(我知道自己没做到的)

  1. ✅ 公有领域海报的高清下载链接 —— 已通过 Commons API 解决,见第 7 节(李西茨基、马列维奇等作品的直链已实测 200)。剩余缺口:克卢西斯、斯捷潘诺娃、波波娃的具体直链未逐条取(文件已确认为 PD,但为避免再次触发 429 未逐一取 URL),可自行用 Special:FilePath 模式构造
  2. ❌ 每件作品的精确版权状态 —— 只给了作者生卒年作为起点,未逐件核定
  3. ⚠️ RGB 以外的深度案例 —— 第 5 节已补入 11 个实测抓到 CSS 证据的真实站点,但 Behance / SiteInspire 上的俄语区案例未逐页核实
  4. ❌ 俄文论文《构成主义对现代网页设计的影响》全文 —— PDF 无法读取
  5. ❌ 真实的构成主义印刷网点/纸张扫描素材 —— 未找到可验证的免费商用下载源
  6. ❌ reyrove/Deconstructed-Stage-Generative-Art、josiebb/about2squares、oziomarc/poster-recreation —— 检索结果可见,但独立核实未成功(API 限流 / 404),标记为未验证
  7. ⚠️ @property / animation-timeline / text-spacing-trim 的兼容性 —— MDN 未取到 Baseline 标识,未做断言(animation-timeline 在 05-前端技术方案.md 中有更细的 BCD 数据)
  8. ⚠️ 几个仓库的许可证细节 —— pinecreativelabs/Brutalist-Framework(Other)需人工确认
  9. ❌ 厂商中文字体的官方授权页 URL —— 阿里巴巴普惠体 / MiSans / HarmonyOS Sans / OPPO Sans 的授权页未取得
  10. ⚠️ shape() 与 color-mix() 的精确 BCD 版本号 —— 已标注未核实,未填数字

这些缺口的共同原因都是网络访问限制,不是没去找。 建议在能访问外网的机器上补齐。

其中真正影响动手的只有第 1 条(找不到合法可用的历史海报素材)。但它有干净的替代方案:用自己的照片做双色调/半调加工,或用 CSS/SVG 纯几何生成——两者都零版权风险,且更符合构成主义"用真实照片当材料"的精神。