f97cf6eb38
shared/fabledsword.tokens.json mirrors web/src/lib/styles/tokens.json; assets/error-copy.json mirrors the web's error-code copy table; assets/svg/album-fallback.svg mirrors the web placeholder. Together these give Flutter the same visual + copy starting point as the SPA. tool/gen_tokens.dart emits lib/theme/tokens.dart from the JSON; the generated file is committed so CI can verify the JSON and the Dart file haven't drifted (gate added in Task 21). tool/sync_shared.sh mkdirs the shared/ + assets/ destinations before copying so the script works on a fresh checkout (the original plan-text shape only mkdir'd assets/svg). pubspec.yaml assets block uncommented now that the three asset paths exist on disk.
35 lines
719 B
JSON
35 lines
719 B
JSON
{
|
|
"colors": {
|
|
"obsidian": "#14171A",
|
|
"iron": "#1E2228",
|
|
"slate": "#2C313A",
|
|
"pewter": "#3F4651",
|
|
"parchment": "#E8E4D8",
|
|
"vellum": "#C2BFB4",
|
|
"ash": "#9C9A92",
|
|
"moss": "#4A5D3F",
|
|
"bronze": "#8B7355",
|
|
"oxblood": "#6B2118",
|
|
"warning": "#8B6F1E",
|
|
"error": "#C04A1F",
|
|
"info": "#3D5A6E",
|
|
"accent": "#4A6B5C"
|
|
},
|
|
"radii": {
|
|
"sm": "4px",
|
|
"md": "8px",
|
|
"lg": "12px",
|
|
"xl": "16px"
|
|
},
|
|
"fonts": {
|
|
"display": "Fraunces",
|
|
"body": "Inter",
|
|
"mono": "JetBrains Mono"
|
|
},
|
|
"fontStacks": {
|
|
"display": "'Fraunces', Georgia, serif",
|
|
"body": "'Inter', system-ui, sans-serif",
|
|
"mono": "'JetBrains Mono', ui-monospace, monospace"
|
|
}
|
|
}
|