You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

137 lines
4.6 KiB

import 'package:flutter/material.dart';
import 'package:hadi_hoda_flutter/common_ui/resources/my_colors.dart';
import 'package:hadi_hoda_flutter/core/constants/my_constants.dart';
import 'package:hadi_hoda_flutter/core/utils/local_storage.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
class MYTextStyle {
static const MYTextStyle _i = MYTextStyle._internal();
const MYTextStyle._internal();
factory MYTextStyle() => _i;
static const String dinoKids = 'DinoKids';
static const String notoSansArabic = 'NotoSansArabic';
static const String marhey = 'Marhey';
static const String baloo2 = 'Baloo_2';
static const Color textColor = MyColors.white;
static bool _isArabicOrPersianLanguage() {
final selectedLanguage =
(LocalStorage.readData(key: MyConstants.selectLanguage) ??
MyConstants.defaultLanguage)
.toString()
.trim()
.toLowerCase();
final languageCode = selectedLanguage.split(RegExp(r'[_-]')).first;
return languageCode == 'ar' || languageCode == 'fa';
}
static String _fontForLanguage(String defaultFont) {
return _isArabicOrPersianLanguage() ? notoSansArabic : defaultFont;
}
static FontWeight _fontWeightForLanguage(FontWeight defaultWeight) {
if (!_isArabicOrPersianLanguage()) return defaultWeight;
return switch (defaultWeight) {
FontWeight.w100 => FontWeight.w300,
FontWeight.w200 => FontWeight.w400,
FontWeight.w300 => FontWeight.w500,
FontWeight.w400 => FontWeight.w600,
FontWeight.w500 => FontWeight.w700,
FontWeight.w600 => FontWeight.w800,
FontWeight.w700 => FontWeight.w900,
FontWeight.w800 => FontWeight.w900,
FontWeight.w900 => FontWeight.w900,
_ => defaultWeight,
};
}
static TextStyle get titr0 => TextStyle(
fontFamily: _fontForLanguage(marhey),
fontWeight: _fontWeightForLanguage(FontWeight.w700),
fontSize: MyDevice.fontSize(26),
color: textColor,
);
static TextStyle get titr1 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w800),
fontSize: MyDevice.fontSize(20),
color: textColor,
);
static TextStyle get titr3 => TextStyle(
fontFamily: _fontForLanguage(marhey),
fontWeight: _fontWeightForLanguage(FontWeight.w600),
fontSize: MyDevice.fontSize(18),
color: textColor,
);
static TextStyle get titr4 => TextStyle(
fontFamily: _fontForLanguage(marhey),
fontWeight: _fontWeightForLanguage(FontWeight.w700),
fontSize: MyDevice.fontSize(14),
color: textColor,
);
static TextStyle get matn1 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w600),
fontSize: MyDevice.fontSize(18),
color: textColor,
);
static TextStyle get matn2_3 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w700),
fontSize: MyDevice.fontSize(18),
color: textColor,
);
static TextStyle get matn2_2 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w700),
fontSize: MyDevice.fontSize(16),
color: textColor,
);
static TextStyle get matn2 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w700),
fontSize: MyDevice.fontSize(14),
color: textColor,
);
static TextStyle get matn3 => TextStyle(
fontFamily: _fontForLanguage(baloo2),
fontWeight: _fontWeightForLanguage(FontWeight.w500),
fontSize: MyDevice.fontSize(12),
color: textColor,
);
static TextStyle get button1 => TextStyle(
fontFamily: _fontForLanguage(dinoKids),
fontWeight: _fontWeightForLanguage(FontWeight.w400),
fontSize: MyDevice.fontSize(45),
color: textColor,
);
static TextStyle get button2 => TextStyle(
fontFamily: _fontForLanguage(dinoKids),
fontWeight: _fontWeightForLanguage(FontWeight.w400),
fontSize: MyDevice.fontSize(30),
color: textColor,
);
}