Ant-design: ์ „์—ญ ์Šคํƒ€์ผ ์ œ๊ฑฐ

์— ๋งŒ๋“  2018๋…„ 02์›” 15์ผ  ยท  30์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ant-design/ant-design

๋ฒ„์ „

3.2.1

ํ™˜๊ฒฝ

์–ด๋Š

์žฌ์ƒ์‚ฐ ๋งํฌ

https://codesandbox.io/s/jnw46698m3

์žฌํ˜„ ๋‹จ๊ณ„

1- antd ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ
2- ์ „์—ญ ์Šคํƒ€์ผ ๊ด€์ฐฐ(h1,h6, selector, ect...)

๋ฌด์—‡์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ?

๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜๊ณ  ๋‚˜๋จธ์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ์ „์ฒด HTML ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(React ์™ธ๋ถ€์—๋„ ํฌํ•จ)์— ์Šคํƒ€์ผ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.


#9362 & #4331 ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค.

Inactive โ“FAQ

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”!
๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ ์š”์†Œ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์™€์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
import 'antd/lib/button/style/css';

๊ทธ๋Ÿฌ๋‚˜ css.js ๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฒ„ํŠผ์˜ ์Šคํƒ€์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ์Šคํƒ€์ผ๋„ ๊ฐ€์ ธ์˜ค๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

"use strict";

// General styling (body, h1, h2..)
require("../../style/index.css");

// Button styles
require("./index.css");

๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด index.css ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
import 'antd/lib/button/style/index.css';

๋ชจ๋“  30 ๋Œ“๊ธ€

https://github.com/react-component ์—์„œ ์ง์ ‘ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค
antd ๊ทธ ์œ„์— ๊ตฌ์ถ• ํ•˜๊ณ , ๊ทธ๋“ค์€ ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ ์•ฑ์˜ ํ•˜๋“œ ๋ธ”๋กœ์ปค์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„์€ ๊ฐ์ •์ด๋‚˜ ์Šคํƒ€์ผ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ฐ™์€ CSS-in-JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ํ•ด๋ณธ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์Šคํƒ€์ผ์— ๋Œ€ํ•œ ์ „์—ญ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ant ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ ๋ฒ”์œ„ ์ง€์ •๊ณผ ๊ฐ™์€ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ…Œ๋งˆ(๋™์  ์Šคํƒ€์ผ)๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋…ผ์˜๋˜์—ˆ๋‹ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ด€๋ จ ํ† ๋ก ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@divyanshu013 antd๋Š” ๊ตฌ์„ฑ ์š”์†Œ/์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ antd ์Šคํƒ€์ผ ์‚ฌ์–‘์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ตœ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์ฝ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋‚ด๋ถ€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‹จ์ผ ์ €์žฅ์†Œ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋ธŒ๋žœ๋“œ์— ๋Œ€ํ•œ ํ…Œ๋งˆ ์ง€์ •์€ ์ž๋™์œผ๋กœ ์ตœ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ฆ‰, ๋‚˜๋Š” ๋‹น์‹ ๊ณผ ํ•จ๊ป˜ํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ ์Šคํƒ€์ผ๋ณด๋‹ค styled-components๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/ant-design/ant-design/issues/5570#issuecomment -306960517

https://spectrum.chat/thread/ca82a625-134f-49df-9900-1b0b6342e037

์ข‹์•„, ๋‚˜๋Š” antd์˜ ๋œ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ‡๊ฒŒ ๊นŠ๊ฒŒ ๋ณด์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ฐํž ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋‹จ์ˆœํžˆ ๊ตฌ์„ฑ ์š”์†Œ์˜ less ํŒŒ์ผ๋งŒ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ํฐ ๋ฒ”์ฃ„์ž…๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import { 'antd'์—์„œ };
๊ฐ€์ ธ์˜ค๊ธฐ 'antd/lib/select/style/index.less';

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ ์ž˜ ๋˜๋Š”
์ด๊ฒƒ์ด ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ค‘๋‹จ๋  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋„ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๊ฐœ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ์˜ ์Šคํƒ€์ผ์ด ์ž์ฒด ํฌํ•จ๋œ ๊ฒฝ์šฐ ์‚ฌ๋žŒ๋“ค์€ ์ „์—ญ ์žฌ์„ค์ •/์Šคํƒ€์ผ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์„ ํƒ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์ƒํ™ฉ:

  • ์ „์—ญ ์žฌ์„ค์ • ๋ฐ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ˜„ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ ๊ฐ€์ ธ์˜ค๊ธฐ๋Š” ๋•Œ๋•Œ๋กœ ์ˆจ๊ฒจ์ง„ ์ข…์†์„ฑ์ด ์žˆ๊ณ  ์ „์—ญ ์Šคํƒ€์ผ์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊นจ์ง€์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž์ฒด์ ์œผ๋กœ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์€ Storybook ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ๊ฒฉ๋ฆฌ๋œ ์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ „์—ญ ์Šคํƒ€์ผ์ด ํฌํ•จ๋œ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ ์ „์—ญ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ๊ตฌ์„ฑ ์š”์†Œ์— ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ #4331 #13459

