code: function resizeTransition(elementClipper, element, args) {
          var defaultTransition = getResizeDefaultTransitions()[(args.to > args.from ? "defaultResizeGrowTransition" : "defaultResizeShrinkTransition")];
          args = _BaseUtils._merge(args, {
              duration: args.duration === undefined ? defaultTransition.duration : args.duration,
              timing: args.timing === undefined ? defaultTransition.timing : args.timing
          });
  
          var start = args.actualSize - args.from;
          var end = args.actualSize - args.to;
          if (!args.anchorTrailingEdge) {
              start = -start;
              end = -end;
          }
          var translate = args.dimension === "width" ? "translateX" : "translateY";
          var transition = {
              duration: args.duration,
              timing: args.timing
          };
  
          // Set up
          elementClipper.style[transformNames.scriptName] = translate + "(" + start + "px)";
          element.style[transformNames.scriptName] = translate + "(" + -start + "px)";
  
          // Resolve styles
          _ElementUtilities._getComputedStyle(elementClipper).opacity;
          _ElementUtilities._getComputedStyle(element).opacity;
  
          // Merge the transitions, but don't animate yet
          var clipperTransition = _BaseUtils._merge(transition, { to: translate + "(" + end + "px)" });
          var elementTransition = _BaseUtils._merge(transition, { to: translate + "(" + -end + "px)" });
  
          // Return an array so that we can prepare any other animations before beginning everything (used by commanding surface open/close animations)
          return [
              { element: elementClipper, transition: clipperTransition },
              { element: element, transition: elementTransition }
          ];
      }
docs: See _resizeTransition's comment for documentation on *args*.