컴포넌트 스타일링

최지원·2020년 8월 6일
0
post-custom-banner

스타일링 방식

  • 일반 CSS : component를 스타일하는 가장 기본적인 방식
  • Sass : 자주 사용되는 css 전처리기 중 하나로 확장된 css 문법을 사용하여 css 코드를 더욱 쉽게 작성할 수 있게 해준다.
  • CSS module : 스타일을 작성할 때 CSS클래스가 다른 CSS 클래스의 이름과 절대 충돌하지 않도록 파일마다 고유한 이름을 자동으로 생성해 주는 옵션이다.
  • styled-component : 스타일을 자바스크립트 파일에 내장시키는 방식으로 스타일을 작성함과 동시에 해당 스타일이 적용된 컴포넌트를 만들 수 있게 해준다.

일반 CSS

가장 흔한 방식, 일반 CSS 이다.👌

CSS 를 작성할 때 가장 중요한 점은 CSS 클래스를 중복되지 않게 만드는 것이다. CSS 클래스가 중복되는 것을 방지하는 여러 방식이 있는데, 그중 하나는 이름을 지을 때 특별한 규칙을 사용하여 짓는 것이고, 또 다른 하나는 CSS Selector 를 활용하는 것이다.

CSS Selector

  • App.js
import React {Component}, 'react';
import logo from './logo.svg';
import './App.css';

class App extends Component {
  render() {
    return ( 
      <div className="App">
        <header>
           <img src={logo} className="logo" alt="logo" />
           <p> Edit<code>src/App.js</code> and save to reload.
           </p>
           <a 
           href="https://reactjs.org"
           target="_blank"
           rel="noopener noreferrer"
           >
           Learn React
           </a>
        </header>
       </div>
      );
     }
    }
    
export default App;
           
  • App.css
.App {
  text-align: center;
 }

.App .logo {
  animation: App-logo-spin infinite 20% linear;
  height: 40vbim;
 }
 
.App header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-directon: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
 }
 
 .App a {
   color: #61dafb;
  }
  
 @keyframes App-logo-spin {
  from {
   transform: rotate(0deg);
  }
  to {
   transform: rotat(360deg);
  }
 }

Sass 사용하기

Sass(Syntactically Awesome Style Sheets) 문법적으로 매우 멋진 스타일시트 는 CSS 전처리기로 복잡한 작업을 쉽게 할 수 있도록 해 주고, 스타일 코드의 재활용성을 높여 줄 뿐만 아니라 코드의 가독성을 높여서 유지 보수를 더욱 쉽게 해준다.

cf) scss 와 sass 는 다르다.!!👌👌

  • .sass
$font-stack: Helvetica, sans-serif
$primary-color: #333

body
  font: 100% $font-stack
  color: $primary-color
  • .scss
$font-stack: Helveticaa, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
 }

.scss 와 .sass 의 중요한 차이점은,

scss 는 ;(세미콜론)과 {}(중괄호)를 사용한다는 점이다.

post-custom-banner

0개의 댓글