Native Angular 2 components & directives for Lightning Design System
TypeScript JavaScript HTML
Clone or download
Latest commit b06890f Mar 13, 2018

README.md

ng-lightning

Build Status Sauce Test Status npm version npm Join the chat at https://gitter.im/ng-lightning/ng-lightning

Sauce Test Status

This library contains native Angular components and directives written from scratch in TypeScript using the Lightning Design System CSS framework.

We are looking for community help to find and fix bugs, improve demo site and create new components.

Installation

Install through npm:

npm install --save ng-lightning

If you use SystemJS to load your files, you should adjust your configuration to point our UMD bundle through unpkg

map: {
  ...
  'ng-lightning/ng-lightning': 'https://unpkg.com/ng-lightning@x.x.x/bundles/ng-lightning.umd.js'
}

Dependencies

This library depends on Salesforce's LDS markup and CSS (tested with 2.2.1). We don't ship any CSS file, but you have to take care of including LDS CSS rules in your page. There are various ways to achieve this, for example compiling through their source files (@salesforce-ux/design-system) or by adding this into your <head>:

<link rel="stylesheet" href="https://unpkg.com/@salesforce-ux/design-system/assets/styles/salesforce-lightning-design-system.min.css">

SVG Icons

Because of various cross-domain issues, if you want to use SLDS icons, you must provide a copy of the various sprite files (ie @salesforce-ux/design-system/assets/icons/action-sprite/svg/symbols.svg), served locally through your server. Check our webpack configuration, to see how we achieve this for our demo page.

IE11 support

Unfortunately, IE11 does not support two important features.

  • SVG External Content, used to load SVG icons from a spritemap. In order to support this, you will need to use a small script called svg4everybody.
    Available on npm cdn here.

  • Element.classList on SVG elements, used by Angular's renderer.setElementClass. See here for more information. Use classList.js shim, available on npm cdn here.

Typically, these shims should be placed within the <head> element.

Usage & Demo

http://ng-lightning.github.io/ng-lightning/

Contributing

We are always looking for high quality contributions! Please check the CONTRIBUTING.md doc for guidelines.

Sponsors

Development is supported by ZuluTrade.

Browsers

We support the same browsers and versions supported by both Angular and Salesforce's Lightning Design System.
Cross browser/environment testing is performed through Saucelabs.