Skip to content

Component Selection

The CLI wizard lets you choose which components to include during project setup.

During setup, the wizard presents component options:

◇ Which components would you like to include?
│ ● All components (recommended)
│ ○ UI components only
│ ○ UI + Patterns
│ ○ None (minimal)
OptionWhat’s Included
All componentsFull 27+ component library with UI, patterns, and hero sections
UI components onlyCore interface components (Button, Input, Card, etc.)
UI + PatternsUI components plus pre-built form patterns
None (minimal)Just layouts, SEO, and navigation — add components later

For automation or quick setups, use the --components flag:

Terminal window
pnpm create velocity-astro my-site --components
# or
pnpm create velocity-astro my-site --components=all

Core interface components for building pages.

ComponentDescription
ButtonActions with variants (primary, secondary, outline, ghost)
InputText input with label, hint, error states
TextareaMulti-line text input
SelectDropdown selection
CheckboxCheckbox with label
RadioRadio button selection
CardContent container with structured layouts
BadgeStatus labels and tags
AlertContextual feedback messages
DialogModal dialogs
TabsHorizontal tab navigation
VerticalTabsVertical tab navigation
TooltipHover tooltips
DropdownDropdown menus
SkeletonLoading placeholders
LogoBrand logo with variants
AvatarUser profile images
CodeBlockSyntax-highlighted code
SocialProofTestimonial cards
TerminalDemoAnimated terminal demo
CTACall-to-action buttons

Pre-built form patterns for common use cases.

ComponentDescription
ContactFormComplete contact form with validation
NewsletterFormEmail subscription form
FormFieldReusable form field wrapper

Flexible hero sections for landing pages.

ComponentDescription
HeroHero section with multiple layout options
<Button
variant="primary" <!-- primary | secondary | outline | ghost | destructive -->
size="md" <!-- sm | md | lg -->
colorScheme="default" <!-- default | invert -->
fullWidth={false}
icon={false}
href="/path" <!-- renders as <a> when provided -->
/>
<Hero
layout="single" <!-- single | split -->
splitRatio="1:1" <!-- 1:1 | 1:2 | 2:1 -->
align="left" <!-- left | center | right -->
background="default" <!-- default | secondary | invert | gradient | image -->
size="lg" <!-- sm | md | lg | xl -->
showGrid={true}
showBlob={true}
title="Your Title"
titleHighlight="Title" <!-- text to highlight in brand color -->
description="..."
/>
<CTA
variant="default" <!-- default | invert -->
size="lg" <!-- sm | md | lg | xl -->
align="center" <!-- center | left -->
showLogo={true}
heading="Ready to start?"
headingHighlight="start"
description="Get started in seconds."
showCopyCommand={true}
/>

Components are managed via component-registry.json in Velocity. The registry defines:

  • Component files and locations
  • Dependencies between components
  • Required utilities (like cn for class merging)
  • Category groupings

Regardless of component selection, these are always included:

  • Header — Site navigation
  • Footer — Site footer
  • ThemeToggle — Dark mode toggle
  • SEO — Meta tags component
  • JsonLd — Structured data
  • Breadcrumbs — Navigation breadcrumbs
  • Layouts — All page layouts