---
title: 'framework'
---
(**Required**)
Parent: [main.js|ts configuration](./main-config.md)
Type: `FrameworkName | { name: FrameworkName; options?: FrameworkOptions }`
Configures Storybook based on a set of [framework-specific](../configure/frameworks.md) settings.
## `name`
Type: `string`
For available frameworks and their options, see their respective [documentation](https://github.com/storybookjs/storybook/tree/next/code/frameworks).
## `options`
Type: `Record`
While many options are specific to a framework, there are some options that are shared across some frameworks, e.g. those that configure Storybook's [builder](./main-config-core.md#builder).
### `options.builder`
Type: `Record`
Configures Storybook's builder, [Vite](../builders/vite.md) or [Webpack](../builders/webpack.md).
#### `options.builder.useSWC`
(⚠️ **Experimental**)
For frameworks made with the [Webpack](../builders/webpack.md) builder, this option allows you to use the [SWC](https://swc.rs/) compiler instead of [Babel](../configure/babel.md).
When Storybook loads, it will update Webpack's configuration including the required loaders (e.g., [`TerserPlugin`](https://webpack.js.org/plugins/terser-webpack-plugin/), [`babel-loader`](https://webpack.js.org/loaders/babel-loader/)) with SWC equivalents (e.g., [`swc-loader`](https://swc.rs/docs/usage/swc-loader)) for bundling and minification.