tags 0.9.4

  • README.md
  • Installing
  • Versions
  • 0

no longer maintained

Tags Changes


  • No longer maintained.


  • Fixed a CSS class issue in the TreeView.


  • Added back a few top-level Tag functions.


  • Fixed CSS classes to work with latest Dart SDK.


  • Removed a majority of the top-level Tag functions. They often shadowed other user variables such as a.
  • Appended Tag to the name of the remaining top-level Tag functions to reduce the chance of shadowing.


  • Changed the behavior of EditorView.select_ such that it is called with the new selection before the EditorView.selection is set to the new selection; this allows the logic inside of a select_ override access to both the outgoing selection (via getter) and the incoming selection (via method argument).


  • Changed the T selection parameter of Editor.initialize to an optional parameter; it is legal to initialize an editor with a null, or no, selection.


  • Improved the style of the TreeView regarding alignment of expandable and non-expandable tree cells per designer request.


  • Changed the parameter of Tree.expandTo to a predicate function.


  • Added buildChildren and expandTo methods to the Tree class.


  • Changed the keys of the top-level routedCommands map to be of type String instead of Symbol; each RoutedCommand keeps a reference to its string name for rendering in the DOM so using symbols in the map was inefficient.


  • Maintenance.


  • Added a static enableAll flag to the CommandBinding class.


  • Maintenance.


  • Changed the function arguments of Clipboard.register to receive an instance of ClipboardItem for marshalling the data and optional context from source to target.


  • Fixed a bug in the clipboard when an external copy event is observed.


  • Added the canPaste method to the Clipboard.
  • Added support for copy and paste functions that are either synchronous or asynchronous as arguments to Clipboard.register.


  • Added a Clipboard class with a top-level clipboard const instance.


  • Added a new Command.always constructor; this is convenient for creating commands that can always be executed. It may also be more performant as a static function () => true is shared among all created instances.


  • Fixed an issue in the TreeView introduced by the changes in version 0.6.18; tree items need to be focusable.


  • Changed the TreeView to no longer dispatch doubleClick_ when the double click is on the expander; this is for symmetry with the changes made regarding single click in the previous version.


  • Changed the default behavior of items in the TreeView to not expand on a single click; only a single click on the expander will cause the item to expand. To expand on a single click anywhere in the item you may override the singleClick_ method in your concrete TreeView class:
void singleClick_() => toggleExpanded();


  • Changed the default theme font settings.


  • Changed the text color of the ThemeColorsDark per feedback.


  • Added a ThemeDark class.


  • Fixed another focus issue when an item is selected in the TreeView.


  • Added fontSizePx to the ThemeDisplay class.


  • Changed the KeyBinding class to a concrete class.


  • Removed the isFirstAttach parameter from the Tree.attached_ method.


  • Added the removeChildren method to the Tree and TreeView classes.


  • Fixed an issue with focus when an item is selected in the TreeView.


  • Changed the default fontSize of the default Theme to 14px.


  • Removed the svg tags; these were not being used in practice and removing them frees up some common names in the top-level namespace.


  • Added the Editor abstract class and the EditorView abstract element.


  • Added the Tree abstract class and the TreeView abstract element.


  • Added the Selections class to manage top-level selections; currently only supports single-select.


  • Added the top-level routedCommands map to the tags library.


  • Added the Command, KeyBinding and RoutedCommand classes to the tags library.
  • Added the CommandBinding custom element to the tags.html library.


  • Changed the return type of EditableLabel.beginEdit from void -> Future.
  • Replaced usages of the deprecated enteredView and leftView callbacks with attached and detached.


  • Renamed the TAGS_DOM constant to HTML and the tags.dom library to tags.html.
  • Added the down attribute on ToggleButton; this attribute is added to the element when the toggleable isDown and removed when it isUp.


  • Replaced calls to the deprecated document.register with calls to document.registerElement.


  • Added a Theme class for global styling of Themeable elements.
  • Restored the use of shadow DOM to EditableLabel but without applyAuthorStyles; version 0.5.4 broke other aspects of this element. It's inner elements can be styled from the outside in Chrome 35 using selectors such as editable-label::shadow input[type="text"] or from the inside by changing its resources and / or the global theme.


  • Removed the use of shadow DOM from EditableLabel; this element was using applyAuthorStyles which does not exist in the upcoming Chrome 35. We may add this encapsulation back in a future revision after the platform stabilizes.


  • Added an optional named parameter select to the beginEdit method of EditableLabel for selecting the label's text which defaults to true.
  • Updated API documentation generation to use the new docgen tool.


  • Fixed a styling issue in the EditableLabel.


  • Capitalized the TAGS_DOM constant.


  • Decoupled the DOM from the tags library by adding a tags.dom library; the library user is responsible for setting the dom variable prior to making any other calls to the tags library. For example:
import 'package:tags/tags.dart' as tags;
import 'package:tags/dom.dart';

