Installation
npm install @fractalcms/aurelia-select-beautifulAjouter le composant dans dans l'application Aurelia
import Aurelia from 'aurelia';
import { MyApp } from './my-app';
import { SelectBeautiful } from '@fractalcms/aurelia-select-beautiful';
Aurelia
.register(SelectBeautiful)
.app(MyApp)
.start();Ajout des style CSS
Le composant ne surcharge aucun style global et ne s’injecte pas automatiquement.
Pour appliquer ses styles, importez simplement la feuille CSS dans votre fichier global SCSS ou CSS :
@import "@fractalcms/aurelia-select-beautiful/dist/styles/select-beautiful.css";Cette méthode est compatible avec Webpack, Vite et Aurelia CLI.
Elle garantit que vos styles de site ne sont jamais altérés.
Exemple d'utilisation
Select multiple avec le thème "green"
<select multiple fractalcms-select-beautiful.bind="{ theme: 'green'}">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>Select simple
<select fractalcms-select-beautiful="">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>Fonctionnalités incluses
- Recherche textuelle dynamique
- Navigation clavier (↑, ↓, Entrée, Échap)
- Sélection multiple avec suppression
- Accessibilité ARIA (live region, multiselect, etc.)
Thème CSS
- `soft` *(par défaut)* => Clair, doux et neutre => `theme: 'soft'`
- `dark` => Fond sombre, texte clair => `theme: 'dark'`
- `blue` => Accent bleu professionnel => `theme: 'blue'`
- `red` => Accent rouge moderne => `theme: 'red'`
- `green` => Accent vert équilibré => `theme: 'green'`
- `custom` => Thème utilisateur (voir ci-dessous) => `theme: 'custom'`
Créer un thème personnalisé
Le thème custom est utilisé afin de permettre l'ajout d'une CSS personnalisée.
Ce mode vous permet d’adapter le composant à la charte graphique de votre application sans modifier le code source du package.
<select fractalcms-select-beautiful.bind="{theme: 'custom'}" multiple>
<option value="1" selected>Nouveauté</option>
<option value="2">Vert</option>
</select>Exemple de style à ajouter dans vos Styles CSS
.theme-custom.select-beautiful {
.select-beautiful--item---item {
border: 2px solid #ff9900;
color: #ff9900;
}
.select-beautiful--item---item-close {
background-color: #fff5e6;
color: #ff9900;
border: 2px solid #ff9900;
}
.select-beautiful--search---input {
border: 2px solid #ff9900;
}
.select-beautiful--search---list--items {
border: 2px solid #ff9900;
&---option[aria-selected="true"] {
background-color: #ff9900;
color: white;
}
}
}Options
- `theme` : type:`Enum`, valeur par défaut : `'soft'` , description : Selection du thème
- `searchPlaceholder` : type:`string` , valeur par défaut : `'Rechercher'` , description : Texte de recherche
- `searchInputName` : type:`string` , valeur par défaut : `'model[search]'` , description : Nom de l'input de recherche
- `removeText` : type:`string` , valeur par défaut : `'retiré'` , description : ARIA texte quand une options est enlevée
- `removeAllText` : type:`string` , valeur par défaut : `'Toutes les sélections ont été supprimées'`, description : ARIA texte quand toutes les options sont enlevées
- `addText` : type:`string` , valeur par défaut : `'ajouté'` , description : ARIA texte quand une option est ajoutée
- `eventChangeItemName` : type:`string` , valeur par défaut : `'fractalcms-select-change'` , description : Nom de l'évènement envoyé au changement du select
Accessibilité (A11y)
- aria-live pour annoncer les ajouts/suppressions
- aria-multiselectable et aria-selected sur les options
- aria-activedescendant pour la navigation clavier
- Support total pour lecteurs d’écran
Développement local
# Installation des dépendances
npm install
# Build complet
npm run build
# Watch (TypeScript + SCSS)
npm run watch