Récit · Base Theme

Une boutique Shopware se reconnaît au premier coup d'œil. C'est précisément ce que ce thème corrige.

Pas un habillage pour une boutique — une fondation pour les dix suivantes. Monochrome par défaut, la couleur réservée à ce qui a du sens, et un mode sombre sans étape de build.

La boutique et les personnes de ce récit sont une illustration, pas des clients. Le logiciel est réel ; le problème est celui pour lequel nous appellent sans cesse les détaillants qui exploitent plus d'une adresse.

Le signe distinctif

Le thème par défaut a un visage, et les clients le connaissent.

Le thème par défaut n'a rien de mauvais. Il est complet, maintenu et raisonnable. Il est aussi reconnaissable — et une boutique qui ressemble à une plateforme plutôt qu'à une marque a dépensé sa première impression avant qu'on ait lu un mot.

On corrige cela d'ordinaire par une pile de surcharges sélecteur par sélecteur contre Bootstrap. Cela tient jusqu'à ce que la mise à jour suivante déplace quelque chose en dessous.

La page d'accueil de la boutique en mode clair : en-tête monochrome, navigation principale, visuel de une et trois cartes d'information.

Ce que c'est à la place

Une couche de tokens, et Bootstrap qui pointe dessus.

Chaque décision visuelle — couleur, échelle typographique, espacements, hauteurs de contrôles, rayons, élévation, animation — se résout en un token. Les variables de Bootstrap et ses propriétés `--bs-*` pointent vers ces tokens au lieu d'être surchargées une à une.

Une marque modifie donc des valeurs, pas des composants. Le thème reste maintenable parce qu'il ne se bat pas avec le framework en dessous.

TokenClairSombre
--color-text-primary
#1a1a1a
#f6f6f6
--color-bg-base
#ffffff
#0b0b0b
--color-surface
#ffffff
#121212
--color-border
#e3e3e3
#282828
--color-action
#000000
#ffffff

Les valeurs livrées par le thème, lues dans sa propre palette. Un seul jeu de noms ; le mode décide des valeurs.

Ce que touche le marchand

La mise en page, sans ouvrir une feuille de style.

Largeur de conteneur et largeur maximale du contenu. Espacement des sections. En-tête collant, barre supérieure, fil d'Ariane. Style de navigation. Colonnes de pied de page. Des réglages Shopware ordinaires, là où un marchand les cherche déjà.

Ce ne sont pas des interrupteurs cosmétiques ajoutés par-dessus : ils conditionnent du vrai balisage dans Twig. Barre supérieure désactivée veut dire aucune barre livrée, pas une barre masquée en CSS.

Les réglages Mise en page du thème dans l'administration Shopware : largeur de conteneur, largeur maximale, espacement des sections, en-tête collant, barre supérieure, fil d'Ariane, style de navigation et colonnes de pied de page.

Et les pièces

Rayon des angles, style de carte, produits par rangée.

Style du bouton principal, traitement des cartes, format des images produit, et colonnes de grille réglées séparément pour ordinateur, tablette et mobile — parce que trois de front convient sur un portable et pas sur un téléphone.

La dernière case de ce panneau est le sujet de la scène suivante.

Les réglages Composants du thème : rayon des angles, style du bouton principal, style de carte, format des images produit, colonnes de grille par taille d'écran et interrupteur du mode sombre.

La bascule

Mode sombre, sans étape de build.

Une lune à côté des icônes compte et panier, à toutes les tailles d'écran. Le choix reste dans le navigateur du visiteur et toute la palette est réévaluée via un attribut sur l'élément html. Les mêmes noms de tokens, d'autres valeurs.

L'implémentation est en ligne : un minuscule script anti-flash dans le head, pour qu'un visiteur en mode sombre ne voie jamais un éclair blanc, plus un petit script de câblage. Pas de webpack, pas de chaîne d'assets. Désactivez le réglage et ni le balisage ni les scripts ne sont livrés.

