Plattformübergreifende und mobile Benutzeroberflächen · Neue Ressource

Vant-Designsystem.

Ein mobiler Ablauf zur Adressauswahl mit Vant 4: echten CSS-Variablen, kontrollierter Adressidentität, Feldvalidierung, Theme-Wechsel und explizitem Speichern ausschließlich lokal.

OpenDesign-Leitfaden9 Kapitel34 ReferenzeinträgeOriginaler Anwendungsleitfaden
01

Vant Designsystem – Oberflächenvorschau

Empfänger auswählen, Adresse bearbeiten, neuen Eintrag validieren und das Design der nativen Komponente wechseln.

Lieferadresse für das BeispielpaketVollständiges Beispiel öffnen
Native Vant 4.10.2 mit Vue 3. Die Papiergrafik und das umgebende Layout sind eigens gestaltet. · Implementierungsreferenz
02

Vant-Designsystem – Designreferenz

Variablen von Vant 4.10.2 CSS, aus dem installierten Basis-Stylesheet ausgelesen. Die Vorschau wendet über ConfigProvider eine eigens festgelegte primäre Türkisfarbe an; die Standardrollen unten sind ausdrücklich als solche gekennzeichnet.

Standard-Farbrollen

Quelle
Name / RegelWert / KonfigurationVerwendung
--van-primary-colorvar(--van-blue)Standardalias für Aktionen; Blau ist #1989fa.
--van-success-colorvar(--van-green)Alias für Erfolg; Grün ist #07c160.
--van-danger-colorvar(--van-red)Alias für Gefahr; Rot ist #ee0a24.
--van-warning-colorvar(--van-orange)Alias für Warnungen; Orange ist #ff976a.
--van-text-colorvar(--van-gray-8)Alias für Haupttext; gray-8 ist #323233.
--van-text-color-2var(--van-gray-6)Alias für sekundären Text; gray-6 ist #969799.
--van-border-colorvar(--van-gray-3)Alias für Trennlinien; gray-3 ist #ebedf0.
--van-backgroundvar(--van-gray-1)Seitenoberfläche; gray-1 ist #f7f8fa.
--van-background-2var(--van-white)Komponentenoberfläche; Weiß ist #fff.

Abstandsskala

Quelle
Name / RegelWert / KonfigurationVerwendung
--van-padding-base4pxKleiner interner Abstand.
--van-padding-xs8pxKleiner Innenabstand.
--van-padding-sm12pxInnenabstand des Adresselements.
--van-padding-md16pxStandardabstand zum Seitenrand.
--van-padding-lg24pxInnenabstand des Abschnitts.
--van-padding-xl32pxGroßer Abstand zum Seitenrand.

Typografie und Form

Quelle
Name / RegelWert / KonfigurationVerwendung
--van-font-size-xs10pxStandardgröße für Bedienelemente.
--van-font-size-sm12pxStandardgröße für Bedienelemente.
--van-font-size-md14pxStandardgröße für Bedienelemente.
--van-font-size-lg16pxStandardgröße für Bedienelemente.
--van-line-height-xs14pxZugehöriger Zeilenhöhen-Token.
--van-line-height-sm18pxZugehöriger Zeilenhöhen-Token.
--van-line-height-md20pxZugehöriger Zeilenhöhen-Token.
--van-line-height-lg22pxZugehöriger Zeilenhöhen-Token.
--van-radius-sm2pxBenannter Eckenradius.
--van-radius-md4pxBenannter Eckenradius.
--van-radius-lg8pxBenannter Eckenradius.
--van-radius-max999pxBenannter Eckenradius.
--van-disabled-opacity.5Standarddeckkraft für deaktivierte Elemente.
--van-duration-base.3sStandard-Übergangsdauer.

Anpassungen für Adressliste und Vorschau

Quelle
Name / RegelWert / KonfigurationVerwendung
--van-address-list-padding12px 12px 80pxDer offizielle Standard lässt Platz für die Schaltfläche zum Hinzufügen am unteren Rand.
themeVars.addressListPadding12pxEigens vorgenommene Anpassung, da diese Vorschau die fixierte Schaltfläche zum Hinzufügen ausblendet.
themeVars.primaryColor#176b77 Eigens festgelegte Primärfarbenüberschreibung, die --van-primary-color zugewiesen wird.
--van-address-list-item-font-size13pxOffizielle Textgröße für Adressen.
--van-address-list-edit-icon-size20pxOffizielle Größe des Bearbeitungssymbols; sie bezeichnet nicht die gesamte berührbare Fläche.
03

