2.5d-ui
GitHub
2.5d-ui Logo
v0.2 공식 릴리스 · MIT License

CSS만으로 그리는 등각 2.5D 데이터 시각화

WebGL도 무거운 3D 캔버스도 없이, 순수 CSS 2D matrix() 변환과 경량 SVG로 3차원 데이터 공간을 구현합니다. 크롬북·모바일처럼 GPU가 약한 기기에서도 가볍고 빠르게 동작하며, 유휴 상태에서는 CPU를 전혀 소모하지 않습니다.

NEW · 인터랙티브 체험관

2.5D 3D 축 가이드 & 실시간 수치 조절 쇼케이스

도표와 그래프의 X축, Y축, Z(높이)축 항목의 의미를 확인하고, 슬라이더로 수치를 직접 변경해 보세요. 클라우드 랙, 물류창고, 에너지 빌딩, 마이크로서비스 등 다양한 실무 사례도 함께 체험할 수 있습니다.

쇼케이스 열기

앱별 메모리 사용량 MB · 예시 데이터

이렇게 만듭니다

렌더링 방식

엘리먼트는 두 경로 중 하나로 그립니다. 고르는 것은 renderer 속성(React는 renderer prop)이고, 기본값 auto는 블록 수로 고릅니다. 기준은 측정으로 정했습니다(docs/adr/0001-render-approach.md).

경로언제그리는 법
CSS 면auto에서 블록 200개(SVG_THRESHOLD) 이하, 또는 renderer="css"블록마다 div와 면 세 개, 2D matrix(). CSS 프리미티브와 같은 구조
SVGauto에서 200개 초과, 또는 renderer="svg"장면 하나에 인라인 <svg> 한 장, 블록마다 다각형 세 개. 호버는 블록 1000개까지 예산 안입니다. 첫 렌더는 500개에서 예산 안이고, 1000개에서는 측정 방법에 따라 90–106ms로 예산(100ms) 경계에 걸립니다. 1000개를 넘어도 그리지만 예산은 보장하지 않습니다

두 경로에서 같은 것: iso-select 이벤트(클릭·Enter·Space), 키보드 탭 순서와 포커스 유지, 블록의 role·aria-label, 숨김 접근성 표, 색 검사와 빈·오류 상태, 다크 테마·팔레트 토큰, 호버·포커스 들림과 동작 줄이기.

알려진 한계 (v0.1)

<!-- 블록 수와 무관하게 SVG로 -->
<iso-heatmap renderer="svg" data='…'></iso-heatmap>

// React
<IsoHeatmap renderer="svg" data={data} />

설치 및 사용법

1. npm 패키지로 설치

프로젝트에 npm 패키지 2.5d-ui를 설치하여 번들러(Vite, Webpack, Next.js 등)에서 직접 import할 수 있습니다.

npm install 2.5d-ui
// JavaScript / TypeScript 번들러
import "2.5d-ui/css";
import "2.5d-ui";

// 교육용 컴포넌트 (map, layers, city) 필요 시
import "2.5d-ui/edu/css";
import "2.5d-ui/edu"; // 또는 경량 엔트리: import "2.5d-ui/edu/map" 등

2. CDN으로 HTML에 직접 넣기 (jsDelivr / unpkg)

별도 설치나 빌드 과정 없이 전 세계 CDN을 통해 HTML 문서에 태그 두 줄로 즉시 사용할 수 있습니다. npm에 등록된 패키지는 jsDelivr와 unpkg에서 실시간 미러링됩니다.

<!-- jsDelivr CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/2.5d-ui@0.2/dist/iso.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/2.5d-ui@0.2/dist/iso-edu.min.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/2.5d-ui@0.2/dist/iso.min.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/2.5d-ui@0.2/dist/iso-edu.min.js"></script>

3. 로컬 소스로 개발 및 빌드

저장소를 클론받아 Vite 개발 서버나 정적 빌드를 직접 돌릴 수도 있습니다.

git clone https://github.com/neohum/2.5d-ui.git
cd 2.5d-ui && npm ci
npm run site      # 로컬 개발 서버 (http://localhost:5173/)
npm run build     # core 번들 생성 (packages/core/dist/)

구성 요소

템플릿

여러 컴포넌트를 함께 쓴 화면 예시입니다. 모든 값은 가상 예시 데이터입니다.