# Adeo Mozaic-Designsystem

## Adeo Mozaic-Designsystem – Interface-Vorschau

Gib eine Menge ein oder ändere sie schrittweise, teste die Grenzwerte und erstelle eine lokale Materialliste.

## Adeo Mozaic-Designsystem – Designreferenz

Die Mozaic-Dokumentation zu SCSS/BEM nennt auf den Grundlagen- und Installationsseiten v1.85.0; in der Referenz zum Mengensteuerungscode ist v1.76.0 angegeben. Dies sind dokumentierte Referenzstände und keine Aussage dazu, dass alle Seiten dieselbe neueste Paketversion verwenden.

### Referenzen zur Magic Unit

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| mu025 | 4px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu050 | 8px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu075 | 12px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu100 | 16px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu125 | 20px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu150 | 24px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu175 | 28px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu200 | 32px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu250 | 40px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu300 | 48px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu350 | 56px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu400 | 64px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu500 | 80px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu600 | 96px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
| mu700 | 112px | Rem-basierte Abstandsreferenz; das Pixeläquivalent setzt die dokumentierte Basis von 16 px voraus. |
### Schaltflächenabmessungen

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| Small height | 32px / 2mu | Kompakte Steuerelemente. |
| Medium height | 48px / 3mu | Für die Mengensteuerung auf Mobilgeräten verwenden. |
| Large height | 56px / 3.5mu | Große, stark hervorgehobene Aktion. |
| Text + icon, small / medium | 24px icon | Symbol und Beschriftung ausgewogen halten. |
| Text + icon, large | 32px icon | Große Schaltfläche. |
| Icon-only, medium / large | 32px icon | Quadratisches Steuerelement. |
### Hierarchie des Fließtexts

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| mt-body-m | 16px regular | Standard-Fließtext. |
| Small body | 14px | Empfohlene Mindestgröße für mehrzeiligen Fließtext. |
| Large body | 18px | Empfohlene maximale Absatzgröße. |
### Aufbau der Mengensteuerung

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| mc-quantity-selector | Wrapper | Enthält zwei Steuerelemente und das Eingabefeld. |
| mc-quantity-selector__input | Input element | Zusätzlich mc-text-input anwenden. |
| mc-quantity-selector__button-left | Decrement element | Zusätzlich mc-button--square und --bordered anwenden. |
| mc-quantity-selector__button-right | Increment element | Zusätzlich mc-button--square und --bordered anwenden. |
| Small composition | mc-text-input--s + mc-button--s | Die gesamte Gruppe gemeinsam ändern. |
| is-disabled | Visual state class | Für das tatsächliche Verhalten mit dem nativen Attribut disabled kombinieren. |
### Erstellung und Anpassung

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| postcssPluginConfig | @mozaic-ds/css-dev-tools/postcssPluginConfig | Erforderliche Plugin-Liste. |
| Parser | postcss-scss | SCSS-Quellcode lesen. |
| Production environment | MOZAIC_ENV=production | Ermöglicht die Konfiguration von Produktions-Plugins. |
### Abstandshilfen

| Name / Regel | Wert / Konfiguration | Verwendung |
| --- | --- | --- |
| mu-mb-100 | 16px bottom margin | Abstand zwischen Komponenten. |
| mu-pl-050 | 8px left padding | Abstände über Hilfsklassen. |
| make-space-util(m, t, 075) | Top margin at mu075 | Eine ausgewählte Hilfsklasse generieren. |
## Adeo Mozaic-Designsystem – vollständiger Leitfaden

Ein praktischer Leitfaden zur Auswahl, Anwendung und Überprüfung dieses Systems für ein echtes Interface.

Umfassende Anleitung, Einstieg in die Implementierung und Links zu den Quellen.

## Adeo Mozaic-Designsystem: SCSS-Komponenten mit einer konfigurierbaren Einzelhandelsidentität

### ADEO ist die Organisation, nicht die Standardvoreinstellung

> Mozaic stellt Quellstile und Tokens getrennt von Schriftarten und SVG-Symbolen bereit. Das Standard-Token-Theme ist Leroy Merlin; ADEO ist eine ausdrücklich wählbare Voreinstellung. Eine grüne Originalvorschau ist daher kein Beleg für eine offizielle ADEO-Unternehmensfarbe.