Vant-Designsystem – vollständiger Leitfaden

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

DESIGN-vant.md

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

Leitfaden herunterladen

Vant-Designsystem: mobile Komponenten mit expliziten Rollen für CSS

Mobile Komponenten mit expliziten Rollen für CSS

Vant ist für mobile Weboberflächen mit Vue vorgesehen. AddressList, Field und CellGroup bieten kompakte Zeilen für Empfängeradressen und Formularfelder statt einer Desktop-Verwaltungstabelle. Der Ablauf im Beispielpaket nutzt diese nativen Komponenten und zeigt das ausgewählte Ziel in einer separaten Zusammenfassung an.

Aus diesem OpenDesign-Leitfaden

Die Primärrolle ist standardmäßig über --van-primary-color auf Blau gesetzt. Erfolg, Gefahr und Warnung verweisen jeweils auf eigene Farbvariablen. In diesem Beispiel wird die Primärfarbe über ConfigProvider bewusst auf #176b77 geändert; dieses Türkis wird nicht als offizielle Markenfarbe von Vant bezeichnet. Die eigens gestaltete Papiergrafik dient der Dekoration und vermittelt keinen Status eines Bedienelements.

Unterstützende Spezifikation lesen

Vant-Designsystem: Die Vier-Pixel-Abstandsskala und kompakte Schriftgrößen

Die Vier-Pixel-Abstandsskala und kompakte Schriftgrößen

Vant stellt Abstände von 4, 8, 12, 16, 24 und 32 Pixeln bereit. Es handelt sich um tatsächliche Basisvariablen, nicht um Werte, die aus einem Screenshot abgeleitet wurden. Die Elemente der Adressliste verwenden den Token für kleine Abstände. Die umgebende Vorschau ergänzt größere Abstände zwischen Abschnitten, damit Formular und Bestellübersicht klar voneinander getrennt sind.

Die benannten Textgrößen reichen von 10 bis 16 Pixel, die zugehörigen Zeilenhöhen von 14 bis 22 Pixel. Für Adresstext gibt es eine eigene Komponentenvariable mit 13 px. In einem mobilen Produkt kann eine größere redaktionelle Schrift als diese Standardwerte für Bedienelemente erforderlich sein: Die Überschrift des Beispiels ist eigens auf 32 px ausgelegt und wird am Seitenumbruch auf 27 px verkleinert.

Unterstützende Spezifikation lesen

Vant-Designsystem: Eine Adress-ID steuert die Auswahl per Optionsfeld

Eine Adress-ID steuert die Auswahl per Optionsfeld

AddressList erhält Listeneinträge mit id, name, tel, address und optional isDefault. Der Wert von v-model gibt den ausgewählten Eintrag an. Die Zusammenfassung wird berechnet, indem anhand dieser ID der passende Eintrag in der aktuellen Liste gesucht wird. Wird ein Empfänger bearbeitet, aktualisiert sich das angezeigte Ziel sofort, ohne dass ein zweiter, unabhängiger Zusammenfassungsstatus erforderlich ist.

Das nicht verfügbare Lager wird über disabled-list übergeben und mit einer verständlichen Erklärung als deaktiviert gekennzeichnet. Es bleibt zur Orientierung sichtbar, kann aber nicht als Ziel ausgewählt werden. Das Badge „Standard“ kennzeichnet den Standardstatus des Eintrags. Es ist unabhängig von der aktuellen Auswahl und ändert sich nicht, wenn eine andere Radio-Option gewählt wird.

Unterstützende Spezifikation lesen

Designsystem von Vant: Den Entwurf vom gespeicherten Eintrag getrennt halten

Entwurf und gespeicherten Datensatz getrennt halten

Das Ereignis edit übergibt den Adressdatensatz. Der Editor kopiert nur die bearbeitbaren Felder in einen reaktiven Entwurf und speichert die unveränderliche ID separat. Beim Abbrechen wird dieser Entwurf ausgeblendet, ohne die gespeicherte Adresse zu ändern. Beim Speichern wird der passende Eintrag ersetzt oder ein neuer lokaler Eintrag angefügt. Anschließend wird dessen ID ausgewählt.

