git-goods / git-animal-client

๐Ÿฆ† ๊นƒํ—ˆ๋ธŒ ํ™œ๋™์œผ๋กœ ํŽซ์„ ํ‚ค์šฐ์„ธ์š” / Have pet in your github
https://www.gitanimals.org/
20 stars 3 forks source link

feat: set panda css to jsx react, syntax template-literal #82

Closed hyesungoh closed 1 week ago

hyesungoh commented 1 week ago

๐Ÿ’ก ๊ธฐ๋Šฅ

close #65

๐Ÿ”Ž ๊ธฐํƒ€

prepare ํ˜น์€ pnpm panda codegen --clean ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”~

sumi-0011 commented 1 week ago

panda.config.ts ํŒŒ์ผ์—์„œ

 syntax: 'template-literal',

์ด ์˜ต์…˜์„ ๋„ฃ์€ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”?

hyesungoh commented 1 week ago

panda.config.ts ํŒŒ์ผ์—์„œ


 syntax: 'template-literal',

์ด ์˜ต์…˜์„ ๋„ฃ์€ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”?

์š”๊ฒŒ ๋ฐฑํ‹ฑ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ๋ฒ•์„ ์ง€์›ํ•˜๋Š” ๊ฑฐ์—ฌ์š”!!!

css''

sumi-0011 commented 1 week ago

ํ•ด๋‹น PR์— ์ด์–ด์„œ ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ Button์„ cva๋กœ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ ํ•˜์˜€์–ด์š”. ๊ทธ๋Ÿฐ๋ฐ ์˜ˆ์ƒํ•œ๋Œ€๋กœ cva, jsx๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๊ณ  ์ด์œ ๋ฅผ ์ฐพ์•„๋ณด๋˜ ์ค‘ panda/css/cva ํด๋”, panda/css/sva ํด๋”๋“ฑ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ถ€๋ถ„์€ ์ถ”๊ฐ€ํ•˜์‹  template-literals ์˜ต์…˜๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š”๊ฒƒ ๊ฐ™์€๋ฐ, ํ•ด๋‹น ์˜ต์…˜์„ ์ง€์šฐ๋ฉด ์ •์ƒ์ ์œผ๋กœ cva, sva, jsx ํด๋”๋“ค์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. https://panda-css.com/docs/concepts/template-literals

 syntax: 'template-literal',

[์ง€์šด ํ›„]

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-06-21 แ„‹แ…ฉแ„’แ…ฎ 11 12 01

template-literal ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, emotion.js ๋“ฑ๊ณผ ๊ฐ™์ด ๋ฐ‘๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋Œ€์‹  sva, cva ๋“ฑ์˜ ๋ฐฉ์‹์€ ์‚ฌ์šฉ ๋ชปํ•˜๋Š”๊ฒƒ์œผ๋กœ ํŒŒ์•…ํ–ˆ์Šต๋‹ˆ๋‹ค.

css`
    display: flex;
    align-items: center;
  `

๊ทธ๋ ‡๋‹ค๋ฉด template-literal ์˜ต์…˜์„ ์‚ฌ์šฉํ• ์ง€ ๋ง์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์€๋ฐ ํ˜œ์„ฑ๋‹˜์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ์‹œ๋„ํ•ด๋ณด์ง€๋Š” ์•Š์•˜์ง€๋งŒ cva์˜ ๋Œ€์ฒด์ œ์ธ receipt๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š” cva ๊ธฐ๋Šฅ ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฒƒ์€ panda css๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ๋Ÿด๊ฑฐ๋ฉด emotion์ด๋‚˜ styled-component๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ž‘ ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ ์‹ถ์–ด์š”

๊ทธ๋Ÿฐ๋ฐ receipt ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ตณ์ด cva ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์ด ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์•Œ๊ณ ์žˆ์–ด์„œ์š”.

hyesungoh commented 1 week ago

@sumi-0011 ๋ง์”€ํ•˜์‹  https://github.com/git-goods/git-animal-client/pull/82#discussion_r1648687638 ์š” ์ฝ”๋ฉ˜ํŠธ๋ž‘ ์ดํ›„ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์ข€ ์ƒ์ถฉํ•˜๋Š”๋ฐ์š” ~

https://panda-css.com/docs/concepts/template-literals#caveats

๋ง์”€ํ•˜์‹  ๊ฒƒ์ฒ˜๋Ÿผ, ์œ„ ๊ณต์‹๋ฌธ์„œ์—์„œ css''์™€ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ํŒจํ„ด๊ณผ ๋ ˆ์‹œํ”ผ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์„ค๋ช…ํ•˜๊ณ  ์žˆ์–ด์šฉ


panda-css๋ฅผ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ์„ค์ •๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ์ด์œ ์— ๋Œ€ํ•ด์„œ๋Š” DX ๊ด€์ ๊ณผ ๊ฒฐ๊ณผ๋ฌผ ๊ด€์ ์œผ๋กœ ๋‚˜๋‰  ๊ฑฐ ๊ฐ™์€๋ฐ