Shopware fige certaines couleurs à la compilation ; ces éléments sont repointés vers les tokens afin de suivre la bascule au lieu de rester sombre sur sombre.

La page d'accueil de la boutique en mode clair : en-tête monochrome, navigation principale, visuel de une et trois cartes d'information.

Clair

La même page d'accueil en mode sombre, logo inversé et palette basculée.

Sombre

Où est passée la couleur

La teinte est réservée au sens.

L'interface est neutre : la hiérarchie vient du ton, de la typographie, des espacements et de filets d'un pixel. Dès lors, si quelque chose est coloré, c'est qu'il porte une information — succès, avertissement, danger, information, et les étoiles de notation.

Comptez les éléments colorés sur une page de catégorie. Les étoiles, et rien d'autre. C'est voulu, et c'est pourquoi un message de statut se lit comme un statut et non comme une décoration de plus.

Une page de catégorie avec filtres, pagination et grille de produits, où les étoiles de notation sont le seul élément coloré.

La page qui vend

Fil d'Ariane, titre, contenu — dans cet ordre.

Un fil discret avec la page courante en encre, douze pixels jusqu'au titre semi-gras, huit jusqu'à une description facultative, puis le contenu. Sur téléphone, le fil se replie au lieu de passer à la ligne. Sur une fiche produit, le produit est la station courante.

Les prix dégressifs se lisent comme un tableau, parce que c'en est un. La galerie, le champ de quantité et le bouton panier proviennent des mêmes hauteurs de contrôle et rayons que le reste de la boutique.

Une fiche produit en mode clair avec fil d'Ariane, galerie, tableau de prix dégressifs et bouton panier.

Clair

La même fiche produit en mode sombre.

Sombre

Ce que l'équipe éditoriale a construit

Les Shopping Experiences continuent de fonctionner.

Chaque bloc CMS natif est habillé par le design system : typographie courante et chapeau, images arrondies, carrousels et galeries, cartes image-texte, blocs produit de hauteur égale, un voile et un texte clair sur texte-sur-image, et une carte de consentement habillée pour la vidéo intégrée.

Ce qu'un éditeur a réglé dans l'administration s'applique toujours. Le thème habille les blocs ; il ne retire pas la mise en page à celui qui l'a construite.

Des blocs Shopping Experiences habillés : cartes de catégorie et section image-texte.

Comment nous le savons

Clair et sombre, ordinateur et téléphone, vérifiés.

Une suite Playwright couvre la boutique dans les deux schémas de couleurs et les deux tailles, contraste de texte WCAG AA compris. Les bordures de formulaire tiennent 3:1, le focus est un anneau visible plutôt qu'un contour supprimé, et les liens dans le texte courant gardent leur soulignement puisqu'ils partagent la couleur du texte.

Les habillages de plugins ont leur propre test, qui se saute lui-même lorsque le plugin n'est pas installé sur la boutique testée.

La boutique sur téléphone en mode clair, avec la lune du mode sombre dans l'en-tête, à côté de la recherche, des favoris, du compte et du panier.

Clair

La même vue téléphone en mode sombre.

Sombre

Deux faces d'une même boutique

Pour qui fait ses achats

  • Une boutique qui se lit comme la marque, pas comme la plateforme qui la fait tourner.
  • Un mode sombre réellement sombre, y compris là où le cœur fige des couleurs.
  • Un texte au contraste AA, un focus visible, et des cibles tactiles à la taille d'un pouce.
  • Aucun éclair blanc au chargement pour qui navigue le soir.

Pour qui le maintient

  • Les changements de marque sont des valeurs de tokens et des réglages, pas des retouches de composants.
  • Bootstrap est redirigé plutôt que combattu : les mises à jour du cœur restent supportables.
  • Une fondation commune à tous les projets plutôt qu'un habillage sur mesure par client.
  • Apache-2.0 et sur Packagist — forkez, lisez, aucune discussion de licence.

Réponses franches

Ce que ce n'est pas

