@use "variables"; @use "spacing"; @use "forms"; @use "dark-theme"; html, body { height: 100%; margin: 0; } body { overflow: hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; font-size: 1rem; color: var(--color-text); background-color: var(--color-background); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } * { box-sizing: border-box; } .icon { display: inline-flex; align-items: center; justify-content: center; line-height: 1; } .icon::before { font-family: "icons" !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ::-webkit-scrollbar { width: 0.375rem; height: 0.375rem; } ::-webkit-scrollbar-thumb { background-color: var(--color-scrollbar); border-radius: 0.375rem; } ::-webkit-scrollbar-track { background-color: transparent; } button:focus, a:focus, [tabindex]:focus { outline: none; } .custom-scroll { scrollbar-color: transparent transparent; scrollbar-width: thin; transition: scrollbar-color 0.3s ease; -webkit-overflow-scrolling: touch; &::-webkit-scrollbar { width: 0.375rem; height: 0.375rem; } &::-webkit-scrollbar-thumb { border-radius: 0.375rem; background-color: transparent; box-shadow: 0 0 1px rgba(255, 255, 255, 0.01); } &:hover, &:focus, &:focus-within { scrollbar-color: var(--color-scrollbar) transparent; &::-webkit-scrollbar-thumb { background-color: var(--color-scrollbar); } } } .skeleton { background: linear-gradient( 90deg, var(--color-skeleton-background) 25%, var(--color-skeleton-foreground) 37%, var(--color-skeleton-background) 63% ); background-size: 400% 100%; animation: skeleton-shimmer 1.4s ease infinite; } @keyframes skeleton-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } } html.theme-transition, html.theme-transition * { transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease !important; } @keyframes ripple-animation { from { transform: scale(0); opacity: 1; } 50% { opacity: 1; } to { transform: scale(2); opacity: 0; } } .ripple-container { pointer-events: none; position: absolute; inset: 0; overflow: hidden; } .ripple-wave { pointer-events: none; position: absolute; transform: scale(0); display: block; border-radius: 50%; background-color: var(--ripple-color, rgba(0, 0, 0, 0.08)); animation: ripple-animation 700ms; } .bg-menu-content { z-index: var(--z-portal-menu); min-width: 12rem; padding: 0.375rem; border-radius: 0.75rem; color: var(--color-text); background-color: var(--color-background-compact-menu); backdrop-filter: blur(10px); box-shadow: 0 0.25rem 1rem var(--color-default-shadow); outline: none; } html.theme-dark .bg-menu-content { border: 1px solid var(--color-borders); } .bg-menu-item { cursor: pointer; display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-size: 0.9375rem; color: var(--color-text); outline: none; transition: background-color 0.15s ease; &[data-highlighted], &:hover { background-color: var(--color-background-compact-menu-hover); } &[data-selected] { color: var(--color-primary); } } .bg-menu-separator { height: 1px; margin: 0.375rem 0; background-color: var(--color-background-menu-separator); } $peer-colors: #e17076, #eda86c, #a695e7, #7bc862, #6ec9cb, #65aadd, #ee7aae; @for $i from 0 through 6 { .peer-color-#{$i} { color: nth($peer-colors, $i + 1); } }