0.2.2 β€’ Published 22 days ago

invaiz-design-system v0.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
22 days ago

🎨 INVAIZ Design System

(μ£Ό)μΈλ°”μ΄μ¦ˆμ˜ λ””μžμΈμ„ λ°˜μ˜ν•œ λ””μžμΈ μ‹œμŠ€ν…œ νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€.
μ—¬λŸ¬ νŒ¨ν‚€μ§€ λ‚΄ 일관성 μžˆλŠ” λ””μžμΈμ„ μ μš©ν•˜κΈ° μœ„ν•œ λͺ©μ μ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€.

React, TypeScript λ””μžμΈ μ‹œμŠ€ν…œμœΌλ‘œ, @emotion을 μ‚¬μš©ν•˜μ—¬ μŠ€νƒ€μΌμ„ μ§€μ •ν•©λ‹ˆλ‹€.

  • πŸ”© 개발 λ„κ΅¬λŠ” λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.
    • λ²ˆλ“€λ§ 및 개발 μ„œλ²„ μ‹€ν–‰: Vite
    • μ»΄ν¬λ„ŒνŠΈ μœ λ‹› ν…ŒμŠ€νŠΈ: Jest, @testing-library
    • UI ν…ŒμŠ€νŠΈ: storybook
    • 문법 검사(정적 뢄석): ESLint
    • μ½”λ“œ ν¬λ§·νŒ…: Prettier
    • κ·Έ μ™Έ: Github Actions, chromatic, Netlify
  • πŸ–ŒοΈ λ””μžμΈ λ„κ΅¬λŠ” Figmaλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • ESM λͺ¨λ“ˆ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

