Circuit
A seeded PCB with buses of traces, vias and chips. Pulses of light run along the traces and light the pins they reach.
New in 1.7.
Boots Linux in 1.8 seconds
Kestrel K1 is a four-core RISC-V board with 8 GB of LPDDR5 and two 2.5 GbE ports. $149, shipping in March.
Installation
npx shadcn@latest add https://neonkit.heyaadi.com/r/circuit.jsonUsage
import { Circuit } from "@/components/ui/circuit"
<section className="relative overflow-hidden bg-[#05060a]">
<Circuit seed={7} />
<h1 className="relative">Boots Linux in 1.8 seconds</h1>
</section>Examples
Busy
pulses={2.5} for a board under load. Sometimes a whole bus fires at once, a word of data crossing in parallel.
Seed and density
The same seed at the same size always routes the same board. density adds chips, bottom-layer traces and small parts.
Quiet
Few pulses, slow and dim, for a notice that shouldn't compete with its button.
API reference
Two canvases that fill the nearest positioned parent: the board, drawn once per size, and the pulses on top. Accepts native div attributes.
| Prop | Type | Default |
|---|---|---|
color | NeonColorColor of the pulses, lit pins and warm chips. The copper takes a trace of it too. | inherited |
seed | numberSame seed and size, same board. | 7 |
density | numberHow busy the board is, 0 to 1. | 0.6 |
pulses | numberHow often pulses set off, as a multiplier. 0 sends none. | 1 |
speed | numberSpeed multiplier for the pulses. 0 holds a still frame. | 1 |
intensity | numberBrightness of the pulses and the board, 0 to 1. | 0.85 |
Accessibility
- Decorative: rendered with aria-hidden and pointer-events: none.
- Routing is deterministic: a seeded generator lays out chips and buses, and an occupancy grid keeps top-layer traces from crossing. Nothing random runs during render, so it's safe to server-render.
- It pauses offscreen and in hidden tabs. Under prefers-reduced-motion it draws one still frame with a few pulses mid-flight.