Signal Hub
backgroundNewProA pill in the middle with curved hairlines running out to both edges, and soft light pulses that travel along them into the hub, out of it or both. Still under reduced motion.
Introductory price until 31 December 2026. €79 after that.
Preview
Live demo. The theme switches the demo itself.
Code
The code is locked
Signal Hub is part of Manniche UI Pro. A key unlocks the source of all 66 effects.
Buy · €49€49 · Introductory price until 31 December 2026. €79 after that.
- One-off payment
- One developer
- Sign in and create your key straight away
- No VAT (§ 19 UStG)
Have a key? Get the code with the CLI or MCP.
The key lives in MANNICHE_PRO_KEY, never in your code or a URL. How to set it up
npx shadcn@latest add @manniche-pro/signal-hubclaude mcp add --transport http manniche-ui https://mikkelmanniche.dk/api/mcp --header "Authorization: Bearer $MANNICHE_PRO_KEY"Props
SignalHubProps
| Prop | Type | Default | What it does |
|---|---|---|---|
children required | ReactNode | – | What sits in the hub, such as a product name or a logo and a name. Stays readable text. |
lines | number | 4 | How many lines run out from each side of the hub. Default 4; halved (at most 2) below 480 px wide. |
direction | SignalHubDirection | 'in' | "in" sends pulses to the hub, "out" sends them from the hub to the edges, "both" sends a wave in and one back out. Default "in". |
speed | number | 1 | Speed of the pulses; 1 is one wave every 3 seconds, 2 is twice as fast. Default 1. |
color | string | 'var(--primary)' | The colour of the pulses and the hub's glow, as any CSS colour. Default the theme's --primary. |
paused | boolean | false | Stops the pulses where they are. They also stop by themselves off screen and while the tab is hidden. |
hubClassName | string | – | Classes for the hub pill. |
className | string | – | Classes for the outer element. Set its height here; default 16rem, 20rem from sm. |
Also takes every prop from Omit<HTMLAttributes<HTMLDivElement>, 'children'>.
A11y
Screen reader
The hub is plain content in the page, so its text is read as normal. The lines and pulses are one aria-hidden SVG.
Reduced motion
Under reduced motion the lines are drawn still, with no pulses and a faint steady glow on the hub. The pulses stop while the element is off screen or the tab is hidden, and the paused prop stops them at any time.
Other
It is decorative and has no button of its own. If it sits next to content people need to read for more than five seconds, give them a way to stop it through paused (WCAG 2.2.2).