1
0
Fork 0

feat: Flat import of markdown repo

This is a flat (without history) import of (some of) the content
from our markdown module.

We've imported this without history because the repo contains our
blog posts and showcases posts content prior to porting them to strapi.

Since this contains many images, it would balloon the size of this repo
to import the full history.

Instead, please refer to the history of the (archived) markdown repo
at: https://github.com/freesewing/markdown
This commit is contained in:
Joost De Cock 2021-08-25 16:09:31 +02:00
parent 1671a896b5
commit b34a2ee2ed
6132 changed files with 244167 additions and 0 deletions

View file

@ -0,0 +1,39 @@
---
title: bartack
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
 
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bartack.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bartack)
 
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
 
[![Open issues tagged pkg:plugin-bartack](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bartack.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bartack)
The [@freesewing/plugin-bartack](/reference/packages/plugin-bartack) packages provides a plugin to help bartack points and/or paths around a given bartack line.
## Installation
```bash
npm install @freesewing/plugin-bartack
```
## 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 bartack from "@freesewing/plugin-bartack";
import config from "../config";
const Pattern = new freesewing.Design(config, bartack);
```
Now you can use the
[bartack](/reference/macros/bartack/),
[bartackAlong](/reference/macros/bartackalong/), and
[bartackFractionAlong](/reference/macros/bartackfractionalong/) macros in your parts.

View file

@ -0,0 +1,38 @@
---
title: bundle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)   [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bundle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bundle)   [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)   [![Open issues tagged pkg:plugin-bundle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bundle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bundle)
The bundle plugin bundles the most common FreeSewing build-time plugins:
1. [plugin-cutonfold](/reference/plugins/cutonfold) : Add cut-on-fold indicators to your patterns
2. [plugin-dimension](/reference/plugins/dimension) : Add dimensions to your (paperless) patterns
3. [plugin-grainline](/reference/plugins/grainline) : Add grainline indicators to your patterns
4. [plugin-logo](/reference/plugins/logo) : Add a scalebox to your patterns
5. [plugin-scalebox](/reference/plugins/scalebox) : Add pretty titles to your pattern parts
6. [plugin-title](/reference/plugins/title) : Add pretty titles to your pattern parts
7. [plugin-round](/reference/plugins/round) : Rounds corners
8. [plugin-sprinkle](/reference/plugins/sprinkle) : Add multiple snippets to your pattern
Almost all patterns use these plugins, so it made sense to bundle them.
## Installation
```bash
npm install @freesewing/plugin-bundle
```
## Usage
Like all [build-time plugins](/guides/plugins/#build-time-plugins), you load them by passing them to the [`freesewing.Design`](/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle";
import config from "../config";
const Pattern = new freesewing.Design(config, plugins);
```

View file

@ -0,0 +1,45 @@
---
title: bundle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
 
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bundle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bundle)
 
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
 
