anchor.diff:      );
     }
   
  -  double get xPosition => _builder.position.value.x;
  +  double get xPosition => _position.value.x;
   
     DrawerStatus _lastStatus;
     void _checkForStateChanged() {
       DrawerStatus status = _status;
       if (_lastStatus != null && status != _lastStatus) {
         if (status == DrawerStatus.inactive &&
  -          navigator != null && 
  +          navigator != null &&
             navigator.currentRoute.key == this)
           navigator.pop();
         if (onStatusChanged != null)
  
positive.code: import 'package:sky/animation/animation_performance.dart';
  import 'package:sky/animation/curves.dart';
  import 'package:sky/theme/shadows.dart';
  import 'package:sky/widgets/animated_component.dart';
  import 'package:sky/widgets/animation_builder.dart';
  import 'package:sky/widgets/basic.dart';
  import 'package:sky/widgets/navigator.dart';
  import 'package:sky/widgets/scrollable_viewport.dart';
  import 'package:sky/widgets/theme.dart';
  
  // TODO(eseidel): Draw width should vary based on device size:
  // http://www.google.com/design/spec/layout/structure.html#structure-side-nav
  
negative.code:     _performance.play();
    }
  
    void _hide() {
      _performance.reverse();
    }
  
    Widget build() {
      var mask = new Listener(
        child: new Container(
          decoration: new BoxDecoration(backgroundColor: _maskColor.value)
        ),
        onGestureTap: handleMaskTap
      );
  
      Matrix4 transform = new Matrix4.identity();
      transform.translate(_position.value.x, _position.value.y);
      Widget content = new Transform(
        transform: transform,
        child: new Container(
          decoration: new BoxDecoration(
            backgroundColor: Theme.of(this).canvasColor,
            boxShadow: shadows[level]),
  