Communitygithub.com

스켈레톤 상태 시스템

UI의 '뼈대'를 들어오는 콘텐츠에 매핑하여 인지 성능과 레이아웃 안정성(CLS)을 관리하는 '스켈레톤 스크린' 설계를 위한 체계적인 프레임워크입니다.

스켈레톤 상태 시스템란 무엇인가요?

스켈레톤 상태 시스템은 인터페이스의 '로딩' 상태를 설계하기 위한 방법론입니다. 일반적인 스피너나 진행 막대와 달리, 스켈레톤은 최종 레이아웃을 근사하는 '뼈대'(저충실도 모양)를 사용하여 사용자의 인지 대기 시간을 줄이고 콘텐츠가 도착하기 전에 필요한 공간을 확보하여 누적 레이아웃 이동(CLS)을 방지합니다. 이 시스템은 데이터가 많은 대시보드, 콘텐츠 피드, 이미지가 많은 그리드, 싱글 페이지 애플리케이션(SPA) 등 다양한 사용 사례에서 유용합니다. 주요 입력값으로는 대상 레이아웃, 콘텐츠 변수, 공간 치수, 브랜드 색조가 있으며, 출력값으로는 스켈레톤 청사진, 뼈대 명세, 전환 전략, 접근성 요구 사항이 생성됩니다. 워크플로는 대상 지오메트리 매핑, 뼈대 계층 정의, 공간 매칭(CLS 규칙), 리듬과 샤이머 효과 설계, 핸드오프 전환 정의의 5단계로 구성됩니다. 또한 300ms 규칙, 뼈대 정확성, 줄 수, 스피너 대 스켈레톤 사용 결정 규칙을 따르며, 접근성, 대비, 반응형 디자인과 같은 제약 조건을 준수해야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/skeleton-state-system

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

스켈레톤 상태 시스템은(는) 무엇을 하나요?

목적

스켈레톤 상태 시스템은 인터페이스의 '로딩' 상태를 설계하기 위한 방법론을 제공합니다. 일반적인 스피너나 진행 막대와 달리, 스켈레톤은 '뼈대'(저충실도 모양)를 사용하여 최종 레이아웃을 근사합니다. 이를 통해 사용자의 인지 대기 시간을 줄이고 콘텐츠가 도착하기 전에 필요한 공간을 확보하여 **누적 레이아웃 이동(Cumulative Layout Shift, CLS)**을 방지할 수 있습니다.

사용 사례

  • 데이터가 많은 대시보드: 여러 위젯이 서로 다른 속도로 로드되는 경우.
  • 콘텐츠 피드: 기사, 제품 또는 소셜 게시물 목록을 스크롤하는 경우.
  • 이미지가 많은 그리드: 고해상도 이미지를 위한 공간을 확보하여 페이지 '점프'를 방지하는 경우.
  • 검색 및 필터 뷰: 시스템이 쿼리를 처리 중이라는 즉각적인 피드백을 제공하는 경우.
  • 싱글 페이지 애플리케이션(SPA): 데이터가 비동기적으로 가져와지는 라우트 간 전환을 관리하는 경우.

사용하지 말아야 할 경우

  • 즉각적인 상호작용: 콘텐츠가 300ms 이내에 로드된다면, 스켈레톤이 산만한 '깜빡임'을 유발할 수 있습니다.
  • 간단하고 맥락이 적은 로드: 단일 버튼이나 작은 태그와 같은 작은 요소에는 표준 스피너나 '로딩 중...' 텍스트가 더 적합합니다.
  • 정적 콘텐츠: 하드코딩되거나 캐시되어 즉시 렌더링되는 콘텐츠.
  • 고속 실시간 데이터: 데이터가 너무 빨리 변경되어 스켈레톤이 계속 나타났다 사라지면 시각적 피로를 유발할 수 있습니다.

입력값

  1. 대상 레이아웃: 컴포넌트 또는 페이지의 최종 '완전히 로드된' 디자인.
  2. 콘텐츠 변수: UI의 동적인 부분(텍스트, 이미지, 가격, 아바타).
  3. 공간 치수: 최종 요소의 정확한 높이, 너비 및 종횡비.
  4. 브랜드 색조: '뼈대' 기반 및 샤이머 효과에 사용되는 기본 및 보조 색상.

출력값

  1. 스켈레톤 청사진: 뼈대의 배열을 보여주는 저충실도 맵.
  2. 뼈대 명세: 모양(원형 대 직사각형) 및 크기(고정 대 백분율 기반)에 대한 정의.
  3. 전환 전략: 스켈레톤이 페이드 아웃되고 콘텐츠가 페이드 인되는 규칙.
  4. 접근성 요구 사항: aria-busy 및 aria-hidden 구현에 대한 지침.

워크플로

1. 대상 지오메트리 매핑

최종 컴포넌트를 기본 기하학적 기본 요소로 분해합니다:

  • 원형: 아바타, 아이콘 또는 둥근 버튼용.
  • 직사각형(둥근 모서리): 카드, 이미지 컨테이너 및 텍스트 블록용.
  • 선: 텍스트의 단일 행(헤드라인, 메타데이터)용.

2. 뼈대 계층 정의

모든 요소에 뼈대가 필요한 것은 아닙니다. 구조적 '앵커'에 집중하세요:

  • 1차 뼈대: 가장 큰 시각적 요소(예: 제품 이미지).
  • 2차 뼈대: 헤드라인 및 기본 메타데이터.
  • 3차 뼈대: 작은 메타 세부 사항 또는 액션 버튼(너무 작은 경우 생략 가능).

