--- title: 'Introduction' --- **A story captures the rendered state of a UI component**. It’s a function that returns a component’s state given a set of arguments. Storybook uses the generic term arguments (args for short) when talking about React’s `props`, Vue’s `slots`, Angular’s `@input`, and other similar concepts. ### Where to put stories A component’s stories are defined in a story file that lives alongside the component file. The story file is for development-only, it won't be included in your production bundle. ``` Button.js | ts Button.stories.js | ts ``` ### Component Story Format We define stories according to the [Component Story Format](../formats/component-story-format) (CSF), an ES6 module-based standard that is portable between tools and easy to write. The key ingredients are the [**`default` export**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export#Using_the_default_export) that describes the component, and [**named exports**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export#Using_named_exports) that describe the stories. #### Default export The default export metadata controls how Storybook lists your stories and provides information used by addons. For example, here’s the default export for a story file `Button.stories.js`: ```js // Button.stories.js import { Button } from './Button'; export default { title: 'Components/Button', component: Button, } ``` #### Defining stories Use the named exports of a CSF file to define your component’s stories. Here’s how to render `Button` in the “primary” state and export a story called `Primary`. ```js // Button.stories.js import { Button } from './Button'; export default { title: 'Components/YourComponent', component: YourComponent, } export const Primary = () =>