---
title: buttons
---
[](/plugins)
[](https://www.npmjs.com/package/@freesewing/plugin-buttons)
[](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
[](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-buttons)
The **buttons** plugin provides the following [snippets](/reference/snippets/):
- `button`
- `buttonhole`
- `buttonhole-start`
- `buttonhole-end`
- `snap-stud`
- `snap-socket`
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.button = new Snippet('button', new Point(40, 10));
snippets.buttonhole = new Snippet('buttonhole', new Point(80, 10));
```
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/#build-time-plugins), you load them
by passing them to the [`freesewing.Design`](/reference/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import buttons from "@freesewing/plugin-buttons";
import config from "../config";
const Pattern = new freesewing.Design(config, buttons);
```