Lege für die ADEO-Voreinstellung eine Datei namens mozaic.config.js mit preset: "adeo" und tokens.localTokensExportPath an und führe anschließend npx mozaic-tokens-build aus. Ein benutzerdefiniertes Token-Verzeichnis führt einen Deep Merge der entsprechenden JSON-Pfade durch, anstatt nicht zugehörige Werte zu ersetzen. Theme-Generierung und Komponentenstile sind getrennte Build-Aufgaben.

- styles stellt SCSS-Komponenten bereit.

- tokens stellt Quell- und generierte Token-Formate bereit.

- web-fonts und icons stellen separate Assets bereit.

- css-dev-tools stellt Build- und Lint-Konfigurationen bereit.

Unterstützende Spezifikation lesen

## Adeo Mozaic-Designsystem: Magic Unit verwenden, ohne Textcontainer starr zu begrenzen

### Eine rem-basierte Referenz mit 16 px

Im unteren Bereich von Mozaics Skala gibt es Schritte von einem Viertel der Einheit, im mittleren Bereich Schritte von einer halben Einheit und bei größeren Abständen ganze Einheiten. Die Referenztabelle zeigt die tatsächlich benannten Abstufungen, ohne ein zweites Abstandssystem einzuführen.

Der Planer verwendet Abstände von 16 px, Innenabstände von 24 px und eine Steuerelementhöhe von 48 px. Damit folgt die Komponente demselben Rhythmus, während umgebende Karten und Texte flexibel wachsen können. Eine minimale Steuerelementhöhe ist besser, als eine übersetzte oder vergrößerte Beschriftung in einem starren Inhaltsbereich abzuschneiden.

Unterstützende Spezifikation lesen

## Adeo Mozaic-Designsystem: Fließtext neben dichten Steuerelementen gut lesbar halten

### Drei praktische Schriftgrößen für Fließtext

Die dokumentierte Fließtextskala hat 16 px in normaler Stärke als Mittelwert. 14 px ist die empfohlene Untergrenze für mehrzeiligen Text, 18 px die empfohlene Obergrenze für Absätze. Die Vorschau verwendet einen Systemschriftarten-Fallback und gibt nicht vor, das Web-Font-Paket von Mozaic mitzuliefern.

Verwende den größeren Titel, um das Projekt zu benennen, Fließtext, um die Berechnung zu erläutern, und eine kleinere Zusatzzeile, um den Umfang des Beispiels zu beschreiben. Die Materialwerte bleiben echter Text und werden nicht in die Regalillustration hineingezeichnet.

Unterstützende Spezifikation lesen

## Adeo Mozaic-Designsystem: Eine Komponente, drei aufeinander abgestimmte Elemente

### Der Wrapper stellt keinen Anwendungsstatus bereit

Die Mengensteuerung kombiniert eine quadratische Schaltfläche mit Umrandung zum Verringern, ein numerisches Eingabefeld und eine passende Schaltfläche zum Erhöhen. Importiere die Stile aller drei Komponenten, einschließlich Texteingabe und Schaltfläche; nur quantity-selector zu importieren ergibt nicht die dokumentierte Komposition.

Wenn Sie eine kompakte Variante verwenden, ändern Sie die Größe von Schaltflächen und Eingabefeldern gemeinsam. Die Nutzungshinweise verlangen an kleinen Breakpoints die mittlere Größe. Auf einem Smartphone alles zu verkleinern, wäre also die falsche Optimierung. Die Vorschau behält Steuerelemente mit 48px bei und stapelt stattdessen die umgebenden Elemente.

Unterstützende Spezifikation lesen

## Adeo Mozaic Designsystem: Die Gestaltung von Grenzwerten muss dem tatsächlichen Verhalten entsprechen

### Bei einer Texteingabe gibt es mehr Zustände als Plus und Minus

Das ursprüngliche Beispiel validiert Ganzzahlen von 1 bis 12. Bei eins ist das Verringern tatsächlich deaktiviert, bei zwölf das Erhöhen. Die Klasse is-disabled allein würde die Aktivierung per Tastatur nicht verhindern. Das native disabled-Attribut und die visuelle Klasse sind aufeinander abgestimmt.

