# LedGrab · Entity Card · Patchbay redesign

01 Output targets · LED devices
LED · OUT // CH-01
Living Room Strip 192.168.1.42
Pixels
144
FPS
59.7
Lat
8ms
WLED · v0.14
RGB
Display 2
Bright
198
LED · OUT // CH-02
Bedroom Halo 10.0.4.18
Pixels
60
FPS
— —
Last
2h 14m
Connection refused Adalight · 921k
FFT · IN // 48 kHz
Spotify Loopback
Bands
32
Peak
-6.2 dB
CPU
3.1%
WASAPI · stereo Bass · Mids · Highs
02 Sources & integrations
SCREEN · IN // DISP-2
Cinematic Capture
Region
3840×1080
Tgt
60fps
Mss · BGRA Pre-process · CSPT Letterbox crop
SCENE · LOGIC // AUTO-07
Movie Night
21:00 — 23:30 When · Plex playing → Living + Bedroom cinema
SCENE · PRESET // SCN-04
Sunset Warmth

Captured 3 days ago — warm tungsten cast on every fixture for a 19:00 unwind.

4 targets
Used by 2 automations Updated 21 Apr
CLK · GEN // 110 BPM
Master Tempo
BPM
110.00
Phase
0.42
Sub
1/16
Drift · ±0.3ms
03 Templates & assets
TPL · CAPTURE // MSS
Desktop · 60 fps · region

Reusable capture preset for screen sources. 3 engine options pre-configured.

Engine
MSS
Bind
3 keys
Used by
5 sources
crop → downsample → gamma → color-correct
PALETTE // G-08
Aurora BUILTIN
5 STOPS · LOOP
Used in 3 strips HSL space
ASSET · IMG // PNG
cosmic-loop-001.png
Size
1920×1080
Bytes
412 KB
STRIP · MAPPED // 144 PX
Cinema map · 144 px
Source
Cinematic
Map
Letterbox
Smooth
0.35
Display 2 post-fx · 4 filters
GAME · CSGO // GSI
Counter-Strike 2
Port
3456
Events
12 mapped
Last
12s
flash defuse round-end +9 more
VALUE · HA // SENSOR
Outdoor temp sensor.outdoor_temp
Now
14.7°
Range
8 — 22
Tick
2s
Bound to: brightness Linear · clamped

## Coverage matrix — every card type

- Devices `data-device-id` · signal · rail `LED · OUT`
- LED targets `data-target-id` · signal · rail `TARGET · OUT`
- HA light targets `data-ha-target-id` · signal · rail `HA · OUT`
- Color strips `data-css-id` · signal · rail `STRIP · MAPPED/COMPOSITE/MATH/EVENT`
- CSPT `data-cspt-id` · signal · rail `TPL · STRIP`
- Pattern templates `data-pattern-template-id` · signal · rail `TPL · PATTERN`
- Picture sources `data-stream-id` · cyan · rail `SCREEN/IMG/VIDEO · IN`
- Capture templates `data-template-id` · cyan · rail `TPL · CAPTURE`
- PP templates `data-pp-template-id` · cyan · rail `TPL · POST-FX`
- HA sources `data-id` · cyan · rail `HA · IN`
- MQTT sources `data-id` · cyan · rail `MQTT · IN`
- Weather sources `data-id` · cyan · rail `WX · IN`
- Value sources `data-id` · cyan · rail `VALUE · HA/MQTT/MATH/SCHEDULE`
- Audio capture sources `data-id` · magenta · rail `AUDIO · IN`
- Audio processed sources `data-id` · magenta · rail `FFT · IN`
- Audio templates `data-audio-template-id` · magenta · rail `TPL · AUDIO`
- Audio processing tpls `data-apt-id` · magenta · rail `TPL · FFT`
- Automations `data-automation-id` · violet · rail `SCENE · LOGIC`
- Scene presets `data-scene-id` · violet · rail `SCENE · PRESET`
- Sync clocks `data-sync-clock-id` · violet · rail `CLK · GEN`
- Game integrations `data-gi-id` · amber · rail `GAME · <type>`
- Gradients `data-id` · signal · rail `PALETTE`
- Assets `data-id` · cyan · rail `ASSET · IMG/AUD/VID`

## What changes — and why

- Channel rail is always on. The dormant `--ch-*` palette becomes a top-edge bar with a silkscreened type label (`LED · OUT`, `FFT · IN`). Every card carries its identity; running cards just brighten rather than reveal.
- Status LED is honest. A 9px dot pulses for online, holds for offline (coral), warns for unknown (amber). The hand-rolled `health-dot` can be reused — only its glow needs lifting.
- LCD readout strip replaces ad-hoc `card-meta` badges. Three recessed cells with Pixels / FPS / Lat — tabular-nums, bordered hairline, faint inner shadow. Scannable in one fixation.
- Property chips are pill-shaped. Single chip system (`.chip`, `.chip--link`, `.chip--tag`) replaces the parallel `.card-meta` + `.stream-card-prop` styles. Crosslinks tint to the channel color on hover instead of generic gray.
- Drag handle and trash are persistent. 35% opacity at rest, 85% on hover. Touch and keyboard users see the affordances; ghost-buttons no longer require a mouse to discover.
- Footer seam. Rivet-style fastener dots and an inner gradient give the action row a "panel screwed onto the module" feel — separating controls from data without a hard rule.
- Brightness is a fader. Channel-tinted fill, recessed track, value as monospace readout — fits the metric language instead of looking like a generic `<input type="range">`.
- Subtle grain. One `feTurbulence` SVG inlined; 4–5% opacity. Ends the "every dark UI is a flat black rectangle" feeling without costing performance.
- Light theme adapts cleanly. Channel hex values are already darkened in the existing tokens — the new design uses them unchanged.