Skip to content

๐Ÿ’ช ๋ฐ˜์‘ํ˜•์„ ์‰ฝ๊ฒŒ ์žก๊ธฐ ์œ„ํ•ด ๋งŒ๋“  npm์ž…๋‹ˆ๋‹ค!

Notifications You must be signed in to change notification settings

hellojaehyeok/npm-easy-calc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Easy Media Calc

๋ฐ˜์‘ํ˜• ์Šคํƒ€์ผ๋ง์—์„œ calc๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฝ”๋“œ์˜ ์–‘์„ ์ค„์ด๊ณ  ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ €๋Š” ์ฃผ๋กœ React styled-components์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜์‹œ๋ฉด ๊นƒํ—ˆ๋ธŒ์— โญ ํ•œ ๋ฒˆ๋งŒ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!
์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ฌธ์˜ํ• ๊ฒŒ ์žˆ์œผ๋ฉด Issues ํ˜น์€ ์ด๋ฉ”์ผ๋กœ ์—ฐ๋ฝ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.



์‚ฌ์šฉ ์˜ˆ์‹œ


// ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ์ „
@media (max-width: 1024px) {
    width: calc(100vw * (300/428));
    margin: calc(100vw * (10/428)) calc(100vw * (15/428)) calc(100vw * (20/428)) calc(100vw * (30/428));
    font-size: calc(100vw * (15, 428));
    display:flex;
}

// ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ํ›„
import { FontSize, Margin, Media, Px, Width } from '@hellojh/easy-media-calc';
const mediaPxMb = 1024;
const mbSize = 428;
.
.
.
${Media(mediaPxMb,[
    Width(400, mbSize),
    Margin(10, 15, 20, 30, mbSize),
    FontSize(15, mbSize),
    "display:flex",
])}

๋‹จ์–ด๋Š” ";"๊ฐ€ ์•„๋‹Œ ","๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ผ๋ฐ˜ css๋Š” ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ƒ๋‹จ์— ๋ถ„๊ธฐ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•ด๋‘๋ฉด ๋‚˜์ค‘์— ์ˆ˜์ •์„ ํ•  ๋•Œ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.



์ข…๋ฅ˜


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ์ถœ๋ ฅ ์ฝ”๋“œ
Media(1024,[]) @media(max-width: 1024px){}
Px(100, 428) calc(100vw * (100/428))
Width(100, 428) width:calc(100vw * (100/428));
Height(100, 428) height:calc(100vw * (100/428));
Top(100, 428) top:calc(100vw * (100/428));
Bottom(100, 428) bottom:calc(100vw * (100/428));
Left(100, 428) left:calc(100vw * (100/428));
Right(100, 428) right:calc(100vw * (100/428));
FontSize(100, 428) font-size:calc(100vw * (100/428));
MT(100, 428) margin-top:calc(100vw * (100/428));
MB(100, 428) margin-bottom:calc(100vw * (100/428));
ML(100, 428) margin-left:calc(100vw * (100/428));
MR(100, 428) margin-right:calc(100vw * (100/428));
PT(100, 428) padding-top:calc(100vw * (100/428));
PB(100, 428) padding-bottom:calc(100vw * (100/428));
PL(100, 428) padding-left:calc(100vw * (100/428));
PR(100, 428) padding-right:calc(100vw * (100/428));
LineH(100, 428) line-height:calc(100vw * (100/428));
BgColor(100, 428) background-size:calc(100vw*(100/428));
BgColor(100, 50, 428) background-size:calc(100vw*(100/428)) calc(100vw*(50/428));

Margin, Padding

๋งˆ์ง„๊ณผ ํŒจ๋”ฉ ๊ฐ™์€ ๊ฒฝ์šฐ ์ถ•์•ฝํ˜•์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ™•์žฅ์„ฑ์„ ์ข‹๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์•ˆ์—์„œ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
margin์—์„œ auto๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฌธ์ž์—ด๋กœ auto๋ฅผ ๋„ฃ์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ์ถœ๋ ฅ ์ฝ”๋“œ
Margin(100, 50, 100, 50, 428) margin:calc(100vw * (100/428)) calc(100vw * (50/428)) calc(100vw * (100/428)) calc(100vw * (50/428))
Margin(100, 50, 100, 428) margin:calc(100vw * (100/428)) calc(100vw * (50/428)) calc(100vw * (100/428))
Margin(100, "auto", 100, 428) margin:calc(100vw * (100/428)) "auto" calc(100vw * (100/428))
Margin(100, 50, 428) margin:calc(100vw * (100/428)) calc(100vw * (50/428))
Margin(100, "auto", 428) margin:calc(100vw * (100/428)) "auto"
Padding(100, 50, 100, 50, 428) padding:calc(100vw * (100/428)) calc(100vw * (50/428)) calc(100vw * (100/428)) calc(100vw * (50/428))
Padding(100, 50, 100, 428) padding:calc(100vw * (100/428)) calc(100vw * (50/428)) calc(100vw * (100/428))
Padding(100, 50, 428) padding:calc(100vw * (100/428)) calc(100vw * (50/428))



styled-components ์กฐ๊ฑด๋ฌธ ์ฒ˜๋ฆฌ

๋งŒ์•ฝ ๋ฐ˜์‘ํ˜• ๋ถ„๊ธฐ๊ฐ€ 2๋ฒˆ์žˆ๊ณ  ์กฐ๊ฑด์— ๋”ฐ๋ผ ์Šคํƒ€์ผ๋ง์ด ๋‹ฌ๋ผ์ง„๋‹ค๋ฉด ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

import { Media, Width } from '@hellojh/easy-media-calc';
const mediaPxTb = 1000;
const tbSize = 1000;

const mediaPxMb = 500;
const mbSize = 500;
function App() {
  return (
      <Test bool={true}>
        qwe
      </Test>
  );
}

export default App;

const Test = styled.div`
  width: 100vw;
  background-color:slategray;

  ${({bool}) =>
    Media(mediaPxTb,[
      "background-color:slateblue",
      Width(bool?1000:500, tbSize),
    ])
    + 
    Media(mediaPxMb,[
      "background-color:salmon",
      Width(bool?500:250, mbSize),
    ])
  }
`

About

๐Ÿ’ช ๋ฐ˜์‘ํ˜•์„ ์‰ฝ๊ฒŒ ์žก๊ธฐ ์œ„ํ•ด ๋งŒ๋“  npm์ž…๋‹ˆ๋‹ค!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published