Glassmorphism✨ Premium

Notched Badge System

Quatre badges d'état (info, succès, alerte, erreur) de 46 px de haut, chacun entaillé d'une encoche carrée de 6 px à chaque coin par un clip-path: polygon() en pixels, avec un compteur rond de 22 px et un léger grossissement au survol : l'étiquette technique, en CSS seul.

SVGClip-pathBadge

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Glassmorphism comprend 47 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Statut des quais — écran d'un entrepôt logistique — Notched Badge System exemple 1

① Statut des quais — écran d'un entrepôt logistique

QuandÉcran de la plateforme, équipe de l'après-midi : quatre portes de quai, chacune avec son camion, son trajet et son état — libre, en chargement, en retard, en incident.
PourquoiLes quatre couleurs du code correspondent exactement aux quatre états d'un quai, et le chef de quai les lit d'un coup d'œil depuis l'allée ; l'encoche donne un air d'étiquette industrielle, et le compteur porte le nombre de palettes restantes ou de signalements.
RéglagesBadges en marges réduites (11 × 14 px) pour tenir à droite de chaque ligne ; libellés courts (Libre, Chargement, Retard, Incident) ; compteur « ✓ », « 14 », « ! » et « 2 » ; une ligne par quai avec rideau métallique et bande de sécurité dessinés en dégradés.
Taille et coupe — fiche produit d'un jean — Notched Badge System exemple 2

② Taille et coupe — fiche produit d'un jean

QuandFiche du jean, à côté de la photo : badges « Coupe droite », « Taille haute », « Stock faible : 3 », au-dessus du choix de la taille.
PourquoiL'encoche évoque l'étiquette cousue d'un vêtement ; le compteur rond donne le stock restant sans phrase. La variante alerte (ambre, texte sombre à 7,9:1) est la seule dont le contraste tient d'origine : c'est elle qui porte l'information urgente.
RéglagesMarges internes 10 × 16 px ; un badge par ligne dans une colonne de 242 px ; info pour la coupe, succès pour la taille, alerte + compteur « 3 » pour le stock.
Rareté des objets — inventaire d'un jeu de rôle — Notched Badge System exemple 3

③ Rareté des objets — inventaire d'un jeu de rôle

QuandLe joueur trie sa besace : commun, rare, épique, légendaire, avec le nombre d'objets de chaque rareté à côté de la grille d'objets.
PourquoiLes encoches techniques collent à l'interface de jeu, et le compteur dit combien d'exemplaires on possède. La rareté a ses codes de couleur dans les jeux : la variante erreur est recolorée en violet par une classe de scène pour « épique ».
RéglagesBadges empilés en colonne de 200 px, justify-content: space-between pour pousser le compteur à droite ; succès = commun, info = rare, .notch-badge--danger.rpg-epic en #9333ea → #7e22ce = épique, alerte = légendaire.

Comment ça marche

Chaque .notch-badge est un inline-flex (marges internes 12 × 24 px, texte de 12,8 px en graisse 700, capitales espacées de 0,5 px) : 46 px de haut, et une largeur qui suit le libellé — 152,6, 125,9, 141,4 et 133,8 px pour Messages, Active, Warning et Errors (mesuré). Il est découpé par clip-path: var(--ntb-notch), un polygon() de douze points en calc() qui retire un carré de 6 × 6 px à chaque coin : 0 6px, 6px 6px, 6px 0, calc(100% - 6px) 0…. Parce que l'encoche est en pixels, elle garde la même taille sur un badge de 120 comme de 200 px. Elle retire environ 2 % de la surface (mesuré : 1,9 à 2,3 %) et, dans Chromium 151, Firefox 153 et WebKit 26, le point à 2 px du coin ne reçoit pas le clic.

