outline_gradient_button 2.0.0 copy "outline_gradient_button: ^2.0.0" to clipboard
outline_gradient_button: ^2.0.0 copied to clipboard

outdated

OutlineGradientButton package developed to create buttons with gradient outline.

example/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/rendering.dart';
import 'package:outline_gradient_button/outline_gradient_button.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final GlobalKey<ScaffoldMessengerState> _rootScaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      scaffoldMessengerKey: _rootScaffoldMessengerKey,
      home: Scaffold(
        appBar: AppBar(title: Text('Outline gradient buttons demo')),
        backgroundColor: Colors.white,
        body: Container(
          width: double.infinity,
          child: SingleChildScrollView(
            padding: EdgeInsets.all(48),
            child: Wrap(
              spacing: 24,
              runSpacing: 48,
              runAlignment: WrapAlignment.center,
              alignment: WrapAlignment.center,
              crossAxisAlignment: WrapCrossAlignment.center,
              children: _buildChildren(),
            ),
          ),
        ),
      ),
    );
  }

  List<Widget> _buildChildren() {
    return [
      OutlineGradientButton(
        child: Text('WOW'),
        gradient: LinearGradient(
          colors: [Colors.purple, Colors.pink],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        strokeWidth: 4,
      ),
      OutlineGradientButton(
        child: Text('TEXT'),
        gradient: LinearGradient(colors: [Colors.pink, Colors.purple]),
        strokeWidth: 4,
        radius: Radius.circular(8),
      ),
      OutlineGradientButton(
        child: Text('OMG'),
        gradient: LinearGradient(
          stops: [0, 0.5, 0.5, 1],
          colors: [Colors.green, Colors.green, Colors.red, Colors.red],
        ),
        strokeWidth: 4,
        corners: Corners(topLeft: Radius.elliptical(16, 14), bottomRight: Radius.circular(6)),
      ),
      OutlineGradientButton(
        child: SizedBox(
          width: 52,
          height: 52,
          child: Column(
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Icon(Icons.opacity, color: Colors.grey, size: 24),
              Text('TEXT', style: TextStyle(fontSize: 9)),
            ],
          ),
        ),
        gradient: LinearGradient(
          colors: [Colors.blue, Colors.black],
          begin: Alignment(-1, -1),
          end: Alignment(2, 2),
        ),
        strokeWidth: 4,
        padding: EdgeInsets.zero,
        radius: Radius.circular(26),
      ),
      OutlineGradientButton(
        child: Text('Linear gradient', style: TextStyle(color: Colors.black, fontSize: 10)),
        gradient: LinearGradient(
          colors: List.generate(360, (h) => HSLColor.fromAHSL(1, h.toDouble(), 1, 0.5).toColor()),
        ),
        strokeWidth: 2,
        padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
        radius: Radius.circular(8),
      ),
      OutlineGradientButton(
        child: Text('Sweep gradient', style: TextStyle(color: Colors.black, fontSize: 10)),
        gradient: SweepGradient(
          colors: List.generate(360, (h) => HSLColor.fromAHSL(1, h.toDouble(), 1, 0.5).toColor()),
        ),
        strokeWidth: 2,
        padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
        radius: Radius.circular(8),
      ),
      OutlineGradientButton(
        child: Text('With background color and elevation', style: TextStyle(color: Colors.white, fontSize: 12)),
        gradient: LinearGradient(colors: [Colors.greenAccent, Colors.yellow]),
        strokeWidth: 2,
        padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
        corners: Corners(topRight: Radius.circular(16), bottomRight: Radius.circular(16)),
        backgroundColor: Colors.lightBlue,
        elevation: 4,
        inkWell: true,
        onTap: () => showSnack('onTap'),
        onDoubleTap: () => showSnack('onDoubleTap'),
        onLongPress: () => showSnack('onLongPress'),
      ),
    ];
  }

  void showSnack(String text) {
    _rootScaffoldMessengerKey.currentState
      ?..removeCurrentSnackBar()
      ..showSnackBar(SnackBar(content: Text(text)));
  }
}
96
likes
0
points
13
downloads

Publisher

verified publisherkalaganov.dev

Weekly Downloads

OutlineGradientButton package developed to create buttons with gradient outline.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on outline_gradient_button