Créer un système de navigation avec des onglets dans Bubble.io

Créer un système de navigation avec des onglets dans Bubble.io

Apprenez comment créer un système de navigation par Onglets custom dans Bubble de zéro.

Apprenez comment créer un système de navigation par Onglets custom dans Bubble de zéro.

Thomas Couderq

Thomas Couderq

Thomas Couderq

Co-Fondateur - Staak

Dans cet article

🔄 Recherche des titres...
(Vérifiez que les types de titres sont activés)

Les onglets sont largement utilisés sur le web. C'est un moyen utile et pratique de construire un système de navigation pour votre app.

Dans ce tutorial, nous allons apprendre comment créer ce type d'onglets pour votre app Bubble :

Étape 1 - Construire votre UI d'Onglets Bubble

Construire des onglets dans Bubble est assez simple, mais il y a une petite astuce que vous devez connaître.

Pour rendre vos Onglets responsive, vous devez vous assurer qu'ils deviennent horizontalement scrollables quand nécessaire.

De cette façon, vous vous assurez que les Utilisateurs pourront toujours les utiliser sur Mobile.

La meilleure façon de faire cela est d'utiliser un Repeating Group pour construire notre UI d'Onglets.

Non seulement cela rendra nos onglets responsive, mais cela les rendra aussi beaucoup plus faciles à maintenir, puisque vous n'aurez besoin de modifier que l'Onglet principal, et tous les changements seront appliqués aux autres Onglets.

Alors commençons :

Commençons par ajouter un Repeating Group à notre Page, et donnons-lui les paramètres suivants :

bubble tabs with repeating grouphow to make tabs in bubble

Comme vous pouvez le voir ci-dessus, j'ai décoché la checkbox "Fit width to content". C'est important pour s'assurer que le Repeating Group deviendra horizontalement scrollable plus tard.

Si vous voulez en apprendre plus sur comment obtenir un Horizontal Scroll dans Bubble, nous avons fait un tutorial là-dessus --> Cliquez ici pour le lire

Maintenant que le Repeating Group est configuré, nous pouvons commencer à créer notre Onglet Principal. C'est notre "Template" d'Onglet en quelque sorte.

Alors commençons par ajouter un Group dans notre RG ainsi qu'un élément Text pour notre Label.

Dans cet exemple, je vais faire ce type d'Onglets :

bubble tabs component

Vous pouvez le styler comme vous voulez. Dans cet article, nous nous concentrerons plus sur le faire fonctionner !

bubble tabs tutorial

Très bien, maintenant que nous avons notre Onglet Principal, nous devons ajouter une Data Source à notre Repeating Group.

Ici vous avez deux approches principales :

1 - Utiliser des Dynamic Data

Cette méthode est bonne si vous voulez utiliser quelque chose qui est stocké dans votre Database ou comme un Option Set.

Par exemple, si vous construisez un Task manager, vous pourriez vouloir utiliser ces Onglets pour filtrer les tâches par leur Status (ex : Pending, Completed, Late etc...)

Dans ce cas, vous voudrez utiliser des dynamic data, comme suit :

A - Ajoutez votre content type et votre Data source au RG (peut être un Option Set ou un Data Type)

bubble.io tabs tutorial

B - Définissez le Content type et la Data Source sur le Group de votre Onglet

how to make tabs in bubble

C - Définissez votre élément text pour afficher le Label

tabs label in bubble

Et voilà. Vous devriez maintenant voir vos Labels s'afficher correctement !

Vous pouvez passer à l'Étape 2.

2 - Utiliser des Static Data

Dans d'autres cas, vous pourriez vouloir utiliser des Static Data (c'est-à-dire du texte).

Cela peut être utile pour éviter de créer un nouvel option set ou de nouveaux data types par exemple.

Pour faire cela, vous pouvez utiliser l'opérateur "arbitrary text" en combinaison avec l'opérateur "split by".

L'opérateur "split by" convertira un texte unique en une liste de textes, basée sur un séparateur spécifié.

Voici comment faire :

A - Définissez la Data Source et le Content Type de votre Repeating Group

making a tab in bubble with static data

