Getting Started
App Providerglobal.d.tsThemesTypes
cn(...args)Text ParserUnits Converters
AnchorAvatarBreadcrumbBurgerButtonCardCarouselCheckerCodeColor PickerCommandConfettiCopyButtonDouble Helix WordsFloating IndicatorGroupHighlight TextIndicatorInputKbdLabelLoaderPaginationPassword RequirementPolymorphic SlotProgressProseRatingRunning AreaScroll AreaSheetsSkeletonSliderStackSvgTableTabsTextareaTimelineTimesToasterTooltipTyping WordsTypography
useClickOutsideuseClipboarduseDeviceInfouseDialoguseDidUpdateuseDirectionuseDisclosureuseDocumentTitleuseDocumentVisibilityuseElementInfouseEyeDropperuseFetchuseFullscreenuseGeoLocationuseHotkeysuseHoveruseIduseImagePopupuseInputStateuseIntersectionuseIntervaluseIsomorphicEffectuseListStateuseLocalStorageuseMeasureScrollbaruseMediaQueryuseMergedRefuseMouseuseMoveuseMutationObserveruseNetworkuseOpenStateuseOrientationuseOSusePaginationusePWAInstalleruseRandomColorsuseReducedMotionuseReloaduseResizeObserveruseScrollIntoViewuseStateHistoryuseTimeoutuseTouchuseTriggeruseUncontrolleduseValidatedStateuseViewportSizeuseWindowEventuseWindowScroll
Docs
Web
Components
Button
Burger

A mobile-friendly component that shows a collapsed navigation menu, often used for responsive design.

Card

A flexible container for organizing and displaying content in a structured format.


Edit this page on GitHub
  • Started
  • Utilities
  • Configuration
  • Components
  • Hooks
  • Examples
  • Github
  • Contributing
⌘+J

© 2025 oeri rights MIT


Designed in Earth-616

Built by oeri

Button

A clickable element that triggers actions when interacted with. Can be customized in terms of style, size, and behavior.

Usage

Basic usage example to quickly see how the Button works.

import { Button } from "@/ui/button";

export function ButtonDemo() {
  return <Button>Button</Button>;
}

Properties

Interactive configurator to explore customization options for the Button component.

import { Button } from "@/ui/button";

export function ButtonDemo() {
  return <Button>Button</Button>;
}

UnstyledButton

UnstyledButton allows to provide its own style independent of all the styles and variant properties of Button. This can be very useful when you want to use it as a trigger for a tooltip or another toggle.

Used as asChild it helps to pass the button property to its single child.

"use client";
import { useState } from "react";
import { UnstyledButton } from "@/ui/button";

export function UnstyledButtonDemo() {
  const [loading, setLoading] = useState(false);
  return (
    <UnstyledButton
      loading={loading}
      onClick={() => {
        setLoading(true);
        setTimeout(() => setLoading(false), 2500);
      }}
    >
      UnstyledButton
    </UnstyledButton>
  );
}

API References

  • mdn

Styles API

type Variant = "default" | "destructive" | "constructive" | "conservative" | "primitive" | "outline" | "ghost" | "link";
type Colors = "base" | "blue" | "green" | "red" | "default" | "grape" | "gradient-blue" | "gradient-orange" | "outline-base" | "outline-indigo" | "outline-teal";
type Size = "default" | "icon" | "sm" | "lg" | "badge";
Styles APITypeDefaultAnnotation
unstyled?booleanfalseif true, all default styles will be removed
variant?VariantdefaultSet variant of button
color?ColorsundefinedSet color of button
size?VariantdefaultSet size of button with tailwindcss

Source Codes

Full working code example, including necessary markup and styles. You can copy and paste this code directly to start using the component immediately.

button.tsx