Skip to content

Variable Fonts: Dynamic Weight, Width, and Style Control

Use OpenType Variable Fonts in SnowB BMF. Control weight, width, italic, and custom axes with real-time sliders and named instance presets.

A single variable font file replaces separate Regular, Bold, Light, and other style files, and provides every value in between. SnowB BMF gives you control over each variation axis when generating bitmap fonts.

Traditional font families need one file per style. OpenType Variable Fonts pack multiple variation axes into a single file.

Each axis defines a range of values that continuously adjust the font’s appearance:

Axis TagNameDescription
wghtWeightControls thickness from Thin (100) to Black (900)
wdthWidthControls character width from Condensed to Expanded
italItalicToggles between upright (0) and italic (1)
opszOptical SizeAdjusts design details for different display sizes
slntSlantControls the angle of oblique text

Fonts may also include custom axes defined by the type designer, which appear alongside the standard axes.

SnowB BMF detects variable fonts automatically. When you load a font file using the “Add Font File” button:

  1. The application reads the font’s OpenType variation tables.
  2. If variation axes exist, the Variation Axes panel appears below the font settings.
  3. The controls are ready to use immediately. No extra configuration needed.

If the font contains no variation data, the panel does not appear.

Note: Variable font controls apply only to the primary font (the first font in the fallback chain). Secondary and fallback fonts use their default axis values.

Each variation axis in the font is displayed as an individual slider with full control:

  • Axis Name: The human-readable name of the axis (e.g., “Weight”, “Width”).
  • Current Value: Displayed next to the slider, updated in real time as you drag.
  • Min–Max Range: The slider range is set by the font’s defined minimum and maximum values.
  • Step Precision: Most axes use a step size of (max - min) / 100 for smooth control. The ital (Italic) axis uses a step of 1, since it typically functions as an on/off toggle (0 or 1).

Weight (wght) is the most commonly used axis. Drag the slider to move between Thin, Light, Regular, Medium, SemiBold, Bold, ExtraBold, and Black weights, or any value in between.

Width (wdth) adjusts the horizontal proportion of characters. Useful for fitting text into constrained spaces or creating wide display styles.

Italic (ital) is a binary axis. Set to 0 for upright or 1 for italic. The step size of 1 ensures clean switching.

Optical Size (opsz) adjusts fine typographic details. Smaller optical sizes typically increase stroke contrast and spacing for readability, while larger sizes tighten spacing for display use.

Slant (slnt) controls the oblique angle of the text, providing a continuous range unlike the binary italic axis.

Many variable fonts include named instances, which are predefined axis value combinations matching traditional font styles. These are set by the font designer and typically include:

  • Regular
  • Bold
  • Light
  • Thin
  • SemiBold
  • ExtraBold
  • Condensed

When a variable font contains named instances, an Instance dropdown selector appears above the axis sliders:

  1. Click the dropdown to see all available instances.
  2. Select an instance name (e.g., “Bold”) to instantly apply its predefined axis values.
  3. All axis sliders update to reflect the selected instance’s coordinates.

SnowB BMF compares your current axis values against named instances. If your values exactly match a named instance’s coordinates, the dropdown highlights that instance name automatically.

If no instance matches, the dropdown shows “Custom”.

  1. Start with Named Instances: Pick a predefined instance, then fine-tune individual axes.
  2. Test at Target Size: Axis effects are most visible at the final bitmap font size. Preview at your intended resolution.
  3. Use Weight for Emphasis: One variable font replaces separate Bold and Regular files. Adjust the weight axis instead.
  4. Mind the Italic Axis: Italic is a toggle (0 or 1), not a continuous range. Use the slant axis for angular variations.
  5. Check Font Support: If no Variation Axes panel appears after import, the font is not a variable font.
  6. Primary Font Only: Variation controls apply only to the first imported font. Fallback fonts use their default styles.