docs(logo): 新增 logo v5.1 正式资产、使用规范与构建脚本

- 白文印「标」(AI 生成原图经脚本抠图、统一为 #D9291C、矢量化)
- 字标:思源宋体 SemiBold + Libre Caslon;比例 H2,英文视觉内缩 C2
- svg/、png/、favicon:横版、竖版、反白、单色、印章、各尺寸图标
- scripts/:logo_lib.py 统一排版参数,build_assets.sh 一键生成
- logo-spec.md、logo-sheet.html、字体许可证(OFL)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
YANG JIANKUAN
2026-11-02 20:28:18 +08:00
parent f4ef7af542
commit 5753b51131
51 changed files with 1160 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
"""生成正式字标和全部组合 SVG 到 svg/(决策 B4:H2 比例 + F2 中文 + E5 英文 + C2 视觉对齐)。
用法:.work/venv/bin/python scripts/build_logo.py
通常由 scripts/build_assets.sh 调用;运行前 svg/ 里要已有 seal*.svg。
"""
from logo_lib import FINAL, FINAL_INSET, LOGO, NAVY, WHITE, lockup_h2, lockup_vertical, wordmark
SVG = LOGO / "svg"
def write(name, svg):
(SVG / name).write_text(svg)
def wordmark_svg(color, pad=2):
body, w, h = wordmark(FINAL, color, inset=FINAL_INSET)
return f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="{-pad} {-pad} {w + 2 * pad:.2f} {h + 2 * pad:.2f}">{body}</svg>'
write("wordmark.svg", wordmark_svg(NAVY))
write("wordmark-reverse.svg", wordmark_svg(WHITE))
for kind, suffix in (("textured", "-textured"), ("clean", "")):
for color, dark, rev in ((NAVY, False, ""), (WHITE, True, "-reverse")):
body, w, h = wordmark(FINAL, color, inset=FINAL_INSET)
write(f"logo-horizontal{suffix}{rev}.svg", lockup_h2(body, w, h, on_dark=dark, kind=kind))
write(f"logo-vertical{suffix}{rev}.svg", lockup_vertical(body, w, h, on_dark=dark, kind=kind))
# 单色:干净版印章 + 字标同色
for color, name in (("#000000", "logo-mono-black.svg"), ("#FFFFFF", "logo-mono-white.svg")):
body, w, h = wordmark(FINAL, color, inset=FINAL_INSET)
write(name, lockup_h2(body, w, h, kind="clean", seal_color=color))
print("ok", sorted(p.name for p in SVG.glob("logo-*.svg")) + ["wordmark.svg", "wordmark-reverse.svg"])