Streamdown 2.4: 마크다운 커스터마이징 및 접근성 강화 가이드
요약
Streamdown v2.4 버전은 개발자들이 마크다운(Markdown) 출력을 더욱 세밀하게 제어할 수 있도록 다양한 커스터마이징 기능과 접근성 개선을 추가했습니다. 주요 업데이트로는 아이콘 오버라이딩, 라이트/다크 테마 지원하는 Shiki 통합, 인라인 코드 스타일링 분리, 그리고 국제화(i18n) 및 텍스트 방향(RTL/LTR) 자동 감지 기능이 포함됩니다. 또한, 스트리밍 이벤트 핸들러와 테이블에 대한 개선 사항도 제공되어 사용자 경험과 개발 편의성이 크게 향상되었습니다.
핵심 포인트
- 아이콘 커스터마이징: `icons` prop을 통해 기본 아이콘을 오버라이딩하고, 특정 컴포넌트 맵을 전달하여 디자인을 변경할 수 있습니다.
- 테마 및 코드 지원 강화: Shiki 테마를 위한 라이트/다크 옵션과 사용자 정의 시작 줄 번호(`meta`) 설정을 추가했으며, 인라인 코드를 블록과 독립적으로 스타일링하는 가상 컴포넌트를 제공합니다.
- 국제화(i18n) 및 방향성 지원: `dir` prop을 통해 첫 번째 유니코드 문자를 기반으로 LTR/RTL 포맷팅을 자동 적용하며, 사용자 정의 언어 지원도 가능해졌습니다.
- 스트리밍 이벤트 제어: `onAnimationStart`/`onAnimationEnd` 콜백을 사용하여 스트리밍 과정 중 애니메이션 시작 및 종료를 개발자가 직접 제어할 수 있습니다.
- 테이블 기능 개선: 테이블에 전체 화면 오버레이, 스크롤 잠금(scroll locking), Escape 키 지원 기능을 추가하여 접근성을 높였습니다.
Streamdown v2.4는 마크다운 렌더링 경험을 한 단계 끌어올린 대규모 업데이트입니다. 이 버전은 개발자들이 단순히 마크다운을 보여주는 것을 넘어, 출력물의 외관과 동작 방식까지 세밀하게 제어할 수 있는 강력한 커스터마이징 옵션을 제공하는 데 초점을 맞추었습니다.
🎨 디자인 및 컴포넌트 커스터마이징 심화
1. 아이콘 오버라이딩 (Icon Overriding): 기존의 기본 아이콘 세트를 특정 컴포넌트 맵을 전달하여 완전히 대체할 수 있습니다. 이를 통해 서비스의 브랜드 가이드라인에 맞는 고유한 디자인 시스템을 적용할 수 있게 되었습니다.
2. 테마 및 코드 하이라이팅 개선:
- Shiki 통합:
iconsprop은 이제 라이트(light)와 다크(dark) 두 가지 Shiki 테마 옵션을 지원합니다. 이를 통해 사용자가 어떤 환경에서 마크다운을 보든 일관된 디자인 경험을 제공할 수 있습니다. - 줄 번호 제어:
meta옵션을 사용하여 사용자 정의 시작 줄 번호를 설정할 수 있어, 특정 컨텍스트에 맞는 코드 블록 표시가 가능해졌습니다. - 인라인 코드 분리 스타일링:
createCodePlugin을 통해 인라인 코드를 블록 코드와 독립적으로 스타일링하는 가상 컴포넌트를 구현할 수 있게 되어, 미묘한 디자인 차이를 섬세하게 조정할 수 있습니다.
🌍 접근성 및 국제화(i18n) 강화
3. 자동 방향 감지 (RTL/LTR): dir prop은 마크다운 콘텐츠의 첫 번째 강력한 유니코드 문자(strong Unicode character)를 분석하여, 자동으로 왼쪽에서 오른쪽(Left-to-Right, LTR) 또는 오른쪽에서 왼쪽(Right-to-Left, RTL) 포맷팅을 적용합니다. 또한, 사용자 정의 언어(custom languages) 지원을 통해 글로벌 서비스를 위한 기반이 마련되었습니다.
4. 테이블 접근성 향상: 테이블 컴포넌트에 전체 화면 오버레이 기능과 스크롤 잠금(scroll locking), 그리고 Escape 키 지원 기능을 추가하여, 사용자가 복잡한 데이터 표를 탐색할 때의 접근성과 사용자 경험을 획기적으로 개선했습니다.
🚀 개발자 경험 (DX) 및 스트리밍 제어
5. 스트리밍 이벤트 핸들링: onAnimationStart와 onAnimationEnd 콜백 함수를 사용하여 마크다운이 스트리밍되는 과정 중 애니메이션의 시작과 끝을 정확하게 감지하고 개발자가 원하는 로직(예: 로딩 스피너 제어)을 실행할 수 있습니다.
6. 버그 수정 및 호환성: 본 버전에서는 구문 강조가 적용된 블록 내에서 빈 줄이 사라지는 현상(empty lines collapsing)을 수정했으며, 스트리밍 중 순서가 지정된 목록(ordered lists)이 애니메이션을 재트리거하는 문제를 방지했습니다. 또한, Tailwind v4를 사용하는 프로젝트의 충돌을 막기 위해 새로운 prefix prop을 도입하여 유틸리티 클래스 네임스페이스를 제공합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Vercel AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기