Tetris
Componente que genera una cuadrícula dinámica con animación de caída de celdas inspirada en el juego Tetris

Uso
Ejemplo de Implementación
A continuación, se muestra cómo puedes importar y utilizar el componente Tetris en una página o componente de Vue 3.
Ejemplo con Tema Personalizado
El componente permite personalizar el color base de la cuadrícula:
Props
| Prop | Tipo | Descripción | Requerido | Valor por defecto |
|---|---|---|---|---|
| squareColor | string | Color base para generar la paleta de colores de la cuadrícula | Sí | - |
| base | number | Número base para calcular el tamaño de cada celda (ancho total / base) | No | 10 |
| class | string | Clases CSS adicionales para el componente | No | - |
Comportamiento
- Cuadrícula Adaptable: Se ajusta automáticamente al ancho del contenedor padre.
- Animación Automática: Genera continuamente nuevas celdas en la parte superior que caen hacia abajo.
- Interactividad: Al hacer clic en una celda coloreada, esta desaparece.
- Tema Dinámico: Deriva automáticamente una paleta de colores a partir del color base proporcionado.
- Soporte para Modo Oscuro: Incluye variantes oscuras de los colores para compatibilidad con temas dark.
- Efecto Tetris: Cuando una fila se llena completamente, se eliminan todas las celdas de esa fila.
Detalles Técnicos
El componente utiliza varios mecanismos avanzados:
- VueUse: Aprovecha
useElementSizepara responder a cambios de tamaño. - Generación de Paletas: Utiliza
theme-colorspara generar variantes de color a partir del color base. - Variables CSS Personalizadas: Implementa propiedades calculadas para el tamaño de celda y colores.
- Transiciones: Incluye animaciones de aparición/desaparición mediante la API de transiciones de Vue.
Notas
- Para un funcionamiento óptimo, es recomendable establecer una altura específica en el contenedor del componente.
- El componente limpia correctamente sus intervalos al desmontarse para evitar fugas de memoria.
- Las celdas tienen un efecto hover que cambia ligeramente su color al pasar el cursor por encima.
- La densidad de la cuadrícula puede ajustarse modificando la prop
base(valores más altos crean celdas más pequeñas).