---
url: /reference/@cssdoc/core/interfaces/StructureVariant.md
---
# Interface: StructureVariant

Defined in: [packages/core/src/model.ts:275](https://github.com/thedannywahl/cssdoc/blob/main/packages/core/src/model.ts#L275)

One alternative DOM shape for a component, from a top-level `@variant <name>? { … }` block inside
`@structure` — only present when the author needs to say "pick one of these" (e.g. a `<label>`
wrapping a control vs. a `<label for>` + a sibling control), as opposed to [StructureNode](StructureNode.md)'s
default of "these roots all coexist".

## Properties

### name?

```ts
optional name?: string;
```

Defined in: [packages/core/src/model.ts:277](https://github.com/thedannywahl/cssdoc/blob/main/packages/core/src/model.ts#L277)

The author-supplied name from `@variant <name>`, when given (bare `@variant` omits it).

***

### nodes

```ts
nodes: StructureNode[];
```

Defined in: [packages/core/src/model.ts:279](https://github.com/thedannywahl/cssdoc/blob/main/packages/core/src/model.ts#L279)

This variant's root nodes, parsed the same way a plain `@structure` body is.
