
Penpot, AI 기반 디자인 워크플로를 위한 MCP 서버 실험 — 2026년 2주 디자인 시스템
2주차 디자인 시스템의 핵심 신호는 진정으로 새로운 것입니다: Penpot이 MCP 서버를 LLM과 디자인 API 사이의 프로그래밍 방식 브리지로 실험하고 있습니다. 이를 통해 AI가 텍스트 설명 생성이 아닌 실제 디자인 작업을 수행할 수 있게 됩니다. Penpot은 디자인을 코드로 표현하기… 개발자가 바로 활용할 수 있도록 정리했습니다.


ADA 개혁과 기업·장애인 모두가 진정으로 이기는 길

Figma Smart Animate에서 React까지: 실제 파이프라인
AnimatePresence 캐릭터 전환, 호버/탭 스케일 응답 등 React 상태 기반 인터랙티비티를 전담합니다. @lottiefiles/dotlottie-web 패키지(lottie-web이 아님)는 WebAssembly 렌더러를 사용해 <canvas>에 직접 그리며, Vite의 public/ 폴더에 WASM 바이너리가 필요합니다. 중요한 구현 세부 사항: 동일 컴포넌트에 여러 dotLottie 애니메이션이 있을 경우 각각 별도의 <canvas> 요소가 필요하며 — 하나의 인스턴스에서 src를 교체하면 로딩 플래시가 발생합니다 — CSS opacity 트랜지션으로 크로스페이드를 처리합니다. 알려진 내보내기 문제로는 중첩 컴포넌트 상태 평탄화, 가변 폰트 텍스트 속성, Figma Spring 이징의 큐빅 베지어 근사 등이 있습니다.중첩된 contrast-color()를 활용한 포커스 링?
contrast-color()를 중첩 적용 — contrast-color(contrast-color(var(--page-bg))) — 하여 Microsoft Fluent 디자인 시스템에서 사용하는 두 토큰 포커스 링 패턴(--focus-inner-ring과 --focus-outer-ring)을 대체할 수 있는지 탐구합니다. 이 패턴은 파란 버튼처럼 임의의 배경에서도 충분한 대비를 보장하기 위해 1px 인셋 흰색 하이라이트와 2px 오프셋 검정 외곽선을 결합합니다. 중첩 호출은 contrast-color()의 반환값을 반전시켜 이론적으로 두 개의 테마 토큰 쌍 대신 기존 --page-bg 토큰 하나만으로 처리할 수 있게 합니다. 그러나 핵심 제약이 있습니다: 포커스 링이 카드 배경처럼 --page-bg와 다른 표면 위에 나타날 때 이 방법이 실패합니다. Rupert는 contrast-color() 브라우저 지원이 아직 불안정하고 light-dark()가 더 읽기 쉽고 단순하다는 이유로 결국 color-scheme과 light-dark() 조합을 권장합니다.
대부분의 제품 팀이 진정으로 권한을 위임받지 못하는 이유

접근성 테스트에 대한 흔한 오해