[![Open issues tagged pkg:plugin-bundle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bundle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bundle)
The bundle plugin bundles the most common FreeSewing build-time plugins:
1. [plugin-cutonfold](/reference/plugins/cutonfold) : Add cut-on-fold indicators to your patterns
2. [plugin-dimension](/reference/plugins/dimension) : Add dimensions to your (paperless) patterns
3. [plugin-grainline](/reference/plugins/grainline) : Add grainline indicators to your patterns
4. [plugin-logo](/reference/plugins/logo) : Add a scalebox to your patterns
5. [plugin-scalebox](/reference/plugins/scalebox) : Add pretty titles to your pattern parts
6. [plugin-title](/reference/plugins/title) : Add pretty titles to your pattern parts
7. [plugin-round](/reference/plugins/round) : Rounds corners
8. [plugin-sprinkle](/reference/plugins/sprinkle) : Add multiple snippets to your pattern
Almost all patterns use these plugins, so it made sense to bundle them.
## Installation
```bash
npm install @freesewing/plugin-bundle
```
## Usage
Like all [build-time plugins](/guides/plugins/#build-time-plugins), you load them
by passing them to the [`freesewing.Design`](/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle";
import config from "../config";
const Pattern = new freesewing.Design(config, plugins);
```

View file

@ -0,0 +1,38 @@
---
title: bundle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)   [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bundle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bundle)   [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)   [![Open issues tagged pkg:plugin-bundle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bundle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bundle)
The bundle plugin bundles the most common FreeSewing build-time plugins:
1. [plugin-cutonfold](/reference/plugins/cutonfold) : Add cut-on-fold indicators to your patterns
2. [plugin-dimension](/reference/plugins/dimension) : Add dimensions to your (paperless) patterns
3. [plugin-grainline](/reference/plugins/grainline) : Add grainline indicators to your patterns
4. [plugin-logo](/reference/plugins/logo) : Add a scalebox to your patterns
5. [plugin-scalebox](/reference/plugins/scalebox) : Add pretty titles to your pattern parts
6. [plugin-title](/reference/plugins/title) : Add pretty titles to your pattern parts
7. [plugin-round](/reference/plugins/round) : Rounds corners
8. [plugin-sprinkle](/reference/plugins/sprinkle) : Add multiple snippets to your pattern
Almost all patterns use these plugins, so it made sense to bundle them.
## Installation
```bash
npm install @freesewing/plugin-bundle
```
## Usage
Like all [build-time plugins](/guides/plugins/#build-time-plugins), you load them by passing them to the [`freesewing.Design`](/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle";
import config from "../config";
const Pattern = new freesewing.Design(config, plugins);
```

View file

@ -0,0 +1,38 @@
---
title: bundle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)   [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bundle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bundle)   [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)   [![Open issues tagged pkg:plugin-bundle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bundle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bundle)
The bundle plugin bundles the most common FreeSewing build-time plugins:
1. [plugin-cutonfold](/reference/plugins/cutonfold) : Add cut-on-fold indicators to your patterns
2. [plugin-dimension](/reference/plugins/dimension) : Add dimensions to your (paperless) patterns
3. [plugin-grainline](/reference/plugins/grainline) : Add grainline indicators to your patterns
4. [plugin-logo](/reference/plugins/logo) : Add a scalebox to your patterns
5. [plugin-scalebox](/reference/plugins/scalebox) : Add pretty titles to your pattern parts
6. [plugin-title](/reference/plugins/title) : Add pretty titles to your pattern parts
7. [plugin-round](/reference/plugins/round) : Rounds corners
8. [plugin-sprinkle](/reference/plugins/sprinkle) : Add multiple snippets to your pattern
Almost all patterns use these plugins, so it made sense to bundle them.
## Installation
```bash
npm install @freesewing/plugin-bundle
```
## Usage
Like all [build-time plugins](/guides/plugins/#build-time-plugins), you load them by passing them to the [`freesewing.Design`](/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle";
import config from "../config";
const Pattern = new freesewing.Design(config, plugins);
```

View file

@ -0,0 +1,38 @@
---
title: bundle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)   [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bundle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bundle)   [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)   [![Open issues tagged pkg:plugin-bundle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bundle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bundle)
The bundle plugin bundles the most common FreeSewing build-time plugins:
1. [plugin-cutonfold](/reference/plugins/cutonfold) : Add cut-on-fold indicators to your patterns
2. [plugin-dimension](/reference/plugins/dimension) : Add dimensions to your (paperless) patterns
3. [plugin-grainline](/reference/plugins/grainline) : Add grainline indicators to your patterns
4. [plugin-logo](/reference/plugins/logo) : Add a scalebox to your patterns
5. [plugin-scalebox](/reference/plugins/scalebox) : Add pretty titles to your pattern parts
6. [plugin-title](/reference/plugins/title) : Add pretty titles to your pattern parts
7. [plugin-round](/reference/plugins/round) : Rounds corners
8. [plugin-sprinkle](/reference/plugins/sprinkle) : Add multiple snippets to your pattern
Almost all patterns use these plugins, so it made sense to bundle them.
## Installation
```bash
npm install @freesewing/plugin-bundle
```
## Usage
Like all [build-time plugins](/guides/plugins/#build-time-plugins), you load them by passing them to the [`freesewing.Design`](/api#design) constructor:
```js
import freesewing from "@freesewing/core";
import plugins from "@freesewing/plugin-bundle";
import config from "../config";
const Pattern = new freesewing.Design(config, plugins);
```

View file

@ -0,0 +1,50 @@
---
title: bust
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)   [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bust)   [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)   [![Open issues tagged pkg:plugin-bust](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust)
The [@freesewing/plugin-bust](/reference/packages/plugin-bust) packages provides a plugin to help you adapt menswear patterns for breasts.
If you are designing a womenswear pattern, you won't need this plugin. But if you're adapting a menswear pattern for breasts, this plugin can help you.
Almost all menswear patterns use the chest circumference to draft the garment.
As a person with breasts, using your (full) chest circumference will give you bad fit. Instead, it's better to use your high bust measurement as chest circumference, and then create extra room for the breasts.
This is the same technique that's used in a full-bust adjustment to fit a womenswear pattern for a person with above-average sized breasts.
This plugin helps you by:
- Storing the chest circumference in `measurements.bust`
- Changing `measurments.chestCircumference` to the value of `measurements.highBust`
This way you can extend a menswear pattern and have it drafted with the high bust measurement as chest measurment, after which you can create room for the breasts.
It's used by our [Carlita](/reference/packages/carlita) pattern, which extends the menswear [Carlton](/reference/packages/carlton) pattern.
<Tip>
To learn more about extending a pattern, see [Pattern inheritance](/howtos/core/inheritance/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-bust
```
## 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 bust from "@freesewing/plugin-bust";
import config from "../config";
const Pattern = new freesewing.Design(config, bust);
```

View file

@ -0,0 +1,60 @@
---
title: bust
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bust)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-bust](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust)
The [@freesewing/plugin-bust](/reference/packages/plugin-bust) packages provides a plugin to help you adapt menswear patterns for breasts.
If you are designing a womenswear pattern, you won't need this plugin. But if you're adapting
a menswear pattern for breasts, this plugin can help you.
Almost all menswear patterns use the chest circumference to draft the garment.
As a person with breasts, using your (full) chest circumference will give you bad fit.
Instead, it's better to use your high bust measurement as chest circumference, and then create extra room for the breasts.
This is the same technique that's used in a full-bust adjustment to fit a womenswear pattern for a person with above-average sized breasts.
This plugin helps you by:
- Storing the chest circumference in `measurements.bust`
- Changing `measurments.chestCircumference` to the value of `measurements.highBust`
This way you can extend a menswear pattern and have it drafted with the high bust measurement
as chest measurment, after which you can create room for the breasts.
It's used by our [Carlita](/reference/packages/carlita) pattern, which extends the menswear [Carlton](/reference/packages/carlton) pattern.
<Tip>
To learn more about extending a pattern, see [Design inheritance](/howtos/code/inheritance/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-bust
```
## 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 bust from "@freesewing/plugin-bust";
import config from "../config";
const Pattern = new freesewing.Design(config, bust);
```

View file

@ -0,0 +1,50 @@
---
title: bust
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bust) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-bust](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust)
The [@freesewing/plugin-bust](/reference/packages/plugin-bust) packages provides a plugin to help you adapt menswear patterns for breasts.
If you are designing a womenswear pattern, you won't need this plugin. But if you're adapting a menswear pattern for breasts, this plugin can help you.
Almost all menswear patterns use the chest circumference to draft the garment.
As a person with breasts, using your (full) chest circumference will give you bad fit. Instead, it's better to use your high bust measurement as chest circumference, and then create extra room for the breasts.
This is the same technique that's used in a full-bust adjustment to fit a womenswear pattern for a person with above-average sized breasts.
This plugin helps you by:
- Storing the chest circumference in `measurements.bust`
- Changing `measurments.chestCircumference` to the value of `measurements.highBust`
This way you can extend a menswear pattern and have it drafted with the high bust measurement as chest measurment, after which you can create room for the breasts.
It's used by our [Carlita](/reference/packages/carlita) pattern, which extends the menswear [Carlton](/reference/packages/carlton) pattern.
<Tip>
To learn more about extending a pattern, see [Pattern inheritance](/howtos/core/inheritance/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-bust
```
## 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 bust from "@freesewing/plugin-bust";
import config from "../config";
const Pattern = new freesewing.Design(config, bust);
```

View file

@ -0,0 +1,50 @@
---
title: bust
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bust) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-bust](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust)
The [@freesewing/plugin-bust](/reference/packages/plugin-bust) packages provides a plugin to help you adapt menswear patterns for breasts.
If you are designing a womenswear pattern, you won't need this plugin. But if you're adapting a menswear pattern for breasts, this plugin can help you.
Almost all menswear patterns use the chest circumference to draft the garment.
As a person with breasts, using your (full) chest circumference will give you bad fit. Instead, it's better to use your high bust measurement as chest circumference, and then create extra room for the breasts.
This is the same technique that's used in a full-bust adjustment to fit a womenswear pattern for a person with above-average sized breasts.
This plugin helps you by:
- Storing the chest circumference in `measurements.bust`
- Changing `measurments.chestCircumference` to the value of `measurements.highBust`
This way you can extend a menswear pattern and have it drafted with the high bust measurement as chest measurment, after which you can create room for the breasts.
It's used by our [Carlita](/reference/packages/carlita) pattern, which extends the menswear [Carlton](/reference/packages/carlton) pattern.
<Tip>
To learn more about extending a pattern, see [Pattern inheritance](/howtos/core/inheritance/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-bust
```
## 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 bust from "@freesewing/plugin-bust";
import config from "../config";
const Pattern = new freesewing.Design(config, bust);
```

View file

@ -0,0 +1,50 @@
---
title: bust
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-bust) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-bust](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust)
The [@freesewing/plugin-bust](/reference/packages/plugin-bust) packages provides a plugin to help you adapt menswear patterns for breasts.
If you are designing a womenswear pattern, you won't need this plugin. But if you're adapting a menswear pattern for breasts, this plugin can help you.
Almost all menswear patterns use the chest circumference to draft the garment.
As a person with breasts, using your (full) chest circumference will give you bad fit. Instead, it's better to use your high bust measurement as chest circumference, and then create extra room for the breasts.
This is the same technique that's used in a full-bust adjustment to fit a womenswear pattern for a person with above-average sized breasts.
This plugin helps you by:
- Storing the chest circumference in `measurements.bust`
- Changing `measurments.chestCircumference` to the value of `measurements.highBust`
This way you can extend a menswear pattern and have it drafted with the high bust measurement as chest measurment, after which you can create room for the breasts.
It's used by our [Carlita](/reference/packages/carlita) pattern, which extends the menswear [Carlton](/reference/packages/carlton) pattern.
<Tip>
To learn more about extending a pattern, see [Pattern inheritance](/howtos/core/inheritance/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-bust
```
## 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 bust from "@freesewing/plugin-bust";
import config from "../config";
const Pattern = new freesewing.Design(config, bust);
```

View file

@ -0,0 +1,41 @@
---
title: buttons
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-buttons.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-buttons) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-buttons](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-buttons.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-buttons)
The **buttons** plugin provides `button` and `buttonhold` [snippets](/reference/snippets/):
<Example part="plugin_buttons" caption="An example of the button, buttonhole, snap-male, and snap-female 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);
```

View file

@ -0,0 +1,55 @@
---
title: buttons
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-buttons.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-buttons)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-buttons](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-buttons.svg?label=Issues)](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);
```

View file

@ -0,0 +1,41 @@
---
title: buttons
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-buttons.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-buttons) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-buttons](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-buttons.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-buttons)
The **buttons** plugin provides `button` and `buttonhold` [snippets](/reference/snippets/):
<Example part="plugin_buttons" caption="An example of the button, buttonhole, snap-male, and snap-female 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);
```

View file

@ -0,0 +1,41 @@
---
title: buttons
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-buttons.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-buttons) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-buttons](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-buttons.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-buttons)
The **buttons** plugin provides `button` and `buttonhold` [snippets](/reference/snippets/):
<Example part="plugin_buttons" caption="An example of the button, buttonhole, snap-male, and snap-female 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);
```

View file

@ -0,0 +1,41 @@
---
title: knopen
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-buttons.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-buttons) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-buttons](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-buttons.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-buttons)
The **buttons** plugin provides `button` and `buttonhold` [snippets](/reference/snippets/):
<Example part="plugin_buttons" caption="An example of the button, buttonhole, snap-male, and snap-female 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);
```

View file

