How avgerinos8/blockshade-pixel-art works
BlockShade is a terminal pixel-art editor. The user launches the Bubble Tea program, edits a character-grid canvas through keyboard and mouse controls, and sees the canvas rendered in the terminal; clipboard actions can move artwork in or out. The sampled source is a partial excerpt of a single-file implementation, so the graph keeps components at the responsibility level supported by the README and excerpt. Some feature links are omitted where the relevant wiring was not shown.
Main entry points: main.go Sidebar actions
Components 15
Editor interaction
- Program entry
main.go - Input dispatcher
main.go - Mouse handling
main.go - Sidebar actions
main.go
Canvas editing
- Brush sets
main.go - Canvas operations
main.go - Pattern replacement
main.go - Undo and redo
main.go
Display and exchange
- Clipboard actions
main.go - Terminal rendering
main.go - Zoom rendering
main.go
Other components
- Editor user
- Terminal
- Bubble Tea runtime
- System clipboard
Connections 22
- Editor user → Terminal: edits in
- Terminal → Bubble Tea runtime: sends input
- Program entry → Bubble Tea runtime: starts program
- Bubble Tea runtime → Input dispatcher: dispatches events
- Bubble Tea runtime → Terminal rendering: requests view
- Input dispatcher → Mouse handling: routes mouse
- Input dispatcher → Sidebar actions: routes actions
- Input dispatcher → Undo and redo: handles shortcuts
- Mouse handling → Canvas operations: paints canvas
- Mouse handling → Sidebar actions: selects controls
- Sidebar actions → Brush sets: selects brush
- Sidebar actions → Canvas operations: resizes canvas
- Sidebar actions → Pattern replacement: configures replacement
- Sidebar actions → Clipboard actions: requests copy or paste
- Canvas operations → Undo and redo: saves state
- Pattern replacement → Undo and redo: saves state
- Undo and redo → Canvas operations: restores canvas
- Clipboard actions → System clipboard: reads or writes
- Terminal rendering → Brush sets: reads selection
- Terminal rendering → Zoom rendering: renders scaled canvas
- Terminal rendering → Terminal: displays editor
- Editor user → Terminal rendering: views result