import { Collapse } from 'sud-ui';콘텐츠를 접거나 열 수 있는 경우.
사용자에게 콘텐츠를 접거나 열 수 있는 버튼을 제공할 때.
import { Collapse } from "sud-ui";
const items = [
{ key: "base-1", label: "Panel 1", children: "Content of Panel 1" },
{ key: "base-2", label: "Panel 2", children: "Content of Panel 2" }
];
export default function Example() {
return <Collapse items={items} />;
}import { Collapse } from "sud-ui";
const items = [
{ key: "1", label: "Enabled", children: "This panel is enabled." },
{ key: "2", label: "Disabled", children: "This panel is disabled." }
];
export default function Example() {
return <Collapse items={items} disabledKeys={["2"]} />;
}import { Collapse, Radio, Card } from "sud-ui";
import { useState } from "react";
const sizeOptions = [
{ label: "Small", value: "sm" },
{ label: "Medium", value: "md" },
{ label: "Large", value: "lg" }
];
export default function Example() {
const [size, setSize] = useState("md");
return (
<div className="flex flex-col gap-[20px]">
<Card style={{ width: "100%" }} shadow="none" colorType="sub">
<div className="flex justify-center">
<Radio.Group
direction="horizontal"
options={sizeOptions}
value={size}
onChange={setSize}
/>
</div>
</Card>
<Collapse
items={[
{
key: size,
label: size,
children: `size='${size}'`
}
]}
size={size}
/>
</div>
);
}import { Collapse, Radio, Card } from "sud-ui";
import { useState } from "react";
const colorOptions = [
{ label: "coral", value: "coral" },
{ label: "apricot", value: "apricot" },
{ label: "mint", value: "mint" },
{ label: "sky", value: "sky" },
{ label: "navy", value: "navy" },
{ label: "plum", value: "plum" },
{ label: "forest", value: "forest" },
{ label: "warm-gray", value: "warm-gray" }
];
export default function Example() {
const [color, setColor] = useState("coral");
return (
<div className="flex flex-col gap-[20px]">
<Card style={{ width: "100%" }} shadow="none" colorType="sub">
<div className="flex justify-center">
<Radio.Group
direction="horizontal"
options={colorOptions}
value={color}
onChange={setColor}
cols={2}
/>
</div>
</Card>
<Collapse
items={[
{
key: color,
label: "Custom Color [" + color + "]",
children: "headerBackground='" + color + "-3'"
}
]}
headerBackground={color + "-3"}
headerColor={color + "-10"}
contentBackground={color + "-1"}
contentColor={color + "-10"}
borderColor={color + "-7"}
/>
</div>
);
}속성 이름 | 설명 | 타입 | 기본값 |
|---|
| items | 아코디언 아이템 배열 | CollapseItem[] | [] |
| openKeys | 열린 아이템의 key 배열 (제어 컴포넌트) | string[] | - |
| defaultOpenKeys | 기본으로 열린 아이템의 key 배열 (비제어 컴포넌트) | string[] | [] |
| onChange | 아이템 열림/닫힘 시 호출되는 콜백 (openKeys: string[]) => void | (openKeys: string[]) => void | - |
| border | 테두리 표시 여부 | boolean | true |
| borderColor | 테두리 색상(palette값 또는 HEX code) | string | - |
| borderType | 테두리 스타일 | solid | dashed | dotted | double | groove | ridge | inset | outset | none | solid |
| borderWeight | 테두리 두께 | number | 1 |
| headerColorType | 헤더 색상 타입 | default | primary | success | warning | danger | info | red | rose | coral | orange | volcano | apricot | yellow | gold | amber | green | lime | mint | blue | sky | cerulean | indigo | cobalt | navy | purple | plum | orchid | forest | sage | warm-gray | cool-gray | neutral | text | ghost | sub |
| headerBackground | 헤더 배경색(palette값 또는 HEX code) | string | - |
| headerColor | 헤더 텍스트 색상(palette값 또는 HEX code) | string | - |
| contentColorType | 내용 색상 타입 | default | primary | success | warning | danger | info | red | rose | coral | orange | volcano | apricot | yellow | gold | amber | green | lime | mint | blue | sky | cerulean | indigo | cobalt | navy | purple | plum | orchid | forest | sage | warm-gray | cool-gray | neutral | text | ghost | default |
| contentBackground | 내용 배경색(palette값 또는 HEX code) | string | - |
| contentColor | 내용 텍스트 색상(palette값 또는 HEX code) | string | - |
| shadow | 그림자 효과 | none | sm | md | lg | sm |
| disabledKeys | 비활성화된 아이템의 key 배열 | string[] | [] |
| className | 추가 클래스명 | string | "" |
| size | 아코디언 크기 | sm | md | lg | md |
| shape | 아코디언 모양 | square | circle | rounded | capsule | rounded |
| style | 추가 스타일 | React.CSSProperties | {} |