Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenue
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Revenue
Démarrer
Paiements
Revenue
Plateformes et places de marché
Gestion de fonds
Aperçu
Gestion des versions
Journal des modifications
Mettre à niveau votre version de l'API
Actualiser votre version du SDK
Outils de développement
SDK
API
Tests
Workbench
Destinations d'événements
Workflows
CLI Stripe
Shell Stripe
Dashboard des développeurs
Boîte à outils des agents
Intégrer des LLMStripe pour Visual Studio CodeAlertes d'intégrité de StripeChargements de fichiers
Sécurité et confidentialité
Sécurité
Confidentialité
Extensions Stripe
Stripe Apps
    Présentation
    Démarrer
    Créer une application
    Fonctionnement de Stripe Apps
    Exemples d'application
    Créer une application
    Enregistrer des clés secrètes
    Méthodes d'authentification de l'API
    Flux d'autorisation
    Logique côté serveur
    Écouter les événements
    Gérer différents modes
    Activer la prise en charge de l'environnement de test
    Page des paramètres d'application
    Concevoir une interface utilisateur
      Fonctionnement des extensions d'interface utilisateur
      Test de l'interface utilisateur
      Outils de développement
      Concevoir votre application
      Styliser votre application
      Effectuer la mise à niveau du SDK d'extension de l'interface utilisateur de Stripe
    Inscription des utilisateurs
    Distribuer votre application
    Options de distribution
    Charger votre application
    Versions
    Tester votre application
    Publier votre application
    Faire la promotion de votre application
    Ajouter des liens profonds
    Créer des liens d'installation
    Assigner des rôles dans les extensions d'interface utilisateur
    Actions post-installation
    Analyses de l'application
    Composants intégrés pour les applications
    Intégrer des applications tierces conçues pour Stripe
    Migrer vers Stripe Apps
    Migrer ou développer une extension
    Migrer un plugin vers Stripe Apps ou Stripe Connect
    Référence
    Manifeste de l'application
    Interface de ligne de commande
    SDK d'extension
    Autorisations
    Fenêtres d'affichage
    Modèles de conception
    Composants
Connecteurs Stripe
Partenaires
Partner ecosystem
Certification des partenaires
AccueilOutils de développementStripe AppsBuild a UI

Styliser votre application

Découvrez comment personnaliser les composants d'interface utilisateur dans votre application.

Copier la page

Vous pouvez définir le style d’une application Stripe à l’aide des tokens de design que nous vous fournissons. Ils vous aident à reproduire l’apparence du Dashboard, proposent une expérience cohérente et garantissent un niveau de qualité élevé.

  • Les composants Box et Inline prennent en charge les styles personnalisés.
  • D’autres composants ont des styles prédéfinis que vous pouvez parfois ajuster.

Styles personnalisés

Les composants Box et Inline prennent en charge les styles personnalisés. Box et Inline sont des conteneurs stylisables comme div et span en HTML. Pour leur attribuer un style, servez-vous de leur propriété css. Ils utilisent la syntaxe de CSS, avec quelques différences par rapport à la CSS Vanilla.

Chargement de l'exemple...
<Box css={{ padding: 'xxlarge', color: 'secondary', backgroundColor: 'container', borderRadius: 'small', }} > This is a box. </Box>

Contrairement au CSS vanilla, vous ne pouvez pas choisir de polices et de styles arbitraires. Utilisez les propriétés font et fontWeight. Pour en savoir plus, consultez la section Typographie.

Chargement de l'exemple...
<Inline css={{font: 'body', color: 'primary', fontWeight: 'semibold'}}> This text is emphasized </Inline>

En outre, la mise en page ne fonctionne pas de la même façon qu’avec le CSS vanilla. Stripe Apps utilise le même système de mise en page que Stripe utilise en interne. Pour en savoir plus, consultez la section Mise en page.

<Box css={{ stack: 'x', gap: 'medium', }} > <Box css={{width: '1/4', padding: 'medium', keyline: 'neutral'}} /> <Box css={{width: '3/4', padding: 'medium', keyline: 'neutral'}} /> </Box>

Tous les tokens de style sont présentés via TypeScript, ce qui signifie que vous disposerez d’une liste déroulante dans votre éditeur pour effectuer une saisie automatique à partir des valeurs disponibles.

Couleur

