add PR #3805 saga, unbury script, contributor decay diagram, looping SVG animations, CLAUDE.md style guide
expand "our" section: real Pylons org stats (28 lifetime, 4 active), PR rejection & pivot to downstream migration of 33 repos, BDFL commentary. embed unbury.py source & downloadable file. new contributor-decay diagram. update load-bearing diagram with org-wide data. fix #333333 text on gold nodes. convert all 8 SVG animations from one-shot to infinite loop (13s hold, fade out, restart). add unturf SVG diagram style guide to CLAUDE.md.
This commit is contained in:
parent
66f7f3d9d3
commit
cf92f1f613
13 changed files with 938 additions and 212 deletions
59
CLAUDE.md
59
CLAUDE.md
|
|
@ -221,6 +221,65 @@ venv/bin/python lib/tag_stats.py 5 # only tags with 5+ posts
|
|||
- Tags should be capitalized (e.g., "Python" not "python")
|
||||
- Avoid single-use tags; consolidate into broader categories
|
||||
|
||||
## UNTURF SVG DIAGRAM STYLE GUIDE
|
||||
|
||||
**All diagrams on russell.ballestrini.net & permacomputer sites follow this style.**
|
||||
|
||||
### Color Palette (dark/light theme compatible)
|
||||
- **Background**: always `transparent` (never white or black)
|
||||
- **Node fills**: medium-dark saturated colors with `fill="white"` text
|
||||
- Blues: `#4a90d9`, `#1e88e5`, `#0d47a1`, `#1a237e`
|
||||
- Purples: `#9370db`, `#7b68ee`, `#6c5ce7`, `#4a148c`, `#ab47bc`
|
||||
- Greens: `#7cb342`, `#1b5e20`, `#00897b`
|
||||
- Teals: `#00acc1`, `#006064`
|
||||
- Oranges: `#e65100`, `#e8834a`, `#ff6f00`
|
||||
- Reds: `#bf360c`, `#b71c1c`, `#880e4f`
|
||||
- Dark neutrals: `#2c3e50`, `#34495e`, `#546e7a`, `#616161`, `#4e342e`
|
||||
- **Gold/yellow nodes** (`#f9a825`, `#fdd835`): use `fill="#1a1a1a"` text (NOT `#333333`)
|
||||
- **Node strokes**: `#999999` (never black)
|
||||
- **Edges/arrows**: `#aaaaaa` stroke & fill
|
||||
- **Floating text labels**: `#cccccc` (cluster labels, "translates to", etc.)
|
||||
- **Accent text**: `#ef5350` (red warnings/claims), `#ff6f00` (orange highlights), `#66ff66` (green positive)
|
||||
- **Dashed cluster borders**: `stroke="#999999" stroke-dasharray="5,2"`
|
||||
- **Plaintext labels** (no background): `fill="transparent"` polygon, text `fill="#cccccc"`
|
||||
|
||||
### SVG Dimensions
|
||||
- Root SVG: `width="100%" height="100%"` with `viewBox` (never fixed pt/px)
|
||||
- RST embed: `:width: 100%` and `:align: center`
|
||||
|
||||
### Animation Pattern (CSS only, no JS)
|
||||
```xml
|
||||
<defs>
|
||||
<style type="text/css">
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
.anim { opacity: 0; animation: fadeIn 0.8s ease-out forwards; }
|
||||
.d0 { animation-delay: 0s; }
|
||||
.d1 { animation-delay: 3s; }
|
||||
/* ... increment by 2-3s per group */
|
||||
</style>
|
||||
</defs>
|
||||
```
|
||||
- Wrap each conceptual group in `<g class="anim dN">`
|
||||
- Groups fade in sequentially (3s apart for major concepts, 1-2s for chain elements)
|
||||
- Keep total animation under 30s
|
||||
|
||||
### Graphviz Dot Conventions
|
||||
```dot
|
||||
bgcolor="transparent"
|
||||
node [fontname="Helvetica" fontsize=12 style="filled,rounded" shape=box color="#999999"]
|
||||
edge [color="#AAAAAA" arrowsize=0.6 fontcolor="#AAAAAA"]
|
||||
```
|
||||
|
||||
### Post-Processing Checklist
|
||||
1. Strip `<title>` tags: `sed -i 's/<title>[^<]*<\/title>//g'` (prevents tooltip artifacts)
|
||||
2. Replace fixed dimensions: `width="100%" height="100%"` keeping viewBox
|
||||
3. Change cluster label fontcolor from `#aaaaaa` to `#cccccc`
|
||||
4. Wrap groups with animation classes
|
||||
5. Verify: no `fill="black"`, no `stroke="black"`, no `fill="#333333"`
|
||||
|
||||
## RUSSELL'S PROJECT TECH STACKS
|
||||
|
||||
**NEVER assume or guess what language/framework a project uses. Check the actual repo.**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue