velocityDecoration method

  1. @protected
VxNeumorph velocityDecoration(
  1. Color color,
  2. VxCurve curveType,
  3. double elevation
)
inherited

Implementation

@protected
VxNeumorph velocityDecoration(
  Color color,
  VxCurve curveType,
  double elevation,
) {
  final color0 = color;
  final emboss = curveType == VxCurve.emboss;

  Color colorValue = color0;

  List<BoxShadow> shadowList = [
    BoxShadow(
      color: _getNeuColor(color0, emboss ? 0 - elevation : elevation - 30),
      offset: Offset(0 - elevation, 0 - elevation),
      blurRadius: elevation,
    ),
    BoxShadow(
      color: _getNeuColor(color0, emboss ? elevation : 0 - elevation),
      offset: Offset(elevation, elevation),
      blurRadius: elevation,
    )
  ];

  if (emboss) {
    shadowList = [
      BoxShadow(
        color: _getNeuColor(color0, elevation - 30),
        offset: Offset(elevation / 4, elevation / 4),
        blurRadius: elevation / 4,
      ),
      BoxShadow(
        color: _getNeuColor(color0, 0 - elevation),
        offset: Offset(0 - elevation / 6, 0 - elevation / 6),
        blurRadius: elevation / 6,
      ),
    ];

    colorValue = _getNeuColor(colorValue, 0 - elevation / 2);
  }
  switch (curveType) {
    case VxCurve.concave:
      _gradient = _getConcaveGradients(colorValue, elevation);
      break;
    case VxCurve.convex:
      _gradient = _getConvexGradients(colorValue, elevation);
      break;
    case VxCurve.emboss:
    case VxCurve.flat:
      _gradient = _getFlatGradients(colorValue, elevation);
      break;
  }
  return VxNeumorph(
    shadowList,
    _gradient,
  );
}