Maintenant comme dit précédemment, vous devrez utiliser un arbitrary text combiné avec un opérateur "split by", comme ci-dessous :

bubble.io arbitrary text with split bybubble.io split by operator

B - Définissez le content type et la Data source de votre Onglet

making tabs in bubble.io

C - Affichez votre Onglet dans l'élément Text

making tabs in bubble

Et voilà, le Repeating Group a maintenant le bon contenu.

Passons à l'Étape 2

Étape 2 - Construire les workflows de vos Onglets

Très bien, maintenant que nous avons tout configuré, nous pouvons passer à la construction de la logique qui donnera vie à nos Onglets !

2A - Créer un custom state

bubble.io tabs with a custom state

Pour faire cela, nous devrons d'abord créer un Custom State qui stockera l'Onglet Actif.

Vous pouvez l'attacher où vous voulez, mais dans mon cas j'aime l'ajouter sur le Repeating Group. Cela rend plus facile de le dupliquer si vous voulez le réutiliser.

IMPORTANT : Assurez-vous que le type de votre Custom State soit le même que celui de votre Repeating Group.

Aussi, assurez-vous de définir une Default Value si vous voulez avoir un Onglet sélectionné par défaut.

2B - Créer nos workflows

Maintenant que nous avons notre Custom state prêt, nous devons effectivement le mettre à jour quand un Onglet est cliqué.

Pour faire cela, ajoutez simplement un workflow au group de notre Onglet.

Ce workflow utilisera l'action "Set state of an element" :

bubble workflow to create a tabs

Et voilà ! Rien de difficile.

Étape 3 - Faire réagir nos Onglets

Maintenant que notre Custom state est mis à jour correctement, nous devons effectivement refléter ces changements, c'est-à-dire faire en sorte que l'Onglet ait un "active state".

Pour faire cela, nous pouvons ajouter quelques conditions à notre Group d'Onglet et à son label.

Le nombre de propriétés de vos conditionnels dépendra du design que vous voulez, mais les conditions seront les mêmes que ci-dessous.

Basiquement, vous voulez référencer votre custom state (dans mon cas c'est l'activeTab du Repeating Group Tasks statu) et le comparer à la valeur de la Current Cell de votre Repeating Group.

Si c'est la même valeur, alors cela signifie que l'Onglet sélectionné est celui-ci, et que vous devez modifier son style.

Et voilà, tout ce dont vous avez besoin maintenant est de l'adapter à votre propre design !

bubble.io tabs conditionalsbubble tabs with conditionals

Étape 4 - Afficher le bon contenu

Maintenant que nous avons nos Onglets faits, nous devons savoir comment afficher effectivement le contenu correspondant.

Eh bien, c'est assez basique.

Tout ce que nous devons faire est d'utiliser la valeur stockée dans notre Custom State pour ajouter des conditionnels pour afficher la Bonne chose quand nécessaire.

Voici comment faire cela :

1 - Cachez vos éléments par défaut

bubble show tabs content

2 - Ajoutez une condition pour les faire apparaître quand nécessaire

bubble tabs navigation

Et voilà ! Répétez l'opération pour vos autres containers de contenu et vous serez prêt !

3 (optionnel) - Si vous voulez filtrer une Search

En passant, vous pourriez aussi utiliser la valeur de votre Custom State dans une Search Constraint.

Cela serait utile pour filtrer les Repeating Groups basés sur l'Onglet sélectionné (par exemple, montrer seulement les Tâches complétées quand l'onglet "Completed" est sélectionné).

Thomas Couderq

Co-Fondateur - Staak

Expert en design UI/UX et stratégie d'expérience utilisateur. Fort de 5 ans d'expertise Bubble, Thomas a fondé Nocodable-components.com, une librairie UI adoptée par plus de 4000 développeurs. Il conçoit des interfaces intuitives et performantes qui transforment l'expérience de vos utilisateurs.

Travailler avec Staak

On construit des solutions techniques sur-mesure pour les entreprises ambitieuses.

Dans cet article

🔄 Recherche des titres...
(Vérifiez que les types de titres sont activés)