@ -0,0 +1,66 @@
---
title: cutonfold
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-cutonfold.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-cutonfold) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-cutonfold](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-cutonfold.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-cutonfold)
The **cutonfold** plugin provides [the cutonfold macro](/reference/macros/cutonfold/):
<Example part="plugin_cutonfold" caption="An example of the cutonfold macro" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.topLeft = new Point(0, 0);
points.topRight = new Point(150, 0);
points.bottomRight = new Point(150, 50);
points.bottomLeft = new Point(0, 50);
paths.box = new Path()
.move(points.topLeft)
.line(points.topRight)
.line(points.bottomRight)
.line(points.bottomLeft)
.close();
macro("cutonfold", {
from: points.topRight,
to: points.topLeft,
grainline: true
});
```
<Note>
###### It's safe to use a corner of your pattern part for this
Since this is typically used on corners, the generated cut-on-fold indicator
will not go all the way to the `to` and `from` points.
</Note>
<Tip>
The cutonfold plugin is part of our [plugin-bundle](/reference/plugins/bundle/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-cutonfold
```
## 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 cutonfold from "@freesewing/plugin-cutonfold";
import config from "../config";
const Pattern = new freesewing.Design(config, cutonfold);
```
Now you can use [the cutonfold macro](/reference/macros/cutonfold/) in your parts.

View file

@ -0,0 +1,72 @@
---
title: cutonfold
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-cutonfold.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-cutonfold)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-cutonfold](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-cutonfold.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-cutonfold)
The **cutonfold** plugin provides [the cutonfold macro](/reference/macros/cutonfold/):
<Example part="plugin_cutonfold" caption="An example of the cutonfold macro" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.topLeft = new Point(0, 0);
points.topRight = new Point(150, 0);
points.bottomRight = new Point(150, 50);
points.bottomLeft = new Point(0, 50);
paths.box = new Path()
.move(points.topLeft)
.line(points.topRight)
.line(points.bottomRight)
.line(points.bottomLeft)
.close();
macro("cutonfold", {
from: points.bottomLeft,
to: points.bottomRight,
grainline: true
});
```
<Note>
###### It's safe to use a corner of your pattern part for this
Since this is typically used on corners, the generated cut-on-fold indicator
will not go all the way to the `to` and `from` points.
</Note>
<Tip>
The cutonfold plugin is part of our [plugin-bundle](/reference/plugins/bundle/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-cutonfold
```
## 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 cutonfold from "@freesewing/plugin-cutonfold";
import config from "../config";
const Pattern = new freesewing.Design(config, cutonfold);
```
Now you can use [the cutonfold macro](/reference/macros/cutonfold/) in your parts.

View file

@ -0,0 +1,66 @@
---
title: cutonfold
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-cutonfold.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-cutonfold) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-cutonfold](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-cutonfold.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-cutonfold)
The **cutonfold** plugin provides [the cutonfold macro](/reference/macros/cutonfold/):
<Example part="plugin_cutonfold" caption="An example of the cutonfold macro" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.topLeft = new Point(0, 0);
points.topRight = new Point(150, 0);
points.bottomRight = new Point(150, 50);
points.bottomLeft = new Point(0, 50);
paths.box = new Path()
.move(points.topLeft)
.line(points.topRight)
.line(points.bottomRight)
.line(points.bottomLeft)
.close();
macro("cutonfold", {
from: points.topRight,
to: points.topLeft,
grainline: true
});
```
<Note>
###### It's safe to use a corner of your pattern part for this
Since this is typically used on corners, the generated cut-on-fold indicator
will not go all the way to the `to` and `from` points.
</Note>
<Tip>
The cutonfold plugin is part of our [plugin-bundle](/reference/plugins/bundle/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-cutonfold
```
## 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 cutonfold from "@freesewing/plugin-cutonfold";
import config from "../config";
const Pattern = new freesewing.Design(config, cutonfold);
```
Now you can use [the cutonfold macro](/reference/macros/cutonfold/) in your parts.

View file

@ -0,0 +1,66 @@
---
title: cutonfold
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-cutonfold.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-cutonfold) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-cutonfold](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-cutonfold.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-cutonfold)
The **cutonfold** plugin provides [the cutonfold macro](/reference/macros/cutonfold/):
<Example part="plugin_cutonfold" caption="An example of the cutonfold macro" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.topLeft = new Point(0, 0);
points.topRight = new Point(150, 0);
points.bottomRight = new Point(150, 50);
points.bottomLeft = new Point(0, 50);
paths.box = new Path()
.move(points.topLeft)
.line(points.topRight)
.line(points.bottomRight)
.line(points.bottomLeft)
.close();
macro("cutonfold", {
from: points.topRight,
to: points.topLeft,
grainline: true
});
```
<Note>
###### It's safe to use a corner of your pattern part for this
Since this is typically used on corners, the generated cut-on-fold indicator
will not go all the way to the `to` and `from` points.
</Note>
<Tip>
The cutonfold plugin is part of our [plugin-bundle](/reference/plugins/bundle/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-cutonfold
```
## 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 cutonfold from "@freesewing/plugin-cutonfold";
import config from "../config";
const Pattern = new freesewing.Design(config, cutonfold);
```
Now you can use [the cutonfold macro](/reference/macros/cutonfold/) in your parts.

View file

@ -0,0 +1,66 @@
---
title: cutonfold
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-cutonfold.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-cutonfold) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-cutonfold](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-cutonfold.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-cutonfold)
The **cutonfold** plugin provides [the cutonfold macro](/reference/macros/cutonfold/):
<Example part="plugin_cutonfold" caption="An example of the cutonfold macro" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.topLeft = new Point(0, 0);
points.topRight = new Point(150, 0);
points.bottomRight = new Point(150, 50);
points.bottomLeft = new Point(0, 50);
paths.box = new Path()
.move(points.topLeft)
.line(points.topRight)
.line(points.bottomRight)
.line(points.bottomLeft)
.close();
macro("cutonfold", {
from: points.topRight,
to: points.topLeft,
grainline: true
});
```
<Note>
###### It's safe to use a corner of your pattern part for this
Since this is typically used on corners, the generated cut-on-fold indicator
will not go all the way to the `to` and `from` points.
</Note>
<Tip>
The cutonfold plugin is part of our [plugin-bundle](/reference/plugins/bundle/)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-cutonfold
```
## 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 cutonfold from "@freesewing/plugin-cutonfold";
import config from "../config";
const Pattern = new freesewing.Design(config, cutonfold);
```
Now you can use [the cutonfold macro](/reference/macros/cutonfold/) in your parts.

View file

@ -0,0 +1,5 @@
---
title: Plugins
---
<ReadMore root='reference/plugins' />

View file

@ -0,0 +1,93 @@
---
title: dimension
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-dimension.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-dimension) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-dimension](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-dimension.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-dimension)
The **dimension** plugin provides the following [macros](/plugins#macros):
- [hd](#hd) : Adds a horizontal dimension
- [vd](#vd) : Adds a vertical dimension
- [ld](#ld) : Adds a linear dimension
- [pd](#pd) : Adds a dimension along a path
<Example part="plugin_dimension" caption="An example of the different dimensinon macros" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.A = new Point(0, 0);
points.B = new Point(0, 100);
points.C = new Point(50, 100);
points.D = new Point(100, 50);
points.DCp1 = new Point(100, 0);
paths.box = new Path()
.move(points.A)
.line(points.B)
.line(points.C)
.line(points.D)
.curve(points.DCp1, points.A, points.A)
.close();
macro("vd", {
from: points.A,
to: points.B,
x: points.A.x - 15
});
macro("hd", {
from: points.B,
to: points.C,
y: points.B.y + 15
});
macro("ld", {
from: points.C,
to: points.D,
d: -15
});
macro("ld", {
from: points.C,
to: points.D,
d: -30,
text: "Custom text"
});
macro("pd", {
path: new Path().move(points.A).curve(points.A, points.DCp1, points.D),
d: -15
});
```
<Tip>
The dimension plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-dimension
```
## 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 dimension from "@freesewing/plugin-dimension";
import config from "../config";
const Pattern = new freesewing.Design(config, dimension);
```
Now you can use the following macros in your parts:
- [hd](/reference/macros/hd/)
- [vd](/reference/macros/vd/)
- [ld](/reference/macros/ld/)
- [pd](/reference/macros/pd/)

View file

