Context
shadcn/uiμμλ μ΄λ μμ΄ν
μ μ μλ€ νλ€ νλ κΈ°λ₯μ λ§λ€ λ Collapsible μ»΄ν¬λνΈλ₯Ό μ¬μ©νλ€. μ΄λ₯Ό λΆμνκ³ κ·Έ λ΄μ©μ μ΄ν΄νκΈ° μν΄ μ΄ κΈμ μμ±νμλ€.
Agenda
β’
Collapsible μ»΄ν¬λνΈ λ΄μ©μ λΆμνκ³ μ΄ν΄νλ κ²μ λͺ©νλ‘ ν¨
Contents
shadcn/uiμ Sidebar μ»΄ν¬λνΈμμλ Groupμ Sub Itemμ μ μλ€ νλ€ ν μ μλ κΈ°λ₯μ μ 곡νλ€. μ΄ κΈ°λ₯μ Collapsibleμ΄λΌλ μ»΄ν¬λνΈμ κ·Έ νμ μ»΄ν¬λνΈλ₯Ό μ‘°ν©νμ¬ κ΅¬νλλ€.
function Collapsible({
...props
}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {
return <CollapsiblePrimitive.Root data-slot='collapsible' {...props} />;
}
TypeScript
볡μ¬
Collapsible μ»΄ν¬λνΈμ΄λ€. radix-uiμ Collapsible.Rootμ κ°μΈλ νμμΌλ‘ ꡬνμ΄ λμ΄μλ€. κΈ°λ₯μ μΌλ‘λ 컨ν
μΈ μ νΌμ³μ§κ³Ό μ νλ μνλ₯Ό κ΄λ¦¬νκ³ νμ Triggerμ Contentμ 컨ν
μ€νΈλ₯Ό μ 곡νλ€.
function CollapsibleTrigger({
...props
}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {
return (
<CollapsiblePrimitive.CollapsibleTrigger
data-slot='collapsible-trigger'
{...props}
/>
);
}
TypeScript
볡μ¬
CollapsibleTrigger λν radix-uiμ Collapsible Triggerλ₯Ό κ°μΈλ wrapper μ»΄ν¬λνΈμ΄λ€. κΈ°λ₯μ μΌλ‘λ Collapsible Rootμ νΌμΉ¨ μ ν μνλ₯Ό ν κΈνλ λ²νΌμ΄λ€.
function CollapsibleContent({
...props
}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {
return (
<CollapsiblePrimitive.CollapsibleContent
data-slot='collapsible-content'
{...props}
/>
);
}
TypeScript
볡μ¬
CollapsibleContentλ radix-uiμ Collapsible Contentλ₯Ό κ°μΈλ wrapper μ»΄ν¬λνΈμ΄λ€. μμ Collapsible μ»΄ν¬λνΈμ CollapsibleTrigger μ»΄ν¬λνΈμ μ°¨μ΄μ μμ΄ λͺ¨λ radix-uiμ μ»΄ν¬λνΈλ₯Ό κ°μΈλ wrapper ννμ΄λ€.
λ°°μΉ ννλ λ€μκ³Ό κ°λ€.
Collapsible (Root)
βββ CollapsibleTrigger (μ΄κ³ λ«λ λ²νΌ)
βββ CollapsibleContent (νΌμ³μ§ λ΄μ©)
Plain Text
볡μ¬
<Collapsible>
<CollapsibleTrigger>
μ΄κΈ° / λ«κΈ°
</CollapsibleTrigger>
<CollapsibleContent>
λ΄μ©
</CollapsibleContent>
</Collapsible>
JavaScript
볡μ¬
Collapsibleμ΄ μ΅μλ¨μμ CollapsibleTriggerμ CollapsibleContentλ₯Ό κ°μΌλ€. CollapsibleTriggerμ CollapsibleContentλ νμ depthμ μμΉνλ€. κ·Έλ¦¬κ³ μμ μ€λͺ
νκ² μ²λΌ CollapsibleTriggerλ₯Ό ν΅ν΄ CollapsibleContentλ₯Ό νΌμΉκ±°λ μ μ μ μλ€.