Fluid is the Engie's design system, a collection of reusable components and styles used to build Engie's digital products.
Here is the package to benefit from Fluid's components and styles in your Angular project.
We recommend fixing the version with the exact package version to avoid breaking changes affecting your live website. Moreover, we recommend checking the CHANGELOG before updating the package after a release.
This package can be installed directly with NPM:
# Using npm
npm install --save-exact @engie-group/fluid-design-system-angular @engie-group/fluid-design-tokens
# Using pnpm
pnpm add --save-exact @engie-group/fluid-design-system-angular @engie-group/fluid-design-tokens
# Using yarn
yarn add --save-exact @engie-group/fluid-design-system-angular @engie-group/fluid-design-tokens
ℹ️ If you use deprecated components or need the reboot.css, you will need to install and use some styles from the
@engie-group/fluid-4-deprecated
package.Please refer to the
@engie-group/fluid-4-deprecated
README.md
for more information.# Using npm npm install @engie-group/fluid-4-deprecated # Using pnpm pnpm add @engie-group/fluid-4-deprecated # Using yarn yarn add @engie-group/fluid-4-deprecated
In order for the components to work properly, you need to include the Material Icons and Lato font in your project.
You should include them in your HTML <head>
:
<!-- Material icons, Lato font and Roboto Mono font -->
<link href="https://fonts.googleapis.com/css?family=Material+Icons|Lato:300,400,700,900|Roboto+Mono:300,400,700,900&display=swap" rel="stylesheet"/>
Component styling is based on CSS classes and some CSS variables (called design tokens). In order for each component to be rendered as expected, you need to include a CSS file as global stylesheet in your project.
You must include it in your angular.json
file in the styles
array:
{
"styles": [
"@engie-group/fluid-design-tokens/lib/css/tokens.css",
// Only if you use deprecated components
"@engie-group/fluid-4-deprecated/tokens/lib/css/tokens.css",
"@engie-group/fluid-design-system-angular/lib/styles/fluid-design-system.css"
]
}
ℹ️ We recommend including it before your own stylesheets to avoid any conflicts.
Some components have animations, you need to enable the Angular animation module in your application for them to work correctly.
For application bootstrapped with the bootstrapApplication()
function (usually in main.ts), add the provideAnimations()
function in the provider list:
import {provideAnimations} from '@angular/platform-browser/animations';
bootstrapApplication(AppComponent, {
providers: [
provideAnimations(),
]
});
Or for NgModule
based applications import BrowserAnimationModule
, which introduces the animation capabilities into your module:
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@NgModule({
declarations: [],
imports: [
BrowserAnimationModule
],
exports: [],
providers: []
})
export class AppModule {
}
For a better comprehension of the components and their usage, we recommend checking our Storybook documentation.
For Fluid overall documentation, you can check our Fluid documentation.
If you have correctly followed the installation steps, you should be able to use Fluid components in your project.
All components are exported in @engie-group/fluid-design-system-angular
:
import {NgModule} from "@angular/core";
import {ButtonComponent} from '@engie-group/fluid-design-system-angular'
@NgModule({
imports: [ButtonComponent]
})
export class AppModule {}
or
import {Component} from "@angular/core";
import {ButtonComponent} from '@engie-group/fluid-design-system-angular'
@Component({
standalone: true,
template: '<nj-button>Label</nj-button>',
imports: [ButtonComponent]
})
export class CustomComponent {}
If you encounter any issues, or you want any component or feature to be implemented, please create an issue or a feature request on our GitHub repository.