SHAPE
Seven primitives. Each carries a mental model, not decoration. Use them as grammar for what a module is allowed to do.
I
Timelines, banners
O
Metrics, stats
T
Nav + feature
L
Feed + context
S
Offset pairs
J
Rail + panel
Z
Alerts, signals
Tetris UI is a spatial design system. Components are modular blocks that fall, stack, lock, and clear, driven by priority, available space, and user action.
TETRIS UI
npm i @stack_layout/tetris-ui
7
Shapes
5
Phases
0 to 100
Priority
Tomorrow doesn't wait. Neither do we.
Ship layout rules, not another fixed dashboard.
Live system
Drop Messages, Shipping, or Goals into the grid. Complete a task to line-clear. Shrink the viewport and watch low-priority blocks yield first.
Package
v0.2.17
Published as @stack_layout/tetris-ui. Peer deps: React 18+.
import { Block, TetrisProvider }
from "@stack_layout/tetris-ui"Every interaction is a phase. Clearing work isn't a toast; it's a line clear that returns space to higher priority blocks.
FALL
Block enters and claims intent
STACK
Neighbors settle into gaps
LOCK
Layout commits to the grid
CLEAR
Completed work leaves the board
REFLOW
Priority reclaim fills the void
SHAPE
Seven primitives. Each carries a mental model, not decoration. Use them as grammar for what a module is allowed to do.
I
Timelines, banners
O
Metrics, stats
T
Nav + feature
L
Feed + context
S
Offset pairs
J
Rail + panel
Z
Alerts, signals
Motion loop
FALL → STACK → LOCK → CLEAR → REFLOW
Traditional UI pins components to coordinates. Tetris UI encodes rules (preferred size, min/max footprint, adjacency, and priority), then optimizes the board.
Traditional
Component → Position
Tetris UI
Rules → Spatial fit