Skip to content

Commit

Permalink
✨ Added floating animation based on gyroscope's data in Android Web a…
Browse files Browse the repository at this point in the history
…nd mouse pointer animation on web desktop
  • Loading branch information
kavantrivedi authored and aditya-css committed Sep 18, 2023
1 parent e8090ba commit 22c5403
Show file tree
Hide file tree
Showing 10 changed files with 598 additions and 447 deletions.
2 changes: 2 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ class MySampleState extends State<MySample> {
),
CreditCardWidget(
isFloatingAnimationEnabled: true,
isGlareAnimationEnabled: true,
isShadowAnimationEnabled: true,
glassmorphismConfig:
useGlassMorphism ? Glassmorphism.defaultConfig() : null,
cardNumber: cardNumber,
Expand Down
24 changes: 5 additions & 19 deletions lib/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,17 @@ class AppConstants {
static const double creditCardAspectRatio = 0.5714;
static const double creditCardPadding = 16;

static const double maxfloatingBack = 0.05;
static const double minfloatingBack = 0.01;
static const double defaultDampingFactor = 0.2;

/// Color constants
static const Color defaultGlareColor = Color(0xffFFFFFF),
defaultShadowColor = Color(0xff000000);

/// Default filter quality
static const FilterQuality defaultFilterQuality = FilterQuality.high;
static const double defaultMaxAngle = pi / 10,

/// Numeric constants
double maxElevation = 100,

/// Defaults
defaultMaxAngle = pi / 10,

/// Shadow-specific values
minShadowOffset = 0,
maxShadowOffset = 40,
minShadowTopOffset = 5,
maxShadowTopOffset = 45,
minBlurRadius = 10,
maxBlurRadius = 30,
minShadowOpacity = 0.3,
maxShadowOpacity = 0.2,

/// Translation-specific values
maxDistance = 75.0;
minShadowOpacity = 0.3;

}
36 changes: 19 additions & 17 deletions lib/credit_card_background.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'package:flutter_credit_card/floating_card_setup/floating_controller.dart
import 'package:flutter_credit_card/floating_card_setup/glare_effect_widget.dart';

import 'constants.dart';
import 'floating_card_setup/constants.dart';
import 'glassmorphism_config.dart';

class CardBackground extends StatelessWidget {
Expand All @@ -22,6 +21,7 @@ class CardBackground extends StatelessWidget {
this.border,
this.floatingController,
this.glarePosition,
this.shadowEnabled = false,
}) : assert(
(backgroundImage == null && backgroundNetworkImage == null) ||
(backgroundImage == null && backgroundNetworkImage != null) ||
Expand All @@ -40,6 +40,7 @@ class CardBackground extends StatelessWidget {
final BoxBorder? border;
final FloatingController? floatingController;
final double? glarePosition;
final bool shadowEnabled;

@override
Widget build(BuildContext context) {
Expand All @@ -53,24 +54,25 @@ class CardBackground extends StatelessWidget {
return Stack(
alignment: Alignment.center,
children: <Widget>[
if(floatingController != null)
Positioned(
left: floatingController!.y * 100 + 16,
right: -floatingController!.y * 100 + 16,
top: -floatingController!.x * 100 + 16,
bottom: floatingController!.x * 100 + 16,
child: Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(8)),
boxShadow: <BoxShadow>[
BoxShadow(
blurRadius: minBlurRadius,
color: defaultShadowColor.withOpacity(minShadowOpacity),
),
],
if (floatingController != null && shadowEnabled)
Positioned(
left: floatingController!.y * 100 + 16,
right: -floatingController!.y * 100 + 16,
top: -floatingController!.x * 100 + 16,
bottom: floatingController!.x * 100 + 16,
child: Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(8)),
boxShadow: <BoxShadow>[
BoxShadow(
blurRadius: AppConstants.minBlurRadius,
color: AppConstants.defaultShadowColor
.withOpacity(AppConstants.minShadowOpacity),
),
],
),
),
),
),
Container(
margin: EdgeInsets.all(padding),
decoration: BoxDecoration(
Expand Down
Loading

0 comments on commit 22c5403

Please sign in to comment.