<img>WrapperKonfiguration & Public API (Version –)
1. JSON-Block im <head>
<script id="ntg-ai-img-config" type="application/json"> –
wird beim Start eingelesen und über die Defaults gelegt.
–
2. Programmatisch: init(opts)
Überschreibt den JSON-Block (Defaults → JSON-Block → init).
Bereit.
Hinweis: Bereits gerenderte Badges werden von init()
nicht neu gezeichnet (Dedupe). „Anwenden" ruft daher
destroy() und anschließend init(opts) auf.
Icon: Der Default ist ohne Icon – die Testseite schaltet es über den JSON-Block ein. Feld leeren und „Anwenden" zeigt den Default.
3. getConfig()
Die aktuelle, zusammengeführte Konfiguration.
–
Elementtypen (Wrapper-Pfad vs. Kind-Pfad)
<picture>Wrapper<div> + BackgroundKind<video> im ContainerKind
<img>/<picture> werden in
<span class="ntg-ai-img-wrap"> gehüllt, das Badge liegt als
Overlay daneben. Bei allen anderen Elementen wird das Badge als Kind
eingehängt (position und isolation werden nur
gesetzt, wenn nötig – und in destroy() zurückgenommen).
Badge-Text pro Bild (Option texts + Varianten-Schlüssel)
defaultdata-ntg-ai-img="edited"data-ntg-ai-img-variantphoto – aus dem JSON-Blockillustration – aus dem JSON-Blockdefault
photo und illustration stammen aus dem JSON-Block:
texts wird mit den Defaults zusammengeführt, nicht ersetzt –
default, edited und background bleiben
also erhalten. Ein unbekannter Schlüssel fällt auf default zurück
und meldet eine console.warn-Warnung.
Eigener selector ([data-ntg-ai-img], .ai-image)
data-ntg-ai-img-variant
Ohne Marker-Attribut gibt es keinen Attributwert für die Variante – dafür
ist data-ntg-ai-img-variant da. Der Attribut-Observer reagiert
nur auf data-ntg-ai-img; bei nachträglich gesetzten Klassen ist
refresh() nötig.
Mindestgröße (minWidth/minHeight = 120, der Default)
Gemessen wird die gerenderte Größe (Fallback: intrinsische Bildgröße). Das 600×400-Bild unten ist per CSS auf 60px verkleinert und gilt deshalb als „klein":
Option ignore (.no-badge, #ignored-region)
.no-badge.no-badge#ignored-regionGetroffen wird das Element selbst oder ein Vorfahre (closest()).
Anpassung per CSS-Variablen
--radius, --padding, --bg/color-light--font-size, --gap, --offset--bg-dark, --color-dark (Dark Mode)--z-index: 999
Die letzte Karte zeigt die Isolation: Das Badge hat
--ntg-ai-img-z-index: 999 und liegt trotzdem unter dem
Overlay der Seite, weil der Wrapper einen eigenen Stacking-Context bildet.
Der z-index wirkt also nur innerhalb des Bild-Containers.
Hero
Slider (CSS Scroll-Snap)
Produktliste
Produktdetail
Galerie-Thumbnails (64×64) — markiert, aber < Mindestgröße → kein Badge:
Masonry
AJAX / dynamisch nachgeladen (MutationObserver)
Der zweite Button setzt data-ntg-ai-img auf ein bestehendes
Bild – der Attribut-Observer badgt es ohne weiteres Zutun.