import { css } from 'lit'; /** * Shared host styles every component pulls in. Sets default font, color, * container query support, and the entry fade-in. */ export const baseStyles = css` :host { display: block; container-type: inline-size; font-family: var( --roxy-font-sans, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif ); color: var(--roxy-fg, #0a0a0a); background: transparent; font-size: var(--roxy-text-base, 1rem); line-height: var(--roxy-leading-normal, 1.5); animation: roxy-fade-in var(--roxy-motion-duration, 200ms) var(--roxy-motion-easing, cubic-bezier(0.4, 0, 0.2, 1)) both; } *, *::before, *::after { box-sizing: border-box; } @keyframes roxy-fade-in { from { opacity: 0; transform: translateY(2px); } to { opacity: 1; transform: translateY(0); } } @media (prefers-reduced-motion: reduce) { :host { animation: none; } } .roxy-skeleton { background: linear-gradient( 90deg, var(--roxy-border, #e4e4e7) 0%, color-mix(in srgb, var(--roxy-border, #e4e4e7) 60%, transparent) 50%, var(--roxy-border, #e4e4e7) 100% ); background-size: 200% 100%; animation: roxy-shimmer 1.4s ease-in-out infinite; border-radius: var(--roxy-radius-md, 8px); } @keyframes roxy-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } @media (prefers-reduced-motion: reduce) { .roxy-skeleton { animation: none; } } .roxy-empty { padding: var(--roxy-space-lg, 1.5rem); color: var(--roxy-muted, #71717a); text-align: center; font-size: var(--roxy-text-sm, 0.875rem); } :host(:focus-within) .roxy-card { outline: 2px solid var(--roxy-ring, rgba(245, 158, 11, 0.4)); outline-offset: 2px; } `;