_ ๋ฐ˜์ค‘๋ณต ๋ฌธ์ œ ๋ฅผ ๋งŒ๋“ค์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™”๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์งˆ๋ฌธ์„ ๋‹ค์‹œ ํ• ๊ฒŒ์š”._

์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋” ์ด์ƒ ์ „์—ญ ์Šคํƒ€์ผ์— ์˜์กดํ•˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑ ์š”์†Œ ์Šคํƒ€์ผ์„ ์ „ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”?

ํ•œ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹(@DylanVann ๊ฐ์‚ฌ):

  1. ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์ž๋™ํ™”๋œ ์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
  2. ๋น„์ „์—ญ์  ๋ฐฉ์‹์œผ๋กœ ์ด์ „์˜ ์ „์—ญ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ ์š”์†Œ ์Šคํƒ€์ผ์„ ๋ฆฌํŒฉํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋Š”์ง€ ํ™•์ธ
  4. ์˜์กดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์˜ตํŠธ์ธ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ๊ธ€๋กœ๋ฒŒ ์Šคํƒ€์ผ๊ณผ ํ•จ๊ป˜ ์˜ค๋Š˜๋‚ ์˜ base.less๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Ant๋Š” ๋‹ค์Œ์— ์—ด๋ ค ์žˆ์Šต๋‹ˆ๊นŒ?

  1. ํ•ด๋‹น ์ž‘์—…์— ๋Œ€ํ•œ PR์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ž ์žฌ์ ์œผ๋กœ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๊นŒ?
  2. ํ˜„์žฌ ๊ธ€๋กœ๋ฒŒ ์Šคํƒ€์ผ์— ์˜์กดํ•˜๋Š” ์†Œ๋น„์ž๋ฅผ ์œ„ํ•ด ์˜ตํŠธ์ธ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํƒ€ํ˜‘์„ ์ˆ˜๋ฝํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  ์—…๋ฐ์ดํŠธ?

์•ˆ๋…•ํ•˜์„ธ์š”!
๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ ์š”์†Œ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์™€์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
import 'antd/lib/button/style/css';

๊ทธ๋Ÿฌ๋‚˜ css.js ๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฒ„ํŠผ์˜ ์Šคํƒ€์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ์Šคํƒ€์ผ๋„ ๊ฐ€์ ธ์˜ค๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

"use strict";

// General styling (body, h1, h2..)
require("../../style/index.css");

// Button styles
require("./index.css");

๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด index.css ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
import 'antd/lib/button/style/index.css';

์ข‹์€ ๋ฐœ๊ฒฌ!

๋‘˜ ์ด์ƒ์˜ index.css ํŒŒ์ผ์— ์˜์กดํ•˜๋Š” ๋” ๋ณต์žกํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ธฐ๋ณธ ์ผ๋ฐ˜ ์Šคํƒ€์ผ ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ค‘๋‹จ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ข‹์€ ๋ฐœ๊ฒฌ!

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

๋‘˜ ์ด์ƒ์˜ index.css ํŒŒ์ผ์— ์˜์กดํ•˜๋Š” ๋” ๋ณต์žกํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋งˆ๋„ ๊ทธ ๊ฒฝ์šฐ ๋ชจ๋“  ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ผ๋ฐ˜ ์Šคํƒ€์ผ ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ค‘๋‹จ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฒ„ํŠผ์œผ๋กœ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค(๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์œ ์ผํ•œ ๊ตฌ์„ฑ ์š”์†Œ).
๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ด๋Ÿฌํ•œ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@fedebabrauskas ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@fedebabrauskas ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(ํŒ์˜ค๋ฒ„๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์Šคํƒ€์ผ์€ ๊ดœ์ฐฎ์ง€๋งŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์—†์Šต๋‹ˆ๋‹ค)

