Installation - Angular
Cette page documente l’installation de Ori dans une app Angular (standalone). Pour React/Next.js, voir la section dédiée du Storybook React.
Prérequis
- Node.js 20+
- Angular 20+ (avec composants standalone)
- Tailwind CSS v3
1. Installer les paquets
pnpm add @govpf/ori-angular @govpf/ori-tokens @govpf/ori-tailwind-preset @govpf/ori-css
pnpm add @angular/cdk lucide-angular
@angular/cdk est requis pour le focus-trap du <ori-dialog>.
lucide-angular est requis pour les icônes utilisées par certains
composants (Alert, FileUpload, Toast, etc.).
2. Brancher le preset Tailwind
Dans tailwind.config.ts :
import { pfDsPreset } from '@govpf/ori-tailwind-preset';
export default {
presets: [pfDsPreset],
content: [
'./src/**/*.{ts,html}',
// Inclure les composants Ori pour que Tailwind voie les classes utilisées
'./node_modules/@govpf/ori-angular/**/*.mjs',
],
};
3. Importer le CSS de base
Dans src/styles.css :
@import '@govpf/ori-tokens/css';
@import '@govpf/ori-css/preview.css';
L’ordre importe : les tokens d’abord (variables CSS), le CSS de base ensuite.
4. Utiliser un composant
Composants standalone, à importer dans le tableau imports du composant
qui les consomme :
import { Component } from '@angular/core';
import { OriButtonComponent } from '@govpf/ori-angular';
@Component({
selector: 'app-home',
standalone: true,
imports: [OriButtonComponent],
template: `<ori-button variant="primary">Démarrer une démarche</ori-button>`,
})
export class HomeComponent {}
Forms réactifs
Les composants form de Ori (<ori-input>, <ori-checkbox>,
<ori-select>, etc.) sont compatibles avec [(ngModel)] via le couple
[value] / (valueChange) :
<ori-input
label="Nom"
required
[(value)]="model.name"
></ori-input>
Pour ReactiveFormsModule, l’app peut wrapper ou accéder via
ViewChild. Un ControlValueAccessor natif n’est pas fourni par le
DS pour rester découplé de @angular/forms (les apps qui utilisent
des Signals exclusivement n’en ont pas besoin).
Theme sombre
Le DS supporte light/dark via data-theme="dark" sur l’élément racine :
document.documentElement.setAttribute('data-theme', 'dark');
Voir aussi
- Patterns Angular - création d’un composant qui consomme le DS
- Décisions / Décisions de design