Modifier.drawWithCache {
val angle = Math.toRadians(90.0)
val direction = Offset(sin(angle).toFloat(), -cos(angle).toFloat())
val length = size.width * abs(direction.x) + size.height * abs(direction.y)
val brush = Brush.linearGradient(
colorStops = arrayOf(
0f to Color(0xFF4FB576),
0.3f to Color(0xFF44C489),
0.46f to Color(0xFF28A9AE),
0.59f to Color(0xFF28A2B7),
0.71f to Color(0xFF4C7788),
0.8f to Color(0xFF6C4F63),
1f to Color(0xFF432C39)
),
start = size.center - direction * (length / 2f),
end = size.center + direction * (length / 2f)
)
onDrawBehind { drawRect(brush) }
}