Les onglets sont largement utilisés sur le web. C'est un moyen utile et pratique de construire un système de navigation pour votre app.

Dans ce tutorial, nous allons apprendre comment créer ce type d'onglets pour votre app Bubble :

Étape 1 - Construire votre UI d'Onglets Bubble

Construire des onglets dans Bubble est assez simple, mais il y a une petite astuce que vous devez connaître.

Pour rendre vos Onglets responsive, vous devez vous assurer qu'ils deviennent horizontalement scrollables quand nécessaire.

De cette façon, vous vous assurez que les Utilisateurs pourront toujours les utiliser sur Mobile.

La meilleure façon de faire cela est d'utiliser un Repeating Group pour construire notre UI d'Onglets.

Non seulement cela rendra nos onglets responsive, mais cela les rendra aussi beaucoup plus faciles à maintenir, puisque vous n'aurez besoin de modifier que l'Onglet principal, et tous les changements seront appliqués aux autres Onglets.

Alors commençons :

Commençons par ajouter un Repeating Group à notre Page, et donnons-lui les paramètres suivants :

bubble tabs with repeating grouphow to make tabs in bubble

Comme vous pouvez le voir ci-dessus, j'ai décoché la checkbox "Fit width to content". C'est important pour s'assurer que le Repeating Group deviendra horizontalement scrollable plus tard.

Si vous voulez en apprendre plus sur comment obtenir un Horizontal Scroll dans Bubble, nous avons fait un tutorial là-dessus --> Cliquez ici pour le lire

Maintenant que le Repeating Group est configuré, nous pouvons commencer à créer notre Onglet Principal. C'est notre "Template" d'Onglet en quelque sorte.

Alors commençons par ajouter un Group dans notre RG ainsi qu'un élément Text pour notre Label.

Dans cet exemple, je vais faire ce type d'Onglets :

bubble tabs component

Vous pouvez le styler comme vous voulez. Dans cet article, nous nous concentrerons plus sur le faire fonctionner !

bubble tabs tutorial

Très bien, maintenant que nous avons notre Onglet Principal, nous devons ajouter une Data Source à notre Repeating Group.

Ici vous avez deux approches principales :

1 - Utiliser des Dynamic Data

Cette méthode est bonne si vous voulez utiliser quelque chose qui est stocké dans votre Database ou comme un Option Set.

Par exemple, si vous construisez un Task manager, vous pourriez vouloir utiliser ces Onglets pour filtrer les tâches par leur Status (ex : Pending, Completed, Late etc...)

Dans ce cas, vous voudrez utiliser des dynamic data, comme suit :

A - Ajoutez votre content type et votre Data source au RG (peut être un Option Set ou un Data Type)

bubble.io tabs tutorial

B - Définissez le Content type et la Data Source sur le Group de votre Onglet

how to make tabs in bubble

C - Définissez votre élément text pour afficher le Label

tabs label in bubble

Et voilà. Vous devriez maintenant voir vos Labels s'afficher correctement !

Vous pouvez passer à l'Étape 2.

2 - Utiliser des Static Data

Dans d'autres cas, vous pourriez vouloir utiliser des Static Data (c'est-à-dire du texte).

Cela peut être utile pour éviter de créer un nouvel option set ou de nouveaux data types par exemple.

Pour faire cela, vous pouvez utiliser l'opérateur "arbitrary text" en combinaison avec l'opérateur "split by".

L'opérateur "split by" convertira un texte unique en une liste de textes, basée sur un séparateur spécifié.

Voici comment faire :

A - Définissez la Data Source et le Content Type de votre Repeating Group

making a tab in bubble with static data

Maintenant comme dit précédemment, vous devrez utiliser un arbitrary text combiné avec un opérateur "split by", comme ci-dessous :

bubble.io arbitrary text with split bybubble.io split by operator

B - Définissez le content type et la Data source de votre Onglet

making tabs in bubble.io

C - Affichez votre Onglet dans l'élément Text

making tabs in bubble

Et voilà, le Repeating Group a maintenant le bon contenu.

Passons à l'Étape 2

Étape 2 - Construire les workflows de vos Onglets

