[TIL]23.06.20

hyein·2023년 6월 20일
0

TIL

목록 보기
13/34

CSS in JS

CSS-in-JS는 단어 그대로 자바스크립트 코드에서 CSS를 작성하는 방식을 말한다.

props를 통해서 부모 컴포넌트 -> 자식컴포넌트로 데이터를 전달해서 조건부 스타일링이 가능하다!!


styled-components 준비하기

(1) VScode 플러그인 설치

(2) styled-components 설치하기

> yarn add styled-components
> npm install styled-components@latest

styled-components 사용하기

// src/App.js

import React from "react";
import styled from "styled-components";

const StContainer = styled.div`
  display: flex;
`;

// 스타일 컴포넌트 만들기!!!!!!!!!!!!!!
const StBox = styled.div`
  width: 100px;
  height: 100px;
  border: 1px solid ${(props) => props.borderColor};
  margin: 20px;
`;
// 박스의 색을 배열에 담습니다.
const boxList = ["red", "green", "blue"];

// 색을 넣으면, 이름을 반환해주는 함수를 만듭니다.
const getBoxName = (color) => {
  switch (color) {
    case "red":
      return "빨간 박스";
    case "green":
      return "초록 박스";
    case "blue":
      return "파란 박스";
    default:
      return "검정 박스";
   }
};
const App = () => {
  return (
    <StContainer>
			{/* map을 이용해서 StBox를 반복하여 화면에 그립니다. */}
      {boxList.map((box) => (
        <StBox borderColor={box}>{getBoxName(box)}</StBox>
      ))}
    </StContainer>
  );
};

export default App;

style 컴포넌트 지역적 사용 전역적 사용

위에서 우리는 styled-component를 지역적으로 다뤘다. 하지만 커다란 프로젝트에서 중복되는 스타일링은 전역적으로 쓸 수 있다.

Global-Styling적용

GlobalStyle.jsx

import { createGlobalStyle } from "styled-components";

const GlobalStyle = createGlobalStyle`
  body {
    font-family: "Helvetica", "Arial", sans-serif;
    line-height: 1.5;
  }
`;

export default GlobalStyle;

App.jsx

import GlobalStyle from "./GlobalStyle";
import BlogPost from "./BlogPost";

function App() {
	const title = '전역 스타일링 제목입니다.';
	const contents = '전역 스타일링 내용입니다.';
  return (
    <>
      <GlobalStyle />
      <BlogPost title={title} contents={contents} />
    </>
  );
}

export default App;
profile
As I start to move towards the goal, the goal will start to move towards me.

0개의 댓글