Das Beispiel zeigt den Editor direkt unter der Liste, anstatt ein Popup am unteren Bildschirmrand zu öffnen. So bleibt das vollständige Beispiel in einem eingebetteten Dokument nutzbar. Vant bietet auch AddressEdit für eine standardisierte Adresseingabe. In diesem Beispiel kommen Form und Field zum Einsatz, da die Beispieldaten bewusst keine Verwaltungsgebietsdaten eines bestimmten Landes voraussetzen.

  1. Wähle ein Studio aus und prüfe die Zusammenfassung, bevor du auf „Bearbeiten“ klickst.
  2. Ändere den Empfänger und brich dann ab, um zu prüfen, dass der gespeicherte Eintrag unverändert bleibt.
  3. Öffne den Editor erneut, speichere gültige Felder und prüfe die Zusammenfassung der ausgewählten Adresse.

Unterstützende Spezifikation lesen

Designsystem von Vant: Feldregeln steuern das Submit-Ereignis

Feldregeln steuern das Submit-Ereignis

Für Form gilt validate-trigger="onSubmit". Der Validator für den Empfänger entfernt Leerzeichen am Anfang und Ende und verlangt mindestens zwei Zeichen. Der Telefonnummern-Validator akzeptiert eine begrenzte Anzahl von Ziffern, Leerzeichen, Klammern und Bindestrichen sowie ein optionales Pluszeichen am Anfang. Für die Adresse sind mindestens zehn Zeichen erforderlich, die keine Leerzeichen sind. Diese Prüfungen veranschaulichen die Funktionsweise; sie stellen weder eine postalische Verifizierung noch eine universelle Telefonnummernvalidierung dar.

Ein primärer Button mit native-type="submit" sendet das native Formular ab. Vant löst submit erst aus, wenn die Regeln erfüllt sind. Fehler werden neben dem jeweiligen Field angezeigt, und scroll-to-error bringt das ungültige Feld in den sichtbaren Bereich. Außerdem fokussiert die Vorschau beim Beginn der Bearbeitung das erste Empfänger-Eingabefeld. Bei fehlgeschlagener Validierung bleibt der Entwurf erhalten.

Unterstützende Spezifikation lesen

Designsystem von Vant: ConfigProvider ordnet CamelCase-Werte den Variablen CSS zu

ConfigProvider ordnet CamelCase-Werte den Variablen von CSS zu

Das Objekt theme-vars enthält primaryColor, buttonPrimaryBackground, buttonPrimaryBorderColor und addressListPadding. ConfigProvider ordnet diese Namen den entsprechenden --van-* Variablen zu. In diesem isolierten Dokument verwendet der Provider theme-vars-scope="global", damit Aliasse auf der Stammebene auf die geänderte Primärrolle verweisen. Die Überschreibung der Rolle und beider Primärbutton-Werte sorgt dafür, dass die native Aktion und die Radio-Auswahl aufeinander abgestimmt bleiben.

Wenn du die Theme-Prop zwischen light und dark umschaltest, wird das Komponententhema von Vant aktualisiert. Für den Seitenhintergrund und den Text sind weiterhin eigene Deklarationen mit den Theme-Variablen erforderlich. Der Provider allein gestaltet nicht jedes Element der Anwendung. Die dekorativen Papierbeispiele behalten ihre Materialfarben in beiden Themes bei.

Unterstützende Spezifikation lesen

Designsystem von Vant: Bei einer fixierten mobilen Aktion muss die Einbettung berücksichtigt werden

Bei einer fixierten mobilen Aktion muss die Einbettung berücksichtigt werden

AddressList reserviert normalerweise achtzig Pixel Abstand am unteren Rand für die fixierte Schaltfläche zum Hinzufügen. In der Vorschau wird show-add-button auf false gesetzt und stattdessen ein regulärer Button im Dokumentfluss verwendet. Außerdem wird addressListPadding auf zwölf Pixel gesetzt. So werden sowohl eine losgelöste fixierte Aktion als auch ein unerklärlicher leerer Bereich am unteren Rand des eingebetteten Beispiels vermieden.

Auf breiten Bildschirmen bilden die Liste und die Materialzusammenfassung zwei Spalten. Unterhalb des ursprünglichen Breakpoints von 680px werden sie untereinander angeordnet. Die native Einstellung height:100% von AddressList wird ausdrücklich auf height:auto zurückgesetzt, damit sich das Panel nach seinem Inhalt richtet und nicht die nächste Rasterzeile überlagert. Es wird keine globale Mindesthöhe für den Viewport festgelegt, sodass die übergeordnete Seite die Größe des eingebetteten Dokuments anhand seines Inhalts bestimmen kann. Auf schmalen Bildschirmen werden die Adressnamen umgebrochen, statt die Seite zu verbreitern.

