anchor.diff:  
     void removeChild(VNode container, VNode node) {
       final e = (node.ref as html.Element);
  +    final transitionNode = _nodes[node.key];
  +
  +    if (transitionNode.state == _CssTransitionNode.enter) {
  +      e.classes.remove('enter');
  +      e.classes.remove('active');
  +    }
  +    transitionNode.state = _CssTransitionNode.leave;
  +
       e.classes.add('leave');
       scheduler.currentFrame.read().then((_) {
         e.getComputedStyle().transform;
  
positive.code:   void _handleTransitionEnd(html.TransitionEvent e) {
      e.stopPropagation();
  
      final classes = (e.target as html.Element).classes;
      if (classes.contains('enter')) {
        classes.remove('enter');
        classes.remove('active');
      } else if (classes.contains('leave')) {
        classes.remove('leave');
        classes.remove('active');
        (e.target as html.Element).remove();
      }
    }
  
    void insertChild(VNode container, VNode node, VNode next) {
      assert((node.flags & VNode.componentFlag) != 0);
  
      final nextRef = next == null ? null : next.ref;
      node.create((this as VContext));
  
negative.code: 
  library uix.src.misc.css_transition_container;
  
  import 'dart:collection';
  import 'dart:html' as html;
  import '../assert.dart';
  import '../env.dart';
  import '../container.dart';
  import '../vcontext.dart';
  import '../vnode.dart';
  
  class _CssTransitionNode {
    static const int normal = 0;
    static const int enter = 1;
    static const int leave = 2;
  
    int state = enter;
    VNode node;
    html.Element element;
  
    _CssTransitionNode(this.node, this.element);
  }
  
  /// *EXPERIMENTAL* class for group transitions
  abstract class CssTransitionContainer implements Container {
    html.Element get element;
  
    HashMap<Object, _CssTransitionNode> _nodes = new HashMap<Object, _CssTransitionNode>();
    HashMap<html.Element, Object> _nodeKeys = new HashMap<html.Element, Object>();
  
    void initTransitionListeners() {
      element.onTransitionEnd.listen(_handleTransitionEnd);
  