@ -0,0 +1,102 @@
---
title: dimension
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-dimension.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-dimension)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-dimension](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-dimension.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-dimension)
The **dimension** plugin provides the following [macros](/plugins#macros):
- [hd](/reference/macros/hd/) : Adds a horizontal dimension
- [vd](/reference/macros/vd/) : Adds a vertical dimension
- [ld](/reference/macros/ld/) : Adds a linear dimension
- [pd](/reference/macros/pd/) : Adds a dimension along a path
- [rmd](/reference/macros/rmd/) : Removes a dimension
- [rmad](/reference/macros/rmad/) : Removes all dimensions with a default prefix
<Example part="plugin_dimension" caption="An example of the different dimensinon macros" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.A = new Point(0, 0);
points.B = new Point(0, 100);
points.C = new Point(50, 100);
points.D = new Point(100, 50);
points.DCp1 = new Point(100, 0);
paths.box = new Path()
.move(points.A)
.line(points.B)
.line(points.C)
.line(points.D)
.curve(points.DCp1, points.A, points.A)
.close();
macro("vd", {
from: points.A,
to: points.B,
x: points.A.x - 15
});
macro("hd", {
from: points.B,
to: points.C,
y: points.B.y + 15
});
macro("ld", {
from: points.C,
to: points.D,
d: -15
});
macro("ld", {
from: points.C,
to: points.D,
d: -30,
text: "Custom text"
});
macro("pd", {
path: new Path().move(points.A).curve(points.A, points.DCp1, points.D),
d: -15
});
```
<Tip>
The dimension plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-dimension
```
## 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 dimension from "@freesewing/plugin-dimension";
import config from "../config";
const Pattern = new freesewing.Design(config, dimension);
```
Now you can use the following macros in your parts:
- [hd](/reference/macros/hd/)
- [vd](/reference/macros/vd/)
- [ld](/reference/macros/ld/)
- [pd](/reference/macros/pd/)

View file

@ -0,0 +1,93 @@
---
title: dimension
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-dimension.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-dimension) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-dimension](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-dimension.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-dimension)
The **dimension** plugin provides the following [macros](/plugins#macros):
- [hd](#hd) : Adds a horizontal dimension
- [vd](#vd) : Adds a vertical dimension
- [ld](#ld) : Adds a linear dimension
- [pd](#pd) : Adds a dimension along a path
<Example part="plugin_dimension" caption="An example of the different dimensinon macros" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.A = new Point(0, 0);
points.B = new Point(0, 100);
points.C = new Point(50, 100);
points.D = new Point(100, 50);
points.DCp1 = new Point(100, 0);
paths.box = new Path()
.move(points.A)
.line(points.B)
.line(points.C)
.line(points.D)
.curve(points.DCp1, points.A, points.A)
.close();
macro("vd", {
from: points.A,
to: points.B,
x: points.A.x - 15
});
macro("hd", {
from: points.B,
to: points.C,
y: points.B.y + 15
});
macro("ld", {
from: points.C,
to: points.D,
d: -15
});
macro("ld", {
from: points.C,
to: points.D,
d: -30,
text: "Custom text"
});
macro("pd", {
path: new Path().move(points.A).curve(points.A, points.DCp1, points.D),
d: -15
});
```
<Tip>
The dimension plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-dimension
```
## 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 dimension from "@freesewing/plugin-dimension";
import config from "../config";
const Pattern = new freesewing.Design(config, dimension);
```
Now you can use the following macros in your parts:
- [hd](/reference/macros/hd/)
- [vd](/reference/macros/vd/)
- [ld](/reference/macros/ld/)
- [pd](/reference/macros/pd/)

View file

@ -0,0 +1,93 @@
---
title: dimension
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-dimension.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-dimension) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-dimension](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-dimension.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-dimension)
The **dimension** plugin provides the following [macros](/plugins#macros):
- [hd](#hd) : Adds a horizontal dimension
- [vd](#vd) : Adds a vertical dimension
- [ld](#ld) : Adds a linear dimension
- [pd](#pd) : Adds a dimension along a path
<Example part="plugin_dimension" caption="An example of the different dimensinon macros" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.A = new Point(0, 0);
points.B = new Point(0, 100);
points.C = new Point(50, 100);
points.D = new Point(100, 50);
points.DCp1 = new Point(100, 0);
paths.box = new Path()
.move(points.A)
.line(points.B)
.line(points.C)
.line(points.D)
.curve(points.DCp1, points.A, points.A)
.close();
macro("vd", {
from: points.A,
to: points.B,
x: points.A.x - 15
});
macro("hd", {
from: points.B,
to: points.C,
y: points.B.y + 15
});
macro("ld", {
from: points.C,
to: points.D,
d: -15
});
macro("ld", {
from: points.C,
to: points.D,
d: -30,
text: "Custom text"
});
macro("pd", {
path: new Path().move(points.A).curve(points.A, points.DCp1, points.D),
d: -15
});
```
<Tip>
The dimension plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-dimension
```
## 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 dimension from "@freesewing/plugin-dimension";
import config from "../config";
const Pattern = new freesewing.Design(config, dimension);
```
Now you can use the following macros in your parts:
- [hd](/reference/macros/hd/)
- [vd](/reference/macros/vd/)
- [ld](/reference/macros/ld/)
- [pd](/reference/macros/pd/)

View file

@ -0,0 +1,93 @@
---
title: dimension
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-dimension.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-dimension) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-dimension](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-dimension.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-dimension)
The **dimension** plugin provides the following [macros](/plugins#macros):
- [hd](#hd) : Adds a horizontal dimension
- [vd](#vd) : Adds a vertical dimension
- [ld](#ld) : Adds a linear dimension
- [pd](#pd) : Adds a dimension along a path
<Example part="plugin_dimension" caption="An example of the different dimensinon macros" design={false} />
```js
let { Point, points, Path, paths, macro } = part.shorthand();
points.A = new Point(0, 0);
points.B = new Point(0, 100);
points.C = new Point(50, 100);
points.D = new Point(100, 50);
points.DCp1 = new Point(100, 0);
paths.box = new Path()
.move(points.A)
.line(points.B)
.line(points.C)
.line(points.D)
.curve(points.DCp1, points.A, points.A)
.close();
macro("vd", {
from: points.A,
to: points.B,
x: points.A.x - 15
});
macro("hd", {
from: points.B,
to: points.C,
y: points.B.y + 15
});
macro("ld", {
from: points.C,
to: points.D,
d: -15
});
macro("ld", {
from: points.C,
to: points.D,
d: -30,
text: "Custom text"
});
macro("pd", {
path: new Path().move(points.A).curve(points.A, points.DCp1, points.D),
d: -15
});
```
<Tip>
The dimension plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-dimension
```
## 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 dimension from "@freesewing/plugin-dimension";
import config from "../config";
const Pattern = new freesewing.Design(config, dimension);
```
Now you can use the following macros in your parts:
- [hd](/reference/macros/hd/)
- [vd](/reference/macros/vd/)
- [ld](/reference/macros/ld/)
- [pd](/reference/macros/pd/)

View file

@ -0,0 +1,9 @@
---
title: Plugins
for: developers
about: Complete list of all the plugins available for FreeSewing core
---
The following FreeSewing plugins are available:
<ReadMore list />

View file

@ -0,0 +1,5 @@
---
title: Plugins
---
<ReadMore root='reference/plugins' />

View file

@ -0,0 +1,33 @@
---
title: flip
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-flip) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-flip](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip)
The **flip** plugin provides [the flip macro](/refernce/macros/flip/) which flips (mirrors) an entire part vertically around the Y-axis.
```js
let { macro } = part.shorthand();
macro("flip");
```
## Installation
```bash
npm install @freesewing/plugin-flip
```
## 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 flip from "@freesewing/plugin-flip";
import config from "../config";
const Pattern = new freesewing.Design(config, flip);
```
Now you can use [the flip macro](/reference/macros/flip) in your parts.

View file

@ -0,0 +1,40 @@
---
title: flip
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-flip)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-flip](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip)
The **flip** plugin provides [the flip macro](/reference/macros/flip/) which flips (mirrors) an entire part vertically around the Y-axis.
```js
let { macro } = part.shorthand();
macro("flip");
```
## Installation
```bash
npm install @freesewing/plugin-flip
```
## 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 flip from "@freesewing/plugin-flip";
import config from "../config";
const Pattern = new freesewing.Design(config, flip);
```
Now you can use [the flip macro](/reference/macros/flip) in your parts.

View file

@ -0,0 +1,33 @@
---
title: flip
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-flip) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-flip](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip)
The **flip** plugin provides [the flip macro](/refernce/macros/flip/) which flips (mirrors) an entire part vertically around the Y-axis.
```js
let { macro } = part.shorthand();
macro("flip");
```
## Installation
```bash
npm install @freesewing/plugin-flip
```
## 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 flip from "@freesewing/plugin-flip";
import config from "../config";
const Pattern = new freesewing.Design(config, flip);
```
Now you can use [the flip macro](/reference/macros/flip) in your parts.

View file

@ -0,0 +1,33 @@
---
title: flip
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-flip) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-flip](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip)
The **flip** plugin provides [the flip macro](/refernce/macros/flip/) which flips (mirrors) an entire part vertically around the Y-axis.
```js
let { macro } = part.shorthand();
macro("flip");
```
## Installation
```bash
npm install @freesewing/plugin-flip
```
## 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 flip from "@freesewing/plugin-flip";
import config from "../config";
const Pattern = new freesewing.Design(config, flip);
```
Now you can use [the flip macro](/reference/macros/flip) in your parts.

View file

@ -0,0 +1,33 @@
---
title: flip
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-flip) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-flip](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip)
The **flip** plugin provides [the flip macro](/refernce/macros/flip/) which flips (mirrors) an entire part vertically around the Y-axis.
```js
let { macro } = part.shorthand();
macro("flip");
```
## Installation
```bash
npm install @freesewing/plugin-flip
```
## 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 flip from "@freesewing/plugin-flip";
import config from "../config";
const Pattern = new freesewing.Design(config, flip);
```
Now you can use [the flip macro](/reference/macros/flip) in your parts.

View file

@ -0,0 +1,5 @@
---
title: Plugins
---
<ReadMore root='reference/plugins' />

View file

@ -0,0 +1,47 @@
---
title: grainline
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-grainline.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-grainline) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-grainline](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-grainline.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-grainline)
The **grainline** plugin provides [the grainline macro](/reference/macros/grainline/):
<Example part="plugin_grainline" caption="An example of the grainline macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.grainlineFrom = new Point(10, 10);
points.grainlineTo = new Point(100, 10);
macro("grainline", {
from: points.grainlineFrom,
to: points.grainlineTo
});
```
<Tip>
The grainline plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-grainline
```
## 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 grainline from "@freesewing/plugin-grainline";
import config from "../config";
const Pattern = new freesewing.Design(config, grainline);
```
Now you can use [the grainline macro](/reference/macros/grainline) in your parts.

View file

@ -0,0 +1,54 @@
---
title: grainline
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-grainline.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-grainline)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-grainline](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-grainline.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-grainline)
The **grainline** plugin provides [the grainline macro](/reference/macros/grainline/):
<Example part="plugin_grainline" caption="An example of the grainline macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.grainlineFrom = new Point(10, 10);
points.grainlineTo = new Point(100, 10);
macro("grainline", {
from: points.grainlineFrom,
to: points.grainlineTo
});
```
<Tip>
The grainline plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-grainline
```
## 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 grainline from "@freesewing/plugin-grainline";
import config from "../config";
const Pattern = new freesewing.Design(config, grainline);
```
Now you can use [the grainline macro](/reference/macros/grainline) in your parts.

