Componente de tarjeta con propiedades personalizadas de CSS
Cree un componente de tarjeta flexible controlado íntegramente por propiedades personalizadas de CSS para facilitar la creación de temas.
Componente de tarjeta con propiedades personalizadas de CSS es una lección gratuita de CSS Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CSS Academy incluye 4 lecciones en total.
Objetivos de diseño
Un componente de tarjeta es un contenedor independiente para contenido. Objetivos de diseño: espaciado interno coherente mediante tokens de espaciado, colores tematizables mediante tokens de alias, tamaño adaptable sin JavaScript y compatibilidad con variantes (elevada, con contorno y plana) mediante propiedades personalizadas de CSS.
Estructura base de la tarjeta
Utilice una única clase .card con propiedades personalizadas de CSS para los valores configurables. Los elementos internos (encabezado, cuerpo y pie) heredan los valores del ámbito de la tarjeta. Esto limita la divergencia de estilos entre las instancias de tarjetas de toda la base de código.
<div class="card">
<h3>Card Title</h3>
<p>Card content styled via custom properties.</p>
</div>
Clases de variantes
Reemplace las propiedades personalizadas de nivel de tarjeta mediante clases de variantes en lugar de escribir conjuntos de reglas independientes. Las clases de variantes solo necesitan redefinir las variables modificadas; las propiedades que no cambian heredan automáticamente los valores base sin repetirlos.
<div class="card card--elevated">
<p>Elevated variant</p>
</div>
<div class="card card--outlined">
<p>Outlined variant</p>
</div>
Tematización de la tarjeta
Cuando una clase de tema principal cambia --color-surface, todas las tarjetas dentro de ese tema actualizan automáticamente su fondo. No se necesita código de sobrescritura de temas específico para cada tarjeta: el sistema de tokens de alias se encarga de ello de forma transparente.
Padding adaptable de tarjetas
Use clamp() con sobrescrituras de propiedades personalizadas para obtener un padding fluido: --card-padding: clamp(1rem, 4vw, 2rem). Las vistas más grandes reciben un padding más generoso; las pequeñas, el mínimo, todo controlado desde una única definición de token.
Diseño de cuadrícula de tarjetas
Una cuadrícula de tarjetas que usa auto-fill de CSS Grid con minmax crea un diseño autoorganizado: grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)). Las tarjetas ocupan el espacio disponible y se ajustan automáticamente sin puntos de interrupción de media queries.
Relación de aspecto de las imágenes
Mantenga una relación de aspecto uniforme en las imágenes de las tarjetas con aspect-ratio: 16/9 en el contenedor de la imagen. Las imágenes llenan el contenedor con object-fit: cover, lo que garantiza alturas uniformes en las tarjetas independientemente de las dimensiones de la imagen de origen.
Estados interactivos
Añada estados hover y focus-within que eleven ligeramente la tarjeta: transform: translateY(-2px) y un box-shadow más pronunciado. Anime con transition: transform 200ms ease, box-shadow 200ms ease para ofrecer una respuesta de interacción fluida y optimizada para el compositor.
Enlaces accesibles en tarjetas
Haga que se pueda hacer clic en toda la tarjeta mediante un enlace extendido: establezca el posicionamiento relativo de la tarjeta y coloque el enlace principal con posicionamiento absoluto usando inset: 0. Los lectores de pantalla leen el texto del enlace; la superposición cubre visualmente la tarjeta para los usuarios del ratón.
Estado de carga
Añada una variante .card--loading que sustituya el contenido por un skeleton con efecto shimmer mediante una animación CSS: background: linear-gradient(90deg, var(--color-skeleton-from), var(--color-skeleton-to)) animado con background-size: 200% y animation: shimmer 1.5s infinite.
Tarjeta en modo oscuro
En modo oscuro, el token --color-surface cambia automáticamente de claro a oscuro. Si las tarjetas elevadas dependen de box-shadow para crear profundidad —que desaparece sobre fondos oscuros—, añada un borde sutil o aumente el contraste del color de superficie para que la elevación se perciba en modo oscuro.
Comprobación de conocimientos
¿Cómo permiten las propiedades personalizadas de CSS crear variantes de tarjetas sin duplicar todo el conjunto de reglas?
Resumen
Crear un componente de tarjeta con propiedades personalizadas de CSS permite obtener una primitiva de interfaz flexible, tematizable y compatible con variantes. Las variables base establecen los valores predeterminados; las clases de variantes sobrescriben solo lo necesario; las clases de tema sobrescriben los valores globalmente. Combinado con tamaños adaptables, enlaces accesibles y estados de carga, este patrón se escala limpiamente en los sistemas de diseño.
Preguntas frecuentes
¿La lección «Componente de tarjeta con propiedades personalizadas de CSS» es gratis?
Sí — el texto completo de «Componente de tarjeta con propiedades personalizadas de CSS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CSS Academy, actualiza a CoddyKit PRO. El curso de CSS Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Componente de tarjeta con propiedades personalizadas de CSS»?
Cree un componente de tarjeta flexible controlado íntegramente por propiedades personalizadas de CSS para facilitar la creación de temas. Practicas CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CSS Academy?
No se requiere experiencia previa. CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Componente de tarjeta con propiedades personalizadas de CSS»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CSS Academy?
Sí. Cada lección de CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Componente de tarjeta con propiedades personalizadas de CSS
- Estilos de modales y diálogos
- Patrones de dropdown y popover
- Componente de pestañas con el hack :checked frente a JS