Tabs
Chip Tabs
Chip 형태로 표현된 탭 컴포넌트입니다. 카테고리나 필터를 선택하여 콘텐츠를 전환할 때 사용됩니다.
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsPreview() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralSolid"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Installation
npx @seed-design/cli@latest add ui:chip-tabs
Props
ChipTabsRoot
Prop
Type
ChipTabsList
Prop
Type
ChipTabsTrigger
Prop
Type
ChipTabsCarousel
Prop
Type
ChipTabsContent
Prop
Type
Examples
Size=Medium
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsSizeMedium() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralSolid"
size="medium"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Size=Large
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsSizeLarge() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralSolid"
size="large"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Variant=Neutral Solid
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsVariantNeutralSolid() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralSolid"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Variant=Neutral Outline
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsVariantNeutralOutline() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralOutline"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Variant=Brand Solid (Deprecated)
brandSolid는 deprecated 됐습니다. neutralSolid, neutralOutline을 사용해주세요.
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsVariantBrandSolid() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="brandSolid"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Notification
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
export default function ChipTabsNotification() {
const [value, setValue] = React.useState("1");
return (
<>
<ChipTabsRoot
variant="neutralOutline"
size="medium"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger notification value="1">
라벨1
</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div>content 1</div>}
{value === "2" && <div>content 2</div>}
{value === "3" && <div>content 3</div>}
</>
);
}
Stackflow
import * as React from "react";
import { ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "seed-design/ui/chip-tabs";
import AppScreen from "@/components/stackflow/ActivityLayout";
import type { ActivityComponentType } from "@stackflow/react/future";
declare module "@stackflow/config" {
interface Register {
"react/chip-tabs/basic-activity": unknown;
}
}
const ChipTabsBasicActivity: ActivityComponentType<"react/chip-tabs/basic-activity"> = () => {
const [value, setValue] = React.useState("1");
const commonStyle = {
display: "flex",
justifyContent: "center",
alignItems: "center",
backgroundColor: "#eeeeee",
height: "100%",
};
return (
<AppScreen>
<ChipTabsRoot
variant="neutralSolid"
defaultValue="1"
value={value}
onValueChange={(value) => setValue(value)}
>
<ChipTabsList>
<ChipTabsTrigger value="1">라벨1</ChipTabsTrigger>
<ChipTabsTrigger value="2">라벨2</ChipTabsTrigger>
<ChipTabsTrigger value="3">라벨3</ChipTabsTrigger>
</ChipTabsList>
</ChipTabsRoot>
{value === "1" && <div style={commonStyle}>content 1</div>}
{value === "2" && <div style={commonStyle}>content 2</div>}
{value === "3" && <div style={commonStyle}>content 3</div>}
</AppScreen>
);
};
export default ChipTabsBasicActivity;
Last updated on