Ein leerer oder gebrochener Eingabewert wird nicht stillschweigend in eine plausible Materialliste umgewandelt. Beim Absenden wird der zulässige Bereich erläutert und das Feld fokussiert. Bei einer anschließenden Änderung wird das zuvor erstellte Ergebnis gelöscht, da es sich auf die vorherige Menge bezog. Die Berechnung der Regalböden ist ein fiktives Beispiel und keine bauliche oder kaufmännische Empfehlung.

1. Den eingegebenen Wert auslesen, ohne eine leere Zeichenfolge als null zu behandeln.

2. Ganzzahligkeit und Wertebereich prüfen, bevor die Beispielanzahlen berechnet werden.

3. Beide Grenzwert-Schaltflächen und den barrierefrei zugänglichen Fehlerstatus aktualisieren.

4. Erst nach erfolgreicher Validierung eine lokale Momentaufnahme erstellen.

Unterstützende Spezifikation lesen

## Adeo Mozaic Designsystem: Eine einzige primäre Aktion für das Projektergebnis verwenden

### Schrittweise Änderung und Vorbereitung voneinander trennen

Der Stepper verwendet zurückhaltende, umrandete quadratische Steuerelemente, da er einen Eingabewert ändert. Die hervorgehobene Schaltfläche „Materialliste vorbereiten“ wirkt sich auf das gesamte Formular aus. Zwei nebeneinanderliegende, gleichfarbige hervorgehobene Aktionen würden diesen Unterschied verwischen.

In der resultierenden Meldung wird ausdrücklich darauf hingewiesen, dass nichts bestellt wurde. Es gibt keinen vorgetäuschten Ladezustand, Zahlungsablauf oder Netzwerkaufruf. Eine konkrete Zusammenfassung genügt, um den Zusammenhang zwischen Werten und Aktionen zu veranschaulichen.

Unterstützende Spezifikation lesen

## Adeo Mozaic Designsystem: Die dokumentierten Importe über die Mozaic-Pipeline kompilieren

### Zuerst die Einstellungen, dann die Komponentenausgabe

Der Import aller Einstellungen stellt Variablen, Funktionen und Mixins bereit, erzeugt für sich genommen aber kein CSS für Komponenten. Das bereitgestellte Bundle lädt anschließend text-input, button und quantity-selector. Die mitgelieferte Plugin-Konfiguration löst die Mozaic-Importpfade auf und führt die vorgesehenen Verarbeitungsschritte aus.

Die Einrichtung stellt einen PostCSS-CLI-Runner bereit, da das Plugin-Paket keinen eigenen mitliefert. Für die Produktion ändert MOZAIC_ENV die Plugin-Konfiguration. Auf der Installationsseite wird jetzt Node 20+ vorausgesetzt und Dart Sass empfohlen. Ältere Hinweise zu Node Sass sollten nicht als Grund für die Installation des veralteten Compilers herangezogen werden.

Unterstützende Spezifikation lesen

## Adeo Mozaic Designsystem: Abstände außerhalb der Komponenteninterna mit Utilities festlegen

### Skalenwerte verwenden, wenn das Layout in den Zuständigkeitsbereich der Komponente fällt

Die Margin- und Padding-Utilities von Mozaic sind für Abstände zwischen Komponenten vorgesehen. Innerhalb einer neuen Komponente sollten Sie SCSS-Variablen für Magic Units verwenden, damit die Komponente in sich geschlossen bleibt. Um die gewünschte Dimension beizubehalten, muss unter Umständen ein Rahmen abgezogen werden, etwa mit calc($mu025 - 1px).

Die Offline-Demo beansprucht nicht, Mozaic CSS nativ auszuführen. Sie interpretiert die dokumentierten Maße und die Struktur der Mengenangabe mit eigenen Farben, einer CSS-Regalillustration und einer ausschließlich lokalen Interaktion. Der separate Codeblock enthält die tatsächlichen Bibliotheksklassen und die Build-Anbindung.

Unterstützende Spezifikation lesen

## Adeo Mozaic – Beispiele für Komponenten des Designsystems

### Vollständige, eigenständige interaktive Demo

Speichere das vollständige Dokument als index.html und öffne es in einem Browser. Eigenständige Offline-Interpretation von Mozaics Magic Unit und Mengensteuerung für mittlere Größen mit HTML/CSS; eigene Illustration und Anwendungspalette, keine native CSS-Bibliothek.

