React - SVG 파일 사용법

최현호·2022년 7월 1일
0

React

목록 보기
27/27
post-thumbnail

React - SVG 파일 사용법

  • svg는 png와 다르게 아이콘의 색, 크기 등 요소를 디자인에 따라 바꿀 수 있는 파일 입니다.
  • 또한 용량이 매우 작아서 프로젝트 관리가 용이 합니다.
  • React.js 와 Next.js 방법은 차이가 존재 합니다.

사용 예시

React

  • 파일 경로 : public/svg/icon.svg ( 예시 )
<svg width="46" height="46" viewBox="0 0 46 46" fill="current"xmlns="http://www.w3.org/2000/svg">
 <line x1="8" y1="35" x2="38" y2="35" stroke="current" stroke-width="4" stroke-linecap="round"/>
 <rect x="7" y="10" width="32" height="18" rx="1" fill="current" stroke="current" stroke-width="2"/>
  • fill 과 stroke 가 current 로 되어있는데 아래에서 설명 하겠습니다.

1. img src

import Icon from 'public/svg/icon.svg';

<img src={Icon}/>

2. svg 컴포넌트로

import { ReactComponent as icon } from 'public/svg/icon.svg';

<Icon />;

svg 색, 크기 바꾸기

  • 예시는 스타일 컴포넌트를 사용을 하였습니다.
  • 아래 방법은 svg 코드를 자바스크립트로 가져와서 컴포넌트 시킨 방법 입니다.
  • 다른 파일에서 <Icon/> 붙여서 사용 할 수 있습니다.
  • 우선 위에서 봤던 fill, 과 stroke 부분을 current 로 변경 합니다.
  • 이렇게 사용하면 크기 또는 색상을 바꿀 수 있습니다.
import styled from "styled-components"const Icon = styled.svg`
    cursor : pointer;
    fill : #DEDEDE;
    stroke : #DEDEDE;
    &:active{
        fill : #7F7F7F;
        stroke : #7F7F7F;
    }
`;const Icon = () => {
    return(
        <Icon width="46" height="46" viewBox="0 0 46" fill="current" xmlns="http://www.w3.org/2000/svg">
            <line x1="898" y1="80" x2="80" y2="890" stroke="current" stroke-width="4" stroke-linecap="round"/>
            <rect x="17" y="80" width="392" height="168" rx="1" fill="current" stroke="current" stroke-width="2"/>
        </Icon>
    )
}export default Icon;

참고

profile
현재 블로그 : https://choi-hyunho.com/

0개의 댓글