2.1.1 β€’ Published 8 months ago

chex-layout-component v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Chex's Layout Component πŸ‘€

μž¬μ‚¬μš© κ°€λŠ₯ν•œ κΈ°λ³Έ λ ˆμ΄μ•„μ›ƒ μ»΄ν¬λ„ŒνŠΈλ₯Ό λͺ¨μ•„놓은 λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€.

  • Container
  • Grid
  • Flex
  • Tabs

Installation

npm

npm install chex-layout-component

yarn

yarn add chex-layout-component

Container

λ‚΄μš©μ˜ μ΅œμ†Œ, μ΅œλŒ€ 폭을 μ œν•œν•˜κ³  쀑앙에 λ°°μΉ˜ν•  수 μžˆλŠ” μ»΄ν¬λ„ŒνŠΈ

Import

import { Container } from 'chex-layout-component';

Props

PropsTypeDefaultDescription
tagkeyof JSX.IntrinsicElements'div'μ»΄ν¬λ„ŒνŠΈμ˜ HTML νƒœκ·Έλ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
minWidthstring'auto'μ»΄ν¬λ„ŒνŠΈμ˜ μ΅œμ†Œ λ„ˆλΉ„λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
maxWidthstring'none'μ»΄ν¬λ„ŒνŠΈμ˜ μ΅œλŒ€ λ„ˆλΉ„λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
minHeightstring'auto'μ»΄ν¬λ„ŒνŠΈμ˜ μ΅œμ†Œ 높이λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
maxHeightstring'none'μ»΄ν¬λ„ŒνŠΈμ˜ μ΅œλŒ€ 높이λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
backgroundColorCSSProperties'backgroundColor''transparent'μ»΄ν¬λ„ŒνŠΈμ˜ 배경색상을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
cssCSSProp''μ»¨ν…Œμ΄λ„ˆμ— μ μš©ν•  CSS μŠ€νƒ€μΌμ„ μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.

Grid

μžμ‹ μ»΄ν¬λ„ŒνŠΈλ“€μ„ 격자 ν˜•νƒœλ‘œ λ°°μ—΄ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ

Import

import { Grid } from 'chex-layout-component';

Props

PropsTypeDefaultDescription
tagkeyof JSX.IntrinsicElements'div'μ»΄ν¬λ„ŒνŠΈμ˜ HTML νƒœκ·Έλ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
rowsnumber''ν–‰ 개수λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
columnsnumber''μ—΄ 개수λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
autoRowsstring''μžλ™μœΌλ‘œ μƒμ„±λ˜λŠ” ν–‰μ˜ 크기λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
autoColumnsstring''μžλ™μœΌλ‘œ μƒμ„±λ˜λŠ” μ—΄μ˜ 크기λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
areasstring''κ·Έλ¦¬λ“œ μ•„μ΄ν…œμ˜ 배치λ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
gapstring'0'κ·Έλ¦¬λ“œ μ•„μ΄ν…œ μ‚¬μ΄μ˜ 간격을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
rowGapstring'0'κ·Έλ¦¬λ“œ μ•„μ΄ν…œμ˜ ν–‰ 간격을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
columnGapstring'0'κ·Έλ¦¬λ“œ μ•„μ΄ν…œμ˜ μ—΄ 간격을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
cssCSSProp''μ»¨ν…Œμ΄λ„ˆμ— μ μš©ν•  CSS μŠ€νƒ€μΌμ„ μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.

Flex

CSS Flexboxλ₯Ό μ‚¬μš©ν•˜μ—¬ μžμ‹ μ»΄ν¬λ„ŒνŠΈλ“€μ„ μœ μ—°ν•˜κ²Œ λ°°μ—΄ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ

Import

import { Flex } from 'chex-layout-component';

Props

