diff --git a/src/components/Divider/Divider.mdx b/src/components/Divider/Divider.mdx new file mode 100644 index 0000000..14593b0 --- /dev/null +++ b/src/components/Divider/Divider.mdx @@ -0,0 +1,62 @@ +import { Canvas, Meta, Controls } from '@storybook/blocks'; +import * as DividerStories from './Divider.stories'; +import { Divider } from './Divider'; +import React from 'react'; + + + +# Divider + +Divider는 목록 및 레이아웃에서 콘텐츠를 그룹화하여 요소를 구분하는 선입니다. +Divider는 Mobile Web에서만 사용합니다. + + + + + + + +## 사용법 + +Divider의 기본 사용법입니다. + +필수 프로퍼티인 `thickness`를 설정해주세요. + +```tsx +import { Divider } from '@yourssu/design-system-react'; +``` + +```tsx + +``` + +이외의 프로퍼티들은 하단의 예시에서 확인할 수 있습니다. + + + + +## 예시 + +### width + +Divider는 기본적으로 `width`가 부모 컴포넌트 `width`의 100%로 지정되어 있습니다. + +`width` 프로퍼티를 지정하여 유동적으로 조절할 수 있습니다. (단위: px) + +```tsx + +``` + + + +### thickness + +Divider의 두께를 의미하는 프로퍼티입니다. + +지원하는 두께는 `1`, `2`, `4`, `8` 입니다. (단위: px) + +```tsx + +``` + + diff --git a/src/components/Divider/Divider.stories.tsx b/src/components/Divider/Divider.stories.tsx new file mode 100644 index 0000000..6087d11 --- /dev/null +++ b/src/components/Divider/Divider.stories.tsx @@ -0,0 +1,76 @@ +import { Meta, StoryObj } from '@storybook/react'; + +import { Divider } from './Divider'; +import { DividerProps, DividerThickness } from './Divider.type'; + +const meta: Meta = { + title: 'Components/Divider', + component: Divider, + parameters: { + layout: 'centered', + }, + argTypes: { + width: { + description: 'Divider의 길이를 결정하는 속성', + table: { + defaultValue: { summary: '100%' }, + }, + }, + thickness: { + description: 'Divider의 두께를 결정하는 속성', + control: { + type: 'radio', + }, + options: [1, 2, 4, 8], + defaultValue: 1, + }, + }, +}; + +export default meta; +type Story = StoryObj; + +const DividerStory = (args: object) => { + return ( + + + + ); +}; + +export const Primary: StoryObj = { + render: DividerStory, + args: { + thickness: 1, + }, +}; + +export const Width: Story = { + render: () => ( + + Divider/1px/500px + + + ), +}; + +export const Thickness: Story = { + render: () => ( + + {[1, 2, 4, 8].map((thickness) => ( + + Divider/{thickness}px + + + ))} + + ), +};
Divider/1px/500px
Divider/{thickness}px