강의 구성
각 레슨은 Markdown 문서와 독립 실행 데모로 구성됩니다. infinitecanvas.cc가 렌더러, 카메라, 그리드, 이벤트, 히스토리, 선택 도구를 작은 레슨으로 쪼개 설명하듯이, 이 강의는 같은 편집기 문제를 CSS/DOM/SVG 중심으로 다시 구성합니다.
문서는 단순한 CSS 패턴 모음이 아니라 수학 모델을 먼저 잡고, 그 모델이 CSS/DOM/SVG/Canvas 구현으로 내려가는 흐름으로 설명합니다. 데모에서는 실제 CSS transform 값과 편집기 상태가 어떻게 바뀌는지 확인합니다.
Part 0. Math foundations
Part 1. Transform linear algebra
- 004. translate, scale, rotate
- 005. CSS matrix(a,b,c,d,e,f)
- 006. 변환 순서와 transform-origin
- 007. local, world, screen 좌표계
- 008. inverse matrix와 포인터 입력
- 009. 좌표와 transform 디버깅
Part 2. Infinite canvas math and architecture
- 010. viewport와 camera 모델
- 011. cursor anchored zoom
- 012. ruler와 tick 계산
- 013. 주기 함수와 grid step
- 014. content, overlay, controls layer
- 015. scene graph와 nested transform
Part 3. Editor tool math
- 016. Pointer Events와 드래그
- 017. DOMRect와 getBoundingClientRect
- 018. hit testing과 bounding box
- 019. selection rectangle과 marquee
- 020. selection bounds와 handles
- 021. resize와 rotation handle
- 022. snapping과 smart guides
- 023. group, frame, clipping
Part 4. CSS graphics properties as math
- 024. CSS box로 도형 만들기
- 025. clip-path, radius, shadow
- 026. 선형보간과 linear-gradient
- 027. 거리 함수와 radial/conic-gradient
- 028. stacking context와 합성
- 029. layout, paint, composite
Part 5. Editor state and persistence
Part 6. SVG overlay and vector editing
- 034. SVG viewBox와 좌표계
- 035. getScreenCTM과 inverse
- 036. SVG pointer-events와 stroke hit testing
- 037. cubic bezier path editing
- 038. mask, clipPath, marker
Part 7. Figma to CSS translation
- 040. Figma node와 CSS DOM 모델
- 041. Frame constraints와 Auto Layout
- 042. Fills, strokes, effects를 CSS로
- 043. Vector와 text 변환
- 044. gradient 밖의 CSS 수학
- 045. Figma gradient를 CSS gradient로 변환하기
- 046. 수학이 필요한 Figma to CSS 속성들
- 047. Figma VectorNetwork 정리