Unterstützende Spezifikation lesen

Designsystem von Vant: Sichtbarer Fokus und klare lokale Rückmeldungen

Sichtbarer Fokus und klare lokale Rückmeldungen

Das Basis-Reset von Vant entfernt die standardmäßigen Fokusumrisse. Das zugehörige Seiten-Stylesheet fügt für Buttons, Eingabefelder, Textbereiche und Steuerelemente mit tabindex einen drei Pixel breiten Fokusindikator für sichtbare Fokussierung hinzu. Dies ist eine Ergänzung auf Anwendungsebene und keine Behauptung, dass ein Bibliotheksimport allein die Barrierefreiheit vollständig gewährleistet. Der Theme-Umschalter hat einen zugänglichen Namen und eine sichtbare Beschriftung.

Eine Statusmeldung vermerkt, dass lokal gespeichert oder ein Ziel ausgewählt wurde. Sie weist ausdrücklich darauf hin, dass keine Lieferung gebucht wurde. Das Beispiel verfügt über keinen Checkout-Endpunkt, keinen Speicher und keine externen Auswirkungen. Ein tatsächlicher Checkout würde vor dem Kauf eine serverseitige Adressvalidierung, eine Prüfung der Lieferberechtigung und eine abschließende Überprüfung erfordern.

  • Erkläre sichtbar, warum Adressen nicht verfügbar sind, statt sie unbemerkt zu entfernen.
  • Behalte den Entwurf nach einem ungültigen Submit bei, damit die Person ein Feld korrigieren kann.
  • Beschreibe, ob eine Aktion lediglich die lokale Auswahl ändert oder tatsächlich eine Lieferung bucht.

Unterstützende Spezifikation lesen

Designsystem von Vant: Locale und Komponenten-Styles importieren

Gebietsschema und Komponentenstile importieren

Die vollständige SFC importiert ihre Komponenten lokal. Die Einstiegsdatei bindet das englische Locale über Locale.use ein und importiert vant/lib/index.css vor dem ursprünglichen Layout-Stylesheet. Das verifizierte Paket ist Vant 4.10.2 mit Vue 3; die Endung .mjs des Imports des englischen Locale entspricht der installierten ESM-Datei.

Die eigenständige Vorschau bündelt JavaScript, CSS und die Icon-Schriftart im Dokument. Nach der Übernahme der gebündelten WOFF2-Schriftart entfernt sie den ungenutzten Remote-WOFF-Fallback, sodass das Beispiel keine Anfrage an eine Schriftart eines Drittanbieters benötigt. Produktionsanwendungen sollten ihren eigenen Bundler und ihre eigene Asset-Richtlinie verwenden, statt eine gehostete Demo-URL zu übernehmen.

Unterstützende Spezifikation lesen

Komponentenbeispiele für das Designsystem von Vant

Adressauswahl und validierte Bearbeitung

Vollständige Vue-SFC mit AddressList, Form, Field, ConfigProvider und einem kontrollierten Entwurf.

