conan-layout-component
v0.3.6
Published
Layout components for React
Downloads
3
Readme
Installation
In React App
# use npm
npm install conan-layout-component
Container
화면의 폭에 따라 내용의 최대 폭을 제한하고 중앙에 배치하는 레이아웃을 만들기 위한 컴포넌트입니다.
Import
import { Container } from 'conan-layout-component';
Props
| props | type | description | | --------- | ------------------------- | --------------------------------------------------------- | | as? | ElementType | Container 컴포넌트의 태그를 변경합니다. | | minWidth? | CSSProperties['maxWidth'] | Container의 최소 넓이 값입니다. | | maxWidth? | CSSProperties['minWidth'] | Container의 최대 넓이 값입니다. | | style? | CSSProperties | 위 스타일 요소를 제외하고 추가적인 스타일링이 가능합니다. | | children? | ReactNode | Container의 자식 컴포넌트입니다. |
Usage
<Container minWidth={300} maxWidth={900}>
<div style={{ backgroundColor: '#81D4FA' }}>Item</div>
</Container>
Grid
CSS Grid를 사용하여 자식 컴포넌트들을 격자 형태로 배열하는 컴포넌트입니다.
Import
import { Grid } from 'conan-layout-component';
Grid Props
| props | value | description | | ---------- | -------------------------- | --------------------------------------------------------- | | as? | ElementType | Grid 컴포넌트의 태그를 변경합니다. | | rows? | number | Grid row의 갯수를 지정합니다. | | columns? | number | Grid column의 갯수를 지정합니다. | | rowGap? | CSSProperties['rowGap'] | Grid의 row 간의 간격을 지정합니다. | | columnGap? | CSSProperties['columnGap'] | Grid의 column 간의 간격을 지정합니다. | | gap? | CSSProperties['gap'] | Grid 아이템들의 간격을 지정합니다. | | style? | CSSProperties | 위 스타일 요소를 제외하고 추가적인 스타일링이 가능합니다. | | children? | ReactNode | Grid의 자식 컴포넌트입니다. |
Usage
<Grid rows={2} columns={4} gap={20}>
<div style={{ backgroundColor: '#81D4FA' }}>Item 1</div>
<div style={{ backgroundColor: '#4FC3F7' }}>Item 2</div>
<div style={{ backgroundColor: '#29B6F6' }}>Item 3</div>
<div style={{ backgroundColor: '#03A9F4' }}>Item 4</div>
<div style={{ backgroundColor: '#039BE5' }}>Item 5</div>
<div style={{ backgroundColor: '#0288D1' }}>Item 6</div>
<div style={{ backgroundColor: '#0277BD' }}>Item 7</div>
<div style={{ backgroundColor: '#01579B' }}>Item 8</div>
</Grid>
Flex
CSS Flexbox를 사용하여 자식 컴포넌트들을 유연하게 배열하는 컴포넌트입니다.
Import
import { Container } from 'conan-layout-component';
Flex Props
| props | value | description | | ---------- | ------------------------------- | --------------------------------------------------------- | | as? | string | Flex 컴포넌트의 태그를 변경합니다. | | direction? | CSSProperties['flexDirection'] | Flex의 방향을 지정합니다. | | wrap? | CSSProperties['flexWrap'] | Flex 아이템들의 묶음(줄 바꿈)을 지정합니다. | | justify? | CSSProperties['justifyContent'] | Flex direction의 수평축 정렬을 지정합니다. | | align? | CSSProperties['alignItems'] | Flex direction의 수직축 정렬을 지정합니다. | | gap? | CSSProperties['gap'] | Flex 아이템들의 간격을 지정합니다. | | style? | CSSProperties | 위 스타일 요소를 제외하고 추가적인 스타일링이 가능합니다. | | children? | ReactNode | Flex의 자식 컴포넌트입니다. |
Usage
<Flex direction="column" gap={10}>
<div style={{ backgroundColor: '#81D4FA' }}>Item 1</div>
<div style={{ backgroundColor: '#4FC3F7' }}>Item 2</div>
<div style={{ backgroundColor: '#29B6F6' }}>Item 3</div>
<div style={{ backgroundColor: '#03A9F4' }}>Item 4</div>
<div style={{ backgroundColor: '#039BE5' }}>Item 5</div>
<div style={{ backgroundColor: '#0288D1' }}>Item 6</div>
<div style={{ backgroundColor: '#0277BD' }}>Item 7</div>
<div style={{ backgroundColor: '#01579B' }}>Item 8</div>
</Flex>
Drawer
화면의 한쪽에서 슬라이드 형태로 나타나는 메뉴나 사이드바를 제공하는 컴포넌트입니다.
Import
import { Drawer, useModal } from 'conan-layout-component';
useModal
| prop | value | description | | ------------ | ------- | ------------------------------------- | | defaultOpen? | boolean | 모달의 열림/닫힘에 대한 기본값입니다. |
| return | value | description | | ---------- | ---------- | ------------------------------------------------------------------------------ | | isOpen | boolean | 모달의 열림/닫힘에 대한 값입니다. 해당 값을 이용해 모달을 조건부 렌더링합니다. | | openModal | () => void | 모달을 여는 함수입니다. | | closeModal | () => void | 모달을 닫는 함수입니다. |
const { isOpen, openModal, closeModal } = useModal();
Drawer Props
| props | value | description | | --------- | -------------------------------------- | ------------------------------------------- | | placement | 'left' | 'right' | 'top' | 'bottom' | Drawer 컴포넌트의 위치를 지정합니다. | | onClose | () => void | Drawer 컴포넌트를 닫는 함수를 주입받습니다. | | children? | ReactNode | Drawer의 자식 컴포넌트입니다. |
Usage
const App = () => {
const { isOpen, openModal, closeModal } = useModal();
return (
<>
<button type="button" onClick={openModal}>
Drawer 열기
</button>
{isOpen && (
<Drawer placement="left" onClose={closeModal}>
<div style={{ width: '20vw', height: '100vh', backgroundColor: '#81D4FA' }}>Contents</div>
</Drawer>
)}
</>
);
};