main() {
  tags.dom = TAGS_DOM;
  • Removed the registerTagsCustomElements function; element registration is now performed when setting a value to the dom top-level variable.
  • Added the toggle method to Toggleable.


  • Implement a better workaround for dartbug.com/15401 below the API surface.


  • Added the isEditing, cancelEdit, and completeEdit members to the EditableLabel and replaced the onEndEdit stream with onEditChange.


  • Added the Resources and Themeable abstract classes.


  • Implement a necessary workaround for dartbug.com/15401.


  • Added an optional displayFilter field to the EditableLabel; when this is not null it affects the rendered text for all calls to the text setter.
  • Added an onEndEdit stream to the EditableLabel; one event will be added to this stream for every call to beginEdit to signal the end of editing.
  • Added <circle>, <clipPath>, <defs>, <ellipse>, <g>, <line>, <marker>, <path>, <polygon>, <polyline>, <rect>, <svg>, <symbol> and <use> tags.


  • Updated for the Dart 1.0 release.


  • Updated to SDK 0.8.10_r29803.
  • Added EditableLabel custom element with <editable-label> tag and editableLabel() Tag function.


  • Added <article>, <aside>, <audio>, <footer>, <header>, <iframe> and <section> tags.
  • Removed the deprecated HasElement and BindModel types and the bindModel function.


  • Changed ToggleButton and ToggleOpen from subtypes of HasElement to subtypes of ButtonElement and HtmlElement respectively.
  • Added the children function for building the children of an already created element.


  • Restored the text function name from appendText; thanks to user feedback!


  • Added <code> tag.
  • Added the createTag function to simplify Tag creation for tag authors.
  • Renamed the text function to appendText to align better with the underlying call to Element.appendText.


  • Moved all of the libraries into lib/src/ and added a lib/tags.dart library to expose the entire public API as a single import for users. As part of this change a number of function and class names were made longer to help avoid conflicts. This change was made to make the package easier to use, as a lot of user code was importing two or three different libraries from this package and that seemed unnecessary.


  • Updated to SDK 0.6.19_r26297.
  • Updated the html tag builder to use the new HtmlHtmlElement (renamed from HtmlElement) in dart:html. You buy posters!


  • Removed export of dart:html from the tags.html library. While this was convenient, it is emerging as an anti-pattern in Dart because it can cause a lot of confusion and errors for users who already import dart:html in their code.


  • The shadow function in the html library now returns a ShadowRoot instead of just a Node; this allows you to set properties on it directly such as:
shadow(() {
  // your shadow dom
})..applyAuthorStyles = true;


  • Updated to SDK 0.6.9_r25388.
  • Added <del> tag.
  • Some improvement to ToggleOpen.


  • Renamed DropDown to ToggleOpen to more accurately reflect what it does; it can open as a drop-down but it could be styled to open up instead for example.
  • More work on ToggleOpen including dartdoc.
  • Renamed the down and up getters on ToggleButton to isDown and isUp.


  • Updated to SDK
  • Prefix all library names with tags; for example tags.html.


  • Added the function append in the html library; this provides a means to append existing elements in a tag builder expression.
  • Expose the bind function in the custom library; this is a convenience function for implementors of custom tags.


  • Updated to SDK 0.5.13_r23552.
  • Added <nav> tag.
  • Added an optional args to each Tag. In the html library these are ignored. In the custom library we have defined a Bind function type which we take as the args for our custom tags. This gives us a mechanism to deliver the instance of HasElement back to the user as a workaround for the xtag issue noted in the prior version.
  • Added an experimental DropDown custom tag; this is a work in progress.


  • Updated to SDK 0.5.9_r22879.
  • ToggleButton can no longer store itself in the xtag of its element as the type constraint for xtag was tightened to Element in this SDK version. We need to wait for the ability to extend Element and for the custom element work in dart:html to settle down before we can make any design changes here, so for now there is no way to backtrack from the element to its ToggleButton.


  • Updated to SDK 0.5.7_r22611.
  • Avoid streaming ToggleButton states events unless there is a listener and the stream is not paused. This avoids potential memory leaks that might arise with buffered events.


  • Updated to SDK 0.5.5_r22416.


  • Updated to SDK 0.4.7_r21548.


  • Export dart:html library from html.dart so that users have only 1 import.
  • Added custom.dart library and a ToggleButton to the showcase example. The custom.dart library aims to provide a canonical set of custom elements (web components).
  • The build functon in the builder.dart library now takes a Create function to build the tag's element. This allows us to differentiate between a builder function called within the scope of a Create (constructor / initializer of an Element) and the scope of a Build (child appending logic).


  • Removed tags.dart library; users should import html.dart directly.
  • Added builder.dart library to expose tag builder functionality; This library may be used for user-defined custom tags.


  • Added <i>, <u>, <dl>, <dt>, and <dd> tags.
  • Added Build typedef and some documentation to the API.
  • Added documentation to pubspec.


  • Added <b> tag.
  • Added text(String) builder function to perform Element.appendText(String) from within build() closures.


  • Added basic usage to the README.


  • Initial release.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  tags: ^0.9.4

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:tags/tags.dart';
Version Uploaded Documentation Archive
0.9.4 Nov 24, 2015 Go to the documentation of tags 0.9.4 Download tags 0.9.4 archive
0.9.0 Apr 3, 2015 Go to the documentation of tags 0.9.0 Download tags 0.9.0 archive
0.8.5 Jan 10, 2015 Go to the documentation of tags 0.8.5 Download tags 0.8.5 archive
0.8.3 Jan 7, 2015 Go to the documentation of tags 0.8.3 Download tags 0.8.3 archive
0.8.2 Nov 16, 2014 Go to the documentation of tags 0.8.2 Download tags 0.8.2 archive
0.8.1 Nov 16, 2014 Go to the documentation of tags 0.8.1 Download tags 0.8.1 archive
0.8.0 Nov 15, 2014 Go to the documentation of tags 0.8.0 Download tags 0.8.0 archive
0.7.5 Nov 15, 2014 Go to the documentation of tags 0.7.5 Download tags 0.7.5 archive
0.7.3 Sep 21, 2014 Go to the documentation of tags 0.7.3 Download tags 0.7.3 archive
0.6.19 Aug 21, 2014 Go to the documentation of tags 0.6.19 Download tags 0.6.19 archive

All 63 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://www.dartlang.org/dart-2#migration.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.4.0 <2.0.0