3. 공간 매칭 설정(CLS 규칙)

스켈레톤의 치수가 최종 콘텐츠의 컨테이너와 정확히 일치하는지 확인하세요:

  • 종횡비: 뼈대에 고정 종횡비(예: 비디오의 경우 16:9)를 사용하여 자산이 로드될 때 크기가 변경되지 않도록 합니다.
  • 텍스트 크기 조정: 뼈대가 나타내는 텍스트의 줄 높이 및 대략적인 너비와 일치하는 뼈대를 사용합니다.

4. 리듬과 샤이머 설계

스켈레톤은 '살아있는' 듯하지만 산만하지 않아야 합니다:

  • 기본 색상: 명도 대비가 낮은 중립 색상(예: 밝은 회색)을 사용합니다.
  • 샤이머(맥박): 왼쪽에서 오른쪽으로 움직이는 미묘한 그라데이션 애니메이션을 적용합니다.
  • 동기화: 화면에 여러 스켈레톤이 있는 경우 애니메이션이 동기화되어 시각적 혼란을 방지하도록 합니다.
  • 동작 줄이기: 샤이머 키프레임 애니메이션을 @media (prefers-reduced-motion: reduce) 쿼리로 감싸서 움직임을 비활성화하고 정적이거나 부드럽게 불투명도가 맥동하는 뼈대로 대체합니다.

5. '핸드오프' 전환 정의

스켈레톤의 종료를 계획합니다:

  • 타이밍: 실제 콘텐츠에 대해 짧은 페이드 인(예: 200ms)을 사용하여 급격한 '스냅' 전환을 방지합니다.
  • 지연 표시: 목록의 경우 항목이 한 번에 나타날지 아니면 개별적으로 로드될지 결정합니다.

결정 규칙

  • 300ms 규칙: 로드 시간이 300ms 이상 걸릴 것으로 예상되는 경우에만 스켈레톤을 표시합니다.
  • 뼈대 정확성: 뼈대는 특정 데이터가 아닌 컨테이너를 나타내야 합니다. 예를 들어, 텍스트 뼈대는 특정 문자를 모방한 톱니 모양 선이 아닌 단순한 막대여야 합니다.
  • 줄 수: 여러 줄 텍스트의 경우 다양한 너비의 2~3개의 뼈대(예: 마지막 줄은 60% 너비)를 사용하여 자연스러운 단락 흐름을 시뮬레이션합니다.
  • 스피너 대 스켈레톤:
    • 페이지 수준 또는 섹션 수준 전환에는 스켈레톤을 사용합니다.
    • 작은 로컬 작업(예: '저장 중...' 버튼 상태)에는 스피너를 사용합니다.

제약 조건

  • 접근성: 스켈레톤은 스크린 리더가 빈 막대를 '읽으려고' 시도하지 않도록 aria-hidden="true"로 표시해야 합니다. 상위 컨테이너는 로딩 중에 aria-busy="true"를 사용해야 하며, 이상적으로는 '로딩 중'을 알리고 콘텐츠가 스켈레톤을 대체하면 완료 상태를 알리는 시각적으로 숨겨진 aria-live="polite" 영역을 보유해야 합니다. 스켈레톤 뼈대 자체에는 aria-live를 사용하지 마십시오. 샤이머 효과에 대해 prefers-reduced-motion을 존중하십시오.
  • 대비: 스켈레톤 색상은 배경과 구별되어야 하지만 활성 콘텐츠처럼 보일 정도로 명도 대비가 높아서는 안 됩니다.
  • 반응형: 스켈레톤 뼈대는 최종 콘텐츠와 동일한 그리드/플렉스 로직을 사용하여 크기를 조정해야 합니다.

일반적인 실패 패턴

  • 'CLS 점프': 200px 높이의 스켈레톤이 300px 높이의 콘텐츠로 대체되어 페이지가 '점프'하는 현상.
  • 샤이머 과부하: 너무 빠르거나 명도 대비가 높은 애니메이션은 멀미나 주의 산만을 유발합니다.
  • 콘텐츠-뼈대 불일치: 정사각형 이미지에 원형 뼈대를 사용하거나 그 반대의 경우.
  • 과도한 복잡성: 모든 작은 아이콘을 뼈대로 재현하려고 시도하여 복잡한 '유령' 레이아웃이 발생합니다.
  • '정적 스켈레톤': 애니메이션이 없는 스켈레톤은 페이지가 깨졌거나 비어 있다고 오인될 수 있습니다.

검증 기준

  • 스켈레톤 치수가 최종 '로드된' 상태와 정확히 일치합니다(CLS 제로).
  • 이미지/비디오의 종횡비가 고정 컨테이너를 사용하여 확보됩니다.
  • 샤이머 애니메이션이 미묘하고 왼쪽에서 오른쪽으로 움직입니다.
  • 텍스트가 많은 영역은 자연스러운 줄 길이를 시뮬레이션하는 뼈대를 사용합니다.
  • aria-hidden="true"가 스켈레톤 요소에 적용되고 로딩 컨테이너는 aria-busy="true"를 사용합니다.
  • 샤이머 애니메이션이 prefers-reduced-motion: reduce를 존중합니다.
  • 스켈레톤에서 콘텐츠로의 전환이 부드러운 페이드(약 200ms)입니다.
  • 300ms보다 빠른 로드에는 스켈레톤이 나타나지 않습니다.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

관련 스킬