내사랑 css가 새 옷을 입었다...
너의 새로운 모습도 알아가볼게..
먼저.. 태초에 버튼이 있었다.
이친구를 정석대로 만든 코드는 아래와 같다.
import "./styles.css";
export default function App() {
return <button id="practice">버튼임</button>;
}
#practice {
padding: 1rem;
font-size: 2rem;
background: powderblue;
border-radius: 1rem;
transition: 0.5s;
}
#practice:hover {
background: cornflowerblue;
color: white;
transition: 0.5s;
}
hover하면 글자색과 배경색이 0.5초 트렌지션을 가지며 바뀌는 하늘색 버튼이다.
터미널에 $ npm install --save styled-components
을 입력해 Styled Components 라이브러리를 설치해준다.
Styled Components 여러 버전 설치될 때 생기는 문제를 줄여준다고 한다.
{
"resolutions": {
"styled-components": "^5"
}
}
Styled Components를 사용할 파일로 import해준다.
import styled from "styled-components";
//Styled Components를 사용할 app.js에 요것을 임포트해준다.
import styled from "styled-components";
const Button1 = styled.button`
padding: 1rem;
font-size: 2rem;
background: powderblue;
border-radius: 1rem;
transition: 0.5s;
&:hover {
background: cornflowerblue;
color: white;
transition: 0.5s;
}
`;
export default function App() {
return <Button1>버튼임</Button1>;
}
Hover를 위해 css 선택자를 새로 작성하면서 볼륨을 늘릴 필요가 없다.
&:hover만 추가하면 된다!
const Button1 = styled.button`
padding: 1rem;
font-size: 2rem;
background: powderblue;
border-radius: 1rem;
transition: 0.5s;
&:hover {
background: cornflowerblue;
color: white;
transition: 0.5s;
}
`;
파스칼 케이스로 태그를 작성하면 버튼으로 인식하고 카멜케이스로 태그를 작성하면 인식하지 못했다.
- 파스칼 케이스로 버튼 태그 작성
const ButtonPascalTest = styled.button` //css 생략 `;
export default function App() {
return <ButtonPascalTest>버튼임</ButtonPascalTest>;
//버튼 css가 적용된다. 버튼태그에 button텍스트를 넣는건 필수가 아니다
}
-카멜 케이스로 버튼 태그 작성
const buttonCamelTest = styled.button` //css 생략 `;
export default function App() {
return <buttonCamelTest>버튼임</buttonCamelTest>;
//버튼 css가 적용되지 않는다..
}
파스칼케이스와 카멜케이스
var PascalCase;
첫 글자와 중간 글자들이 대문자인 경우 파스칼 언어의 표기법과 유사하다고 하여 파스칼 케이스라고 한다.
카멜 케이스 (camel case)
var camelCase;
중간 글자들은 대문자로 시작하지만 첫 글자가 소문자인 경우에는 낙타와 모양이 비슷하다 하여 카멜 케이스라고 한다.
styled.div로 작성하면 div로, styled.span으로 작성하면 span으로 인식한다.!(당연)