View file

@ -0,0 +1,47 @@
---
title: grainline
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-grainline.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-grainline) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-grainline](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-grainline.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-grainline)
The **grainline** plugin provides [the grainline macro](/reference/macros/grainline/):
<Example part="plugin_grainline" caption="An example of the grainline macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.grainlineFrom = new Point(10, 10);
points.grainlineTo = new Point(100, 10);
macro("grainline", {
from: points.grainlineFrom,
to: points.grainlineTo
});
```
<Tip>
The grainline plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-grainline
```
## 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 grainline from "@freesewing/plugin-grainline";
import config from "../config";
const Pattern = new freesewing.Design(config, grainline);
```
Now you can use [the grainline macro](/reference/macros/grainline) in your parts.

View file

@ -0,0 +1,47 @@
---
title: grainline
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-grainline.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-grainline) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-grainline](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-grainline.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-grainline)
The **grainline** plugin provides [the grainline macro](/reference/macros/grainline/):
<Example part="plugin_grainline" caption="An example of the grainline macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.grainlineFrom = new Point(10, 10);
points.grainlineTo = new Point(100, 10);
macro("grainline", {
from: points.grainlineFrom,
to: points.grainlineTo
});
```
<Tip>
The grainline plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-grainline
```
## 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 grainline from "@freesewing/plugin-grainline";
import config from "../config";
const Pattern = new freesewing.Design(config, grainline);
```
Now you can use [the grainline macro](/reference/macros/grainline) in your parts.

View file

@ -0,0 +1,47 @@
---
title: grainline
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-grainline.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-grainline) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-grainline](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-grainline.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-grainline)
The **grainline** plugin provides [the grainline macro](/reference/macros/grainline/):
<Example part="plugin_grainline" caption="An example of the grainline macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.grainlineFrom = new Point(10, 10);
points.grainlineTo = new Point(100, 10);
macro("grainline", {
from: points.grainlineFrom,
to: points.grainlineTo
});
```
<Tip>
The grainline plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-grainline
```
## 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 grainline from "@freesewing/plugin-grainline";
import config from "../config";
const Pattern = new freesewing.Design(config, grainline);
```
Now you can use [the grainline macro](/reference/macros/grainline) in your parts.

View file

@ -0,0 +1,55 @@
---
title: i18n
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-pink.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-i18n) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-i18n](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n)
The **i18n** plugin provides translation for your pattern:
<Example part="path_attr" caption="An example in English" design={false} options={{locale: 'en'}} /> <Example part="path_attr" caption="An example in French" design={false} options={{locale: 'fr'}} />
It uses the [`insertText`](/plugins#inserttext) hook to do so.
<Note>
This plugin provides the mechanism for translation, but does not come with translations itself.
For this, you can use our [i18n package](/reference/packages/i18n).
</Note>
## Installation
```bash
npm install @freesewing/plugin-i18n
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { strings: translations });
```
You should also pass a second argument which holds your translations. It should be structured as such:
```js
{
strings:
en: {
example: "Example"
},
nl: {
example: "Voorbeeld"
},
// More languages can follow
}
}
```

View file

@ -0,0 +1,64 @@
---
title: i18n
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-pink.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-i18n)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-i18n](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n)
The **i18n** plugin provides translation for your pattern:
<Example part="path_attr" caption="An example in English" design={false} options={{locale: 'en'}} />
<Example part="path_attr" caption="An example in French" design={false} options={{locale: 'fr'}} />
It uses the [`insertText`](/plugins#inserttext) hook to do so.
<Note>
This plugin provides the mechanism for translation, but does not come with translations itself.
For this, you can use our [i18n package](/reference/packages/i18n).
</Note>
## Installation
```bash
npm install @freesewing/plugin-i18n
```
## 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 aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const pattern = new aaron()
.use(i18nPlugin, { strings: translations });
```
You should also pass a second argument which holds your translations.
It should be structured as such:
```js
{
strings:
en: {
example: "Example"
},
nl: {
example: "Voorbeeld"
},
// More languages can follow
}
}
```

View file

@ -0,0 +1,55 @@
---
title: i18n
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-pink.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-i18n) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-i18n](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n)
The **i18n** plugin provides translation for your pattern:
<Example part="path_attr" caption="An example in English" design={false} options={{locale: 'en'}} /> <Example part="path_attr" caption="An example in French" design={false} options={{locale: 'fr'}} />
It uses the [`insertText`](/plugins#inserttext) hook to do so.
<Note>
This plugin provides the mechanism for translation, but does not come with translations itself.
For this, you can use our [i18n package](/reference/packages/i18n).
</Note>
## Installation
```bash
npm install @freesewing/plugin-i18n
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { strings: translations });
```
You should also pass a second argument which holds your translations. It should be structured as such:
```js
{
strings:
en: {
example: "Example"
},
nl: {
example: "Voorbeeld"
},
// More languages can follow
}
}
```

View file

@ -0,0 +1,55 @@
---
title: i18n
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-pink.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-i18n) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-i18n](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n)
The **i18n** plugin provides translation for your pattern:
<Example part="path_attr" caption="An example in English" design={false} options={{locale: 'en'}} /> <Example part="path_attr" caption="An example in French" design={false} options={{locale: 'fr'}} />
It uses the [`insertText`](/plugins#inserttext) hook to do so.
<Note>
This plugin provides the mechanism for translation, but does not come with translations itself.
For this, you can use our [i18n package](/reference/packages/i18n).
</Note>
## Installation
```bash
npm install @freesewing/plugin-i18n
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { strings: translations });
```
You should also pass a second argument which holds your translations. It should be structured as such:
```js
{
strings:
en: {
example: "Example"
},
nl: {
example: "Voorbeeld"
},
// More languages can follow
}
}
```

View file

@ -0,0 +1,55 @@
---
title: i18n
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-pink.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-i18n) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-i18n](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n)
The **i18n** plugin provides translation for your pattern:
<Example part="path_attr" caption="An example in English" design={false} options={{locale: 'en'}} /> <Example part="path_attr" caption="An example in French" design={false} options={{locale: 'fr'}} />
It uses the [`insertText`](/plugins#inserttext) hook to do so.
<Note>
This plugin provides the mechanism for translation, but does not come with translations itself.
For this, you can use our [i18n package](/reference/packages/i18n).
</Note>
## Installation
```bash
npm install @freesewing/plugin-i18n
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { strings: translations });
```
You should also pass a second argument which holds your translations. It should be structured as such:
```js
{
strings:
en: {
example: "Example"
},
nl: {
example: "Voorbeeld"
},
// More languages can follow
}
}
```

View file

@ -0,0 +1,40 @@
---
title: logo
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-logo.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-logo) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-logo](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-logo.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-logo)
The **logo** plugin provides [the logo snippet](/reference/snippets/):
<Example part="plugin_logo" caption="An example of the logo snippet" design={false} />
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.logo = new Snippet("logo", new Point(50, 30));
```
<Tip>
The logo plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-logo
```
## 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 logo from "@freesewing/plugin-logo";
import config from "../config";
const Pattern = new freesewing.Design(config, logo);
```

View file

@ -0,0 +1,47 @@
---
title: logo
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-logo.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-logo)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-logo](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-logo.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-logo)
The **logo** plugin provides [the logo snippet](/reference/snippets/):
<Example part="plugin_logo" caption="An example of the logo snippet" design={false} />
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.logo = new Snippet("logo", new Point(50, 30));
```
<Tip>
The logo plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-logo
```
## 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 logo from "@freesewing/plugin-logo";
import config from "../config";
const Pattern = new freesewing.Design(config, logo);
```

View file

@ -0,0 +1,40 @@
---
title: logo
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-logo.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-logo) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-logo](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-logo.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-logo)
The **logo** plugin provides [the logo snippet](/reference/snippets/):
<Example part="plugin_logo" caption="An example of the logo snippet" design={false} />
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.logo = new Snippet("logo", new Point(50, 30));
```
<Tip>
The logo plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-logo
```
## 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 logo from "@freesewing/plugin-logo";
import config from "../config";
const Pattern = new freesewing.Design(config, logo);
```

View file

@ -0,0 +1,40 @@
---
title: logo
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-logo.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-logo) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-logo](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-logo.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-logo)
The **logo** plugin provides [the logo snippet](/reference/snippets/):
<Example part="plugin_logo" caption="An example of the logo snippet" design={false} />
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.logo = new Snippet("logo", new Point(50, 30));
```
<Tip>
The logo plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-logo
```
## 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 logo from "@freesewing/plugin-logo";
import config from "../config";
const Pattern = new freesewing.Design(config, logo);
```

View file

@ -0,0 +1,40 @@
---
title: logo
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-logo.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-logo) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-logo](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-logo.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-logo)
The **logo** plugin provides [the logo snippet](/reference/snippets/):
<Example part="plugin_logo" caption="An example of the logo snippet" design={false} />
```js
let { Point, snippets, Snippet } = part.shorthand();
snippets.logo = new Snippet("logo", new Point(50, 30));
```
<Tip>
The logo plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-logo
```
## 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 logo from "@freesewing/plugin-logo";
import config from "../config";
const Pattern = new freesewing.Design(config, logo);
```

View file

@ -0,0 +1,36 @@
---
title: mirror
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-mirror.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-mirror)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-mirror](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-mirror.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-mirror)
The [@freesewing/plugin-mirror](/reference/packages/plugin-mirror) packages provides a plugin to help mirror points and/or paths around a given mirror line.
## Installation
```bash
npm install @freesewing/plugin-mirror
```
## 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 mirror from "@freesewing/plugin-mirror";
import config from "../config";
const Pattern = new freesewing.Design(config, mirror);
```
Now you can use [the mirror macro](/reference/macros/mirror) in your parts.

View file

@ -0,0 +1,5 @@
---
title: Plugins
---
<ReadMore root='reference/plugins' />

View file

@ -0,0 +1,76 @@
---
title: round
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-round) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-round](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round)
The **round** plugin provides [the round macro](/reference/macros/round/):
<Example part="plugin_round" caption="An example of the round macro" design={false} />
```js
points.topLeft = new Point(0, 0);
points.bottomLeft = new Point(0, 30);
points.topRight = new Point(100, 0);
points.bottomRight = new Point(100, 30);
paths.demo = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.close()
.attr("class", "note dashed");
macro("round", {
from: points.topLeft,
to: points.bottomRight,
via: points.bottomLeft,
radius: 10,
prefix: 'bl',
render: true
});
macro("round", {
from: points.bottomRight,
to: points.topLeft,
via: points.topRight,
radius: 20,
prefix: 'tr',
render: true
});
```
<Tip>
The round plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-round
```
## 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 round from "@freesewing/plugin-round";
import config from "../config";
const Pattern = new freesewing.Design(config, round);
```
Now you can use [the round macro](/reference/macros/round/): in your parts.
<Warning>
The round macro is intended for rounding 90° angles
</Warning>

View file

@ -0,0 +1,81 @@
---
title: round
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-round)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-round](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round)
The **round** plugin provides [the round macro](/reference/macros/round/):
<Example part="plugin_round" caption="An example of the round macro" design={false} />
```js
points.topLeft = new Point(0, 0);
points.bottomLeft = new Point(0, 30);
points.topRight = new Point(100, 0);
points.bottomRight = new Point(100, 30);
paths.demo = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.close()
.attr("class", "note dashed");
macro("round", {
from: points.topLeft,
to: points.bottomRight,
via: points.bottomLeft,
radius: 10,
prefix: 'bl',
render: true
});
macro("round", {
from: points.bottomRight,
to: points.topLeft,
via: points.topRight,
radius: 20,
prefix: 'tr',
render: true
});
```
<Tip>
The round plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-round
```
## 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 round from "@freesewing/plugin-round";
import config from "../config";
const Pattern = new freesewing.Design(config, round);
```
Now you can use [the round macro](/reference/macros/round/): in your parts.
<Warning>
The round macro is intended for rounding 90° angles
</Warning>

View file

@ -0,0 +1,76 @@
---
title: round
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-round) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-round](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round)
The **round** plugin provides [the round macro](/reference/macros/round/):
<Example part="plugin_round" caption="An example of the round macro" design={false} />
```js
points.topLeft = new Point(0, 0);
points.bottomLeft = new Point(0, 30);
points.topRight = new Point(100, 0);
points.bottomRight = new Point(100, 30);
paths.demo = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.close()
.attr("class", "note dashed");
macro("round", {
from: points.topLeft,
to: points.bottomRight,
via: points.bottomLeft,
radius: 10,
prefix: 'bl',
render: true
});
macro("round", {
from: points.bottomRight,
to: points.topLeft,
via: points.topRight,
radius: 20,
prefix: 'tr',
render: true
});
```
<Tip>
The round plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-round
```
## 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 round from "@freesewing/plugin-round";
import config from "../config";
const Pattern = new freesewing.Design(config, round);
```
Now you can use [the round macro](/reference/macros/round/): in your parts.
<Warning>
The round macro is intended for rounding 90° angles
</Warning>

View file

@ -0,0 +1,76 @@
---
title: round
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-round) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-round](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round)
The **round** plugin provides [the round macro](/reference/macros/round/):
<Example part="plugin_round" caption="An example of the round macro" design={false} />
```js
points.topLeft = new Point(0, 0);
points.bottomLeft = new Point(0, 30);
points.topRight = new Point(100, 0);
points.bottomRight = new Point(100, 30);
paths.demo = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.close()
.attr("class", "note dashed");
macro("round", {
from: points.topLeft,
to: points.bottomRight,
via: points.bottomLeft,
radius: 10,
prefix: 'bl',
render: true
});
macro("round", {
from: points.bottomRight,
to: points.topLeft,
via: points.topRight,
radius: 20,
prefix: 'tr',
render: true
});
```
<Tip>
The round plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-round
```
## 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 round from "@freesewing/plugin-round";
import config from "../config";
const Pattern = new freesewing.Design(config, round);
```
Now you can use [the round macro](/reference/macros/round/): in your parts.
<Warning>
The round macro is intended for rounding 90° angles
</Warning>

View file

@ -0,0 +1,76 @@
---
title: round
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-round) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-round](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round)
The **round** plugin provides [the round macro](/reference/macros/round/):
<Example part="plugin_round" caption="An example of the round macro" design={false} />
```js
points.topLeft = new Point(0, 0);
points.bottomLeft = new Point(0, 30);
points.topRight = new Point(100, 0);
points.bottomRight = new Point(100, 30);
paths.demo = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.close()
.attr("class", "note dashed");
macro("round", {
from: points.topLeft,
to: points.bottomRight,
via: points.bottomLeft,
radius: 10,
prefix: 'bl',
render: true
});
macro("round", {
from: points.bottomRight,
to: points.topLeft,
via: points.topRight,
radius: 20,
prefix: 'tr',
render: true
});
```
<Tip>
The round plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-round
```
## 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 round from "@freesewing/plugin-round";
import config from "../config";
const Pattern = new freesewing.Design(config, round);
```
Now you can use [the round macro](/reference/macros/round/): in your parts.
<Warning>
The round macro is intended for rounding 90° angles
</Warning>

View file

@ -0,0 +1,53 @@
---
title: scalebox
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-scalebox.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-scalebox) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-scalebox](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-scalebox.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-scalebox)
The **scalebox** plugin provides [the scalebox macro](/reference/macros/scalebox/):
<Example part="plugin_scalebox" caption="An example of the scalebox" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.anchor = new Point(0, 0);
macro("scalebox", {
at: points.anchor
});
```
<Note>
###### Purpose of a scale box
A scalebox allows people to verify the pattern is printed at the correct scale
</Note>
<Tip>
The scalebox plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-scalebox
```
## 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 scalebox from "@freesewing/plugin-scalebox";
import config from "../config";
const Pattern = new freesewing.Design(config, scalebox);
```
Now you can use [the scalebox macro](/reference/macros/scalebox/) the macro in your parts.

View file

