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(0xFFDBDCD7),
0.24f to Color(0xFFDDDCD7),
0.3f to Color(0xFFE2C9CC),
0.46f to Color(0xFFE7627D),
0.59f to Color(0xFFB8235A),
0.71f to Color(0xFF801357),
0.73f to Color(0xFF3D1635),
1f to Color(0xFF1C1A27)
),
start = size.center - direction * (length / 2f),
end = size.center + direction * (length / 2f)
)
onDrawBehind { drawRect(brush) }
}