bicolor_icon 0.0.2 copy "bicolor_icon: ^0.0.2" to clipboard
bicolor_icon: ^0.0.2 copied to clipboard

Flutter library for creating two tone icon, you can customize color/ratio/direction etc...

example/lib/main.dart

import 'dart:math';

import 'package:flutter/material.dart';
import 'package:bicolor_icon/bicolor_icon.dart';

void main() {
  runApp(App());
}

class App extends StatefulWidget {
  @override
  _State createState() => _State();
}

class _State extends State<App> {
  double _currentSliderValue = 50;

  Widget _buildFavorite({ @required final double iconSize, @required final double rate }) => BicolorIcon(
    iconData: Icons.favorite,
    iconSize: iconSize,
    rate: rate,
    beginAlignment: Alignment.centerLeft,
    beginColor: Colors.pink,
    endColor: Colors.white
  );

  Widget _buildFavorites() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        _buildFavorite(iconSize: 40, rate: 0.3),
        _buildFavorite(iconSize: 50, rate: 0.5),
        _buildFavorite(iconSize: 60, rate: 0.7),
      ],
    );
  }

  Widget _buildStar({ @required final double iconSize, @required final double rate }) => BicolorIcon(
    iconData: Icons.star,
    iconSize: iconSize,
    rate: rate,
    beginAlignment: Alignment.bottomCenter,
    beginColor: Colors.yellow,
    endColor: Colors.white
  );

  Widget _buildStars() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        _buildStar(iconSize: 20, rate: 0.2),
        _buildStar(iconSize: 30, rate: 0.5),
        _buildStar(iconSize: 40, rate: 0.8),
      ],
    );
  }

  Widget _buildCreditCard({ @required final double iconSize, @required final double rate }) => BicolorIcon(
    iconData: Icons.credit_card,
    iconSize: iconSize,
    rate: rate,
    beginAlignment: Alignment.topLeft,
    beginColor: Colors.green,
    endColor: Colors.blue
  );

  Widget _buildCreditCards() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        _buildCreditCard(iconSize: 90, rate: 0.2),
        _buildCreditCard(iconSize: 120, rate: 0.5),
        _buildCreditCard(iconSize: 150, rate: 0.8),
      ],
    );
  }

  Widget _buildRatedFavorites() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: List.generate(5, (index) =>
        BicolorIcon(
          iconData: Icons.favorite,
          iconSize: 50,
          rate: min(1, max(0, (_currentSliderValue - index * 20) / 20)),
          beginAlignment: Alignment.centerLeft,
          beginColor: Colors.pink,
          endColor: Colors.white
        )
      ),
    );
  }


  Widget _buildSlider() {
    return Slider(
      value: _currentSliderValue,
      min: 0,
      max: 100,
      divisions: 100,
      label: _currentSliderValue.round().toString(),
      activeColor: Colors.blueGrey,
      inactiveColor: Colors.grey,
      onChanged: (double value) {
        setState(() {
          _currentSliderValue = value;
        });
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Container(
            margin: EdgeInsets.symmetric(vertical: 5),
            child: _buildFavorites()
          ),
          Container(
            margin: EdgeInsets.symmetric(vertical: 5),
            child: _buildStars()
          ),
          Container(
            margin: EdgeInsets.symmetric(vertical: 5),
            child: _buildCreditCards()
          ),
          Container(
            margin: EdgeInsets.symmetric(vertical: 5),
            child: _buildRatedFavorites()
          ),
          Container(
            margin: EdgeInsets.symmetric(vertical: 5),
            child: _buildSlider()
          ),
        ],
      )
    );
  }
}
3
likes
40
pub points
0%
popularity

Publisher

unverified uploader

Flutter library for creating two tone icon, you can customize color/ratio/direction etc...

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on bicolor_icon