```
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>Shelf materials planner</title><style>*{box-sizing:border-box}body{margin:0;background:#f6f5ef;color:#242920;font:16px/1.5 Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #23682c;outline-offset:4px}header{border-bottom:1px solid #d9ddd1;padding:16px 32px;display:flex;justify-content:space-between;gap:16px}header b{font-size:18px}header span,.note{font-size:14px;color:#5a6154}main{max-width:1056px;margin:auto;padding:32px}h1{font-size:36px;line-height:1.1;letter-spacing:-1px;margin:8px 0 16px}p{margin:0 0 16px}.eyebrow{font-size:12px;letter-spacing:2px;color:#23682c;font-weight:bold}.layout{display:grid;grid-template-columns:1.1fr 1fr;gap:32px}.art{background:#e5eadc;border-radius:4px;min-height:350px;display:grid;place-items:center;position:relative;overflow:hidden}.wall{width:78%;height:220px;background:linear-gradient(90deg,transparent 49.6%,#d8dfcf 50%,transparent 50.4%);position:relative}.board{position:absolute;left:0;right:0;top:130px;height:18px;background:repeating-linear-gradient(0deg,#bd9b6e 0 3px,#c6a477 3px 7px);box-shadow:0 10px 12px #26341b20;transform:skewY(-3deg)}.bracket{position:absolute;top:148px;width:12px;height:62px;background:#727867;transform:skewY(-3deg)}.bracket.a{left:15%}.bracket.b{right:15%}.pot{position:absolute;left:23%;top:58px;width:47px;height:72px;background:#c88462;border-radius:3px 3px 15px 15px}.leaf{position:absolute;width:52px;height:34px;background:#3d6e38;left:4px;top:-22px;border-radius:100% 0 100% 0;transform:rotate(-25deg)}.leaf:after{content:'';position:absolute;width:45px;height:30px;background:#638a47;left:20px;top:-15px;border-radius:0 100% 0 100%;transform:rotate(45deg)}.books{position:absolute;top:48px;right:20%;height:80px;display:flex;gap:4px;align-items:end}.books i{width:18px;height:76px;background:#f4efe4;display:block;border-top:6px solid #7f9673}.books i:nth-child(2){height:88px;background:#d3b795}.books i:nth-child(3){height:68px;background:#718268;transform:rotate(-10deg)}.art small{position:absolute;bottom:16px;left:24px;color:#526448}.panel{background:#fff;padding:24px;border:1px solid #d9ddd1;border-radius:4px}h2{font-size:24px;line-height:1.25;margin:0 0 8px}label{display:block;font-weight:bold;margin:24px 0 8px}.quantity{display:flex;max-width:240px;margin-bottom:8px}.quantity button,.quantity input{height:48px;border:1px solid #727a6a;background:#fff}.quantity button{width:48px;color:#23682c;font-size:24px;flex-shrink:0}.quantity button:first-child{border-radius:4px 0 0 4px}.quantity button:last-child{border-radius:0 4px 4px 0}.quantity input{width:96px;min-width:0;border-left:0;border-right:0;text-align:center;appearance:textfield}.quantity input::-webkit-inner-spin-button{appearance:none}button:disabled{color:#a2a69b;background:#f1f2ed;cursor:default}.materials{margin:24px 0;display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #d9ddd1;padding:16px 0}.materials strong{font-size:24px;display:block}.materials span{font-size:14px;color:#62695c}.primary{min-height:48px;padding:12px 24px;background:#23682c;color:#fff;border:0;border-radius:4px;width:100%;font-weight:bold}.error{color:#ac2323;margin:8px 0;font-size:14px}.result{margin-top:16px;background:#eaf3e2;padding:16px;border-left:4px solid #23682c}.result:empty{display:none}footer{padding-top:24px;font-size:14px;color:#62695c}@media(max-width:650px){header{padding:16px}header span{max-width:140px}main{padding:24px 16px}h1{font-size:32px}.layout{grid-template-columns:1fr;gap:16px}.art{min-height:260px}.panel{padding:24px}.materials{gap:12px}}
</style><header><b>PROJECT WORKSHOP</b><span>Original Mozaic interpretation</span></header><main><p class="eyebrow">SMALL PROJECT · BIG DIFFERENCE</p><h1>Make room for what matters.</h1><p>Plan a simple shelf arrangement and prepare its sample materials list.</p><div class="layout"><div class="art" role="img" aria-label="Original illustration of a wooden shelf with books and a potted plant"><div class="wall"><div class="board"></div><div class="bracket a"></div><div class="bracket b"></div><div class="pot"><div class="leaf"></div></div><div class="books"><i></i><i></i><i></i></div></div><small>Original shelf illustration</small></div><form class="panel" id="planner" novalidate><h2>Your shelf project</h2><p class="note">Each sample shelf uses one board, two brackets and four screws.</p><label for="quantity">Number of shelves</label><div class="quantity"><button id="minus" type="button" aria-label="Remove one shelf" aria-controls="quantity">−</button><input id="quantity" type="number" min="1" max="12" step="1" required value="2" aria-describedby="hint error"><button id="plus" type="button" aria-label="Add one shelf" aria-controls="quantity">+</button></div><p class="note" id="hint">Choose a whole number from 1 to 12.</p><p class="error" id="error" role="alert"></p><div class="materials" aria-live="polite"><div><strong id="boards">2</strong><span>Boards</span></div><div><strong id="brackets">4</strong><span>Brackets</span></div><div><strong id="screws">8</strong><span>Screws</span></div></div><button type="submit" class="primary">Prepare materials list</button><div id="result" class="result" role="status"></div></form></div><footer>Local interaction example. No order is placed. Sample quantities are illustrative, not structural guidance.</footer></main><script>const input=document.querySelector('#quantity'),minus=document.querySelector('#minus'),plus=document.querySelector('#plus'),error=document.querySelector('#error'),result=document.querySelector('#result');function number(){return input.value.trim()===''?NaN:Number(input.value)}function valid(n){return Number.isInteger(n)&&n>=1&&n<=12}function update(show=false){const n=number(),ok=valid(n);result.textContent='';minus.disabled=ok&&n===1;plus.disabled=ok&&n===12;input.setAttribute('aria-invalid',String(!ok&&show));error.textContent=!ok&&show?'Enter a whole number from 1 to 12.':'';document.querySelector('#boards').textContent=ok?n:'—';document.querySelector('#brackets').textContent=ok?n*2:'—';document.querySelector('#screws').textContent=ok?n*4:'—';return ok}minus.onclick=()=>{input.value=String(Math.max(1,(valid(number())?number():1)-1));update()};plus.onclick=()=>{input.value=String(Math.min(12,(valid(number())?number():0)+1));update()};input.oninput=()=>update();document.querySelector('#planner').onsubmit=e=>{e.preventDefault();if(!update(true)){input.focus();return}result.textContent=`Local list prepared: ${number()} boards, ${number()*2} brackets and ${number()*4} screws. Nothing was ordered.`};update();</script></html>
```

