Get started with @daffodil/design, an Angular component library built for ecommerce with accessibility in-mind. With these first steps, we warmly welcome you to a library that will help you build elegant and accessible user interfaces without having to do everything by hand.
This tutorial is designed to touch upon the very basics of the @daffodil/design library. First things first, you will need to create a new Angular project and install the library. By the end of this tutorial, you will have created a basic Angular app that renders a simple DaffHeroComponent with a title and subtitle.
@daffodil/design is designed to be used with Angular. If you have not already done so, create a new Angular project. Afterwards, @daffodil/design can be installed using a package manager.
npm install --save @daffodil/design @daffodil/core \
@angular/animatio@^13.0.0 \
@angular/cdk@^13.0.0 \
@fortawesome/angular-fontawesome@^0.10.0 \
@fortawesome/fontawesome-svg-core@^1.0.0 \
@fortawesome/free-solid-svg-icons@^5.2.0 \
@fortawesome/free-brands-svg-icons@^5.2.0 \
@fortawesome/free-regular-svg-icons@^5.2.0 \
modern-normalize@^0.5.0
If you are using Node.js v14 or higher, you can simply run:
npm install --save @daffodil/design
yarn add @daffodil/design @daffodil/core \
@angular/animatio@^13.0.0 \
@angular/cdk@^13.0.0 \
@fortawesome/angular-fontawesome@^0.10.0 \
@fortawesome/fontawesome-svg-core@^1.0.0 \
@fortawesome/free-solid-svg-icons@^5.2.0 \
@fortawesome/free-brands-svg-icons@^5.2.0 \
@fortawesome/free-regular-svg-icons@^5.2.0 \
modern-normalize@^0.5.0
If you are using Node.js v14 or higher, you can simply run:
yarn add @daffodil/design
Next, create a styles.scss in the root of the Angular app and modify the angular.json's projects.[my-app].architect.build.options.styles to look as below. If SASS is already in use in the application and the stylesheet already exists, this step can be skipped.
"styles": [
"src/styles.scss"
],
Note that
@daffodil/designuses SASS, so we recommend you learn it!
There is a minimal required global style for @daffodil/design to operate effectively in all supported browsers. Update the styles.scss to include the following:
@forward '@daffodil/design/scss/global';
For more information on our approach to these kinds of styles, see the "Global Styles" guide.
@daffodil/design is a themable component library. The components in the design library can be configured with customized colors in addition to a dark AND light mode for those same colors.
Are you excited by themes? So are we.
See the Theming Docs
In the AppModule of your Angular app, import the DaffHeroModule into the NgModule's imports array.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { DaffHeroModule } from '@daffodil/design/hero';
@NgModule({
imports: [
BrowserModule,
DaffHeroModule
],
declarations: [
AppComponent
],
bootstrap: [
AppComponent
]
})
export class AppModule {}
With the module imported, the AppComponent template can be updated to render the component.
<daff-hero>
<div daffHeroTagline>Frontend framework for ecommerce PWAs</div>
<h1 daffHeroTitle>Daffodil: The next great leap in ecommerce.</h1>
<h2 daffHeroSubtitle>
<p>Daffodil provides everything you need to create powerful and flexible ecommerce experiences.</p>
<p>With Daffodil, ambitious businesses are able to achieve more while minimizing development and maintenance costs.</p>
</h2>
</daff-hero>
We've just walked through the basics of setting up the @daffodil/design library. There is much more to it than just the DaffHeroComponent. Check out the full list of available components, try and add them to your sample app, and imagine all the wonderful things you can now build!