Très bien, maintenant que nous avons tout configuré, nous pouvons passer à la construction de la logique qui donnera vie à nos Onglets !

2A - Créer un custom state

bubble.io tabs with a custom state

Pour faire cela, nous devrons d'abord créer un Custom State qui stockera l'Onglet Actif.

Vous pouvez l'attacher où vous voulez, mais dans mon cas j'aime l'ajouter sur le Repeating Group. Cela rend plus facile de le dupliquer si vous voulez le réutiliser.

IMPORTANT : Assurez-vous que le type de votre Custom State soit le même que celui de votre Repeating Group.

Aussi, assurez-vous de définir une Default Value si vous voulez avoir un Onglet sélectionné par défaut.

2B - Créer nos workflows

Maintenant que nous avons notre Custom state prêt, nous devons effectivement le mettre à jour quand un Onglet est cliqué.

Pour faire cela, ajoutez simplement un workflow au group de notre Onglet.

Ce workflow utilisera l'action "Set state of an element" :

bubble workflow to create a tabs

Et voilà ! Rien de difficile.

Étape 3 - Faire réagir nos Onglets

Maintenant que notre Custom state est mis à jour correctement, nous devons effectivement refléter ces changements, c'est-à-dire faire en sorte que l'Onglet ait un "active state".

Pour faire cela, nous pouvons ajouter quelques conditions à notre Group d'Onglet et à son label.

Le nombre de propriétés de vos conditionnels dépendra du design que vous voulez, mais les conditions seront les mêmes que ci-dessous.

Basiquement, vous voulez référencer votre custom state (dans mon cas c'est l'activeTab du Repeating Group Tasks statu) et le comparer à la valeur de la Current Cell de votre Repeating Group.

Si c'est la même valeur, alors cela signifie que l'Onglet sélectionné est celui-ci, et que vous devez modifier son style.

Et voilà, tout ce dont vous avez besoin maintenant est de l'adapter à votre propre design !

bubble.io tabs conditionalsbubble tabs with conditionals

Étape 4 - Afficher le bon contenu

Maintenant que nous avons nos Onglets faits, nous devons savoir comment afficher effectivement le contenu correspondant.

Eh bien, c'est assez basique.

Tout ce que nous devons faire est d'utiliser la valeur stockée dans notre Custom State pour ajouter des conditionnels pour afficher la Bonne chose quand nécessaire.

Voici comment faire cela :

1 - Cachez vos éléments par défaut

bubble show tabs content

2 - Ajoutez une condition pour les faire apparaître quand nécessaire

bubble tabs navigation

Et voilà ! Répétez l'opération pour vos autres containers de contenu et vous serez prêt !

3 (optionnel) - Si vous voulez filtrer une Search

En passant, vous pourriez aussi utiliser la valeur de votre Custom State dans une Search Constraint.

Cela serait utile pour filtrer les Repeating Groups basés sur l'Onglet sélectionné (par exemple, montrer seulement les Tâches complétées quand l'onglet "Completed" est sélectionné).

Thomas Couderq

Co-Fondateur - Staak

Expert en design UI/UX et stratégie d'expérience utilisateur. Fort de 5 ans d'expertise Bubble, Thomas a fondé Nocodable-components.com, une librairie UI adoptée par plus de 4000 développeurs. Il conçoit des interfaces intuitives et performantes qui transforment l'expérience de vos utilisateurs.

Travailler avec Staak

On construit des solutions techniques sur-mesure pour les entreprises ambitieuses.

Dans cet article

🔄 Recherche des titres...
(Vérifiez que les types de titres sont activés)

Les onglets sont largement utilisés sur le web. C'est un moyen utile et pratique de construire un système de navigation pour votre app.

Dans ce tutorial, nous allons apprendre comment créer ce type d'onglets pour votre app Bubble :

Étape 1 - Construire votre UI d'Onglets Bubble

Construire des onglets dans Bubble est assez simple, mais il y a une petite astuce que vous devez connaître.

Pour rendre vos Onglets responsive, vous devez vous assurer qu'ils deviennent horizontalement scrollables quand nécessaire.

