Search
πŸ’‘

Checkbox

Created
2026/02/07 06:55
Tags
2026/02/07 06:58

Context

μ—¬λŸ¬ ν•­λͺ©μ˜ μ•„μ΄ν…œμ„ μ„ νƒν•˜κΈ° μœ„ν•΄μ„œ Checkbox μ»΄ν¬λ„ŒνŠΈλ₯Ό κ΅¬ν˜„ν•˜κ²Œ λ˜μ—ˆλ‹€. shadcnμ—μ„œ μ œκ³΅ν•˜λŠ” checkbox μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 이λ₯Ό λΆ„μ„ν•˜κ³ μž ν•œλ‹€.

Agenda

β€’
shadcn의 Checkbox μ»΄ν¬λ„ŒνŠΈλ₯Ό λΆ„μ„ν•˜κ³  이λ₯Ό μ΄ν•΄ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ 함

Contents

Checkbox
import { CheckIcon } from 'lucide-react'; import { Checkbox as CheckboxPrimitive } from 'radix-ui'; import { cn } from '@/ui/lib/utils'; const Checkbox = ({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) => { return ( <CheckboxPrimitive.Root data-slot='checkbox' className={cn( 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] aria-invalid:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50', className, )} {...props} > <CheckboxPrimitive.Indicator data-slot='checkbox-indicator' className='grid place-content-center text-current transition-none' > <CheckIcon className='size-3.5' /> </CheckboxPrimitive.Indicator> </CheckboxPrimitive.Root> ); }; export { Checkbox };
TypeScript
볡사
Checkbox μ»΄ν¬λ„ŒνŠΈμ˜ λ‚΄μš©μ΄λ‹€. Checkbox μ»΄ν¬λ„ŒνŠΈλŠ” shadcn의 CheckboxPrimitive의 μš”μ†Œλ₯Ό κ°μ‹ΈλŠ” Wrapper ν˜•νƒœλ‘œ κ΅¬ν˜„ λ˜μ–΄μžˆλ‹€. CheckboxPrimitive의 Rootμ—μ„œ μ‚¬μš©ν•˜λŠ” νŒŒλΌλ―Έν„°λ“€μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 있게 λ„˜κ²¨μ€€λ‹€.