8-bit Item
8bitcn/itemFreeComponent
Displays an 8-bit item component.
Install it
npx shadcn@latest add https://www.8bitcn.com/r/item.jsonSource
1import type * as React from "react";23import { Slot } from "@radix-ui/react-slot";4import { type VariantProps, cva } from "class-variance-authority";56import { cn } from "@/lib/utils";78import { Separator } from "./separator";9import "@/components/ui/8bit/styles/retro.css";1011function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {12 return (13 <div14 role="list"15 data-slot="item-group"16 className={cn("group/item-group flex flex-col", className)}17 {...props}18 />19 );20}2122function ItemSeparator({23 className,24 ...props25}: React.ComponentProps<typeof Separator>) {26 return (27 <Separator28 data-slot="item-separator"29 orientation="horizontal"30 className={cn("my-0", className)}31 {...props}32 />33 );34}3536const itemVariants = cva(37 "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",38 {39 variants: {40 variant: {41 default: "bg-transparent",42 outline: "border-border",43 muted: "bg-muted/50",44 },45 size: {46 default: "p-4 gap-4 ",47 sm: "py-3 px-4 gap-2.5",48 },49 font: {50 normal: "",51 retro: "retro",52 },53 },54 defaultVariants: {55 variant: "default",56 size: "default",57 font: "retro",58 },59 }60);6162function Item({63 className,64 variant = "default",65 size = "default",66 font = "retro",67 asChild = false,68 ...props69}: React.ComponentProps<"div"> &70 VariantProps<typeof itemVariants> & { asChild?: boolean }) {71 const Comp = asChild ? Slot : "div";72 return (73 <Comp74 data-slot="item"75 data-variant={variant}76 data-size={size}77 data-font={font}78 className={cn(itemVariants({ variant, size, font, className }))}79 {...props}80 />81 );82}8384const itemMediaVariants = cva(85 "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",86 {87 variants: {88 variant: {89 default: "bg-transparent",90 icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",91 image:92 "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover",93 },94 },95 defaultVariants: {96// … truncated
What it pulls in
Other registry items
Files it writes
More from 8bitcn
All 121 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| 8-bit Accordionaccordion | 8bitcn | Components | Free | no deps · 2 files | |
| 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 |