vue
<script setup>
import {ref,reactive,computed,nextTick} from 'vue';
import {ConfigProvider,AddressList,Button,Form,Field,CellGroup,Tag,Switch,NoticeBar} from 'vant';
const list=ref([{id:'studio',name:'Alex Morgan',tel:'+44 20 7946 0101',address:'Studio 4, 18 Paper Street, London',isDefault:true},{id:'workshop',name:'Jules Chen',tel:'+44 20 7946 0122',address:'Workshop B, 52 Clay Road, London'}]);
const disabledList=[{id:'archive',name:'Sam Rivera',tel:'+44 20 7946 0133',address:'Old warehouse, 8 Mill Lane, London'}];
const chosen=ref('studio'),editing=ref(false),editingId=ref(null),notice=ref(''),dark=ref(false),formRef=ref();
const draft=reactive({name:'',tel:'',address:''});
const selected=computed(()=>list.value.find(x=>x.id===chosen.value));
const themeVars={primaryColor:'#176b77',addressListPadding:'12px',buttonPrimaryBackground:'#176b77',buttonPrimaryBorderColor:'#176b77'};
async function edit(item){editingId.value=item?.id||null;Object.assign(draft,item?{name:item.name,tel:item.tel,address:item.address}:{name:'',tel:'',address:''});editing.value=true;notice.value='';await nextTick();formRef.value?.resetValidation();document.querySelector('[name="recipient"]')?.focus();}
function save(){const value={id:editingId.value||`local-${Date.now()}`,name:draft.name.trim(),tel:draft.tel.trim(),address:draft.address.trim()};if(editingId.value)list.value=list.value.map(x=>x.id===editingId.value?{...x,...value}:x);else list.value.push(value);chosen.value=value.id;editing.value=false;notice.value='Address saved in this local preview.';}
function confirm(){notice.value=`Selected ${selected.value.name} at ${selected.value.address}. No delivery was booked.`;}
const nonempty=v=>v.trim().length>=2;
const phone=v=>/^\+?[\d ()-]{7,22}$/.test(v.trim());
</script>
<template><ConfigProvider theme-vars-scope="global" :theme="dark?'dark':'light'" :theme-vars="themeVars"><main class="delivery" :class="{dark}"><header><div><p class="eyebrow">VANT · MOBILE COMMERCE</p><h1>A destination for your sample kit.</h1><p class="intro">Choose a studio, update a recipient or add a local address.</p></div><label class="mode"><span>Dark</span><Switch v-model="dark" size="22px" aria-label="Dark theme" /></label></header><div class="columns"><section class="address-panel" aria-label="Delivery addresses"><div class="section-heading"><h2>Delivery address</h2><Tag plain type="primary">{{list.length}} available</Tag></div><AddressList v-model="chosen" :list="list" :disabled-list="disabledList" disabled-text="Outside the sample delivery area" default-tag-text="Default" :show-add-button="false" @edit="edit" @select="notice=''" /><div class="actions"><Button plain block type="primary" @click="edit()">Add a local address</Button></div></section><aside><section class="kit"><div class="paper-samples" aria-hidden="true"><i></i><i></i><i></i></div><p class="eyebrow">MATERIAL LIBRARY</p><h2>Paper & pigment kit</h2><p>Six paper stocks. Three print finishes. One place to compare them.</p><dl><div><dt>Recipient</dt><dd>{{selected?.name}}</dd></div><div><dt>Destination</dt><dd>{{selected?.address}}</dd></div></dl><Button block type="primary" @click="confirm">Use this address</Button><p class="local-note">Selection only. Nothing is purchased or shipped.</p></section></aside></div><section v-if="editing" class="editor"><h2>{{editingId?'Edit recipient':'Add an address'}}</h2><Form ref="formRef" validate-trigger="onSubmit" label-align="top" scroll-to-error @submit="save"><CellGroup inset><Field v-model="draft.name" name="recipient" label="Recipient" placeholder="Full name" :rules="[{validator:nonempty,message:'Enter at least two characters.'}]" /><Field v-model="draft.tel" name="telephone" type="tel" label="Telephone" placeholder="+44 20 7946 0100" :rules="[{validator:phone,message:'Use 7–22 characters: digits, spaces, +, brackets or hyphens.'}]" /><Field v-model="draft.address" name="address" type="textarea" rows="2" autosize label="Address" placeholder="Building, street and city" :rules="[{validator:v=>v.trim().length>=10,message:'Enter a complete address of at least ten characters.'}]" /></CellGroup><div class="form-actions"><Button type="primary" native-type="submit">Save locally</Button><Button native-type="button" @click="editing=false">Cancel</Button></div></Form></section><NoticeBar v-if="notice" wrapable :scrollable="false" color="var(--van-primary-color)" background="var(--van-background-2)" class="result" role="status">{{notice}}</NoticeBar></main></ConfigProvider></template>

Code-Referenz

  • Der ausgewählte Wert ist eine Adress-ID, keine Position im Array.
  • Die fixierte Hinzufügen-Schaltfläche von AddressList ist ausgeblendet; ein Button im Dokumentfluss öffnet den Editor.
  • Form sendet erst ab, wenn die Field-Validatoren bestanden wurden.

Responsives Seitenlayout und sichtbarer Fokus

Das ursprüngliche zweispaltige Desktop-Layout wird auf Mobilgeräten zu einem Lieferablauf.

