8-bit Accordion
8bitcn/accordionFreeComponent
A simple 8-bit accordion component
Install it
npx shadcn@latest add https://www.8bitcn.com/r/accordion.jsonSource
1"use client";23import type * as React from "react";45import * as AccordionPrimitive from "@radix-ui/react-accordion";67import { cn } from "@/lib/utils";89import {10 Accordion as ShadcnAccordion,11 AccordionContent as ShadcnAccordionContent,12 AccordionItem as ShadcnAccordionItem,13 AccordionTrigger as ShadcnAccordionTrigger,14} from "@/components/ui/accordion";1516import "@/components/ui/8bit/styles/retro.css";1718export interface BitAccordionItemProps19 extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> {20 asChild?: boolean;21}2223function AccordionItem({24 className,25 children,26 ...props27}: BitAccordionItemProps) {28 return (29 <ShadcnAccordionItem30 className={cn(31 "border-dashed border-b-4 border-foreground dark:border-ring relative",32 className33 )}34 {...props}35 >36 {children}37 </ShadcnAccordionItem>38 );39}4041export interface BitAccordionTriggerProps42 extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {43 font?: "normal" | "retro";44}4546function AccordionTrigger({47 className,48 children,49 font,50 ...props51}: BitAccordionTriggerProps) {52 return (53 <ShadcnAccordionTrigger54 className={cn(font !== "normal" && "retro", className)}55 {...props}56 >57 {children}58 </ShadcnAccordionTrigger>59 );60}6162export interface BitAccordionContentProps63 extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> {64 font?: "normal" | "retro";65}6667function AccordionContent({68 className,69 children,70 font,71 ...props72}: BitAccordionContentProps) {73 return (74 <div className="relative">75 <ShadcnAccordionContent76 className={cn(77 "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",78 font !== "normal" && "retro",79 className80 )}81 {...props}82 >83 <div className="pb-4 pt-0 relative z-10 p-1">{children}</div>84 </ShadcnAccordionContent>8586 <AccordionPrimitive.Content asChild forceMount />87 </div>88 );89}9091const Accordion = ShadcnAccordion;9293export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
What it pulls in
Other registry items
Files it writes
More from 8bitcn
All 121 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| 8-bit Alertalert | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Alert Dialogalert-dialog | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Avataravatar | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Badgebadge | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Breadcrumbbreadcrumb | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Buttonbutton | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Button Groupbutton-group | 8bitcn | Components | Free | no deps · 4 files | |
| 8-bit Calendarcalendar | 8bitcn | Components | Free | no deps · 2 files |
