props method

Map<String, String> props(
  1. ScrollDirection direction
)

Returns CSS properties corresponding to this physics rule.

Implementation

Map<String, String> props(ScrollDirection direction) {
  final isHoriz = direction == ScrollDirection.horizontal;

  switch (type) {
    case ScrollPhysicsType.neverScrollable:
      return {'overflow': 'hidden'};
    case ScrollPhysicsType.bouncing:
      return {
        'overflow-x': isHoriz ? 'auto' : 'hidden',
        'overflow-y': !isHoriz ? 'auto' : 'hidden',
        'overscroll-behavior': 'auto',
        '-webkit-overflow-scrolling': 'touch',
      };
    case ScrollPhysicsType.clamping:
      return {
        'overflow-x': isHoriz ? 'auto' : 'hidden',
        'overflow-y': !isHoriz ? 'auto' : 'hidden',
        'overscroll-behavior-${isHoriz ? 'x' : 'y'}': 'none',
      };
    case ScrollPhysicsType.snapping:
      return {
        'overflow-x': isHoriz ? 'auto' : 'hidden',
        'overflow-y': !isHoriz ? 'auto' : 'hidden',
        'scroll-snap-type': isHoriz ? 'x mandatory' : 'y mandatory',
      };
    case ScrollPhysicsType.adaptive:
      return {
        'overflow-x': isHoriz ? 'scroll' : 'hidden',
        'overflow-y': !isHoriz ? 'scroll' : 'hidden',
      };
  }
}