Penpot, AI 기반 디자인 워크플로를 위한 MCP 서버 실험
ADA 개혁과 기업·장애인 모두가 진정으로 이기는 길
Figma Smart Animate에서 React까지: 실제 파이프라인
AnimatePresence 캐릭터 전환, 호버/탭 스케일 응답 등 React 상태 기반 인터랙티비티를 전담합니다. @lottiefiles/dotlottie-web 패키지(lottie-web이 아님)는 WebAssembly 렌더러를 사용해 <canvas>에 직접 그리며, Vite의 public/ 폴더에 WASM 바이너리가 필요합니다. 중요한 구현 세부 사항: 동일 컴포넌트에 여러 dotLottie 애니메이션이 있을 경우 각각 별도의 <canvas> 요소가 필요하며 — 하나의 인스턴스에서 src를 교체하면 로딩 플래시가 발생합니다 — CSS opacity 트랜지션으로 크로스페이드를 처리합니다. 알려진 내보내기 문제로는 중첩 컴포넌트 상태 평탄화, 가변 폰트 텍스트 속성, Figma Spring 이징의 큐빅 베지어 근사 등이 있습니다.중첩된 contrast-color()를 활용한 포커스 링?
contrast-color()를 중첩 적용 — contrast-color(contrast-color(var(--page-bg))) — 하여 Microsoft Fluent 디자인 시스템에서 사용하는 두 토큰 포커스 링 패턴(--focus-inner-ring과 --focus-outer-ring)을 대체할 수 있는지 탐구합니다. 이 패턴은 파란 버튼처럼 임의의 배경에서도 충분한 대비를 보장하기 위해 1px 인셋 흰색 하이라이트와 2px 오프셋 검정 외곽선을 결합합니다. 중첩 호출은 contrast-color()의 반환값을 반전시켜 이론적으로 두 개의 테마 토큰 쌍 대신 기존 --page-bg 토큰 하나만으로 처리할 수 있게 합니다. 그러나 핵심 제약이 있습니다: 포커스 링이 카드 배경처럼 --page-bg와 다른 표면 위에 나타날 때 이 방법이 실패합니다. Rupert는 contrast-color() 브라우저 지원이 아직 불안정하고 light-dark()가 더 읽기 쉽고 단순하다는 이유로 결국 color-scheme과 light-dark() 조합을 권장합니다.대부분의 제품 팀이 진정으로 권한을 위임받지 못하는 이유
접근성 테스트에 대한 흔한 오해
2주차 디자인 시스템의 핵심 신호는 진정으로 새로운 것입니다: Penpot이 MCP 서버를 LLM과 디자인 API 사이의 프로그래밍 방식 브리지로 실험하고 있습니다. 이를 통해 AI가 텍스트 설명 생성이 아닌 실제 디자인 작업을 수행할 수 있게 됩니다. Penpot은 디자인을 코드로 표현하기 때문에 MCP 레이어가 경쟁 도구가 따라올 수 없는 세밀도를 가집니다. 이 기능은 Penpot Fest 2025에서 Claude Desktop을 사용해 라이브 시연되었고, VS Code·Cursor·JetBrains Rider에서도 테스트되었습니다. design-to-code·code-to-design·Storybook 생성·접근성 분석·디자인 시스템 적합성 검사를 LLM 독립적인 Python SDK로 지원합니다. 아직 베타 단계에 도달하지 않았지만, 이 아키텍처는 디자인 도구가 에이전틱 레이어와 통합되는 방식을 미리 보여줍니다.
이번 주 접근성 주제는 두 가지 차원을 가집니다. TetraLogical의 Ela Gorla는 팀 전체의 접근성 테스트를 조용히 약화시키는 다섯 가지 오해를 해체합니다: 자동화 도구는 WCAG 요구사항의 20–40%만 잡아내지만 포괄적인 감사로 취급되고, 테스트는 여전히 프로젝트 말미 QA로 미뤄지며, 책임은 스페셜리스트에게만 위임됩니다. 실제로 테스트해야 할 AT/브라우저/OS 조합의 우선순위 결정에는 WebAIM 스크린 리더 사용자 설문조사를 권장합니다. 한편 Deque의 ADA 개혁 분석은 통지-시정 조항이 장애인이 먼저 위반을 식별·신고해야 법의 보호를 받도록 법적 부담을 전가하는 구조적 문제를 지적합니다. 구인 신청이나 의료 정보 접근처럼 시간이 중요한 디지털 맥락에서 이는 특히 심각합니다.
Dave Rupert의 포커스 링을 위한 중첩 contrast-color() 탐구는 CSS 기능 합성을 극한까지 밀어붙인 주목할 사례입니다. 중첩 호출은 이론적으로 두 토큰 패턴(--focus-inner-ring과 --focus-outer-ring)을 단일 --page-bg 토큰으로 줄이지만, 포커스 링이 페이지 배경과 다른 표면 위에 나타나면 실패합니다. 불안정한 contrast-color() 브라우저 지원을 감안하면 light-dark()로 폴백하는 권고는 실용적입니다. Carmen Ansio의 Figma Config 2025 발표는 dotLottie/Framer Motion React 애니메이션 핸드오프 파이프라인을 문서화하며 주를 마무리합니다. WebAssembly canvas 렌더링의 dotLottie는 모션 충실도를, Framer Motion은 상태 기반 인터랙티비티를 담당하며, 컴포넌트당 여러 애니메이션이 있을 경우 각각 독립된 <canvas> 요소가 필요하다는 중요한 구현 주의사항이 있습니다.
- Penpot의 MCP 서버 실험을 design-to-code 자동화의 템플릿으로 평가해 보세요. LLM 독립적인 아키텍처 덕분에 팀이 이미 사용하는 어떤 모델과도 연결할 수 있습니다.
- 지금 바로 모든 직군에 접근성 테스트 책임을 분산하세요. 자동화 도구는 WCAG 요구사항의 최대 40%만 감지하며, 후기 단계의 결함을 수정하는 비용은 처음부터 검사를 반영하는 것보다 훨씬 큽니다.
- Figma-to-React 애니메이션 파이프라인에서는 각 dotLottie 애니메이션에 전용
<canvas>요소를 부여하고 크로스페이드에 CSS opacity 트랜지션을 사용하세요. 단일 인스턴스에서src를 교체하면 로딩 플래시가 발생합니다.