Quatre variantes de couleur : --info (#3b82f6 → #6366f1), --success (#10b981 → #059669), --danger (#ef4444 → #dc2626), toutes trois en texte blanc, et --warning (#f59e0b → #d97706) en texte #1a1a2e. Le compteur .nb-count est un rond de 22 px en blanc à 25 %, texte de 10,4 px. Au survol, en 0,3 s avec rebond (cubic-bezier(0.34, 1.56, 0.64, 1)) : scale(1.06) et brightness(1.2). Aucun JavaScript.

L'encoche vit dans une variable CSS sur le badge, --ntb-notch, sans <clipPath> SVG ni id : rien à ajouter à la page, et une seule ligne à changer pour retoucher les quatre coins de tous les badges. Ses points mêlent pixels et pourcentages (calc(100% - 6px)) : l'encoche garde 6 px, que le badge soit court ou long.

Accessibilité

  • Contraste (12,8 px en graisse 700 : texte normal, seuil 4,5:1), mesuré sur la couleur de départ : alerte 7,9:1 (texte sombre) ; info 3,7:1, erreur 3,8:1 et succès 2,5:1 en texte blanc — sous le seuil. Assombrissez le départ : #2563eb, #b91c1c et #047857 passent au-dessus de 4,5:1. Le chiffre du compteur, sur un rond plus clair, perd encore un peu.
  • Couleur seule : le libellé dit l'état (« Retard », « Incident »), la couleur ne fait que le doubler — gardez toujours un mot. Le compteur seul (« 3 ») n'a pas de sens pour un lecteur d'écran : écrivez aria-label="Erreurs : 3" sur le badge, ou un texte masqué visuellement dans .nb-count.
  • Clavier et mouvement : des div avec cursor: pointer, sans rôle ni tabindex (Tab ne s'y arrête pas, mesuré). Pour des filtres cliquables, utilisez des <button aria-pressed> ; clip-path rogne l'anneau de focus, prévoyez un :focus-visible qui change le fond. Pas de prefers-reduced-motion : le grossissement de 6 % reste actif sous la préférence.

Compatibilité navigateur

CSS seul : clip-path: polygon() avec calc(), propriété personnalisée --ntb-notch, flexbox, dégradés, filter: brightness(). Zéro JavaScript, zéro SVG. Mesuré collé dans une page vierge : encoches identiques dans Chromium 151, Firefox 153 et WebKit 26.

Chrome 55+✓ Complet
Firefox 54+✓ Complet
Safari 13.1+✓ Complet
Edge 79+✓ Complet
Mobile iOS 13.4+✓ Complet
Android Chrome 55+✓ Complet

Sans clip-path (Firefox avant 54, Safari avant 13.1 sans le préfixe -webkit-clip-path), les badges sont des rectangles lisibles, couleurs et compteurs intacts.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec Premium) :

index.html — structure
<div class="demo-preview">
  <div class="notch-badges-wrap">
    <div class="notch-badge notch-badge--info">… <span class="nb-count">…</span></div>
    <div class="notch-badge notch-badge--success">… <span class="nb-count">…</span></div>
    <div class="notch-badge notch-badge--warning">… <span class="nb-count">…</span></div>
    <div class="notch-badge notch-badge--danger">… <span class="nb-count">…</span></div>
  </div>
</div>
Débloquer le code complet — 9,90 € TTC/mois

Le code complet HTML + CSS + JS de Notched Badge System, prêt à coller — et les 840 effets. Ou 299 € TTC une fois, accès à vie.

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Taille de l'encoche (CSS — --ntb-notch sur .notch-badge) carré de 6 px à chaque coin Remplacez les seize 6px du polygon() (douze points) : 4 px pour un petit badge, 10 px pour un badge de 60 px de haut. Au-delà du quart de la hauteur, l'encoche mord sur le texte.
Couleurs (CSS — .notch-badge--info, --success, --warning, --danger) bleu, vert, ambre, rouge en dégradé à 135° Ajoutez une variante en copiant une règle : .notch-badge--neutral { background: linear-gradient(135deg, #475569, #334155); color: #fff }.
Marges internes (CSS — padding de .notch-badge) 12 px × 24 px (46 px de haut) 8px 14px pour un badge compact de 38 px ; l'encoche en pixels reste la même.
Compteur (CSS — .nb-count) rond de 22 px, blanc à 25 %, 10,4 px Au-delà de deux chiffres, passez en pastille : width: auto; min-width: 22px; padding: 0 6px; border-radius: 11px.
Survol (CSS — .notch-badge:hover) scale(1.06), brightness(1.2), 0,3 s avec rebond Supprimez la règle pour des badges d'information non cliquables : le grossissement fait croire à un bouton.

FAQ

Parce que les badges n'ont pas la même largeur : de 125,9 à 152,6 px ici. En pourcentages, une encoche de 4 % ferait 6 px de large sur un badge et 5 px sur l'autre, et 1,8 px de haut — un rectangle aplati, différent sur chaque badge. En calc(100% - 6px), chaque coin perd le même carré de 6 × 6 px, quelle que soit la longueur du libellé.
Oui, en retirant les points des deux autres coins : polygon(0 6px, 6px 6px, 6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) calc(100% - 6px), calc(100% - 6px) 100%, 0 100%) encoche le haut gauche et le bas droit. Remplacez la valeur de --ntb-notch, rien d'autre ne change.
Remplacez chaque div par un <button type="button" class="notch-badge notch-badge--info" aria-pressed="false"> : la forme et les couleurs suivent la classe. Ajoutez border: none et font: inherit à .notch-badge, qu'un bouton n'hérite pas. Au clic, basculez aria-pressed et filtrez votre liste ; marquez le filtre actif autrement que par la couleur, par exemple .notch-badge[aria-pressed="true"] { box-shadow: inset 0 0 0 2px #fff }. Comme clip-path rogne l'anneau de focus par défaut, donnez au badge un :focus-visible qui change son fond (background: #1a1a2e; color: #fff) : Tab s'y arrête alors, et la sélection se voit.