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.
pharmacy/lib/maps/primary_text.dart

89 lines
2.4 KiB

import 'package:flutter/material.dart';
import 'app_sizes.dart';
import 'padding_type_enum.dart';
class PrimaryText extends StatelessWidget {
final String text;
final Color? fontColor;
final double fontSize;
final FontWeight fontWeight;
final double horizontalPadding;
final double verticalPadding;
final TextAlign textAlign;
final bool isResponsive;
final TextDecoration? textDecoration;
final PaddingType paddingType;
final double leftPadding;
final double rightPadding;
final double lineHeight;
final FontStyle fontStyle;
final TextOverflow textOverflow;
final bool textAllCaps;
final double letterSpacing;
const PrimaryText(
this.text, {
Key? key,
this.fontColor = Colors.black,
this.fontSize = 16,
this.fontWeight = FontWeight.w600,
this.horizontalPadding = 0.0,
this.verticalPadding = 0.0,
this.textAlign = TextAlign.start,
this.isResponsive = true,
this.textDecoration,
this.paddingType = PaddingType.symmetric,
this.leftPadding = 0.0,
this.rightPadding = 0.0,
this.lineHeight = 1.5,
this.fontStyle = FontStyle.normal,
this.textOverflow = TextOverflow.visible,
this.textAllCaps = false,
this.letterSpacing = 0,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: paddingType == PaddingType.symmetric
? EdgeInsets.symmetric(
horizontal: horizontalPadding,
vertical: verticalPadding,
)
: EdgeInsets.only(
left: leftPadding,
right: rightPadding,
),
child: Text(
textAllCaps ? text.toUpperCase() : text,
style: TextStyle(
fontSize: responsiveTextSize(),
fontWeight: fontWeight,
color: fontColor,
decoration: textDecoration,
height: lineHeight,
fontStyle: fontStyle,
letterSpacing: letterSpacing,
),
textScaleFactor: 1,
textAlign: textAlign,
),
);
}
double responsiveTextSize() {
if (isResponsive) {
if (AppSizes.deviceHeight < AppSizes.height490) {
return fontSize - 3;
} else if (AppSizes.deviceHeight < AppSizes.height740) {
return fontSize - 2;
} else if (AppSizes.deviceHeight < AppSizes.height880) {
return fontSize - 1;
}
}
return fontSize;
}
}