DX(๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜) ๊ด€์ ์—์„œ๋Š” ๋ง์”€ํ•˜์‹  ๋„๊ตฌ๋“ค๊ณผ ๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ๋Š๊ปด์ง€์ง€ ์•Š์„ ๊ฑฐ ๊ฐ™๊ธดํ•ด์šฉ

๊ทธ์น˜๋งŒ, ๊ฒฐ๊ณผ๋ฌผ ๊ด€์ ์—์„œ๋Š” css ํ† ํฐ ํ˜•์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ, ์ œ๋กœ ๋Ÿฐํƒ€์ž„์ธ ๊ฒƒ ์ •๋„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๊ฑฐ ๊ฐ™๋„ค์šฉ


๊ฒฐ๊ตญ์€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์ผ ๊ฑฐ ๊ฐ™์€๋ฐ,

์ต์ˆ™ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ

๋ง์”€ํ•˜์‹  cva, ๋ ˆ์‹œํ”ผ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ•  ๊ฑฐ ๊ฐ™์•„์š”.

๊ณต์‹ ๋ฌธ์„œ ์ƒ์—์„œ๋Š” ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์–ด์š”

hyesungoh commented 1 week ago

@sumi-0011

์ถ”๊ฐ€์ ์œผ๋กœ recipes(๋ ˆ์‹œํ”ผ)๋Š” cva๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์•„์š”

๋ ˆ์‹œํ”ผ๋Š” ๋” ์ข‹์€ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜๊ณผ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ์š”

๋ฏธ๋ฆฌ ์ •์˜ํ•˜๊ณ  ๋นŒ๋“œํ•œ ์Šคํƒ€์ผ์„ ๋Ÿฐํƒ€์ž„์—์„œ ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ ๋น„์ฅฌ์–ผ์„ ์„ ํƒํ•œ๋‹ค ... ์ •๋„๋กœ ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋„ค์š” https://panda-css.com/docs/concepts/recipes

์•„๋ฌดํŠผ ๋ ˆ์‹œํ”ผ๋Š” ์•„ํ† ๋ฏน ๋ ˆ์‹œํ”ผ์™€ ์ปจํ”ผ๊ทธ ๋ ˆ์‹œํ”ผ๋กœ ๋‚˜๋‰˜์–ด์š”

์ด์ค‘์—์„œ ์•„ํ† ๋ฏน ๋ ˆ์‹œํ”ผ๊ฐ€ ๋ง์”€ํ•˜์‹  cva์ž…๋‹ˆ๋‹ค

cva๋Š” Class Variance Authority์˜ ์•ฝ์ž๋กœ, ๋‹ค์Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜๋‹ค๊ณ  ๊ธฐ์ˆ ๋˜์–ด ์žˆ์–ด์š” https://cva.style/docs


์ปจํ”ผ๊ทธ ๋ ˆ์‹œํ”ผ์˜ ๊ฒฝ์šฐ defineRecipe ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์„ ์–ธํ•˜๊ณ , ํŒ๋‹ค css์˜ ์„ค์ • ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค

https://panda-css.com/docs/concepts/recipes#defining-the-recipe-1


๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์œผ๋กœ๋Š”, ์ €ํฌ ๋””์ž์ธ ์‹œ์Šคํ…œ์ด ์ •๋ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋ณ€๊ฒฝ์ด ์žฆ์„ ๊ฑฐ๋ผ ์˜ˆ์ƒํ•ด์š” (์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ์ด๋‹ค ๋ณด๋‹ˆ)

๊ทธ๋Ÿฌ๋‹ˆ ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ + ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝํ—˜์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐ๋ผ์š”

๋ฌผ๋ก  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ์ธ ์ €ํฌ๊ฐ€ ์ฐพ๋Š” ๊ฒฝํ—˜์ด๋ผ ์ƒ๊ฐํ•ด ์ €๋Š” ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด + ์•„ํ† ๋ฏน ๋ ˆ์‹œํ”ผ๋ฅผ ํ•ด๋ณด๋Š” ๊ฒŒ ์ข‹๋‹ค๊ณ  ํŒ๋‹จ์ด ๋“œ๋„ค์šฉ

hyesungoh commented 1 week ago

๊ทธ๋ž˜์„œ ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•ด https://github.com/git-goods/git-animal-client/pull/82/commits/a427259e3b96a5f18314372eccb5ebe92c4d2a99 ์ถ”๊ฐ€ ์ปค๋ฐ‹ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

sumi-0011 commented 1 week ago

๊ทธ๋ž˜์„œ ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•ด a427259 ์ถ”๊ฐ€ ์ปค๋ฐ‹ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

๊ทธ๋Ÿผ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด, emotion.js์ฒ˜๋Ÿผ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
panda css์—์„œ ๋ณดํ†ต ์‚ฌ์šฉํ•˜๋Š” css({}) ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, cva , sva, jsx๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ธ ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•œ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ •์ƒ์ ์œผ๋กœ cva ๋“ฑ์ด ๋™์ž‘ํ•˜๋„ค์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :D ๊ธฐ์กด์˜ ์ปดํฌ๋„ŒํŠธ๋“ค๋„ ์ˆ˜์ •ํ•ด์„œ ์˜ฌ๋ ค๋‘๊ฒ ์Šต๋‹ˆ๋‹ค!