Cambiar el color de un botón en PrestaShop: usa custom.css en vez de editar theme.css
Para cambiar el color de un botón en PrestaShop, añade una regla CSS al archivo custom.css de tu tema. En Classic es assets/css/custom.css, que se carga después de los estilos principales. No edites theme.css, porque una recompilación o una actualización del tema lo sobrescribirá. Después de guardar, vacía la caché; si no, la tienda seguirá mostrando el color antiguo.
Autor: El equipo de TellMyShop. Una guía para dueños de tiendas PrestaShop: la causa, el arreglo manual y el mismo trabajo en una conversación con el chat.
Última actualización: · 5 min de lectura
Dónde añadir el color para que no desaparezca
En el custom.css del tema activo y, con un tema comprado, a ser posible en un tema hijo. Antes de abrir ningún archivo, mira los ajustes del tema en el panel. Muchos temas comprados tienen su propio módulo de configuración con una selección de colores para botones y encabezados. En ese caso el cambio lleva unos clics y no necesita CSS. El tema Classic no tiene esos ajustes. Cada sitio donde puedes hacer el cambio tiene consecuencias distintas.
| Dónde lo cambias | ¿Sobrevive a una recompilación del tema? | ¿Sobrevive a una actualización del tema? |
|---|---|---|
| theme.css | no | no |
| custom.css en el tema | sí | no siempre, depende del autor del tema |
| custom.css en un tema hijo | sí | sí |
| campo de CSS personalizado en los ajustes del tema | sí | normalmente sí |
El orden en que se cargan las hojas de estilos se describe en la documentación sobre la gestión de recursos del tema. Si ya te han desaparecido cambios del tema después de una actualización, lee qué hacer cuando una actualización del tema ha borrado tus cambios.
Cómo cambiar el color de un botón paso a paso
Necesitas acceso a los archivos del tema por FTP o con el gestor de archivos de tu hosting.
- Abre una página de producto y mira la clase del botón con las herramientas del navegador (clic derecho, Inspeccionar).
- Abre el archivo assets/css/custom.css en la carpeta del tema activo.
- Añade una regla para el botón y otra aparte para el estado al pasar el ratón.
- Guarda el archivo, haciendo antes una copia.
- Vacía la caché en Parámetros avanzados > Rendimiento.
- Revisa la página de producto en una ventana privada y en el móvil.
En el tema Classic, el botón de añadir al carrito tiene la clase add-to-cart. La regla puede ser así:
.product-add-to-cart .add-to-cart {
background-color: #2e7d32;
color: #ffffff;
}
.product-add-to-cart .add-to-cart:hover {
background-color: #1b5e20;
}
El estado al pasar el ratón lo describe MDN en el selector :hover. Los móviles no lo tienen, así que el color base tiene que funcionar por sí solo.
Cómo cambiar los colores de otros elementos de la tienda
Igual, con una regla en custom.css, pero con otra clase. Abajo tienes clases del tema Classic. En un tema comprado los nombres pueden ser distintos, así que compruébalos siempre con las herramientas del navegador.
| Elemento | Clase en Classic | Qué cambia |
|---|---|---|
| Todos los botones principales | .btn-primary | los botones del carrito, del pago y de los formularios |
| El botón de la página de producto | .product-add-to-cart .add-to-cart | solo ese botón |
| Precio en la página de producto | .current-price | el color del precio actual |
| Cabecera de la página | #header | el fondo de la parte superior de la página |
| Pie de página | #footer | el fondo del pie de página |
Cambia un elemento cada vez y revisa la página después de cada cambio. Varios cambios a la vez hacen difícil encontrar el que ha roto algo. Añade también un comentario breve en el archivo diciendo qué cambiaste y cuándo. Dentro de seis meses será más fácil encontrar la regla que hay que arreglar.
Un cambio completo de la paleta del tema, por ejemplo todos los tonos de verde a la vez, suele ser un trabajo en los archivos fuente del tema y una recompilación. Normalmente lo hace un desarrollador o el autor del tema.
Cómo elegir un color que se lea bien
Comprueba el contraste entre el texto del botón y su fondo antes de guardar el cambio. Para texto normal, las pautas de accesibilidad recomiendan un contraste de al menos 4,5 a 1, como explica el W3C sobre el criterio de contraste. Puedes comprobar un color en WebAIM Contrast Checker introduciendo los códigos del fondo y del texto.
Domingo, 20:30, y estás cambiando el verde en el archivo por tercera vez, vaciando la caché y recargando la página. El color vivo de la marca queda bien en el logotipo, pero el texto blanco encima se pierde. Normalmente ayuda un tono más oscuro del mismo color.
¿Por qué no se ve el color nuevo?
Casi siempre por la caché o por una regla demasiado débil. Comprueba por orden:
- ¿Has vaciado la caché en el panel y recargado la página saltándote la caché del navegador?
- ¿Has editado el custom.css del tema activo, y no el del tema padre?
- ¿La regla del tema es más específica que la tuya? Entonces añade una clase padre a tu selector.
Hablamos más de las capas de caché en el artículo los cambios no se ven en PrestaShop.
Cómo cambiar el color del botón con el chat
Le das el color y el botón. Tu chat (Claude o ChatGPT) encuentra la hoja de estilos, te muestra la regla que va a añadir y la guarda después de tu aprobación, con una copia del archivo.
Tú: Pon el botón «Añadir al carrito» en nuestro verde #2E7D32 con texto blanco, un poco más oscuro al pasar el ratón.
Tu chat: Tema Classic, el archivo assets/css/custom.css está vacío. El blanco sobre #2E7D32 cumple la recomendación de contraste para texto normal. Añadiré:
Antes de guardar haré una copia del archivo. Luego vaciaré la caché y revisaré la página de producto.
versión anterior: (archivo vacío)
versión nueva: .product-add-to-cart .add-to-cart { background-color: #2e7d32; color: #fff; }
versión nueva: .product-add-to-cart .add-to-cart:hover { background-color: #1b5e20; }
Si no te gusta el color, el chat restaura la versión anterior del archivo desde la copia. TellMyShop Free no cambia archivos del tema; para eso necesitas TellMyShop Pro con el interruptor Tema activado.
Petición de ejemplo: cambiar el color del botón «Añadir al carrito». La comparación de versiones está en la página de precios.
Preguntas y respuestas
¿Dónde está el archivo custom.css en PrestaShop?
En el tema Classic es assets/css/custom.css, dentro de la carpeta del tema. PrestaShop lo carga después de la hoja de estilos principal, así que tus reglas ganan a las del tema. En los temas comprados el archivo puede tener otro nombre, o el tema tiene un campo para tu propio CSS en sus ajustes. Consulta la documentación del tema.
¿Por qué no editar theme.css?
Porque theme.css es un archivo que se genera a partir del código fuente del tema. Cuando el tema se actualiza o se recompila, se vuelve a crear y tus cambios desaparecen. El archivo custom.css está pensado para tus propios estilos y no se sobrescribe al recompilar. Cuando actualizas un tema comprado, es más seguro guardar tus cambios en un tema hijo.
¿Cambiar el color del botón funciona en toda la tienda?
Depende de la regla. Si cambias la clase general de los botones principales, cambian todos esos botones: en el carrito, en el pago, en los formularios. Si apuntas solo al botón de añadir al carrito de la página de producto, solo cambia ese botón. En la vista previa del cambio, el chat muestra qué regla va a añadir.
¿Cómo compruebo que el color del botón se lee bien?
Comprueba el contraste entre el texto y el fondo con una herramienta gratuita, como WebAIM Contrast Checker. Para texto normal, las pautas de accesibilidad recomiendan un contraste de al menos 4,5 a 1. El texto blanco sobre verde claro o amarillo no suele cumplirlo. Normalmente ayuda un tono más oscuro del mismo color.
¿Cuántos cambios en archivos del tema hará el chat en una hora?
Los que permitan los límites por hora que fijes en el panel del módulo. Antes de un trabajo más grande, el chat comprueba si cabe en ellos y, si no, propone hacerlo por etapas. Los cambios en archivos del tema funcionan en TellMyShop Pro cuando activas el interruptor Tema. El interruptor dura 24 horas y exige una copia de seguridad de la base de datos hecha el mismo día. Antes de cada guardado, el chat muestra la diferencia en el archivo y hace una copia.
PrestaShop es una marca registrada de PrestaShop SA. Claude es una marca de Anthropic PBC. ChatGPT y OpenAI son marcas de OpenAI. TellMyShop no está afiliado a estas empresas.