Les limites, dites franchement, y compris celles qui comptent le plus pour une chaîne. Un plugin qui promet tout est un plugin dont on le découvre plus tard.

Shopware 6.7 uniquement
Il lui faut `shopware/core` et `shopware/storefront` en ~6.7.0. Il n'existe pas de branche 6.6.
Une fondation, pas une boutique finie
Il fournit une base cohérente sur laquelle bâtir une marque. Il ne prend pas les décisions de design à votre place et ne livre aucune mise en page sur mesure.
Les habillages de plugins sont optionnels et à sens unique
Le thème habille l'interface de nos plugins et ne dépend d'aucun. Installez un plugin qu'il ne connaît pas et rien ne s'applique — c'est voulu, mais un plugin tiers peut donc continuer à ressembler à lui-même.
Le cœur fige encore des couleurs
Le mode sombre repointe les éléments du cœur que nous avons trouvés. Si un nouvel élément apparaît sombre sur sombre après une mise à jour, il faut l'ajouter — c'est une liste, pas une règle qui attrape tout.
Les réglages exigent une recompilation
Après une modification des réglages ou une mise à jour, recompilez le thème. Standard Shopware, mais autant le dire avant que quelqu'un s'étonne que rien ne bouge.

Installer

Gratuit, à quatre commandes d'ici.

Le thème est publié sur Packagist sous Apache-2.0. Pas de clé de licence, pas de compte, pas de frais — installez-le comme n'importe quoi d'autre.

~ install
$ composer require kommandhub/base-theme-sw
$ bin/console plugin:refresh
$ bin/console plugin:install --activate KmhBaseTheme
$ bin/console theme:change --all KmhBaseTheme

Composer, puis affectez le thème à un canal de vente.

Ou téléchargez le zip de la release sur GitHub et importez-le via Extensions → Mes extensions.

Version
1.0.0
Licence
Apache-2.0
Prérequis
Shopware 6.7, PHP 8.2+
Prix
Gratuit

Avant de demander

Les questions qu'un détaillant pose en premier

Ce thème Shopware est-il vraiment gratuit ?

Oui. Il est publié sous Apache-2.0 sur Packagist et le code source est public sur GitHub. Aucune clé de licence, aucun abonnement, aucune édition payante — usage commercial autorisé, fork possible, et vos projets clients peuvent tourner dessus.

Prend-il en charge le mode sombre ?

Oui, et sans étape de build. Un bouton figure à côté des icônes compte et panier à toutes les tailles d'écran, le choix reste dans le navigateur du visiteur, et toute la palette est réévaluée via un attribut sur l'élément html. Un petit script anti-flash dans le head évite tout éclair blanc en mode sombre. Désactivez le réglage et ni le balisage ni les scripts ne sont livrés.

Avec quelles versions de Shopware fonctionne-t-il ?

Shopware 6.7 et PHP 8.2 ou plus récent. Il n'existe pas de branche 6.6 — si vous êtes en 6.6, la montée de version passe d'abord.

Puis-je changer couleurs et mise en page sans écrire de SCSS ?

Oui. Largeur de conteneur, largeur maximale, espacement des sections, en-tête collant, barre supérieure, fil d'Ariane, style de navigation et colonnes de pied de page sont des réglages du thème, tout comme le rayon des angles, le style des boutons et des cartes, le format des images produit et les colonnes de grille par taille d'écran. Au-delà, ce sont des valeurs de tokens, pas des retouches de composants.

Est-ce un design de boutique fini ?

Non, et c'est volontaire. C'est une fondation sur laquelle bâtir une marque — une base cohérente d'un projet à l'autre plutôt qu'un habillage sur mesure pour une boutique. Il ne livre aucune mise en page propre et ne prend aucune décision de design à votre place.

Apache-2.0, sur Packagist, et en service sur les captures ci-dessus.

Chaque capture de cette page provient de notre propre boutique de démonstration, prise en fonctionnement. Le thème est open source — lisez-le, forkez-le, ou installez-le et continuez. Pour l'ajuster à une marque, parlons-en.