anchor.diff:  
   import 'dart:html';
   import 'dart:async';
  +import 'dart:math';
   import 'package:polymer/polymer.dart';
   
   @CustomTag('fold-button')
  
positive.code:   ['-webkit-$propName', '-moz-$propName', '-ms-$propName',
     '-o-$propName', propName];
  
  _getCenterPoint(Element e) {
    final rects = e.getClientRects();
    return rects
      .map((r) => (r.topLeft + r.bottomRight) * 0.5)
      .fold(new Point(0.0, 0.0), (prev, p) => prev + p) * (1 / rects.length);
  }
  _getTopLeftPoint(Element e) {
    final rects = e.getClientRects();
    return rects
      .map((r) => r.topLeft)
      .fold(new Point(0.0, 0.0), (prev, p) => prev + p) * (1 / rects.length);
  }
  
negative.code: 
      _restoreStyle(t.style, 'display');
  
      _startTransitionEndTimer(delay: DISPLAY_DELAY + TRANSITION_DURATION);
      new Timer(DISPLAY_DELAY, () {
        _restoreStyle(t.style, 'transform', 'scale(1)');
        _restoreStyle(t.style, 'opacity', '1');
      });
    }
  
    void _startTransitionEndTimer({Duration delay: TRANSITION_DURATION}) {
      if (_transitionEndTimer != null) {
        _transitionEndTimer.cancel();
      }
      _transitionEndTimer = new Timer(delay, _handleTransitionEnd);
    }
  
    void _handleTransitionEnd() {
      final t = _targetElement;
      if (t == null) return;
  
  