feat: splash page done

This commit is contained in:
jahongireshonqulov
2025-10-31 12:29:30 +05:00
parent ab1ac6e6fa
commit 077ea23416
229 changed files with 3187 additions and 13517 deletions

View File

@@ -28,5 +28,24 @@ abstract class AppColors {
static const Color c7F7F7F = Color(0xFF7F7F7F);
static const Color c888888 = Color(0xFF888888);
/*
New figma colors
*/
static const Color c0A0D13 = Color(0xFF0A0D13);
static const Color cFF6F00 = Color(0xFFFF6F00);
static const Color cFF9D3F = Color(0xFFFF9D3F);
static const Color cFFB966 = Color(0xFFFFB966);
static const Color cFFB669 = Color(0xFFFFB699);
static const Color cFFEDCC = Color(0xFFFFEDCC);
static const Color c2C3131 = Color(0xFF2C3131);
static const Color c626262 = Color(0xFF626262);
static const Color cA9A9A9 = Color(0xFFA9A9A9);
static const Color cCACACA = Color(0xFFCACACA);
static const Color cE9E9E9 = Color(0xFFE9E9E9);
static const Color c292F3D = Color(0xFF292F3D);
static const Color c131720 = Color(0xFF131720);
static const Color cBD3325 = Color(0xFFBD3325);
static const Color c9EA5B7 = Color(0xFF9EA5B7);
static const Color c479B36 = Color(0xFF479B36);
static const Color cFFAB40 = Color(0xFFFFAB40);
}

View File

@@ -1,64 +1,15 @@
abstract class AppIcons {
//baseurl
static const String baseUrl = 'assets/icons';
//icons
static const String icHome = "$baseUrl/ic_home.svg";
static const String icBrowse = "$baseUrl/ic_browse.svg";
static const String icBasket = "$baseUrl/ic_basket.svg";
static const String icAccount = "$baseUrl/ic_account.svg";
static const String icHomeActive = "$baseUrl/ic_home_active.svg";
static const String icBrowseActive = "$baseUrl/ic_browse_active.svg";
static const String icBasketActive = "$baseUrl/ic_basket_active.svg";
static const String icAccountActive = "$baseUrl/ic_account_active.svg";
static const String icBack = "$baseUrl/ic_back.svg";
static const String icDislike = "$baseUrl/ic_dislike.svg";
static const String icDislikeGrey = "$baseUrl/ic_dislike_grey.svg";
static const String icEat = "$baseUrl/ic_eat.svg";
static const String icEye = "$baseUrl/ic_eye.svg";
static const String icFilter = "$baseUrl/ic_filter.svg";
static const String icNext = "$baseUrl/ic_next.svg";
static const String icNextGrey = "$baseUrl/ic_next_grey.svg";
static const String icOval = "$baseUrl/ic_oval.svg";
static const String icUber = "$baseUrl/ic_uber.svg";
static const String icLocation = "$baseUrl/ic_location.svg";
static const String icArrowBottom = "$baseUrl/ic_arrow_btm.svg";
static const String icEmptyBasket = "$baseUrl/ic_empty_basket.svg";
static const String icPicked = "$baseUrl/ic_picked.svg";
static const String icMostPopular = "$baseUrl/ic_popular.svg";
static const String icStar = "$baseUrl/ic_rating.svg";
static const String icDeliveryTime = "$baseUrl/ic_delivery_time.svg";
static const String icDeals = "$baseUrl/ic_deals.svg";
static const String icClose = "$baseUrl/ic_close.svg";
static const String icCurrentLocation = "$baseUrl/ic_current_loc.svg";
static const String icEdit = "$baseUrl/ic_edit.svg";
static const String icSearch = "$baseUrl/ic_search.svg";
static const String icCheck = "$baseUrl/ic_check.svg";
static const String icCheck1 = "$baseUrl/ic_check1.svg";
static const String icArrowRight = "$baseUrl/ic_arrow_right.svg";
static const String icDeliver = "$baseUrl/ic_deliver.svg";
static const String icGift = "$baseUrl/ic_gift.svg";
static const String icHelp = "$baseUrl/ic_help.svg";
static const String icLike = "$baseUrl/ic_like.svg";
static const String icPromotions = "$baseUrl/ic_promotions.svg";
static const String icSettings = "$baseUrl/ic_settings.svg";
static const String icRewards = "$baseUrl/ic_rewards.svg";
static const String icUberPass = "$baseUrl/ic_uber_pass.svg";
static const String icWallet = "$baseUrl/ic_wallet.svg";
static const String icOrdersSvg = "$baseUrl/ic_orders_svg.svg";
static const String icLanguage = "$baseUrl/ic_language.svg";
static const String icArrowRightLight = "$baseUrl/ic_arrow_right_light.svg";
///.png icons
static const String icBestOverall = "$baseUrl/ic_best.png";
static const String icVegetarian = "$baseUrl/ic_vegetarian.png";
static const String icVegen = "$baseUrl/ic_vegen.png";
static const String icGlutenFree = "$baseUrl/ic_gluten_free.png";
static const String icAllergyFriendly = "$baseUrl/ic_allergy_friendly.png";
static const String icClock = "$baseUrl/ic_clock.svg";
static const String icOrders = "$baseUrl/ic_orders.png";
static const String icUz = "$baseUrl/ic_uzb.png";
static const String icRu = "$baseUrl/ic_rus.png";
static const String icEn = "$baseUrl/ic_eng.png";
static const String baseUrl = "assets/icons/common";
static const String icLogo = "$baseUrl/ic_logo.svg";
}
abstract class AppLightSvgs {
static const String baseUrl = "assets/icons/light";
static const String icSplash = "$baseUrl/ic_splash.svg";
}
abstract class AppDarkSvgs {
static const String baseUrl = "assets/icons/dark";
static const String icSplash = "$baseUrl/ic_splash.svg";
}