PropsTypeDefaultDescription
tagkeyof JSX.IntrinsicElements'div'μ»΄ν¬λ„ŒνŠΈμ˜ HTML νƒœκ·Έλ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
display'flex' | 'inline-flex''flex'μ»¨ν…Œμ΄λ„ˆμ˜ ν‘œμ‹œ 방식을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€. 'flex'λŠ” λΈ”λ‘μš”μ†Œ, 'inline-flex'λŠ” μΈλΌμΈμš”μ†Œλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.
direction'row' | 'column' | 'row-reverse' | 'column-reverse''row'μ»¨ν…Œμ΄λ„ˆμ˜ μ£ΌμΆ•(main axis)을 μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
justify'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly''flex-start'μ£ΌμΆ•(main axis)의 μ •λ ¬ 방법을 μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
align'flex-start' | 'flex-end' | 'center' | 'stretch''none'ꡐ차좕(cross axis)의 μ •λ ¬ 방법을 μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
gapstring'0'Flex μ•„μ΄ν…œ μ‚¬μ΄μ˜ 간격을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
wrap'nowrap' | 'wrap' | 'wrap-reverse''nowrap'Flex μ•„μ΄ν…œμ΄ ν•œ 쀄에 λ‚˜νƒ€λ‚ μ§€ μ—¬λŸ¬ μ€„λ‘œ λ‚˜νƒ€λ‚ μ§€λ₯Ό κ²°μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
cssCSSProp''μ»¨ν…Œμ΄λ„ˆμ— μ μš©ν•  CSS μŠ€νƒ€μΌμ„ μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.

Tabs

μ—¬λŸ¬ 개의 μ»΄ν¬λ„ŒνŠΈ 쀑 μ„ νƒν•œ 탭에 λ”°λ₯Έ ν•œ κ°€μ§€λ§Œ λ³΄μ—¬μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ

Import

import { Tabs } from 'chex-layout-component';

Props

PropsTypeDefaultDescription
defaultTabPanelIdstringκΈ°λ³Έ 탭을 μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
direction'horizontal' | 'vertical''horizontal'νƒ­μ˜ λ°©ν–₯을 μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€. μˆ˜ν‰ λ˜λŠ” 수직 λ°©ν–₯으둜 탭을 λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
primaryColorstring'Cornflowerblue'νƒ­μ˜ 폰트 색상과 ν•˜λ‹¨ κ²½κ³„μ„ μ˜ 색상을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
backgroundColorstring'transparent'νƒ­μ˜ λ°±κ·ΈλΌμš΄λ“œ 색상을 μ§€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.

Example

<Tabs defaultTabId='item1' direction='horizontal' primaryColor='#6495ed'>
  <Tabs.List>
    <Tabs.Tab tabPanelId='item1'>ITEM ONE</Tabs.Tab>
    <Tabs.Tab tabPanelId='item2'>ITEM TWO</Tabs.Tab>
    <Tabs.Tab tabPanelId='item3'>ITEM THREE</Tabs.Tab>
  </Tabs.List>
  <Tabs.Panel id='item1'>
    <Container css={{ width: '200px', margin: '2rem', textAlign: 'center' }}>πŸ‘€</Container>
  </Tabs.Panel>
  <Tabs.Panel id='item2'>
    <Container css={{ width: '200px', margin: '2rem', textAlign: 'center' }}>🐾</Container>
  </Tabs.Panel>
  <Tabs.Panel id='item3'>
    <Container css={{ width: '200px', margin: '2rem', textAlign: 'center' }}>πŸ•</Container>
  </Tabs.Panel>
</Tabs>

Author's Intent

미래의 μžμ‹  그리고 개발자 λ™λ£Œλ“€μ΄ μ‚¬μš©ν•œλ‹€κ³  μƒκ°ν•˜κ³  λ§Œλ“  κΈ°λ³Έ λ ˆμ΄μ•„μ›ƒ μ»΄ν¬λ„ŒνŠΈμž…λ‹ˆλ‹€. μ–΄λ–€ 속성을 포함해야 μ‚¬μš©ν•˜κΈ° νŽΈν• κΉŒλ₯Ό κ³ λ―Όν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈ Prop을 μ§€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ‚¬μš©μžμ˜ μžμœ λ„λ₯Ό λ†’μ—¬ μœ μ—°ν•œ μ»΄ν¬λ„ŒνŠΈλ‘œμ„œ μž¬μ‚¬μš©μ΄ μš©μ΄ν•˜λ„λ‘ λ§Œλ“€κ³ μž ν–ˆμŠ΅λ‹ˆλ‹€.

Development Environment

  • React
  • TypeScript
  • Styled-components
  • Vite

Storybook

Storybookμ—μ„œ 자유둭게 μ»΄ν¬λ„ŒνŠΈλ₯Ό κ²½ν—˜ν•΄λ³΄μ„Έμš”!

2.1.1

8 months ago

2.1.0

8 months ago

2.0.9

8 months ago

2.0.8

8 months ago

2.0.7

8 months ago

2.0.6

8 months ago

2.0.5

8 months ago

2.0.4

8 months ago

2.0.3

8 months ago

2.0.2

8 months ago

2.0.1

8 months ago

2.0.0

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago