56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
![]() |
---
|
||
|
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`
|
||
|
|
||
|
<Example part="plugin_buttons" caption="An example of the button, buttonhole, buttonhole-start, buttonhole-end, snap-stud, and snap-socket snippets" design={false} />
|
||
|
|
||
|
```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));
|
||
|
```
|
||
|
|
||
|
<Tip>
|
||
|
|
||
|
The buttons plugin is part of our [plugin-bundle](/reference/plugins/bundle)
|
||
|
|
||
|
</Tip>
|
||
|
|
||
|
## 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);
|
||
|
```
|
||
|
|