am

angular2-mdl

Angular 2, 4, 5, 6, 7, 8, 9, 10, 11, 12 components, directives and styles based on material design lite (npm: @angular-mdl/core)

Showing:

Popularity

Downloads/wk

37

GitHub Stars

562

Maintenance

Last Commit

8d ago

Contributors

31

Package

Dependencies

0

Size (min+gzip)

20.8KB

License

MIT

Type Definitions

Built-In

Tree-Shakeable

Yes?

Reviews

Average Rating

4.0/51
Read All Reviews

Top Feedback

1Great Documentation
1Easy to Use

Readme

Angular 12 components, directives and styles based on material design lite https://getmdl.io (v: 1.3.0). This package assumes that you are building an Angular app with TypeScript. Angular CLI makes it even easier but isn't required.

Build Status CircleCI npm version Downloads Coverage Status Code Climate FOSSA Status

Status of the npm package version 12 (mdl version 1.3.0; angular 12)

  • Badges
  • Buttons
  • Cards
  • Chips
  • Dialogs (imperative and declarative)
  • Icons
  • Loading
  • Shadow
  • Toggle (Checkbox, Radio, Icon Toggle, Switch)
  • Lists
  • Slider
  • Snackbar
  • Table
  • Tooltips
  • Menu
  • Layout (standard, scroll, waterfall, tabs)
  • Tabs
  • Textfields (multiline, expandable)

Installation

npm install @angular-mdl/core --save

css from material-design-lite

You may include the material-design-lite css in your html and you're done!


<link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.indigo-pink.min.css"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

Under http://mseemann.io/angular2-mdl/theme you'll find a customizing tool to change the theme colors.

How to use the scss files from material-design-lite

This package includes the scss files from material-design-lite. With these files you are able to change the colors and other variables in your own scss files:

@import "~@angular-mdl/core/scss/color-definitions";

$color-primary: $palette-blue-500;
$color-primary-dark: $palette-blue-700;
$color-accent: $palette-amber-A200;
$color-primary-contrast: $color-dark-contrast;
$color-accent-contrast: $color-dark-contrast;

@import "~@angular-mdl/core/scss/material-design-lite";

To make this working you need to find out the way how you could tell your build system where the scss is located. For example with webpack you can use the special ~@angular-mdl/core syntax used above. Or you can configure the includePaths:

sassLoader: {
  includePaths: [util.root('node_modules', '@angular-mdl/core', 'scss')]
}

@angular-mdl/*

Additional components for @angular-mdl/core that are not part of material design lite

  • current angular version: 12
  • current angular-mdl version: 12

The components

NameProvided ByDescriptionnpmdocumentationstatusdemo
datepickermseemanna simple date pickernpm versionreadmeexperimentaldemo
expansion-panelabdulqadir93organise arbitrary content in an expansion panelnpm versionreadmeexperimentaldemo
fab-menuleojpoda fab menu componentnpm versionreadmeexperimentaldemo
popovertbpopover with arbitrary contentnpm versionreadmeexperimentaldemo
selecttba select boxnpm versionreadmeexperimentaldemo

These components support AOT and TreeShaking!

How to use the components

Install the components via npm. Please check out the individual readme for each component from the table above.

Starting with version 0.2.0 the components each have no css styles imported by default. You need to setup your build pipeline to include the scss files from each component you want to use. This makes it possible to configure the theming for the components you want to use.

If you are using webpack you may use the special webpack import syntax for node_modules:

@import '~@angular-mdl/core/scss/color-definitions';

$color-primary: $palette-blue-500;
$color-primary-dark: $palette-blue-700;
$color-accent: $palette-amber-A200;
$color-primary-contrast: $color-dark-contrast;
$color-accent-contrast: $color-dark-contrast;

@import '~@angular-mdl/core/src/scss-mdl/material-design-lite';

@import '~@angular-mdl/popover/popover';
@import '~@angular-mdl/select/select';

Another way is to include each component folder in the search path for your scss preprocessor. An example for webpack:

sassLoader: {
    includePaths: [
        'node_modules/@angular-mdl/popover',
        'node_modules/@angular-mdl/select'
    ]
}

Development

  • npm start - local dev server
  • npm build - build a production release
  • npm test - run the unit tests

The coverage report is stored under: coverage/coverage-remap/index.html

Contributing

Every contribution is welcome. Please checkout the CONTRIBUTION.md file.

Remarks

And if you would like to see a real world app that uses this package have a look at https://www.yovelino.de/apps/tour-planner/.

License

FOSSA Status

Rate & Review

Great Documentation1
Easy to Use1
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Tutorials

No tutorials found
Add a tutorial