# Gestalten Sie Ihre App
Finden Sie heraus, wie Sie UI-Komponenten in Ihrer App formatieren.
Sie können eine Stripe-App mit en von uns bereitgestellten Design-Token gestalten. So können Sie das Dashboard optisch anpassen, für Konsistenz sorgen und eine qualitativ hochwertige Leiste beibehalten.
- Die Komponenten `Box` und `Inline` unterstützen [individuelle Stile](https://docs.stripe.com/stripe-apps/style.md#custom-styles).
- Andere Komponenten haben [voreingestellte Stile](https://docs.stripe.com/stripe-apps/style.md#preset-styles), die Sie manchmal anpassen können.
## Nutzerdefinierte Stile
Die Komponenten [Box](https://docs.stripe.com/stripe-apps/components/box.md) und [Inline](https://docs.stripe.com/stripe-apps/components/inline.md) unterstützen individuelle Stile. `Box` und `Inline` sind gestaltbare Container wie HTML `div` und `span`. Um sie zu gestalten, verwenden Sie ihre `css`-Eigenschaft. Sie verwenden CSS-Syntax, mit einigen Unterschieden zu Vanilla CSS.
Anders als bei Vanilla CSS können Sie nicht beliebige Schriftarten und -stile auswählen. Verwenden Sie die Eigenschaften `font` und `fontWeight`. Für weitere Informationen, siehe [Typographie](https://docs.stripe.com/stripe-apps/style.md#typograpphy).
Auch das Layout funktioniert anders als in Vanilla CSS. Stattdessen verwenden Stripe Apps das gleiche Layout-System, das Stripe intern verwendet. Für weitere Informationen, siehe [Layout](https://docs.stripe.com/stripe-apps/style.md#layout).
```jsx
```
Alle Designtoken werden über TypeScript verfügbar gemacht. Das heißt, Sie erhalten ein Dropdown-Menü im Editor für die automatische Vervollständigung aus den verfügbaren Werten.
## Farbe
Legen Sie Farben in Ihren nutzerdefinierten Stilen mit den folgenden Werten fest.
### Hintergründe
Um die Hintergrundfarbe einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) oder [Inline](https://docs.stripe.com/stripe-apps/components/inline.md)-Komponente einzustellen, verwenden Sie die CSS-Eigenschaft `backgroundColor`:
```jsx
Box with a darker background.
```
Verwenden Sie die folgenden Token als Werte für `backgroundColor`:
### Ränder
Um einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) oder [Inline](https://docs.stripe.com/stripe-apps/components/inline.md) Komponente einen Rand hinzuzufügen, verwenden Sie die CSS-Eigenschaft `keyline`:
```jsx
Box with a neutral border.
```
Verwenden Sie die folgenden Token als Werte für `keyline`:
### Text und Symbole
Um eine Farbe für alle Texte oder Symbole in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) oder [Inline](https://docs.stripe.com/stripe-apps/components/inline.md) Komponente festzulegen, verwenden Sie die CSS-Eigenschaft `color`:
```jsx
Box with green text.
```
Für ein Symbol, das sich von den anderen untergeordneten Elementen seines Containers abhebt, verwenden Sie `fill`. Andernfalls passen die Symbole zu dem sie umgebenden Text.
```jsx
Box with normal text and a green icon.
```
Verwenden Sie die folgenden Token als Werte für `color` und `fill`:
## Typografie
Um den Stil von Text in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) oder [Inline](https://docs.stripe.com/stripe-apps/components/inline.md) Komponente zu ändern, verwenden Sie die benutzerdefinierte Eigenschaft `font`:
```jsx
Heading
```
Folgende Stile sind verfügbar:
### Textüberlauf und -umbruch
Um zu ändern, wie Überlauftext in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) Komponente behandelt wird, verwenden Sie die Eigenschaften `textOverflow`, `overflow`, `whiteSpace` und `overflowWrap`:
```jsx
Box where long text is cut off with an ellipsis
```
Weitere Szenarien für Überlauf und Textumbruch finden Sie unter [Textumbruch und -umbruch](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Text/Wrapping_Text).
### Textumwandlung
Sie können Text in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md) oder [Inline](https://docs.stripe.com/stripe-apps/components/inline.md) Komponente mit der Eigenschaft `textTransform` umwandeln:
```jsx
Box where all text appears uppercase
```
Hier sind einige übliche Werte, die für die Eigenschaft `textTransform` verwendet werden können:
Die vollständige Liste finden Sie unter [text-transform](https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform).
### Textausrichtung
Sie können die Ausrichtung von Text in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md)-Komponente mit der Eigenschaft `textAlign` ändern:
```jsx
Box where text is centered
```
Verwenden Sie die folgenden Token als Werte für `textAlign`:
## Layout
Mit den APIs von Stripe Apps zur Gestaltung des Layouts können Sie Stile schreiben, die unsere Designtoken nutzen können. Außerdem sind sie gegenüber Vanilla-CSS weiter optimiert. Verwenden Sie diese Token in einer [Box](https://docs.stripe.com/stripe-apps/components/box.md)-Komponente, um das Layout für ihre untergeordneten Elemente zu steuern. Andere Container, wie [List](https://docs.stripe.com/stripe-apps/components/list.md), handhaben das Layout automatisch.
Wir konzeptualisieren Layouts als „Stacks“.
### Horizontale Stacks
Elemente horizontal stapeln und Breiten anpassen:
```jsx
```
So stapeln Sie Elemente horizontal mit gebrochenen Breiten:
```jsx
```
So stapeln Sie Elemente horizontal mit einer gebrochenen Breite für ein Element bei Streckung der verbleibenden Elemente:
```jsx
```
So richten Sie Elemente so ein, dass sie mit einem Abstand beginnen:
```jsx
```
So verteilen Sie Elemente:
```jsx
```
So richten Sie Elemente so ein, dass sie mit einem Abstand enden:
```jsx
```
So richten Sie Elemente vertikal nach unten aus:
```jsx
```
So fügen Sie Trennlinien zwischen den Elementen ein:
```jsx
```
So brechen Sie Elemente in Zeilen um:
```jsx
```
So richten Sie unterschiedliche horizontale und vertikale Abstände ein:
```jsx
```
So zentrieren Sie Elemente beim Umbruch horizontal:
```jsx
```
So zentrieren Sie Elemente beim Umbruch vertikal:
```jsx
```
### Vertikale Stacks
Elemente vertikal stapeln und Breiten anpassen:
```jsx
```
So stapeln Sie Elemente vertikal und zentrieren sie horizontal:
```jsx
```
### Geschichtete Stacks
So zeigen Sie Elemente übereinander an:
```jsx
```
### Layouteigenschaften
| Eigenschaft | Werte |
| ----------------------- | --------------------------------------------------------------------- |
| `alignX` | `'start' | 'center' | 'end' | 'stretch'` |
| `alignY` | `'top' | 'center' | 'baseline' | 'bottom' | 'stretch'` |
| `distribute` | `'space-between' | 'packed'` |
| `gap` | Siehe [Abstand](https://docs.stripe.com/stripe-apps/style.md#spacing) |
| `overflowX | overflowY` | `'visible' | 'hidden' | 'scroll' | 'auto'` |
| `stack` | `'x' | 'y' | 'z'` |
| `wrap` | `'wrap'` |
## Abstände
Sie können Ränder, Füllzeichen und Layoutabstände mithilfe der unten aufgeführten Werte angeben.
```jsx
```
| Token | Wert |
| --------- | -------- |
| `0` | 0 Pixel |
| `xxsmall` | 2 Pixel |
| `xsmall` | 4 Pixel |
| `small` | 8 Pixel |
| `medium` | 16 Pixel |
| `large` | 24 Pixel |
| `xlarge` | 32 Pixel |
| `xxlarge` | 48 Pixel |
## Größenbestimmung
Sie können die Breite und Höhe mithilfe von Brüchen oder inhaltsbasierten Größentoken angeben.
```jsx
```
### Fraktionale Größenbestimmung
Die verfügbaren Brüche umfassen Hälften, Drittel, Viertel, Fünftel, Sechstel und Zwölftel. Das `fill`-Token ermöglicht es einer Komponente, die Größe ihres Containers anzupassen.
| Token | Wert |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `0` | 0 Pixel |
| `1/2` | 50 % |
| `1/3`, `2/3` | 33,333333 %, 66,666667 % |
| `1/4`, `2/4`, `3/4`, | 25 %, 50 %, 75 % |
| `1/5`, `2/5`, `3/5`, `4/5` | 20 %, 40 %, 60 %, 80 % |
| `1/6`, `2/6`, `3/6`, `4/6`, `5/6` | 16,666667 %, 33,333333 %, 50 %, 66,666667 %, 83,333333 % |
| `1/12`, `2/12`, `3/12`, `4/12`, `5/12`, `6/12`, `7/12`, `8/12`, `9/12`, `10/12`, `11/12` | 8,333333 %, 16.,666667 %, 25 %, 33,333333 %, 41,666667 %, 50%, 58,333333 %, 66,666667 %, 75 %, 83,333333 %, 91,666667 % |
| `fill` | 100 % |
### Inhaltsbasierte Größenbestimmung
Sie können die Größe einer `Box` relativ zu ihrem Inhalt bestimmen.
| Token | Nutzung |
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `min` | Der Inhalt innerhalb der Komponente nutzt alle Umbruchmöglichkeiten und wird so klein wie die längsten Inhalte. |
| `max` | Stellt die maximal mögliche Breite des Inhalts dar. Bei Anwendung auf Text findet kein Zeilenumbruch statt, selbst wenn der Text dadurch über die Grenzen seines Containers hinausgeht. |
| `fit` | Füllt den verfügbaren Platz aus, aber nur bis zur maximalen Größe des Inhalts. |
## Voreingestellte Stile
Andere Komponenten als `Box` und `Inline` haben voreingestellte Stile, wodurch die Konsistenz erhalten bleibt. Manchmal können Sie die Voreinstellungen auf eine bestimmte Weise steuern oder außer Kraft setzen.
### Automatisches Design
Einige Komponenten gestalten sich automatisch. Zum Beispiel ändern [Chips](https://docs.stripe.com/stripe-apps/components/chip.md) automatisch ihr Aussehen, je nachdem, welche Callbacks sie implementieren. Dies hilft Nutzer/innen, ihr Verhalten zu verstehen. Um Verwirrung zu vermeiden, können Sie diese Details nicht überschreiben.
### Mehrere Voreinstellungen
Einige Komponenten, wie z. B. [Schaltflächen](https://docs.stripe.com/stripe-apps/components/button.md), verfügen über einige Stile, die Sie über eine Eigenschaft auswählen können. Einzelheiten finden Sie in der Dokumentation der jeweiligen Komponente.
### Beschränktes CSS
Einige Komponenten unterstützen bestimmte CSS-Eigenschaften. Zum Beispiel unterstützen [Symbole](https://docs.stripe.com/stripe-apps/components/icon.md) die Farbe mit der Eigenschaft `fill`. Einzelheiten finden Sie in der Dokumentation der jeweiligen Komponente.
## See also
- [Dokumentation zur Extension SDK API](https://docs.stripe.com/stripe-apps/reference/extensions-sdk-api.md)
- [Bestandteile der Stripe-Apps-Nutzeroberfläche](https://docs.stripe.com/stripe-apps/components.md)
- [Nutzeroberfläche erstellen](https://docs.stripe.com/stripe-apps/build-ui.md)