⚠️ ν•΄λ‹Ή νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ‚¬μš©ν•˜λ €λŠ” νŒ¨ν‚€μ§€μ˜ μ˜μ‘΄μ„± λͺ¨λ“ˆλ‘œ @emotion/react, @emotion/styledκ°€ ν¬ν•¨λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ‘€ ν”„λ‘œμ νŠΈ ꡬ쑰

  • ☁️ .github

    • Githubμ—μ„œ μ°Έμ‘°ν•˜λŠ” μš”μ†Œ(Github Actions, Issue와 PR κ·œμΉ™ λ“±)이 ν¬ν•¨ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • chromaticκ³Ό Netlify둜 main에 푸쉬할 경우, μžλ™μœΌλ‘œ storybook λ¬Έμ„œλ₯Ό λΉŒλ“œν•˜μ—¬ μ—…λ‘œλ“œν•˜λŠ” 슀크립트 등을 μ„ μ–Έν•©λ‹ˆλ‹€.
  • βš™οΈ .storybook

    • storybookκ³Ό κ΄€λ ¨λœ 섀정을 μ§€μ •ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • Webpack 기반으둜 κ΅¬ν˜„λœ storybook을 Vite와 μ—°κ²°ν•˜κ³ , storybook μ „μ—­μ μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 문법을 μ§€μ •ν•©λ‹ˆλ‹€.
  • βš™οΈ config

    • ν”„λ‘œμ νŠΈμ˜ 섀정을 μœ„ν•œ μΆ”κ°€ 파일이 ν¬ν•¨ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
  • πŸ–¨ dist

    • Vite둜 λΉŒλ“œλœ 결과물이 ν¬ν•¨λ˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ESM λͺ¨λ“ˆλ‘œ 좜λ ₯λ©λ‹ˆλ‹€.
    • ν”„λ‘œμ νŠΈ μ†ŒμŠ€ μ½”λ“œλŠ” TypeScript둜, μ™ΈλΆ€μ—μ„œ λ°”λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” d.tsκ°€ ν¬ν•¨λœ JavaScript파일둜 컴파일(트랜슀파일)λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • 즉, dist 폴더에 컴파일된 JavaScript 파일이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ ν•΄λ‹Ή νŒ¨ν‚€μ§€λŠ” μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • πŸ“– docs

    • νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ μ§€μΌœμ•Ό ν•  κ·œμΉ™ λ“± λ¬Έμ„œν™”λœ 자료λ₯Ό ν¬ν•¨ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
  • πŸ“ public

    • Viteκ°€ 개발 λͺ¨λ“œλ‘œ 싀행될 λ•Œ React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ°Έμ‘°ν•  정적 νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
  • πŸ“ src

    • ν”„λ‘œμ νŠΈμ˜ μ†ŒμŠ€ μ½”λ“œκ°€ ν¬ν•¨ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    • μΈλ°”μ΄μ¦ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” λ””μžμΈ μ‹œμŠ€ν…œμ„ λͺ¨λ‘ ν¬ν•¨ν•©λ‹ˆλ‹€.
  • βš™οΈ .eslintrc

    • 루트 폴더에 μžˆλŠ” 섀정을 상속 λ°›κ³ , storybook νŒŒμΌμ—μ„œμ˜ 섀정을 μ§€μ •ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • βœ‚οΈ .gitignore

    • Gitμ—μ„œ μΆ”μ ν•˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” 파일 리슀트λ₯Ό λͺ…μ‹œν•œ νŒŒμΌμž…λ‹ˆλ‹€.
    • storybook λΉŒλ“œ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜μ§€ μ•ŠλŠ” 섀정을 μΆ”κ°€ν•©λ‹ˆλ‹€.
  • πŸ“œ index.html

    • Viteκ°€ 개발 λͺ¨λ“œλ‘œ 싀행될 λ•Œ React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ꡬ동될 HTML μ—”νŠΈλ¦¬ 포인트 νŽ˜μ΄μ§€μž…λ‹ˆλ‹€.
  • βš™οΈ jest.config.ts

    • ν…ŒμŠ€νŠΈ ν™˜κ²½μ„ κ΅¬μ„±ν•˜λŠ” Jest의 섀정을 λͺ…μ‹œν•©λ‹ˆλ‹€.
  • πŸ“¦ package.json

    • invaiz-design-system νŒ¨ν‚€μ§€μ—μ„œ μ‚¬μš©ν•˜λŠ” μ˜μ‘΄μ„± λͺ¨λ“ˆμ„ λͺ…μ‹œν•©λ‹ˆλ‹€.
  • βš™οΈ tsconfig.json

    • 루트 폴더에 μžˆλŠ” 섀정을 상속받아 aliasλ₯Ό μ§€μ •ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • βš™οΈ vite.config.ts

    • SVG νŒŒμΌμ„ λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈμ²˜λŸΌ μ‚¬μš©ν•  수 μžˆλŠ” vite-plugin-svgrκ°€ λͺ…μ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
    • μ™ΈλΆ€μ—μ„œ 라이브러리 λͺ¨λ“ˆ ν˜•νƒœλ‘œ μ ‘κ·Όν•  수 μžˆλ„λ‘ λΉŒλ“œν•˜λŠ” μ„€μ •λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
    • 개발 μ„œλ²„λ₯Ό μ—΄κΈ° μœ„ν•œ 정보λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

πŸ“‘ ν”„λ‘œμ νŠΈ ν™˜κ²½ μš”κ΅¬ 사항

  • node: v16.x.x 이상
  • yarn: v1.22.x 이상

