{
 "$schema": "newtil-component-spec/1",
 "package": "@newtil/materials",
 "version": "0.4.27",
 "generatedAt": "2026-09-19",
 "conventions": {
  "option": "클래스 `그룹:값` — 예 `btn:outlined`, `btn-size:sm`. 값이 없는 옵션은 flags. slotOptions 는 슬롯 요소에 붙이는 옵션 (예 card-media 에 `card-media:square`).",
  "variable": "컴포넌트 요소 자신에 준다: 인라인 style 또는 `.scope .m3-x { --x-*: … }`. 부모 요소의 style 은 상속되지 않는다.",
  "order": "타입(class) → 옵션(options/flags) → 변수(variables). 변수는 옵션으로 안 될 때만.",
  "tokens": "색·간격·모서리·글꼴은 design-tokens 변수만. tokens.groups 에 없는 이름은 존재하지 않는다.",
  "brand": "브랜드색은 씨앗 하나 `--brand` (design-tokens 0.2.3). 램프와 on-primary 는 계산된다. 회색조는 --_hue-gray-* 를 hex 로."
 },
 "components": [
  {
   "name": "badge",
   "class": "m3-badge",
   "description": "알림 수·상태를 작은 원이나 알약에 담는다. 아이콘 모서리에 얹거나(기본) 글자 옆에 인라인으로.\nM3 spec: small dot (6dp) or large with number (16dp height)\nPosition: top-right corner of parent (needs relative parent)\n사용법:\n  <div style=\"position: relative; display: inline-flex;\">\n    <i class=\"m3-icon icon:mail\"></i>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "badge": [
     "dot",
     "inline"
    ],
    "badge-color": [
     "danger",
     "neutral",
     "primary",
     "secondary",
     "success",
     "warning"
    ]
   },
   "flags": [],
   "variables": {
    "--badge-background": {
     "default": "var(--color-danger)"
    },
    "--badge-color": {
     "default": "var(--color-on-danger)"
    },
    "--badge-font-size": {
     "default": "0.6875rem"
    },
    "--badge-font-weight": {
     "default": "var(--font-weight-medium)"
    },
    "--badge-min-width": {
     "default": "1rem"
    },
    "--badge-height": {
     "default": "1rem"
    },
    "--badge-padding": {
     "default": "0 0.25rem"
    },
    "--badge-border-radius": {
     "default": "var(--radius-full)"
    },
    "--badge-position": {
     "default": "absolute"
    },
    "--badge-top": {
     "default": "-0.25rem"
    },
    "--badge-right": {
     "default": "-0.25rem"
    }
   },
   "usage": "<div style=\"position: relative; display: inline-flex;\">\n  <i class=\"m3-icon icon:email\"></i>\n  <span class=\"m3-badge\">3</span>\n</div>\n\n<div style=\"position: relative; display: inline-flex;\">\n  <i class=\"m3-icon icon:notifications\"></i>\n  <span class=\"m3-badge\">99+</span>\n</div>"
  },
  {
   "name": "bottom-sheet",
   "class": "m3-bottom-sheet",
   "description": "화면 아래에서 올라오는 시트. 모바일의 선택지·필터·상세 미리보기.\nM3 spec: surface container, rounded top corners (28dp), drag handle\nTypes: standard (non-modal, default), modal (with scrim)\nHidden by default, shown with sheet-open.\n사용법:\n  <div class=\"m3-bottom-sheet sheet-open\">",
   "slots": [
    "sheet-content",
    "sheet-drag-handle",
    "sheet-headline"
   ],
   "slotOptions": {},
   "options": {
    "sheet": [
     "modal"
    ]
   },
   "flags": [
    "sheet-open"
   ],
   "variables": {
    "--sheet-background": {
     "default": "var(--color-surface)"
    },
    "--sheet-border-radius": {
     "default": "1.75rem 1.75rem 0 0"
    },
    "--sheet-max-height": {
     "default": "80vh"
    },
    "--sheet-z-index": {
     "default": "var(--z-modal)"
    },
    "--sheet-box-shadow": {
     "default": "var(--shadow-lg)"
    },
    "--sheet-padding": {
     "default": "0"
    },
    "--sheet-border": {
     "default": "none"
    },
    "--sheet-color": {
     "default": "var(--color-text)"
    },
    "--sheet-bottom": {
     "default": "0"
    },
    "--sheet-left": {
     "default": "0"
    },
    "--sheet-width": {
     "default": "100%"
    },
    "--sheet-handle-width": {
     "default": "2rem"
    },
    "--sheet-handle-height": {
     "default": "0.25rem"
    },
    "--sheet-handle-color": {
     "default": "var(--color-border)"
    },
    "--sheet-handle-border-radius": {
     "default": "var(--radius-full)"
    },
    "--sheet-handle-margin": {
     "default": "1rem auto 0"
    },
    "--sheet-headline-font-size": {
     "default": "1rem"
    },
    "--sheet-headline-font-weight": {
     "default": "var(--font-weight-medium, 500)"
    },
    "--sheet-headline-color": {
     "default": "var(--color-text)"
    },
    "--sheet-headline-line-height": {
     "default": "1.5rem"
    },
    "--sheet-headline-margin": {
     "default": "0 0 0.5rem"
    },
    "--sheet-content-padding": {
     "default": "1rem 1.5rem 1.5rem"
    },
    "--sheet-content-color": {
     "default": "var(--color-text-muted)"
    },
    "--sheet-content-font-size": {
     "default": "0.875rem"
    },
    "--sheet-content-line-height": {
     "default": "1.25rem"
    },
    "--sheet-scrim-color": {
     "default": "var(--color-scrim)"
    },
    "--sheet-scrim-z-index": {
     "default": "var(--z-overlay)"
    },
    "--sheet-transition": {
     "default": "transform var(--duration-normal) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-bottom-sheet sheet-open\">\n  <div class=\"sheet-drag-handle\"></div>\n  <div class=\"sheet-content\">\n    <h3 class=\"sheet-headline\">시트 제목</h3>\n    <p>시트 본문 내용입니다.</p>\n  </div>\n</div>"
  },
  {
   "name": "breadcrumb",
   "class": "m3-breadcrumb",
   "description": "현재 위치 경로. 홈 / 메뉴 / 커피 / 카페라떼. 구분 기호는 CSS 가 그린다.\n현재 위치 경로: 홈 / 메뉴 / 커피 / 카페라떼. M3 스펙에는 없다.\n구분 기호는 CSS 가 그린다 — 마크업에 \"/\" 를 넣지 않는다.\n사용법:\n  <nav class=\"m3-breadcrumb\" aria-label=\"현재 위치\">\n    <a href=\"/\">홈</a>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "breadcrumb-separator": [
     "chevron",
     "dot",
     "slash"
    ],
    "breadcrumb-size": [
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--breadcrumb-gap": {
     "default": "var(--space-3)"
    },
    "--breadcrumb-margin": {
     "default": "0 0 var(--space-7)"
    },
    "--breadcrumb-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--breadcrumb-color": {
     "default": "var(--color-text-muted)"
    },
    "--breadcrumb-color-hover": {
     "default": "var(--color-text)"
    },
    "--breadcrumb-current-color": {
     "default": "var(--color-text)"
    },
    "--breadcrumb-current-weight": {
     "default": "var(--font-weight-semibold)"
    },
    "--breadcrumb-separator": {
     "default": "\"/\""
    },
    "--breadcrumb-separator-color": {
     "default": "var(--color-text-subtle)"
    }
   },
   "usage": "<nav class=\"m3-breadcrumb\" aria-label=\"현재 위치\">\n  <a href=\"#\">홈</a>\n  <a href=\"#\">메뉴</a>\n  <a href=\"#\">커피</a>\n  <span aria-current=\"page\">카페라떼</span>\n</nav>\n<nav class=\"m3-breadcrumb breadcrumb-separator:chevron breadcrumb-size:sm\" aria-label=\"현재 위치\">\n  <a href=\"#\">관리자</a>\n  <a href=\"#\">메뉴 관리</a>\n  <span aria-current=\"page\">새 메뉴</span>\n</nav>"
  },
  {
   "name": "btn",
   "class": "m3-btn",
   "description": "버튼. filled(기본) · outlined · text · tonal · elevated, 크기 xs~xl, 색 옵션.\nSize :  xs | sm (default) | md | lg | xl\nShape:  round (default) | square\nType :  filled (default) | elevated | tonal | outlined | text\nState:  enabled (default) | disabled | hover | focus | active\nM3 spec source: material-components/material-web tokens",
   "slots": [],
   "slotOptions": {},
   "options": {
    "btn-state": [
     "active",
     "disabled",
     "focus",
     "hover"
    ],
    "btn": [
     "elevated",
     "outlined",
     "text",
     "tonal"
    ],
    "btn-color": [
     "danger",
     "primary",
     "secondary",
     "success",
     "surface",
     "surface-1",
     "surface-inverse",
     "tertiary",
     "warning"
    ],
    "btn-size": [
     "1",
     "2",
     "3",
     "4",
     "5",
     "lg",
     "md",
     "sm",
     "xl",
     "xs"
    ],
    "btn-shape": [
     "square"
    ],
    "btn-icon": [
     "leading",
     "trailing"
    ]
   },
   "flags": [],
   "variables": {
    "--btn-font-size": {
     "default": "0.875rem",
     "note": "M3: 14sp"
    },
    "--btn-font-weight": {
     "default": "var(--font-weight-medium)",
     "note": "M3: 500"
    },
    "--btn-line-height": {
     "default": "1.25rem",
     "note": "M3: 20sp"
    },
    "--btn-letter-spacing": {
     "default": "0.00625rem",
     "note": "M3: 0.1px"
    },
    "--btn-height": {
     "default": "2.5rem",
     "note": "M3: 40dp"
    },
    "--btn-height-xs": {
     "default": "2rem"
    },
    "--btn-padding-xs": {
     "default": "0 1rem"
    },
    "--btn-font-size-xs": {
     "default": "0.75rem"
    },
    "--btn-height-sm": {
     "default": "2.5rem"
    },
    "--btn-padding-sm": {
     "default": "0 1.5rem"
    },
    "--btn-font-size-sm": {
     "default": "0.875rem"
    },
    "--btn-height-md": {
     "default": "3rem"
    },
    "--btn-padding-md": {
     "default": "0 1.75rem"
    },
    "--btn-font-size-md": {
     "default": "1rem"
    },
    "--btn-height-lg": {
     "default": "3.5rem"
    },
    "--btn-padding-lg": {
     "default": "0 2rem"
    },
    "--btn-font-size-lg": {
     "default": "1.125rem"
    },
    "--btn-height-xl": {
     "default": "4rem"
    },
    "--btn-padding-xl": {
     "default": "0 2.5rem"
    },
    "--btn-font-size-xl": {
     "default": "1.25rem"
    },
    "--btn-padding": {
     "default": "0 1.5rem",
     "note": "M3: 24dp horizontal"
    },
    "--btn-gap": {
     "default": "0.5rem",
     "note": "M3: 8dp icon-label gap"
    },
    "--btn-icon-size": {
     "default": "1.125rem",
     "note": "M3: 18dp"
    },
    "--btn-accent": {
     "default": "var(--color-primary)"
    },
    "--btn-on-accent": {
     "default": "var(--color-on-primary)"
    },
    "--btn-color": {
     "default": "var(--btn-on-accent)"
    },
    "--btn-background-color": {
     "default": "var(--btn-accent)"
    },
    "--btn-background-image": {
     "default": "none"
    },
    "--btn-box-shadow": {
     "default": "none",
     "note": "M3 filled: level0 at rest"
    },
    "--btn-elevation-hover": {
     "default": "var(--shadow-sm)",
     "note": "M3: level1 on hover"
    },
    "--btn-border-width": {
     "default": "0"
    },
    "--btn-border-color": {
     "default": "transparent"
    },
    "--btn-border-style": {
     "default": "solid"
    },
    "--btn-border-radius": {
     "default": "var(--radius-full)",
     "note": "M3: corner-full"
    },
    "--btn-outline": {
     "default": "none"
    },
    "--btn-outline-offset": {
     "default": "0"
    },
    "--btn-state-hover-opacity": {
     "default": "0.08",
     "note": "M3: hover = 8%"
    },
    "--btn-state-focus-opacity": {
     "default": "0.12",
     "note": "M3: focus = 12%"
    },
    "--btn-state-pressed-opacity": {
     "default": "0.12",
     "note": "M3: pressed = 12%"
    },
    "--btn-state-layer-color": {
     "default": "var(--btn-on-accent)"
    }
   },
   "usage": "<!-- filled (기본) -->\n<button class=\"m3-btn\">Filled</button>\n\n<!-- elevated -->\n<button class=\"m3-btn btn:elevated\">Elevated</button>\n\n<!-- tonal -->\n<button class=\"m3-btn btn:tonal\">Tonal</button>\n\n<!-- outlined -->\n<button class=\"m3-btn btn:outlined\">Outlined</button>\n\n<!-- text -->\n<button class=\"m3-btn btn:text\">Text</button>"
  },
  {
   "name": "card",
   "class": "m3-card",
   "description": "카드. 사진(card-media) · 머리(card-header) · 본문 · 액션 줄이 세로로 쌓인다. outlined · filled · elevated.\nType :  elevated (default) | filled | outlined\nState:  enabled (default) | disabled | hover | focus | active | dragged\n원칙: 모든 CSS 속성은 .m3-card 에서 변수로 적용.\n      옵션 클래스는 변수 값만 변경. CSS 속성 직접 사용 금지.\nVariable API: --card-* 변수로 모든 시각 요소 커스텀 가능",
   "slots": [
    "card-actions",
    "card-actions-end",
    "card-avatar",
    "card-content",
    "card-header",
    "card-headline",
    "card-media",
    "card-subhead",
    "card-titles"
   ],
   "slotOptions": {
    "card-media": {
     "card-media": [
      "landscape",
      "square",
      "video",
      "wide"
     ]
    }
   },
   "options": {
    "card-state": [
     "disabled",
     "dragged",
     "focused",
     "hovered",
     "pressed"
    ],
    "card": [
     "elevated",
     "filled",
     "outlined"
    ],
    "card-hover": [
     "enabled"
    ],
    "card-padding": [
     "self"
    ],
    "card-layout": [
     "horizontal"
    ],
    "card-size": [
     "compact",
     "large"
    ]
   },
   "flags": [
    "card-clickable"
   ],
   "variables": {
    "--card-background": {
     "default": "var(--color-surface-1)"
    },
    "--card-width": {
     "default": "auto"
    },
    "--card-height": {
     "default": "auto"
    },
    "--card-border": {
     "default": "none"
    },
    "--card-border-radius": {
     "default": "0.75rem"
    },
    "--card-box-shadow": {
     "default": "var(--shadow-sm)"
    },
    "--card-opacity": {
     "default": "1"
    },
    "--card-color": {
     "default": "var(--color-text)"
    },
    "--card-text-decoration": {
     "default": "none"
    },
    "--card-outline": {
     "default": "none"
    },
    "--card-outline-offset": {
     "default": "0"
    },
    "--card-transform": {
     "default": "none"
    },
    "--card-cursor": {
     "default": "default"
    },
    "--card-overflow": {
     "default": "hidden"
    },
    "--card-flex-direction": {
     "default": "column"
    },
    "--card-padding-x": {
     "default": "1rem"
    },
    "--card-padding-y": {
     "default": "1rem"
    },
    "--card-header-gap": {
     "default": "1rem"
    },
    "--card-headline-size": {
     "default": "1.25rem",
     "note": "0.4.17: 1.5rem/400 → 1.25rem/600. 한글 제목은 굵어야 본문과 구분된다"
    },
    "--card-headline-weight": {
     "default": "var(--font-weight-semibold)"
    },
    "--card-headline-line-height": {
     "default": "1.75rem"
    },
    "--card-headline-color": {
     "default": "var(--color-text)"
    },
    "--card-headline-margin": {
     "default": "0"
    },
    "--card-subhead-size": {
     "default": "0.875rem"
    },
    "--card-subhead-weight": {
     "default": "500"
    },
    "--card-subhead-color": {
     "default": "var(--color-text-muted)"
    },
    "--card-subhead-margin": {
     "default": "0.25rem 0 0"
    },
    "--card-supporting-size": {
     "default": "0.875rem"
    },
    "--card-supporting-color": {
     "default": "var(--color-text-muted)"
    },
    "--card-supporting-line-height": {
     "default": "1.25rem"
    },
    "--card-avatar-size": {
     "default": "2.5rem"
    },
    "--card-avatar-radius": {
     "default": "50%"
    },
    "--card-avatar-background": {
     "default": "var(--color-primary-subtle)"
    },
    "--card-avatar-color": {
     "default": "var(--color-primary)"
    },
    "--card-avatar-font-size": {
     "default": "1rem"
    },
    "--card-avatar-font-weight": {
     "default": "600"
    },
    "--card-media-height": {
     "default": "auto"
    },
    "--card-media-object-fit": {
     "default": "cover"
    },
    "--card-media-width": {
     "default": "auto"
    },
    "--card-media-ratio": {
     "default": "auto"
    },
    "--card-media-badge-offset": {
     "default": "var(--space-3)"
    },
    "--card-actions-gap": {
     "default": "0.5rem"
    },
    "--card-actions-padding": {
     "default": "0 var(--card-padding-x) var(--card-padding-y)"
    },
    "--card-state-layer-color": {
     "default": "var(--color-text)"
    },
    "--card-state-hover-opacity": {
     "default": "0"
    },
    "--card-state-focus-opacity": {
     "default": "0"
    },
    "--card-state-pressed-opacity": {
     "default": "0"
    },
    "--card-state-dragged-opacity": {
     "default": "0"
    },
    "--card-elevation-hover": {
     "default": "var(--shadow-sm)"
    }
   },
   "usage": "<div class=\"m3-card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-headline\">카드 제목</h3>\n    <p class=\"card-subhead\">부제목</p>\n  </div>\n  <div class=\"card-content\">\n    <p>카드 본문 텍스트입니다.</p>\n  </div>\n</div>"
  },
  {
   "name": "checkbox",
   "class": "m3-checkbox",
   "description": "체크박스. 레이블과 함께 한 줄, 여러 개면 form-group 으로 묶는다.\nM3 spec: 18dp box, 2dp radius, primary when checked\nVariable API: --checkbox-* 변수로 커스텀 가능",
   "slots": [],
   "slotOptions": {},
   "options": {
    "checkbox-mode": [
     "indeterminate"
    ],
    "checkbox-color": [
     "danger",
     "primary",
     "secondary",
     "success",
     "tertiary",
     "warning"
    ],
    "checkbox-state": [
     "checked",
     "disabled",
     "focused",
     "hovered"
    ]
   },
   "flags": [],
   "variables": {
    "--checkbox-display": {
     "default": "inline-flex"
    },
    "--checkbox-align-items": {
     "default": "center"
    },
    "--checkbox-padding": {
     "default": "0.5rem"
    },
    "--checkbox-cursor": {
     "default": "pointer"
    },
    "--checkbox-gap": {
     "default": "0.75rem"
    },
    "--checkbox-size": {
     "default": "1.125rem"
    },
    "--checkbox-border-radius": {
     "default": "0.125rem"
    },
    "--checkbox-border-width": {
     "default": "0.125rem"
    },
    "--checkbox-border-color": {
     "default": "var(--color-text-muted)"
    },
    "--checkbox-background": {
     "default": "transparent"
    },
    "--checkbox-check-color": {
     "default": "var(--color-on-primary)"
    },
    "--checkbox-check-background": {
     "default": "var(--color-primary)"
    },
    "--checkbox-check-opacity": {
     "default": "0"
    },
    "--checkbox-check-content": {
     "default": "\"\\e5ca\""
    },
    "--checkbox-check-font-size": {
     "default": "1.125rem"
    },
    "--checkbox-state-size": {
     "default": "2.5rem"
    },
    "--checkbox-state-color": {
     "default": "var(--color-primary)"
    },
    "--checkbox-state-opacity": {
     "default": "0"
    },
    "--checkbox-label-size": {
     "default": "0.875rem"
    },
    "--checkbox-label-color": {
     "default": "var(--color-text)"
    },
    "--checkbox-transition": {
     "default": "all var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<div style=\"display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center;\">\n  <button class=\"m3-btn\">저장</button>\n  <div class=\"m3-text-field\" style=\"max-width: 14rem;\">\n    <input type=\"text\" placeholder=\" \">\n    <label>이름</label>\n  </div>\n  <label class=\"m3-checkbox\"><input type=\"checkbox\" checked> 동의</label>\n</div>"
  },
  {
   "name": "chip",
   "class": "m3-chip",
   "description": "칩. 필터·선택·입력값 표시. 아이콘·닫기 버튼 슬롯.\nType: assist | filter | input | suggestion\nM3 spec: 32dp height, corner-small (8dp), label-large text\n사용법:\n  <span class=\"m3-chip\">기본 칩</span>\n  <span class=\"m3-chip chip:outlined\">아웃라인</span>",
   "slots": [
    "chip-close",
    "chip-icon"
   ],
   "slotOptions": {},
   "options": {
    "chip-state": [
     "disabled"
    ],
    "chip": [
     "elevated",
     "selected"
    ],
    "chip-color": [
     "danger",
     "primary",
     "secondary",
     "success",
     "warning"
    ]
   },
   "flags": [],
   "variables": {
    "--chip-display": {
     "default": "inline-flex"
    },
    "--chip-align-items": {
     "default": "center"
    },
    "--chip-height": {
     "default": "2rem"
    },
    "--chip-padding": {
     "default": "0 0.75rem"
    },
    "--chip-gap": {
     "default": "0.5rem"
    },
    "--chip-border-radius": {
     "default": "0.5rem"
    },
    "--chip-background": {
     "default": "transparent"
    },
    "--chip-color": {
     "default": "var(--color-text)"
    },
    "--chip-border": {
     "default": "0.0625rem solid var(--color-border)"
    },
    "--chip-cursor": {
     "default": "pointer"
    },
    "--chip-font-size": {
     "default": "0.875rem"
    },
    "--chip-font-weight": {
     "default": "var(--font-weight-medium)"
    },
    "--chip-box-shadow": {
     "default": "none"
    },
    "--chip-icon-size": {
     "default": "1.125rem"
    },
    "--chip-close-radius": {
     "default": "50%"
    },
    "--chip-close-background": {
     "default": "transparent"
    },
    "--chip-state-hover-opacity": {
     "default": "0.08"
    },
    "--chip-state-pressed-opacity": {
     "default": "0.12"
    },
    "--chip-selected-background": {
     "default": "var(--color-primary-subtle)"
    },
    "--chip-selected-color": {
     "default": "var(--color-primary)"
    },
    "--chip-selected-border": {
     "default": "0.0625rem solid transparent"
    },
    "--chip-transition": {
     "default": "all var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<span class=\"m3-chip\">기본 칩</span>\n<span class=\"m3-chip\">필터</span>\n<span class=\"m3-chip\">태그</span>"
  },
  {
   "name": "deco",
   "class": "m3-deco",
   "description": "아이콘 + 글자 장식. 내비 항목·상태 표시처럼 아이콘과 짧은 글이 붙는 자리.\n아이콘과 텍스트를 방향에 따라 조합하는 장식 컴포넌트.\nNavigation Bar, Navigation Rail, Tab Bar, 사이드바 메뉴 항목 등에 사용.\n사용법:\n  <span class=\"m3-deco icon:home deco-pos:left\">홈</span>\n  <span class=\"m3-deco icon:home deco-pos:top deco-active\">홈</span>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "deco-pos": [
     "bottom",
     "left",
     "right",
     "top"
    ],
    "deco-gap": [
     "0",
     "1",
     "2",
     "3",
     "4",
     "5"
    ],
    "deco-color": [
     "danger",
     "on-surface",
     "primary",
     "primary-hover",
     "secondary",
     "secondary-hover",
     "success",
     "surface",
     "tertiary",
     "text",
     "text-muted",
     "warning"
    ],
    "deco-size": [
     "1",
     "2",
     "3",
     "4",
     "5"
    ],
    "icon-filled": [
     "0",
     "1"
    ]
   },
   "flags": [
    "deco-active"
   ],
   "variables": {
    "--icon-size": {
     "default": "1.5rem",
     "note": "24dp"
    },
    "--icon-family": {
     "default": "\"Material Symbols Outlined\""
    },
    "--icon-fill": {
     "default": "0"
    },
    "--icon-weight": {
     "default": "400"
    },
    "--icon-grade": {
     "default": "0"
    },
    "--icon-optical-size": {
     "default": "24"
    },
    "--deco-gap": {
     "default": "0.5rem",
     "note": "8dp"
    },
    "--deco-flex-direction": {
     "default": "row"
    },
    "--deco-width": {
     "default": "auto"
    },
    "--deco-height": {
     "default": "auto"
    },
    "--deco-padding": {
     "default": "0"
    },
    "--deco-border-radius": {
     "default": "0"
    },
    "--deco-background-color": {
     "default": "transparent"
    },
    "--deco-color": {
     "default": "var(--color-primary)"
    },
    "--deco-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--deco-active-text-color": {
     "default": "var(--color-on-primary)"
    },
    "--deco-pill-height": {
     "default": "2rem"
    },
    "--deco-pill-width": {
     "default": "calc(var(--icon-size) + 2rem)"
    },
    "--deco-pill-radius": {
     "default": "1rem"
    },
    "--deco-pill-background": {
     "default": "transparent"
    },
    "--deco-pill-color": {
     "default": "inherit"
    }
   },
   "usage": "<!-- icon 클래스 사용 -->\n<span class=\"m3-deco icon:home deco-pos:top\">홈</span>\n\n<!-- data-icon 속성 사용 -->\n<span class=\"m3-deco deco-pos:top\" data-icon=\"shopping_cart\">장바구니</span>"
  },
  {
   "name": "dialog",
   "class": "m3-dialog",
   "description": "다이얼로그. 제목 · 본문 · 액션 줄, 스크림 위에 가운데.\nM3 spec: surface-container-high, 28dp radius, 24dp padding\nMin 280dp, Max 560dp. Scrim overlay.\nVariable API: --dialog-* 변수로 커스텀 가능",
   "slots": [
    "dialog-actions",
    "dialog-content",
    "dialog-headline",
    "dialog-icon"
   ],
   "slotOptions": {},
   "options": {},
   "flags": [
    "dialog-open"
   ],
   "variables": {
    "--dialog-background": {
     "default": "var(--color-surface-2)"
    },
    "--dialog-border-radius": {
     "default": "1.75rem"
    },
    "--dialog-padding": {
     "default": "1.5rem"
    },
    "--dialog-min-width": {
     "default": "17.5rem"
    },
    "--dialog-max-width": {
     "default": "35rem"
    },
    "--dialog-color": {
     "default": "var(--color-text-muted)"
    },
    "--dialog-border": {
     "default": "none"
    },
    "--dialog-box-shadow": {
     "default": "var(--shadow-lg)"
    },
    "--dialog-scrim-color": {
     "default": "var(--color-scrim)"
    },
    "--dialog-z-index": {
     "default": "var(--z-modal)"
    },
    "--dialog-headline-color": {
     "default": "var(--color-text)"
    },
    "--dialog-headline-size": {
     "default": "1.5rem"
    },
    "--dialog-headline-weight": {
     "default": "var(--font-weight-regular)"
    },
    "--dialog-headline-line-height": {
     "default": "2rem"
    },
    "--dialog-headline-margin": {
     "default": "0 0 1rem"
    },
    "--dialog-content-color": {
     "default": "var(--color-text-muted)"
    },
    "--dialog-content-size": {
     "default": "0.875rem"
    },
    "--dialog-content-line-height": {
     "default": "1.25rem"
    },
    "--dialog-content-margin": {
     "default": "0 0 1.5rem"
    },
    "--dialog-actions-gap": {
     "default": "0.5rem"
    },
    "--dialog-actions-justify": {
     "default": "flex-end"
    },
    "--dialog-icon-margin": {
     "default": "0 0 1rem"
    },
    "--dialog-icon-color": {
     "default": "var(--color-primary)"
    },
    "--dialog-icon-size": {
     "default": "1.5rem"
    }
   },
   "usage": "<dialog class=\"m3-dialog\" open>\n  <h2 class=\"dialog-headline\">제목</h2>\n  <div class=\"dialog-content\">\n    다이얼로그 본문 텍스트입니다. 사용자에게 전달할 내용을 작성합니다.\n  </div>\n  <div class=\"dialog-actions\">\n    <button class=\"m3-btn btn:text\">취소</button>\n    <button class=\"m3-btn btn:text\">확인</button>\n  </div>\n</dialog>"
  },
  {
   "name": "divider",
   "class": "m3-divider",
   "description": "구분선. 가로(기본) · 세로, 안쪽 여백(inset) 옵션.\nType :  full-width (default) | inset | middle-inset | vertical | text (가운데 글자: <div class=\"m3-divider divider:text\"><span>또는</span></div>)\nM3 spec: 1dp height, outline-variant color\nRef: https://m3.material.io/components/divider/specs\nVariable API: --divider-* 변수로 모든 시각 요소 커스텀 가능",
   "slots": [],
   "slotOptions": {},
   "options": {
    "divider": [
     "inset",
     "middle-inset",
     "text",
     "vertical"
    ]
   },
   "flags": [],
   "variables": {
    "--divider-color": {
     "default": "var(--color-border)",
     "note": "M3: outline-variant"
    },
    "--divider-width": {
     "default": "100%",
     "note": "M3: full-width"
    },
    "--divider-thickness": {
     "default": "0.0625rem",
     "note": "M3: 1dp"
    },
    "--divider-margin": {
     "default": "0"
    },
    "--divider-inset-start": {
     "default": "0"
    },
    "--divider-inset-end": {
     "default": "0"
    },
    "--divider-height": {
     "default": "auto",
     "note": "vertical 시 사용"
    },
    "--divider-text-color": {
     "default": "var(--color-text-muted)"
    },
    "--divider-text-size": {
     "default": "var(--font-size-caption)"
    },
    "--divider-text-gap": {
     "default": "var(--space-3)"
    }
   },
   "usage": "<hr class=\"m3-divider\">"
  },
  {
   "name": "fab",
   "class": "m3-fab",
   "description": "떠 있는 동작 버튼. 화면 구석의 주 동작 하나.\nSize :  fab (default 56dp) | fab:small (40dp) | fab:large (96dp) | fab:extended\nColor:  surface (default) | primary | secondary | tertiary\nState:  enabled (default) | hover | focus | active | disabled\nM3 spec: level3 shadow at rest, level4 on hover\nRef: https://m3.material.io/components/floating-action-button/specs",
   "slots": [],
   "slotOptions": {},
   "options": {
    "fab-state": [
     "active",
     "disabled",
     "focus",
     "hover"
    ],
    "fab": [
     "extended",
     "large",
     "small"
    ],
    "fab-color": [
     "primary",
     "secondary",
     "surface",
     "tertiary"
    ]
   },
   "flags": [],
   "variables": {
    "--fab-size": {
     "default": "3.5rem",
     "note": "M3: 56dp"
    },
    "--fab-padding": {
     "default": "1rem",
     "note": "M3: 16dp"
    },
    "--fab-gap": {
     "default": "0.75rem",
     "note": "M3: 12dp (extended)"
    },
    "--fab-icon-size": {
     "default": "1.5rem",
     "note": "M3: 24dp"
    },
    "--fab-background": {
     "default": "var(--color-surface-1)",
     "note": "M3: surface-container-high"
    },
    "--fab-color": {
     "default": "var(--color-primary)",
     "note": "M3: primary"
    },
    "--fab-box-shadow": {
     "default": "var(--shadow-lg)",
     "note": "M3: level3"
    },
    "--fab-elevation-hover": {
     "default": "var(--shadow-xl)",
     "note": "M3: level4"
    },
    "--fab-border-radius": {
     "default": "1rem",
     "note": "M3: large = 16dp"
    },
    "--fab-font-size": {
     "default": "0.875rem",
     "note": "M3: label-large 14sp"
    },
    "--fab-font-weight": {
     "default": "var(--font-weight-medium)",
     "note": "M3: 500"
    },
    "--fab-line-height": {
     "default": "1.25rem",
     "note": "M3: 20sp"
    },
    "--fab-letter-spacing": {
     "default": "0.00625rem",
     "note": "M3: 0.1px"
    },
    "--fab-outline": {
     "default": "none"
    },
    "--fab-outline-offset": {
     "default": "0"
    },
    "--fab-state-layer-color": {
     "default": "var(--color-primary)"
    },
    "--fab-state-hover-opacity": {
     "default": "0.08",
     "note": "M3: 8%"
    },
    "--fab-state-focus-opacity": {
     "default": "0.12",
     "note": "M3: 12%"
    },
    "--fab-state-pressed-opacity": {
     "default": "0.12",
     "note": "M3: 12%"
    }
   },
   "usage": "<button class=\"m3-fab\">\n  <i class=\"m3-icon icon:add\"></i>\n</button>"
  },
  {
   "name": "form",
   "class": "m3-form",
   "description": "폼 레이아웃. 머리(form-header) · 필드 묶음(form-fields) · 선택지 묶음(form-group) · 액션 줄 · 메시지.\nM3 스펙에는 Form 전용 컴포넌트가 없습니다. 이 컴포넌트는\n폼의 공통 레이아웃 패턴(헤더 / 필드 / 액션 / 메시지)을 표준화하기 위한\nnewtil 확장입니다.\n사용법:\n  <form class=\"m3-form\">",
   "slots": [
    "form-actions",
    "form-choice-extra",
    "form-description",
    "form-fields",
    "form-group",
    "form-group-choices",
    "form-group-label",
    "form-header",
    "form-headline",
    "form-message"
   ],
   "slotOptions": {
    "form-actions": {
     "form-actions": [
      "between",
      "center",
      "end",
      "start",
      "stretch"
     ]
    },
    "form-message": {
     "form-message": [
      "error",
      "info",
      "success",
      "warning"
     ]
    },
    "form-group": {
     "form-group": [
      "inline"
     ]
    }
   },
   "options": {
    "form": [
     "compact",
     "loose"
    ]
   },
   "flags": [],
   "variables": {
    "--form-display": {
     "default": "flex"
    },
    "--form-flex-direction": {
     "default": "column"
    },
    "--form-gap": {
     "default": "1.5rem"
    },
    "--form-width": {
     "default": "100%"
    },
    "--form-header-gap": {
     "default": "0.25rem"
    },
    "--form-group-gap": {
     "default": "var(--space-2)"
    },
    "--form-group-label-width": {
     "default": "5.5rem",
     "note": "form-group:inline 의 레이블 칸"
    },
    "--form-group-label-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--form-group-label-weight": {
     "default": "var(--font-weight-semibold)"
    },
    "--form-group-choices-gap": {
     "default": "var(--space-5)"
    },
    "--form-headline-size": {
     "default": "1.5rem"
    },
    "--form-headline-weight": {
     "default": "600"
    },
    "--form-headline-color": {
     "default": "var(--color-text)"
    },
    "--form-headline-line-height": {
     "default": "2rem"
    },
    "--form-headline-margin": {
     "default": "0"
    },
    "--form-description-size": {
     "default": "0.875rem"
    },
    "--form-description-color": {
     "default": "var(--color-text-muted)"
    },
    "--form-description-line-height": {
     "default": "1.25rem"
    },
    "--form-description-margin": {
     "default": "0"
    },
    "--form-fields-gap": {
     "default": "1rem"
    },
    "--form-actions-gap": {
     "default": "0.5rem"
    },
    "--form-actions-justify": {
     "default": "flex-end"
    },
    "--form-actions-align": {
     "default": "center"
    },
    "--form-message-padding": {
     "default": "0.75rem 1rem"
    },
    "--form-message-border-radius": {
     "default": "0.5rem"
    },
    "--form-message-font-size": {
     "default": "0.875rem"
    },
    "--form-message-line-height": {
     "default": "1.25rem"
    },
    "--form-message-background": {
     "default": "var(--color-surface-2)"
    },
    "--form-message-color": {
     "default": "var(--color-text)"
    }
   },
   "usage": "<form class=\"m3-form\" style=\"max-width: 22rem;\">\n  <div class=\"form-header\">\n    <h2 class=\"form-headline\">로그인</h2>\n    <p class=\"form-description\">계정 정보를 입력하세요.</p>\n  </div>\n  <div class=\"form-message form-message:error\">\n    이메일 또는 비밀번호가 올바르지 않습니다.\n  </div>\n  <div class=\"form-fields\">\n    <div class=\"m3-text-field field:outlined\">\n      <input type=\"email\" placeholder=\" \">\n      <label>이메일</label>\n    </div>\n    <div class=\"m3-text-field field:outlined\">\n      <input type=\"password\" placeholder=\" \">\n      <label>비밀번호</label>\n    </div>\n  </div>\n  <div class=\"form-actions\">\n    <button type=\"button\" class=\"m3-btn btn:text\">취소</button>\n    <button type=\"button\" class=\"m3-btn\">로그인</button>\n  </div>\n</form>"
  },
  {
   "name": "grid",
   "class": "m3-grid",
   "description": "격자. 카드·항목을 열 수(grid-cols)와 간격(grid-gap)으로 반응형 배치.\n카드·항목을 반응형 격자로 놓는 콘텐츠 블록. \"가구를 방에 놓는 틀\" 이다.\nM3 스펙에는 없다. 안에 무엇이 들어가든(m3-card, m3-list 항목, 이미지) 격자만 책임진다.\n사용법:\n  <ul class=\"m3-grid grid-cols:3\">\n    <li class=\"m3-card card:outlined\">…</li>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "grid-cols": [
     "1",
     "2",
     "3",
     "4",
     "5",
     "6",
     "auto"
    ],
    "grid-gap": [
     "1",
     "2",
     "3",
     "4",
     "5"
    ]
   },
   "flags": [],
   "variables": {
    "--grid-cols": {
     "default": "3"
    },
    "--grid-cols-md": {
     "default": "2"
    },
    "--grid-cols-sm": {
     "default": "1"
    },
    "--grid-gap": {
     "default": "var(--space-6)",
     "note": "20px"
    },
    "--grid-min": {
     "default": "16rem",
     "note": "grid-cols:auto 일 때 최소 열 너비"
    }
   },
   "usage": "<ul class=\"m3-grid grid-cols:3\">\n  <li class=\"m3-card card:outlined card-padding:self\">카드 1</li>\n  <li class=\"m3-card card:outlined card-padding:self\">카드 2</li>\n  <li class=\"m3-card card:outlined card-padding:self\">카드 3</li>\n  <li class=\"m3-card card:outlined card-padding:self\">카드 4</li>\n  <li class=\"m3-card card:outlined card-padding:self\">카드 5</li>\n  <li class=\"m3-card card:outlined card-padding:self\">카드 6</li>\n</ul>"
  },
  {
   "name": "icon-btn",
   "class": "m3-icon-btn",
   "description": "아이콘만 있는 버튼. standard · filled · tonal · outlined, 크기 xs~lg, 토글.\nType :  standard (default) | filled | tonal | outlined\nToggle: icon-btn-toggle:selected | icon-btn-toggle:unselected\nSize :  icon-btn-size:xs (28px) | sm (32px) | md (40px, 기본, 터치 48px) | lg (48px)\n        xs·sm 은 터치 영역을 늘리지 않는다 — 카드 액션·표 셀·스테퍼처럼 텍스트 버튼 옆에 나란히 놓는 자리용.\nState:  enabled (default) | hover | focus | active | disabled",
   "slots": [],
   "slotOptions": {},
   "options": {
    "icon-btn-state": [
     "active",
     "disabled",
     "focus",
     "hover"
    ],
    "icon-btn-size": [
     "lg",
     "md",
     "sm",
     "xs"
    ],
    "icon-btn": [
     "filled",
     "outlined",
     "tonal"
    ],
    "icon-btn-toggle": [
     "selected",
     "unselected"
    ]
   },
   "flags": [],
   "variables": {
    "--icon-btn-size": {
     "default": "2.5rem",
     "note": "M3: 40dp visible"
    },
    "--icon-btn-touch-size": {
     "default": "3rem",
     "note": "M3: 48dp touch target"
    },
    "--icon-btn-icon-size": {
     "default": "1.5rem",
     "note": "M3: 24dp"
    },
    "--icon-btn-background": {
     "default": "transparent"
    },
    "--icon-btn-color": {
     "default": "var(--color-text)",
     "note": "M3: on-surface-variant"
    },
    "--icon-btn-box-shadow": {
     "default": "none"
    },
    "--icon-btn-border-width": {
     "default": "0"
    },
    "--icon-btn-border-color": {
     "default": "transparent"
    },
    "--icon-btn-border-style": {
     "default": "solid"
    },
    "--icon-btn-border-radius": {
     "default": "var(--radius-full)",
     "note": "M3: full"
    },
    "--icon-btn-outline": {
     "default": "none"
    },
    "--icon-btn-outline-offset": {
     "default": "0"
    },
    "--icon-btn-state-layer-color": {
     "default": "var(--color-text)"
    },
    "--icon-btn-state-hover-opacity": {
     "default": "0.08",
     "note": "M3: 8%"
    },
    "--icon-btn-state-focus-opacity": {
     "default": "0.12",
     "note": "M3: 12%"
    },
    "--icon-btn-state-pressed-opacity": {
     "default": "0.12",
     "note": "M3: 12%"
    }
   },
   "usage": "<!-- standard (기본) -->\n<button class=\"m3-icon-btn\">\n  <i class=\"m3-icon icon:settings\"></i>\n</button>"
  },
  {
   "name": "icon",
   "class": "m3-icon",
   "description": "Material Symbols 아이콘. icon:이름 클래스 또는 data-icon, 크기·채움·굵기 옵션.\nMaterial Symbols 폰트 기반 아이콘 컴포넌트.\n아이콘 코드포인트는 icon-essential.css (또는 사용자 정의)에서 ::before content로 제공.\n사용법:\n  <i class=\"m3-icon icon:home\"></i>\n  <i class=\"m3-icon icon:search icon-style:rounded icon-filled:1\"></i>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "icon-style": [
     "outlined",
     "rounded",
     "sharp"
    ],
    "icon-filled": [
     "0",
     "1"
    ],
    "icon-weight": [
     "100",
     "200",
     "300",
     "400",
     "500",
     "600",
     "700"
    ],
    "icon-grade": [
     "high",
     "low",
     "normal"
    ],
    "icon-optical": [
     "20",
     "24",
     "40",
     "48"
    ],
    "icon-size": [
     "1",
     "2",
     "3",
     "4",
     "5",
     "lg",
     "md",
     "sm",
     "xl",
     "xs"
    ],
    "icon-color": [
     "black",
     "danger",
     "on-surface",
     "primary",
     "primary-active",
     "primary-hover",
     "secondary",
     "secondary-hover",
     "success",
     "surface",
     "tertiary",
     "tertiary-hover",
     "text",
     "text-muted",
     "text-subtle",
     "warning",
     "white"
    ]
   },
   "flags": [
    "icon-hover"
   ],
   "variables": {
    "--icon-size": {
     "default": "1.5rem",
     "note": "M3: 24dp default"
    },
    "--icon-family": {
     "default": "\"Material Symbols Outlined\""
    },
    "--icon-fill": {
     "default": "0",
     "note": "0 = outlined, 1 = filled"
    },
    "--icon-weight": {
     "default": "400",
     "note": "100~700"
    },
    "--icon-grade": {
     "default": "0",
     "note": "-25, 0, 200"
    },
    "--icon-optical-size": {
     "default": "24",
     "note": "20, 24, 40, 48"
    },
    "--icon-hover-border-radius": {
     "default": "50%"
    },
    "--icon-hover-scale": {
     "default": "1.3"
    },
    "--icon-hover-inner-scale": {
     "default": "0.8"
    }
   },
   "usage": "<!-- 아이콘이 앞에 -->\n<button class=\"m3-btn btn-icon:leading\">\n  <i class=\"m3-icon icon:add\"></i>추가\n</button>\n\n<!-- 아이콘이 뒤에 -->\n<button class=\"m3-btn btn-icon:trailing\">\n  보내기<i class=\"m3-icon icon:send\"></i>\n</button>\n\n<!-- 타입 + 색상 + 아이콘 조합 -->\n<button class=\"m3-btn btn:tonal btn-color:danger btn-icon:leading\">\n  <i class=\"m3-icon icon:delete\"></i>삭제\n</button>"
  },
  {
   "name": "layout",
   "class": "m3-layout",
   "description": "앱 셸(방). 드로어 · 상단 앱 바 · 본문이 화면 폭에 따라 드로어/레일/하단 내비로 바뀐다.\nM3 adaptive guidelines: page shell that arranges Top App Bar,\nNavigation, and Content area with automatic navigation switching.\nBreakpoints:\n  Compact  (< 600px)  — Top App Bar + Content + Bottom Nav Bar\n  Medium   (600–839px) — Nav Rail (left) + Top App Bar + Content",
   "slots": [
    "layout-content",
    "layout-header"
   ],
   "slotOptions": {},
   "options": {
    "layout": [
     "fixed-drawer",
     "no-header"
    ]
   },
   "flags": [],
   "variables": {
    "--layout-drawer-width": {
     "default": "15rem",
     "note": "240px — m3-nav-drawer 의 --drawer-width 와 같이 간다 (0.4.25)"
    },
    "--layout-rail-width": {
     "default": "5rem",
     "note": "80dp"
    },
    "--layout-bar-height": {
     "default": "5rem",
     "note": "80dp"
    },
    "--layout-header-height": {
     "default": "4rem",
     "note": "64dp"
    },
    "--layout-background": {
     "default": "var(--color-surface)"
    },
    "--layout-content-padding": {
     "default": "1.5rem"
    },
    "--layout-transition": {
     "default": "all var(--duration-normal) var(--ease-out)"
    },
    "--layout-drawer-display": {
     "default": "none"
    },
    "--layout-rail-display": {
     "default": "none"
    },
    "--layout-bar-display": {
     "default": "flex"
    },
    "--layout-main-margin-left": {
     "default": "0"
    },
    "--layout-main-padding-bottom": {
     "default": "var(--layout-bar-height)"
    },
    "--layout-header-display": {
     "default": "flex"
    },
    "--layout-header-menu-display": {
     "default": "flex"
    }
   },
   "usage": "<div class=\"m3-layout\">\n  <!-- Nav Drawer (Expanded에서 표시) -->\n  <nav class=\"m3-nav-drawer layout-drawer\">\n    <div class=\"drawer-header\">\n      <h2 class=\"drawer-headline\">메뉴</h2>\n    </div>\n    <div class=\"drawer-content\">\n      <a href=\"#\" class=\"drawer-item drawer-item-active\">\n        <i class=\"m3-icon icon:home\"></i>\n        <span class=\"drawer-label\">홈</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:search\"></i>\n        <span class=\"drawer-label\">검색</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:settings\"></i>\n        <span class=\"drawer-label\">설정</span>\n      </a>\n    </div>\n  </nav>\n\n  <!-- Nav Rail (Medium에서 표시) -->\n  <nav class=\"m3-nav-rail layout-rail\">\n    <div class=\"rail-header\">\n      <button class=\"m3-fab fab:small\"><i class=\"m3-icon icon:edit\"></i></button>\n    </div>\n    <div class=\"rail-items\">\n      <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n      <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n      <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n    </div>\n  </nav>\n\n  <!-- Main Content Area -->\n  <div class=\"layout-main\">\n    <header class=\"m3-top-app-bar layout-header\">\n      <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>\n      <h1 class=\"bar-title\">페이지 제목</h1>\n      <div class=\"bar-trailing\">\n        <button><i class=\"m3-icon icon:search\"></i></button>\n      </div>\n    </header>\n    <main class=\"layout-content\">\n      <h2>콘텐츠 영역</h2>\n      <p>페이지의 주요 콘텐츠가 여기에 들어갑니다.</p>\n    </main>\n  </div>\n\n  <!-- Nav Bar (Compact에서 표시) -->\n  <nav class=\"m3-nav-bar layout-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n    <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n    <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n  </nav>\n</div>"
  },
  {
   "name": "list",
   "class": "m3-list",
   "description": "목록. 항목(list-item)에 앞 아이콘·본문·뒤 요소 슬롯, 구분선, 크기 옵션.\nM3 spec: one-line 56dp, two-line 72dp, three-line 88dp\n16dp horizontal padding, on-surface text\n사용법:\n  <ul class=\"m3-list\">\n    <li class=\"list-item\">항목 1</li>",
   "slots": [
    "list-divider",
    "list-item"
   ],
   "slotOptions": {
    "list-divider": {
     "list-divider": [
      "full",
      "inset"
     ]
    }
   },
   "options": {
    "list-size": [
     "compact",
     "large"
    ]
   },
   "flags": [],
   "variables": {
    "--list-display": {
     "default": "flex"
    },
    "--list-flex-direction": {
     "default": "column"
    },
    "--list-background": {
     "default": "transparent"
    },
    "--list-padding": {
     "default": "0.5rem 0"
    },
    "--list-gap": {
     "default": "0"
    },
    "--list-margin": {
     "default": "0"
    },
    "--list-item-padding": {
     "default": "0.5rem 1rem"
    },
    "--list-item-min-height": {
     "default": "3rem"
    },
    "--list-item-color": {
     "default": "var(--color-text)"
    },
    "--list-item-font-size": {
     "default": "1rem"
    },
    "--list-item-font-weight": {
     "default": "400"
    },
    "--list-item-line-height": {
     "default": "1.5rem"
    },
    "--list-item-cursor": {
     "default": "default"
    },
    "--list-item-background": {
     "default": "transparent"
    },
    "--list-item-gap": {
     "default": "1rem"
    },
    "--list-item-border-radius": {
     "default": "0"
    },
    "--list-secondary-size": {
     "default": "0.875rem"
    },
    "--list-secondary-color": {
     "default": "var(--color-text-muted)"
    },
    "--list-secondary-line-height": {
     "default": "1.25rem"
    },
    "--list-leading-size": {
     "default": "1.5rem"
    },
    "--list-leading-color": {
     "default": "var(--color-text-muted)"
    },
    "--list-avatar-size": {
     "default": "2.5rem"
    },
    "--list-divider-color": {
     "default": "var(--color-border-subtle)"
    },
    "--list-divider-width": {
     "default": "0.0625rem"
    },
    "--list-divider-margin": {
     "default": "0"
    },
    "--list-divider-margin-left": {
     "default": "0"
    },
    "--list-divider-border": {
     "default": "none"
    },
    "--list-avatar-background": {
     "default": "var(--color-primary-subtle)"
    },
    "--list-avatar-color": {
     "default": "var(--color-primary)"
    },
    "--list-avatar-font-weight": {
     "default": "600"
    },
    "--list-avatar-font-size": {
     "default": "0.875rem"
    },
    "--list-avatar-border-radius": {
     "default": "50%"
    },
    "--list-state-hover-opacity": {
     "default": "0.08"
    },
    "--list-transition": {
     "default": "background-image var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<ul class=\"m3-list\">\n  <li class=\"list-item\">항목 1</li>\n  <li class=\"list-item\">항목 2</li>\n  <li class=\"list-item\">항목 3</li>\n</ul>"
  },
  {
   "name": "menu",
   "class": "m3-menu",
   "description": "드롭다운 메뉴. 버튼 아래 항목 목록, 구분선·아이콘.\nM3 spec: surface container, 8dp rounded, elevation level2\nMin 112dp, Max 280dp. Hidden by default, shown with menu-open.\n사용법:\n  <div class=\"m3-menu menu-open\">\n    <button class=\"menu-item\">",
   "slots": [
    "menu-divider",
    "menu-item"
   ],
   "slotOptions": {},
   "options": {},
   "flags": [
    "menu-open"
   ],
   "variables": {
    "--menu-background": {
     "default": "var(--color-surface)"
    },
    "--menu-border-radius": {
     "default": "0.25rem"
    },
    "--menu-box-shadow": {
     "default": "var(--shadow-md)"
    },
    "--menu-padding": {
     "default": "0.5rem 0"
    },
    "--menu-min-width": {
     "default": "7rem"
    },
    "--menu-max-width": {
     "default": "17.5rem"
    },
    "--menu-z-index": {
     "default": "var(--z-dropdown)"
    },
    "--menu-border": {
     "default": "none"
    },
    "--menu-color": {
     "default": "var(--color-text)"
    },
    "--menu-item-height": {
     "default": "3rem"
    },
    "--menu-item-padding": {
     "default": "0 0.75rem"
    },
    "--menu-item-color": {
     "default": "var(--color-text)"
    },
    "--menu-item-font-size": {
     "default": "0.875rem"
    },
    "--menu-item-gap": {
     "default": "0.75rem"
    },
    "--menu-item-border-radius": {
     "default": "0"
    },
    "--menu-item-background": {
     "default": "transparent"
    },
    "--menu-item-cursor": {
     "default": "pointer"
    },
    "--menu-item-icon-color": {
     "default": "var(--color-text)"
    },
    "--menu-item-icon-size": {
     "default": "1.5rem"
    },
    "--menu-divider-color": {
     "default": "var(--color-border-subtle)"
    },
    "--menu-divider-margin": {
     "default": "0.5rem 0"
    },
    "--menu-divider-height": {
     "default": "0.0625rem"
    },
    "--menu-state-hover-opacity": {
     "default": "0.08"
    },
    "--menu-state-focus-opacity": {
     "default": "0.12"
    },
    "--menu-state-layer-color": {
     "default": "var(--color-text)"
    },
    "--menu-item-disabled-opacity": {
     "default": "0.38"
    },
    "--menu-item-disabled-cursor": {
     "default": "default"
    },
    "--menu-transition": {
     "default": "opacity var(--duration-fast) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-menu menu-open\">\n  <button class=\"menu-item\">\n    <span class=\"menu-label\">복사</span>\n  </button>\n  <button class=\"menu-item\">\n    <span class=\"menu-label\">붙여넣기</span>\n  </button>\n  <button class=\"menu-item\">\n    <span class=\"menu-label\">삭제</span>\n  </button>\n</div>"
  },
  {
   "name": "nav-bar",
   "class": "m3-nav-bar",
   "description": "하단 내비 바. 모바일에서 3~5개 목적지.\nM3 spec: 80dp height, fixed bottom, 3-5 destinations, surface bg\n내부 아이템은 m3-deco 컴포넌트를 사용하여 icon+text 렌더링.\n사용법:\n  <nav class=\"m3-nav-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "nav-bar": [
     "elevated",
     "fixed"
    ],
    "nav-bar-color": [
     "surface-1",
     "surface-2"
    ]
   },
   "flags": [],
   "variables": {
    "--nav-bar-height": {
     "default": "5rem",
     "note": "80dp"
    },
    "--nav-bar-background": {
     "default": "var(--color-surface)"
    },
    "--nav-bar-border-top": {
     "default": "0.0625rem solid var(--color-border-subtle)"
    },
    "--nav-bar-padding": {
     "default": "0 0.5rem"
    },
    "--nav-bar-gap": {
     "default": "0"
    },
    "--nav-bar-box-shadow": {
     "default": "none"
    },
    "--nav-bar-color": {
     "default": "var(--color-text)"
    },
    "--nav-bar-position": {
     "default": "static"
    },
    "--nav-bar-bottom": {
     "default": "auto"
    },
    "--nav-bar-left": {
     "default": "auto"
    },
    "--nav-bar-right": {
     "default": "auto"
    },
    "--nav-bar-z-index": {
     "default": "auto"
    },
    "--nav-bar-transition": {
     "default": "box-shadow var(--duration-normal) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-layout\">\n  <!-- Nav Drawer (Expanded에서 표시) -->\n  <nav class=\"m3-nav-drawer layout-drawer\">\n    <div class=\"drawer-header\">\n      <h2 class=\"drawer-headline\">메뉴</h2>\n    </div>\n    <div class=\"drawer-content\">\n      <a href=\"#\" class=\"drawer-item drawer-item-active\">\n        <i class=\"m3-icon icon:home\"></i>\n        <span class=\"drawer-label\">홈</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:search\"></i>\n        <span class=\"drawer-label\">검색</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:settings\"></i>\n        <span class=\"drawer-label\">설정</span>\n      </a>\n    </div>\n  </nav>\n\n  <!-- Nav Rail (Medium에서 표시) -->\n  <nav class=\"m3-nav-rail layout-rail\">\n    <div class=\"rail-header\">\n      <button class=\"m3-fab fab:small\"><i class=\"m3-icon icon:edit\"></i></button>\n    </div>\n    <div class=\"rail-items\">\n      <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n      <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n      <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n    </div>\n  </nav>\n\n  <!-- Main Content Area -->\n  <div class=\"layout-main\">\n    <header class=\"m3-top-app-bar layout-header\">\n      <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>\n      <h1 class=\"bar-title\">페이지 제목</h1>\n      <div class=\"bar-trailing\">\n        <button><i class=\"m3-icon icon:search\"></i></button>\n      </div>\n    </header>\n    <main class=\"layout-content\">\n      <h2>콘텐츠 영역</h2>\n      <p>페이지의 주요 콘텐츠가 여기에 들어갑니다.</p>\n    </main>\n  </div>\n\n  <!-- Nav Bar (Compact에서 표시) -->\n  <nav class=\"m3-nav-bar layout-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n    <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n    <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n  </nav>\n</div>"
  },
  {
   "name": "nav-drawer",
   "class": "m3-nav-drawer",
   "description": "내비 드로어. 왼쪽 세로 목록, 머리·구분선·항목.\nM3 spec: 360dp width, surface bg, list-like items\nTypes: standard (inline, default), modal (overlay with scrim)\n사용법 (standard):\n  <nav class=\"m3-nav-drawer\">\n    <div class=\"drawer-header\">",
   "slots": [
    "drawer-content",
    "drawer-header",
    "drawer-headline",
    "drawer-item",
    "drawer-section-header"
   ],
   "slotOptions": {},
   "options": {
    "drawer": [
     "modal"
    ]
   },
   "flags": [],
   "variables": {
    "--drawer-width": {
     "default": "15rem",
     "note": "240px — 데스크톱 관리자 화면 기준. M3 의 360dp 는 모바일 모달용이라 너무 넓다 (0.4.25)"
    },
    "--drawer-background": {
     "default": "var(--color-surface)"
    },
    "--drawer-border-right": {
     "default": "0.0625rem solid var(--color-border-subtle)"
    },
    "--drawer-padding": {
     "default": "0.5rem 0"
    },
    "--drawer-box-shadow": {
     "default": "none"
    },
    "--drawer-color": {
     "default": "var(--color-text)"
    },
    "--drawer-z-index": {
     "default": "var(--z-fixed)"
    },
    "--drawer-headline-font-size": {
     "default": "0.875rem"
    },
    "--drawer-headline-font-weight": {
     "default": "600"
    },
    "--drawer-headline-color": {
     "default": "var(--color-text-muted)"
    },
    "--drawer-headline-padding": {
     "default": "0.75rem 1rem 0.5rem"
    },
    "--drawer-headline-letter-spacing": {
     "default": "0.0625rem"
    },
    "--drawer-content-padding": {
     "default": "0 0.75rem"
    },
    "--drawer-content-gap": {
     "default": "0.0625rem"
    },
    "--drawer-item-height": {
     "default": "2.5rem",
     "note": "40px — 본문 글자(14px)와 같은 리듬"
    },
    "--drawer-item-padding": {
     "default": "0 0.75rem"
    },
    "--drawer-item-gap": {
     "default": "0.625rem"
    },
    "--drawer-item-color": {
     "default": "var(--color-text)"
    },
    "--drawer-item-font-size": {
     "default": "0.875rem"
    },
    "--drawer-item-font-weight": {
     "default": "500"
    },
    "--drawer-item-line-height": {
     "default": "1.25rem"
    },
    "--drawer-item-border-radius": {
     "default": "var(--radius-2)",
     "note": "알약이 아니라 살짝 둥근 모서리 — 넓은 알약 배경이 화면을 눌렀다"
    },
    "--drawer-item-background": {
     "default": "transparent"
    },
    "--drawer-item-cursor": {
     "default": "pointer"
    },
    "--drawer-item-icon-size": {
     "default": "1.25rem"
    },
    "--drawer-item-icon-color": {
     "default": "var(--color-text-muted)"
    },
    "--drawer-item-active-background": {
     "default": "var(--color-primary-subtle)"
    },
    "--drawer-item-active-color": {
     "default": "var(--color-primary)"
    },
    "--drawer-item-active-icon-color": {
     "default": "var(--color-primary)"
    },
    "--drawer-item-active-font-weight": {
     "default": "600"
    },
    "--drawer-section-header-font-size": {
     "default": "0.6875rem"
    },
    "--drawer-section-header-font-weight": {
     "default": "600"
    },
    "--drawer-section-header-color": {
     "default": "var(--color-text-muted)"
    },
    "--drawer-section-header-padding": {
     "default": "1rem 0.75rem 0.25rem"
    },
    "--drawer-section-header-letter-spacing": {
     "default": "0.04rem"
    },
    "--drawer-state-hover-opacity": {
     "default": "0.08"
    },
    "--drawer-scrim-background": {
     "default": "var(--color-scrim)"
    },
    "--drawer-transition": {
     "default": "transform var(--duration-normal) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-layout\">\n  <!-- Nav Drawer (Expanded에서 표시) -->\n  <nav class=\"m3-nav-drawer layout-drawer\">\n    <div class=\"drawer-header\">\n      <h2 class=\"drawer-headline\">메뉴</h2>\n    </div>\n    <div class=\"drawer-content\">\n      <a href=\"#\" class=\"drawer-item drawer-item-active\">\n        <i class=\"m3-icon icon:home\"></i>\n        <span class=\"drawer-label\">홈</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:search\"></i>\n        <span class=\"drawer-label\">검색</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:settings\"></i>\n        <span class=\"drawer-label\">설정</span>\n      </a>\n    </div>\n  </nav>\n\n  <!-- Nav Rail (Medium에서 표시) -->\n  <nav class=\"m3-nav-rail layout-rail\">\n    <div class=\"rail-header\">\n      <button class=\"m3-fab fab:small\"><i class=\"m3-icon icon:edit\"></i></button>\n    </div>\n    <div class=\"rail-items\">\n      <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n      <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n      <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n    </div>\n  </nav>\n\n  <!-- Main Content Area -->\n  <div class=\"layout-main\">\n    <header class=\"m3-top-app-bar layout-header\">\n      <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>\n      <h1 class=\"bar-title\">페이지 제목</h1>\n      <div class=\"bar-trailing\">\n        <button><i class=\"m3-icon icon:search\"></i></button>\n      </div>\n    </header>\n    <main class=\"layout-content\">\n      <h2>콘텐츠 영역</h2>\n      <p>페이지의 주요 콘텐츠가 여기에 들어갑니다.</p>\n    </main>\n  </div>\n\n  <!-- Nav Bar (Compact에서 표시) -->\n  <nav class=\"m3-nav-bar layout-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n    <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n    <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n  </nav>\n</div>"
  },
  {
   "name": "nav-rail",
   "class": "m3-nav-rail",
   "description": "내비 레일. 태블릿 폭의 왼쪽 세로 아이콘 목록.\nM3 spec: 80dp width, vertical, fixed left side, optional FAB at top\n내부 아이템은 m3-deco 컴포넌트를 사용하여 icon+text 렌더링.\n사용법:\n  <nav class=\"m3-nav-rail\">\n    <div class=\"rail-header\">",
   "slots": [
    "rail-header",
    "rail-items"
   ],
   "slotOptions": {},
   "options": {
    "rail": [
     "elevated",
     "fixed"
    ],
    "rail-align": [
     "center",
     "end"
    ],
    "rail-color": [
     "surface-1",
     "surface-2"
    ]
   },
   "flags": [],
   "variables": {
    "--rail-width": {
     "default": "5rem",
     "note": "80dp"
    },
    "--rail-background": {
     "default": "var(--color-surface)"
    },
    "--rail-border-right": {
     "default": "0.0625rem solid var(--color-border-subtle)"
    },
    "--rail-padding": {
     "default": "0.75rem 0"
    },
    "--rail-box-shadow": {
     "default": "none"
    },
    "--rail-color": {
     "default": "var(--color-text)"
    },
    "--rail-position": {
     "default": "static"
    },
    "--rail-top": {
     "default": "auto"
    },
    "--rail-left": {
     "default": "auto"
    },
    "--rail-bottom": {
     "default": "auto"
    },
    "--rail-z-index": {
     "default": "auto"
    },
    "--rail-header-padding": {
     "default": "0.75rem 0 1rem"
    },
    "--rail-header-gap": {
     "default": "0.75rem"
    },
    "--rail-items-gap": {
     "default": "0.75rem",
     "note": "12dp"
    },
    "--rail-items-padding": {
     "default": "0"
    },
    "--rail-transition": {
     "default": "box-shadow var(--duration-normal) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-layout\">\n  <!-- Nav Drawer (Expanded에서 표시) -->\n  <nav class=\"m3-nav-drawer layout-drawer\">\n    <div class=\"drawer-header\">\n      <h2 class=\"drawer-headline\">메뉴</h2>\n    </div>\n    <div class=\"drawer-content\">\n      <a href=\"#\" class=\"drawer-item drawer-item-active\">\n        <i class=\"m3-icon icon:home\"></i>\n        <span class=\"drawer-label\">홈</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:search\"></i>\n        <span class=\"drawer-label\">검색</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:settings\"></i>\n        <span class=\"drawer-label\">설정</span>\n      </a>\n    </div>\n  </nav>\n\n  <!-- Nav Rail (Medium에서 표시) -->\n  <nav class=\"m3-nav-rail layout-rail\">\n    <div class=\"rail-header\">\n      <button class=\"m3-fab fab:small\"><i class=\"m3-icon icon:edit\"></i></button>\n    </div>\n    <div class=\"rail-items\">\n      <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n      <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n      <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n    </div>\n  </nav>\n\n  <!-- Main Content Area -->\n  <div class=\"layout-main\">\n    <header class=\"m3-top-app-bar layout-header\">\n      <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>\n      <h1 class=\"bar-title\">페이지 제목</h1>\n      <div class=\"bar-trailing\">\n        <button><i class=\"m3-icon icon:search\"></i></button>\n      </div>\n    </header>\n    <main class=\"layout-content\">\n      <h2>콘텐츠 영역</h2>\n      <p>페이지의 주요 콘텐츠가 여기에 들어갑니다.</p>\n    </main>\n  </div>\n\n  <!-- Nav Bar (Compact에서 표시) -->\n  <nav class=\"m3-nav-bar layout-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n    <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n    <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n  </nav>\n</div>"
  },
  {
   "name": "pager",
   "class": "m3-pager",
   "description": "페이지네이션. 이전 · 1 2 3 · 다음. 현재는 aria-current, 비활성은 aria-disabled.\nM3 스펙에는 페이지네이션 컴포넌트가 없다. 목록 아래 \"이전 · 1 2 3 · 다음\" 을 표준화한다.\n사용법:\n  <nav class=\"m3-pager\" aria-label=\"페이지\">\n    <a class=\"pager-item pager-prev\" href=\"…\" aria-disabled=\"true\">이전</a>\n    <a class=\"pager-item\" href=\"…\" aria-current=\"page\">1</a>",
   "slots": [
    "pager-ellipsis",
    "pager-item"
   ],
   "slotOptions": {},
   "options": {
    "pager": [
     "text"
    ],
    "pager-align": [
     "center",
     "end",
     "start"
    ],
    "pager-size": [
     "lg",
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--pager-gap": {
     "default": "0.375rem"
    },
    "--pager-justify": {
     "default": "center"
    },
    "--pager-margin": {
     "default": "0"
    },
    "--pager-item-height": {
     "default": "2.25rem",
     "note": "36px"
    },
    "--pager-item-min-width": {
     "default": "var(--pager-item-height)"
    },
    "--pager-item-padding": {
     "default": "0 0.75rem"
    },
    "--pager-item-font-size": {
     "default": "0.875rem"
    },
    "--pager-item-font-weight": {
     "default": "var(--font-weight-medium)"
    },
    "--pager-item-border-radius": {
     "default": "var(--radius-3)"
    },
    "--pager-item-border-width": {
     "default": "0.0625rem"
    },
    "--pager-item-border-color": {
     "default": "var(--color-border)"
    },
    "--pager-item-background": {
     "default": "var(--color-surface)"
    },
    "--pager-item-color": {
     "default": "var(--color-text)"
    },
    "--pager-item-hover-background": {
     "default": "var(--color-surface-1)"
    },
    "--pager-current-background": {
     "default": "var(--color-primary)",
     "note": "0.4.17: 글자색(검정) → primary. 다른 부품과 같은 강조색"
    },
    "--pager-current-color": {
     "default": "var(--color-on-primary)"
    },
    "--pager-current-border-color": {
     "default": "var(--color-primary)"
    },
    "--pager-current-font-weight": {
     "default": "var(--font-weight-bold)"
    },
    "--pager-disabled-color": {
     "default": "var(--color-text-subtle)"
    },
    "--pager-disabled-opacity": {
     "default": "1"
    },
    "--pager-transition": {
     "default": "background-color var(--duration-fast) var(--ease-in-out), color var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<nav class=\"m3-pager\" aria-label=\"페이지\">\n  <a class=\"pager-item pager-prev\" href=\"#\" aria-disabled=\"true\">이전</a>\n  <a class=\"pager-item\" href=\"#\" aria-current=\"page\">1</a>\n  <a class=\"pager-item\" href=\"#\">2</a>\n  <a class=\"pager-item\" href=\"#\">3</a>\n  <span class=\"pager-ellipsis\">…</span>\n  <a class=\"pager-item\" href=\"#\">12</a>\n  <a class=\"pager-item pager-next\" href=\"#\">다음</a>\n</nav>"
  },
  {
   "name": "progress",
   "class": "m3-progress",
   "description": "진행 표시. 가로 막대 · 원형, 확정·불확정.\nType: linear (default) | circular\nM3 spec: primary track color, 4dp height (linear), 48dp (circular)\n사용법:\n  <div class=\"m3-progress\" style=\"--progress-value: 60%;\"></div>\n  <div class=\"m3-progress progress:indeterminate\"></div>",
   "slots": [],
   "slotOptions": {},
   "options": {
    "progress": [
     "circular",
     "indeterminate"
    ],
    "progress-color": [
     "danger",
     "primary",
     "secondary",
     "success",
     "tertiary"
    ]
   },
   "flags": [],
   "variables": {
    "--progress-height": {
     "default": "0.25rem"
    },
    "--progress-width": {
     "default": "100%"
    },
    "--progress-track-color": {
     "default": "var(--color-primary-subtle)"
    },
    "--progress-indicator-color": {
     "default": "var(--color-primary)"
    },
    "--progress-border-radius": {
     "default": "var(--radius-full)"
    },
    "--progress-value": {
     "default": "0%"
    },
    "--progress-circular-size": {
     "default": "3rem"
    },
    "--progress-circular-stroke": {
     "default": "0.25rem"
    },
    "--progress-circular-border-radius": {
     "default": "50%"
    }
   },
   "usage": "<div class=\"m3-progress\" style=\"--progress-value: 40%;\"></div>\n<div class=\"m3-progress\" style=\"--progress-value: 75%;\"></div>\n<div class=\"m3-progress\" style=\"--progress-value: 100%;\"></div>"
  },
  {
   "name": "radio",
   "class": "m3-radio",
   "description": "라디오. 레이블과 한 줄, 여러 개면 form-group 으로 묶는다.\nM3 spec: 20dp outer ring, 10dp inner dot, primary when selected\nVariable API: --radio-* 변수로 커스텀 가능",
   "slots": [],
   "slotOptions": {},
   "options": {
    "radio-color": [
     "danger",
     "primary",
     "secondary",
     "tertiary"
    ],
    "radio-state": [
     "active",
     "focus",
     "hover"
    ]
   },
   "flags": [],
   "variables": {
    "--radio-display": {
     "default": "inline-flex"
    },
    "--radio-align-items": {
     "default": "center"
    },
    "--radio-cursor": {
     "default": "pointer"
    },
    "--radio-gap": {
     "default": "0.75rem"
    },
    "--radio-size": {
     "default": "1.25rem"
    },
    "--radio-touch-size": {
     "default": "2.5rem"
    },
    "--radio-stroke-width": {
     "default": "0.125rem"
    },
    "--radio-border-color": {
     "default": "var(--color-text-muted)"
    },
    "--radio-background": {
     "default": "transparent"
    },
    "--radio-dot-size": {
     "default": "0.625rem"
    },
    "--radio-dot-color": {
     "default": "var(--color-primary)"
    },
    "--radio-dot-opacity": {
     "default": "0"
    },
    "--radio-selected-color": {
     "default": "var(--color-primary)"
    },
    "--radio-state-opacity": {
     "default": "0"
    },
    "--radio-state-hover-opacity": {
     "default": "0.08"
    },
    "--radio-state-pressed-opacity": {
     "default": "0.12"
    },
    "--radio-state-size": {
     "default": "0.625rem"
    },
    "--radio-label-size": {
     "default": "0.875rem"
    },
    "--radio-label-color": {
     "default": "var(--color-text)"
    },
    "--radio-outline": {
     "default": "none"
    },
    "--radio-outline-offset": {
     "default": "0"
    },
    "--radio-box-shadow": {
     "default": "none"
    },
    "--radio-transition": {
     "default": "all 180ms var(--ease-in-out)"
    }
   },
   "usage": "<label class=\"m3-radio\">\n  <input type=\"radio\" name=\"option\" value=\"1\">\n  <span>옵션 1</span>\n</label>\n\n<label class=\"m3-radio\">\n  <input type=\"radio\" name=\"option\" value=\"2\">\n  <span>옵션 2</span>\n</label>\n\n<label class=\"m3-radio\">\n  <input type=\"radio\" name=\"option\" value=\"3\" checked>\n  <span>옵션 3 (선택됨)</span>\n</label>"
  },
  {
   "name": "section",
   "class": "m3-section",
   "description": "제목 + 콘텐츠 블록을 묶는 절. 문장·목록·폼·표 어느 것이든 \"제목이 있는 한 덩어리\"가 섹션이다.\n상세 페이지의 \"상세 설명 / 영양 정보 / 유의 사항\", 소개 페이지의 절, 설정 화면의 묶음, 메뉴 링크 묶음(nav)이 모두 이것이다.\n제목은 디자인상 안 보여도 HTML 에는 둔다 — 가릴 때는 newtil-css 의 display:none 을 제목에 준다. M3 스펙에는 없다.\n사용법 — 제목(section-title) + 콘텐츠 블록 하나. 블록은 section-body 로 감싸거나 바로 놓는다:\n  <section class=\"m3-section section:text\">               문장 섹션\n    <h2 class=\"section-title\">상세 설명</h2>",
   "slots": [
    "section-body",
    "section-caption",
    "section-title"
   ],
   "slotOptions": {},
   "options": {
    "section": [
     "card",
     "divided",
     "form",
     "list",
     "nav",
     "table",
     "text"
    ],
    "section-size": [
     "lg",
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--section-padding": {
     "default": "var(--space-8) 0"
    },
    "--section-gap": {
     "default": "var(--space-4)"
    },
    "--section-border": {
     "default": "none"
    },
    "--section-background": {
     "default": "transparent"
    },
    "--section-border-radius": {
     "default": "0"
    },
    "--section-title-size": {
     "default": "var(--font-size-heading-sm)"
    },
    "--section-title-weight": {
     "default": "var(--font-weight-bold)"
    },
    "--section-title-color": {
     "default": "var(--color-text)"
    },
    "--section-caption-size": {
     "default": "var(--font-size-caption)"
    },
    "--section-caption-color": {
     "default": "var(--color-text-muted)"
    },
    "--section-body-size": {
     "default": "var(--font-size-body)"
    },
    "--section-body-line-height": {
     "default": "var(--line-height-loose)"
    },
    "--section-body-color": {
     "default": "var(--color-text-muted)"
    },
    "--section-body-gap": {
     "default": "var(--space-4)"
    }
   },
   "usage": "<section class=\"m3-section section:divided\">\n  <h2 class=\"section-title\">상세 설명</h2>\n  <div class=\"section-body\">\n    <p>브라질과 콜롬비아 원두를 블렌딩한 하우스 블렌드 에스프레소를 사용합니다.</p>\n    <p>HOT 은 머그로, ICE 는 얼음과 함께 투명 컵으로 제공됩니다.</p>\n  </div>\n</section>\n<section class=\"m3-section section:divided\">\n  <h2 class=\"section-title\">유의 사항</h2>\n  <p class=\"section-caption\">2026년 9월 기준</p>\n  <div class=\"section-body\">\n    <ul><li>우유가 포함된 제품입니다.</li><li>주문 후 30분 이내 픽업해 주세요.</li></ul>\n  </div>\n</section>"
  },
  {
   "name": "site",
   "class": "m3-site",
   "description": "공개 사이트 셸(방). 상단 헤더(로고·내비·동작) · 가운데 컨테이너 본문(사이드 옵션) · 푸터.\n공개 사이트의 \"방\": 상단 헤더 · 본문 · 푸터가 세로로 흐르고 본문은 가운데 컨테이너 안에 놓인다.\nm3-layout(드로어 앱 셸)과 다른 종류의 방이다. M3 스펙에는 없다.\n사용법:\n  <div class=\"m3-site\">\n    <header class=\"site-header\">",
   "slots": [
    "site-actions",
    "site-aside",
    "site-body",
    "site-container",
    "site-content",
    "site-copyright",
    "site-footer",
    "site-footer-inner",
    "site-footer-links",
    "site-header",
    "site-header-inner",
    "site-logo",
    "site-main",
    "site-nav"
   ],
   "slotOptions": {
    "site-body": {
     "site-body": [
      "aside",
      "aside-end"
     ]
    }
   },
   "options": {
    "site-width": [
     "default",
     "narrow",
     "wide"
    ],
    "site-aside": [
     "lg",
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--site-max-width": {
     "default": "70rem"
    },
    "--site-gutter": {
     "default": "var(--space-7)",
     "note": "24px"
    },
    "--site-background": {
     "default": "var(--color-surface-1)"
    },
    "--site-header-height": {
     "default": "4rem",
     "note": "64px"
    },
    "--site-header-background": {
     "default": "var(--color-surface)"
    },
    "--site-header-border": {
     "default": "0.0625rem solid var(--color-border)"
    },
    "--site-header-gap": {
     "default": "var(--space-8)"
    },
    "--site-logo-size": {
     "default": "var(--font-size-heading-sm)"
    },
    "--site-logo-weight": {
     "default": "var(--font-weight-bold)"
    },
    "--site-logo-color": {
     "default": "var(--color-primary)"
    },
    "--site-nav-gap": {
     "default": "var(--space-6)"
    },
    "--site-nav-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--site-nav-color": {
     "default": "var(--color-text-muted)"
    },
    "--site-nav-color-active": {
     "default": "var(--color-text)"
    },
    "--site-nav-weight-active": {
     "default": "var(--font-weight-semibold)"
    },
    "--site-actions-gap": {
     "default": "var(--space-3)"
    },
    "--site-main-padding-top": {
     "default": "var(--space-9)"
    },
    "--site-main-padding-bottom": {
     "default": "var(--space-11)"
    },
    "--site-aside-width": {
     "default": "12.5rem",
     "note": "200px"
    },
    "--site-body-gap": {
     "default": "var(--space-8)"
    },
    "--site-aside-gap": {
     "default": "var(--space-5)"
    },
    "--site-footer-padding": {
     "default": "var(--space-8) 0"
    },
    "--site-footer-border": {
     "default": "0.0625rem solid var(--color-border)"
    },
    "--site-footer-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--site-footer-color": {
     "default": "var(--color-text-muted)"
    },
    "--site-footer-links-gap": {
     "default": "var(--space-5)"
    }
   },
   "usage": "<div class=\"m3-site\" style=\"min-height: 22rem;\">\n  <header class=\"site-header\">\n    <div class=\"site-container site-header-inner\">\n      <a class=\"site-logo\" href=\"#\">NCafe</a>\n      <nav class=\"site-nav\"><a href=\"#\" aria-current=\"page\">메뉴</a><a href=\"#\">소개</a><a href=\"#\">장바구니</a></nav>\n      <div class=\"site-actions\"><button class=\"m3-btn btn:outlined btn-size:xs\">로그인</button><button class=\"m3-btn btn-size:xs\">회원가입</button></div>\n    </div>\n  </header>\n  <main class=\"site-main\">\n    <div class=\"site-container\">\n      <div class=\"site-body site-body:aside\">\n        <aside class=\"site-aside\"><div class=\"m3-card card:outlined card-padding:self\">사이드</div></aside>\n        <div class=\"site-content\"><div class=\"m3-card card:outlined card-padding:self\">본문</div></div>\n      </div>\n    </div>\n  </main>\n  <footer class=\"site-footer\">\n    <div class=\"site-container site-footer-inner\">\n      <p class=\"site-copyright\">© 2026 NCafe</p>\n      <nav class=\"site-footer-links\"><a href=\"#\">소개</a><a href=\"#\">이용약관</a></nav>\n    </div>\n  </footer>\n</div>"
  },
  {
   "name": "slider",
   "class": "m3-slider",
   "description": "슬라이더. 범위 안에서 값 하나, 눈금 옵션.\nM3 spec: Track 4dp height, handle 20dp, active track uses primary\nTypes: continuous (default), discrete (with tick marks)\n사용법:\n  <div class=\"m3-slider\">\n    <input type=\"range\" min=\"0\" max=\"100\" value=\"50\">",
   "slots": [],
   "slotOptions": {},
   "options": {
    "slider": [
     "discrete"
    ],
    "slider-color": [
     "primary",
     "secondary",
     "tertiary"
    ]
   },
   "flags": [],
   "variables": {
    "--slider-width": {
     "default": "100%"
    },
    "--slider-padding": {
     "default": "0.5rem 0"
    },
    "--slider-track-height": {
     "default": "0.25rem"
    },
    "--slider-track-color": {
     "default": "var(--color-primary-subtle)"
    },
    "--slider-track-active-color": {
     "default": "var(--color-primary)"
    },
    "--slider-track-border-radius": {
     "default": "var(--radius-full)"
    },
    "--slider-handle-size": {
     "default": "1.25rem"
    },
    "--slider-handle-color": {
     "default": "var(--color-primary)"
    },
    "--slider-handle-border-radius": {
     "default": "var(--radius-full)"
    },
    "--slider-handle-shadow": {
     "default": "var(--shadow-sm)"
    },
    "--slider-handle-border": {
     "default": "none"
    },
    "--slider-state-hover-opacity": {
     "default": "0.08"
    },
    "--slider-state-focus-opacity": {
     "default": "0.12"
    },
    "--slider-state-layer-color": {
     "default": "var(--color-primary)"
    },
    "--slider-state-layer-size": {
     "default": "2.5rem"
    },
    "--slider-disabled-track-color": {
     "default": "color-mix(in srgb, var(--color-text) 12%, transparent)"
    },
    "--slider-disabled-active-color": {
     "default": "color-mix(in srgb, var(--color-text) 38%, transparent)"
    },
    "--slider-disabled-handle-color": {
     "default": "color-mix(in srgb, var(--color-text) 38%, transparent)"
    },
    "--slider-disabled-cursor": {
     "default": "default"
    },
    "--slider-transition": {
     "default": "box-shadow var(--duration-fast) var(--ease-in-out)"
    },
    "--slider-tick-size": {
     "default": "0.125rem"
    },
    "--slider-tick-color": {
     "default": "var(--color-on-primary)"
    },
    "--slider-tick-inactive-color": {
     "default": "var(--color-primary-subtle)"
    }
   },
   "usage": "<div class=\"m3-slider\">\n  <input type=\"range\" min=\"0\" max=\"100\" value=\"50\">\n</div>"
  },
  {
   "name": "snackbar",
   "class": "m3-snackbar",
   "description": "스낵바. 화면 아래 짧은 알림과 동작 하나.\nM3 spec: inverse-surface bg, inverse-on-surface text, 48dp min height\nPosition: bottom center, auto-dismiss\n사용법:\n  <div class=\"m3-snackbar snackbar-open\">\n    <span class=\"snackbar-text\">파일이 저장되었습니다</span>",
   "slots": [
    "snackbar-action",
    "snackbar-close",
    "snackbar-text"
   ],
   "slotOptions": {},
   "options": {
    "snackbar-color": [
     "danger",
     "success",
     "warning"
    ]
   },
   "flags": [
    "snackbar-open"
   ],
   "variables": {
    "--snackbar-background": {
     "default": "var(--color-surface-inverse)"
    },
    "--snackbar-color": {
     "default": "var(--color-text-inverse)"
    },
    "--snackbar-border-radius": {
     "default": "0.25rem"
    },
    "--snackbar-padding": {
     "default": "0 0.5rem 0 1rem"
    },
    "--snackbar-min-height": {
     "default": "3rem"
    },
    "--snackbar-max-width": {
     "default": "35rem"
    },
    "--snackbar-box-shadow": {
     "default": "var(--shadow-md)"
    },
    "--snackbar-z-index": {
     "default": "var(--z-toast)"
    },
    "--snackbar-bottom": {
     "default": "1.5rem"
    },
    "--snackbar-left": {
     "default": "50%"
    },
    "--snackbar-transform": {
     "default": "translateX(-50%)"
    },
    "--snackbar-gap": {
     "default": "0.5rem"
    },
    "--snackbar-font-size": {
     "default": "0.875rem"
    },
    "--snackbar-line-height": {
     "default": "1.25rem"
    },
    "--snackbar-action-color": {
     "default": "var(--color-primary-subtle)"
    },
    "--snackbar-action-font-weight": {
     "default": "var(--font-weight-medium)"
    },
    "--snackbar-action-padding": {
     "default": "0.5rem"
    },
    "--snackbar-action-border-radius": {
     "default": "0.25rem"
    },
    "--snackbar-action-hover-opacity": {
     "default": "0.08"
    },
    "--snackbar-close-padding": {
     "default": "0.5rem"
    },
    "--snackbar-close-border-radius": {
     "default": "50%"
    },
    "--snackbar-text-padding": {
     "default": "0.875rem 0"
    }
   },
   "usage": "<div class=\"m3-snackbar snackbar-open\">\n  <span class=\"snackbar-text\">파일이 저장되었습니다</span>\n</div>"
  },
  {
   "name": "stepper",
   "class": "m3-stepper",
   "description": "수량 −/＋ 입력. 한 테두리 안에 빼기 · 숫자 · 더하기.\n수량 −/＋ 입력. 장바구니·상세 페이지의 \"가구\" 다. M3 스펙에는 없다.\n한 테두리 안에 [빼기][숫자][더하기] 가 붙어 있는 모양이 기본이고, 값 바꾸는 동작은 앱이 맡는다.\n사용법:\n  <div class=\"m3-stepper\" role=\"group\" aria-label=\"수량\">\n    <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 감소\"><i class=\"m3-icon icon:remove\"></i></button>",
   "slots": [
    "stepper-btn",
    "stepper-input"
   ],
   "slotOptions": {},
   "options": {
    "stepper": [
     "outlined",
     "separated"
    ],
    "stepper-size": [
     "lg",
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--stepper-height": {
     "default": "2.125rem",
     "note": "34px"
    },
    "--stepper-btn-width": {
     "default": "2rem",
     "note": "32px"
    },
    "--stepper-input-width": {
     "default": "2.75rem",
     "note": "44px"
    },
    "--stepper-gap": {
     "default": "0"
    },
    "--stepper-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--stepper-font-weight": {
     "default": "var(--font-weight-semibold)"
    },
    "--stepper-icon-size": {
     "default": "1rem"
    },
    "--stepper-border-width": {
     "default": "0.0625rem"
    },
    "--stepper-border-color": {
     "default": "var(--color-border)"
    },
    "--stepper-border-radius": {
     "default": "var(--radius-2)"
    },
    "--stepper-background": {
     "default": "var(--color-surface)"
    },
    "--stepper-btn-background": {
     "default": "var(--color-surface)"
    },
    "--stepper-btn-hover-background": {
     "default": "var(--color-surface-1)"
    },
    "--stepper-btn-color": {
     "default": "var(--color-text)"
    },
    "--stepper-input-color": {
     "default": "var(--color-text)"
    },
    "--stepper-divider": {
     "default": "var(--stepper-border-width) solid var(--stepper-border-color)"
    },
    "--stepper-disabled-opacity": {
     "default": "0.38"
    }
   },
   "usage": "<div class=\"m3-stepper\" role=\"group\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 감소\"><i class=\"m3-icon icon:remove\"></i></button>\n  <input class=\"stepper-input\" type=\"number\" value=\"1\" min=\"1\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 증가\"><i class=\"m3-icon icon:add\"></i></button>\n</div>\n<div class=\"m3-stepper stepper-size:lg\" role=\"group\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 감소\"><i class=\"m3-icon icon:remove\"></i></button>\n  <input class=\"stepper-input\" type=\"number\" value=\"2\" min=\"1\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 증가\"><i class=\"m3-icon icon:add\"></i></button>\n</div>\n<div class=\"m3-stepper stepper:separated\" role=\"group\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 감소\"><i class=\"m3-icon icon:remove\"></i></button>\n  <input class=\"stepper-input\" type=\"number\" value=\"3\" min=\"1\" aria-label=\"수량\">\n  <button type=\"button\" class=\"stepper-btn\" aria-label=\"수량 증가\"><i class=\"m3-icon icon:add\"></i></button>\n</div>"
  },
  {
   "name": "switch",
   "class": "m3-switch",
   "description": "스위치. 켜짐/꺼짐 토글, 레이블.\nM3 spec: track 52×32dp, handle 16dp(off)/24dp(on)/28dp(pressed)\nVariable API: --switch-* 변수로 커스텀 가능\n사용법:\n  <label class=\"m3-switch\">\n    <input type=\"checkbox\">",
   "slots": [
    "switch-label"
   ],
   "slotOptions": {},
   "options": {
    "switch-color": [
     "danger",
     "primary",
     "secondary",
     "success",
     "tertiary"
    ],
    "switch-state": [
     "checked",
     "disabled",
     "focused",
     "hovered"
    ]
   },
   "flags": [],
   "variables": {
    "--switch-display": {
     "default": "inline-flex"
    },
    "--switch-align-items": {
     "default": "center"
    },
    "--switch-cursor": {
     "default": "pointer"
    },
    "--switch-gap": {
     "default": "0.75rem"
    },
    "--switch-track-width": {
     "default": "3.25rem"
    },
    "--switch-track-height": {
     "default": "2rem"
    },
    "--switch-track-radius": {
     "default": "var(--radius-full)"
    },
    "--switch-track-color": {
     "default": "var(--color-surface-2)"
    },
    "--switch-track-border": {
     "default": "0.125rem solid var(--color-border-strong)"
    },
    "--switch-track-color-checked": {
     "default": "var(--color-primary)"
    },
    "--switch-track-border-checked": {
     "default": "0.125rem solid var(--color-primary)"
    },
    "--switch-handle-size": {
     "default": "1rem"
    },
    "--switch-handle-size-checked": {
     "default": "1.5rem"
    },
    "--switch-handle-size-pressed": {
     "default": "1.75rem"
    },
    "--switch-handle-radius": {
     "default": "var(--radius-full)"
    },
    "--switch-handle-color": {
     "default": "var(--color-border-strong)"
    },
    "--switch-handle-color-checked": {
     "default": "var(--color-on-primary)"
    },
    "--switch-handle-offset": {
     "default": "0.375rem"
    },
    "--switch-handle-shadow": {
     "default": "none"
    },
    "--switch-state-size": {
     "default": "2.5rem"
    },
    "--switch-state-opacity": {
     "default": "0"
    },
    "--switch-label-size": {
     "default": "0.875rem"
    },
    "--switch-label-color": {
     "default": "var(--color-text)"
    },
    "--switch-transition": {
     "default": "all var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<label class=\"m3-switch\">\n  <input type=\"checkbox\">\n  <span class=\"switch-label\">Wi-Fi</span>\n</label>\n\n<!-- 켜짐 상태 -->\n<label class=\"m3-switch\">\n  <input type=\"checkbox\" checked>\n  <span class=\"switch-label\">블루투스</span>\n</label>"
  },
  {
   "name": "table",
   "class": "m3-table",
   "description": "표. 데이터 표와 항목–값 표(table:key-value). 줄무늬·세로줄·크기 옵션.\n표. M3 에는 data table 스펙이 없어 newtil 이 정한다. 두 쓰임을 한 클래스로:\n  - 데이터 표 (thead + tbody, 관리자 목록)\n  - 항목–값 표 (th scope=row 가 항목, td 가 값 — 영양 정보·주문 정보)\n사용법:\n  <table class=\"m3-table\">",
   "slots": [
    "table-align"
   ],
   "slotOptions": {},
   "options": {
    "table": [
     "bordered",
     "hover",
     "key-value",
     "striped"
    ],
    "table-size": [
     "lg",
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--table-width": {
     "default": "100%"
    },
    "--table-max-width": {
     "default": "none"
    },
    "--table-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--table-color": {
     "default": "var(--color-text)"
    },
    "--table-cell-padding": {
     "default": "var(--space-3) var(--space-4)"
    },
    "--table-border-width": {
     "default": "var(--border-width-1)"
    },
    "--table-border-color": {
     "default": "var(--color-border-subtle)"
    },
    "--table-head-background": {
     "default": "var(--color-surface-2)"
    },
    "--table-head-color": {
     "default": "var(--color-text-muted)"
    },
    "--table-head-weight": {
     "default": "var(--font-weight-semibold)"
    },
    "--table-row-hover-background": {
     "default": "transparent"
    },
    "--table-stripe-background": {
     "default": "var(--color-surface-1)"
    },
    "--table-key-width": {
     "default": "25%"
    }
   },
   "usage": "<table class=\"m3-table\">\n  <thead><tr><th>메뉴</th><th>카테고리</th><th class=\"table-align:end\">가격</th></tr></thead>\n  <tbody>\n    <tr><td>아메리카노</td><td>커피</td><td class=\"table-align:end\">3,500원</td></tr>\n    <tr><td>카페라떼</td><td>커피</td><td class=\"table-align:end\">4,500원</td></tr>\n  </tbody>\n</table>\n<table class=\"m3-table table:key-value\" style=\"--table-max-width: 40rem\">\n  <tbody>\n    <tr><th scope=\"row\">칼로리</th><td>180 kcal</td><th scope=\"row\">나트륨</th><td>115 mg</td></tr>\n    <tr><th scope=\"row\">당류</th><td>13 g</td><th scope=\"row\">포화지방</th><td>4.5 g</td></tr>\n  </tbody>\n</table>"
  },
  {
   "name": "tabs",
   "class": "m3-tabs",
   "description": "탭. 가로 탭 줄, 현재 탭 밑줄. 배지·아이콘 포함 가능.\nType: primary (default) | secondary\nM3 spec: 48dp height, primary bottom indicator, title-small label\n사용법:\n  <div class=\"m3-tabs\">\n    <button class=\"tab-item tab-active\">탭 1</button>",
   "slots": [
    "tab-item"
   ],
   "slotOptions": {},
   "options": {
    "tabs": [
     "full",
     "secondary",
     "with-icon"
    ],
    "tab-color": [
     "primary",
     "secondary",
     "tertiary"
    ]
   },
   "flags": [],
   "variables": {
    "--tab-display": {
     "default": "flex"
    },
    "--tab-background": {
     "default": "var(--color-surface)"
    },
    "--tab-border-bottom": {
     "default": "0.0625rem solid var(--color-border-subtle)"
    },
    "--tab-height": {
     "default": "3rem"
    },
    "--tab-gap": {
     "default": "0"
    },
    "--tab-overflow": {
     "default": "auto"
    },
    "--tab-item-padding": {
     "default": "0 1.5rem"
    },
    "--tab-item-color": {
     "default": "var(--color-text-muted)"
    },
    "--tab-item-color-active": {
     "default": "var(--color-primary)"
    },
    "--tab-item-font-size": {
     "default": "0.875rem"
    },
    "--tab-item-font-weight": {
     "default": "var(--font-weight-medium)"
    },
    "--tab-item-cursor": {
     "default": "pointer"
    },
    "--tab-item-background": {
     "default": "transparent"
    },
    "--tab-item-white-space": {
     "default": "nowrap"
    },
    "--tab-item-flex": {
     "default": "0 0 auto"
    },
    "--tab-item-min-width": {
     "default": "auto"
    },
    "--tab-item-gap": {
     "default": "0.5rem"
    },
    "--tab-icon-size": {
     "default": "1.5rem"
    },
    "--tab-indicator-height": {
     "default": "0.1875rem"
    },
    "--tab-indicator-color": {
     "default": "var(--color-primary)"
    },
    "--tab-indicator-radius": {
     "default": "0.1875rem 0.1875rem 0 0"
    },
    "--tab-state-hover-opacity": {
     "default": "0.08"
    },
    "--tab-transition": {
     "default": "all var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<div class=\"m3-tabs\">\n  <button class=\"tab-item tab-active\">전체</button>\n  <button class=\"tab-item\">사진</button>\n  <button class=\"tab-item\">동영상</button>\n  <button class=\"tab-item\">음악</button>\n</div>"
  },
  {
   "name": "text-field",
   "class": "m3-text-field",
   "description": "입력 필드. outlined · filled, 레이블 위치(top·left·none), 크기, 상태, select 포함.\nType:   filled (default) | outlined\nSize:   xs | sm | md (M3 default = 56dp) | lg | xl            [newtil 확장]\nLabel:  (기본=M3 floating) | top | left | right | bottom | none [newtil 확장]\nState:  enabled | focused | hovered | error | disabled\nM3 spec: container with floating label, active indicator / outline",
   "slots": [
    "field-label",
    "field-supporting"
   ],
   "slotOptions": {},
   "options": {
    "field": [
     "outlined"
    ],
    "field-state": [
     "disabled",
     "error"
    ],
    "field-icon": [
     "leading"
    ],
    "field-color": [
     "primary",
     "secondary",
     "tertiary"
    ],
    "field-size": [
     "1",
     "2",
     "3",
     "4",
     "5",
     "lg",
     "md",
     "sm",
     "xl",
     "xs"
    ],
    "field-label": [
     "bottom",
     "left",
     "none",
     "right",
     "top"
    ]
   },
   "flags": [],
   "variables": {
    "--field-background": {
     "default": "var(--color-surface-2)"
    },
    "--field-border": {
     "default": "none"
    },
    "--field-border-radius": {
     "default": "0.25rem 0.25rem 0 0"
    },
    "--field-padding-x": {
     "default": "1rem"
    },
    "--field-padding-top": {
     "default": "0.5rem"
    },
    "--field-padding-bottom": {
     "default": "0.5rem"
    },
    "--field-min-height": {
     "default": "3.5rem"
    },
    "--field-width": {
     "default": "100%"
    },
    "--field-cursor": {
     "default": "text"
    },
    "--field-input-padding-top": {
     "default": "1.5rem"
    },
    "--field-input-padding-left": {
     "default": "var(--field-padding-x)"
    },
    "--field-select-arrow": {
     "default": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23737373' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\")"
    },
    "--field-select-arrow-size": {
     "default": "1rem"
    },
    "--field-select-padding-right": {
     "default": "2rem"
    },
    "--field-indicator-height": {
     "default": "0.0625rem"
    },
    "--field-indicator-color": {
     "default": "var(--color-text-muted)"
    },
    "--field-indicator-height-focus": {
     "default": "0.1875rem"
    },
    "--field-indicator-color-focus": {
     "default": "var(--color-primary)"
    },
    "--field-indicator-color-hover": {
     "default": "var(--color-text)"
    },
    "--field-outline-width": {
     "default": "0.0625rem"
    },
    "--field-outline-color": {
     "default": "var(--color-border-strong)"
    },
    "--field-outline-width-focus": {
     "default": "0.1875rem"
    },
    "--field-outline-color-focus": {
     "default": "var(--color-primary)"
    },
    "--field-font-size": {
     "default": "1rem"
    },
    "--field-font-weight": {
     "default": "400"
    },
    "--field-color": {
     "default": "var(--color-text)"
    },
    "--field-line-height": {
     "default": "1.5rem"
    },
    "--field-placeholder-color": {
     "default": "var(--color-text-muted)"
    },
    "--field-caret-color": {
     "default": "var(--color-primary)"
    },
    "--field-label-size": {
     "default": "1rem"
    },
    "--field-label-size-float": {
     "default": "0.75rem"
    },
    "--field-label-color": {
     "default": "var(--color-text-muted)"
    },
    "--field-label-weight": {
     "default": "inherit"
    },
    "--field-label-color-focus": {
     "default": "var(--color-primary)"
    },
    "--field-label-left": {
     "default": "var(--field-padding-x)"
    },
    "--field-label-background": {
     "default": "transparent"
    },
    "--field-label-padding": {
     "default": "0"
    },
    "--field-label-position": {
     "default": "absolute"
    },
    "--field-label-top": {
     "default": "50%"
    },
    "--field-label-transform": {
     "default": "translateY(-50%)"
    },
    "--field-label-focus-top": {
     "default": "0.5rem"
    },
    "--field-label-focus-transform": {
     "default": "translateY(0)"
    },
    "--field-label-focus-size": {
     "default": "var(--field-label-size-float)"
    },
    "--field-label-display": {
     "default": "block"
    },
    "--field-flex-direction": {
     "default": "column"
    },
    "--field-justify-content": {
     "default": "flex-start"
    },
    "--field-label-order": {
     "default": "1"
    },
    "--field-input-order": {
     "default": "0"
    },
    "--field-label-gap": {
     "default": "0"
    },
    "--field-label-min-width": {
     "default": "auto"
    },
    "--field-label-align-self": {
     "default": "auto"
    },
    "--field-placeholder-opacity": {
     "default": "0"
    },
    "--field-indicator-display": {
     "default": "block"
    },
    "--field-input-box-background": {
     "default": "transparent"
    },
    "--field-input-box-border": {
     "default": "none"
    },
    "--field-input-box-border-radius": {
     "default": "0"
    },
    "--field-input-box-min-height": {
     "default": "auto"
    },
    "--field-supporting-size": {
     "default": "0.75rem"
    },
    "--field-supporting-color": {
     "default": "var(--color-text-muted)"
    },
    "--field-supporting-padding": {
     "default": "0.25rem var(--field-padding-x) 0"
    },
    "--field-icon-left": {
     "default": "0.75rem"
    },
    "--field-error-color": {
     "default": "var(--color-danger)"
    },
    "--field-disabled-opacity": {
     "default": "0.38"
    },
    "--field-transition": {
     "default": "all var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<div class=\"m3-toolbar\">\n  <div class=\"toolbar-start\">총 <strong>31</strong>개의 메뉴</div>\n  <div class=\"toolbar-end\">\n    <div class=\"m3-text-field field:outlined field-label:none\"><select><option>인기순</option><option>최신순</option></select></div>\n  </div>\n</div>\n<form class=\"m3-toolbar toolbar:fill\">\n  <div class=\"m3-text-field field:outlined field-label:none\"><select><option>전체 카테고리</option></select></div>\n  <div class=\"m3-text-field field:outlined field-label:none toolbar-grow\"><input type=\"search\" placeholder=\"메뉴 이름 검색\"></div>\n  <button type=\"button\" class=\"m3-btn btn:outlined\">검색</button>\n</form>"
  },
  {
   "name": "toolbar",
   "class": "m3-toolbar",
   "description": "목록·표 위 한 줄. 왼쪽 정보(건수) · 오른쪽 동작(정렬·필터·버튼). 필터 바는 toolbar:fill.\n목록 위·표 위에 놓이는 한 줄: 왼쪽 정보(건수·선택 상태) · 오른쪽 동작(정렬·필터·버튼).\nM3 스펙에는 없다. 필터 바(입력 여러 개가 한 줄)도 같은 블록으로 만든다.\n사용법:\n  <div class=\"m3-toolbar\">\n    <div class=\"toolbar-start\">총 <strong>31</strong>개</div>",
   "slots": [
    "toolbar-end",
    "toolbar-start"
   ],
   "slotOptions": {},
   "options": {
    "toolbar": [
     "card",
     "fill"
    ]
   },
   "flags": [],
   "variables": {
    "--toolbar-gap": {
     "default": "var(--space-3)"
    },
    "--toolbar-margin": {
     "default": "0 0 var(--space-5)"
    },
    "--toolbar-padding": {
     "default": "0"
    },
    "--toolbar-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--toolbar-color": {
     "default": "var(--color-text-muted)"
    },
    "--toolbar-strong-color": {
     "default": "var(--color-text)"
    },
    "--toolbar-border-bottom": {
     "default": "none"
    },
    "--toolbar-min-height": {
     "default": "2.5rem"
    }
   },
   "usage": "<div class=\"m3-toolbar\">\n  <div class=\"toolbar-start\">총 <strong>31</strong>개의 메뉴</div>\n  <div class=\"toolbar-end\">\n    <div class=\"m3-text-field field:outlined field-label:none\"><select><option>인기순</option><option>최신순</option></select></div>\n  </div>\n</div>\n<form class=\"m3-toolbar toolbar:fill\">\n  <div class=\"m3-text-field field:outlined field-label:none\"><select><option>전체 카테고리</option></select></div>\n  <div class=\"m3-text-field field:outlined field-label:none toolbar-grow\"><input type=\"search\" placeholder=\"메뉴 이름 검색\"></div>\n  <button type=\"button\" class=\"m3-btn btn:outlined\">검색</button>\n</form>"
  },
  {
   "name": "tooltip",
   "class": "m3-tooltip",
   "description": "툴팁. 요소에 올리면 뜨는 짧은 설명.\nM3 spec: Plain tooltip (inverse surface, small text)\n         Rich tooltip (surface, larger with title/actions)\n사용법:\n  <div class=\"m3-tooltip\">간단한 설명</div>\n  <div class=\"m3-tooltip tooltip:rich\">",
   "slots": [
    "tooltip-actions",
    "tooltip-content",
    "tooltip-title"
   ],
   "slotOptions": {},
   "options": {
    "tooltip": [
     "rich"
    ]
   },
   "flags": [],
   "variables": {
    "--tooltip-background": {
     "default": "var(--color-surface-inverse)"
    },
    "--tooltip-color": {
     "default": "var(--color-text-inverse)"
    },
    "--tooltip-border-radius": {
     "default": "var(--radius-2)"
    },
    "--tooltip-padding": {
     "default": "0.25rem 0.5rem"
    },
    "--tooltip-font-size": {
     "default": "0.75rem"
    },
    "--tooltip-line-height": {
     "default": "1rem"
    },
    "--tooltip-max-width": {
     "default": "12.5rem"
    },
    "--tooltip-z-index": {
     "default": "var(--z-tooltip, var(--z-toast))"
    },
    "--tooltip-box-shadow": {
     "default": "none"
    },
    "--tooltip-border": {
     "default": "none"
    },
    "--tooltip-font-weight": {
     "default": "var(--font-weight-medium, 500)"
    },
    "--tooltip-rich-background": {
     "default": "var(--color-surface-2)"
    },
    "--tooltip-rich-color": {
     "default": "var(--color-text)"
    },
    "--tooltip-rich-border-radius": {
     "default": "var(--radius-3)"
    },
    "--tooltip-rich-padding": {
     "default": "0.75rem 1rem"
    },
    "--tooltip-rich-max-width": {
     "default": "20rem"
    },
    "--tooltip-rich-box-shadow": {
     "default": "var(--shadow-md)"
    },
    "--tooltip-rich-font-size": {
     "default": "0.875rem"
    },
    "--tooltip-rich-line-height": {
     "default": "1.25rem"
    },
    "--tooltip-title-font-size": {
     "default": "0.875rem"
    },
    "--tooltip-title-font-weight": {
     "default": "var(--font-weight-medium, 500)"
    },
    "--tooltip-title-color": {
     "default": "var(--color-text)"
    },
    "--tooltip-title-margin": {
     "default": "0 0 0.25rem"
    },
    "--tooltip-title-line-height": {
     "default": "1.25rem"
    },
    "--tooltip-content-color": {
     "default": "var(--color-text-muted)"
    },
    "--tooltip-content-margin": {
     "default": "0 0 0.5rem"
    },
    "--tooltip-actions-gap": {
     "default": "0.5rem"
    },
    "--tooltip-actions-margin": {
     "default": "0.5rem 0 0"
    }
   },
   "usage": "<div class=\"m3-tooltip\">간단한 설명 텍스트</div>"
  },
  {
   "name": "top-app-bar",
   "class": "m3-top-app-bar",
   "description": "상단 앱 바. 앞 아이콘 · 제목 · 뒤 동작. 앱 셸(m3-layout)의 머리.\nType: center-aligned (default) | small | medium | large\nM3 spec: 64dp height, surface bg, title-large text\n사용법:\n  <header class=\"m3-top-app-bar\">\n    <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>",
   "slots": [
    "bar-leading",
    "bar-title",
    "bar-trailing"
   ],
   "slotOptions": {},
   "options": {
    "bar": [
     "center",
     "elevated",
     "fixed",
     "outlined"
    ],
    "bar-color": [
     "primary",
     "surface",
     "surface-1"
    ]
   },
   "flags": [],
   "variables": {
    "--bar-display": {
     "default": "flex"
    },
    "--bar-align-items": {
     "default": "center"
    },
    "--bar-background": {
     "default": "var(--color-surface)"
    },
    "--bar-height": {
     "default": "4rem"
    },
    "--bar-padding": {
     "default": "0 0.5rem"
    },
    "--bar-box-shadow": {
     "default": "none"
    },
    "--bar-border-bottom": {
     "default": "none"
    },
    "--bar-color": {
     "default": "var(--color-text)"
    },
    "--bar-position": {
     "default": "static"
    },
    "--bar-top": {
     "default": "auto"
    },
    "--bar-z-index": {
     "default": "auto"
    },
    "--bar-title-size": {
     "default": "1.125rem"
    },
    "--bar-title-weight": {
     "default": "500"
    },
    "--bar-title-color": {
     "default": "var(--color-text)"
    },
    "--bar-title-padding": {
     "default": "0 0.5rem"
    },
    "--bar-title-flex": {
     "default": "1"
    },
    "--bar-title-overflow": {
     "default": "hidden"
    },
    "--bar-title-white-space": {
     "default": "nowrap"
    },
    "--bar-title-text-overflow": {
     "default": "ellipsis"
    },
    "--bar-title-text-align": {
     "default": "start"
    },
    "--bar-icon-size": {
     "default": "3rem"
    },
    "--bar-icon-color": {
     "default": "var(--color-text)"
    },
    "--bar-icon-radius": {
     "default": "50%"
    },
    "--bar-icon-background": {
     "default": "transparent"
    },
    "--bar-icon-cursor": {
     "default": "pointer"
    },
    "--bar-trailing-gap": {
     "default": "var(--space-3)"
    },
    "--bar-state-hover-opacity": {
     "default": "0.08"
    },
    "--bar-transition": {
     "default": "box-shadow var(--duration-normal) var(--ease-out)"
    }
   },
   "usage": "<div class=\"m3-layout\">\n  <!-- Nav Drawer (Expanded에서 표시) -->\n  <nav class=\"m3-nav-drawer layout-drawer\">\n    <div class=\"drawer-header\">\n      <h2 class=\"drawer-headline\">메뉴</h2>\n    </div>\n    <div class=\"drawer-content\">\n      <a href=\"#\" class=\"drawer-item drawer-item-active\">\n        <i class=\"m3-icon icon:home\"></i>\n        <span class=\"drawer-label\">홈</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:search\"></i>\n        <span class=\"drawer-label\">검색</span>\n      </a>\n      <a href=\"#\" class=\"drawer-item\">\n        <i class=\"m3-icon icon:settings\"></i>\n        <span class=\"drawer-label\">설정</span>\n      </a>\n    </div>\n  </nav>\n\n  <!-- Nav Rail (Medium에서 표시) -->\n  <nav class=\"m3-nav-rail layout-rail\">\n    <div class=\"rail-header\">\n      <button class=\"m3-fab fab:small\"><i class=\"m3-icon icon:edit\"></i></button>\n    </div>\n    <div class=\"rail-items\">\n      <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n      <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n      <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n    </div>\n  </nav>\n\n  <!-- Main Content Area -->\n  <div class=\"layout-main\">\n    <header class=\"m3-top-app-bar layout-header\">\n      <button class=\"bar-leading\"><i class=\"m3-icon icon:menu\"></i></button>\n      <h1 class=\"bar-title\">페이지 제목</h1>\n      <div class=\"bar-trailing\">\n        <button><i class=\"m3-icon icon:search\"></i></button>\n      </div>\n    </header>\n    <main class=\"layout-content\">\n      <h2>콘텐츠 영역</h2>\n      <p>페이지의 주요 콘텐츠가 여기에 들어갑니다.</p>\n    </main>\n  </div>\n\n  <!-- Nav Bar (Compact에서 표시) -->\n  <nav class=\"m3-nav-bar layout-bar\">\n    <a href=\"#\" class=\"m3-deco icon:home deco-pos:top deco-active\">홈</a>\n    <a href=\"#\" class=\"m3-deco icon:search deco-pos:top\">검색</a>\n    <a href=\"#\" class=\"m3-deco icon:settings deco-pos:top\">설정</a>\n  </nav>\n</div>"
  },
  {
   "name": "tree",
   "class": "m3-tree",
   "description": "트리. 포함 관계가 있는 목록 — 파일 탐색기, 레이어 패널, 분류 체계, 조직도. M3 스펙에는 없다.\n접기/펼치기는 항목의 aria-expanded 가 정하고, 선택은 aria-selected 가 정한다. 동작(클릭·키보드)은 앱이 맡는다.\n사용법:\n  <ul class=\"m3-tree\" role=\"tree\">\n    <li class=\"tree-item\" role=\"treeitem\" aria-expanded=\"true\" aria-selected=\"true\">\n      <div class=\"tree-row\">",
   "slots": [
    "tree-children",
    "tree-icon",
    "tree-input",
    "tree-item",
    "tree-label",
    "tree-meta",
    "tree-row",
    "tree-toggle"
   ],
   "slotOptions": {},
   "options": {
    "tree": [
     "lines"
    ],
    "tree-size": [
     "md",
     "sm"
    ]
   },
   "flags": [],
   "variables": {
    "--tree-indent": {
     "default": "1rem",
     "note": "한 단계 들여쓰기"
    },
    "--tree-row-height": {
     "default": "1.75rem",
     "note": "28px"
    },
    "--tree-row-padding-x": {
     "default": "var(--space-2)"
    },
    "--tree-row-gap": {
     "default": "var(--space-1)"
    },
    "--tree-row-radius": {
     "default": "var(--radius-2)"
    },
    "--tree-font-size": {
     "default": "var(--font-size-body-sm)"
    },
    "--tree-color": {
     "default": "var(--color-text)"
    },
    "--tree-meta-color": {
     "default": "var(--color-text-subtle)"
    },
    "--tree-meta-size": {
     "default": "var(--font-size-caption)"
    },
    "--tree-icon-size": {
     "default": "1rem"
    },
    "--tree-toggle-size": {
     "default": "1.125rem"
    },
    "--tree-toggle-color": {
     "default": "var(--color-text-muted)"
    },
    "--tree-hover-background": {
     "default": "var(--color-surface-2)"
    },
    "--tree-selected-background": {
     "default": "var(--color-primary-subtle)"
    },
    "--tree-selected-color": {
     "default": "var(--color-primary)"
    },
    "--tree-line-color": {
     "default": "var(--color-border-subtle)"
    },
    "--tree-drop-color": {
     "default": "var(--color-primary)"
    },
    "--tree-transition": {
     "default": "background-color var(--duration-fast) var(--ease-in-out), transform var(--duration-fast) var(--ease-in-out)"
    }
   },
   "usage": "<ul class=\"m3-tree\" role=\"tree\" style=\"max-width: 20rem\">\n  <li class=\"tree-item\" role=\"treeitem\" aria-expanded=\"true\">\n    <div class=\"tree-row\">\n      <button type=\"button\" class=\"tree-toggle\" aria-label=\"접기\"><i class=\"m3-icon icon:chevron_right\"></i></button>\n      <i class=\"m3-icon icon:folder tree-icon\"></i>\n      <span class=\"tree-label\">공개 사이트</span>\n      <span class=\"tree-meta\">m3-site</span>\n    </div>\n    <ul class=\"tree-children\" role=\"group\">\n      <li class=\"tree-item\" role=\"treeitem\" aria-expanded=\"false\">\n        <div class=\"tree-row\">\n          <button type=\"button\" class=\"tree-toggle\" aria-label=\"펼치기\"><i class=\"m3-icon icon:chevron_right\"></i></button>\n          <span class=\"tree-label\">site-header</span>\n        </div>\n        <ul class=\"tree-children\" role=\"group\"><li class=\"tree-item\" role=\"treeitem\"><div class=\"tree-row\"><span class=\"tree-toggle\"></span><span class=\"tree-label\">site-logo</span></div></li></ul>\n      </li>\n      <li class=\"tree-item\" role=\"treeitem\" aria-expanded=\"true\" aria-selected=\"true\">\n        <div class=\"tree-row\">\n          <button type=\"button\" class=\"tree-toggle\" aria-label=\"접기\"><i class=\"m3-icon icon:chevron_right\"></i></button>\n          <span class=\"tree-label\">site-main</span>\n        </div>\n        <ul class=\"tree-children\" role=\"group\">\n          <li class=\"tree-item\" role=\"treeitem\"><div class=\"tree-row\"><span class=\"tree-toggle\"></span><i class=\"m3-icon icon:folder tree-icon\"></i><span class=\"tree-label\">격자</span><span class=\"tree-meta\">m3-grid</span></div></li>\n        </ul>\n      </li>\n      <li class=\"tree-item\" role=\"treeitem\"><div class=\"tree-row\"><span class=\"tree-toggle\"></span><span class=\"tree-label\">site-footer</span></div></li>\n    </ul>\n  </li>\n</ul>"
  }
 ],
 "tokens": {
  "package": "@newtil/design-tokens",
  "count": 195,
  "groups": {
   "brand": [
    "--brand"
   ],
   "border-width": [
    "--border-width-0",
    "--border-width-1",
    "--border-width-2",
    "--border-width-3",
    "--border-width-4"
   ],
   "color-primary": [
    "--color-primary",
    "--color-primary-hover",
    "--color-primary-active",
    "--color-primary-subtle"
   ],
   "color-on": [
    "--color-on-primary",
    "--color-on-secondary",
    "--color-on-tertiary",
    "--color-on-success",
    "--color-on-warning",
    "--color-on-danger",
    "--color-on-info",
    "--color-on-surface",
    "--color-on-surface-inverse"
   ],
   "color-secondary": [
    "--color-secondary",
    "--color-secondary-hover",
    "--color-secondary-active",
    "--color-secondary-subtle"
   ],
   "color-tertiary": [
    "--color-tertiary",
    "--color-tertiary-hover",
    "--color-tertiary-active",
    "--color-tertiary-subtle"
   ],
   "color-surface": [
    "--color-surface",
    "--color-surface-1",
    "--color-surface-2",
    "--color-surface-3",
    "--color-surface-4",
    "--color-surface-inverse",
    "--color-surface-hover",
    "--color-surface-active",
    "--color-surface-disabled"
   ],
   "color-text": [
    "--color-text",
    "--color-text-muted",
    "--color-text-subtle",
    "--color-text-inverse",
    "--color-text-disabled"
   ],
   "color-link": [
    "--color-link",
    "--color-link-hover"
   ],
   "color-border": [
    "--color-border",
    "--color-border-strong",
    "--color-border-subtle"
   ],
   "color-code": [
    "--color-code-bg",
    "--color-code-fg",
    "--color-code-border"
   ],
   "color-scrim": [
    "--color-scrim"
   ],
   "color-success": [
    "--color-success",
    "--color-success-hover",
    "--color-success-active",
    "--color-success-subtle"
   ],
   "color-warning": [
    "--color-warning",
    "--color-warning-hover",
    "--color-warning-active",
    "--color-warning-subtle"
   ],
   "color-danger": [
    "--color-danger",
    "--color-danger-hover",
    "--color-danger-active",
    "--color-danger-subtle"
   ],
   "color-info": [
    "--color-info",
    "--color-info-hover",
    "--color-info-active",
    "--color-info-subtle"
   ],
   "color-focus": [
    "--color-focus-ring"
   ],
   "opacity": [
    "--opacity-0",
    "--opacity-10",
    "--opacity-20",
    "--opacity-30",
    "--opacity-40",
    "--opacity-50",
    "--opacity-60",
    "--opacity-70",
    "--opacity-80",
    "--opacity-90",
    "--opacity-100",
    "--opacity-25",
    "--opacity-75"
   ],
   "radius": [
    "--radius-0",
    "--radius-1",
    "--radius-2",
    "--radius-3",
    "--radius-4",
    "--radius-5",
    "--radius-6"
   ],
   "radius-full": [
    "--radius-full"
   ],
   "shadow-sm": [
    "--shadow-sm"
   ],
   "shadow-md": [
    "--shadow-md"
   ],
   "shadow-lg": [
    "--shadow-lg"
   ],
   "shadow-xl": [
    "--shadow-xl"
   ],
   "shadow": [
    "--shadow-2xl"
   ],
   "space": [
    "--space-0",
    "--space-1",
    "--space-2",
    "--space-3",
    "--space-4",
    "--space-5",
    "--space-6",
    "--space-7",
    "--space-8",
    "--space-9",
    "--space-10",
    "--space-11",
    "--space-12",
    "--space-13",
    "--space-14"
   ],
   "duration-fast": [
    "--duration-fast"
   ],
   "duration-normal": [
    "--duration-normal"
   ],
   "duration-slow": [
    "--duration-slow"
   ],
   "ease-linear": [
    "--ease-linear"
   ],
   "ease-in": [
    "--ease-in",
    "--ease-in-out"
   ],
   "ease-out": [
    "--ease-out"
   ],
   "font-size": [
    "--font-size-caption",
    "--font-size-body-sm",
    "--font-size-body",
    "--font-size-body-lg",
    "--font-size-heading-sm",
    "--font-size-heading-md",
    "--font-size-heading-lg",
    "--font-size-heading-xl",
    "--font-size-display",
    "--font-size-xs",
    "--font-size-sm",
    "--font-size-md",
    "--font-size-lg",
    "--font-size-xl",
    "--font-size-2xl",
    "--font-size-3xl",
    "--font-size-4xl"
   ],
   "font-family": [
    "--font-family-sans",
    "--font-family-mono"
   ],
   "font-weight": [
    "--font-weight-regular",
    "--font-weight-medium",
    "--font-weight-semibold",
    "--font-weight-bold"
   ],
   "line-height": [
    "--line-height-tight",
    "--line-height-normal",
    "--line-height-loose"
   ],
   "letter-spacing": [
    "--letter-spacing-tight",
    "--letter-spacing-normal",
    "--letter-spacing-wide"
   ],
   "z-base": [
    "--z-base"
   ],
   "z-dropdown": [
    "--z-dropdown"
   ],
   "z-sticky": [
    "--z-sticky"
   ],
   "z-fixed": [
    "--z-fixed"
   ],
   "z-overlay": [
    "--z-overlay"
   ],
   "z-modal": [
    "--z-modal"
   ],
   "z-popover": [
    "--z-popover"
   ],
   "z-toast": [
    "--z-toast"
   ],
   "z-tooltip": [
    "--z-tooltip"
   ],
   "size": [
    "--size-0",
    "--size-1",
    "--size-2",
    "--size-3",
    "--size-4",
    "--size-5",
    "--size-6",
    "--size-7",
    "--size-8",
    "--size-9",
    "--size-10",
    "--size-11",
    "--size-12",
    "--size-13",
    "--size-14",
    "--size-1-2",
    "--size-1-3",
    "--size-2-3",
    "--size-1-4",
    "--size-3-4",
    "--size-1-5",
    "--size-2-5",
    "--size-3-5",
    "--size-4-5",
    "--size-1-6",
    "--size-5-6",
    "--size-1-12",
    "--size-5-12",
    "--size-7-12",
    "--size-11-12"
   ],
   "size-screen": [
    "--size-screen-w-25",
    "--size-screen-w-50",
    "--size-screen-w-75",
    "--size-screen-w",
    "--size-screen-h-25",
    "--size-screen-h-50",
    "--size-screen-h-75",
    "--size-screen-h"
   ],
   "size-full": [
    "--size-full"
   ],
   "size-half": [
    "--size-half"
   ],
   "size-auto": [
    "--size-auto"
   ],
   "shadow-none": [
    "--shadow-none"
   ]
  }
 }
}