> This page is for Designer API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.webflow.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.webflow.com/_mcp/server.

# Get selected variant (Beta)

## `component.getSelectedVariant()`

Retrieves the selected variant of a component.

If no variant is selected (that is, with the `isSelected` attribute set to `true`), the function returns the base variant of the specified component.
Similarly, if the currently selected component in the Designer is not a variant of the specified component, no variant of the specified component is selected, so the function returns the base variant of the specified component.

> **Beta**
>
> These methods are in public beta and may change with future releases.

### Syntax

```typescript
component.getSelectedVariant(): Promise<Variant>
```

### Returns

**Promise\<*Variant*>**

A promise that returns a variant.

### Example

```typescript
const selectedVariant = await heroComponent.getSelectedVariant();
/*
{
  id: 'variant-123',
  name: 'Secondary Hero',
  isSelected: true,
}
*/
// When no variant is explicitly selected, returns base
const base = await heroComponent.getSelectedVariant();
/*
{
  id: 'base',
  name: 'Primary',
  isSelected: true,
}
*/
```

[Try this example](https://webflow.com/oauth/authorize?response_type=code\&client_id=19511de1ec410f9228d8dcbc9420e67916dea80d86d18f0c9a533eb475ea0f62)

---

### Designer Ability

Checks for authorization only

| Designer Ability    | Permission | Locale | Branch | Workflow | Sitemode |
| :------------------ | :--------- | :----- | :----- | :------- | :------- |
| **canAccessCanvas** | any        | any    | any    | any      | any      |