These are this example's bespoke copies of the threads panel. They are no
longer a shared/tokenized base component — they are styled to read as one
product with the example's CopilotSidebar (the right-side chat from
@copilotkit/react-core/v2).
All surfaces, borders, radii, and type ramps are lifted from CopilotKit's V2
design system: @copilotkit/react-core/src/v2/styles/globals.css plus the chat
components (CopilotModalHeader, CopilotChatSuggestionPill,
CopilotChatInput, CopilotSidebarView). The tokens are mirrored verbatim into
src/app/globals.css:
| Token | Value (V2 light) | Role in the panel |
|---|---|---|
--card / --background |
oklch(1 0 0) (white) |
Panel + card surfaces |
--foreground |
oklch(0.145 0 0) |
Titles, thread titles, dialog text |
--muted / --secondary / --accent |
oklch(0.97 0 0) |
Hover/active surfaces, segment track, archived chip, code well |
--muted-foreground |
oklch(0.556 0 0) |
Meta text, idle icons, descriptions, placeholders |
--border / --input |
oklch(0.922 0 0) |
All hairline borders |
--primary |
oklch(0.205 0 0) (near-black) |
New-thread pill, selected accent, primary CTA — the V2 sidebar's primary buttons are charcoal/black, not a brand accent |
--primary-foreground |
oklch(0.985 0 0) |
Primary button text |
--destructive |
oklch(0.577 0.245 27.325) |
Delete hover |
--ring |
oklch(0.708 0 0) |
Focus rings (2px box-shadow) |
--radius |
0.625rem (+ sm/md/lg/xl) |
Rectangular controls; icon buttons / pills / segments use 999px to echo the sidebar's close button, suggestion pills, and send button |
This example's CopilotSidebar is always light regardless of OS color scheme.
The panel must match it, so src/app/globals.css re-pins --foreground and
--background to the V2 light values on .threadsLayout (the layout wrapper)
and on body > [role="presentation"] (the confirm dialog renders in a portal on
<body>). The dark-mode @media (prefers-color-scheme: dark) block only flips
the bare page --background/--foreground; the panel overrides win because
they are scoped to the layout/portal roots.
The example loads no custom web font — its body uses the system
Arial, Helvetica, sans-serif stack. The panel follows it via --font-body
(same stack) and --font-code (a system monospace stack). Sizes/weights track
the sidebar: header title 1rem / 500 / tracking-tight, thread titles
0.8125rem / 500, meta 0.6875rem, all medium-weight — no heavy 700s.
Edit these files freely; they are this example's own and not shared with other examples.