Hola @mateoweb,
Entiendo perfectamente lo que buscas y el problema del desbordamiento es un clásico con los dropdowns fijos. Tu CSS va en la dirección correcta, pero necesita algunos ajustes para ser completamente responsive y darle ese toque estético. El right: 0; funciona bien en desktop, pero para móviles y tablets, el width fijo junto a eso es lo que causa que se corte.
Aquí te propongo una solución para tu themes/classic/assets/css/custom.css que debería resolver ambos problemas, incluyendo un estilo básico para el scrollbar y el ajuste responsive:
#_desktop_cart .cart-dropdown {
border: 1px solid #e0e0e0;
box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
padding: 1rem;
max-height: 400px; /* Aumentamos la altura máxima */
overflow-y: auto;
right: 0;
left: auto;
width: 300px; /* Ancho fijo para desktop */
z-index: 1000;
Explicación de los cambios:
padding y max-height: Un padding más consistente y un max-height ligeramente mayor para mejor visualización.
- Media Query
@media (max-width: 767px): Aquí es donde solucionamos el problema de que se corta. En pantallas de hasta 767px (típico para móviles y tablets):
width: 90vw; hace que ocupe el 90% del ancho de la ventana, adaptándose.
max-width: 300px; asegura que no se haga demasiado grande en tablets.
left: 50%; y transform: translateX(-50%); son la clave para centrar el elemento en la pantalla, independientemente de su ancho.
z-index: 1000;: Asegura que el desplegable se muestre por encima de otros elementos.
- Estilos
::-webkit-scrollbar: Añadimos estilos para el scrollbar, que como bien apuntaba @monicaonline, funcionarán en Chrome, Safari y otros navegadores basados en WebKit. Para Firefox, el scrollbar será el nativo del sistema.
Con esto, el minicarrito debería verse consistente y funcional en todas las resoluciones.