Heroes, terminals, FAQs, calculators and other blocks for marketing pages.
Larger blocks from the home page concepts, ready to drop into a page: each one is a composition of components from this library.
7 parts
A dark terminal window with sample scan output: usage bars, a context cost and a verdict per item, printed line by line.
import { Terminal } from '@rchursin/home/Terminal'
/** Sample output of a scan, always on a dark panel. Wide lines scroll inside the window, not the page. */export default function TerminalScan() { return <Terminal className="w-full max-w-2xl" />}A paper receipt for one agent task: torn edges, dotted leaders, a total, and a FIX stamp that lands.
import { Receipt } from '@rchursin/home/Receipt'
/** One task's tokens and cost, printed on paper. The paper stays white in both themes. */export default function ReceiptTask() { return <Receipt className="w-full max-w-sm" />}A still picture of the product: four headline numbers, a bar list of skill runs and a ledger with verdicts, on sample data.
import { DashboardMock } from '@rchursin/home/DashboardMock'
/** * A still picture of the app on sample data. It lays itself out by its own width, not the * window's: one column when narrow, a sidebar from 656 pixels, and skill runs beside the ledger * from 976 pixels. Resize the window to watch it change. */export default function DashboardMockOverview() { return <DashboardMock className="w-full" />}Two sliders estimate the tokens idle skills add to every turn, beside a grid with one square per skill.
import { CutCalculator } from '@rchursin/home/CutCalculator'
/** Move either slider: the totals update as you go and are read out politely. */export default function CutCalculatorEstimate() { return <CutCalculator className="w-full" />}A month of agent runs as a wall of squares, with a sweeping day highlight you can pause.
import { RunWall } from '@rchursin/home/RunWall'
/** * Twelve agents over thirty days, on sample data. The highlight that sweeps across the days * can be paused, and never moves when reduced motion is on. */export default function RunWallThirtyDays() { return <RunWall className="w-full" />}Questions and answers on native <details>: one answer open at a time, with no JavaScript required.
import { Faq } from '@rchursin/home/Faq'
const questions = [ { q: 'Is the code on these pages the code that runs?', a: 'Yes. Each example’s code view is the example file itself, read as text by the bundler, so the preview and the code can’t drift apart.', }, { q: 'Does this accordion need JavaScript?', a: 'No. It is the browser’s own <details> element, so it opens, closes and works with a keyboard and a screen reader before any script loads.', }, { q: 'Can more than one answer be open at once?', a: 'Not in current browsers. The answers share a group name, so opening one closes the other. Older browsers ignore the group and let several stay open.', }, { q: 'What is the Library built with?', a: 'React 19, TypeScript and Tailwind CSS v4. React and React DOM are its only runtime dependencies.', },]
/** Pass your own questions with `items`. Leave it out and you get the sample questions from home/content.ts. */export default function FaqLibrary() { return <Faq items={questions} className="w-full max-w-2xl" />}A one-line shell command with a $ prompt and a Copy command button.
import { CommandLine } from '@rchursin/home/ui'
/** * The $ is drawn, not copied: each button puts only its command on the clipboard. With two on * one page, each button is named for its own command. */export default function CommandLineBasic() { return ( <div className="flex w-full max-w-md flex-col gap-3"> <CommandLine command="npm install" label="Copy install command" /> <CommandLine command="npm run dev" label="Copy dev command" /> </div> )}$ npx rchursin scanReading .claude/agents (12) and .claude/skills (81)Reading 1,204 sessions from the last 30 daysAgents 3 of 12 usedSkills 11 of 81 usedContext ~8.1k tokens on every turn, from skill descriptionsKEEP pr-review Used daily. Finishes the job.FIX test-fixer Fails more than half the time.MERGE api-docs Does the same job as openapi-writer.CUT db-migration-helper No runs in 45 days.Full report: ./rchursin-report.htmlYes. Each example’s code view is the example file itself, read as text by the bundler, so the preview and the code can’t drift apart.
No. It is the browser’s own <details> element, so it opens, closes and works with a keyboard and a screen reader before any script loads.
Not in current browsers. The answers share a group name, so opening one closes the other. Older browsers ignore the group and let several stay open.
React 19, TypeScript and Tailwind CSS v4. React and React DOM are its only runtime dependencies.
npm installnpm run dev