GithubHelp home page GithubHelp logo

levitating_widget's Introduction

floating_widget

A Flutter Widget to make levitate any of your widget anywhere !๐Ÿš€๐ŸŒŒ

Snowing widget

How to use it ?

import 'package:flutter/material.dart';
import 'package:snow_widget/widget/snow_widget.dart';

SomeWidget(
child: SpaceFloatingWidget(
  widget: WidgetYouWantToFloat()
  ),
)

Sample ?

import 'dart:ui';

import 'package:flutter/material.dart';

import 'space_floating_widget.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Space Floating Widget',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: Scaffold(
          backgroundColor: Color(0xFF00258D),
          // backgroundColor: Colors.black45,
          appBar: AppBar(
            title: const Text(
              "Vibing In the Floating Space",
              style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
            ),
          ),
          body: _generateGrid()),
    );
  }

  Widget _generateGrid() {
    final List<IconData> icons = [
      Icons.add,
      Icons.account_circle_outlined,
      Icons.access_time_sharp,
      Icons.add_circle_outline,
      Icons.radar_rounded,
      Icons.radio,
      Icons.connected_tv_sharp,
      Icons.accessible_rounded,
      Icons.person,
      Icons.face,
    ];
    return GridView.builder(
      padding: const EdgeInsets.all(20),
      gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 4,
        crossAxisSpacing: 8.0,
        mainAxisSpacing: 8.0,
      ),
      itemCount: 10, // Number of items in the grid
      itemBuilder: (BuildContext context, int index) {
        return GridTile(
          child: SizedBox(
            width: 150,
            height: 150,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                SizedBox(
                  width: 100,
                  height: 100,
                  child: SpaceFloatingWidget(
                      //padding: const EdgeInsets.only(left: 40, top: 30),
                      widget: Stack(
                    alignment: Alignment.center,
                    children: [
                      CustomPaint(
                        painter: CustomRoundShape(
                          80,
                          gradientColors: const [
                            Color(0xff4d4dff),
                            Color(0xff400080),
                          ],
                        ),
                      ),
                      Icon(icons.elementAt(index),
                          size: 50, color: Colors.white),
                    ],
                  )),
                ),
                //const SizedBox(height: 8.0),
                ClipRRect(
                  borderRadius: BorderRadius.circular(8),
                  child: BackdropFilter(
                    filter: ImageFilter.blur(
                      sigmaX: 22,
                      sigmaY: 22,
                    ),

                    /// Filter effect field
                    child: Padding(
                      padding: const EdgeInsets.all(10.0),
                      child: Text(
                        'Item $index',
                        style: const TextStyle(color: Colors.white),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        );
      },
    );
  }
}

class CustomRoundShape extends CustomPainter {
  final double radius;
  final List<Color> gradientColors;

  CustomRoundShape(this.radius,
      {this.gradientColors = const [
        Color(0xff4d4dff),
        Color(0xff400080),
      ]});

  @override
  void paint(Canvas canvas, Size size) {
    final paint = Paint()
      ..shader = LinearGradient(
        colors: gradientColors,
        begin: Alignment.topLeft,
        end: Alignment.bottomRight,
        tileMode: TileMode.mirror,
      ).createShader(Rect.fromCircle(
        center: const Offset(0, 0),
        radius: radius,
      ));

    canvas.drawCircle(Offset.zero, radius, paint);
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return true;
  }
}


levitating_widget's People

Contributors

punkachu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.