Files
stream-chat-flutter/example/lib/neumorphic_button.dart
T

53 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
extension ColorUtils on Color {
Color mix(Color another, double amount) {
return Color.lerp(this, another, amount);
}
}
class NeumorphicButton extends StatelessWidget {
final Widget child;
final Color backgroundColor;
final EdgeInsets margin;
final EdgeInsets padding;
const NeumorphicButton({
Key key,
@required this.child,
this.backgroundColor = Colors.white,
this.margin = const EdgeInsets.all(8),
this.padding = const EdgeInsets.all(14),
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
child: child,
margin: margin,
padding: padding,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: backgroundColor,
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
backgroundColor.mix(Colors.white, 0.2),
backgroundColor.mix(Colors.black, 0.1),
]),
boxShadow: [
BoxShadow(
blurRadius: 1,
color: backgroundColor.mix(Colors.white, 0.6),
),
BoxShadow(
blurRadius: 1,
color: backgroundColor.mix(Colors.black, 0.3),
)
],
),
);
}
}