Code-Referenz

- Aus den Regalmengen entsteht eine Materialliste, keine Bestellung. Das native Markup benötigt die dokumentierte Mozaic-PostCSS-Ausgabe; dieses eigenständige Dokument enthält eigene Interpretationsstile.

### Begrenzte Regalmenge und abgeleitete Materialliste

Echte Mozaic-Klassen umschließen ein natives Zahlenfeld. JavaScript übernimmt die Ganzzahlvalidierung, deaktiviert die Schaltflächen an den Grenzen und erstellt eine ausschließlich lokale Zusammenfassung.

```
<!doctype html>
<html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="./mozaic.css"><title>Shelf materials</title>
<main><h1>Plan a shelf project</h1>
<form id="planner" novalidate>
<label for="quantity">Number of shelves</label>
<p id="hint">Choose 1 to 12. Each sample shelf needs two brackets and four screws.</p>
<div class="mc-quantity-selector">
<button type="button" id="minus" class="mc-button mc-button--square mc-button--bordered mc-quantity-selector__button-left" aria-controls="quantity" aria-label="Remove one shelf">−</button>
<input id="quantity" name="quantity" class="mc-text-input mc-quantity-selector__input" type="number" min="1" max="12" step="1" value="2" required aria-describedby="hint error">
<button type="button" id="plus" class="mc-button mc-button--square mc-button--bordered mc-quantity-selector__button-right" aria-controls="quantity" aria-label="Add one shelf">+</button>
</div>
<p id="error" role="alert"></p><p id="counts" aria-live="polite"></p>
<button type="submit" class="mc-button">Prepare materials list</button>
<p id="result" role="status"></p></form></main>
<script>
const input=document.querySelector('#quantity'), minus=document.querySelector('#minus'), plus=document.querySelector('#plus');
const error=document.querySelector('#error'), counts=document.querySelector('#counts'), result=document.querySelector('#result');
function number(){return input.value.trim()===''?NaN:Number(input.value);}
function valid(n){return Number.isInteger(n)&&n>=1&&n<=12;}
function update(showError=false){
 const n=number(),ok=valid(n); result.textContent='';
 minus.disabled=ok&&n===1; plus.disabled=ok&&n===12;
 minus.classList.toggle('is-disabled',minus.disabled);plus.classList.toggle('is-disabled',plus.disabled);
 input.setAttribute('aria-invalid',String(!ok&&showError));
 error.textContent=!ok&&showError?'Enter a whole number from 1 to 12.':'';
 counts.textContent=ok?`${n} boards · ${n*2} brackets · ${n*4} screws`:'Enter a quantity to calculate materials.';
 return ok;
}
minus.onclick=()=>{input.value=String(Math.max(1,(valid(number())?number():1)-1));update();};
plus.onclick=()=>{input.value=String(Math.min(12,(valid(number())?number():0)+1));update();};
input.oninput=()=>update();
document.querySelector('#planner').onsubmit=e=>{e.preventDefault();if(!update(true)){input.focus();return;}result.textContent=`Local list prepared: ${number()} boards, ${number()*2} brackets and ${number()*4} screws. Nothing was ordered.`;};
update();
</script></html>
```