css
*{box-sizing:border-box}body{margin:0;background:#f7f8fa;color:#323233}.delivery{padding:32px;max-width:1080px;margin:auto;background:var(--van-background);color:var(--van-text-color)}.delivery.dark{background:var(--van-background);color:var(--van-text-color)}header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--van-text-color-2)}h1{font-size:32px;line-height:1.2;margin:12px 0;max-width:550px}h2{font-size:18px;line-height:24px;margin:0 0 12px}.intro{font-size:15px;line-height:24px;color:var(--van-text-color-2)}.mode{display:flex;gap:8px;align-items:center;font-size:12px}.columns{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:0 12px}.section-heading h2{margin:0}.actions{padding:0 12px}.kit{background:var(--van-background-2);padding:24px;border-radius:8px}.kit p{line-height:1.6}.paper-samples{height:130px;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:24px;background:#e9edef;border-radius:4px;overflow:hidden}.paper-samples i{height:90px;width:90px;background:#d6b59b;box-shadow:0 4px 8px #0001;transform:rotate(-12deg);margin-right:-25px}.paper-samples i:nth-child(2){background:#efdfbe;transform:rotate(2deg)}.paper-samples i:nth-child(3){background:#94adb1;transform:rotate(16deg)}dl{font-size:14px;line-height:20px;margin:24px 0}dl div{display:grid;grid-template-columns:90px 1fr;margin:12px 0;gap:12px}dt{color:var(--van-text-color-2)}dd{margin:0}.local-note{font-size:12px;color:var(--van-text-color-2);margin-bottom:0}.editor{max-width:640px;margin-top:32px}.editor h2{margin-left:16px}.form-actions{display:flex;gap:12px;margin:16px}.result{margin-top:24px;border-radius:8px}button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #176b77!important;outline-offset:3px}@media(max-width:680px){.delivery{padding:24px 12px}.columns{grid-template-columns:1fr}header{gap:8px;margin-bottom:24px}h1{font-size:27px}.mode{padding-top:4px}.kit{padding:20px}.paper-samples{height:110px}.van-address-item__name{white-space:normal}}

.delivery .van-address-list{height:auto}

Code-Referenz

  • Die Komponentengeometrie stammt von Vant; der Seitenumbruch bei 680px ist eine Anwendungsentscheidung.
  • Die Vorschau stellt einen sichtbaren Fokusring wieder her, da das Basis-Reset die Standardkonturen entfernt.
04

Vant-Designsystem-Agent – Einrichtung

Ausgangspunkt für die Implementierung

Verifiziert mit Vue 3 und Vant 4.10.2. Das Beispiel speichert keine Adresse außerhalb seines In-Memory-Zustands.

javascript
// Create the project first:
// npm create vite@latest vant-specimen -- --template vue
// cd vant-specimen && npm install
// In a Vite Vue 3 project:
// npm install [email protected]
// Save the complete SFC as App.vue and the supplied layout as style.css.
import {createApp} from 'vue';
import {Locale} from 'vant';
import enUS from 'vant/es/locale/lang/en-US.mjs';
import 'vant/lib/index.css';
import './style.css';
import App from './App.vue';
Locale.use('en-US',enUS);
createApp(App).mount('#app');
// index.html must contain <div id="app"></div>.
// Keep the template index.html and replace its entry with the code above.
// npm run dev

Ein Prompt für dein Projekt

Agenten-Prompt
Verwenden Sie als Ausgangspunkt die Adressauswahl des Vant 4.10.2 sample-kit. Behalten Sie die native AddressList und den Bearbeitungsablauf mit Form/Field zum Hinzufügen oder Ändern einer lokalen Adresse bei, einschließlich Feldvalidierung und Status der ausgewählten Adresse. Behalten Sie die Locale-Einrichtung, das Modul en-US, den Theme-Bereich des ConfigProvider und die Anpassung der AddressList an die Inhaltshöhe bei. Beim Abbrechen darf eine vorhandene Adresse nicht ersetzt werden; eine erfolgreiche Validierung aktualisiert nur die lokale Adresssammlung. Fügen Sie diesem reinen Adressbeispiel keine Aussagen zum Erfolg von Zahlung oder Lieferzeitfenster hinzu.
05

Quellen und Geltungsbereich des Vant-Designsystems

Vant 4.10.2. Standard-Token und ursprüngliche Seitenentscheidungen sind klar voneinander abgegrenzt. Die Beispieladressen sind fiktiv; Auswahl und Bearbeitung bleiben lokal.