Configurez des couleurs dans vos styles personnalisés en utilisant les valeurs suivantes.

Arrière-plans

Pour définir la couleur d’arrière-plan d’un composant Box ou Inline, utilisez la propriété CSS backgroundColor :

<Box css={{ backgroundColor: 'container' }}> Box with a darker background. </Box>

Utilisez les tokens suivants comme valeurs pour backgroundColor :

Example
Token
Usage
surface
Used for the background of apps
container
Used for cards and sections within an app

Bordures

Pour ajouter une bordure à un composant Box or Inline, utilisez la propriété CSS keyline :

<Box css={{ keyline: 'neutral' }}> Box with a neutral border. </Box>

Utilisez les tokens suivants comme valeurs pour keyline :

Example
Token
Usage
neutral
The default color for all borders and dividers
critical
Used for content which is critically urgent to the user

Texte et icônes

Pour définir une couleur pour l’ensemble des textes ou icônes d’un composant Box ou Inline, utilisez la propriété CSS color :

<Box css={{ color: 'success' }}> Box with green text. </Box>

Pour obtenir une icône contrastant avec les autres enfants de son conteneur, utilisez fill. Sinon, les icônes auront la même couleur que le texte qui les entoure.

<Box css={{ color: 'primary' }}> <Icon css={{ fill: 'success' }}/> Box with normal text and a green icon. </Box>

Utilisez les tokens suivants comme valeurs pour color et fill :

Example
Token
Usage
primary
The default color for text and icons
secondary
Used to for text and icons which are less prominent
disabled
Used for elements which are disabled
info
Used for content that is neutral and informational
success
Used for content which indicates the success of some action
attention
Used for content which is should grab the user’s attention
critical
Used for content which is critically urgent to the user. Should be used sparingly.

Typographie

Pour modifier le style d’un texte dans un composant Box ou Inline, utilisez la propriété personnalisée font :

<Inline css={{font: 'heading'}}>Heading</Inline>

Les styles suivants sont disponibles :

Token
Usage
Example
heading
Used for labeling a section of your app
The quick brown fox jumps over the lazy dog.
subheading
Used for labeling content within a section of your app
The quick brown fox jumps over the lazy dog.
body
Primary body text of the app
The quick brown fox jumps over the lazy dog.
caption
Used for text that should be less prominent than body text
The quick brown fox jumps over the lazy dog.

Débordement et habillage du texte

Pour modifier la manière dont le texte de débordement est géré dans un composant Box, utilisez les propriétés textOverflow, overflow, whiteSpace et overflowWrap :

<Box css={{textOverflow: 'ellipsis', overflow: 'hidden', overflowWrap: 'normal'}}> Box where long text is cut off with an ellipsis </Box>
CSS
Usage
Example
{textOverflow: 'ellipsis', overflow: 'hidden', overflowWrap: 'normal'}
Used for adding an ellipsis (...) to text that overflows the available space
SupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidocious
{overflowWrap: 'break-word'}
Used for breaking up long words
SupercalifragilisticexpialidociousSupercalifragilisticexpialidocious
{whiteSpace: 'nowrap'}
Used to prevent lines from wrapping
This text is too long for the container.

Pour voir plus de scénarios de débordement et d’habillage de texte, consultez la page Wrapping and Breaking Text.

Modification de la capitalisation du texte

Vous pouvez modifier la capitalisation du texte dans un composant Box ou Inline en utilisant la propriété textTransform :

<Box css={{textTransform: 'uppercase'}}> Box where all text appears uppercase </Box>

Voici quelques valeurs couramment utilisées pour la propriété textTransform :

Token
Usage
Before
After
capitalize
Used to convert the first letter of each word to uppercase
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
uppercase
Used to convert all letters to uppercase
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
lowercase
Used to convert all letters to lowercase
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
none
Used to prevent the case of letters from being changed
loREM iPSUm DOLor SIt AMet
loREM iPSUm DOLor SIt AMet

Consultez la rubrique text-transform pour voir la liste complète.

Alignement du texte

Vous pouvez modifier l’alignement du texte dans un composant Box en utilisant la propriété textAlign :

<Box css={{textAlign: 'center'}}> Box where text is centered </Box>

Utilisez les valeurs de token suivantes pour textAlign :

