anchor.diff:                duration: _kFrontLayerSwitchDuration,
                 switchOutCurve: switchOutCurve,
                 switchInCurve: switchInCurve,
  +              layoutBuilder: centerHome ? _centerHomeLayout : _topHomeLayout,
                 child: _category != null
                   ? new _DemosPage(_category)
                   : new _CategoriesPage(
  
positive.code:         child: new LayoutBuilder(
            builder: (BuildContext context, BoxConstraints constraints) {
              final double columnWidth = constraints.biggest.width / columnCount.toDouble();
              final double rowHeight = columnWidth * aspectRatio;
              final int rowCount = (categories.length + columnCount - 1) ~/ columnCount;
  
              // This repaint boundary prevents the inner contents of the front layer
  
negative.code:   Widget build(BuildContext context) {
      final ThemeData theme = Theme.of(context);
      final bool isDark = theme.brightness == Brightness.dark;
      final MediaQueryData media = MediaQuery.of(context);
      final bool centerHome = media.orientation == Orientation.portrait && media.size.height < 800.0;
  
      const Curve switchOutCurve = const Interval(0.4, 1.0, curve: Curves.fastOutSlowIn);
      const Curve switchInCurve = const Interval(0.4, 1.0, curve: Curves.fastOutSlowIn);
  