Code-Referenz

- Die beiden Stepper-Schaltflächen verwenden type="button", damit sie das Formular nicht absenden.

- Die nativen Attribute min/max/step behalten ihre Bedeutung; eine benutzerdefinierte Validierung deckt leere und gebrochene Werte ab.

- Bei einer Mengenänderung wird der zuvor vorbereitete Stand ungültig.

## Adeo Mozaic – Einrichtung des Designsystem-Agenten

### Ausgangspunkt für die Implementierung

Öffentlicher SCSS-Workflow mit der dokumentierten PostCSS-Konfiguration. Speichere das HTML-Beispiel unter public/index.html. Der native Paket-Build wurde hier nicht ausgeführt; die Offline-Vorschau ist eine unabhängige Interpretation. Die aktuellen Installationshinweise verwenden Dart Sass und ersetzen damit die Angaben zu Node Sass auf der älteren PostCSS-Seite.

```
# Node 20+. Use a CommonJS project for this configuration.
npm install @mozaic-ds/styles sass
npm install --save-dev @mozaic-ds/css-dev-tools postcss postcss-cli postcss-scss
# Save the configuration and SCSS below, then build:
npx postcss src/bundle.scss --output public/mozaic.css
# Production build on a POSIX shell:
MOZAIC_ENV=production npx postcss src/bundle.scss --output public/mozaic.css

// postcss.config.js
module.exports = {
  syntax: require('postcss-scss'),
  plugins: require('@mozaic-ds/css-dev-tools/postcssPluginConfig')
};

// src/bundle.scss — settings must precede components.
@import 'settings-tools/all-settings';
@import 'components/c.text-input';
@import 'components/c.button';
@import 'components/c.quantity-selector';
```

### Ein Prompt für dein Projekt

```
Erstelle eine Mozaic-SCSS-Komposition mit settings-tools/all-settings vor text-input, button und quantity-selector. Verwende auf kleinen Bildschirmen mittlere Steuerelemente mit 48 px Höhe, deaktiviere Grenzschaltflächen nativ, validiere eingegebene Ganzzahlen und erstelle eine ausschließlich lokale Zusammenfassung. Verwende die dokumentierte PostCSS-Pipeline und unterscheide zwischen dem Leroy-Merlin-Standarddesign und der ADEO-Voreinstellung.
```

## Adeo Mozaic – Quellen und Geltungsbereich des Designsystems

Unabhängige OpenDesign-Referenz zu Mozaic. Das Beispiel ist weder ein ADEO- oder Leroy-Merlin-Shop noch eine Live-Bestellung oder eine Anleitung zur Konstruktion. Die Dokumentationsstände weisen unterschiedliche Versionsangaben auf.

- Installation Pakete, Node und Dart Sass.

- PostCSS-Konfiguration Erforderliche Plugin-Pipeline.

- SCSS-Imports Abhängigkeitseinstellungen und Importreihenfolge.

- Magic Unit Tatsächliche Abstandsabstufungen.

