@use 'ui-design-system/src/styles/semantic/index' as *; // Tokens available globally via main application styles // ========================================================================== // LIST EXAMPLES COMPONENT // ========================================================================== // Demonstration component showcasing all list variants and capabilities // ========================================================================== .list-examples { padding: $semantic-spacing-component-xl; max-width: 1200px; margin: 0 auto; h2 { font-size: 2rem; font-weight: 600; color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-layout-lg; text-align: center; } } .example-section { margin-bottom: $semantic-spacing-layout-xl; h3 { font-size: 1.5rem; font-weight: 500; color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-component-xl; padding-bottom: $semantic-spacing-component-sm; border-bottom: 2px solid $semantic-color-border-secondary; } } .example-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: $semantic-spacing-component-xl; margin-bottom: $semantic-spacing-layout-md; } .example-item { h4 { font-size: 1rem; font-weight: 500; color: $semantic-color-text-secondary; margin-bottom: $semantic-spacing-component-md; text-align: center; } } .example-single { max-width: 600px; margin: 0 auto; } // ========================================================================== // TRAILING SLOT COMPONENTS // ========================================================================== .action-button { background: none; border: none; color: $semantic-color-text-tertiary; cursor: pointer; padding: $semantic-spacing-component-xs; border-radius: $semantic-border-radius-sm; transition: all 0.15s ease-in-out; &:hover { background-color: $semantic-color-surface-interactive; color: $semantic-color-text-secondary; } &:focus { outline: 2px solid $semantic-color-border-focus; outline-offset: 2px; } i { font-size: 14px; } } .timestamp { font-size: 0.75rem; color: $semantic-color-text-tertiary; font-weight: 400; } .play-button { width: 32px; height: 32px; border-radius: 50%; background-color: $semantic-color-interactive-primary; color: $semantic-color-on-brand-primary; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.15s ease-in-out; &:hover { transform: scale(1.05); box-shadow: $semantic-shadow-elevation-1; } &:focus { outline: 2px solid $semantic-color-border-focus; outline-offset: 2px; } i { font-size: 12px; margin-left: 2px; // Optical alignment for play icon } } .rating { display: flex; align-items: center; gap: $semantic-spacing-micro-tight; color: $semantic-color-warning; font-size: 0.875rem; font-weight: 500; i { font-size: 14px; } } .select-button { background-color: $semantic-color-interactive-primary; color: $semantic-color-on-brand-primary; border: none; padding: $semantic-spacing-component-xs $semantic-spacing-component-sm; border-radius: $semantic-border-radius-sm; font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: all 0.15s ease-in-out; &:hover { background-color: $semantic-color-interactive-secondary; } &:focus { outline: 2px solid $semantic-color-border-focus; outline-offset: 2px; } } .text-success { color: $semantic-color-success; } // ========================================================================== // RESPONSIVE DESIGN // ========================================================================== @media (max-width: 768px) { .list-examples { padding: $semantic-spacing-component-lg; h2 { font-size: 1.5rem; } } .example-grid { grid-template-columns: 1fr; gap: $semantic-spacing-component-lg; } .example-section { margin-bottom: $semantic-spacing-layout-md; h3 { font-size: 1.25rem; } } } @media (max-width: 480px) { .list-examples { padding: $semantic-spacing-component-md; } .example-grid { gap: $semantic-spacing-component-md; } } // ========================================================================== // ACCESSIBILITY ENHANCEMENTS // ========================================================================== // Focus indicators for better keyboard navigation .list-examples { button:focus, .action-button:focus, .play-button:focus, .select-button:focus { outline: 2px solid $semantic-color-border-focus; outline-offset: 2px; border-radius: $semantic-border-radius-sm; } } // High contrast mode support @media (prefers-contrast: high) { .action-button, .play-button, .select-button { border: 1px solid $semantic-color-border-primary; } } // Reduced motion support @media (prefers-reduced-motion: reduce) { .action-button, .play-button, .select-button { transition: none; } .play-button:hover { transform: none; } }