Moves the remaining uncommitted work: the home gets quick mixes and a "Tus álbumes" shelf, saving a YouTube album now goes through addYoutubeAlbumToPlaylistAction instead of the SaveYouTubeAlbum command, and UserAlbum drops its unused ExternalId. The mixes section keeps its current shape (no refresh action, no badge, hidden when empty) rather than the older version the worktree carried.
206 lines
3.7 KiB
CSS
206 lines
3.7 KiB
CSS
@import 'tailwindcss';
|
|
|
|
@theme {
|
|
--font-sans: 'Inter Variable', ui-sans-serif, system-ui, sans-serif;
|
|
|
|
--color-bg: var(--mf-bg);
|
|
--color-elevated: var(--mf-elevated);
|
|
--color-surface: var(--mf-surface);
|
|
--color-surface-2: var(--mf-surface-2);
|
|
--color-surface-hover: var(--mf-surface-hover);
|
|
--color-hover: rgba(255, 255, 255, 0.05);
|
|
--color-line: var(--mf-border);
|
|
--color-line-strong: var(--mf-border-strong);
|
|
--color-track: var(--mf-track);
|
|
--color-fg: var(--mf-text);
|
|
--color-fg-2: var(--mf-text-2);
|
|
--color-fg-3: var(--mf-text-3);
|
|
--color-muted: var(--mf-text-4);
|
|
--color-accent: var(--mf-accent);
|
|
--color-accent-soft: var(--mf-accent-soft);
|
|
--color-on-accent: var(--mf-on-art);
|
|
--color-scrim: var(--mf-scrim);
|
|
--color-on-art: var(--mf-on-art);
|
|
--color-danger: oklch(63.7% 0.237 25.331);
|
|
--color-danger-fg: oklch(88.5% 0.062 18.334);
|
|
|
|
--radius-control: 0.625rem;
|
|
--radius-panel: 1rem;
|
|
--radius-art: 0.75rem;
|
|
--radius-art-lg: 1rem;
|
|
--radius-art-round: 1.75rem;
|
|
|
|
--shadow-art: 0 12px 28px -10px rgba(0, 0, 0, 0.6);
|
|
--shadow-art-lg: 0 20px 45px -15px rgba(0, 0, 0, 0.7);
|
|
--shadow-menu: 0 12px 28px -10px rgba(0, 0, 0, 0.6);
|
|
}
|
|
|
|
@utility page-x {
|
|
padding-inline: --spacing(4);
|
|
|
|
@media (width >= 40rem) {
|
|
padding-inline: --spacing(8);
|
|
}
|
|
}
|
|
|
|
@utility media-grid {
|
|
grid-template-columns: repeat(auto-fill, minmax(var(--mf-grid-min-mobile), 1fr));
|
|
|
|
@media (width >= 40rem) {
|
|
grid-template-columns: repeat(auto-fill, minmax(var(--mf-grid-min), 1fr));
|
|
}
|
|
}
|
|
|
|
@utility track-grid {
|
|
grid-template-columns: var(--mf-track-cols-mobile);
|
|
|
|
@media (width >= 40rem) {
|
|
grid-template-columns: var(--mf-track-cols);
|
|
}
|
|
}
|
|
|
|
@utility scrollbar-stable {
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
:root {
|
|
color-scheme: dark;
|
|
}
|
|
|
|
button:not(:disabled),
|
|
[role='button'],
|
|
label:has(input[type='file']),
|
|
summary {
|
|
cursor: pointer;
|
|
}
|
|
|
|
button:disabled {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
@keyframes fade-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(0.75rem);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@keyframes fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes pop-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.96) translateY(0.5rem);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in-left {
|
|
from {
|
|
transform: translateX(-100%);
|
|
}
|
|
to {
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes equalize {
|
|
0%,
|
|
100% {
|
|
transform: scaleY(0.35);
|
|
}
|
|
50% {
|
|
transform: scaleY(1);
|
|
}
|
|
}
|
|
|
|
@keyframes breathe {
|
|
0%,
|
|
100% {
|
|
opacity: 0.55;
|
|
transform: scale(1.2);
|
|
}
|
|
50% {
|
|
opacity: 0.78;
|
|
transform: scale(1.32);
|
|
}
|
|
}
|
|
|
|
@keyframes sheen {
|
|
from {
|
|
background-position: 200% 0;
|
|
}
|
|
to {
|
|
background-position: -200% 0;
|
|
}
|
|
}
|
|
|
|
.animate-enter {
|
|
animation: fade-up 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
}
|
|
|
|
.animate-pop {
|
|
animation: pop-in 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
}
|
|
|
|
.animate-fade {
|
|
animation: fade-in 0.4s ease both;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-duration: 0.001ms !important;
|
|
animation-delay: 0ms !important;
|
|
transition-duration: 0.001ms !important;
|
|
scroll-behavior: auto !important;
|
|
}
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
scrollbar-width: thin;
|
|
scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
|
|
background-color: var(--mf-bg);
|
|
-webkit-tap-highlight-color: transparent;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
html.home {
|
|
background-image: linear-gradient(to bottom, var(--mf-accent), transparent 340px);
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background-color: rgba(255, 255, 255, 0.18);
|
|
border-radius: 9999px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background-color: rgba(255, 255, 255, 0.32);
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|