采样色板
点击复制色值。HEX 是解码帧区域中位数,不是原游戏材质常量;本页未改动 Lab 配色。
没有匹配的颜色。
视频证据帧
点击查看原尺寸参考图。图片已内嵌,断网也可查看。
白箭头与深色箭头
代表底色 + 不透明前景色的计算值。3:1 是项目必要图形的诊断目标,不代表整页已合规。
| 色族 | 白色 #FFFFFF | 深色 #273B50 |
|---|
import { readFileSync, writeFileSync } from 'node:fs';
import { resolve, extname } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = fileURLToPath(new URL('../', import.meta.url));
const markdown = readFileSync(resolve(root, 'designv2.md'), 'utf8');
const samples = JSON.parse(readFileSync(resolve(root, 'reference/color-study/samples.json'), 'utf8'));
const esc = value => String(value).replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
const mime = {'.png':'image/png','.svg':'image/svg+xml','.json':'application/json','.py':'text/plain','.md':'text/plain'};
const assets = new Map();
function asset(path) {
const absolute = resolve(root, path);
if (!assets.has(absolute)) assets.set(absolute, `data:${mime[extname(path)] || 'application/octet-stream'};base64,${readFileSync(absolute).toString('base64')}`);
return assets.get(absolute);
}
function inline(text) {
const held = [];
const hold = html => `\u0000${held.push(html)-1}\u0000`;
text = text.replace(/`([^`]+)`/g, (_, value) => hold(`${esc(value)}`));
text = text.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, (_, alt, path) => hold(``));
text = text.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, label, path) => {
if (/^https?:\/\//.test(path)) return hold(`${esc(label)}`);
const image = /\.(png|svg|jpg)$/.test(path);
return hold(`${esc(label)}`);
});
return esc(text).replace(/\*\*(.+?)\*\*/g, '$1').replace(/\u0000(\d+)\u0000/g, (_, n) => held[n]);
}
const lines = markdown.split('\n'), rendered = [], toc = [];
for (let i=0; i
${header.map(s=>` ${rows.map(row=>`${inline(s)} `).join('')}${row.map(s=>` `).join('')}${inline(s)} `).join('')}
七个棋子色族 · 三套场景节奏 · 单片薄倒角适配
10 张证据帧 / 36 个区域采样 / 完整规范 · 独立离线 HTML
点击复制色值。HEX 是解码帧区域中位数,不是原游戏材质常量;本页未改动 Lab 配色。
没有匹配的颜色。
点击查看原尺寸参考图。图片已内嵌,断网也可查看。
代表底色 + 不透明前景色的计算值。3:1 是项目必要图形的诊断目标,不代表整页已合规。
| 色族 | 白色 #FFFFFF | 深色 #273B50 |
|---|