> ## Documentation Index
> Fetch the complete documentation index at: https://docs.buildwithtrace.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Design Variants

> Manage alternate configurations of a single PCB design with variant-aware properties, exports, and Altium import.

## Overview

Design variants let you maintain multiple configurations of a single PCB design. Instead of duplicating your project for each configuration, you define variants that specify which components are populated, which values change, and which footprints are swapped — all within one project.

Common use cases:

* **Regional variants** — Different power input stages for 120V vs 240V markets
* **Feature tiers** — A base model without Bluetooth and a premium model with it
* **Development vs production** — Debug headers and test points populated in development, removed in production
* **Component alternatives** — Swap between two pin-compatible LDOs depending on availability

## Creating Variants

Define variants in the project settings. Each variant has:

| Property        | Description                                                    |
| --------------- | -------------------------------------------------------------- |
| **Name**        | A short identifier (e.g., `US_120V`, `EU_240V`, `DEV`, `PROD`) |
| **Description** | Human-readable explanation of what this variant is for         |

## Text Variables in Drawing Sheets

Variants expose text variables you can use in your drawing sheet (title block):

* `${VARIANT}` — The variant name
* `${VARIANT_DESC}` — The variant description

These update automatically when you switch variants, so your printed schematics and PCB plots always show which variant they represent.

## Variant-Aware Properties

Component properties in the PCB editor are variant-aware:

* The **Footprint Properties dialog** shows which components are affected by the current variant
* The **Message Panel** reflects variant-specific information when you select components
* Variant changes are non-destructive — switching variants doesn't modify the base design

## Exporting with Variants

Variant selection lives in the desktop app. The PCB **Plot dialog includes a variant dropdown** so you can choose which variant to plot or export.

The [Trace CLI](/resources/cli) exports the design as it currently stands — switch to the variant you want in the desktop app first, then export from either place:

```bash theme={null}
# Gerber + drill files
buildwithtrace gerbers board.kicad_pcb --output ./fab/

# 3D STEP model
buildwithtrace export step board.kicad_pcb -o board.step

# SVG / PDF for documentation
buildwithtrace export svg board.kicad_pcb -o ./docs/
buildwithtrace export pdf board.kicad_pcb -o ./docs/
```

<Note>
  Variant-aware export directly from the CLI (selecting a variant without switching in the GUI first) is on the roadmap. See the [CLI export reference](/resources/cli-commands#buildwithtrace-export) for the formats the CLI supports today (PDF, SVG, netlist, BOM, STEP, position).
</Note>

## Importing Altium Variants

If you're migrating from Altium Designer, Trace imports variant data from `.PrjPcb` project files. Altium project variants are parsed and converted to Trace's variant system during import, preserving your variant definitions and component assignments.

See the [Importing from Other EDA Tools](/guides/importing-formats) guide for details on importing Altium projects.

## BOM Generation with Variants

When generating a BOM, the variant determines which components are included. Components marked as "not fitted" in a variant are excluded from that variant's BOM. Rule areas with "exclude from BOM" are also respected during generation.
