8-bit Select
8bitcn/selectFreeComponent
A simple 8-bit select component
Install it
npx shadcn@latest add https://www.8bitcn.com/r/select.jsonSource
1import type * as SelectPrimitive from "@radix-ui/react-select";2import { type VariantProps, cva } from "class-variance-authority";34import { cn } from "@/lib/utils";56import {7 Select as ShadcnSelect,8 SelectContent as ShadcnSelectContent,9 SelectGroup as ShadcnSelectGroup,10 SelectItem as ShadcnSelectItem,11 SelectLabel as ShadcnSelectLabel,12 SelectScrollDownButton as ShadcnSelectScrollDownButton,13 SelectScrollUpButton as ShadcnSelectScrollUpButton,14 SelectSeparator as ShadcnSelectSeparator,15 SelectTrigger as ShadcnSelectTrigger,16 SelectValue as ShadcnSelectValue,17} from "@/components/ui/select";1819import "@/components/ui/8bit/styles/retro.css";2021export const inputVariants = cva("", {22 variants: {23 font: {24 normal: "",25 retro: "retro",26 },27 },28 defaultVariants: {29 font: "retro",30 },31});3233export interface BitSelectProps34 extends React.SelectHTMLAttributes<HTMLSelectElement>,35 VariantProps<typeof inputVariants> {36 asChild?: boolean;37}3839function Select({ ...props }: React.ComponentProps<typeof ShadcnSelect>) {40 return <ShadcnSelect {...props} />;41}4243function SelectGroup({44 ...props45}: React.ComponentProps<typeof SelectPrimitive.Group>) {46 return <ShadcnSelectGroup {...props} />;47}4849interface BitSelectValueProps50 extends React.ComponentProps<typeof SelectPrimitive.Value>,51 VariantProps<typeof inputVariants> {52 asChild?: boolean;53}5455function SelectValue({ ...props }: BitSelectValueProps) {56 const { font } = props;5758 return (59 <ShadcnSelectValue60 className={cn(font !== "normal" && "retro")}61 {...props}62 />63 );64}6566interface BitSelectTriggerProps67 extends React.ComponentProps<typeof SelectPrimitive.Trigger>,68 VariantProps<typeof inputVariants> {69 asChild?: boolean;70}7172function SelectTrigger({ children, ...props }: BitSelectTriggerProps) {73 const { className, font } = props;7475 return (76 <div77 className={cn(78 "relative border-y-6 border-foreground dark:border-ring",79 className,80 font !== "normal" && "retro"81 )}82 >83 <ShadcnSelectTrigger84 {...props}85 className={cn("rounded-none ring-0 w-full border-0", className)}86 >87 {children}88 </ShadcnSelectTrigger>8990 <div91 className="absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none"92 aria-hidden="true"93 />94 </div>95 );96}9798export interface BitSelectContentProps99// … 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 |