- Textkörper-Stile Dokumentierte Absatzgrößen.

- Schaltflächen Maße und Aktionshierarchie.

- Verwendung der Mengensteuerung Responsive Größe und vorgesehener Einsatz.

- Code für die Mengensteuerung BEM-Struktur und Abhängigkeits-Imports.

- Anpassung von Design-Tokens Standarddesign und Überschreibungen.

- Abstandshilfen Utility-Klassen und Komponentenabstände.

## Adeo Mozaic – Ressourcen zum Designsystem

### Adobe Spectrum

Lernen Sie React Spectrum v3 anhand einer auswählbaren Tabelle für kreative Assets und eines Inspektors für Exportvorgaben kennen. Erfahren Sie mehr über Provider-Themes und Eingabeskalen, unterstützte Style-Props, schlüsselbasierte Collections und die Abgrenzung zwischen v3 und der neueren Implementierung Spectrum 2.

### Alaska Airlines Auro

Entdecke Auro’s Alaska-Theme anhand echter semantischer Farb- und Typografie-Tokens, klassenbasierter Typografie und der nativen Flugkomponente. Zwei eigene Flugdaten zeigen lokale Filterung und Auswahl, ohne den Eindruck echter Airline-Angebote oder Buchungen zu erwecken.

### Arco Design

Erstelle mit Arcos gesteuerter Transfer-Komponente eine Auswahl für Berichtsabschnitte. Entdecke die tatsächlichen Abstands- und Größenabstufungen, CSS-Variablenkonventionen, semantischen Oberflächen und den Unterschied zwischen dem Auswählen und dem Verschieben von Zeilen.


- [Implementierungsreferenz](https://mozaic.adeo.cloud/components/form/quantity-selector/)
- [Quelle](https://mozaic.adeo.cloud/foundations/spacing/magic-unit/)
- [Quelle](https://mozaic.adeo.cloud/components/buttons/)
- [Quelle](https://mozaic.adeo.cloud/foundations/typography/body-styles/)
- [Quelle](https://mozaic.adeo.cloud/components/form/quantity-selector/code/)
- [Quelle](https://mozaic.adeo.cloud/get-started/developers/installation/postcss/)
- [Quelle](https://mozaic.adeo.cloud/foundations/spacing/margin-and-paddings/code/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/get-started/developers/customize-tokens/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/foundations/spacing/magic-unit/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/foundations/typography/body-styles/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/components/form/quantity-selector/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/components/form/quantity-selector/code/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/components/buttons/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/get-started/developers/installation/import/)
- [Unterstützende Spezifikation lesen](https://mozaic.adeo.cloud/foundations/spacing/margin-and-paddings/code/)
- [Code-Referenz](https://mozaic.adeo.cloud/components/form/quantity-selector/)
- [Code-Referenz](https://mozaic.adeo.cloud/components/form/quantity-selector/code/)
- [Installation Pakete, Node und Dart Sass.](https://mozaic.adeo.cloud/get-started/developers/installation/)
- [PostCSS-Konfiguration Erforderliche Plugin-Pipeline.](https://mozaic.adeo.cloud/get-started/developers/installation/postcss/)
- [SCSS-Imports Abhängigkeitseinstellungen und Importreihenfolge.](https://mozaic.adeo.cloud/get-started/developers/installation/import/)
- [Magic Unit Tatsächliche Abstandsabstufungen.](https://mozaic.adeo.cloud/foundations/spacing/magic-unit/)
- [Textkörper-Stile Dokumentierte Absatzgrößen.](https://mozaic.adeo.cloud/foundations/typography/body-styles/)
- [Schaltflächen Maße und Aktionshierarchie.](https://mozaic.adeo.cloud/components/buttons/)
- [Verwendung der Mengensteuerung Responsive Größe und vorgesehener Einsatz.](https://mozaic.adeo.cloud/components/form/quantity-selector/)
- [Code für die Mengensteuerung BEM-Struktur und Abhängigkeits-Imports.](https://mozaic.adeo.cloud/components/form/quantity-selector/code/)
- [Anpassung von Design-Tokens Standarddesign und Überschreibungen.](https://mozaic.adeo.cloud/get-started/developers/customize-tokens/)
- [Abstandshilfen Utility-Klassen und Komponentenabstände.](https://mozaic.adeo.cloud/foundations/spacing/margin-and-paddings/code/)
