Post

WEB) SVG 스타일링 방법

SVG 파일 스타일링: 종류와 적용 방법

SVG(Scalable Vector Graphics)는 웹 디자인에서 벡터 이미지를 표현하는 데 사용되는 강력한 도구입니다. SVG는 해상도에 독립적이고, CSS 및 JavaScript를 사용하여 스타일링과 애니메이션을 쉽게 적용할 수 있다는 장점이 있습니다. 이 글에서는 SVG 파일을 스타일링하는 다양한 방법과 스타일 종류에 대해 자세히 설명하고, 각각의 방법에 대한 코드 예제를 제공하겠습니다.

1. 기본 스타일링

SVG 파일을 스타일링하는 가장 기본적인 방법은 CSS를 사용하여 SVG 내부 요소에 스타일을 적용하는 것입니다. 이를 통해 SVG 요소의 색상, 크기, 테두리 등을 변경할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle class="my-circle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

<style>
  .my-circle {
    fill: blue; /* 채우기 색상 */
    stroke: green; /* 테두리 색상 */
    stroke-width: 5; /* 테두리 두께 */
  }
</style>

2. 인라인 스타일링

SVG 요소에 직접 스타일 속성을 추가하여 인라인 스타일링을 적용할 수 있습니다. 이 방법은 작은 SVG 파일이나 빠른 스타일 변경에 유용합니다.

1
2
3
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" style="fill: blue; stroke: green; stroke-width: 5;" />
</svg>

3. 클래스와 아이디를 통한 스타일링

SVG 요소에 클래스나 아이디를 추가하여 CSS에서 스타일을 정의할 수 있습니다. 이를 통해 스타일을 재사용하고, 보다 구조적으로 관리할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle id="my-circle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

<style>
  #my-circle {
    fill: blue;
    stroke: green;
    stroke-width: 5;
  }
</style>

4. CSS를 통한 스타일링

CSS 파일을 사용하여 외부에서 SVG 스타일을 제어할 수 있습니다. 이는 HTML 코드와 스타일을 분리하여 관리하는 좋은 방법입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- HTML 파일 -->
<svg class="styled-svg" width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle class="styled-circle" cx="50" cy="50" r="40" />
</svg>

<!-- CSS 파일 -->
<style>
  .styled-svg .styled-circle {
    fill: blue;
    stroke: green;
    stroke-width: 5;
  }
</style>

5. JavaScript를 통한 스타일링

JavaScript를 사용하여 SVG 요소의 스타일을 동적으로 변경할 수 있습니다. 이를 통해 상호작용과 애니메이션을 쉽게 구현할 수 있습니다.

1
2
3
4
5
6
7
8
9
<svg id="interactive-svg" width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle id="interactive-circle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

<script>
  document.getElementById('interactive-circle').addEventListener('click', function() {
    this.setAttribute('fill', 'blue');
  });
</script>

6. CSS 애니메이션

CSS 애니메이션을 사용하여 SVG 요소에 애니메이션을 추가할 수 있습니다. 이를 통해 SVG 이미지가 더욱 생동감 있게 보이도록 할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle class="animated-circle" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

<style>
  @keyframes pulse {
    0% { r: 40; fill: red; }
    50% { r: 45; fill: blue; }
    100% { r: 40; fill: red; }
  }

  .animated-circle {
    animation: pulse 2s infinite;
  }
</style>

7. SVG 필터

SVG 필터를 사용하여 SVG 요소에 다양한 효과를 적용할 수 있습니다. 예를 들어, 그림자 효과를 추가할 수 있습니다.

1
2
3
4
5
6
7
8
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <filter id="f1" x="0" y="0">
      <feGaussianBlur in="SourceGraphic" stdDeviation="15" />
    </filter>
  </defs>
  <circle cx="100" cy="100" r="90" stroke="black" stroke-width="3" fill="red" filter="url(#f1)" />
</svg>

8. CSS 변환

CSS 변환을 사용하여 SVG 요소의 위치, 크기, 회전 등을 변경할 수 있습니다. 이를 통해 다양한 디자인 효과를 만들 수 있습니다.

1
2
3
4
5
6
7
8
9
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <rect class="transform-rect" x="50" y="50" width="100" height="100" fill="blue" />
</svg>

<style>
  .transform-rect {
    transform: rotate(45deg);
  }
</style>

결론

SVG 파일을 스타일링하는 방법은 다양하며, 각 방법마다 고유한 장점과 단점이 있습니다. CSS와 JavaScript를 사용하여 SVG 요소를 스타일링하고 제어함으로써, 웹 페이지를 더욱 생동감 있고 유연하게 만들 수 있습니다. 이 글에서 소개한 다양한 스타일링 방법을 이해하고, 프로젝트에 맞는 적절한 방법을 선택하여 효과적으로 SVG를 활용하시기 바랍니다.

This post is licensed under CC BY 4.0 by the author.

Trending Tags