De cette façon, vous vous assurez que les Utilisateurs pourront toujours les utiliser sur Mobile.

La meilleure façon de faire cela est d'utiliser un Repeating Group pour construire notre UI d'Onglets.

Non seulement cela rendra nos onglets responsive, mais cela les rendra aussi beaucoup plus faciles à maintenir, puisque vous n'aurez besoin de modifier que l'Onglet principal, et tous les changements seront appliqués aux autres Onglets.

Alors commençons :

Commençons par ajouter un Repeating Group à notre Page, et donnons-lui les paramètres suivants :

bubble tabs with repeating grouphow to make tabs in bubble

Comme vous pouvez le voir ci-dessus, j'ai décoché la checkbox "Fit width to content". C'est important pour s'assurer que le Repeating Group deviendra horizontalement scrollable plus tard.

Si vous voulez en apprendre plus sur comment obtenir un Horizontal Scroll dans Bubble, nous avons fait un tutorial là-dessus --> Cliquez ici pour le lire

Maintenant que le Repeating Group est configuré, nous pouvons commencer à créer notre Onglet Principal. C'est notre "Template" d'Onglet en quelque sorte.

Alors commençons par ajouter un Group dans notre RG ainsi qu'un élément Text pour notre Label.

Dans cet exemple, je vais faire ce type d'Onglets :

bubble tabs component

Vous pouvez le styler comme vous voulez. Dans cet article, nous nous concentrerons plus sur le faire fonctionner !

bubble tabs tutorial

Très bien, maintenant que nous avons notre Onglet Principal, nous devons ajouter une Data Source à notre Repeating Group.

Ici vous avez deux approches principales :

1 - Utiliser des Dynamic Data

Cette méthode est bonne si vous voulez utiliser quelque chose qui est stocké dans votre Database ou comme un Option Set.

Par exemple, si vous construisez un Task manager, vous pourriez vouloir utiliser ces Onglets pour filtrer les tâches par leur Status (ex : Pending, Completed, Late etc...)

Dans ce cas, vous voudrez utiliser des dynamic data, comme suit :

A - Ajoutez votre content type et votre Data source au RG (peut être un Option Set ou un Data Type)

bubble.io tabs tutorial

B - Définissez le Content type et la Data Source sur le Group de votre Onglet

how to make tabs in bubble

C - Définissez votre élément text pour afficher le Label

tabs label in bubble

Et voilà. Vous devriez maintenant voir vos Labels s'afficher correctement !

Vous pouvez passer à l'Étape 2.

2 - Utiliser des Static Data

Dans d'autres cas, vous pourriez vouloir utiliser des Static Data (c'est-à-dire du texte).

Cela peut être utile pour éviter de créer un nouvel option set ou de nouveaux data types par exemple.

Pour faire cela, vous pouvez utiliser l'opérateur "arbitrary text" en combinaison avec l'opérateur "split by".

L'opérateur "split by" convertira un texte unique en une liste de textes, basée sur un séparateur spécifié.

Voici comment faire :

A - Définissez la Data Source et le Content Type de votre Repeating Group

making a tab in bubble with static data

Maintenant comme dit précédemment, vous devrez utiliser un arbitrary text combiné avec un opérateur "split by", comme ci-dessous :

bubble.io arbitrary text with split bybubble.io split by operator

B - Définissez le content type et la Data source de votre Onglet

making tabs in bubble.io

C - Affichez votre Onglet dans l'élément Text

making tabs in bubble

Et voilà, le Repeating Group a maintenant le bon contenu.

Passons à l'Étape 2

Étape 2 - Construire les workflows de vos Onglets

Très bien, maintenant que nous avons tout configuré, nous pouvons passer à la construction de la logique qui donnera vie à nos Onglets !

2A - Créer un custom state

bubble.io tabs with a custom state

Pour faire cela, nous devrons d'abord créer un Custom State qui stockera l'Onglet Actif.

Vous pouvez l'attacher où vous voulez, mais dans mon cas j'aime l'ajouter sur le Repeating Group. Cela rend plus facile de le dupliquer si vous voulez le réutiliser.

