Button
Botones monoespaciados en mayúsculas con brillo cian, una variante glass y animación al pasar y tocar. Soporta estado de carga e íconos.
src/components/ui/button.tsxLas piezas detrás de cada página de este sitio y cómo encajan entre sí.
En lugar de usar una librería de UI completa, mantengo un kit propio y chico: primitivas accesibles de Radix con estilos de Tailwind y class-variance-authority, pensadas para un sitio oscuro y musical. Todo lo que ves abajo es el componente real, renderizado en vivo. Son los mismos que usan Daily Melody, Inner Tempo, Sound Map y el resto.
components/uiBotones monoespaciados en mayúsculas con brillo cian, una variante glass y animación al pasar y tocar. Soporta estado de carga e íconos.
src/components/ui/button.tsxModal accesible sobre Radix: foco atrapado, Escape para cerrar y bloqueo de scroll.
src/components/ui/dialog.tsxPestañas de Radix con navegación por teclado y el azul activo del sitio.
src/components/ui/Tabs.tsxUna superficie simple con encabezado, contenido y pie, usada en el admin y en las páginas.
src/components/ui/card.tsxEtiquetas de estado con variantes hechas con class-variance-authority.
src/components/ui/badge.tsxInterruptor de Radix para ajustes on/off, accesible por teclado y lector de pantalla.
src/components/ui/switch.tsxAyudas al pasar o enfocar que se montan en el contenedor correcto, incluso dentro de diálogos.
src/components/ui/tooltip.tsxElegí una de pocas opciones: radio, vista, idioma, país. Las flechas se mueven entre ellas; se anuncia como un grupo de radio.
src/components/ui/segmented-control.tsxPíldoras para etiquetas y elecciones rápidas. Estáticas, clickeables o como toggle con estado seleccionado, en neutro o el rosa de las historias.
src/components/ui/chip.tsxControl deslizante de un solo punto para volumen y tempo, con el color de cada uso (cada capa de Daily Melody tiene el suyo).
src/components/ui/slider.tsxIndicador de carga en cuatro tamaños que usa el azul del sitio, o el color del texto dentro de botones de color.
src/components/ui/spinner.tsxBloques de relleno con la forma del contenido que viene, para que nada salte cuando llega.
src/components/ui/skeleton.tsxBanner de error con ícono, acciones, cierre y cuenta regresiva en vivo, compartido por Sound Map y Neighborhood Vibe.
src/components/ui/alert.tsxCampo de texto con la paleta del sitio: borde suave, foco azul y placeholder tenue.
src/components/ui/input.tsxDesplegable accesible de Radix para elegir un valor, con búsqueda por teclado.
src/components/ui/select.tsxCheckbox de Radix con anillo de foco visible, usado en los filtros del admin.
src/components/ui/checkbox.tsxMenús de acciones u opciones que se abren desde cualquier disparador.
src/components/ui/dropdown-menu.tsx| Palabra | Titulares |
|---|---|
| Argentina | 42 |
| España | 31 |
| San Lorenzo | 12 |
Tablas simples y legibles para rankings y datos del admin.
src/components/ui/table.tsxHace aparecer el contenido con un fundido suave, solo CSS, desactivado con movimiento reducido.
src/components/ui/fade-in.tsxcomponents/shareddarkaico
El título con degradado violeta a rojo. Cuatro tamaños, cualquier etiqueta y sin letras cortadas.
src/components/shared/GradientTitle.tsxMarcá tu ritmo
Bloque de título centrado que comparten las páginas: ícono, título con degradado, acciones y subtítulo.
src/components/shared/PageHeader.tsxModal de “cómo funciona” detrás de un botón chico, construido sobre Dialog.
src/components/shared/HelpPopup.tsxUn chip removible para la selección actual, como la ubicación elegida en Neighborhood Vibe.
src/components/shared/SelectedChip.tsxLo estás viendo: esta página está montada sobre él.
Contenedor de página con manchas de color en movimiento (o el cielo estrellado) y una columna centrada. Respeta el movimiento reducido.
src/components/shared/AnimatedBackground.tsxEstructura de búsqueda de lugares: ícono, resultados con debounce debajo de la barra y un espacio para acciones. La usan Sound Map y Neighborhood Vibe.
src/components/shared/SearchBar.tsxLa etiqueta chica y espaciada que abre las secciones de las páginas.
src/components/shared/SectionHeading.tsxEnergía
Qué tan llena suena: detalle de batería, redobles, acompañamiento, brillo
Interruptores de capas y selector de energía para la música generativa de Daily Melody e Inner Tempo.
src/components/shared/GenerativeSoundControls.tsxSelector Spotify / YouTube con el color de cada marca.
src/components/shared/ProviderSelector.tsxPide confirmación antes de cambiar la ubicación de la que nace la música.
src/components/shared/LocationSwitchDialog.tsxcomponents/effectsFlota detrás de esta misma página, mirá las esquinas.
Manchas de color suaves detrás de las páginas: una paleta por página, tamaño según la pantalla y un leve movimiento hacia el puntero (apagado en pantallas táctiles y con movimiento reducido).
src/components/effects/BlobBackdrop.tsxOcupa toda la pantalla, así que vive detrás de la home.
Cielo de partículas en three.js que cambia con la hora y el clima local.
src/components/effects/WeatherSky.tsxUna esfera de degradado suave que se mueve en su lugar: se balancea en una de cuatro direcciones o late como un corazón. La portada de los originales en Explorations.
src/components/effects/WobbleOrb.tsxlayout/Estructura de la app: Navbar, Footer y los contenedores raíz.admin/Piezas solo para el admin: barra lateral, tablas, indicadores de estado y el panel de salud de la API.common/Piezas compartidas chicas, como el selector de idioma.providers/Proveedores de contexto, por ejemplo Auth0.analytics/Cargadores de analytics.