View File

@@ -1,8 +1,12 @@
import 'package:food_delivery_client/core/theme/app_theme_textstyles.dart';
import 'package:food_delivery_client/core/theme/theme_icons.dart';
import '../../food_delivery_client.dart';
abstract class AppTheme {
static ThemeData get lightTheme => ThemeData.light().copyWith(
brightness: Brightness.light,
extensions: [AppThemeIcons.light, AppThemeTextStyles.light],
// colorScheme: ColorScheme(
// brightness: Brightness.light,
@@ -22,6 +26,93 @@ abstract class AppTheme {
surfaceTintColor: AppColors.cTransparent,
),
scaffoldBackgroundColor: AppColors.cFFFFFF,
progressIndicatorTheme: ProgressIndicatorThemeData(
color: AppColors.cFFFFFF,
circularTrackColor: AppColors.cFFFFFF,
linearTrackColor: AppColors.cFFFFFF,
borderRadius: BorderRadiusGeometry.circular(30),
),
pageTransitionsTheme: PageTransitionsTheme(
builders: {
TargetPlatform.android: CupertinoPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
),
bottomNavigationBarTheme: BottomNavigationBarThemeData(
elevation: 0,
showSelectedLabels: true,
showUnselectedLabels: true,
backgroundColor: AppColors.cFFFFFF,
type: BottomNavigationBarType.fixed,
unselectedItemColor: AppColors.cB5B5B5,
selectedItemColor: AppColors.c000000,
selectedLabelStyle: AppTextStyles.size10Regular.copyWith(
color: Colors.red,
),
unselectedLabelStyle: AppTextStyles.size10Regular.copyWith(
color: AppColors.c000000,
),
// unselectedLabelStyle: AppTextStyles.size14Medium.copyWith(
// color: AppColors.c888888,
// fontFamily: "fontNorms",
// ),
),
// inputDecorationTheme: InputDecorationTheme(
// filled: true,
// fillColor: AppColors.cMainBg,
// hintStyle: AppTextStyles.size15Medium.copyWith(color: AppColors.c888888),
// contentPadding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.h),
// errorStyle: AppTextStyles.size12Medium.copyWith(color: AppColors.cRed),
// errorBorder: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cRed, width: 1.5.r),
// ),
// focusedBorder: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cFF9914, width: 1.5.r),
// ),
// enabledBorder: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
// ),
// focusedErrorBorder: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cRed, width: 1.5.r),
// ),
// disabledBorder: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
// ),
// border: OutlineInputBorder(
// borderRadius: BorderRadius.circular(12.sp),
// borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
// ),
// ),
);
static ThemeData get darkTheme => ThemeData.light().copyWith(
brightness: Brightness.dark,
extensions: [AppThemeIcons.dark, AppThemeTextStyles.dark],
// colorScheme: ColorScheme(
// brightness: Brightness.light,
// primary: AppColors.cFFFFFF,
// onPrimary:AppColors.cFFFFFF,
// secondary: AppColors.cFFFFFF,
// onSecondary: AppColors.cFFFFFF,
// error:AppColors.cRed,
// onError: AppColors.cRed,
// surface: AppColors.cFFFFFF,
// onSurface: AppColors.cFFFFFF,
// ),
appBarTheme: AppBarTheme(
elevation: 0,
backgroundColor: AppColors.cFFFFFF,
foregroundColor: AppColors.cFFFFFF,
surfaceTintColor: AppColors.cTransparent,
),
scaffoldBackgroundColor: AppColors.c0A0D13,
progressIndicatorTheme: ProgressIndicatorThemeData(
color: AppColors.cFFFFFF,

View File

@@ -0,0 +1,157 @@
import 'package:flutter/material.dart';
import 'package:food_delivery_client/core/constants/app_locale_keys.dart';
import 'package:food_delivery_client/core/core.dart';
class AppThemeTextStyles extends ThemeExtension<AppThemeTextStyles> {
//Regular fonts
final TextStyle size14Regular;
//Medium
final TextStyle size16Medium;
//SemiBold
final TextStyle size16SemiBold;
final TextStyle size24SemiBold;
//Bold
final TextStyle size14Bold;
final TextStyle size24Bold;
//Black
final TextStyle size64Black;
AppThemeTextStyles({
required this.size14Regular,
required this.size16Medium,
required this.size16SemiBold,
required this.size24SemiBold,
required this.size14Bold,
required this.size24Bold,
required this.size64Black,
});
static const String _fontBlack = AppLocaleKeys.fontBlack;
static const String _fontBold = AppLocaleKeys.fontBold;
static const String _fontSemiBold = AppLocaleKeys.fontSemiBold;
static const String _fontMedium = AppLocaleKeys.fontMedium;
static const String _fontRegular = AppLocaleKeys.fontRegular;
static AppThemeTextStyles light = AppThemeTextStyles(
size14Regular: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
fontFamily: _fontRegular,
),
size16Medium: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
fontFamily: _fontMedium,
),
size16SemiBold: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
fontFamily: _fontSemiBold,
),
size24SemiBold: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w600,
fontFamily: _fontSemiBold,
),
size14Bold: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w700,
fontFamily: _fontBold,
),
size24Bold: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w700,
fontFamily: _fontBold,
),
size64Black: TextStyle(
fontSize: 64,
fontWeight: FontWeight.w900,
fontFamily: _fontBlack,
color: AppColors.cFFFFFF,
),
);
static AppThemeTextStyles dark = AppThemeTextStyles(
size14Regular: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
fontFamily: _fontRegular,
),
size16Medium: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
fontFamily: _fontMedium,
),
size16SemiBold: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
fontFamily: _fontSemiBold,
),
size24SemiBold: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w600,
fontFamily: _fontSemiBold,
),
size14Bold: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w700,
fontFamily: _fontBold,
),
size24Bold: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w700,
fontFamily: _fontBold,
),
size64Black: TextStyle(
fontSize: 64,
fontWeight: FontWeight.w900,
fontFamily: _fontBlack,
color: AppColors.cFFFFFF,
),
);
@override
ThemeExtension<AppThemeTextStyles> copyWith({
TextStyle? size14Regular,
TextStyle? size16Medium,
TextStyle? size16SemiBold,
TextStyle? size24SemiBold,
TextStyle? size14Bold,
TextStyle? size24Bold,
TextStyle? size64Black,
}) {
return AppThemeTextStyles(
size14Regular: size14Regular ?? this.size14Regular,
size16Medium: size16Medium ?? this.size16Medium,
size16SemiBold: size16SemiBold ?? this.size16SemiBold,
size24SemiBold: size24SemiBold ?? this.size24SemiBold,
size14Bold: size14Bold ?? this.size14Bold,
size24Bold: size24Bold ?? this.size24Bold,
size64Black: size64Black ?? this.size64Black,
);
}
@override
ThemeExtension<AppThemeTextStyles> lerp(
covariant ThemeExtension<AppThemeTextStyles>? other,
double t,
) {
if (other is! AppThemeTextStyles) return this;
return AppThemeTextStyles(
size14Regular: TextStyle.lerp(size14Regular, other.size14Regular, t)!,
size16Medium: TextStyle.lerp(size16Medium, other.size16Medium, t)!,
size16SemiBold: TextStyle.lerp(size16SemiBold, other.size16SemiBold, t)!,
size24SemiBold: TextStyle.lerp(size24SemiBold, other.size24SemiBold, t)!,
size14Bold: TextStyle.lerp(size14Bold, other.size14Bold, t)!,
size24Bold: TextStyle.lerp(size24Bold, other.size24Bold, t)!,
size64Black: TextStyle.lerp(size64Black, other.size64Black, t)!,
);
}
}

View File

@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:food_delivery_client/core/core.dart';
class AppThemeIcons extends ThemeExtension<AppThemeIcons> {
final String icSplash;
AppThemeIcons({required this.icSplash});
static AppThemeIcons light = AppThemeIcons(icSplash: AppLightSvgs.icSplash);
static AppThemeIcons dark = AppThemeIcons(icSplash: AppDarkSvgs.icSplash);
@override
ThemeExtension<AppThemeIcons> copyWith({String? icSplash}) {
return AppThemeIcons(icSplash: icSplash ?? this.icSplash);
}
@override
ThemeExtension<AppThemeIcons> lerp(
covariant ThemeExtension<AppThemeIcons>? other,
double t,
) {
if (other is! AppThemeIcons) return this;
return t < 0.5 ? this : other;
}
}