$ yarn run dev
-
μμ€μ½λ μμΉ
.
μμ./src
λ‘ μ΄λ. pages, styles λ₯Ό λΉλ‘―ν λͺ¨λ μ½λ src λ΄μμ μμ± -
μ λκ²½λ‘ μ¬μ©
{
"compilerOptions": {
"baseUrl": "src"
}
}
// μμ€μ½λ λ΄μμ μλμ μμμ²λΌ srcμ νμ λλ ν 리λΆν° μ
λ ₯
import Card from 'components/Card';
- prettier μ€μ
{
"printWidth": 80, // μ€ λ°κΏ ν
"tabWidth": 2, // ν λλΉ
"useTabs": false, // μ€νμ΄μ€ λμ ν μ¬μ©
"semi": true, // μΈλ―Έμ½λ‘ μ¬μ©
"singleQuote": true, // μμ λ°μ΄ν μ¬μ©
"trailingComma": "all", // 꼬리 μ½€λ§ μ¬μ©
"bracketSpacing": false, // κ°μ²΄ 리ν°λ΄μμ κ΄νΈμ 곡백
"arrowParens": "avoid", // νμ΄ν ν¨μ κ΄νΈ μ¬μ© λ°©μ
"proseWrap": "preserve", // λ§ν¬λ€μ΄ μ€λ°κΏ λ°©μ
"endOfLine": "auto" // κ°ν λ¬Έμ μ μ§
}
βββ api
βββ common
βΒ Β βββ types
βΒ Β βββ utils
βββ components
βββ hooks
βββ pages
βΒ Β βββ _app.tsx
βΒ Β βββ _document.tsx
βΒ Β βββ index.tsx
βββ styles
βββ Home.module.css
βββ globals.css
- Next.js
- Emotion
- recoil
- react-query
theme.ts
μ pc, tablet, mobile μΈ κ°μ§λ‘ λλ μ export ν΄λμμ.
// theme.ts
const useMediaQuery = (maxWidth: number): string =>
`@media (max-width: ${maxWidth}px)`;
export const media = {
pc: useMediaQuery(1440),
tablet: useMediaQuery(768),
mobile: useMediaQuery(576),
};
export const theme = {
colors: {
primary: 'orange',
},
};
μλμ κ°μ΄ μ¬μ©
const Wrapper = styled.div`
...
${media.tablet} {
display: none;
...
}
`;