@ -0,0 +1,60 @@
---
title: scalebox
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-scalebox.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-scalebox)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-scalebox](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-scalebox.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-scalebox)
The **scalebox** plugin provides [the scalebox macro](/reference/macros/scalebox/):
<Example part="plugin_scalebox" caption="An example of the scalebox" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.anchor = new Point(0, 0);
macro("scalebox", {
at: points.anchor
});
```
<Note>
###### Purpose of a scale box
A scalebox allows people to verify the pattern is printed at the correct scale
</Note>
<Tip>
The scalebox plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-scalebox
```
## 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 scalebox from "@freesewing/plugin-scalebox";
import config from "../config";
const Pattern = new freesewing.Design(config, scalebox);
```
Now you can use [the scalebox macro](/reference/macros/scalebox/) the macro in your parts.

View file

@ -0,0 +1,53 @@
---
title: scalebox
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-scalebox.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-scalebox) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-scalebox](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-scalebox.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-scalebox)
The **scalebox** plugin provides [the scalebox macro](/reference/macros/scalebox/):
<Example part="plugin_scalebox" caption="An example of the scalebox" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.anchor = new Point(0, 0);
macro("scalebox", {
at: points.anchor
});
```
<Note>
###### Purpose of a scale box
A scalebox allows people to verify the pattern is printed at the correct scale
</Note>
<Tip>
The scalebox plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-scalebox
```
## 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 scalebox from "@freesewing/plugin-scalebox";
import config from "../config";
const Pattern = new freesewing.Design(config, scalebox);
```
Now you can use [the scalebox macro](/reference/macros/scalebox/) the macro in your parts.

View file

@ -0,0 +1,53 @@
---
title: scalebox
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-scalebox.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-scalebox) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-scalebox](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-scalebox.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-scalebox)
The **scalebox** plugin provides [the scalebox macro](/reference/macros/scalebox/):
<Example part="plugin_scalebox" caption="An example of the scalebox" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.anchor = new Point(0, 0);
macro("scalebox", {
at: points.anchor
});
```
<Note>
###### Purpose of a scale box
A scalebox allows people to verify the pattern is printed at the correct scale
</Note>
<Tip>
The scalebox plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-scalebox
```
## 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 scalebox from "@freesewing/plugin-scalebox";
import config from "../config";
const Pattern = new freesewing.Design(config, scalebox);
```
Now you can use [the scalebox macro](/reference/macros/scalebox/) the macro in your parts.

View file

@ -0,0 +1,53 @@
---
title: scalebox
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-scalebox.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-scalebox) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-scalebox](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-scalebox.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-scalebox)
The **scalebox** plugin provides [the scalebox macro](/reference/macros/scalebox/):
<Example part="plugin_scalebox" caption="An example of the scalebox" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.anchor = new Point(0, 0);
macro("scalebox", {
at: points.anchor
});
```
<Note>
###### Purpose of a scale box
A scalebox allows people to verify the pattern is printed at the correct scale
</Note>
<Tip>
The scalebox plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-scalebox
```
## 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 scalebox from "@freesewing/plugin-scalebox";
import config from "../config";
const Pattern = new freesewing.Design(config, scalebox);
```
Now you can use [the scalebox macro](/reference/macros/scalebox/) the macro in your parts.

View file

@ -0,0 +1,54 @@
---
title: sprinkle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-sprinkle) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-sprinkle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle)
The **sprinkle** plugin provides [the sprinkle macro](/reference/macros/sprinkle/):
<Example part="plugin_sprinkle" caption="An example of the sprinkle macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.a = new Point(10, 10);
points.b = new Point(20, 15);
points.c = new Point(30, 10);
points.d = new Point(40, 15);
points.e = new Point(50, 10);
points.f = new Point(60, 15);
points.g = new Point(70, 10);
points.h = new Point(80, 15);
points.i = new Point(90, 10);
macro("sprinkle", {
snippet: "button",
on: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
});
```
<Tip>
The sprinkle plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-sprinkle
```
## 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 sprinkle from "@freesewing/plugin-sprinkle";
import config from "../config";
const Pattern = new freesewing.Design(config, sprinkle);
```
Now you can use [the sprinkle macro](/reference/macros/sprinkle/) in your parts.

View file

@ -0,0 +1,61 @@
---
title: sprinkle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-sprinkle)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-sprinkle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle)
The **sprinkle** plugin provides [the sprinkle macro](/reference/macros/sprinkle/):
<Example part="plugin_sprinkle" caption="An example of the sprinkle macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.a = new Point(10, 10);
points.b = new Point(20, 15);
points.c = new Point(30, 10);
points.d = new Point(40, 15);
points.e = new Point(50, 10);
points.f = new Point(60, 15);
points.g = new Point(70, 10);
points.h = new Point(80, 15);
points.i = new Point(90, 10);
macro("sprinkle", {
snippet: "button",
on: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
});
```
<Tip>
The sprinkle plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-sprinkle
```
## 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 sprinkle from "@freesewing/plugin-sprinkle";
import config from "../config";
const Pattern = new freesewing.Design(config, sprinkle);
```
Now you can use [the sprinkle macro](/reference/macros/sprinkle/) in your parts.

View file

@ -0,0 +1,54 @@
---
title: sprinkle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-sprinkle) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-sprinkle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle)
The **sprinkle** plugin provides [the sprinkle macro](/reference/macros/sprinkle/):
<Example part="plugin_sprinkle" caption="An example of the sprinkle macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.a = new Point(10, 10);
points.b = new Point(20, 15);
points.c = new Point(30, 10);
points.d = new Point(40, 15);
points.e = new Point(50, 10);
points.f = new Point(60, 15);
points.g = new Point(70, 10);
points.h = new Point(80, 15);
points.i = new Point(90, 10);
macro("sprinkle", {
snippet: "button",
on: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
});
```
<Tip>
The sprinkle plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-sprinkle
```
## 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 sprinkle from "@freesewing/plugin-sprinkle";
import config from "../config";
const Pattern = new freesewing.Design(config, sprinkle);
```
Now you can use [the sprinkle macro](/reference/macros/sprinkle/) in your parts.

View file

@ -0,0 +1,54 @@
---
title: sprinkle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-sprinkle) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-sprinkle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle)
The **sprinkle** plugin provides [the sprinkle macro](/reference/macros/sprinkle/):
<Example part="plugin_sprinkle" caption="An example of the sprinkle macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.a = new Point(10, 10);
points.b = new Point(20, 15);
points.c = new Point(30, 10);
points.d = new Point(40, 15);
points.e = new Point(50, 10);
points.f = new Point(60, 15);
points.g = new Point(70, 10);
points.h = new Point(80, 15);
points.i = new Point(90, 10);
macro("sprinkle", {
snippet: "button",
on: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
});
```
<Tip>
The sprinkle plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-sprinkle
```
## 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 sprinkle from "@freesewing/plugin-sprinkle";
import config from "../config";
const Pattern = new freesewing.Design(config, sprinkle);
```
Now you can use [the sprinkle macro](/reference/macros/sprinkle/) in your parts.

View file

@ -0,0 +1,54 @@
---
title: sprinkle
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-sprinkle) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-sprinkle](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle)
The **sprinkle** plugin provides [the sprinkle macro](/reference/macros/sprinkle/):
<Example part="plugin_sprinkle" caption="An example of the sprinkle macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.a = new Point(10, 10);
points.b = new Point(20, 15);
points.c = new Point(30, 10);
points.d = new Point(40, 15);
points.e = new Point(50, 10);
points.f = new Point(60, 15);
points.g = new Point(70, 10);
points.h = new Point(80, 15);
points.i = new Point(90, 10);
macro("sprinkle", {
snippet: "button",
on: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
});
```
<Tip>
The sprinkle plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-sprinkle
```
## 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 sprinkle from "@freesewing/plugin-sprinkle";
import config from "../config";
const Pattern = new freesewing.Design(config, sprinkle);
```
Now you can use [the sprinkle macro](/reference/macros/sprinkle/) in your parts.

View file

@ -0,0 +1,32 @@
---
title: svgattr
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-svgattr) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-svgattr](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr)
The **svgattr** plugin takes an object of key-value pairs and adds them to the SVG tag on render.
It uses the [`preRender`](/plugins#preRender) hook to do so.
## Installation
```bash
npm install @freesewing/plugin-svgattr
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { class: "freesewing draft" });
```
You should pass a second argument which holds key-value pairs of the attributes you want to add to the SVG tag.

View file

@ -0,0 +1,39 @@
---
title: svgattr
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-svgattr)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-svgattr](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr)
The **svgattr** plugin takes an object of key-value pairs and adds them to the SVG tag on render.
It uses the [`preRender`](/plugins#preRender) hook to do so.
## Installation
```bash
npm install @freesewing/plugin-svgattr
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { class: "freesewing draft" });
```
You should pass a second argument which holds key-value pairs of the attributes you want to add to the SVG tag.

View file

@ -0,0 +1,32 @@
---
title: svgattr
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-svgattr) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-svgattr](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr)
The **svgattr** plugin takes an object of key-value pairs and adds them to the SVG tag on render.
It uses the [`preRender`](/plugins#preRender) hook to do so.
## Installation
```bash
npm install @freesewing/plugin-svgattr
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { class: "freesewing draft" });
```
You should pass a second argument which holds key-value pairs of the attributes you want to add to the SVG tag.

View file

@ -0,0 +1,32 @@
---
title: svgattr
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-svgattr) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-svgattr](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr)
The **svgattr** plugin takes an object of key-value pairs and adds them to the SVG tag on render.
It uses the [`preRender`](/plugins#preRender) hook to do so.
## Installation
```bash
npm install @freesewing/plugin-svgattr
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { class: "freesewing draft" });
```
You should pass a second argument which holds key-value pairs of the attributes you want to add to the SVG tag.

View file

@ -0,0 +1,32 @@
---
title: svgattr
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-svgattr) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-svgattr](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr)
The **svgattr** plugin takes an object of key-value pairs and adds them to the SVG tag on render.
It uses the [`preRender`](/plugins#preRender) hook to do so.
## Installation
```bash
npm install @freesewing/plugin-svgattr
```
## 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 Aaron from "@freesewing/aaron";
import i18n from "@freesewing/plugin-i18n";
import translations from "@freesewing/i18n";
const myAaron = new Aaron()
.use(i18nPlugin, { class: "freesewing draft" });
```
You should pass a second argument which holds key-value pairs of the attributes you want to add to the SVG tag.

