Canvas
--backgroundPage, header, form and dialog surfaces.
Brand foundations, reusable components and clear rules for building a consistent reference workspace.
White and neutral working surfaces give the references room. Teal signals action, focus and selection.
--backgroundPage, header, form and dialog surfaces.
--foregroundHeadings, body copy and control values.
--primaryPrimary actions, selection and focus.
--primary-hoverHover treatment for primary actions.
--surface-softSupporting panels and subtle separation.
--mutedSecondary copy and supporting icons.
--borderFields, dividers and card outlines.
--border-strongHigher contrast boundaries and switch track.
--accentActive navigation and selected context.
Brand primitives → semantic purpose → shared component styling.
--brand-teal: #286D73;
--primary: var(--brand-teal);
.button.primary { background: var(--primary); }The current implementation uses CSS semantic variables and shared classes. Theme overrides change semantics, not individual page colors.
4px8px12px16px24px32px48pxUse a 4px spacing rhythm. Field radius: 8px; workspace radius: 10px; Radix tokens: 6 / 8 / 12px. Preserve component-specific radii in the source instead of inventing new values.
Small feedback transitions, approximately 160ms. Respect reduced motion. Motion explains state; it does not decorate every action.
Direct, calm and actionable. Tell users what happened and what to do next. “Save reference”, “Paste AI result”, “Review DNA”. Never label inferred observations as confirmed facts.
English and Indonesian UI are supported. Notes, titles, extracted DNA and exported briefs retain their original language. Brand colors belong to ViRef's interface, not the user's exported design.
Arial / system sans-serif. A readable scale, deliberate hierarchy and no UI labels below 14px.
35px / 1.2 · 500 · −1.35pxh1
24px / 1.3 · 500 · Normalh2
18px / 1.5 · 600 · Normal.reference-title
16px / 1.6 · 400 · Normalbody / .field input
14px / 1.5 · 400–600 · Normal.field / .form-note
14px / 1.5 · 600 · 1.8px.eyebrow
Page title reduces to 30px at narrower breakpoints. Card titles reduce to 16px on mobile. Section heading examples use the documented 24px hierarchy; source-specific headings remain recorded in their modules. Allow Indonesian copy to wrap instead of shrinking it.
Small, reusable building blocks. Every interactive atom needs focus, disabled and accessible states.
Primary for the next meaningful action; secondary for alternatives; quiet for low-priority actions. Lead with the icon, trail with a directional arrow. Disabled controls must not run actions.
workspace.css · .buttonLucide only, normally 18px for actions and 20px for navigation; stroke 1.75. Use concise status text with meaning beyond color. Icon-only buttons require accessible names.
lucide-react · .reference-tags16px field text, 14px label/helper, a neutral surface and semantic border. Support placeholder, focus, filled, disabled and invalid states. Bind labels to inputs and show errors in text.
workspace.css · .fieldShared Radix primitives provide keyboard behavior. Triggers and menus use semantic background/text colors in both themes. Checked states expose their meaning to assistive technology.
components/ui/select.tsx · checkbox.tsxDo not simulate focus as a static decoration: Tab through these controls. Error messages explain recovery. Saving and loading indicate real work; these gallery demos do not call production APIs.
Atoms assembled around one task, with labels, guidance and honest state.
Search field + filter dropdown + reset action.
A 16px search field, clear filter labels, optional advanced filters and an explicit reset. Preserve the user's query when changing display density.
reference-workspace.tsx · Choice / FieldExplain what failed, protect unsaved input and offer a next action. Use danger semantics, never brand teal to signal failure.
workspace.css · .inline-error / .loading-stateSave a screenshot or source URL.
One clear title, a concrete explanation and one primary action. Empty is a valid state, not an error.
reference-workspace.tsx · Empty



