Next에 차크라 세팅
npm i @chakra-ui/react @emotion/react@^11 @emotion/styled@^11 framer-motion@^6
Next에 차크라 세팅
// pages/_app.js
import { ChakraProvider } from '@chakra-ui/react'
function MyApp({ Component, pageProps }) {
return (
<ChakraProvider>
<Component {...pageProps} />
</ChakraProvider>
)
}
export default MyApp
컴포넌트에 차크라 세팅
// pages/_app.js
import { ChakraProvider } from '@chakra-ui/react'
// 1. Import the extendTheme function
import { extendTheme } from '@chakra-ui/react'
// 2. Extend the theme to include custom colors, fonts, etc
const colors = {
brand: {
900: '#1a365d',
800: '#153e75',
700: '#2a69ac',
},
}
const theme = extendTheme({ colors })
// 3. Pass the `theme` prop to the `ChakraProvider`
function MyApp({ Component, pageProps }) {
return (
<ChakraProvider theme={theme}>
<Component {...pageProps} />
</ChakraProvider>
)
}
export default MyApp;
margin & padding
<Box m={2}>Tomato</Box>
<Box maxW="960px" mx="auto" />
// 모든 뷰포트에 마진을 8px, 12px를 준다
<Box m={[2, 3]} />
m - margin
p - padding
t, r, l, b - top, right, left, bottom
s, e - start( inline-start ), ending( inline-end )
X, Y - ( inline-start + inline-end ), ( inline-top + inline-bottom )
ex) mt = margin-top
color & background
// => `theme.colors.gray[50]`
<Box color='gray.50' />
<Box color='#f00' />
// 축약형 코드와 긴 코드
<Box bg='tomato' />
<Box backgroundColor='tomato' />
color - color
bg - background ( 긴 버전도 사용가능 )
bgColor - background-color
opacity - opacity
gradient
// adding linear gradient and color transitions
<Box w="100%" h="200px" bgGradient="linear(to-t, green.200, pink.500)" />
// adding radial gradient and color transitions
<Box w="100%" h="200px" bgGradient="radial(gray.300, yellow.400, pink.200)" />
// adding the text gradient
<Text
bgGradient="linear(to-l, #7928CA, #FF0080)"
bgClip="text"
fontSize="6xl"
fontWeight="extrabold"
>
Welcome to Chakra UI
</Text>
bgGradient - background-imgage
bgClip, backgroundClip - background-clip
typography
타이포그래피는 -만 뺀 명령어다
fontFamily
fontSize
fontWeight
lineHeight
letterSpacing
textAlign
fontStyle
testTransform
textDecoration
layout & width & height
// 둘 다 사용 가능
<Box width="100%" height={32} />
<Box w="100%" h="32px" />
// use theme sizing
<Box boxSize="sm" />
// 둘 다 사용 가능
<Box w={256} />
<Box w='256px' />
w - width
h - height
minW - min-width
maxH - max-height
display
boxSize - width, height
verticalAlign
overflow
overflowX, overflowY - 내용이 각각 가로축, 세로축으로 넘어갈때 스크롤바를 만들어줌
flexbox
// verbose
<Box display="flex" alignItems="center" justifyContent="space-between">
Box with Flex props
</Box>
// shorthand using the `Flex` component
<Flex align="center" justify="center">
Flex Container
</Flex>
gap - 행과 열 사이의 간격
row-gap - 행 사이 간격
column-gap - 열 사이 간격
alignItems, * align - align-items : 세로 축을 기준으로 좌우에 대한 정렬을 관장
alignContent - 두 줄 이상일때!! 세로 축을 기준으로 좌우에 대한 정렬을 관장
justifyItems : 가로 축을 기준으로 좌우에 대한 정렬을 관장
justifyContent, * justify : 두 줄 이상일때!!! 가로 축을 기준으로 좌우에 대한 정렬을 관장
( justify와 align 차이점 참고 사이트 : https://ipex.tistory.com/entry/CSS3-flex-Box-justifycontent-alignitems )
( items와 content 차이점 참고 사이트 : https://letsgojieun.tistory.com/49 )
flexWrap, * wrap
flex
flexGrow : 화면을 꽉 채운다 / 1 or 0
flexShrink : 화면이 줄면 같이 줄어든다 / 1 or 0
flexBasis : 아이템의 기본 크기를 정한다
( flex 참고 사이트 : https://flexboxfroggy.com/#ko )
justifySelf : 혼자서 가로축에 맞춰서 정렬한다
alignSelf : 혼자서 세로축에 맞춰서 정렬한다
order : 속성에 따라 순서가 결정된다
( 시각적으로 확인 가능한 사이트 : https://www.w3schools.com/cssref/playdemo.asp?filename=playcss_order )
grid layout
// verbose
<Box display="grid" gridGap={2} gridAutoFlow="row dense">
Grid
</Box>
// shorthand using the `Grid` component
<Grid gap={2} autoFlow="row dense">
Grid
</Grid>
기본적인것만 작성했다. 나머지는 본 사이트에서 검색해서 알아보는걸로.
'프로그래밍 > react' 카테고리의 다른 글
react query) 너무나 쉬운 리액트 비동기관리 (0) | 2022.08.13 |
---|---|
Next에 Emotion 사용하기 (0) | 2022.08.10 |
React Redux - 기본 용어 정리, 실행 흐름, 세가지 원칙 (0) | 2022.05.20 |
[220510] Next.js란? (0) | 2022.05.13 |
[220506] 미들웨어) redux-saga (0) | 2022.05.11 |
댓글