Skip to content

Components

vuecs ships its components across separate packages — install only what you use. Each package is also a Vue plugin (app.use(formControls)) for global registration.

@vuecs/button

ComponentNotes
ButtonGeneral-purpose button with color/variant/size and a useSubmitButton() create-update helper

@vuecs/countdown

ComponentNotes
CountdownTimer countdown with typed slot props

@vuecs/elements

ComponentNotes
AlertPersistent banner — color × variant × size matrix; severity-derived ARIA role; auto-resolved leading icon
AspectRatioResponsive media container that maintains a width / height ratio (Reka primitive)
AvatarImage with graceful fallback (initials, icon, slot) — Reka primitive
BadgeStatus pill — solid / soft / outline × semantic color matrix
CardCompound surface — <VCCard> outer + Header / Title / Description / Body / Footer parts; variant + padding via context
CollapseReka Collapsible wrapper — v-model:open, auto-chevron, height transition; composes with Alert for dismiss animation
SeparatorHorizontal / vertical divider with proper ARIA (Reka primitive)
TagRemovable, value-bound chip + <VCTags> list helper
VisuallyHiddenScreen-reader-only content (Reka primitive)

@vuecs/forms

ComponentNotes
FormInputText input with optional debounce
FormNumberTyped numeric input with steppers (Reka primitive)
FormPinPIN / OTP input (Reka primitive)
FormTextareaMulti-line text input
FormSelectDropdown select with FormOption shape + grouping
FormSelectSearchSearchable select for long option lists
FormCheckboxCheckbox + group (Reka primitive); supports tri-state
FormSwitchToggle switch (Reka primitive)
FormRadioRadio + group with single v-model (Reka primitive)
FormSliderSingle-thumb or range slider; thumb count derives from v-model shape
FormTagsMulti-value chip input (Reka primitive)

@vuecs/gravatar

ComponentNotes
GravatarGravatar avatar from email address

@vuecs/icon

ComponentNotes
IconIconify-backed icon component used by VCButton, VCPagination, …
ComponentNotes
LinkRouter-aware anchor (vue-router / nuxt)

@vuecs/list

ComponentNotes
ListCompound list (List/Header/Body/Item/Footer/Loading/NoMore) + useList()

@vuecs/locale

ComposableNotes
LocaleBrowser-language-aware, resettable locale source — useLocaleManager() + useLocale(); bridges into core config

@vuecs/navigation

ComponentNotes
NavigationMulti-level nav with router integration
StepperMulti-step wizard / checkout / onboarding navigator (Reka primitive)

@vuecs/overlays

ComponentNotes
ModalCompound dialog (VCModal* parts) + useModal() view-stack composable
PopoverFloating panel anchored to a trigger (floating-ui positioning)
HoverCardHover-triggered floating panel with grace-area handling
TooltipHover/focus text bubble; app-level <VCTooltipProvider> for delays
ToastTransient notifications via shared useToast() queue; auto-dismiss, swipe-to-close, action button
DropdownMenuClick-triggered action menu with arrow/typeahead navigation
ContextMenuRight-click menu (same shape as DropdownMenu, cursor-anchored)

@vuecs/pagination

ComponentNotes
PaginationOffset/limit page navigation

@vuecs/table

ComponentNotes
TableCompound table — <VCTable> + 8 parts (Header / Body / Footer / Row / Cell / HeadCell / Empty / Loading) with a :columns :data driver, controlled sort, row-meta variants, and opt-in row keyboard nav

@vuecs/timeago

ComponentNotes
TimeagoRelative time display

Conventions across components

  • Every component takes themeClass (slot class overrides) and themeVariant (variant values) — see Theme System.
  • Components use TypeScript render functions (defineComponent + h()) — there are no .vue SFCs to compile in most packages, except form-controls.
  • Slot props are typed and exported per component — ListItemSlotProps, NavItemLinkSlotProps, CountdownSlotProps, etc.

Released under the Apache 2.0 License.