Skip to main content
Open Source · MIT License

Build trading UIs
without the baggage.

31 headless web components for trading UIs. Bring your own styles, data, and framework. Every doc example is wired to one live synthetic market feed — pick a scenario, scrub time, watch them all react.

npm install @wick/order-book

Everything you need. Nothing you don't.

60fps
Real-time rendering

Canvas 2D and requestAnimationFrame. Handles hundreds of WebSocket updates per second without touching the DOM.

<2KB
Per component
Gzipped. Tree-shakeable. No runtime overhead.
3 Sizes
sm
67,432.50
md
67,432.50
lg
67,432.50
sm · md · lg — compact to spacious.
4 Framework Wrappers
ReactVueSvelteAngular
Or use bare Web Components in any environment.
Headless & Composable
--wick-ob-bid-color: #00ff88
--wick-ob-row-height: 28px
--wick-ob-font-size: 12px
CSS Parts API. Every element targetable.
3 Built-in Themes
import '@wick/theme/glass'
67,4341.234
67,4330.934
67,4310.634
67,4300.334
Dark
67,4341.234
67,4330.934
67,4310.634
67,4300.334
Glass
67,4341.234
67,4330.934
67,4310.634
67,4300.334
Minimal

Component Library

Build any trading interface.

31 headless primitives — unstyled, composable, ready to drop into any stack. Use only what you need.

67,4363.012
67,4350.234
67,4341.890
67,4330.567
spread $1.00
67,4321.234
67,4310.891
67,4302.456
67,4291.123

Order Book

<wick-order-book>

Live bids & asks with cumulative depth bars. Stream via applyDelta(), configure grouping and depth.

BTC/USD
$67,432.50▲ +2.34%
24h High
$68,200
24h Low
$66,100
Volume
42.1K

Price Ticker

<wick-price-ticker>

Flash-on-change price display with 24h stats. Fires wick-price-change with direction on every update.

67,435.000.234buy12:34:21
67,432.501.120sell12:34:20
67,433.000.456buy12:34:19
67,431.502.001sell12:34:18
67,434.000.089buy12:34:17

Trade Feed

<wick-trade-feed>

Scrolling executed trades list. Stream via addTrade(). Configurable max rows, time format, and side coloring.

Showing 3 of 8 — explore the rest in the playground.

View all 8

10 Exchange Adapters

adapter.parse(msg)

Drop-in adapters normalise raw WebSocket messages from 10 exchanges into Wick types. One interface — everywhere.

BinanceCoinbaseKrakenBybitOKXdYdXBitfinexGate.ioMEXCKuCoin

Framework Support

Works with your stack

Native Web Components plus framework wrappers for the DX you expect.

import { OrderBook, PriceTicker } from '@wick/react';

function TradingPanel({ bookData, tickerData }) {
  return (
    <div className="trading-panel">
      <PriceTicker data={tickerData} showDetails />
      <OrderBook
        data={bookData}
        depth={15}
        showTotal
        showDepth
        onLevelClick={(d) => placeOrder(d.price)}
      />
    </div>
  );
}

Themes

One component. Three personalities.

Drop in a theme CSS file and every component inherits it. Override any token at the :root or component level.

Price (USD)Amount
67,4330.567
67,4341.890
67,4350.234
67,432.50
67,4321.234
67,4310.891
67,4302.456

Dark

Binance / Bybit aesthetic

High-contrast greens on near-black. The standard terminal dark theme — recognisable to any crypto trader.

import '@wick/theme/dark'
Price (USD)Amount
67,4330.567
67,4341.890
67,4350.234
67,432.50
67,4321.234
67,4310.891
67,4302.456

Glass

Glassmorphism

Translucent surfaces over rich purple gradients. Built for dashboard builders who want visual depth.

import '@wick/theme/glass'
Price (USD)Amount
67,4330.567
67,4341.890
67,4350.234
67,432.50
67,4321.234
67,4310.891
67,4302.456

Minimal

Linear / Stripe aesthetic

Monochrome restraint. Near-invisible borders, desaturated accents. Disappears behind your data.

import '@wick/theme/minimal'

Ready to ship?

Start building today.

The trading UI community finally has the primitives it deserves. Open source. MIT licensed.