Spezielles Markup und Klassen
Das meiste Ionic-Markup funktioniert unverändert. Die folgenden Kombinationen werden vom Theme bereitgestellt und müssen ausdrücklich aktiviert werden.
Primäre Absende-Schaltflächen
Gefüllte Absende-Schaltflächen verwenden den Kontrastwert der Ionic-Farbe für ihren Vordergrund. Die richtungsabhängige Gestaltung der Ränder folgt dem Erscheinungsbild hervorgehobener Schaltflächen in iOS 27 und benötigt keine zusätzliche Helligkeitsfarbe.
<ion-button type="submit" color="primary">Submit</ion-button>
<ion-button class="button-submit" fill="solid" color="primary">Continue</ion-button>
Verwenden Sie .button-submit, wenn die Schaltfläche dieselbe Gestaltung benötigt, aber nicht type="submit" verwenden kann.
Bevorzugte Overlay-Aktionen
Setzen Sie bei iOS-Alerts und Action Sheets role: 'preferred' für eine Schaltfläche, um einen gefüllten Hintergrund mit --ion-color-primary und Texte sowie Symbole mit --ion-color-primary-contrast zu erhalten. Während des Drückens verwendet der Hintergrund --ion-color-primary-shade. Dies ist eine Theme-Konvention auf Grundlage benutzerdefinierter Ionic-Schaltflächenrollen; die Aktion wird dadurch nicht automatisch ausgewählt oder ausgelöst. Beim Schließen wird die Rolle als preferred gemeldet.
buttons: [
{ text: 'Cancel', role: 'cancel' },
{ text: 'Continue', role: 'preferred' },
];
Wählen Sie die Rolle nach der Bedeutung der Aktion:
| Rolle | Darstellung und Verhalten |
|---|---|
preferred |
Gefüllte primäre Aktion; beim Schließen wird preferred gemeldet. Wählt oder aktiviert sie nicht automatisch. |
Keine Rolle oder default |
Normale Textfarbe. |
cancel |
Behält Ionics Abbruchverhalten. |
selected |
Behält den Auswahlzustand. |
destructive |
Verwendet --ios-theme-destructive-color. |
confirm |
Wird nicht als bevorzugt behandelt. Verwenden Sie preferred für eine empfohlene Aktion, nicht für jede Bestätigung. |
Frei schwebende iPad-Sheets
Wählen Sie das Scrollverhalten des Sheets mit expandToScroll:
| Einstellung | iPad-Darstellung | Scrollen und Größenänderung |
|---|---|---|
false |
Frei schwebende untere Ecken und 20px Abstand unten. | Der Inhalt scrollt am aktuellen Breakpoint; Ziehen am Griff ändert die Größe des Sheets. Ionic passt die sichtbare Seite an jedem Breakpoint an, damit CSS sie gestalten kann. |
true (Standard) |
Ionics am unteren Rand befestigtes Layout. | Scrollen erweitert das Sheet. |
Position der Tab-Leiste
Wählen Sie eine Klasse auf einer iOS-ion-tab-bar, um die gesamte Leiste innerhalb ihrer Safe Area zu positionieren:
| Klasse | Position |
|---|---|
tab-bar-position-start |
Anfang der Leserichtung. |
tab-bar-position-center |
Mitte. |
tab-bar-position-end |
Ende der Leserichtung. |
| Keine | Bestehende Position unverändert. |
Alle drei Klassen unterstützen slot="top" und slot="bottom", erhalten Breite und Druckanimation und berücksichtigen Start/Ende bei RTL.
<ion-tab-bar slot="bottom" class="tab-bar-position-center">
<ion-tab-button tab="home">Home</ion-tab-button>
<ion-tab-button tab="settings">Settings</ion-tab-button>
</ion-tab-bar>
Diese Klassen verschieben kein separates ion-fab. Planen Sie bei der Wahl der Leistenposition Platz dafür ein.
iPhone Duo unterstützen
Die Unterstützung für iPhone Duo einschließlich eigenständiger Vertical Bars ist ab Version 2.0.0 stabil.
Die Unterstützung für iPhone Duo — vertikale Systemleiste, Scharnierstellung und davon abhängiges Split-Pane-Layout — ist unabhängig vom iOS-27-Theme und der vollständigen Native UI. Gerätelayout und Split Panes beschreibt die vollständige Einrichtung einschließlich Gerätelayout-Überwachung ohne Projektionslaufzeit.
Informationen zu Layoutklassen, geeigneten Bedienelementen und dem Aussehen nativer Schaltflächen finden Sie unter Vertical Bars.
Die eigenständige Einrichtung unter Beibehaltung Ihres Themes beschreibt iPhone Duo mit Ihrem bestehenden Theme.
Zweizeilige Elemente in eingerückten Listen
Platzieren Sie ein ion-label ohne Slot unmittelbar neben einem ion-note ohne Slot, um ein zweizeiliges Element darzustellen. Umschließen Sie die Elemente bei Verwendung des iOS-Hintergrunds für eingerückte Listen mit ion-item-group; belassen Sie ion-list-header außerhalb der Gruppe.
<ion-list inset="true">
<ion-list-header>
<ion-label>Connections</ion-label>
</ion-list-header>
<ion-item-group>
<ion-item>
<ion-label>Network & internet</ion-label>
<ion-note>Mobile, Wi-Fi, hotspot</ion-note>
</ion-item>
</ion-item-group>
</ion-list>
Verwenden Sie stattdessen slot="end" für ion-note, wenn die normale Anordnung mit einer nachgestellten Notiz gewünscht ist.
Abschnittsüberschriften in eingerückten Listen
Fügen Sie .item-group-header zu einer ion-item-group hinzu, um das zentrierte Symbol mit Titel und Beschreibung zu erzeugen, das am Anfang der Komponenten-Demoseiten verwendet wird.
Dies ist eine einleitende Gruppe. Platzieren Sie gewöhnliche Listenelemente in einer separaten, nachfolgenden ion-item-group.
<ion-list inset="true">
<ion-item-group class="item-group-header">
<ion-item>
<ion-label>
<ion-icon name="list" style="background: var(--ion-color-primary)"></ion-icon>
<h2>Lists</h2>
<ion-text>Inset-list examples</ion-text>
</ion-label>
</ion-item>
</ion-item-group>
<ion-item-group>
<ion-item><ion-label>First item</ion-label></ion-item>
</ion-item-group>
</ion-list>
Segmente über die gesamte Breite
Fügen Sie .segment-style-glass hinzu, um einem Segment dieselbe Glasfläche und dieselbe Gestaltung der Auswahlmarkierung wie der Tab-Leiste zu geben. Die Klasse erhält die vorhandenen Segmentabmessungen und Textfarben, unterstützt scrollbare Segmente und berücksichtigt die öffentliche Ionic-Property --background.
<ion-segment class="segment-style-glass" value="available">
<ion-segment-button value="available">Available</ion-segment-button>
<ion-segment-button value="away">Away</ion-segment-button>
</ion-segment>
Verwenden Sie für farbige Segmente die Ionic-Property color, beispielsweise color="primary" oder color="secondary". Ionic verwendet die Grundfarbe der Palette für die leicht eingefärbte Bahn; Auswahlfläche und Beschriftungen bleiben neutral. Eine umgebende farbige Werkzeugleiste liefert nur dann Farben, wenn das Segment keine eigene Farbe hat. Das optionale bewegte Glas übernimmt die Farbe der Auswahlfläche. Benutzerdefinierte Ionic-Paletten funktionieren ohne zusätzliche Registrierung.
Fügen Sie .segment-expand hinzu, wenn die Segment-Schaltflächen die verfügbare Breite gleichmäßig aufteilen sollen. Bei Verwendung von registerSegmentEffect verändert die Klasse außerdem die Größe des Liquid Glass-Effekts.
Segmentgröße und Verhalten beim Drücken
| Position | Mindesthöhe | Containerverhalten |
|---|---|---|
| Im Inhalt | 32px | Kompakter, flacher Hintergrund und Indikator; äußere Grenzen bleiben fest. |
Innerhalb von ion-toolbar |
48px | Glascontainer; äußerer Container skaliert beim Drücken. |
.segment-expand, auch in einer Werkzeugleiste |
32px | Kompakter, flacher Hintergrund und Indikator; äußere Grenzen bleiben fest. |
Die optionale bewegliche Glaslinse ist unabhängig vom Containerhintergrund.
<ion-segment class="segment-expand" value="new">
<ion-segment-button value="new"><ion-label>New</ion-label></ion-segment-button>
<ion-segment-button value="replied"><ion-label>Replied</ion-label></ion-segment-button>
</ion-segment>
Klassische Suchleiste in einem Condense-Header
Das Theme gibt iOS-Suchleisten standardmäßig das Erscheinungsbild von iOS 27. Fügen Sie .searchbar-classic zu dem Suchfeld unter einem großen Titel in einem ion-header mit collapse="condense" hinzu. Es verwendet die herkömmliche gefüllte iOS-Darstellung und wird zusammen mit dem großen Titel eingeklappt, statt im fest positionierten Header zu verbleiben.
Platzieren Sie es in einer Werkzeugleiste mit einer Farbe, beispielsweise color="light". Der klassische Hintergrund wird aus dem Kontrastwert dieser Farbe abgeleitet.
Das Beispiel verwendet die standardmäßige einklappbare Struktur für große Titel von Ionic. Scrollen Sie die Vorschau, um den großen Titel einzuklappen und den fest positionierten Header anzuzeigen.
<div class="ion-page">
<ion-header translucent="true">
<ion-toolbar color="light">
<ion-title>Search</ion-title>
</ion-toolbar>
</ion-header>
<ion-content color="light" fullscreen="true">
<ion-header collapse="condense">
<ion-toolbar color="light">
<ion-title size="large">Search</ion-title>
</ion-toolbar>
<ion-toolbar color="light">
<ion-searchbar class="searchbar-classic" placeholder="Filter results"></ion-searchbar>
</ion-toolbar>
</ion-header>
<ion-list inset="true">
<ion-item-group>
<ion-item><ion-label>Recent item 1</ion-label></ion-item>
<ion-item><ion-label>Recent item 2</ion-label></ion-item>
<ion-item><ion-label>Recent item 3</ion-label></ion-item>
<ion-item><ion-label>Recent item 4</ion-label></ion-item>
<ion-item><ion-label>Recent item 5</ion-label></ion-item>
<ion-item><ion-label>Recent item 6</ion-label></ion-item>
<ion-item><ion-label>Recent item 7</ion-label></ion-item>
<ion-item><ion-label>Recent item 8</ion-label></ion-item>
<ion-item><ion-label>Recent item 9</ion-label></ion-item>
<ion-item><ion-label>Recent item 10</ion-label></ion-item>
</ion-item-group>
</ion-list>
</ion-content>
</div>
Der Wrapper .ion-page lässt diese eingebettete Vorschau wie eine vollständige geroutete Seite funktionieren. Eine Anwendung mit ion-router-outlet erhält diesen Seitencontainer normalerweise automatisch. Die eingerückte Liste und ihre Elemente liefern lediglich genügend Inhalt zur Demonstration des Scrollens; .searchbar-classic benötigt sie nicht.
Das Theme gezielt deaktivieren
Fügen Sie .ios-theme-disabled zu einer einzelnen Ionic-Komponente hinzu, wenn diese die standardmäßige iOS-Gestaltung von Ionic behalten soll.
.ios26-disabled ist veraltet, bleibt aber als Alias mit identischem Verhalten unterstützt. Verwenden Sie für neuen Code .ios-theme-disabled.
<ion-button>iOS 27 theme</ion-button> <ion-button class="ios-theme-disabled">Standard Ionic button</ion-button>
Das Hintergrundmodell eingerückter Listen beschreibt ion-item-group verwenden.