diff --git a/lib/screens/main_app_widgets/fav_page.dart b/lib/screens/main_app_widgets/fav_page.dart index f1f22ed..7cbb069 100644 --- a/lib/screens/main_app_widgets/fav_page.dart +++ b/lib/screens/main_app_widgets/fav_page.dart @@ -28,12 +28,12 @@ class _FavPageState extends State { builder: (context, favProviderModel, child) => AlertDialog( title: const Text('Remove'), content: const SingleChildScrollView( - child: ListBody( - children: [ - Text( - 'Do you want to remove this widget from the favorites list?'), - ], - ), + //child: ListBody( + // children: [ + //Text( + //'Do you want to remove this widget from the favorites list?'), + //], + // ), ), actions: [ TextButton( diff --git a/lib/ui_components/cards/All Cards/blog_card/card_1.dart b/lib/ui_components/cards/All Cards/blog_card/card_1.dart index 3d736d8..16c73df 100644 --- a/lib/ui_components/cards/All Cards/blog_card/card_1.dart +++ b/lib/ui_components/cards/All Cards/blog_card/card_1.dart @@ -14,7 +14,7 @@ class FirstCard extends StatelessWidget { ), Container( padding: const EdgeInsets.only(left: 10, right: 10, bottom: 20), - child: const Column( + child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( diff --git a/lib/ui_components/cards/All Cards/blog_card/card_2.dart b/lib/ui_components/cards/All Cards/blog_card/card_2.dart index 9f10a70..e106c58 100644 --- a/lib/ui_components/cards/All Cards/blog_card/card_2.dart +++ b/lib/ui_components/cards/All Cards/blog_card/card_2.dart @@ -8,9 +8,21 @@ class SecondCard extends StatelessWidget { return Card( child: Row( children: [ + + Container( + padding: const EdgeInsets.only(left: 5, top: 2, bottom: 2), + height: (MediaQuery.of(context).size.width / 2.4) * 0.83, + width: MediaQuery.of(context).size.width - + MediaQuery.of(context).size.width / 2.4 - + 8, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + Padding( padding: const EdgeInsets.all(8.0), child: Row( + children: [ Container( padding: const EdgeInsets.only(left: 5, top: 2, bottom: 2), diff --git a/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_5.dart b/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_5.dart index 6af1a1a..39baadc 100644 --- a/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_5.dart +++ b/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_5.dart @@ -15,8 +15,13 @@ class FifthCard extends StatelessWidget { height: 10, ), Container( + + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10), + child: Column( + padding: const EdgeInsets.all(15), child: const Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( diff --git a/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_6.dart b/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_6.dart index b0a0f24..a653b7d 100644 --- a/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_6.dart +++ b/lib/ui_components/cards/All Cards/blog_card_dark_mode/card_6.dart @@ -15,7 +15,7 @@ class SixthCard extends StatelessWidget { width: MediaQuery.of(context).size.width - MediaQuery.of(context).size.width / 2.4 - 8, - child: const Column( + child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/lib/ui_components/cards/All Cards/social_card/card_3.dart b/lib/ui_components/cards/All Cards/social_card/card_3.dart index 4425d79..1bae192 100644 --- a/lib/ui_components/cards/All Cards/social_card/card_3.dart +++ b/lib/ui_components/cards/All Cards/social_card/card_3.dart @@ -12,7 +12,7 @@ class ThirdCard extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Row( + Row( children: [ Icon( Icons.star_outline, @@ -62,7 +62,7 @@ class ThirdCard extends StatelessWidget { const SizedBox( height: 10, ), - const Row( + Row( children: [ CircleAvatar(), SizedBox( diff --git a/lib/ui_components/cards/All Cards/social_card/card_4.dart b/lib/ui_components/cards/All Cards/social_card/card_4.dart index 2897171..523e7a8 100644 --- a/lib/ui_components/cards/All Cards/social_card/card_4.dart +++ b/lib/ui_components/cards/All Cards/social_card/card_4.dart @@ -15,7 +15,7 @@ class FourthCard extends StatelessWidget { const EdgeInsets.only(left: 5, top: 10, bottom: 10, right: 5), child: Column( children: [ - const Row( + Row( children: [ CircleAvatar(), SizedBox( @@ -83,6 +83,7 @@ class FourthCard extends StatelessWidget { ], ), const SizedBox(height: 10), + Row( const Row( children: [ Text( @@ -101,6 +102,10 @@ class FourthCard extends StatelessWidget { ) ], ), + const SizedBox( + height: 3, + ), + Row( const Row( children: [ @@ -113,6 +118,7 @@ class FourthCard extends StatelessWidget { const SizedBox( height: 15, ), + Row( const Row( children: [ Text( @@ -132,7 +138,7 @@ class FourthCard extends StatelessWidget { ) ], ), - const Row( + Row( children: [ Icon( Icons.color_lens, @@ -150,7 +156,7 @@ class FourthCard extends StatelessWidget { ), ], ), - const Row( + Row( children: [ Icon( Icons.baby_changing_station, @@ -169,7 +175,7 @@ class FourthCard extends StatelessWidget { ), ], ), - const Row( + Row( children: [ Icon( Icons.circle, @@ -190,6 +196,8 @@ class FourthCard extends StatelessWidget { const SizedBox( height: 20, ), + Row( + children: [ const Row( children: [ SizedBox( diff --git a/lib/ui_components/cards/All Cards/social_card_dark_mode/card_7.dart b/lib/ui_components/cards/All Cards/social_card_dark_mode/card_7.dart index 2132be2..1761c55 100644 --- a/lib/ui_components/cards/All Cards/social_card_dark_mode/card_7.dart +++ b/lib/ui_components/cards/All Cards/social_card_dark_mode/card_7.dart @@ -16,10 +16,40 @@ class SeventhCard extends StatelessWidget { children: [ const Row( children: [ + Row( + children: [ + Icon( + Icons.star, + color: Colors.amber, + size: 30, + ), + Icon( + Icons.star, + color: Colors.amber, + size: 30, + ), + Icon( + Icons.star, + color: Colors.amber, + size: 30, + ), + Icon( + Icons.star, + color: Colors.amber, + size: 30, + ), + Icon( + Icons.star, + color: Colors.amber, + size: 30, + ) + ], + Icon( Icons.star, color: Colors.amber, size: 25, + ), Icon( Icons.star, @@ -65,6 +95,9 @@ class SeventhCard extends StatelessWidget { SizedBox( width: 7, ), + + Row( + Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/ui_components/cards/All Cards/social_card_dark_mode/card_8.dart b/lib/ui_components/cards/All Cards/social_card_dark_mode/card_8.dart index 9c2eb5f..d243cc3 100644 --- a/lib/ui_components/cards/All Cards/social_card_dark_mode/card_8.dart +++ b/lib/ui_components/cards/All Cards/social_card_dark_mode/card_8.dart @@ -16,6 +16,75 @@ class EightCard extends StatelessWidget { children: [ const Row( children: [ + Row( + children: [ + CircleAvatar(), + SizedBox( + width: 20, + ), + Column( + children: [ + Text( + "Post", + style: TextStyle( + color: Color.fromARGB( + 255, + 133, + 131, + 131, + ), + fontSize: 18), + ), + Text( + "200", + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ) + ], + ), + SizedBox( + width: 20, + ), + Column( + children: [ + Text("Followers", + style: TextStyle( + color: Color.fromARGB(255, 133, 131, 131), + fontSize: 18)), + Text( + "1920", + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w500), + ) + ], + ), + SizedBox( + width: 20, + ), + Column( + children: [ + Text("Following", + style: TextStyle( + color: Color.fromARGB(255, 133, 131, 131), + fontSize: 18)), + Text( + "303", + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w500), + ) + ], + ) + ], + ), + const SizedBox(height: 10), + Row( CircleAvatar(), SizedBox( width: 20, @@ -46,6 +115,9 @@ class EightCard extends StatelessWidget { SizedBox( width: 20, ), + + Row( + Column( children: [ Text("Followers", @@ -64,6 +136,8 @@ class EightCard extends StatelessWidget { SizedBox( width: 20, ), + Row( + Column( children: [ Text("Following", @@ -88,6 +162,53 @@ class EightCard extends StatelessWidget { "Roshan Kumar", style: TextStyle(color: Colors.cyan, fontSize: 18), ), + Row( + children: [ + Icon( + Icons.color_lens, + color: Colors.amber, + ), + SizedBox( + width: 5, + ), + Text( + "UX Designer", + style: TextStyle(color: Colors.white, fontSize: 16), + ), + ], + ), + Row( + children: [ + Icon( + Icons.baby_changing_station, + color: Colors.brown, + ), + SizedBox( + width: 5, + ), + Text( + "Proud Dad", + style: TextStyle( + fontSize: 16, + color: Colors.white, + ), + ), + ], + ), + Row( + children: [ + Icon( + Icons.circle, + color: Color.fromARGB(255, 195, 253, 129), + ), + SizedBox( + width: 5, + ), + Text( + "Avid Tennis Player", + style: TextStyle(color: Colors.white, fontSize: 16), + ), + ], SizedBox( width: 5, ), @@ -137,6 +258,37 @@ class EightCard extends StatelessWidget { Icons.color_lens, color: Colors.amber, ), + Row( + children: [ + SizedBox( + // width: double.infinity, + width: 78, + child: Stack( + children: [ + CircleAvatar( + radius: 12, + ), + Positioned( + left: 13, + child: CircleAvatar( + radius: 12, + )), + Positioned( + left: 27, + child: CircleAvatar( + radius: 12, + )), + Positioned( + left: 40, + child: CircleAvatar( + radius: 12, + )), + Positioned( + left: 50, + child: CircleAvatar( + radius: 12, + )), + ], SizedBox( width: 5, ), diff --git a/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards2.dart b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards2.dart new file mode 100644 index 0000000..4c8f308 --- /dev/null +++ b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards2.dart @@ -0,0 +1,234 @@ +import 'package:flutter/material.dart'; + +class PricingCard2 extends StatefulWidget { + const PricingCard2( + {super.key, + required this.tier, + required this.supportingText, + required this.price, + required this.period, + required this.details, + required this.cardColor, + required this.textColor, + required this.buttonColor, + required this.buttonTextColor}); + final Color cardColor; + final Color textColor; + final Color buttonTextColor; + final Color buttonColor; + final String tier; + final String supportingText; + final String price; + final String period; + final List details; + + @override + State createState() => _PricingCard2State(); +} +class _PricingCard2State extends State { + bool detailsTapped = false; + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: widget.cardColor.withOpacity(0.85), + border: Border.all( + color: widget.textColor, + width: 6.0, + style: BorderStyle.solid), + borderRadius: const BorderRadius.all( + Radius.circular(8), + ), + boxShadow: [ + BoxShadow( + color: widget.cardColor, + offset: const Offset( + 0.5, + 0.5, + ), + blurRadius: 1.0, + spreadRadius: 1.0, + ), //BoxShadow + ], + ), + + + padding: const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.tier, + style: TextStyle( + color: widget.textColor, + fontSize: 20, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox( + height: 20, + ), + Text( + widget.supportingText, + style: TextStyle( + color: widget.textColor, + fontSize: 16, + fontWeight: FontWeight.w400, + ), + ), + const SizedBox( + height: 20, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(right: 8), + child: Text( + widget.price, + style: TextStyle( + color: widget.textColor, + fontSize: 36, + fontWeight: FontWeight.w700, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 4), + child: Text( + '/${widget.period}', + style: TextStyle( + color: widget.textColor, + fontSize: 16, + fontWeight: FontWeight.w400, + ), + ), + ), + ], + ), + GestureDetector( + onTap: () { + setState(() { + detailsTapped = !detailsTapped; + }); + }, + child: Padding( + padding: const EdgeInsets.only(top: 4), + child: Container( + decoration: BoxDecoration( + border: Border.all( + color: widget.textColor, + width: 1, + ), + borderRadius: BorderRadius.circular(8), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 6, horizontal: 10), + child: Row( + children: [ + Text( + 'Details', + style: TextStyle( + color: widget.textColor, + fontSize: 16, + fontWeight: FontWeight.w400, + ), + ), + Icon( + detailsTapped == false + ? Icons.keyboard_arrow_down_outlined + : Icons.keyboard_arrow_up_outlined, + color: widget.textColor, + ), + ], + ), + ), + ), + ), + ), + ], + ), + const SizedBox( + height: 20, + ), + Visibility( + visible: detailsTapped, + child: Column( + children: [ + ListView.builder( + shrinkWrap: true, + itemCount: widget.details.length, + itemBuilder: (context, index) { + return DetailsTile( + detailsTileContent: widget.details[index]); + }, + ), + const SizedBox( + height: 50, + ), + ], + ), + ), + ElevatedButton( + onPressed: () {}, + style: ElevatedButton.styleFrom( + backgroundColor: widget.buttonColor, + minimumSize: const Size.fromHeight(50), + ), + child: Center( + child: Text( + 'Get started', + style: TextStyle( + color: widget.buttonTextColor, + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ], + ), + ); + } +} + +class DetailsTile extends StatelessWidget { + const DetailsTile({ + super.key, + required this.detailsTileContent, + }); + + final String detailsTileContent; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Padding( + padding: EdgeInsets.only(right: 10), + child: Icon( + Icons.check_circle_outline, + color: Color(0xff63d892), + ), + ), + Expanded( + child: Text( + detailsTileContent, + style: const TextStyle( + color: Color(0xff0f172a), + fontSize: 16, + fontWeight: FontWeight.w400, + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards3.dart b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards3.dart new file mode 100644 index 0000000..313a3c3 --- /dev/null +++ b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards3.dart @@ -0,0 +1,182 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +class PricingCard3 extends StatefulWidget { + const PricingCard3( + {super.key, + required this.tier, + required this.price, + required this.period, + required this.cardColor, + required this.textColor, + required this.buttonColor, + required this.buttonTextColor}); + final Color cardColor; + final Color textColor; + final Color buttonTextColor; + final Color buttonColor; + final String price; + final String period; + final String tier; + + @override + State createState() => _PricingCard3State(); +} + +class _PricingCard3State extends State { + @override + Size getscreenSize() { + return MediaQueryData.fromWindow(WidgetsBinding.instance.window).size; + } + + Widget build(BuildContext context) { + return Container( + width: MediaQuery.of(context).size.width* 0.85, + decoration: BoxDecoration( + color: widget.cardColor.withOpacity(0.95), + border: Border.all( + color: widget.cardColor,style: BorderStyle.solid), + borderRadius: const BorderRadius.all( + Radius.circular(3), + ), + ), + padding: const EdgeInsets.all(4), + child: Container( + decoration: const BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(5),), + gradient: LinearGradient( + begin: Alignment.center, + end: Alignment.bottomCenter, + colors: [Colors.white54, Colors.white10]), + ), + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + Icons.verified_rounded, + size: 75, + color: widget.textColor, + ), + Text( + widget.tier, + style: TextStyle( + color: widget.textColor, + fontSize: 32, + fontWeight: FontWeight.w700, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(right: 8), + child: Text( + widget.price, + style: TextStyle( + color: widget.textColor, + fontSize: 36, + fontWeight: FontWeight.w700, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 4), + child: Text( + '/${widget.period}', + style: TextStyle( + color: widget.textColor, + fontSize: 18, + fontWeight: FontWeight.w400, + ), + ), + ), + ], + ), + ]), + const SizedBox( + height: 20, + ), + Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children:[ + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Icon( + Icons.circle, + size: 12, + color: widget.textColor, + ), + ), + Expanded( + child: Text( + "Easily receive new glasses on a regular basis", + textAlign: TextAlign.center, + style: TextStyle( + color: widget.textColor, + fontSize: 14, + fontWeight: FontWeight.w100, + ), + ), + ), + ]), + Row( + children:[ + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Icon( + Icons.circle, + size: 12, + color: widget.textColor, + ), + ), + Expanded( + child: Text( + "Easily receive new glasses on a regular basis", + textAlign: TextAlign.center, + style: TextStyle( + color: widget.textColor, + fontSize: 14, + fontWeight: FontWeight.w100, + ), + ), + ), + ]), + ]), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: ElevatedButton( + onPressed: () {}, + style: ElevatedButton.styleFrom( + backgroundColor: widget.buttonColor, + minimumSize: const Size.fromHeight(50), + + ), + child: Center( + child: Text( + 'Get started', + style: TextStyle( + color: widget.buttonTextColor, + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ), + ]), + ), + ), + ); + } +} diff --git a/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards4.dart b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards4.dart new file mode 100644 index 0000000..5da8f64 --- /dev/null +++ b/lib/ui_components/pricing_cards/All Pricing Cards/pricing_card/pricing_cards4.dart @@ -0,0 +1,208 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +class PricingCard4 extends StatefulWidget { + const PricingCard4( + {super.key, + required this.supportingText, + required this.price, + required this.price1, + required this.price2, + required this.period, + required this.period1, + required this.period2, + required this.cardColor, + required this.textColor, + required this.buttonColor, + required this.buttonTextColor}); + final Color cardColor; + final Color textColor; + final Color buttonTextColor; + final Color buttonColor; + final String supportingText; + final String price; + final String price1; + final String price2; + final String period; + final String period1; + final String period2; + + @override + State createState() => _PricingCard4State(); +} + +class _PricingCard4State extends State { + @override + Size getscreenSize() { + return MediaQueryData.fromWindow(WidgetsBinding.instance.window).size; + } + + Widget build(BuildContext context) { + return Container( + width: MediaQuery.of(context).size.width, + decoration: BoxDecoration( + color: widget.cardColor.withOpacity(0.95), + border: Border.all(color: widget.cardColor, style: BorderStyle.solid), + borderRadius: const BorderRadius.all( + Radius.circular(3), + ), + ), + padding: const EdgeInsets.all(8.0), + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column( + children: [ + Text('Choose your Plan', + style: TextStyle( + color: widget.textColor, + fontSize: 24, + fontWeight: FontWeight.w900, + ),), + SizedBox( + height: MediaQuery.of(context).size.height * 0.02, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Padding( + padding: const EdgeInsets.all(3.0), + child: SizedBox( + width: MediaQuery.of(context).size.width * 0.25, + height: MediaQuery.of(context).size.height * 0.1, + child: OutlinedButton( + style: OutlinedButton.styleFrom( + side: BorderSide(width: 1.0, color: Colors.white60), + ), + onPressed: null, + child: Column( + children: [ + Text( + widget.price, + style: TextStyle( + color: widget.textColor, + fontSize: 26, + fontWeight: FontWeight.w700, + ), + ), + Text( + widget.period, + style: TextStyle( + color: widget.textColor, + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.all(3.0), + child: SizedBox( + width: MediaQuery.of(context).size.width * 0.25, + height: MediaQuery.of(context).size.height * 0.1, + child: OutlinedButton( + style: OutlinedButton.styleFrom( + side: BorderSide(width: 1.0, color: Colors.white60), + ), + onPressed: null, + child: Column( + children: [ + Text( + widget.price1, + style: TextStyle( + color: widget.textColor, + fontSize: 26, + fontWeight: FontWeight.w700, + ), + ), + Text( + widget.period1, + style: TextStyle( + color: widget.textColor, + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.all(3.0), + child: SizedBox( + width: MediaQuery.of(context).size.width * 0.25, + height: MediaQuery.of(context).size.height * 0.1, + child: OutlinedButton( + style: OutlinedButton.styleFrom( + side: BorderSide(width: 1.0, color: Colors.white60), + ), + onPressed: null, + child: Column( + children: [ + Text( + widget.price2, + style: TextStyle( + color: widget.textColor, + fontSize: 26, + fontWeight: FontWeight.w700, + ), + ), + Text( + widget.period2, + style: TextStyle( + color: widget.textColor, + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ), + ], + ), + SizedBox( + height: MediaQuery.of(context).size.height * 0.02, + ), + ElevatedButton( + onPressed: () {}, + style: ElevatedButton.styleFrom( + backgroundColor: widget.buttonColor, + minimumSize: const Size.fromHeight(40), + ), + child: Center( + child: Text( + 'Proceed to Payment', + style: TextStyle( + color: widget.buttonTextColor, + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + + Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Text( + widget.supportingText, + textAlign: TextAlign.center, + style: TextStyle( + color: widget.textColor, + fontSize: 12, + fontWeight: FontWeight.w400, + ), + ), + ), + ), + ]), + ) + ); + } +} diff --git a/lib/ui_components/pricing_cards/pricing_cards.dart b/lib/ui_components/pricing_cards/pricing_cards.dart index a0c8754..b3d93ac 100644 --- a/lib/ui_components/pricing_cards/pricing_cards.dart +++ b/lib/ui_components/pricing_cards/pricing_cards.dart @@ -1,9 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:flutter_component_ui/ui_components/pricing_cards/All%20Pricing%20Cards/pricing_card/pricing_cards4.dart'; import 'package:provider/provider.dart'; import '../../provider/favorite_provider.dart'; import '../../theme/theme.dart'; import 'All Pricing Cards/pricing_card/pricing_cards1.dart'; +import 'All Pricing Cards/pricing_card/pricing_cards3.dart'; +import 'All Pricing Cards/pricing_card/pricing_cards2.dart'; class PricingCardScreen extends StatefulWidget { const PricingCardScreen({super.key}); @@ -29,7 +32,57 @@ class _PricingCardScreenState extends State { buttonColor: Color(0xff00c2cb), buttonTextColor: Color(0xff0f172a), ), + const PricingCard2( + tier: 'FREE', + supportingText: + 'For those who want to try our services with no commitment', + price: '\$0', + period: 'month', + details: [ + 'Easily receive new glasses on a regular basis', + 'More cost-effective than buying glasses individually', + ], + textColor: Color(0xff0f172a), + cardColor: Colors.white, + buttonColor: Color(0xff0f172a), + buttonTextColor: Colors.white, + ), ]; + List pricingCardsColor = [null, null, null]; + + final List priceCards = [ + PricingCard3( + tier: 'FREE', + price: '\$0', + period: 'month', + cardColor: Colors.blueAccent.shade100, + textColor: Color(0xff0f172a), + buttonTextColor: Colors.white, + buttonColor: Color(0xff0f172a), + ), + ]; + + List pricingCardColor = [null]; + + final List choosePlans = [ + PricingCard4( + supportingText: + 'Plans for everyone and for every time period', + price: '\$12', + period: '12 month', + price1: '\$0', + period1: '1 month', + price2: '\$6', + period2: '6 month', + cardColor: Color(0xff0f172a), + textColor: Colors.white, + buttonTextColor: Color(0xff0f172a), + buttonColor: Colors.greenAccent.shade200, + ), + ]; + List choosePlansColor = [null]; + + List pricingCardsColor = [null]; List pricingCardsIndex = [60]; @@ -94,6 +147,98 @@ class _PricingCardScreenState extends State { ), ), ), + Wrap( + direction: Axis.horizontal, + children: List.generate( + priceCards.length, + (index) => Consumer( + builder: (context, favProviderModel, child) => Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: priceCards[index], + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 3, 20, 3), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Add to favorite'), + const SizedBox( + width: 5, + ), + GestureDetector( + onTap: () { + favProviderModel.add( + Padding( + padding: const EdgeInsets.all(8.0), + child: priceCards[index], + ), + ); + setState(() { + pricingCardColor[index] = Colors.amber; + }); + }, + child: Icon( + Icons.star_border_outlined, + color: pricingCardColor[index], + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + Wrap( + direction: Axis.horizontal, + children: List.generate( + choosePlans.length, + (index) => Consumer( + builder: (context, favProviderModel, child) => Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: choosePlans[index], + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 3, 20, 3), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Add to favorite'), + const SizedBox( + width: 5, + ), + GestureDetector( + onTap: () { + favProviderModel.add( + Padding( + padding: const EdgeInsets.all(8.0), + child: choosePlans[index], + ), + ); + setState(() { + choosePlansColor[index] = Colors.amber; + }); + }, + child: Icon( + Icons.star_border_outlined, + color: choosePlansColor[index], + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), ]), ), ), diff --git a/pubspec.lock b/pubspec.lock index 24f5ce3..6fbad6f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.10.0" boolean_selector: dependency: transitive description: @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.2.1" clipboard: dependency: "direct main" description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.0" crypto: dependency: transitive description: @@ -188,10 +188,10 @@ packages: dependency: transitive description: name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" url: "https://pub.dev" source: hosted - version: "0.6.7" + version: "0.6.5" lints: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.13" material_color_utilities: dependency: transitive description: @@ -220,10 +220,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.8.0" nested: dependency: transitive description: @@ -244,10 +244,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.8.2" path_provider: dependency: transitive description: @@ -377,10 +377,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.4.16" typed_data: dependency: transitive description: @@ -388,7 +388,11 @@ packages: sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted + + version: "1.3.1" + version: "1.3.2" + url_launcher: dependency: "direct main" description: @@ -401,10 +405,17 @@ packages: dependency: transitive description: name: url_launcher_android + + sha256: "1a5848f598acc5b7d8f7c18b8cb834ab667e59a13edc3c93e9d09cf38cc6bc87" + url: "https://pub.dev" + source: hosted + version: "6.0.34" + sha256: eed4e6a1164aa9794409325c3b707ff424d4d1c2a785e7db67f8bbda00e36e51 url: "https://pub.dev" source: hosted version: "6.0.35" + url_launcher_ios: dependency: transitive description: @@ -478,5 +489,9 @@ packages: source: hosted version: "1.0.0" sdks: + + dart: ">=2.19.0 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" + flutter: ">=3.3.0"