Real shared component with public demo sources. One to four screenshots, deduplicated IDs, lazy images, and honest no-image/link-only fallbacks. Never replace private images with invented content.
components/reference-mosaic.tsxShared product component. 12 items per page by default; hide on a single page. Use in Library, Collections lists/detail and Directions. Never in save/review forms or the Library picker.
components/pagination.tsxThe major product surfaces. Composition rules preserve hierarchy across the entire workspace.
Direct-access brand and component documentation with safe demonstrations and a searchable source inventory. No application navigation entry; no private workspace data or writes.
components/design-guidelines.tsxShared language selector and accessible theme switch. Both controls share a 44px frame and 18px icons. Browser-persisted preferences update every page; technical documentation remains English.
components/navbar-preferences.tsxApplication shell, Library, reference capture/detail/review, Directions and Settings. Owns loading, empty, error and edit states. Keep storage status in the sidebar; language and theme in the navbar.
components/reference-workspace.tsxOne visible Collection level; select existing Library references or upload new ones. Keep originals unique and show source mosaics. Deleting a Collection does not delete Library references.
components/collections.tsxVisible Combine reference rail and page scaffold. Click or drag to fill a named section; dropping replaces its target. Reorder with drag or keyboard buttons. Empty guides are not persisted or exported. Source selection, page tabs and shared style remain visible; optional notes are secondary.
components/blend-canvas.tsxCompare and Combine share a visible source rail and page outline. Show a direct Blend name below the A/B/C tabs; remove optional variants with the named X buttons while preserving the last plan. Keep style selection, optional project context, brief review and a save recap together in the content column, with Save at the end.
components/blend-board.tsxGrouped Prepare for AI → Paste result → Review DNA flow. Validate pasted JSON before review; show editable evidence and preserve personal notes. Saving without DNA remains supported.
components/dna-extraction-flow.tsxReviewed design characteristics and borrowing guidance. Keep visual observations separate from inferred or unknown claims.
components/style-recipe.tsxMCP setup, scoped credentials and connection instructions. Expose rotation/revocation clearly; do not display real tokens in this documentation.
components/mcp-connection.tsxOptional AI provider configuration dialog with loading, connected and error states. Core reference saving must remain usable without an API connection.
components/ai-setup-dialog.tsxFirst-use video guidance with explicit skip/start and replay from Settings. Use real player controls and captions; do not block access to the workspace.
components/product-tour.tsxLibrary, Collections list/detail and Directions only. Hide when one page is enough; keep it out of capture/review and Library pickers. Previous/next boundaries are disabled.
components/pagination.tsxPreview up to four actual saved screenshots. Deduplicate source IDs, top-align crops, lazy-load images and show honest empty/link-only states.
components/reference-mosaic.tsxA stable shell, predictable actions and focused content across five workspace routes.
Purpose and next action
| Page | Route | Composition | Important states |
|---|---|---|---|
| Library | / | Heading → filters → tabs → reference grid → pagination | Loading, empty, filtered empty, selection, error |
| Collections | /collections | Collection mosaics → direct Library membership | Empty, picker, rename, delete, stale save |
| Blend | /blend | Scope → Compare/Combine → variant → sections → export | A/B/C, saved/unsaved, conflict, no references |
| Directions | /directions | Source preview → saved brief → edit/export | Empty, edit, delete, missing source |
| Settings | /settings | Preferences guidance → connections → data controls | Configured, unavailable, error |
At ≤700px: compact icon navigation, wrapping header and stacked content. At ≤400px: single-column references. No pagination behind capture/review dialogs. A full-page guideline navigation is specific to this documentation, not the workspace shell.
Every product module and every available UI module. Search by name, exported component or source path.
74 modules shown. “Used by product” means imported directly by a product module; available primitives may be used transitively by other UI primitives. Availability does not make a module an approved product pattern.
components/ui/accordion.tsxaccordion is a shared disclosure primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Accordion, AccordionItem, AccordionTrigger, AccordionContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/alert-dialog.tsxalert dialog is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger
Product usage: components/collections.tsx, components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/alert.tsxalert is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Alert, AlertTitle, AlertDescription
Product usage: components/collections.tsx, components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/aspect-ratio.tsxaspect ratio is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: AspectRatio
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/attachment.tsxattachment is a shared messaging primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Attachment, AttachmentGroup, AttachmentMedia, AttachmentContent, AttachmentTitle, AttachmentDescription, AttachmentActions, AttachmentAction, AttachmentTrigger
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/avatar.tsxavatar is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/badge.tsxbadge is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Badge
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/breadcrumb.tsxbreadcrumb is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/bubble.tsxbubble is a shared messaging primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: BubbleGroup, Bubble, BubbleContent, BubbleReactions
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/button-group.tsxbutton group is a shared actions primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ButtonGroup, ButtonGroupSeparator, ButtonGroupText
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/button.tsxbutton is a shared actions primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Button
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/calendar.tsxcalendar is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Calendar, CalendarDayButton
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/card.tsxcard is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/carousel.tsxcarousel is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/chart.tsxchart is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/checkbox.tsxcheckbox is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Checkbox
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/collapsible.tsxcollapsible is a shared disclosure primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Collapsible, CollapsibleTrigger, CollapsibleContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/combobox.tsxcombobox is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, ComboboxTrigger, ComboboxValue
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/command.tsxcommand is a shared interface primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/context-menu.tsxcontext menu is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/dialog.tsxdialog is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger
Product usage: components/ai-setup-dialog.tsx, components/collections.tsx, components/mcp-connection.tsx, components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/direction.tsxdirection is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: DirectionProvider
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/drawer.tsxdrawer is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/dropdown-menu.tsxdropdown menu is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/empty.tsxempty is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/field.tsxfield is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/form.tsxform is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/hover-card.tsxhover card is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: HoverCard, HoverCardTrigger, HoverCardContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/input-group.tsxinput group is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/input-otp.tsxinput otp is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/input.tsxinput is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Input
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/item.tsxitem is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/kbd.tsxkbd is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Kbd, KbdGroup
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/label.tsxlabel is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Label
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/marker.tsxmarker is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Marker, MarkerIcon, MarkerContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/menubar.tsxmenubar is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/message-scroller.tsxmessage scroller is a shared messaging primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: MessageScrollerProvider, MessageScroller, MessageScrollerViewport, MessageScrollerContent, MessageScrollerItem, MessageScrollerButton
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/message.tsxmessage is a shared messaging primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/native-select.tsxnative select is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: NativeSelect, NativeSelectOptGroup, NativeSelectOption
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/navigation-menu.tsxnavigation menu is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/pagination.tsxpagination is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis
Product usage: components/collections.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/popover.tsxpopover is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/progress.tsxprogress is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Progress
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/radio-group.tsxradio group is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: RadioGroup, RadioGroupItem
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/resizable.tsxresizable is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ResizableHandle, ResizablePanel, ResizablePanelGroup
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/scroll-area.tsxscroll area is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ScrollArea, ScrollBar
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/select.tsxselect is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/separator.tsxseparator is a shared layout primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Separator
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/sheet.tsxsheet is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/sidebar.tsxsidebar is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/skeleton.tsxskeleton is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Skeleton
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/slider.tsxslider is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Slider
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/sonner.tsxsonner is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Toaster
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/spinner.tsxspinner is a shared feedback primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Spinner
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/switch.tsxswitch is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Switch
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/table.tsxtable is a shared data display primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/tabs.tsxtabs is a shared navigation primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Tabs, TabsList, TabsTrigger, TabsContent
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/textarea.tsxtextarea is a shared forms primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Textarea
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/toggle-group.tsxtoggle group is a shared actions primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: ToggleGroup, ToggleGroupItem
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/toggle.tsxtoggle is a shared actions primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Toggle
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ui/tooltip.tsxtooltip is a shared overlays primitive. Prefer the existing module and its exported variants over a page-specific replacement.
Exports: Tooltip, TooltipTrigger, TooltipContent, TooltipProvider
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/ai-setup-dialog.tsxOptional AI provider configuration dialog with loading, connected and error states. Core reference saving must remain usable without an API connection.
Exports: AISetupDialog
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/blend-board.tsxCompare and Combine share a visible source rail and page outline. Show a direct Blend name below the A/B/C tabs; remove optional variants with the named X buttons while preserving the last plan. Keep style selection, optional project context, brief review and a save recap together in the content column, with Save at the end.
Exports: BlendBoardEditor
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/blend-canvas.tsxVisible Combine reference rail and page scaffold. Click or drag to fill a named section; dropping replaces its target. Reorder with drag or keyboard buttons. Empty guides are not persisted or exported. Source selection, page tabs and shared style remain visible; optional notes are secondary.
Exports: BlendCanvas
Product usage: components/blend-board.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/collections.tsxOne visible Collection level; select existing Library references or upload new ones. Keep originals unique and show source mosaics. Deleting a Collection does not delete Library references.
Exports: Collections
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/design-guidelines.tsxDirect-access brand and component documentation with safe demonstrations and a searchable source inventory. No application navigation entry; no private workspace data or writes.
Exports: DesignGuidelines
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/dna-extraction-flow.tsxGrouped Prepare for AI → Paste result → Review DNA flow. Validate pasted JSON before review; show editable evidence and preserve personal notes. Saving without DNA remains supported.
Exports: DNAExtractionFlow
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/mcp-connection.tsxMCP setup, scoped credentials and connection instructions. Expose rotation/revocation clearly; do not display real tokens in this documentation.
Exports: MCPConnection
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/navbar-preferences.tsxShared language selector and accessible theme switch. Both controls share a 44px frame and 18px icons. Browser-persisted preferences update every page; technical documentation remains English.
Exports: NavbarPreferences
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/pagination.tsxLibrary, Collections list/detail and Directions only. Hide when one page is enough; keep it out of capture/review and Library pickers. Previous/next boundaries are disabled.
Exports: Pagination
Product usage: components/collections.tsx, components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/product-tour.tsxFirst-use video guidance with explicit skip/start and replay from Settings. Use real player controls and captions; do not block access to the workspace.
Exports: ProductTour
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/reference-mosaic.tsxPreview up to four actual saved screenshots. Deduplicate source IDs, top-align crops, lazy-load images and show honest empty/link-only states.
Exports: ReferenceMosaic
Product usage: components/collections.tsx, components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/reference-workspace.tsxApplication shell, Library, reference capture/detail/review, Directions and Settings. Owns loading, empty, error and edit states. Keep storage status in the sidebar; language and theme in the navbar.
Exports: ReferenceWorkspace
Product usage: Available support module; no direct product import.
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
components/style-recipe.tsxReviewed design characteristics and borrowing guidance. Keep visual observations separate from inferred or unknown claims.
Exports: StyleRecipe
Product usage: components/reference-workspace.tsx
Rules: semantic colors; minimum 14px UI copy; keyboard and visible focus for interactive variants; accessible names; disabled/error/empty behavior where applicable. Default variants and compound anatomy are defined in the source module.
Keep this guide, the source and the rendered product in sync.
src/styles/workspace.css — semantic colors, shared UI styling and responsive rules.
components/ui/* — primitive anatomy and variants.
components/* — product composition and behavior.
lib/design-catalog.ts — module inventory with source and direct usage.
docs/ATOMIC-DESIGN.md — component contract and change procedure.
This direct-access route is not linked from the application. It is documentation, not a private or authenticated page. It contains only public demo assets and source specifications; no workspace data or credentials.