πŸ’¬ μ‚¬μš© κ°€λŠ₯ν•œ 슀크립트

  • yarn start

    • Vite 개발 ν™˜κ²½μœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€.
    • /src/**/* λ‚΄μ˜ 파일 μˆ˜μ • μ‹œ Hot-Loaderκ°€ μ μš©λ©λ‹ˆλ‹€.
    • 8080 ν¬νŠΈμ—μ„œ 개발 μ„œλ²„λ₯Ό μ˜€ν”ˆν•©λ‹ˆλ‹€.
  • yarn build

    • Viteλ₯Ό μ‚¬μš©ν•΄μ„œ νŒ¨ν‚€μ§€ μ†ŒμŠ€λ₯Ό μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ²ˆλ“€λ§, λΉŒλ“œν•©λ‹ˆλ‹€.
    • 결과물이 d.ts와 ν•¨κ»˜ ESM λͺ¨λ“ˆλ‘œ dist 폴더에 μƒμ„±λ©λ‹ˆλ‹€.
  • yarn test

    • Jestλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ 폴더 λ‚΄μ˜ ν…ŒμŠ€νŠΈλ₯Ό λͺ¨λ‘ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • *.test.js, *.test.ts, *.spec.js, *.spec.ts νŒŒμΌμ„ ν…ŒμŠ€νŠΈ 파일둜 μΈμ‹ν•©λ‹ˆλ‹€.`
  • yarn test:watch

    • Jestλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ 폴더 λ‚΄μ˜ ν…ŒμŠ€νŠΈλ₯Ό λͺ¨λ‘ μ‹€ν–‰ν•˜κ³ , 파일의 변경을 μ§€μ†μ μœΌλ‘œ κ°μ‹œν•©λ‹ˆλ‹€.`
  • yarn test:snapshot

    • Jestλ₯Ό μ‚¬μš©ν•΄ μŠ€λƒ…μƒ· ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • μŠ€λƒ…μƒ· ν…ŒμŠ€νŠΈλ‘œ μ„ μ–Έλ˜μ–΄ μžˆλŠ” νŒŒμΌλ“€μ˜ μ»΄ν¬λ„ŒνŠΈ λ Œλ”λ§ μƒνƒœλ₯Ό ν™•μΈν•˜κ³ , μƒˆλ‘œ μ°μ–΄λƒ…λ‹ˆλ‹€.
  • yarn test:clear

    • Jest에 μΊμ‹œλœ νŒŒμΌμ„ λͺ¨λ‘ μ‚­μ œν•©λ‹ˆλ‹€.`
  • yarn eslint

    • src λ‚΄μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό eslintλ₯Ό μ‚¬μš©ν•˜μ—¬ κ²€μ‚¬ν•©λ‹ˆλ‹€.
  • yarn eslint:fix

    • src λ‚΄μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό eslintλ₯Ό μ‚¬μš©ν•˜μ—¬ κ²€μ‚¬ν•˜κ³ , μˆ˜μ •ν•  수 μžˆλŠ” 뢀뢄은 μžλ™μœΌλ‘œ μˆ˜μ •ν•©λ‹ˆλ‹€.
  • yarn prettier

    • src λ‚΄μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό prettierλ₯Ό μ‚¬μš©ν•˜μ—¬ κ²€μ‚¬ν•©λ‹ˆλ‹€.
  • yarn prettier:fix

    • src λ‚΄μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό prettierλ₯Ό μ‚¬μš©ν•˜μ—¬ κ²€μ‚¬ν•˜κ³ , μˆ˜μ •ν•  수 μžˆλŠ” 뢀뢄은 μžλ™μœΌλ‘œ μˆ˜μ •ν•©λ‹ˆλ‹€.
  • yarn storybook

    • Storybook νŽ˜μ΄μ§€λ₯Ό 개발 ν™˜κ²½μ„ μ˜€ν”ˆν•©λ‹ˆλ‹€.
    • 6006 ν¬νŠΈμ—μ„œ νŽ˜μ΄μ§€λ₯Ό μ˜€ν”ˆν•©λ‹ˆλ‹€.
  • yarn build-storybook

    • Storybook νŽ˜μ΄μ§€λ₯Ό λΉŒλ“œν•©λ‹ˆλ‹€.
    • λΉŒλ“œ μ™„λ£Œλœ νŒŒμΌμ€ storybook-static 폴더에 μƒμ„±λ©λ‹ˆλ‹€.
0.2.1

22 days ago

0.2.2

22 days ago

0.2.0

11 months ago

0.1.0

11 months ago