---
title: "@freesewing/plugin-buttons"
---
The **@freesewing/plugin-buttons** plugin provides the following [snippets](/reference/api/snippets):
- [button](/reference/api/snippets/button)
- [buttonhole](/reference/api/snippets/buttonhole)
- [buttonhole-start](/reference/api/snippets/buttonhole-start)
- [buttonhole-end](/reference/api/snippets/buttonhole-end)
- [snap-stud](/reference/api/snippets/snap-stud)
- [snap-socket](/reference/api/snippets/snap-socket)
An example of the button, buttonhole, buttonhole-start, buttonhole-end, snap-stud, and snap-socket snippets
The buttons plugin is part of our [plugin-bundle](/reference/plugins/bundle)
## Installation
```bash
npm install @freesewing/plugin-buttons
```
## Usage
Like all [build-time plugins](/guides/plugins/types-of-plugins#build-time-plugins), you
load them by passing them to the [freesewing.Design](/reference/api/design) super-constructor:
```js
import freesewing from "@freesewing/core";
import buttons from "@freesewing/plugin-buttons";
import config from "../config";
const Pattern = new freesewing.Design(config, buttons);
```
Now you can use the
[button](/reference/api/snippets/button),
[buttonhole](/reference/api/snippets/buttonhole),
[buttonhole-start](/reference/api/snippets/buttonhole-start),
[buttonhole-end](/reference/api/snippets/buttonhole-end),
[snap-stud](/reference/api/snippets/snap-stud), and
[snap-socket](/reference/api/snippets/snap-socket)
snippets in your designs.