AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证boxbox: animated F1-broadcast-style React components as a shadcn registry
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
boxbox.
Race graphics for React.
Animated components styled after motorsport television graphics: timing towers, sector times,
start lights, track maps, team radio. Distributed as a shadcn registry,
so you install the source into your project and own it.
The Replay page plays a real race with the whole
library at once: lap counter, race clock, timing tower, track map, flag banners, speed trap,
stints, gap chart, battle and pit stop cards, standings, and podium. Follow a driver, compare
them with up to three others, and copy a link to any moment of the race.查看完整 README ↗Race graphics for React.
Animated components styled after motorsport television graphics: timing towers, sector times, start lights, track maps, team radio. Distributed as a shadcn registry, so you install the source into your project and own it.
Website · Components · Replay · Installation
The Replay page plays a real race with the whole library at once: lap counter, race clock, timing tower, track map, flag banners, speed trap, stints, gap chart, battle and pit stop cards, standings, and podium. Follow a driver, compare them with up to three others, and copy a link to any moment of the race.
Click the image to open the video file (27 s, MP4).
20 components in four groups. Each one has a playground and its source on the site.
| Component | Registry item | What it is |
|---|---|---|
| Timing Tower | @boxbox/timing-tower | The running order. Rows slide as positions change; the value column shows gap, interval, or last lap. |
| Sector Times | @boxbox/sector-times | Three sector bars with broadcast colour coding, optional mini sectors, and a counting lap time. |
| Overtake Indicator | @boxbox/overtake-indicator | The overtaking aid badge: DRS (2011–2025) or Overtake Mode (2026 rules). |
| Gap Chart | @boxbox/gap-chart | Gap to the leader across the race. The followed car is in colour over the field. Uses Recharts. |
| Standings | @boxbox/standings | The championship table. Rows re-sort as points change, with the points gained and places moved. |
| Component | Registry item | What it is |
|---|---|---|
| Driver Name Plate | @boxbox/driver-name-plate | A lower third that wipes in with position, team colour, name, car number, and race status. |
| Replay Bumper | @boxbox/replay-bumper | A transition that sweeps over a panel so its content can change behind it. |
| Podium | @boxbox/podium | Three steps laid out second, first, third. The steps rise last place first. |
| Speed Trap | @boxbox/speed-trap | One car's speed trap reading, the session best under it, and a flash for a new record. |
| Gauge | @boxbox/gauge | Revolutions as an arc round the current gear. It turns red past the redline. |
| Team Radio | @boxbox/team-radio | A pit wall message: who talks to whom, a live audio trace, and the transcript word by word. |
| Battle Card | @boxbox/battle-card | Two cars fighting for a place: the interval, its trend per lap, and the swap on an overtake. |
| Component | Registry item | What it is |
|---|---|---|
| Start Lights | @boxbox/start-lights | A five-column gantry that arms light by light, holds, then goes out, or flashes on abort. |
| Flag Banner | @boxbox/flag-banner | A full-width banner with the track status, the sector it applies to, and a message. |
| Lap Counter | @boxbox/lap-counter | Rolls to the next lap and calls the last lap the final lap. |
| Race Clock | @boxbox/race-clock | Time remaining or elapsed as H:MM:SS, driven by its parent. |
| Track Map | @boxbox/track-map | A circuit outline. Each sector shows the flag in force; one marker per car goes round. |
| Component | Registry item | What it is |
|---|---|---|
| Tyre Badge | @boxbox/tyre-badge | The compound and the laps on the current set. It rotates when the compound changes. |
| Stint Bar | @boxbox/stint-bar | A car's tyre strategy as one bar: one segment per stint, filled to the current lap. |
| Pit Stop Card | @boxbox/pit-stop-card | One stop: stop number, tyres off and on, pit lane time, and position in and out. |
Shared items that the components pull in for you: boxbox-types, boxbox-theme,
boxbox-motion, rolling-number, waveform, and the optional boxbox-fonts.
You need React 19, Tailwind CSS v4, and an initialized shadcn project.
Register the namespace once. Without it, add @boxbox/... fails, because the components
depend on each other by namespaced name:
bunx shadcn@latest registry add @boxbox=https://react-boxbox.vercel.app/r/{name}.json
Install the theme, then any component:
bunx shadcn@latest add @boxbox/boxbox-theme
bunx shadcn@latest add @boxbox/timing-tower
The theme adds the colour tokens for sectors, tyres, flags, and track status. Add the dark
class to <html> for the dark palette. Light mode is supported.
Components read --font-display and --font-mono and never import fonts themselves. For the
intended typography (Titillium Web and JetBrains Mono):
bunx shadcn@latest add @boxbox/boxbox-fonts
Animation uses motion. Wrap your app once so movement follows the
visitor's system setting. Colour and opacity changes stay on, and every state stays readable:
import { MotionConfig } from 'motion/react';
export function App({ children }: { children: React.ReactNode }) {
return <MotionConfig reducedMotion="user">{children}</MotionConfig>;
}
This project is not affiliated with, endorsed by, or connected to any racing series, team, circuit, or governing body. No official typeface, livery, logo, or team identity is reproduced. The visual language is that of sports television in general.
The components ship no data. You pass in your own.
bun install
bun run dev
Useful scripts:
| Script | What it does |
|---|---|
bun run typecheck | tsc --noEmit |
bun run lint | oxlint, with the react and jsx-a11y plugins |
bun run format / format:check | oxfmt |
bun run test | Vitest and Testing Library (not bun test, Bun's own runner) |
bun run registry:build | Generates public/r/ from registry.json |
bun run og:build | Generates the Open Graph images in public/og/ |
bun run replays:build | Fetches the Replay races not on disk yet (--season 2026) |
bun run circuits:build | Generates src/data/circuits.ts from the circuit GeoJSON |
bun run build | Production build into .output/ |
The site is built with TanStack Start, React 19, and Tailwind CSS v4, and is hosted on Vercel.
Components live in registry/boxbox/, the site in src/, and architecture decisions in
docs/adr/. See CONTRIBUTING.md for the conventions that keep a component
installable.
MIT with the Commons Clause: free to use, modify, and ship inside your own products. You may not sell the components themselves as a product or service. See LICENSE.