์ข‹์•„, ๋‚˜๋Š” antd์˜ ๋œ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ‡๊ฒŒ ๊นŠ๊ฒŒ ๋ณด์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ฐํž ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋‹จ์ˆœํžˆ ๊ตฌ์„ฑ ์š”์†Œ์˜ less ํŒŒ์ผ๋งŒ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ํฐ ๋ฒ”์ฃ„์ž…๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import { 'antd'์—์„œ };
๊ฐ€์ ธ์˜ค๊ธฐ 'antd/lib/select/style/index.less';

๋น ๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉด ์ž‘๋™ํ•˜๋Š” _๊ฒƒ์ฒ˜๋Ÿผ_ ํ•ด์„œ ํ˜ธ๊ธฐ์‹ฌ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค...
์ด๊ฒƒ์ด ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ค‘๋‹จ๋  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋„ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ƒ๋ช…์˜ ์€์ธ์ž…๋‹ˆ๋‹ค!
๋‚˜๋Š” import 'antd/dist/antd.css'๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค
Google์—์„œ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์Šค์œ„์น˜ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ๋งŒ ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— import 'antd/lib/switch/style/index.less'๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ! ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค!!
๊ณ ๋งˆ์›Œ ์นœ๊ตฌ์•ผ!!
์ฝ”๋“œ ๊ตฌํ˜„
๋ฐฐํฌ๋œ ํฌํŠธํด๋ฆฌ์˜ค

๊ทธ๋ž˜์„œ ํ™•์ธ์„ ์œ„ํ•ด ์˜ค๋Š˜ ํ˜„์žฌ index.css ์ˆ˜์ž…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” Gatbsy๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๋‚ด global.css ๋Š” ๊ฐœ๋ฏธ index.css ์˜ํ•ด ๋ฎ์–ด์“ฐ์—ฌ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ - ๋ฐฉ๊ธˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ›„ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

scripts/postinstall.js

#!/usr/bin/env node
const replace = require('replace-in-file');

const removeAntdGlobalStyles = () => {
    const options = {
        files: [`${process.cwd()}/node_modules/antd/lib/style/core/index.less`, `${process.cwd()}/node_modules/antd/es/style/core/index.less`],
        from: "<strong i="8">@import</strong> 'base';",
        to: '',
    };

    replace(options)
        .then(() => {
            console.log('[INFO] Successfully Removed Antd Global Styles:');
        })
        .catch(e => {
            console.error('[ERR] Error removing Antd Global Styles:', e);
            process.exit(1);
        });
};


removeAntdGlobalStyles();

package.json

 "devDependencies": {
  //other dependancies
  "replace-in-file": "^5.0.2"
},
"scripts": {
  // other scripts
  "postinstall": "node scripts/postintall.js"
}

์ฐธ๊ณ  : ์ฃผ๋ฌธํ˜• ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€์ ธ ์˜ค๊ธฐ ์—

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ - ๋ฐฉ๊ธˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ›„ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

scripts/postinstall.js

#!/usr/bin/env node
const replace = require('replace-in-file');

const removeAntdGlobalStyles = () => {
    const options = {
        files: [`${process.cwd()}/node_modules/antd/lib/style/core/index.less`, `${process.cwd()}/node_modules/antd/es/style/core/index.less`],
        from: "<strong i="9">@import</strong> 'base';",
        to: '',
    };

    replace(options)
        .then(() => {
            console.log('[INFO] Successfully Removed Antd Global Styles:');
        })
        .catch(e => {
            console.error('[ERR] Error removing Antd Global Styles:', e);
            process.exit(1);
        });
};

removeAntdGlobalStyles();

package.json

 "devDependencies": {
  //other dependancies
  "replace-in-file": "^5.0.2"
},
"scripts": {
  // other scripts
  "postinstall": "node scripts/postintall.js"
}

์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ „์—ญ antd ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ antd ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ๋‹จ์ผ dist CSS ํŒŒ์ผ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์˜ค๋‚˜์š”?

@himanshuc3 ์ฃผ๋ฌธํ˜• ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์œ„ํ•ด

@fedebabrauskas ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(ํŒ์˜ค๋ฒ„๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์Šคํƒ€์ผ์€ ๊ดœ์ฐฎ์ง€๋งŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์—†์Šต๋‹ˆ๋‹ค)

๊ฐ™์€ ๊ฒฝ์šฐ์ด์ง€๋งŒ ์ถ•์†Œ

