Claude Header
brainless/claude-headerFreeComponent
Claude Code's welcome box — logo, tips, and model/cwd lines — with the title as a semantic fieldset legend.
Install it
npx shadcn@latest add https://brainless.swerdlow.dev/r/claude-header.jsonSource
1import * as React from "react";2import { cn } from "@/lib/utils";34/**5 * ClaudeHeader — Claude Code's welcome box.6 *7 * The title-in-the-border is a real <fieldset>/<legend>, so it stays semantic8 * and inherits whatever background it sits on. The logo is Claude Code's own9 * pixel sprite, but drawn as a crisp SVG grid instead of quadrant-block glyphs10 * — no font seams, scales cleanly.11 */12const ROSE = "#cd694a";13const GRAY = "#949494";1415// Claude's launch sprite as a 1-bit bitmap (decoded from the terminal glyphs).16const LOGO_BITS = [17 "000111111111111000",18 "000110111111011000",19 "011111111111111110",20 "000111111111111000",21 "000010100001010000",22];2324export function ClaudeLogo({25 scale = 4,26 color = ROSE,27 className,28}: {29 scale?: number;30 color?: string;31 className?: string;32}) {33 const w = LOGO_BITS[0].length;34 const h = LOGO_BITS.length;35 // Terminal char cells are taller than wide, so each sprite pixel is stretched36 // vertically (PH) to keep the logo's proportions instead of looking squat.37 const PH = 2.4;38 const rects: React.ReactElement[] = [];39 LOGO_BITS.forEach((row, y) => {40 let x = 0;41 while (x < w) {42 if (row[x] === "1") {43 let end = x;44 while (end < w && row[end] === "1") end += 1;45 rects.push(46 <rect key={`${x}-${y}`} x={x} y={y * PH} width={end - x} height={PH} />,47 );48 x = end;49 } else {50 x += 1;51 }52 }53 });54 return (55 <svg56 aria-hidden57 width={w * scale}58 height={h * PH * scale}59 viewBox={`0 0 ${w} ${h * PH}`}60 shapeRendering="crispEdges"61 fill={color}62 className={className}63 >64 {rects}65 </svg>66 );67}6869export function ClaudeHeader({70 version = "v2.1.206",71 user = "Ben",72 model = "Fable 5 with xhigh effort · Claude Max",73 org = "ben@freestyle.sh's Organization",74 cwd = "~/dev/brainless",75 tips = ["Ask Claude to create a new app or clone a repo"],76 whatsNew = [77 "Added directory path suggestions to /cd",78 "Added a /doctor check that proposes trims",79 ],80 className,81}: {82 version?: string;83 user?: string;84 model?: string;85 org?: string;86 cwd?: string;87 tips?: string[];88 whatsNew?: string[];89 className?: string;90}) {91 return (92 <fieldset93 className={cn(94 "min-w-0 rounded-[6px] border px-3 pb-3.5 pt-1 font-mono text-[13px] leading-[1.5] text-[#c0caf5] sm:px-4",95 className,96 )}97 style={{ borderColor: ROSE }}98 >99// … truncated
Files it writes
More from brainless
All 40 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Claude Diffclaude-diff | brainless | Components | Free | no deps | |
| Claude Messageclaude-message | brainless | Components | Free | no deps | |
| Claude Permissionclaude-permission | brainless | Components | Free | no deps | |
| Claude Promptclaude-prompt | brainless | Components | Free | no deps | |
| Claude Slash Menuclaude-slash-menu | brainless | Components | Free | no deps | |
| Claude Thinkingclaude-thinking | brainless | Components | Free | no deps | |
| Claude Todo Listclaude-todo-list | brainless | Components | Free | no deps | |
| Claude Tool Callclaude-tool-call | brainless | Components | Free | no deps |
