@hankookilbo/weave-ui
v0.32.0
Published
> ๐งฑ **Shadcn ์๋ณธ ์ปดํฌ๋ํธ** + ์์ฒด **Composites(์กฐํฉํ) ์ปดํฌ๋ํธ**๋ฅผ ์ ๊ณตํ๋ UI ํจํค์ง์ ๋๋ค. > ์คํ์ผ์ **Tailwind CSS v4 (CSS only)** ๊ธฐ๋ฐ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
Readme
@hankookilbo/weave-ui
๐งฑ Shadcn ์๋ณธ ์ปดํฌ๋ํธ + ์์ฒด Composites(์กฐํฉํ) ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ UI ํจํค์ง์ ๋๋ค. ์คํ์ผ์ Tailwind CSS v4 (CSS only) ๊ธฐ๋ฐ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
๐ฆ Requirements
npm i react react-dom tailwindcssTailwind v4๋ CSS ์ ์ฉ(@theme ๋ฑ) ๊ตฌ์ฑ์ ์ฌ์ฉํฉ๋๋ค. ๋ณ๋ ์ค์ ์ด ์๋ค๋ฉด ์ ์ญ CSS์ ๋ณธ ํจํค์ง์ ์คํ์ผ๋ง import ํด๋ ๋์ํฉ๋๋ค.
๐ Install
npm i @hankookilbo/weave-ui๐งฉ Setup (CSS ํ ์ค)
์ ์ญ ์คํ์ผ์ ๋ค์ ํ ์ค์ importํ์ธ์.
import "@hankookilbo/weave-ui/globals.css";๋๋ CSS์์:
/* e.g. src/styles/globals.css */
@import "@hankookilbo/weave-ui/globals.css";ํ์ ๋์์ธ ํ ํฐ(์์, radius, spacing ๋ฑ)์ ์ด CSS์์ ์ผ๊ด ์ ์ด๋ฉ๋๋ค.
โจ Usage
import { Button, HelloWorld } from "@hankookilbo/weave-ui";
export default function Page() {
return (
<div className="p-4 space-x-2">
<Button>Click me</Button>
<HelloWorld />
</div>
);
}๐งญ Work Flow
| ๋จ๊ณ | ์ค๋ช
|
| ---- | --------------------------------------------------- |
| 1๏ธโฃ | ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ธ๋์น ์์ฑ โ feature/** |
| 2๏ธโฃ | head ํ๊ฒฝ์์ Storybook ์์ฑ (npm run sb:dev) |
| 3๏ธโฃ | ๋ฒ์ ์
๋ฐ์ดํธ ๋ฐ ํ๊ทธ ํธ์ โ v*.*.* |
| 4๏ธโฃ | ์ค๋
์ท ์์ฑ (npm run snapshot) |
| 5๏ธโฃ | main ๋จธ์ง ๋ฐ ๊ฒ์ฆ ์๋ฃ |
ํ๊ทธ๋ช ๊ณผ
package.json๋ฒ์ ์ด ์ผ์นํด์ผ ํจํค์ง๊ฐ ์์ฑ๋ฉ๋๋ค.
๐ Storybook ํ๊ทธ ์ด์
์คํ ๋ฆฌ๋ถ ๋ฐฐํฌ๋ ๋จ์ผ ํ๊ทธ s*.*.* ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
- ํ๊ทธ ์ด๋ฆ์
s*.*.*์ ๋๋ค. - ์ต์ Storybook์ ๋ฐฐํฌํ๊ณ ์ถ์ ์ปค๋ฐ์์:
git tag -f s*.*.*
git push origin -f s*.*.*GitLab CI ๋์:
s*.*.*ํ๊ทธ โ Storybook ๋น๋ + FTP ๋ฐฐํฌ๋ง ์คํv*.*.*ํ๊ทธ โ ํจํค์ง ๋น๋ + npm publish๋ง ์คํ- ๊ทธ ์ธ push / MR / ๋ค๋ฅธ ํ๊ทธ โ ์๋ฌด ํ์ดํ๋ผ์ธ๋ ์์ฑ๋์ง ์์
์ฆ,
storybookํ๊ทธ๋ โํ์ฌ ๋ธ๋์น ์ํ ๊ธฐ์ค ์ต์ Storybook ๋ฏธ๋ฆฌ๋ณด๊ธฐโ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋ฉ๋๋ค. ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ๊ณผ๋ ๋ ๋ฆฝ์ ์ผ๋ก, ์ธ์ ๋ ์ง ๋ฎ์ด์จ๋ ๋ฉ๋๋ค.
๐จ ์ปดํฌ๋ํธ Variants ๊ท์น
noneโ ์๋ฌด ํด๋์ค๋ ์๋ ๊ธฐ๋ณธ ์ํhome/primaryโ ๋ํ ์คํ์ผ (CTA ๋ฑ)
<Button variant="none">Text</Button>
<Button variant="home/primary">Call to action</Button>๐งฑ Deprecation Policy
| ๊ท์น | ์ค๋ช | | ---- | ------------------------------------------------- | | โณ | ๋ํ๋ฆฌ์ผ์ดํธ ํ ๋ค์ Major ์ถ์ ์ ์ ๊ฑฐ ๊ฐ๋ฅ | | ๐ฃ | ์ด์ / ๋์ / ์ ๊ฑฐ์์ ์ผ / ์ด์ ๋งํฌ ํ์ | | โ ๏ธ | Storybook, CHANGELOG, ์ฝ์ ๊ฒฝ๊ณ ๋ก ์ฌ์ฉ์์๊ฒ ์๋ด |
if (process.env.NODE_ENV !== "production") {
console.warn(
"[@hankookilbo/weave-ui] <OldComponent> is deprecated and will be removed in v4 on 2025-05-01. Use <NewComponent> instead."
);
}๐งฉ ํธ๋ฌ๋ธ์ํ
| ์ฆ์ | ํด๊ฒฐ ๋ฐฉ๋ฒ |
| ----------------- | ------------------------------------------------------------------------ |
| ์คํ์ผ ์ ์ฉ ์ ๋จ | ์ ์ญ CSS์ @import "@hankookilbo/weave-ui/globals.css"; ํฌํจ ์ฌ๋ถ ํ์ธ |
| CSS ์์ ๋ฌธ์ | Next.js ๋ฑ์์๋ ๊ธ๋ก๋ฒ CSS๋ฅผ ์ฑ ์ด๊ธฐ ์ง์
์์ ์ import |
๐ชต ๋ณ๊ฒฝ ๋ก๊ทธ (์์ฝ)
v0.2.0 โ 2025-10-31
- Added: CalendarDialog ์ปดํฌ๋ํธ
- Changed: radius ํ ํฐ๊ฐ ๋ฆฌ๋ด์ผ
- Fixed: Button focus outline ์์ ๋ณด์ ๐ License
MIT (๋ณ๋ ๊ณต์ง ์์ ๊ฒฝ์ฐ)
๐ Related Links
- ๐ Repo: aws-gitlab.hankookilbo.com/frontend/hk/weave-ui
- ๐งฑ Storybook: digitest.hankookilbo.com/weave-ui-storybook
- ๐ฆ Registry: frontend/hk Packages