babel-plugin-import ์ „์—ญ ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์˜ค๊ณ ,
๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ • ๊ตฌ์„ฑ ์š”์†Œ CSS ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
import 'antd/lib/date-picker/style/index.css';
Datepicker๋ฅผ ๋Š์Šต๋‹ˆ๋‹ค(์ด์ƒํ•˜๊ณ  ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฐฉ์‹์œผ๋กœ ์—ด๋ฆฌ๊ณ  ๋‹ซํž™๋‹ˆ๋‹ค.)

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์„ธ์ƒ์— ๋‹ค๋ฅธ ๋งŽ์€ ๊ตฌ์„ฑ ์š”์†Œ์— ์˜์กดํ•˜๋Š” ์ „์†ก ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ์ด์ œ ๋ชจ๋“  ์–ด๋‘์šด ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ํ—ค๋”๊ฐ€ ๊ธฐ๋ณธ ์ƒ‰์ƒ ๋“ฑ์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์Šต๋‹ˆ๋‹ค.

+1

+1

์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ Ant Design์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ๋ชจ ์•ฑ์—์„œ ์‚ฌ์šฉํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

index.scss :

.antPage {
  <strong i="8">@import</strong> '~antd/dist/antd.min';
  ...
}

์ด์ œ Ant์˜ ๋ชจ๋“  ์ „์—ญ ์Šคํƒ€์ผ์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์ง€์ •๋˜์—ˆ์œผ๋ฉฐ Ant ์Šคํƒ€์ผ ํŽ˜์ด์ง€์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

function AntPage() => <div className="antPage">...</div>

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์Šคํƒ€์ผ์— ์‹ค์ œ๋กœ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.(

์˜ˆ๋ฅผ ๋“ค์–ด DatePicker ๊ฒฐ๊ณผ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋‚ด๋ถ€๋˜์ง€ ์•Š๋„๋ก, ๋งˆํฌ ์—… _outside_ ๋ชธ์„ ๋ Œ๋”๋ง .antPage ๋”ฐ๋ผ์„œ ์Šคํƒ€์ผ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๋งˆํฌ์—…์ด ํ•„์š”ํ•œ ๋“œ๋กญ๋‹ค์šด ๋ฐ ๊ธฐํƒ€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฒฝ์šฐ์—๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ„์—์„œ ์ œ์•ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•˜๋ฉด:

import 'antd/es/date-picker/style/index.css'
import 'antd/es/dropdown/style/index.css'
import 'antd/es/input/style/index.css'

๊ทธ๊ฒƒ์€ _๊ฑฐ์˜_ ์ž‘๋™ํ•˜์ง€๋งŒ ์ด์ƒํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‚ ์งœ ์„ ํƒ๊ธฐ์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉด ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ๋Œ€์‹  opacity: 0 ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ดˆ์ ์„ ์žƒ๋Š” ์ˆœ๊ฐ„ ๋ถ€๋™ ๋‚ ์งœ ์„ ํƒ๊ธฐ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค... ๐Ÿ˜•

์Šคํƒ€์ผ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ๋™์ž‘์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์ •ํ™•ํžˆ ํ™•์‹ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒ„๊ทธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ๋น„์ „์—ญ ์Šคํƒ€์ผ ๋ฒ„์ „์ด ์ข‹์€ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ด…์‹œ๋‹ค :+1:

@OscardR ์ €๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ชจ์…˜ CSS ํŒŒ์ผ <strong i="6">@import</strong> 'antd/es/style/core/motion.less'; ํฌํ•จํ•˜์ง€ ์•Š์€ ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๋ชจ๋“  ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ์ „์—ญ ์Šคํƒ€์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ:

๋ชจ๋“  .less ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ antd.less ํŒŒ์ผ์— ๋„ฃ์€ ๋‹ค์Œ ์ „์—ญ ์Šคํƒ€์ผ์„ ํฌํ•จํ•˜๋Š” dist ํŒŒ์ผ ๋Œ€์‹  ํ•ด๋‹น ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

https://gist.github.com/SPDUK/b93e9c28c11e41d5f3b6d9ad9fc7be36

๋‚ด๊ฐ€ ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” sass๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์„ ํŒจ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Select ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ์˜ CSS ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ์˜ 3๋…„ ๋™์•ˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋‚ด Github ํ™ˆํŽ˜์ด์ง€ ์ƒ๋‹จ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด์ œ ์˜ค๋žซ๋™์•ˆ ๊ฐœ๋ฏธ ์‚ฌ์šฉ์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋‹ซ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํŒ”๋กœ์šฐํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Remove global Styles ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ, ๋ชจ๋‘๊ฐ€ ์ด์ œ ์ด๊ฒƒ์— ์ง‘์ค‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋งŒ unsubscribe ํ•˜์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ตœ๊ณ ์˜ ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹Œ๊ฐ€ ์‹ถ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ antd๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์ฃผ์š” ๋ฌธ์ œ๊ฐ€ ๋ชจ๋“  ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