Free

Tarjeta de Perfil avanzada

Activar audio

Construye una tarjeta de perfil profesional con HTML y CSS. Aprende a usar Flexbox avanzado, gestionar columnas, aplicar estilos modernos y reforzar la jerarquía visual.

Fuente original ❤️

Resumen general

Este proyecto construye una tarjeta de perfil más avanzada que incluye información del usuario, enlaces a redes sociales, progreso visual de participación en organizaciones, número de seguidores y un botón de acción.

Se centra en consolidar el uso de Flexbox, el manejo de columnas, espaciado mediante gap, y principios básicos de adaptabilidad visual.

Tecnologías utilizadas:

  • HTML5 semántico
  • CSS3 moderno (Flexbox avanzado, Box Model, uso de fuentes externas)

Conceptos aplicados

Modelo de Caja (Box Model)

El proyecto sigue el modelo de caja estándar, usando box-sizing: border-box de forma global para manejar márgenes, padding y bordes de forma predecible.

Flexbox avanzado

El layout principal utiliza Flexbox para crear dos columnas (social y user-info), separadas por column-gap. Se gestionan distintos anchos (flex-basis) y se evita que los elementos colapsen usando flex-shrink: 0.

Estructura jerárquica y semántica

La estructura HTML se divide en dos section principales, organizadas dentro de un article, lo que mejora la semántica y el acceso para tecnologías asistivas.

Componentes reutilizables y consistencia

El patrón de nombres (social__avatar, social__bio, user-info__cta) sigue una convención que permite una lectura rápida del propósito de cada elemento y facilita su mantenimiento.

Diseño fluido

Aunque no se usan media queries explícitamente en esta primera versión, el diseño se adapta en parte al ancho del contenedor gracias al uso de width: 100% y max-width en la tarjeta principal.

Uso de linear-gradient

Se aplica un degradado simple (linear-gradient) en la barra de progreso para representar de forma visual el porcentaje de organizaciones a las que pertenece el usuario.

Puntos de atención

Responsividad básica

Aunque el diseño es flexible en desktop, aún no se adapta perfectamente a dispositivos móviles. Una futura iteración debería considerar media queries específicas.

Accesibilidad

Los alt de las imágenes están definidos correctamente. Como mejora, podrían ser más descriptivos (por ejemplo: "Icono de GitHub" en lugar de solo "GitHub").

Jerarquía visual

Se utiliza adecuadamente el tamaño de fuentes (font-size) y los pesos tipográficos (font-weight) para reforzar la importancia relativa de cada sección.

Mantenimiento de clases

Aunque hay buena separación de responsabilidades en las clases, sería ideal estandarizar completamente los nombres siguiendo BEM estricto, ya que se observa un pequeño desliz (user__info-icon debería ser user-info__icon para ser coherente).

Consistencia de tamaños

El column-gap de 250px es muy amplio y puede dificultar la responsividad en pantallas más pequeñas. Se podría ajustar dinámicamente más adelante.

Mejoras sugeridas

Adaptabilidad total

Añadir Media Queries para que en pantallas pequeñas las columnas se reorganicen verticalmente en lugar de mantenerse en horizontal.

Interacciones

Agregar efectos de :hover o :focus a los enlaces y botones para mejorar la experiencia de usuario.

Progreso dinámico

En una versión más avanzada, el ancho del linear-gradient podría ser dinámico en base a datos reales usando CSS custom properties o JavaScript.

Optimización de iconos

Cargar los iconos sociales como SVGs inline o sprites para mejorar el rendimiento y la escalabilidad del proyecto.

Juan Andrés Núñez

Juan Andrés Núñez

Ingeniero Frontend Senior. Especialista en Vue.js. Speaker. Docente profesional. Estoico.