Lightning User Interface in Dart
Clone or download
Latest commit d1e809d Nov 25, 2016

Lightning Dart

Stories in Ready Build Status pub package

Lightning Dart is a library for developing web applications based on the css framework SLDS provides scss/css, icons and fonts, but no functionality.

Lightning Dart provides the most complete component functionality for slds. Written in Dart it compiles into Javascript ("Dart - the better Javascript"), so the delivery is a "one page apps". You can add business functionality by writing the code in Dart - or in Javascript directly - or any language which can call Javascript.

The Framework is not dependent on functionality and can be used independently.

The Salesforce Lightning Design css framework is similar to Bootstrap but uses more recent css technology and concentrates on building Web Applications, not Web Sites.

Lightning Dart is mainly used to generate the user interface manually or from meta data. In addition to that you can create a traditional html layout and then add the component functionality via Dart.

Check out the demo


A simple usage example:

import "package:lightning/lightning.dart";

main() async {
  await LightningDart.init(); // client env
  // example:

For more details, see documentation


Lightning Dart is split up into three parts

  • View - library lightning_dart with entry point LightningDart - can be used independently and provides individual component level functionality
  • Model - library lightning_model uses Protocol Buffers for efficient language independent serialization
  • Controller - library lightning_ctrl with entry point LightningCtrl (instantiates view, ...) provides component group functionality

Status, features and bugs

The Component Demo provides the implementation status per component. The version number reflects the SLAD version.

Please file feature requests and bugs at the issue tracker or send an email to


We welcome help and contributions. The current status of the underlying design system (css) is in flux and can change quickly. So it is best to contact us first ( to coordinate efforts. We require the usual contributor license agreement.