IMPORTANT : Assurez-vous que le type de votre Custom State soit le même que celui de votre Repeating Group.

Aussi, assurez-vous de définir une Default Value si vous voulez avoir un Onglet sélectionné par défaut.

2B - Créer nos workflows

Maintenant que nous avons notre Custom state prêt, nous devons effectivement le mettre à jour quand un Onglet est cliqué.

Pour faire cela, ajoutez simplement un workflow au group de notre Onglet.

Ce workflow utilisera l'action "Set state of an element" :

bubble workflow to create a tabs

Et voilà ! Rien de difficile.

Étape 3 - Faire réagir nos Onglets

Maintenant que notre Custom state est mis à jour correctement, nous devons effectivement refléter ces changements, c'est-à-dire faire en sorte que l'Onglet ait un "active state".

Pour faire cela, nous pouvons ajouter quelques conditions à notre Group d'Onglet et à son label.

Le nombre de propriétés de vos conditionnels dépendra du design que vous voulez, mais les conditions seront les mêmes que ci-dessous.

Basiquement, vous voulez référencer votre custom state (dans mon cas c'est l'activeTab du Repeating Group Tasks statu) et le comparer à la valeur de la Current Cell de votre Repeating Group.

Si c'est la même valeur, alors cela signifie que l'Onglet sélectionné est celui-ci, et que vous devez modifier son style.

Et voilà, tout ce dont vous avez besoin maintenant est de l'adapter à votre propre design !

bubble.io tabs conditionalsbubble tabs with conditionals

Étape 4 - Afficher le bon contenu

Maintenant que nous avons nos Onglets faits, nous devons savoir comment afficher effectivement le contenu correspondant.

Eh bien, c'est assez basique.

Tout ce que nous devons faire est d'utiliser la valeur stockée dans notre Custom State pour ajouter des conditionnels pour afficher la Bonne chose quand nécessaire.

Voici comment faire cela :

1 - Cachez vos éléments par défaut

bubble show tabs content

2 - Ajoutez une condition pour les faire apparaître quand nécessaire

bubble tabs navigation

Et voilà ! Répétez l'opération pour vos autres containers de contenu et vous serez prêt !

3 (optionnel) - Si vous voulez filtrer une Search

En passant, vous pourriez aussi utiliser la valeur de votre Custom State dans une Search Constraint.

Cela serait utile pour filtrer les Repeating Groups basés sur l'Onglet sélectionné (par exemple, montrer seulement les Tâches complétées quand l'onglet "Completed" est sélectionné).

Thomas Couderq

Co-Fondateur - Staak

Expert en design UI/UX et stratégie d'expérience utilisateur. Fort de 5 ans d'expertise Bubble, Thomas a fondé Nocodable-components.com, une librairie UI adoptée par plus de 4000 développeurs. Il conçoit des interfaces intuitives et performantes qui transforment l'expérience de vos utilisateurs.

Travailler avec Staak

On construit des solutions techniques sur-mesure pour les entreprises ambitieuses.

Prêt à démarrer ?

Et si on discutait de votre projet ensemble ?

30 minutes pour définir ensemble votre projet idéal. Aucun engagement, que des bonnes idées.

Prêt à démarrer ?

Et si on discutait de votre projet ensemble ?

30 minutes pour définir ensemble votre projet idéal. Aucun engagement, que des bonnes idées.

Prêt à démarrer ?

Et si on discutait de votre projet ensemble ?

30 minutes pour définir ensemble votre projet idéal. Aucun engagement, que des bonnes idées.

Applications métiers, automatisations et interfaces sur-mesure pour les entreprises qui veulent gagner en efficacité — sans dépendre d'une équipe technique.

© 2025 Staak. Tous droits réservés.

Applications métiers, automatisations et interfaces sur-mesure pour les entreprises qui veulent gagner en efficacité — sans dépendre d'une équipe technique.

© 2025 Staak. Tous droits réservés.

Applications métiers, automatisations et interfaces sur-mesure pour les entreprises qui veulent gagner en efficacité — sans dépendre d'une équipe technique.

© 2025 Staak. Tous droits réservés.