Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Icons

Use VuIcon with Iconify ion: ids only — no inline SVG; name icon-only controls.

Rules

  • Use icon="ion:…" only (for example ion:heart-outline)
  • Place icons in slots (start / end) or as stand-alone icons
  • Icon-only controls need an accessible name: aria-label or a visible label
  • Agents can discover ids with MCP search_icons
Do not inline SVG. That breaks theming, a11y, and tree-shaking conventions.

Across frameworks

import { VuButton } from "@velkin/react/button";
import { VuIcon } from "@velkin/react/icon";

<VuButton>
  <VuIcon slot="start" icon="ion:save-outline" />
  Save
</VuButton>

<VuButton aria-label="Settings" variant="ghost">
  <VuIcon icon="ion:settings-outline" />
</VuButton>

Common problems

ProblemFix
Icon missing or wrong setUse an ion: id only; check MCP search_icons
Vue start/end icon not showingWrap VuIcon in #start / #end
Icon-only button fails a11y checksAdd aria-label (or visible text)

Next steps

  • Slots
  • Accessibility
  • Icon
PreviousFormsNextStyling