nori-ui

Button

Clickable action with variants, sizes, loading state, icon slots, and asChild.

At a glance

  • Variants: primary, secondary, ghost, destructive
  • Sizes: sm, md, lg
  • States: default, pressed, disabled, loading
  • Composition: asChild renders a supplied element (e.g. <Link>) as the interactive root.

Web preview

Variants

Native preview (Expo Snack)

Props

PropTypeDefaultDescription
variant'primary' | 'secondary' | 'ghost' | 'destructive''primary'Visual intent
size'sm' | 'md' | 'lg''md'Control height + text size
loadingbooleanfalseReplaces leading icon with Spinner; blocks press
disabledbooleanfalseVisually muted + non-interactive
leadingIcon / trailingIconComponentType<{ size?: number; color?: string }>Icon component reference
asChildbooleanfalseRenders the single child as the interactive root

asChild

<Button asChild variant="primary">
    <Link href="/somewhere">Go</Link>
</Button>

On this page