Token
Usage
Example
left
Used to algin text to the left
This text is left aligned
right
Used to align text to the right
This text is right aligned
start
Used align text to the start direction
This text is start aligned
end
Used to align text to the end direction
This text is end aligned
center
Used to center text
This text is centered
justify
Used to justify text
This is some text that is justified

Disposition

L’API de mise en page pour Stripe Apps vous permet de créer des styles qui tirent profit de nos tokens de conception, et apporte d’autres améliorations pour CSS Vanilla. Utilisez ces tokens dans un composant Box pour contrôler la mise en page pour ses enfants. D’autre conteneurs, comme le composant List, gèrent la mise en page automatiquement.

Nous employons le terme « empilements » pour désigner les différentes mises en page.

Empilements horizontaux

Pour empiler des éléments horizontalement en faisant correspondre les largeurs :

<Box css={{ stack: 'x', gap: 'medium', alignX: 'stretch', // This is the default and can be omitted }} >

Pour empiler des éléments horizontalement avec des largeurs sous forme de fraction :

<Box css={{ stack: 'x', gap: 'medium', }} > <Box css={{width: '1/4', padding: 'medium', keyline: 'neutral'}} /> <Box css={{width: '3/4', padding: 'medium', keyline: 'neutral'}} /> </Box>

Pour empiler des éléments horizontalement avec une largeur sous forme de fraction pour un élément et le reste des éléments étirés :

<Box css={{ stack: 'x', gap: 'medium', }} > <Box css={{padding: 'medium', keyline: 'neutral'}} /> <Box css={{width: '1/4', padding: 'medium', keyline: 'neutral'}} /> <Box css={{padding: 'medium', keyline: 'neutral'}} /> </Box>

Pour aligner des éléments en début de page en insérant un espacement :

<Box css={{ stack: 'x', gap: 'medium', alignX: 'start', }} >

Pour distribuer des éléments :

<Box css={{ stack: 'x', distribute: 'space-between', }} >

Pour aligner des éléments en fin de page en insérant un espacement :

<Box css={{ stack: 'x', gap: 'medium', alignX: 'end', }} >

Pour aligner des éléments de manière verticale en bas de page :

<Box css={{ stack: 'x', gap: 'medium', alignX: 'start', alignY: 'bottom', }} >

Pour inclure des séparateurs entre les éléments :

<Box css={{ stack: 'x', gap: 'small', alignX: 'start', }} > <Box css={{padding: 'medium', keyline: 'neutral'}} /> <Divider /> <Box css={{padding: 'medium', keyline: 'neutral'}} /> <Divider /> <Box css={{padding: 'medium', keyline: 'neutral'}} /> </Box>

Pour inclure des postes dans des lignes :

<Box css={{ stack: 'x', gap: 'medium', wrap: 'wrap', alignX: 'start', }} >

Pour avoir un espacement horizontal et vertical différent :

<Box css={{ stack: 'x', gapX: 'small', gapY: 'large', wrap: 'wrap', alignX: 'start', }} >

Pour centrer des éléments horizontalement lors de l’habillage :

<Box css={{ stack: 'x', gap: 'medium', wrap: 'wrap', alignX: 'center', }} >

Pour centrer des éléments verticalement lors de l’habillage :

<Box css={{ stack: 'x', gap: 'medium', wrap: 'wrap', alignX: 'start', alignY: 'center', }} >

Empilements verticaux

Pour empiler des éléments verticalement en faisant correspondre les largeurs :

<Box css={{ stack: 'y', gap: 'medium', }} >

Pour empiler des éléments verticalement alors qu’ils sont centrés horizontalement :

<Box css={{ stack: 'y', gap: 'medium', alignX: 'center', }} > <Box css={{width: '1/4', padding: 'medium', keyline: 'neutral'}} /> <Box css={{width: '2/3', padding: 'medium', keyline: 'neutral'}} /> <Box css={{width: '1/3', padding: 'medium', keyline: 'neutral'}} /> </Box>

Empilements en cascade

Pour afficher les éléments les uns au-dessus des autres :

<Box css={{ stack: 'z', alignX: 'center', alignY: 'center', }} > <Box css={{padding: 'xxlarge', keyline: 'neutral'}} /> <Box css={{padding: 'large', keyline: 'neutral'}} /> <Box css={{padding: 'small', keyline: 'neutral'}} /> </Box>

Propriétés de mise en page

PropriétéValeurs
alignX'start' | 'center' | 'end' | 'stretch'
alignY'top' | 'center' | 'baseline' | 'bottom' | 'stretch'
distribute'space-between' | 'packed'
gapConsultez la page Espacement
overflowX | overflowY'visible' | 'hidden' | 'scroll' | 'auto'
stack'x' | 'y' | 'z'
wrap'wrap'

Espacement

Vous pouvez définir les marges extérieures, les marges intérieures et les espacements de mise en page à l’aide des valeurs indiquées ci-après.

<Box css={{margin: 'small'}} />
TokenValeur
00 px
xxsmall2 px
xsmall4 px
small8 px
medium16 px
large24 px
xlarge32 px
xxlarge48 px

Dimensionnement

Vous pouvez définir la largeur et la taille à l’aide de fractions ou de tokens de dimensionnement basés sur le contenu.

<Box css={{width: '1/2'}} />

Dimensionnement fractionnel

Les fractions disponibles sont les moitiés, les tiers, les quarts, les cinquièmes, les sixièmes et les douzièmes. Le token fill permet à un composant de s’adapter à la taille de son conteneur.

TokenValeur
00 px
1/250 %
1/3, 2/333,333333 %, 66,666667 %
1/4, 2/4, 3/4,25 %, 50 %, 75 %
1/5, 2/5, 3/5, 4/520 %, 40 %, 60 %, 80 %
1/6, 2/6, 3/6, 4/6, 5/616,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/128,333333 %, 16,666667 %, 25 %, 33,333333 %, 41,666667 %, 50 %, 58,333333 %, 66,666667 %, 75 %, 83,333333 %, 91,666667 %
fill100 %

Dimensionnement basé sur le contenu

Vous pouvez dimensionner une Box selon son contenu.

TokenUtilisation
minLe contenu du composant tire parti de toutes les possibilités de mise en forme, jusqu’à devenir aussi petit que le plus long des contenus.
maxReprésente la largeur maximale possible du contenu. Lorsqu’elle est appliquée au texte, celui-ci ne change pas de format, même si cela a pour effet de le faire dépasser hors des limites de son conteneur.
fitRemplit l’espace disponible, jusqu’à la taille maximale du contenu uniquement.

Styles prédéfinis

Les composants autres que Box et Inline disposent de styles prédéfinis, ce qui permet de conserver une expérience cohérente. Vous pouvez parfois contrôler ou annuler les réglages prédéfinis d’une certaine façon.

Stylisation automatique

Certains composants disposent de styles appliqués automatiquement. Par exemple, les puces changent automatiquement d’apparence en fonction des rappels qu’elles implémentent. Cela permet à l’utilisateur de comprendre leur comportement. Afin d’éviter toute confusion, vous ne pouvez pas remplacer ces informations.

Chargement de l'exemple...
<Box css={{ backgroundColor: 'surface', padding: 'medium', borderRadius: 'medium', }} > <ChipList> <Chip label="Currency" value="USD" onDropdown={() => { console.log('Dropdown function triggered'); }} onClose={() => { console.log('Close function triggered'); }} /> <Chip label="Status" value="Succeeded" onDropdown={() => { console.log('Dropdown function triggered'); }} onClose={() => { console.log('Close function triggered'); }} /> <Chip label="Amount" onAddSuggestion={() => { console.log('Add Amount suggestion'); }} /> <Chip label="Date" onAddSuggestion={() => { console.log('Add Date suggestion'); }} /> </ChipList> </Box>

Plusieurs réglages prédéfinis

Certains composants, tels que les Buttons, ont plusieurs styles que vous pouvez sélectionner en utilisant une propriété. Consultez la documentation de chaque composant pour en savoir plus.

Chargement de l'exemple...
<Button type="primary">Primary</Button> <Button>Secondary</Button> <Button type="destructive">Destructive</Button>

CSS limité

Certains composants prennent en charge des propriétés CSS spécifiques. Par exemple, les Icons prennent en charge les couleurs en utilisant la propriété fill. Consultez la documentation de chaque composant pour en savoir plus.

Chargement de l'exemple...
<Icon name="cancelCircle" css={{fill: 'critical'}} />

Voir aussi

  • Documentation de l’API Extension SDK
  • Composants d’interface utilisateur Stripe Apps
  • Créer une interface utilisateur
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc