UI Kit

Composant Boutons

Le composant UIButton est un élément d'interface utilisateur polyvalent qui peut être personnalisé avec différentes variantes, tailles, thèmes et états.

Variantes

Les variantes définissent le style fonctionnel du bouton. Utilisez variant="success" pour les actions positives et variant="danger" pour les actions destructives.

html

Tailles

Trois tailles sont disponibles : size="small", size="medium" (par défaut) et size="big".

html

Thèmes

Plusieurs thèmes de couleur sont disponibles pour s'adapter à l'identité visuelle de votre marque : theme="green", theme="red", theme="blue".

html

État de chargement

Utilisez loading pour afficher un indicateur de chargement et loadingText pour personnaliser le texte affiché. Le curseur prendra automatiquement l'apparence d'attente (wait).

html

Avec icônes

Ajoutez des icônes à gauche ou à droite du texte avec iconLeft et iconRight, ou utilisez les slots icon-left et icon-right.

html

État désactivé

Utilisez disabled pour désactiver un bouton. Les boutons désactivés n'ont pas d'ombre et affichent un curseur "not-allowed" au survol.

html

Comportement du curseur et effets interactifs

Le composant UIButton gère automatiquement l'apparence du curseur et les effets interactifs selon son état :

  • Bouton normal : Curseur "pointer", effet de survol et effet de clic actifs
  • Bouton désactivé : Curseur "not-allowed", pas d'ombre, pas d'effet de clic
  • Bouton en chargement : Curseur "wait", pas d'effet de clic
Avec effets interactifs
Sans effet de clic
Sans effet de clic

Note : Les boutons désactivés et en chargement ne déclenchent pas l'événement click et n'affichent pas d'effet visuel lors du clic, même s'ils peuvent être survolés pour afficher le curseur approprié.

API du composant

PropTypeDéfautDescription
variantString'default' Variante du bouton : 'default', 'success', 'danger'
sizeString'medium' Taille du bouton : 'small', 'medium', 'big'
themeString'light' Thème de couleur : 'light', 'dark', 'green', 'red', 'blue'
typeString'button' Type HTML du bouton : 'button', 'submit', 'reset'
disabledBooleanfalseDésactive le bouton
loadingBooleanfalseAffiche un indicateur de chargement
loadingTextString'Chargement...'Texte affiché pendant le chargement
iconLeftComponentnullComposant d'icône à gauche
iconRightComponentnullComposant d'icône à droite

Composant Champs de formulaire

Variantes

Input standard

Input requis

Input avec bulle d'info

Input avec info toujours visible

Format: +33 6 12 34 56 78

Tailles

Petit

Moyen (par défaut)

Grand

Avec icônes

Input avec icône

Input avec suffixe

États

État désactivé

État d'erreur

L'email n'est pas valide

Validation

Validation par pattern

Format: 5 chiffres

Longueur minimale et maximale

Entre 3 et 20 caractères

API du composant

PropTypeDéfautDescription
modelValue String, Number'' Valeur de l'input (v-model)
idStringauto-généréID de l'input
typeString'text' Type de l'input (text, email, password, etc.)
placeholder String'' Texte d'exemple dans l'input
label String'' Libellé de l'input
required Booleanfalse Indique si l'input est requis
infoText String'' Texte d'information supplémentaire
infoTextAlwaysVisible Booleanfalse Affiche toujours le texte d'info (sans bulle)
iconObject, Functionnull Icône à afficher dans l'input
disabled Booleanfalse Désactive l'input
error Booleanfalse Indique une erreur de validation
errorMessage String'' Message d'erreur à afficher
sizeString'medium' Taille de l'input (small, medium, large)
pattern String'' Expression régulière pour la validation
minlength String, Number'' Longueur minimale
maxlength String, Number'' Longueur maximale
suffixText String'' Texte à afficher comme suffixe

Événements

ÉvénementsDescription
update:modelValue Émis lorsque la valeur de l'input change
blurÉmis lorsque l'input perd le focus

Composant Cases à cocher

Variantes

Case à cocher standard

Veuillez lire les conditions avant d'accepter

Case à cocher requise

Case à cocher avec bulle d'info

Case à cocher avec info toujours visible

Vous recevrez des notifications par email et SMS

Tailles

Petite

Moyenne (par défaut)

Grande

États

État désactivé

État d'erreur

Cette option est obligatoire

État coché

API du composant

PropTypeDéfautDescription
modelValueBooleanfalse Valeur de la case à cocher (v-model)
idStringauto-généré ID de la case à cocher
labelString'' Libellé de la case à cocher
requiredBooleanfalse Indique si la case à cocher est requise
infoTextString'' Texte d'information supplémentaire
infoTextAlwaysVisibleBooleanfalse Affiche toujours le texte d'info (sans bulle)
helpTextString'' Texte d'aide/description
disabledBooleanfalse Désactive la case à cocher
errorBooleanfalse Indique une erreur de validation
errorMessageString'' Message d'erreur à afficher
sizeString'medium' Taille de la case à cocher (small, medium, large)

Événements

ÉvénementDescription
update:modelValue Émis lorsque l'état de la case à cocher change

Composant Conteneur

Le composant UIContainer est un élément de mise en page flexible qui permet de structurer le contenu avec différentes options de padding et de largeur maximale.

Variantes

Le conteneur peut être utilisé avec différentes configurations pour s'adapter à vos besoins de mise en page.

Conteneur standard

Contenu du conteneur

Conteneur avec largeur maximale

Conteneur avec largeur maximale moyenne

Conteneur avec padding personnalisé

Conteneur avec grand padding
html

Tailles de padding

Quatre options de padding sont disponibles : padding="none", padding="small", padding="medium" (par défaut) et padding="large".

Sans padding

Conteneur sans padding

Petit padding

Conteneur avec petit padding

Padding moyen (par défaut)

Conteneur avec padding moyen

Grand padding

Conteneur avec grand padding
html

Padding spécifiques

Vous pouvez définir des paddings spécifiques pour chaque côté du conteneur avec paddingTop, paddingBottom, paddingLeft et paddingRight.

Padding vertical uniquement

Conteneur avec padding vertical uniquement

Padding horizontal uniquement

Conteneur avec padding horizontal uniquement
html

Largeurs maximales

Cinq options de largeur maximale sont disponibles : maxWidth="none", maxWidth="small", maxWidth="medium", maxWidth="large" (par défaut) et maxWidth="full".

Petite largeur

Conteneur avec petite largeur maximale

Largeur moyenne

Conteneur avec largeur maximale moyenne

Grande largeur (par défaut)

Conteneur avec grande largeur maximale

Largeur complète

Conteneur avec largeur complète
html

API du composant

PropTypeDéfautDescription
paddingString'medium' Taille du padding (none, small, medium, large)
paddingTopStringnull Padding du haut (none, small, medium, large)
paddingBottomStringnull Padding du bas (none, small, medium, large)
paddingLeftStringnull Padding de gauche (none, small, medium, large)
paddingRightStringnull Padding de droite (none, small, medium, large)
maxWidthString'large' Largeur maximale du conteneur (none, small, medium, large, full)
centerContentBooleantrue Centrer le contenu horizontalement
fullHeightBooleanfalse Prendre toute la hauteur disponible
classNameString'' Classes CSS additionnelles

Composant Infobulle

Le composant UITooltip permet d'afficher des informations supplémentaires au survol d'un élément, aidant à clarifier des fonctionnalités ou à fournir des explications contextuelles.

Variantes

Les infobulles peuvent afficher du texte simple ou du contenu personnalisé via un slot.

Infobulle standard

Survolez l'icône pour voir l'infobulle

Infobulle avec contenu personnalisé

Utilise un slot pour le contenu
html

Positions

L'infobulle peut être positionnée à droite, à gauche, en haut ou en bas de l'élément déclencheur avec la prop position.

Position à droite (par défaut)

position="right"

Position à gauche

position="left"

Position en haut

position="top"

Position en bas

position="bottom"
html

Tailles

Trois tailles sont disponibles pour les infobulles : size="small", size="medium" (par défaut) et size="large".

Petite

size="small"

Moyenne (par défaut)

size="medium"

Grande

size="large"
html

Exemples d'utilisation

Les infobulles sont particulièrement utiles pour fournir des informations supplémentaires dans les formulaires, les tableaux de bord ou pour expliquer des fonctionnalités complexes.

Dans un formulaire

html

API du composant

PropTypeDéfautDescription
textString'' Texte à afficher dans l'infobulle
positionString'right' Position de l'infobulle (top, right, bottom, left)
sizeString'medium' Taille de l'infobulle (small, medium, large)

Slots

NomDescription
default Contenu personnalisé de l'infobulle (remplace la prop text)
html

Composant Layouts

Layout par défaut

Header
Contenu principal
Footer

Le layout par défaut comprend un en-tête, un contenu principal et un pied de page. Il est idéal pour les pages standard du site.

vue

Layout minimal

Contenu principal
Copyright uniquement

Le layout minimal n'inclut que le contenu principal et une section de copyright. Il est parfait pour les pages d'administration, de documentation ou les pages spéciales comme cette page UI Kit.

vue

Utilisation

Pour utiliser un layout spécifique dans une page, ajoutez la configuration definePageMeta dans votre script setup.

vue

Les layouts sont définis dans le dossier layouts/ de votre projet Nuxt.

Composant Text

Taille du texte

La prop size permet de définir la taille du texte. Les valeurs possibles sont : small, medium, large.

Ceci est un petit text
Ceci est un moyen text
Ceci est un grand text

Type du texte

La prop type permet de définir le type du texte. Les valeurs possibles sont : success, danger, warning, info.

Action réussie !
Une erreur est survenue !
Attention ! Cette page est dangereuse !
La statue de la liberté a été construite en France !

Couleur du texte

La prop color permet de définir la couleur du texte. Par défaut, elle est définie sur black. Si un type est défini, la couleur ne sera pas prise en compte.

Ce text à la couleur par défaut 'text-black'
Ce text a été défini avec 'text-red-500'

Décoration du texte

La prop text-decoration-line permet de définir une décoration du texte. Les valeurs possibles sont : overline, line-thought,

Ce text a une ligne sur la tête.
Ce text est barré !

Épaisseur du texte

La prop font-weight permet de définir le poids de la police. Les valeurs possibles sont : light, normal, bold.

Texte léger
Texte normal
Texte gras

Alignement du texte

La prop text-align permet de définir l'alignement du texte. Les valeurs possibles sont : left, center, right.

Je suis à gauche
Et moi au centre
Et moi à droite

Transformation du texte

La prop text-transform permet de transformer le texte en majuscules, minuscules ou capitalisées. Les valeurs possibles sont : uppercase, lowercase, capitalize.

est-ce que tu m'entends ???
Texte en minuscules.
pourquoi un text en capitalize ? Je ne sais pas.

Text en italique

La prop italic permet de définir si le texte doit être en italique. Par défaut, elle est définie sur false.

Ceci est un text tout à fait normal
Oh ! Mais que s'est-il passé ? Je suis tout de travers !

Text souligné

La prop underline permet de définir si le texte doit être souligné. Par défaut, elle est définie sur false.

Ce text n'est pas très important puisqu'il n'est pas souligné.
Ce text contient sûrement une information importante puisqu'il est souligné.

Nombres de lignes

La prop line-clamp-<number> permet de gérer si le texte se brise ou non lorsqu'il atteint la limite de la ligne.

Sed cautela nimia in peiores haeserat plagas, ut narrabimus postea, aemulis consarcinantibus insidias graves apud Constantium, cetera medium principem sed siquid auribus eius huius modi quivis infudisset ignotus, acerbum et inplacabilem et in hoc causarum titulo dissimilem sui. Post quorum necem nihilo lenius ferociens Gallus ut leo cadaveribus pastus multa huius modi scrutabatur. quae singula narrare non refert, me professione modum, quod evitandum est, excedamus.Hae duae provinciae bello quondam piratico catervis mixtae praedonum a Servilio pro consule missae sub iugum factae sunt vectigales. et hae quidem regiones velut in prominenti terrarum lingua positae ob orbe eoo monte Amano disparantur.

Api du composant

PropriétéTypeDéfautDescription
textStringRequisLe contenu textuel à afficher.
sizeStringnull Taille du texte : 'small', 'medium', 'large'.
typeStringnull Type de message : 'success', 'danger', 'warning', 'info'.
colorStringnull Couleur personnalisée du texte si type n'est pas défini.
font-weightStringnull Épaisseur du texte : 'light', 'normal', 'bold'.
text-alignStringnull Alignement du texte : 'left', 'center', 'right'.
text-transformStringnull Transformation du texte : 'uppercase', 'lowercase', 'capitalize'.
text-decoration-lineStringnull Style de décoration du texte : 'overline', 'line-through'.
clampBooleannull Permet de limiter le texte à un nombre spécifique de lignes.
italicBooleanfalseApplique le style italique au texte.
underlineBooleanfalseApplique le style souligné au texte.

Composant Title

Type du titre

La prop type permet de définir le type de balise pour le titre Les différents choix possibles sont : h1, h2, h3, h4, h5, h6.

Couleur du titre

La prop color permet de définir la couleur du titre. Par défaut, elle est définie sur text-black.

Transformation du titre

La prop text-transform permet de transformer le titre en majuscules, minuscules ou capitalisées. Les valeurs possibles sont : uppercase, lowercase, capitalize.

Titre en italique

La prop italic permet de définir si le titre doit être en italique. Par défaut, elle est définie sur false.

Titre souligné

La prop underline permet de définir si le titre doit être souligné. Par défaut, elle est définie sur false.

Api du composant

PropriétéTypeDéfautDescription
textStringRequisLe texte à afficher dans le composant.
typeString'h1' Le type de titre à utiliser : 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'.
colorStringnull Classe de couleur personnalisée pour le texte.
textTransformStringnull Transformation du texte : 'uppercase', 'lowercase', 'capitalize'.
underlineBooleanfalseApplique une ligne soulignée au texte.
italicBooleanfalseApplique le style italique au texte.

Code Blocks

Basic Usage

Code blocks with syntax highlighting and line numbers.

Usage:

Language Support

Code blocks support various programming languages.

PHP

Component API

The CodeBlock component accepts the following props:

PropTypeDefaultDescription
codeStringRequiredThe code to display and highlight.
languageString'javascript'The programming language for syntax highlighting.
showHeaderBooleantrueWhether to show the header with language and copy button.
copyableBooleantrueWhether to show the copy button.
themeString'github-dark'The theme for syntax highlighting.
lineNumbersBooleanfalseWhether to show line numbers.

Utilisation de base

Paysage montagneux
Rivière et montagnes
Paysage forestier
Vue sur la montagne
Vue sur la montagne
Vue sur la montagne
vue

Card

Ce composant possède les classes : relative, transition-all, duration-300, overflow-hidden.

html

Tailles de la card

La prop width permet de définir la taille de la card. Les valeurs possibles sont : small, medium, large. full,

La valeur par défaut est : medium.

Petite card
Moyenne card
Large card
Full card

Padding de la card

La prop padding permet de définir le padding de la card. Les valeurs possibles sont : none, small, medium, large.

La valeur par défaut est : medium.

Sans padding
Petit padding
Padding moyen
Grand padding

Margin de la card

La prop margin permet de définir la marge de la card. Les valeurs possibles sont : none, small, medium, large.

La valeur par défaut est : medium.

Sans margin
Petite margin
Margin moyenne
Grande margin

Arrondi de la card

La prop rounded permet de définir le rayon des bords de la card. Les valeurs possibles sont : none, small, medium, large.

La valeur par défaut est : medium.

Sans arrondi
Petit arrondi
Arrondi moyen
Grand arrondi

Shadow de la card

La prop shadow permet de définir l'ombre de la card. Les valeurs possibles sont : none, small, medium, large.

La valeur par défaut est : medium.

Aucune ombre
Petite ombre
Ombre moyenne
Grande ombre

Background de la card

La prop background permet de définir le background de la card.

La valeur par défaut est : bg-white.

Fond blanc
Fond gris clair
Fond bleu
Fond vert

Actions sur la card

La prop action permet de définir une action lors du click sur cette card.

Les classes ajoutés sont : shadow-lg et cursor-pointer. Il est possible de changer le shadow en ajoutant la propriété shadow.

Cliquer sur cette card pour changer le background

API du composant

PropTypeDéfautDescription
widthString'full' Définit la largeur de la carte
paddingString'medium' Définit l'espace intérieur de la carte
marginString'medium' Définit la marge extérieure de la carte
roundedString'medium' Définit l'arrondi des bords
shadowString'medium' Définit l'intensité de l'ombr
backgroundStringundefined Définir une couleur de fond personnalisée
actionFunctionundefined Fonction appelée lors du clic sur la carte

Composant Select

Le composant UISelect permet de créer des menus déroulants avec sélection simple ou multiple, incluant une fonction de recherche intégrée.

Variantes

Le select peut être utilisé en mode simple ou multiple, avec ou sans recherche.

Select simple

Sélectionnez une option
Choisir une option

Select multiple

Sélectionnez plusieurs options
Choisir des options

Select avec recherche

Rechercher une option
Rechercher...
html

Tailles

Trois tailles sont disponibles pour le select : size="small", size="medium" (par défaut) et size="large".

Petite taille

Select petit
Sélectionner une option

Taille moyenne (par défaut)

Select moyen
Sélectionner une option

Grande taille

Select grand
Sélectionner une option
html

États

État désactivé

Select désactivé
Sélectionner une option

État d'erreur

Select avec erreur
Sélectionner une option
Veuillez sélectionner une option

État requis

Select requis *
Sélectionner une option
html

Options personnalisées

Le select peut utiliser des objets comme options, avec des propriétés personnalisées pour les valeurs et les libellés.

Options avec objets

Select avec options personnalisées
Sélectionner une option

Avec icône

Select avec icône
Sélectionner une option
html

API du composant

PropTypeDéfautDescription
modelValue String | Number | Array | Object null Valeur(s) sélectionnée(s) (v-model)
optionsArray[] Liste des options disponibles
valueKeyString'value' Propriété à utiliser comme valeur (pour les objets)
labelKeyString'label' Propriété à utiliser comme libellé (pour les objets)
multipleBooleanfalse Mode de sélection multiple
searchableBooleanfalse Activation de la recherche
idStringundefined ID du select (généré automatiquement si non fourni)
placeholderString 'Sélectionner une option' Texte d'exemple
labelString'' Libellé du select
requiredBooleanfalse Indique si le select est requis
infoTextString'' Texte d'information supplémentaire
infoTextAlwaysVisibleBooleanfalse Affiche toujours le texte d'info (sans bulle)
helpTextString'' Texte d'aide/description
iconComponentnull Icône à afficher dans le select
disabledBooleanfalse Désactive le select
errorBooleanfalse Indique une erreur de validation
errorMessageString'' Message d'erreur à afficher
sizeString'medium' Taille du select (small, medium, large)

Événements

ÉvénementDescription
update:modelValue Émis lorsque la valeur sélectionnée change
change Émis lorsque la sélection change
html

Line Separator

Le composant Line Separator permet de créer des séparateurs visuels entre les sections de contenu.

Exemples de base

Contenu au-dessus du séparateur

Contenu en-dessous du séparateur

Variantes

Le composant Line Separator peut être personnalisé avec différentes variantes de couleur, marge, épaisseur et style.

Couleurs

Marges

Épaisseurs

Styles

API du composant

Prop Type Valeur par défaut Description
colorstring'gray-200' Couleur de la ligne (gray-100 à gray-900)
marginstring'medium' Marge verticale (none, small, medium, large)
thickness string'medium' Épaisseur de la ligne (thin, medium, thick)
stylestring'solid' Style de la ligne (solid, dashed, dotted)

Composant Table

Le composant UITable est un composant de tableau interactif avec support du tri, de la personnalisation des cellules et des états de chargement.

Utilisation de base

Affichez des données tabulaires avec un simple jeu de colonnes et de données.

Nom
Âge
Email
Jean Dupont32jean@example.com
Marie Curie45marie@example.com
Pierre Martin28pierre@example.com
Sophie Dubois35sophie@example.com
Lucas Bernard41lucas@example.com
Emma Laurent29emma@example.com
Olivier Girard38olivier@example.com
Camille Girard31camille@example.com
Alexandre Girard33alexandre@example.com
Thomas Dubois37thomas@example.com
Rows per page:1-10 of 100
html

Personnalisation des cellules

Personnalisez le rendu des cellules en utilisant des slots ou des fonctions de rendu.

Produit
Prix
Stock
T-shirt€29.99En stock
Chaussures€89.99Rupture
Sac à dos€49.99En stock
Pantalon€59.99En stock
Veste€129.99En stock
Chapeau€24.99Rupture
Écharpe€19.99En stock
Rows per page:1-7 of 100
html

État de chargement

Affichez un état de chargement pendant le chargement des données.

Nom
Âge
Email
html

État vide

Affichez un message personnalisé lorsque le tableau ne contient aucune donnée.

Nom
Âge
Email
No data available
html

API du composant

PropTypeDéfautDescription
columnsArray[]Configuration des colonnes
dataArray[]Données à afficher
loadingBooleanfalseAffiche un état de chargement
paginationObject { currentPage: 1, totalItems: 0, perPage: 10, showControls: true } Configuration de la pagination
currentSortObject{ key: null, direction: 'asc' }Configuration du tri
sortableBooleanfalseActive le tri des colonnes
emptyTextString'No data available' Texte à afficher quand il n'y a pas de données

© 2025 KAMEO Bikes. Tous droits réservés.