Hola @mariobici,
Gracias por la aclaración. Tal como menciona @fernando_iberia, para una funcionalidad de acordeón completa con animaciones de altura perfectas, lo ideal sería un toque de JavaScript. Sin embargo, podemos lograr un "look and feel" de acordeón muy convincente y solucionar el problema del salto de borde solo con CSS, mejorando las transiciones y la estética de los chevrons.
El problema del salto de borde se debe a que estás modificando el border-bottom-color del elemento activo. En su lugar, podemos usar un pseudo-elemento para el "borde" o simplemente asegurar que los bordes se mantengan consistentes y el fondo cambie. Para la animación de altura, podemos usar max-height con una transición, aunque no será perfecto si el contenido es muy variable, pero es lo mejor que se puede hacer solo con CSS para un efecto de "colapso".
Aquí tienes un fragmento de CSS que puedes añadir a tu themes/classic/assets/css/custom.css. Asegúrate de eliminar tus intentos anteriores para evitar conflictos:
.product-information .nav-tabs {
border: none;
flex-direction: column;
}
.product-information .nav-item {
margin-bottom: 5px; /* Espacio entre los paneles */
}
.product-information .nav-link {
display: flex;
justify-content: space-between;
Explicación de los cambios:
flex-direction: column; en .nav-tabs: Esto apila las pestañas verticalmente.
display: flex y justify-content: space-between en .nav-link: Permite alinear el texto de la pestaña y el icono de chevron en los extremos opuestos.
- Bordes y
margin-bottom en .nav-item: Agrega un pequeño espacio entre cada "header" de acordeón para que no se peguen.
::after para el chevron: Utilizamos un pseudo-elemento con un icono de Font Awesome (asegúrate de que esté cargado en tu tema) para la flecha. La transición transform le da el giro suave.
nav-link.active: Cambia el color de fondo, texto y borde para indicar que está activo. Los border-radius se ajustan para que el panel de contenido se vea conectado.
tab-content y tab-pane.active: Aquí está la clave para la animación de "colapso". Establecemos un max-height: 0 y overflow: hidden por defecto, con una transición. Cuando el tab-pane se vuelve active, le damos un max-height grande (ajusta 1000px si tienes contenido muy largo) para que se "despliegue" suavemente. Esto mitiga el problema de la altura variable.
Con esto, deberías tener un comportamiento visual mucho más parecido a un acordeón y solucionar los saltos de borde.