Sabil UI

Search documentation

Search for a command to run...

Components

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

We offer standard (5-7 days), express (2-3 days), and overnight shipping. Free shipping on international orders.

Installation#

  1. Install the dependencies

    npm install cn radix-ui lucide-react
  2. Copy the source into your project

    components/ui/accordion.tsx
    "use client"import * as React from "react"import { cn } from "cn"import { Accordion as AccordionPrimitive } from "radix-ui"import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"function Accordion({  className,  ...props}: React.ComponentProps<typeof AccordionPrimitive.Root>) {  return (    <AccordionPrimitive.Root      data-slot="accordion"      className={cn("flex w-full flex-col", className)}      {...props}    />  )}function AccordionItem({  className,  ...props}: React.ComponentProps<typeof AccordionPrimitive.Item>) {  return (    <AccordionPrimitive.Item      data-slot="accordion-item"      className={cn("not-last:border-b", className)}      {...props}    />  )}function AccordionTrigger({  className,  children,  ...props}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {  return (    <AccordionPrimitive.Header className="flex">      <AccordionPrimitive.Trigger        data-slot="accordion-trigger"        className={cn(          "group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",          className        )}        {...props}      >        {children}        <ChevronDownIcon data-slot="accordion-trigger-icon" className="pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" />        <ChevronUpIcon data-slot="accordion-trigger-icon" className="pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" />      </AccordionPrimitive.Trigger>    </AccordionPrimitive.Header>  )}function AccordionContent({  className,  children,  ...props}: React.ComponentProps<typeof AccordionPrimitive.Content>) {  return (    <AccordionPrimitive.Content      data-slot="accordion-content"      className="overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up"      {...props}    >      <div        className={cn(          "h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",          className        )}      >        {children}      </div>    </AccordionPrimitive.Content>  )}export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
  3. Make sure the foundation is in place

    Components read their colors, radius and surfaces from the tokens in app/globals.css. See Theming.

Usage#

import {  Accordion,  AccordionItem,  AccordionTrigger,  AccordionContent,} from "@/components/ui/accordion"

Examples#

Basic

Click on 'Forgot Password' on the login page, enter your email address, and we'll send you a link to reset your password. The link will expire in 24 hours.

Borders

We offer monthly and annual subscription plans. Billing is charged at the beginning of each cycle, and you can cancel anytime. All plans include automatic backups, 24/7 support, and unlimited team members.

Card

Subscription & Billing
Common questions about your account, plans, payments and cancellations.

We offer three subscription tiers: Starter ($9/month), Professional ($29/month), and Enterprise ($99/month). Each plan includes increasing storage limits, API access, priority support, and team collaboration features.

Disabled

Multiple

Manage how you receive notifications. You can enable email alerts for updates or push notifications for mobile devices.