/* 디자인 쇼케이스 전용 스타일 */ .ds-shell { display: flex; flex-direction: column; height: 100vh; background: var(--background, #0b1220); color: var(--foreground, #e2e8f0); } .ds-header { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1.5rem; border-bottom: 1px solid rgb(51 65 85 / 0.5); flex-shrink: 0; background: var(--surface-overlay, rgb(15 23 42 / 0.6)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); } .ds-body { display: flex; flex: 1; min-height: 0; } .ds-nav { width: 220px; flex-shrink: 0; padding: 1rem 0.75rem; border-right: 1px solid rgb(51 65 85 / 0.5); overflow-y: auto; position: sticky; top: 0; } .ds-main { flex: 1; overflow-y: auto; padding: 2rem 2.5rem 6rem; scroll-behavior: smooth; } .ds-main section { margin-bottom: 4rem; } /* 추적 ID 시스템 */ .trk-item { position: relative; transition: outline-color 0.2s; } .trk-copyable { cursor: pointer; } .trk-copyable:hover { outline: 1px dashed rgb(59 130 246 / 0.5); outline-offset: 4px; } .trk-active { outline: 2px solid rgb(59 130 246); outline-offset: 4px; animation: trk-pulse 1.2s ease-out; will-change: opacity; } .trk-item[data-copied='true'] { outline: 2px solid rgb(34 197 94) !important; outline-offset: 4px; } .trk-item[data-copied='true']::after { content: '복사됨 ✓'; position: absolute; top: -1.5rem; left: 0; font-size: 0.625rem; color: rgb(34 197 94); background: rgb(34 197 94 / 0.15); padding: 0.125rem 0.375rem; border-radius: 0.25rem; pointer-events: none; z-index: 10; } @keyframes trk-pulse { 0% { opacity: 1; } 50% { opacity: 0.35; } 100% { opacity: 1; } } /* 쇼케이스 그리드 */ .ds-grid { display: grid; gap: 0.75rem; } .ds-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ds-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ds-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ds-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } .ds-sample { padding: 1rem; background: var(--surface-raised, rgb(30 41 59 / 0.4)); border: 1px solid rgb(51 65 85 / 0.4); border-radius: 0.5rem; } .ds-sample-label { font-size: 0.625rem; color: var(--text-hint, rgb(148 163 184)); font-family: ui-monospace, monospace; margin-top: 0.5rem; word-break: break-all; } .ds-code { display: block; padding: 0.75rem 1rem; background: rgb(15 23 42 / 0.7); border: 1px solid rgb(51 65 85 / 0.4); border-radius: 0.375rem; font-family: ui-monospace, monospace; font-size: 0.75rem; color: rgb(203 213 225); white-space: pre; overflow-x: auto; }