View file

@ -0,0 +1,37 @@
---
title: theme
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-theme) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-theme](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme)
The **theme** plugin provides CSS styling for SVG output:
<Example pattern="rendertest" part="test" caption="An example of the styles provided by this plugin" design={false} />
It uses the [`preRender`](/plugins#prerender) hook to do so.
<Note>
This plugin only applies to rendered SVG output. If you use our React component to display
patterns, you should style our component or use our [css-theme](/reference/packages/css-theme) package.
</Note>
## Installation
```bash
npm install @freesewing/plugin-theme
```
## 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 Aaron from "@freesewing/aaron";
import theme from "@freesewing/plugin-theme";
const myAaron = new Aaron()
.use(theme);
```

View file

@ -0,0 +1,44 @@
---
title: theme
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-theme)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-theme](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme)
The **theme** plugin provides CSS styling for SVG output:
<Example pattern="rendertest" part="test" caption="An example of the styles provided by this plugin" design={false} />
It uses the [`preRender`](/plugins#prerender) hook to do so.
<Note>
This plugin only applies to rendered SVG output. If you use our React component to display
patterns, you should style our component or use our [css-theme](/reference/packages/css-theme) package.
</Note>
## Installation
```bash
npm install @freesewing/plugin-theme
```
## 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 Aaron from "@freesewing/aaron";
import theme from "@freesewing/plugin-theme";
const myAaron = new Aaron()
.use(theme);
```

View file

@ -0,0 +1,37 @@
---
title: theme
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-theme) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-theme](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme)
The **theme** plugin provides CSS styling for SVG output:
<Example pattern="rendertest" part="test" caption="An example of the styles provided by this plugin" design={false} />
It uses the [`preRender`](/plugins#prerender) hook to do so.
<Note>
This plugin only applies to rendered SVG output. If you use our React component to display
patterns, you should style our component or use our [css-theme](/reference/packages/css-theme) package.
</Note>
## Installation
```bash
npm install @freesewing/plugin-theme
```
## 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 Aaron from "@freesewing/aaron";
import theme from "@freesewing/plugin-theme";
const myAaron = new Aaron()
.use(theme);
```

View file

@ -0,0 +1,37 @@
---
title: theme
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-theme) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-theme](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme)
The **theme** plugin provides CSS styling for SVG output:
<Example pattern="rendertest" part="test" caption="An example of the styles provided by this plugin" design={false} />
It uses the [`preRender`](/plugins#prerender) hook to do so.
<Note>
This plugin only applies to rendered SVG output. If you use our React component to display
patterns, you should style our component or use our [css-theme](/reference/packages/css-theme) package.
</Note>
## Installation
```bash
npm install @freesewing/plugin-theme
```
## 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 Aaron from "@freesewing/aaron";
import theme from "@freesewing/plugin-theme";
const myAaron = new Aaron()
.use(theme);
```

View file

@ -0,0 +1,37 @@
---
title: theme
---
[![Run-time plugin](https://img.shields.io/badge/Type-run--time-lime.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-theme) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-theme](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme)
The **theme** plugin provides CSS styling for SVG output:
<Example pattern="rendertest" part="test" caption="An example of the styles provided by this plugin" design={false} />
It uses the [`preRender`](/plugins#prerender) hook to do so.
<Note>
This plugin only applies to rendered SVG output. If you use our React component to display
patterns, you should style our component or use our [css-theme](/reference/packages/css-theme) package.
</Note>
## Installation
```bash
npm install @freesewing/plugin-theme
```
## 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 Aaron from "@freesewing/aaron";
import theme from "@freesewing/plugin-theme";
const myAaron = new Aaron()
.use(theme);
```

View file

@ -0,0 +1,48 @@
---
title: title
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-title.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-title) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-title](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-title.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-title)
The **title** plugin provides [the title macro](/reference/macros/title/):
<Example part="plugin_title" caption="An example of the title macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.title = new Point(90, 45);
macro("title", {
at: points.title,
nr: 4,
title: "sleeve"
});
```
<Tip>
The title plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-title
```
## 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 title from "@freesewing/plugin-title";
import config from "../config";
const Pattern = new freesewing.Design(config, title);
```
Now you can use [the title macro](/reference/macros/title/) in your parts.

View file

@ -0,0 +1,55 @@
---
title: title
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins)
&nbsp;
[![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-title.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-title)
&nbsp;
[![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256)
&nbsp;
[![Open issues tagged pkg:plugin-title](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-title.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-title)
The **title** plugin provides [the title macro](/reference/macros/title/):
<Example part="plugin_title" caption="An example of the title macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.title = new Point(90, 45);
macro("title", {
at: points.title,
nr: 4,
title: "sleeve"
});
```
<Tip>
The title plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-title
```
## 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 title from "@freesewing/plugin-title";
import config from "../config";
const Pattern = new freesewing.Design(config, title);
```
Now you can use [the title macro](/reference/macros/title/) in your parts.

View file

@ -0,0 +1,48 @@
---
title: title
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-title.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-title) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-title](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-title.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-title)
The **title** plugin provides [the title macro](/reference/macros/title/):
<Example part="plugin_title" caption="An example of the title macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.title = new Point(90, 45);
macro("title", {
at: points.title,
nr: 4,
title: "sleeve"
});
```
<Tip>
The title plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-title
```
## 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 title from "@freesewing/plugin-title";
import config from "../config";
const Pattern = new freesewing.Design(config, title);
```
Now you can use [the title macro](/reference/macros/title/) in your parts.

View file

@ -0,0 +1,48 @@
---
title: title
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-title.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-title) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-title](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-title.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-title)
The **title** plugin provides [the title macro](/reference/macros/title/):
<Example part="plugin_title" caption="An example of the title macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.title = new Point(90, 45);
macro("title", {
at: points.title,
nr: 4,
title: "sleeve"
});
```
<Tip>
The title plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-title
```
## 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 title from "@freesewing/plugin-title";
import config from "../config";
const Pattern = new freesewing.Design(config, title);
```
Now you can use [the title macro](/reference/macros/title/) in your parts.

View file

@ -0,0 +1,48 @@
---
title: title
---
[![Build-time plugin](https://img.shields.io/badge/Type-build--time-purple.svg)](/plugins) &nbsp; [![License: MIT](https://img.shields.io/npm/l/@freesewing/plugin-title.svg?label=License)](https://www.npmjs.com/package/@freesewing/plugin-title) &nbsp; [![Code quality on DeepScan](https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256) &nbsp; [![Open issues tagged pkg:plugin-title](https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-title.svg?label=Issues)](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-title)
The **title** plugin provides [the title macro](/reference/macros/title/):
<Example part="plugin_title" caption="An example of the title macro" design={false} />
```js
let { Point, points, macro } = part.shorthand();
points.title = new Point(90, 45);
macro("title", {
at: points.title,
nr: 4,
title: "sleeve"
});
```
<Tip>
The title plugin is part of our [plugin-bundle](/reference/plugins/bundle)
</Tip>
## Installation
```bash
npm install @freesewing/plugin-title
```
## 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 title from "@freesewing/plugin-title";
import config from "../config";
const Pattern = new freesewing.Design(config, title);
```
Now you can use [the title macro](/reference/macros/title/) in your parts.