feat: add superfig paper-figure toolkit
Standalone LaTeX/TikZ skill for non-tensor paper figures: node/edge macros, lint-on-warning build, golden examples, and negative fixtures.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# House style
|
||||
|
||||
The package ships these defaults; this file explains what to preserve and what must still
|
||||
be decided.
|
||||
|
||||
## Canvas
|
||||
|
||||
White background, natural `standalone` crop. No forced 16:9. No title by default. The top
|
||||
holds at most two compact claim/formula lines.
|
||||
|
||||
Each stage is one horizontal row with a shared baseline. Use the fewest stages that preserve
|
||||
the primary claim. No unrelated branches, no dashboard panels.
|
||||
|
||||
## Type hierarchy
|
||||
|
||||
| element | size | macro / style |
|
||||
|---|---|---|
|
||||
| top formula/claim | `\large` | `\sftopformula` |
|
||||
| stage label | `\small\bfseries`, muted | `\sfstage` |
|
||||
| node label | `\small` | `\sfnode` |
|
||||
| caption symbol | `\small` | `\sfcaption` |
|
||||
| caption detail | `\scriptsize`, muted | `\sfcaption` |
|
||||
| edge label | `\scriptsize`, muted | `\sfconn` / `\sfarrowlabel` |
|
||||
| meaning box | `\small` | `\sfmeaningbox` |
|
||||
| optional signature | `\scriptsize`, low contrast | `\sfsignature` |
|
||||
|
||||
Never shrink below this hierarchy to make something fit. Move it to another row instead.
|
||||
|
||||
## Color
|
||||
|
||||
Palette: `sfTeal #4F8FA5`, `sfOrange #EE995B`, `sfCoral #C95B5B`, `sfViolet #8A74B5`,
|
||||
`sfGray #85898F`. Muted, mid-chroma, paper-like. Do not add saturated primaries.
|
||||
|
||||
- One semantic color per role, held everywhere: `\sfsetrole{input}{sfTeal}`.
|
||||
- Drawing macros take a **role**, never a color.
|
||||
- At most four active hue families per figure, plus gray.
|
||||
- Contrast comes from lightness separation, not saturation. Use `level=1/2/3` for
|
||||
`role!30 / role!55 / role!80`; do not use uniform pastel fills.
|
||||
- If sign matters, use hue for sign and intensity for magnitude.
|
||||
|
||||
## Edges and nodes
|
||||
|
||||
- Nodes are rounded rectangles with thin neutral borders; no saturated colored outlines.
|
||||
- Group outlines use `role!65` because the outline itself names an object.
|
||||
- Edges are thin neutral arrows on the background layer; text stays on the foreground layer.
|
||||
- Keep all text in LaTeX or CJK text, never rasterized labels.
|
||||
|
||||
## Never
|
||||
|
||||
Metric insets not present in the primary claim. Decorative pills, banners, shadows,
|
||||
repeated separators, extra explanatory cards beyond one `\sfcallout`. Raw TikZ `\draw` /
|
||||
`\fill` / `\path` unless the lint directive allows it.
|
||||
Reference in New Issue
Block a user