FTypeface.inherit constructor

FTypeface.inherit({
  1. required FColors colors,
  2. required bool touch,
  3. String fontFamily = FTypeface.defaultFontFamily,
  4. List<String>? fontFamilyFallback,
})

Creates a FTypeface that inherits its properties.

Implementation

factory FTypeface.inherit({
  required FColors colors,
  required bool touch,
  String fontFamily = FTypeface.defaultFontFamily,
  List<String>? fontFamilyFallback,
}) {
  assert(fontFamily.isNotEmpty, 'fontFamily ($fontFamily) should not be empty.');
  final color = colors.foreground;
  if (touch) {
    return FTypeface(
      fontFamily: fontFamily,
      fontFamilyFallback: fontFamilyFallback,
      xs3: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 10,
        height: 1,
        leadingDistribution: .even,
      ),
      xs2: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 12,
        height: 1,
        leadingDistribution: .even,
      ),
      xs: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 14,
        height: 1.25,
        leadingDistribution: .even,
      ),
      sm: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 16,
        height: 1.5,
        leadingDistribution: .even,
      ),
      md: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 18,
        height: 1.75,
        leadingDistribution: .even,
      ),
      lg: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 20,
        height: 1.75,
        leadingDistribution: .even,
      ),
      xl: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 22,
        height: 2,
        leadingDistribution: .even,
      ),
      xl2: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 30,
        height: 2.25,
        leadingDistribution: .even,
      ),
      xl3: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 36,
        height: 2.5,
        leadingDistribution: .even,
      ),
      xl4: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 48,
        height: 1,
        leadingDistribution: .even,
      ),
      xl5: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 60,
        height: 1,
        leadingDistribution: .even,
      ),
      xl6: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 72,
        height: 1,
        leadingDistribution: .even,
      ),
      xl7: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 96,
        height: 1,
        leadingDistribution: .even,
      ),
      xl8: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 108,
        height: 1,
        leadingDistribution: .even,
      ),
    );
  } else {
    return FTypeface(
      fontFamily: fontFamily,
      fontFamilyFallback: fontFamilyFallback,
      xs3: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 8,
        height: 1,
        leadingDistribution: .even,
      ),
      xs2: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 10,
        height: 1,
        leadingDistribution: .even,
      ),
      xs: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 12,
        height: 1,
        leadingDistribution: .even,
      ),
      sm: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 14,
        height: 1.25,
        leadingDistribution: .even,
      ),
      md: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 16,
        height: 1.5,
        leadingDistribution: .even,
      ),
      lg: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 18,
        height: 1.75,
        leadingDistribution: .even,
      ),
      xl: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 20,
        height: 1.75,
        leadingDistribution: .even,
      ),
      xl2: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 22,
        height: 2,
        leadingDistribution: .even,
      ),
      xl3: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 30,
        height: 2.25,
        leadingDistribution: .even,
      ),
      xl4: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 36,
        height: 2.5,
        leadingDistribution: .even,
      ),
      xl5: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 48,
        height: 1,
        leadingDistribution: .even,
      ),
      xl6: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 60,
        height: 1,
        leadingDistribution: .even,
      ),
      xl7: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 72,
        height: 1,
        leadingDistribution: .even,
      ),
      xl8: TextStyle(
        color: color,
        fontFamily: fontFamily,
        fontFamilyFallback: fontFamilyFallback,
        fontSize: 96,
        height: 1,
        leadingDistribution: .even,
      ),
    );
  }
}