### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive
### documentation of the options in this file

[buildPlans.IosevkaCustom]      # <IosevkaCustom> is your plan name
family = "Iosevka Custom"        # Font menu family name
spacing = "normal"               # Optional; Values: `normal`, `term`, `fontconfig-mono`, or `fixed`
serifs = "sans"                  # Optional; Values: `sans` or `slab`
exportGlyphNames = false       # Set this to true for ligature support in Kitty (increased file size)

webfontFormats = ['ttf', 'woff2']

###################################################################################################
# Configure variants

# Optional; Whether to inherit a `ss##` variant
[buildPlans.IosevkaCustom.variants]
inherits = "ss01"

# Optional; Configure single character's variant
[buildPlans.IosevkaCustom.variants.design]
g = 'single-storey-serifless'

# Optional; Configure single character's variant for Upright and Oblique; Overrides [design]
[buildPlans.IosevkaCustom.variants.upright]
i = 'zshaped'
l = 'zshaped'

# Optional; Configure single character's variant for Italic only; Overrides [design]
[buildPlans.IosevkaCustom.variants.italic]
i = 'tailed-serifed'
l = 'tailed-serifed'

# End variant section
###################################################################################################

###################################################################################################
# Configure ligations

[buildPlans.IosevkaCustom.ligations]
inherits = "default-calt"   # Optional; inherits an existing ligation set
disables = []               # Optional; disable specific ligation groups, overrides inherited ligation set
enables  = []               # Optional; enable specific ligation groups, overrides inherited ligation set

# End ligation section
###################################################################################################


###################################################################################################
# Override default building weights
# When buildPlans.<plan name>.weights is absent, all weights would built and mapped to
# default values.
# IMPORTANT : Currently "menu" and "css" property only support numbers between 0 and 1000.
#             and "shape" properly only supports number between 100 and 900 (inclusive).
#             If you decide to use custom weights you have to define all the weights you
#             plan to use otherwise they will not be built.
[buildPlans.IosevkaCustom.weights.Regular]
shape = 400  # Weight for glyph shapes.
menu  = 400  # Weight for the font's names.
css   = 400  # Weight for webfont CSS.

[buildPlans.IosevkaCustom.weights.Book]
shape = 450
menu  = 450  # Use 450 here to name the font's weight "Book"
css   = 450

[buildPlans.IosevkaCustom.weights.Bold]
shape = 700
menu  = 700
css   = 700

# End weight section
###################################################################################################

###################################################################################################
# Override default building slope sets
# When this section is absent, all slopes would be built.

[buildPlans.IosevkaCustom.slopes.Upright]
angle = 0             # Angle in degrees. Valid range [0, 15]
shape = "upright"     # Slope grade used for shape selection.  `upright` | `oblique` | `italic`
menu  = "upright"     # Slope grade used for naming.           `upright` | `oblique` | `italic`
css   = "normal"      # Slope grade used for webfont CSS.      `normal`  | `oblique` | `italic`

[buildPlans.IosevkaCustom.slopes.Oblique]
angle = 9.4
shape = "oblique"
menu  = "oblique"
css   = "oblique"

[buildPlans.IosevkaCustom.slopes.Italic]
angle = 9.4
shape = "italic"
menu  = "italic"
css   = "italic"
# End slope section
###################################################################################################

###################################################################################################
# Override default building widths
# When buildPlans.<plan name>.widths is absent, all widths would built and mapped to
# default values.
# IMPORTANT : Currently "shape" property only supports numbers between 434 and 664 (inclusive),
#             while "menu" only supports integers between 1 and 9 (inclusive).
#             The "shape" parameter specifies the unit width, measured in 1/1000 em. The glyphs'
#             width are equal to, or a simple multiple of the unit width.
#             If you decide to use custom widths you have to define all the widths you plan to use,
#             otherwise they will not be built.

[buildPlans.IosevkaCustom.widths.Normal]
shape = 500        # Unit Width, measured in 1/1000 em.
menu  = 5          # Width grade for the font's names.
css   = "normal"   # "font-stretch' property of webfont CSS.

[buildPlans.IosevkaCustom.widths.Extended]
shape = 600
menu  = 7
css   = "expanded"

# End width section
###################################################################################################

###################################################################################################
# Character Exclusion
# Specify character ranges in the section below to exclude certain characters from the font being
# built. Remove this section when this feature is not needed.

[buildPlans.IosevkaCustom.excludeChars]
ranges = [[10003, 10008]]

# End character exclusion
###################################################################################################

###################################################################################################
# Compatibility Ligatures
# Certain applications like Emacs does not support proper programming liagtures provided by
# OpenType, but can support ligatures provided by PUA codepoints. Therefore you can edit the
# following section to build PUA characters that are generated from the OpenType ligatures.
# Remove this section when compatibility ligatures are not needed.

[[buildPlans.IosevkaCustom.compatibilityLigatures]]
unicode = 57600 # 0xE100
featureTag = 'calt'
sequence = '<*>'

# End compatibility ligatures section
###################################################################################################

###################################################################################################
# Metric overrides
# Certain metrics like line height (leading) could be overridden in your build plan file.
# Edit the values to change the metrics. Remove this section when overriding is not needed.

[buildPlans.IosevkaCustom.metricOverride]
leading = 1250
winMetricAscenderPad = 0
winMetricDescenderPad = 0
powerlineScaleY = 1
powerlineScaleX = 1
powerlineShiftY = 0
powerlineShiftX = 0

# End metric override section
###################################################################################################
