• 검색어를 입력해 주세요.
  • 검색어를 입력해 주세요.
디자인키트 0
블로그 전체목록

SVG Path로 구현한 곡선형 차트 모션

기술정보 25.12.23 조회 10

SVG Path로 구현한 곡선형 차트 모션

SVG Path를 이용해 곡선형 차트를 구현하고, 선이 그려지면서 포인트와 텍스트가 함께 노출되는 인터랙션 모션을 소개합니다.


✅ 모션 설명

곡선이 진행됨에 따라 점과 설명이 일정 간격으로 자연스럽게 노출됩니다.

단순한 그래프가 아니라, 시간의 흐름과 성장 스토리를 보여주는 차트입니다.


디자인키트 템플릿에서는 정보를 한 번에 보여주지 않고 스크롤에 맞춰 읽히듯 흐르도록 설계했습니다.

연혁, 성장 지표, 기술 스토리를 콘텐츠 흐름으로 표현할 수 있습니다.


✅ 이런 화면에 잘 어울려요!

· 기업 연혁 페이지

· 기술 성장 소개

· 성과 지표 시각화

· 스토리형 데이터 콘텐츠


➰➰➰


✏️ SVG Path 코드 구현

· SVG Path는 보통 디자인 툴에서 그린 뒤 → 코드로 가져와 → 미세 조정합니다.

· SVG Path 예시 :

· M : 시작 위치

· L : 직선 연결

· C : 부드러운 곡선 생성

✨ SVG Path를 빠르게 만들고 싶다면, SVGOMG 같은 도구를 활용하면 편리합니다.



✏️ 곡선 위에 점과 텍스트 노출시키기

1. 포인트 데이터 정의 + 포인트 위치 생성

· 포인트 위치는 전체 path 길이 대비 비율(pos)로 관리합니다.

· 텍스트, 강조 여부도 함께 정의해 디자인 수정 시 데이터 변경이 용이합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const points = [
  { pos: 0.15, year: "2009", desc: "스마트 자동화 연구소 설립" },
  { pos: 0.32, year: "2014", desc: "산업용 협동로봇 첫 출시" },
  { pos: 0.47, year: "2016", desc: "AI 기반 제어시스템 상용화", emphasize: true },
  { pos: 0.62, year: "2018", desc: "주요 제조사 납품 계약 체결" },
  { pos: 0.77, year: "2022", desc: "글로벌 시장 진출" },
  { pos: 0.9, year: "로봇 제어 정확도", desc: "99.8%", emphasize: true, large: true }
];
 
//코드 중략
const circle = document.createElementNS("http://www.w3.org/2000/svg""circle");
circle.setAttribute("cx", pt.x);
circle.setAttribute("cy", pt.y);
circle.setAttribute("r", p.large ? 9 : 6);
circle.setAttribute("fill", p.emphasize ? "var(--primary)" : "#fff");
svg.appendChild(circle);
cs


2. 강조 효과 설정 (선택)

· 강조 여부에 따라 크기, 색상을 스크립트로 직접 제어합니다.

· CSS 분기를 줄여 관리 효율을 높였습니다.


3. 텍스트 배치

· SVG 전용 텍스트 요소인 tspan을 사용해 연도와 설명을 배치합니다.

· SVG 내부 좌표계를 그대로 사용해 곡선과 자연스럽게 정렬할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const text = document.createElementNS("http://www.w3.org/2000/svg""text");
text.setAttribute("x", pt.x);
text.setAttribute("y", pt.y - 54);
text.setAttribute("text-anchor""middle");
 
const year = document.createElementNS("http://www.w3.org/2000/svg""tspan");
year.textContent = p.year;
 
const desc = document.createElementNS("http://www.w3.org/2000/svg""tspan");
desc.setAttribute("dy""1.2em");
desc.textContent = p.desc;
 
text.appendChild(year);
text.appendChild(desc);
svg.appendChild(text);
cs







SVG Path 기반 차트는 단순한 시각화가 아니라 이야기를 전달하는 인터랙션이 됩니다.

디자인키트에서는 이 모션을 재사용 가능한 템플릿으로 구성했습니다.

곧 출시될 SVG Path 기반 기업 템플릿도 기대해주세요!


✨관련 링크✨

GSAP ScrollTrigger로 구현하는 원형 선 그리기 & 교차 모션 구현하기

 

블로그 전체목록
디자인키트 카카오상담