chore: Remark linter run
This commit is contained in:
parent
b6dab9f8fa
commit
e6f1189017
164 changed files with 395 additions and 395 deletions
|
@ -13,13 +13,13 @@ that you should take into account while developing your pattern. They are:
|
||||||
## Complete
|
## Complete
|
||||||
|
|
||||||
The [complete](/reference/api/settings#complete) setting is a boolean that is either true or false.
|
The [complete](/reference/api/settings#complete) setting is a boolean that is either true or false.
|
||||||
Its goal is to determine whether we should draft a *complete* pattern, or merely the outline.
|
Its goal is to determine whether we should draft a _complete_ pattern, or merely the outline.
|
||||||
|
|
||||||
## Paperless
|
## Paperless
|
||||||
|
|
||||||
The [paperless](/reference/api/settings#paperless) setting is a boolean that is either true or false.
|
The [paperless](/reference/api/settings#paperless) setting is a boolean that is either true or false.
|
||||||
|
|
||||||
A *paperless* pattern is a pattern that has extra dimensions so users can trace the
|
A _paperless_ pattern is a pattern that has extra dimensions so users can trace the
|
||||||
paper on fabric or paper without having the need to print it.
|
paper on fabric or paper without having the need to print it.
|
||||||
|
|
||||||
## Seam allowance
|
## Seam allowance
|
||||||
|
|
|
@ -17,7 +17,7 @@ Instead, embrace percentages as options.
|
||||||
##### Use the antperson tests
|
##### Use the antperson tests
|
||||||
|
|
||||||
To check how well your pattern scales, you can
|
To check how well your pattern scales, you can
|
||||||
use the *antperson* test by sampling the pattern for 2 models:
|
use the _antperson_ test by sampling the pattern for 2 models:
|
||||||
|
|
||||||
- A model with measurements of avarage person (the person)
|
- A model with measurements of avarage person (the person)
|
||||||
- A model with measurements 1/10th of an average person (the ant)
|
- A model with measurements 1/10th of an average person (the ant)
|
||||||
|
|
|
@ -5,7 +5,7 @@ order: 60
|
||||||
|
|
||||||
Don't insert literal text in your patterns. Instead, insert a key that can then be translated.
|
Don't insert literal text in your patterns. Instead, insert a key that can then be translated.
|
||||||
|
|
||||||
For example, if you want to put *Finish with bias tape* on your pattern, don't be
|
For example, if you want to put _Finish with bias tape_ on your pattern, don't be
|
||||||
tempted to do this:
|
tempted to do this:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|
|
@ -13,7 +13,7 @@ You can find a list of all FreeSewing guides below:
|
||||||
|
|
||||||
Guides tell a story to further your understanding of a specific topic.
|
Guides tell a story to further your understanding of a specific topic.
|
||||||
|
|
||||||
Guides and howtos are on a spectrum with howtos being terse *do-this-then-that* recipes, whereas
|
Guides and howtos are on a spectrum with howtos being terse _do-this-then-that_ recipes, whereas
|
||||||
guides take more time to explain in-depth what is being done and why.
|
guides take more time to explain in-depth what is being done and why.
|
||||||
|
|
||||||
For more details, refer to [How we structure our documentation](/guides/docs).
|
For more details, refer to [How we structure our documentation](/guides/docs).
|
||||||
|
|
|
@ -4,7 +4,7 @@ order: 90
|
||||||
---
|
---
|
||||||
|
|
||||||
The way we render markdown on our websites is through the use of [MDX](https://mdxjs.com/).\
|
The way we render markdown on our websites is through the use of [MDX](https://mdxjs.com/).\
|
||||||
This allows us to extend Markdown with our own so-called *custom components*.
|
This allows us to extend Markdown with our own so-called _custom components_.
|
||||||
|
|
||||||
Such custom components allow us to put things in Markdown content that would
|
Such custom components allow us to put things in Markdown content that would
|
||||||
typically require a lot more complexity.
|
typically require a lot more complexity.
|
||||||
|
|
|
@ -7,7 +7,7 @@ Some things to keep in mind when working in Markdown are:
|
||||||
|
|
||||||
## Use remark-jargon for glossary terms
|
## Use remark-jargon for glossary terms
|
||||||
|
|
||||||
There is no need to add a *glossary* section to documentation.
|
There is no need to add a _glossary_ section to documentation.
|
||||||
We use a plugin called [remark-jargon][rj] to explain terms.
|
We use a plugin called [remark-jargon][rj] to explain terms.
|
||||||
Information can be found at the link.
|
Information can be found at the link.
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,10 @@ You can make text *italic* or **bold**
|
||||||
by wrapping it in 1 or 2 asterisk respectively.
|
by wrapping it in 1 or 2 asterisk respectively.
|
||||||
```
|
```
|
||||||
|
|
||||||
You can make text *italic* or **bold** by wrapping it in 1 or 2 asterisk respectively:
|
You can make text _italic_ or **bold** by wrapping it in 1 or 2 asterisk respectively:
|
||||||
|
|
||||||
```md
|
```md
|
||||||
Alternatively, you can also use underscores to mark _italic_ or __bold__.
|
Alternatively, you can also use underscores to mark _italic_ or __bold__.
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can also use underscores to mark *italic* or **bold**.
|
Alternatively, you can also use underscores to mark _italic_ or **bold**.
|
||||||
|
|
|
@ -19,7 +19,7 @@ If we look at our image, it can be divided into three areas:
|
||||||
|
|
||||||
- The left area with the **settings** box
|
- The left area with the **settings** box
|
||||||
- The middle area with the **Pattern** box and everything in it
|
- The middle area with the **Pattern** box and everything in it
|
||||||
- The right area with the **draft** box and the *SVG* and *React* logos
|
- The right area with the **draft** box and the _SVG_ and _React_ logos
|
||||||
|
|
||||||
Let's take a closer look at everything that is contained within our central **Pattern** box:
|
Let's take a closer look at everything that is contained within our central **Pattern** box:
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Let's take a closer look at everything that is contained within our central **Pa
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
The left and right parts are all about how to integrate FreeSewing in your *frontend*.
|
The left and right parts are all about how to integrate FreeSewing in your _frontend_.
|
||||||
In other words, how you'll plug it into your website, or online store, or a mobile
|
In other words, how you'll plug it into your website, or online store, or a mobile
|
||||||
application.
|
application.
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Last but not least, we've arrived at the level of the pattern itself.
|
||||||
The pattern is a container that holds all your parts, along with the configuration
|
The pattern is a container that holds all your parts, along with the configuration
|
||||||
and the store.
|
and the store.
|
||||||
|
|
||||||
In reality, your pattern will be a *constructor* that takes the user's settings as
|
In reality, your pattern will be a _constructor_ that takes the user's settings as
|
||||||
input and will return a new instance of your pattern.
|
input and will return a new instance of your pattern.
|
||||||
|
|
||||||
That pattern instance will have a `draft()` method which will do the actual work of
|
That pattern instance will have a `draft()` method which will do the actual work of
|
||||||
|
|
|
@ -52,9 +52,9 @@ const Pattern = new freesewing.Design(
|
||||||
Our condition method will return `true` only if the following conditions are met:
|
Our condition method will return `true` only if the following conditions are met:
|
||||||
|
|
||||||
- A `settings` object is passed into the method
|
- A `settings` object is passed into the method
|
||||||
- `settings.options` is *truthy*
|
- `settings.options` is _truthy_
|
||||||
- `settings.options.draftForHighBust` is *truthy*
|
- `settings.options.draftForHighBust` is _truthy_
|
||||||
- `settings.options.measurements.highBust` is *truthy*
|
- `settings.options.measurements.highBust` is _truthy_
|
||||||
|
|
||||||
This is a real-world example from our Teagan pattern. A t-shirt pattern that can be
|
This is a real-world example from our Teagan pattern. A t-shirt pattern that can be
|
||||||
drafted to the high bust (rather than the full chest circumference) if the user
|
drafted to the high bust (rather than the full chest circumference) if the user
|
||||||
|
|
|
@ -30,7 +30,7 @@ Our [plugin bundle](/reference/plugins/bundle/) bundles build-time plugins that
|
||||||
A plugin is a run-time plugin if it can be added after instantiating your pattern.
|
A plugin is a run-time plugin if it can be added after instantiating your pattern.
|
||||||
Think of it as a plugin to be used in the front-end.
|
Think of it as a plugin to be used in the front-end.
|
||||||
|
|
||||||
Run-time plugins are not a dependecy of the pattern. They just *add something* to it.
|
Run-time plugins are not a dependecy of the pattern. They just _add something_ to it.
|
||||||
|
|
||||||
Our [theme plugin](/reference/plugins/theme/) is a good example of a run-time plugin.
|
Our [theme plugin](/reference/plugins/theme/) is a good example of a run-time plugin.
|
||||||
If it's missing, your pattern will still work, it just won't look pretty.
|
If it's missing, your pattern will still work, it just won't look pretty.
|
||||||
|
|
|
@ -21,13 +21,13 @@ In FreeSewing, we use so-called cubic Bézier curves which have:
|
||||||
An example of a Bézier curve drawn by the Path.curve() method
|
An example of a Bézier curve drawn by the Path.curve() method
|
||||||
</Example>
|
</Example>
|
||||||
|
|
||||||
Bézier curves and their *handles* or *control points* are surprisingly intuitive.
|
Bézier curves and their _handles_ or _control points_ are surprisingly intuitive.
|
||||||
The following illustration does a great job at explaining how they are constructed:
|
The following illustration does a great job at explaining how they are constructed:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
You don't need understand the mathematics behind Bézier Curves.
|
You don't need understand the mathematics behind Bézier Curves.
|
||||||
As long as you intuitively *get* how the control points influence the curve, you're good to go.
|
As long as you intuitively _get_ how the control points influence the curve, you're good to go.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ expect to find the same structure, the same amount of headings, paragraphs and s
|
||||||
|
|
||||||
### Strapi
|
### Strapi
|
||||||
|
|
||||||
Strapi ([strapi.io](https://strapi.io/)) is a so-called *headless content management system (CMS)*.
|
Strapi ([strapi.io](https://strapi.io/)) is a so-called _headless content management system (CMS)_.
|
||||||
Headless just means that we load the content from it via an API, rather than have it be part of our
|
Headless just means that we load the content from it via an API, rather than have it be part of our
|
||||||
website like a classic CMS (eg. Wordpress).
|
website like a classic CMS (eg. Wordpress).
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ about: While documentation is good, sometimes you want to add some instructions
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
Adding instructions to your pattern is *just* a matter of adding text.
|
Adding instructions to your pattern is _just_ a matter of adding text.
|
||||||
The tricky part is to make sure your text can be translated.
|
The tricky part is to make sure your text can be translated.
|
||||||
|
|
||||||
Below is a rather involved example from Aaron:
|
Below is a rather involved example from Aaron:
|
||||||
|
|
|
@ -9,7 +9,7 @@ After using the [shorthand](/howtos/code/shorthand/) call,
|
||||||
`Path` contains the path constructor, while `paths` is a reference to `part.paths`,
|
`Path` contains the path constructor, while `paths` is a reference to `part.paths`,
|
||||||
which is where you should store your paths.
|
which is where you should store your paths.
|
||||||
|
|
||||||
Things will now *just work* when you do this:
|
Things will now _just work_ when you do this:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
paths.example = new Path()
|
paths.example = new Path()
|
||||||
|
|
|
@ -8,7 +8,7 @@ After using the [shorthand](/howtos/code/shorthand/) call,
|
||||||
`Point` contains the point constructor, while `points` is a reference to `part.points`,
|
`Point` contains the point constructor, while `points` is a reference to `part.points`,
|
||||||
which is where you should store your points.
|
which is where you should store your points.
|
||||||
|
|
||||||
Things will now *just work* when you do this:
|
Things will now _just work_ when you do this:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
points.centerBack = new Point(0,0);
|
points.centerBack = new Point(0,0);
|
||||||
|
|
|
@ -8,7 +8,7 @@ After using the [shorthand](/howtos/code/shorthand/) call,
|
||||||
`Snippet` contains the path constructor, while `snippets` is a reference to `part.snippets`,
|
`Snippet` contains the path constructor, while `snippets` is a reference to `part.snippets`,
|
||||||
which is where you should store your paths.
|
which is where you should store your paths.
|
||||||
|
|
||||||
Things will now *just work* when you do this:
|
Things will now _just work_ when you do this:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
snippets.logo = new Snippet('logo', points.logoAnchor);
|
snippets.logo = new Snippet('logo', points.logoAnchor);
|
||||||
|
|
|
@ -16,7 +16,7 @@ paths.example.attributes.add('class', 'lining dashed');
|
||||||
Because it's so common to set attributes, Points, Paths and Snippets all have
|
Because it's so common to set attributes, Points, Paths and Snippets all have
|
||||||
the `attr()` helper method.
|
the `attr()` helper method.
|
||||||
|
|
||||||
Not only is less more, the method is also *chainable*, which allows you to do this:
|
Not only is less more, the method is also _chainable_, which allows you to do this:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
points.message = new Point(0,0)
|
points.message = new Point(0,0)
|
||||||
|
@ -36,7 +36,7 @@ The [adding-text](/concepts/adding-text) documentation explains this in detail.
|
||||||
When rendering, FreeSewing will output all your attributes. This gives you the
|
When rendering, FreeSewing will output all your attributes. This gives you the
|
||||||
possiblity to use any valid attribute to control the appearance.
|
possiblity to use any valid attribute to control the appearance.
|
||||||
|
|
||||||
This is also why we use the *data-* prefix for those attributes that have
|
This is also why we use the _data-_ prefix for those attributes that have
|
||||||
special meaning within FreeSewing, such as `data-text`. Adding a `text` attribute
|
special meaning within FreeSewing, such as `data-text`. Adding a `text` attribute
|
||||||
would result in invalid SVG as there is no such thing as a text attribute. But `data-text`
|
would result in invalid SVG as there is no such thing as a text attribute. But `data-text`
|
||||||
is fine because the `data-` prefix indicates it is a [custom attribute](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/data-*).
|
is fine because the `data-` prefix indicates it is a [custom attribute](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/data-*).
|
||||||
|
|
|
@ -15,7 +15,7 @@ inject: {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The `front` and `back` parts will be *injected* with the `base` part. As a result, both
|
The `front` and `back` parts will be _injected_ with the `base` part. As a result, both
|
||||||
the `front` and `back` parts will be instantiated with a cloned copy of all the points, paths,
|
the `front` and `back` parts will be instantiated with a cloned copy of all the points, paths,
|
||||||
and snippets of the `base` part.
|
and snippets of the `base` part.
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ import { dimensions } from './shared'
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
Since our shared dimension method is a so-called *named export* we need to
|
Since our shared dimension method is a so-called _named export_ we need to
|
||||||
import it with the syntax you see above.
|
import it with the syntax you see above.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
|
@ -12,7 +12,7 @@ about: Shows how to store a seam length so you can true the seam of another part
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
Often when designing patterns, we need to *true a seam* which means to make sure
|
Often when designing patterns, we need to _true a seam_ which means to make sure
|
||||||
that two parts that need to be joined together are the same distance.
|
that two parts that need to be joined together are the same distance.
|
||||||
|
|
||||||
The example below is from Aaron and stores the length of the armhole seam:
|
The example below is from Aaron and stores the length of the armhole seam:
|
||||||
|
|
|
@ -12,7 +12,7 @@ about: Slash and spread is easy enough on paper, here's how to do it in code
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
When we *slash and spread* a pattern, we cut out a triangle, and then rotate it
|
When we _slash and spread_ a pattern, we cut out a triangle, and then rotate it
|
||||||
around the tip of the triangle.
|
around the tip of the triangle.
|
||||||
|
|
||||||
And that's exactly what we do in code. We just need to know:
|
And that's exactly what we do in code. We just need to know:
|
||||||
|
|
|
@ -13,7 +13,7 @@ You can find a list of all FreeSewing hotwtos below:
|
||||||
|
|
||||||
Howtos give your concrete steps to solve a common problem or challenge.
|
Howtos give your concrete steps to solve a common problem or challenge.
|
||||||
|
|
||||||
Guides and howtos are on a spectrum with howtos being terse *do-this-then-that* recipes, whereas
|
Guides and howtos are on a spectrum with howtos being terse _do-this-then-that_ recipes, whereas
|
||||||
guides take more time to explain in-depth what is being done and why.
|
guides take more time to explain in-depth what is being done and why.
|
||||||
|
|
||||||
For more details, refer to [How we structure our documentation](/guides/docs).
|
For more details, refer to [How we structure our documentation](/guides/docs).
|
||||||
|
|
|
@ -11,7 +11,7 @@ you can generate patterns in the browser with a few lines of Javascript.
|
||||||
##### Use FreeSewing.org if you just want a pattern
|
##### Use FreeSewing.org if you just want a pattern
|
||||||
|
|
||||||
These instructions are intended for people who want to generate
|
These instructions are intended for people who want to generate
|
||||||
their own patterns. If you *just want a sewing pattern* you can
|
their own patterns. If you _just want a sewing pattern_ you can
|
||||||
get all our designs on [FreeSewing.org](https://FreeSewing.org/),
|
get all our designs on [FreeSewing.org](https://FreeSewing.org/),
|
||||||
our website for makers.
|
our website for makers.
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ generate a pattern.
|
||||||
##### Use FreeSewing.org if you just want a pattern
|
##### Use FreeSewing.org if you just want a pattern
|
||||||
|
|
||||||
These instructions are intended for people who want to generate
|
These instructions are intended for people who want to generate
|
||||||
their own patterns. If you *just want a sewing pattern* you can
|
their own patterns. If you _just want a sewing pattern_ you can
|
||||||
get all our designs on [FreeSewing.org](https://FreeSewing.org/),
|
get all our designs on [FreeSewing.org](https://FreeSewing.org/),
|
||||||
our website for makers.
|
our website for makers.
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ spending much time to write a meaningful commit message:
|
||||||
git add . && git commit -m "save"
|
git add . && git commit -m "save"
|
||||||
```
|
```
|
||||||
|
|
||||||
The way you can get the best of both worlds is by *rewriting history*.
|
The way you can get the best of both worlds is by _rewriting history_.
|
||||||
Save as many times you want, and when you've gotten to the point where
|
Save as many times you want, and when you've gotten to the point where
|
||||||
you feel like you've hit a good milestone, roll them all back and commit
|
you feel like you've hit a good milestone, roll them all back and commit
|
||||||
anew with a nice commit message that makes it seem you had it all figured
|
anew with a nice commit message that makes it seem you had it all figured
|
||||||
|
|
|
@ -20,7 +20,7 @@ Go ahead and read those, we'll wait.
|
||||||
|
|
||||||
## Good to know
|
## Good to know
|
||||||
|
|
||||||
With that out of the way, here's a few more things that are *good to know*:
|
With that out of the way, here's a few more things that are _good to know_:
|
||||||
|
|
||||||
- Nobody gets paid to work on/for FreeSewing. We are a 100% volunteer organisation.
|
- Nobody gets paid to work on/for FreeSewing. We are a 100% volunteer organisation.
|
||||||
- We have patrons who support us financially, but all the money that comes in goes to charity —
|
- We have patrons who support us financially, but all the money that comes in goes to charity —
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: hide
|
||||||
|
|
||||||
The `hide` key in the pattern configuration file allow you to configure
|
The `hide` key in the pattern configuration file allow you to configure
|
||||||
parts that should be hidden by default.
|
parts that should be hidden by default.
|
||||||
*Hidden* means that they will be drafted, but not rendered. This is
|
_Hidden_ means that they will be drafted, but not rendered. This is
|
||||||
typically used for a base part on which other parts are built.
|
typically used for a base part on which other parts are built.
|
||||||
|
|
||||||
Note that hidden parts will be rendered when the user requests
|
Note that hidden parts will be rendered when the user requests
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: inject
|
||||||
|
|
||||||
The `inject` key in the pattern configuration file allow you to configure
|
The `inject` key in the pattern configuration file allow you to configure
|
||||||
the rules for injecting one part into another.
|
the rules for injecting one part into another.
|
||||||
By *injecting* we mean that rather than starting out with a fresh part,
|
By _injecting_ we mean that rather than starting out with a fresh part,
|
||||||
you'll get a part that has the points, paths, and snippets of the injected part.
|
you'll get a part that has the points, paths, and snippets of the injected part.
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
|
|
|
@ -11,7 +11,7 @@ One of the things that sets FreeSewing apart is that sewing patterns are not
|
||||||
static. Each pattern is generated on the spot to accommodate the input
|
static. Each pattern is generated on the spot to accommodate the input
|
||||||
provided by the user. Input that typically includes their measurments.
|
provided by the user. Input that typically includes their measurments.
|
||||||
|
|
||||||
This *made-to-measure* approach is sort of *our thing* at FreeSewing,
|
This _made-to-measure_ approach is sort of _our thing_ at FreeSewing,
|
||||||
but why stop there?
|
but why stop there?
|
||||||
There's a lot of things that can be left up to the user and taken into
|
There's a lot of things that can be left up to the user and taken into
|
||||||
consideration when drafting the pattern. Things like how many buttons to use,
|
consideration when drafting the pattern. Things like how many buttons to use,
|
||||||
|
|
|
@ -34,13 +34,13 @@ options: {
|
||||||
##### What's wrong with millimeter options?
|
##### What's wrong with millimeter options?
|
||||||
|
|
||||||
Millimeter options do not scale.
|
Millimeter options do not scale.
|
||||||
Parametric design is the *raison d'être* of FreeSewing and that core belief
|
Parametric design is the _raison d'être_ of FreeSewing and that core belief
|
||||||
that things should seamlessly adapt goes out the window when you use a `mm`
|
that things should seamlessly adapt goes out the window when you use a `mm`
|
||||||
option because now you have a value that will not change based on the
|
option because now you have a value that will not change based on the
|
||||||
input measurements.
|
input measurements.
|
||||||
|
|
||||||
You could argue that it's fine because *you can just lower the option*
|
You could argue that it's fine because _you can just lower the option_
|
||||||
but that breaks the principle of *sensible defaults* (aka no surprises).
|
but that breaks the principle of _sensible defaults_ (aka no surprises).
|
||||||
The fact that you can sidestep the bullet does not mean you're not creating
|
The fact that you can sidestep the bullet does not mean you're not creating
|
||||||
a footgun.
|
a footgun.
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: Snapped percentage options
|
||||||
|
|
||||||
Snapped percentage options are a hybrid between [list options][list] and
|
Snapped percentage options are a hybrid between [list options][list] and
|
||||||
[percentage options][pct]. By combining traits of both, they create a
|
[percentage options][pct]. By combining traits of both, they create a
|
||||||
sort of *smart list option* that will select the most appropriate value
|
sort of _smart list option_ that will select the most appropriate value
|
||||||
from the list, and also allow a pure parametric value if no close match
|
from the list, and also allow a pure parametric value if no close match
|
||||||
is found.
|
is found.
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ There are three different scenarios:
|
||||||
|
|
||||||
### snap holds a number
|
### snap holds a number
|
||||||
|
|
||||||
When `snap` holds a number, the option will be *snapped* to a
|
When `snap` holds a number, the option will be _snapped_ to a
|
||||||
multiple of this value.
|
multiple of this value.
|
||||||
|
|
||||||
In the example below, the absolute value of this option will be set to a multiple of `7`
|
In the example below, the absolute value of this option will be set to a multiple of `7`
|
||||||
|
@ -54,7 +54,7 @@ of all possible inputs.
|
||||||
|
|
||||||
### snap holds an array of numbers
|
### snap holds an array of numbers
|
||||||
|
|
||||||
When snap holds an array of numbers, the option will be *snapped* to one of
|
When snap holds an array of numbers, the option will be _snapped_ to one of
|
||||||
the numbers unless it's further away than half the distance to its closest neighbor.
|
the numbers unless it's further away than half the distance to its closest neighbor.
|
||||||
|
|
||||||
In the example below, if the absolute value returned by `toAbs()` is in the
|
In the example below, if the absolute value returned by `toAbs()` is in the
|
||||||
|
@ -151,9 +151,9 @@ We combine approaches A and B and configure a snapped percentage option
|
||||||
with:
|
with:
|
||||||
|
|
||||||
- A percentage based on `waistToFloor`
|
- A percentage based on `waistToFloor`
|
||||||
- Our list of standard elastic widths as *snaps*
|
- Our list of standard elastic widths as _snaps_
|
||||||
|
|
||||||
For typical humans, our options will *snap* to the closest match in our
|
For typical humans, our options will _snap_ to the closest match in our
|
||||||
list and behave just like Approach A (with a list option).
|
list and behave just like Approach A (with a list option).
|
||||||
|
|
||||||
For dolls and giants, the option will revert to the parametric value and
|
For dolls and giants, the option will revert to the parametric value and
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: The advanced option group
|
||||||
---
|
---
|
||||||
|
|
||||||
Naming an option group `advanced` will hide it by default from the user
|
Naming an option group `advanced` will hide it by default from the user
|
||||||
unless they enable *expert mode*.
|
unless they enable _expert mode_.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
|
|
|
@ -35,7 +35,7 @@ const Sorcha = new freesewing.Design(config, plugins)
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
|
|
||||||
This method is a *super-constructor*. It will return a constructor
|
This method is a _super-constructor_. It will return a constructor
|
||||||
method that will become the default export of your design and
|
method that will become the default export of your design and
|
||||||
should be called to instantiate your pattern.
|
should be called to instantiate your pattern.
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ in [our i18n plugin](/reference/plugins/i18n/).
|
||||||
|
|
||||||
## Understanding the insertText hook
|
## Understanding the insertText hook
|
||||||
|
|
||||||
When we say that *this hook is called when text is about to be inserted*, that is a simplified view.
|
When we say that _this hook is called when text is about to be inserted_, that is a simplified view.
|
||||||
In reality, this hook is called:
|
In reality, this hook is called:
|
||||||
|
|
||||||
- For every value set on data-text
|
- For every value set on data-text
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: bartack
|
title: bartack
|
||||||
---
|
---
|
||||||
|
|
||||||
The `bartack` macro allows you to add a *bartack* marker to your sewing pattern.
|
The `bartack` macro allows you to add a _bartack_ marker to your sewing pattern.
|
||||||
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
||||||
|
|
||||||
<Example part="plugin_bartack">
|
<Example part="plugin_bartack">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: bartackAlong
|
title: bartackAlong
|
||||||
---
|
---
|
||||||
|
|
||||||
The `bartackAlong` macro allows you to add a *bartack* marker to your sewing pattern.
|
The `bartackAlong` macro allows you to add a _bartack_ marker to your sewing pattern.
|
||||||
More specifically, a bartack along a path.
|
More specifically, a bartack along a path.
|
||||||
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: bartackFractionAlong
|
title: bartackFractionAlong
|
||||||
---
|
---
|
||||||
|
|
||||||
The `bartackFractionAlong` macro allows you to add a *bartack* marker to your sewing pattern.
|
The `bartackFractionAlong` macro allows you to add a _bartack_ marker to your sewing pattern.
|
||||||
More specifically, a bartack along a fraction of a path.
|
More specifically, a bartack along a fraction of a path.
|
||||||
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
It is provided by the [bartack plugin](/reference/plugins/bartack/).
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: cutonfold
|
title: cutonfold
|
||||||
---
|
---
|
||||||
|
|
||||||
The `cutonfold` macro adds a *cut on fold* indicator to your pattern.\
|
The `cutonfold` macro adds a _cut on fold_ indicator to your pattern.\
|
||||||
It is provided by the [cutonfold plugin](/reference/plugins/cutonfold).
|
It is provided by the [cutonfold plugin](/reference/plugins/cutonfold).
|
||||||
|
|
||||||
<Example part="plugin_cutonfold">
|
<Example part="plugin_cutonfold">
|
||||||
|
@ -19,8 +19,8 @@ macro('cutonfold', {
|
||||||
|
|
||||||
| Property | Default | Type | Description |
|
| Property | Default | Type | Description |
|
||||||
|------------:|---------|---------------------|-------------|
|
|------------:|---------|---------------------|-------------|
|
||||||
| `from` | | [Point](/reference/api/point) | The startpoint of the *cut on fold* indicator |
|
| `from` | | [Point](/reference/api/point) | The startpoint of the _cut on fold_ indicator |
|
||||||
| `to` | | [Point](/reference/api/point) | The endpoint of the *cut on fold* indicator |
|
| `to` | | [Point](/reference/api/point) | The endpoint of the _cut on fold_ indicator |
|
||||||
| `margin` | 5 | [Point](/reference/api/point) | The distance in % to keep from the start/end edge |
|
| `margin` | 5 | [Point](/reference/api/point) | The distance in % to keep from the start/end edge |
|
||||||
| `offset` | 15 | Number | The distance in mm to offset from the line from start to end |
|
| `offset` | 15 | Number | The distance in mm to offset from the line from start to end |
|
||||||
| `grainline` | `false` | Boolean | Whether this cutonfold indicator is also the grainline |
|
| `grainline` | `false` | Boolean | Whether this cutonfold indicator is also the grainline |
|
||||||
|
|
|
@ -22,7 +22,7 @@ macro("gore", {
|
||||||
|--------------:|---------|------------|----------------------------------------------|
|
|--------------:|---------|------------|----------------------------------------------|
|
||||||
| `from` | | [Point][2] | The point to start drafting the gore from |
|
| `from` | | [Point][2] | The point to start drafting the gore from |
|
||||||
| `radius` | | number | The radius of the sphere the gores should cover |
|
| `radius` | | number | The radius of the sphere the gores should cover |
|
||||||
| `gores` | | number | The text to put on the *grainline* indicator |
|
| `gores` | | number | The text to put on the _grainline_ indicator |
|
||||||
| `extraLength` | | number | The length of the straight section after a complete semisphere |
|
| `extraLength` | | number | The length of the straight section after a complete semisphere |
|
||||||
| `render` | `false` | boolean | Whether or not to render the generated path |
|
| `render` | `false` | boolean | Whether or not to render the generated path |
|
||||||
| `class` | | boolean | Any classes to add to the generated path |
|
| `class` | | boolean | Any classes to add to the generated path |
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: grainline
|
title: grainline
|
||||||
---
|
---
|
||||||
|
|
||||||
The `grainline` macro adds a *grainline* indicator to your pattern.\
|
The `grainline` macro adds a _grainline_ indicator to your pattern.\
|
||||||
It is provided by the [grainline plugin](/reference/plugins/grainline/).
|
It is provided by the [grainline plugin](/reference/plugins/grainline/).
|
||||||
|
|
||||||
<Example part="plugin_grainline">
|
<Example part="plugin_grainline">
|
||||||
|
@ -18,8 +18,8 @@ macro("grainline", {
|
||||||
|
|
||||||
| Property | Default | Type | Description |
|
| Property | Default | Type | Description |
|
||||||
|------------:|-------------|------------|----------------------------------------------|
|
|------------:|-------------|------------|----------------------------------------------|
|
||||||
| `from` | | [Point][1] | The startpoint of the *grainline* indicator |
|
| `from` | | [Point][1] | The startpoint of the _grainline_ indicator |
|
||||||
| `to` | | [Point][1] | The endpoint of the *grainline* indicator |
|
| `to` | | [Point][1] | The endpoint of the _grainline_ indicator |
|
||||||
| `text` | 'grainline' | string | The text to put on the *grainline* indicator |
|
| `text` | 'grainline' | string | The text to put on the _grainline_ indicator |
|
||||||
|
|
||||||
[1]: /reference/api/point
|
[1]: /reference/api/point
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: hd
|
title: hd
|
||||||
---
|
---
|
||||||
|
|
||||||
The `hd` macro adds a *horizontal dimension* to your pattern.\
|
The `hd` macro adds a _horizontal dimension_ to your pattern.\
|
||||||
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
||||||
|
|
||||||
<Example part="point_dx">
|
<Example part="point_dx">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: ld
|
title: ld
|
||||||
---
|
---
|
||||||
|
|
||||||
The `ld` macro adds a *linear dimension* to your pattern.\
|
The `ld` macro adds a _linear dimension_ to your pattern.\
|
||||||
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
||||||
|
|
||||||
<Example part="point_dist">
|
<Example part="point_dist">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: miniscale
|
title: miniscale
|
||||||
---
|
---
|
||||||
|
|
||||||
The `miniscale` macro adds a mini *scale box* to your pattern. This box allows
|
The `miniscale` macro adds a mini _scale box_ to your pattern. This box allows
|
||||||
users to verify their pattern is printed to scale.
|
users to verify their pattern is printed to scale.
|
||||||
|
|
||||||
The `miniscale` macro is provided by the [scalebox plugin](/reference/plugins/scalebox).
|
The `miniscale` macro is provided by the [scalebox plugin](/reference/plugins/scalebox).
|
||||||
|
@ -20,5 +20,5 @@ macro('miniscale', {
|
||||||
|
|
||||||
| Property | Default | Type | Description |
|
| Property | Default | Type | Description |
|
||||||
|-------------|---------|---------------------|-------------|
|
|-------------|---------|---------------------|-------------|
|
||||||
| `at` | | [Point](/reference/api/point) | The point to anchor the *scale box* on |
|
| `at` | | [Point](/reference/api/point) | The point to anchor the _scale box_ on |
|
||||||
| `rotate` | 0 | Number | Rotation in degrees |
|
| `rotate` | 0 | Number | Rotation in degrees |
|
||||||
|
|
|
@ -35,7 +35,7 @@ macro('sprinkle', {
|
||||||
|
|
||||||
| Property | Default | Type | Description |
|
| Property | Default | Type | Description |
|
||||||
|-------------:|------------|------------|-------------|
|
|-------------:|------------|------------|-------------|
|
||||||
| `mirror` | | `array` | Array with 2 [Point](/reference/api/point) objects that define the *mirror line* |
|
| `mirror` | | `array` | Array with 2 [Point](/reference/api/point) objects that define the _mirror line_ |
|
||||||
| `clone` | `true` | `bool` | Whether to clone mirrored points and or paths |
|
| `clone` | `true` | `bool` | Whether to clone mirrored points and or paths |
|
||||||
| `points` | | `array` | An array of [Point](/reference/api/point) objects |
|
| `points` | | `array` | An array of [Point](/reference/api/point) objects |
|
||||||
| `paths` | | `array` | An array of [Path](/reference/api/path) objects |
|
| `paths` | | `array` | An array of [Path](/reference/api/path) objects |
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: pd
|
title: pd
|
||||||
---
|
---
|
||||||
|
|
||||||
The `pd` macro adds a *path dimension* to your pattern, indicating the length of a path.\
|
The `pd` macro adds a _path dimension_ to your pattern, indicating the length of a path.\
|
||||||
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
||||||
|
|
||||||
<Example part="path_length">
|
<Example part="path_length">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: scalebox
|
title: scalebox
|
||||||
---
|
---
|
||||||
|
|
||||||
The `scalebox` macro adds a *scale box* to your pattern. This box allows
|
The `scalebox` macro adds a _scale box_ to your pattern. This box allows
|
||||||
users to verify their pattern is printed to scale.
|
users to verify their pattern is printed to scale.
|
||||||
|
|
||||||
The `scalebox` macro is provided by the [scalebox plugin](/reference/plugins/scalebox).
|
The `scalebox` macro is provided by the [scalebox plugin](/reference/plugins/scalebox).
|
||||||
|
@ -19,9 +19,9 @@ macro('scalebox', {
|
||||||
|
|
||||||
| Property | Default | Type | Description |
|
| Property | Default | Type | Description |
|
||||||
|-------------|---------|---------------------|-------------|
|
|-------------|---------|---------------------|-------------|
|
||||||
| `at` | | [Point](/reference/api/point) | The point to anchor the *scale box* on |
|
| `at` | | [Point](/reference/api/point) | The point to anchor the _scale box_ on |
|
||||||
| `lead` | FreeSewing | String | The lead text above the title |
|
| `lead` | FreeSewing | String | The lead text above the title |
|
||||||
| `title` | *pattern name + version* | String | The title text |
|
| `title` | _pattern name + version_ | String | The title text |
|
||||||
| `text` | (\*) | String | The text below the title |
|
| `text` | (\*) | String | The text below the title |
|
||||||
| `rotate` | 0 | Number | Rotation in degrees |
|
| `rotate` | 0 | Number | Rotation in degrees |
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: vd
|
title: vd
|
||||||
---
|
---
|
||||||
|
|
||||||
The `vd` macro adds a *vertical dimension* to your pattern.\
|
The `vd` macro adds a _vertical dimension_ to your pattern.\
|
||||||
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
It is provided by the [dimension plugin](/reference/plugins/dimension/).
|
||||||
|
|
||||||
<Example part="point_dy">
|
<Example part="point_dy">
|
||||||
|
|
|
@ -45,7 +45,7 @@ snippets.x2 = new Snippet("notch", points.x2);
|
||||||
|
|
||||||
##### The second parameter is optional
|
##### The second parameter is optional
|
||||||
|
|
||||||
The second parameter controls the precision by which the path will be *walked*.
|
The second parameter controls the precision by which the path will be _walked_.
|
||||||
By default, we'll divide it into 25 steps per mm.
|
By default, we'll divide it into 25 steps per mm.
|
||||||
|
|
||||||
If you don't need that precision, you can pass a lower number.
|
If you don't need that precision, you can pass a lower number.
|
||||||
|
|
|
@ -45,7 +45,7 @@ snippets.x2 = new Snippet("notch", points.x2);
|
||||||
|
|
||||||
##### The second parameter is optional
|
##### The second parameter is optional
|
||||||
|
|
||||||
The second parameter controls the precision by which the path will be *walked*.
|
The second parameter controls the precision by which the path will be _walked_.
|
||||||
By default, we'll divide it into 25 steps per mm.
|
By default, we'll divide it into 25 steps per mm.
|
||||||
|
|
||||||
If you don't need that precision, you can pass a lower number.
|
If you don't need that precision, you can pass a lower number.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Pattern.sample()
|
title: Pattern.sample()
|
||||||
---
|
---
|
||||||
|
|
||||||
A pattern's `sample()` method will *sample* the pattern which means
|
A pattern's `sample()` method will _sample_ the pattern which means
|
||||||
to draft it in different iterations while adjusting the input settings.
|
to draft it in different iterations while adjusting the input settings.
|
||||||
Under the hood, this method will call one of
|
Under the hood, this method will call one of
|
||||||
[Pattern.sampleOption()](/reference/apu/pattern/sampleoption),
|
[Pattern.sampleOption()](/reference/apu/pattern/sampleoption),
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Pattern.sampleMeasurement()
|
title: Pattern.sampleMeasurement()
|
||||||
---
|
---
|
||||||
|
|
||||||
A pattern's `sampleMeasurement()` method will *sample* a given measurement,
|
A pattern's `sampleMeasurement()` method will _sample_ a given measurement,
|
||||||
which means to draft it in different iterations while adjusting the input value
|
which means to draft it in different iterations while adjusting the input value
|
||||||
of the given measurement.
|
of the given measurement.
|
||||||
In practice, it will draft 10 iterations of the pattern
|
In practice, it will draft 10 iterations of the pattern
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Pattern.sampleModels()
|
title: Pattern.sampleModels()
|
||||||
---
|
---
|
||||||
|
|
||||||
A pattern's `sampleModels()` method will *sample* a pattern for a list of
|
A pattern's `sampleModels()` method will _sample_ a pattern for a list of
|
||||||
models you pass to it. It will draft different iterations of the pattern,
|
models you pass to it. It will draft different iterations of the pattern,
|
||||||
using the measurements for each model you pass to it.
|
using the measurements for each model you pass to it.
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ The (optional) string you can pass as the second parameter should hold the
|
||||||
key of one of the models in the first parameter. In our example above, it
|
key of one of the models in the first parameter. In our example above, it
|
||||||
could hold `modelName2` for example.
|
could hold `modelName2` for example.
|
||||||
|
|
||||||
By passing this second parameter, you can put the *focus* on one of the models,
|
By passing this second parameter, you can put the _focus_ on one of the models,
|
||||||
which will influence the render style, and make it
|
which will influence the render style, and make it
|
||||||
easier to see a comparison between a given set of measrurements, and the rest.
|
easier to see a comparison between a given set of measrurements, and the rest.
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Pattern.sampleOption()
|
title: Pattern.sampleOption()
|
||||||
---
|
---
|
||||||
|
|
||||||
A pattern's `sampleOption()` method will *sample* a given option,
|
A pattern's `sampleOption()` method will _sample_ a given option,
|
||||||
which means to draft it in different iterations while adjusting the input value
|
which means to draft it in different iterations while adjusting the input value
|
||||||
of the given option.
|
of the given option.
|
||||||
The practical implementation varies based on [the type of option](/config/options/):
|
The practical implementation varies based on [the type of option](/config/options/):
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Point.copy()
|
||||||
---
|
---
|
||||||
|
|
||||||
A point's `copy()` method returns a new point with the same coordinates as the original point.
|
A point's `copy()` method returns a new point with the same coordinates as the original point.
|
||||||
This method does *not* copy any attributes the original point may have.
|
This method does _not_ copy any attributes the original point may have.
|
||||||
|
|
||||||
## Point.copy() signature
|
## Point.copy() signature
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
title: Point.sitsOn()
|
title: Point.sitsOn()
|
||||||
---
|
---
|
||||||
|
|
||||||
Returns `true` if this point has the *exact* same coordinates as the point you pass to it.
|
Returns `true` if this point has the _exact_ same coordinates as the point you pass to it.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
###### Too exact?
|
###### Too exact?
|
||||||
|
|
||||||
This method is *very* precise, so points with an X-coordinate of `10` and `10.0001`
|
This method is _very_ precise, so points with an X-coordinate of `10` and `10.0001`
|
||||||
are considered to be different.
|
are considered to be different.
|
||||||
|
|
||||||
To check if two points have the same coordinates rounded to the nearest
|
To check if two points have the same coordinates rounded to the nearest
|
||||||
|
|
|
@ -15,7 +15,7 @@ array | false utils.beamIntersectsCircle(
|
||||||
Finds the intersection between an endless line through points `point1` and `point2`
|
Finds the intersection between an endless line through points `point1` and `point2`
|
||||||
and a circle with its center at point `center` and a radius of `radius` mm.
|
and a circle with its center at point `center` and a radius of `radius` mm.
|
||||||
|
|
||||||
The 5th and last parameter controls the *sorting* of the found intersections.
|
The 5th and last parameter controls the _sorting_ of the found intersections.
|
||||||
This will (almost) always return 2 intersections, and you can choose how
|
This will (almost) always return 2 intersections, and you can choose how
|
||||||
they are ordered in the returned array:
|
they are ordered in the returned array:
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ array | false utils.circlesIntersect(
|
||||||
|
|
||||||
Finds the intersections between two circles described by their center point and radius.
|
Finds the intersections between two circles described by their center point and radius.
|
||||||
|
|
||||||
The 5th and last parameter controls the *sorting* of the found intersections.
|
The 5th and last parameter controls the _sorting_ of the found intersections.
|
||||||
When this returns 2 intersections, you can choose how they are ordered in the returned array:
|
When this returns 2 intersections, you can choose how they are ordered in the returned array:
|
||||||
|
|
||||||
Set sort to:
|
Set sort to:
|
||||||
|
|
|
@ -15,7 +15,7 @@ array | false utils.lineIntersectsCircle(
|
||||||
Finds the intersection between a line segment from point `from` to point `to`
|
Finds the intersection between a line segment from point `from` to point `to`
|
||||||
and a circle with its center at point `center` and a radius of `radius` mm.
|
and a circle with its center at point `center` and a radius of `radius` mm.
|
||||||
|
|
||||||
The 5th and last parameter controls the *sorting* of the found intersections.
|
The 5th and last parameter controls the _sorting_ of the found intersections.
|
||||||
When this returns 2 intersections, you can choose how they are ordered in the returned array:
|
When this returns 2 intersections, you can choose how they are ordered in the returned array:
|
||||||
|
|
||||||
Set sort to:
|
Set sort to:
|
||||||
|
|
|
@ -8,7 +8,7 @@ float utils.stretchToScale(float stretch)
|
||||||
|
|
||||||
The way people measure stretch intuitively is different from the way we handle stretch in code.
|
The way people measure stretch intuitively is different from the way we handle stretch in code.
|
||||||
|
|
||||||
When people say *25% stretch* they mean that 10cm fabric gets stretched to 12.5cm fabric.
|
When people say _25% stretch_ they mean that 10cm fabric gets stretched to 12.5cm fabric.
|
||||||
In code and on our patterns, that means we need to scale things by 80%.
|
In code and on our patterns, that means we need to scale things by 80%.
|
||||||
|
|
||||||
This method does that by returning:
|
This method does that by returning:
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: "@freesewing/plugin-dimension"
|
||||||
---
|
---
|
||||||
|
|
||||||
The **@freesewing/plugin-dimension** plugin provides a variety of macros
|
The **@freesewing/plugin-dimension** plugin provides a variety of macros
|
||||||
to facilitate adding *dimensions* to your design. By *dimensions* we mean
|
to facilitate adding _dimensions_ to your design. By _dimensions_ we mean
|
||||||
the indicators for distance that are added to patterns
|
the indicators for distance that are added to patterns
|
||||||
in [paperless mode](/reference/api/settings/paperless).
|
in [paperless mode](/reference/api/settings/paperless).
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: "@freesewing/plugin-grainline"
|
||||||
---
|
---
|
||||||
|
|
||||||
The **@freesewing/plugin-grainline** plugin provides [the grainline
|
The **@freesewing/plugin-grainline** plugin provides [the grainline
|
||||||
macro](/reference/macros/grainline/) which adds a *grainline* indicator
|
macro](/reference/macros/grainline/) which adds a _grainline_ indicator
|
||||||
to your design.
|
to your design.
|
||||||
|
|
||||||
<Example part="plugin_grainline">An example of the grainline macro</Example>
|
<Example part="plugin_grainline">An example of the grainline macro</Example>
|
||||||
|
|
|
@ -5,7 +5,7 @@ title: "@freesewing/plugin-sprinkle"
|
||||||
The **@freesewing/plugin-sprinkle** plugin provides [the
|
The **@freesewing/plugin-sprinkle** plugin provides [the
|
||||||
sprinkle macro](/reference/api/macros/sprinkle/) which is a faster way
|
sprinkle macro](/reference/api/macros/sprinkle/) which is a faster way
|
||||||
to add several of the same snippets to your designs (think of it as
|
to add several of the same snippets to your designs (think of it as
|
||||||
*sprinkling* them onto your parts).
|
_sprinkling_ them onto your parts).
|
||||||
|
|
||||||
<Example part="plugin_sprinkle">An example of the sprinkle macro</Example>
|
<Example part="plugin_sprinkle">An example of the sprinkle macro</Example>
|
||||||
|
|
||||||
|
|
|
@ -4,4 +4,4 @@ title: Commit
|
||||||
|
|
||||||
A [commit](https://github.com/git-guides/git-commit) is made every time somebody publishes an update to our source code.
|
A [commit](https://github.com/git-guides/git-commit) is made every time somebody publishes an update to our source code.
|
||||||
|
|
||||||
The word is also used as a verb as in *to commit changes*.
|
The word is also used as a verb as in _to commit changes_.
|
||||||
|
|
|
@ -4,4 +4,4 @@ title: Discord
|
||||||
|
|
||||||
The name of our chat provider that powers our chat at https://discord.freesewing.org/
|
The name of our chat provider that powers our chat at https://discord.freesewing.org/
|
||||||
|
|
||||||
When you hear *discord* just think *chat*.
|
When you hear _discord_ just think _chat_.
|
||||||
|
|
|
@ -19,7 +19,7 @@ built with Gatsby.
|
||||||
|
|
||||||
## i18n
|
## i18n
|
||||||
|
|
||||||
Short of *internationalisation*. within the context of FreeSewing, this mostly
|
Short of _internationalisation_. within the context of FreeSewing, this mostly
|
||||||
means translation, but can also relate to other intenationalisation concerns such
|
means translation, but can also relate to other intenationalisation concerns such
|
||||||
as the type of units to use, or paper sizes, and so on.
|
as the type of units to use, or paper sizes, and so on.
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
title: i18n
|
title: i18n
|
||||||
---
|
---
|
||||||
|
|
||||||
Short for *internationalisation*. Within the context of FreeSewing, this mostly
|
Short for _internationalisation_. Within the context of FreeSewing, this mostly
|
||||||
means translation, but can also relate to other internationalisation concerns such
|
means translation, but can also relate to other internationalisation concerns such
|
||||||
as the type of units to use, or paper sizes, and so on.
|
as the type of units to use, or paper sizes, and so on.
|
||||||
|
|
|
@ -6,7 +6,7 @@ order: 10
|
||||||
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
|
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
|
||||||
|
|
||||||
You'll need to install Node JS on your system, and to do so, we'll
|
You'll need to install Node JS on your system, and to do so, we'll
|
||||||
use [nvm](https://github.com/nvm-sh/nvm), short for *Node version manager*.
|
use [nvm](https://github.com/nvm-sh/nvm), short for _Node version manager_.
|
||||||
|
|
||||||
Using nvm has a number of benefits in comparison with installing Node from
|
Using nvm has a number of benefits in comparison with installing Node from
|
||||||
the node.js website, or from a package provided by your linux distribution:
|
the node.js website, or from a package provided by your linux distribution:
|
||||||
|
|
|
@ -18,7 +18,7 @@ nvm ls
|
||||||
```
|
```
|
||||||
|
|
||||||
It will show you a list of local node versions.
|
It will show you a list of local node versions.
|
||||||
Either the version number, or an *alias* that points to a specific version.
|
Either the version number, or an _alias_ that points to a specific version.
|
||||||
You should see the `lts/*` alias in the list which is what we've just installed.
|
You should see the `lts/*` alias in the list which is what we've just installed.
|
||||||
|
|
||||||
### nvm ls-remote
|
### nvm ls-remote
|
||||||
|
|
|
@ -6,7 +6,7 @@ order: 20
|
||||||
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
|
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
|
||||||
|
|
||||||
You'll need to install Node JS on your system, and to do so, we'll
|
You'll need to install Node JS on your system, and to do so, we'll
|
||||||
use [nvm](https://github.com/nvm-sh/nvm), short for *Node version manager*.
|
use [nvm](https://github.com/nvm-sh/nvm), short for _Node version manager_.
|
||||||
|
|
||||||
Using nvm has a number of benefits in comparison with installing Node from
|
Using nvm has a number of benefits in comparison with installing Node from
|
||||||
the node.js website, or from a package provided by Homebrew or your OS distribution:
|
the node.js website, or from a package provided by Homebrew or your OS distribution:
|
||||||
|
|
|
@ -4,7 +4,7 @@ order: 10
|
||||||
---
|
---
|
||||||
|
|
||||||
Before we can get started, we need some basic tools for development.
|
Before we can get started, we need some basic tools for development.
|
||||||
They are bundled in the *Xcode command-line tools* so let's install
|
They are bundled in the _Xcode command-line tools_ so let's install
|
||||||
that first.
|
that first.
|
||||||
|
|
||||||
Open the Terminal application, and type the following command:
|
Open the Terminal application, and type the following command:
|
||||||
|
|
|
@ -18,7 +18,7 @@ nvm ls
|
||||||
```
|
```
|
||||||
|
|
||||||
It will show you a list of local node versions.
|
It will show you a list of local node versions.
|
||||||
Either the version number, or an *alias* that points to a specific version.
|
Either the version number, or an _alias_ that points to a specific version.
|
||||||
You should see the `lts/*` alias in the list which is what we've just installed.
|
You should see the `lts/*` alias in the list which is what we've just installed.
|
||||||
|
|
||||||
### nvm ls-remote
|
### nvm ls-remote
|
||||||
|
|
|
@ -3,13 +3,13 @@ title: Adding measurements
|
||||||
order: 130
|
order: 130
|
||||||
---
|
---
|
||||||
|
|
||||||
FreeSewing is all about *made-to-measure* sewing patterns;
|
FreeSewing is all about _made-to-measure_ sewing patterns;
|
||||||
we are going to draft our pattern according to the measurements provided to us.
|
we are going to draft our pattern according to the measurements provided to us.
|
||||||
|
|
||||||
Which begs the question, which measurements?
|
Which begs the question, which measurements?
|
||||||
|
|
||||||
It is you, as the pattern designer, who decides which measurements are required to draft your pattern.
|
It is you, as the pattern designer, who decides which measurements are required to draft your pattern.
|
||||||
For our bib, the only measurement we need is the baby's *head circumference*.
|
For our bib, the only measurement we need is the baby's _head circumference_.
|
||||||
|
|
||||||
So let's add it as a required measurement.
|
So let's add it as a required measurement.
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Adding options
|
||||||
order: 140
|
order: 140
|
||||||
---
|
---
|
||||||
|
|
||||||
You know what your bib should look like, and you have the *head* measurement
|
You know what your bib should look like, and you have the _head_ measurement
|
||||||
to work with. But there's still a number of choices you have to make:
|
to work with. But there's still a number of choices you have to make:
|
||||||
|
|
||||||
- How large should the neck opening be?
|
- How large should the neck opening be?
|
||||||
|
|
|
@ -22,8 +22,8 @@ export default function(part) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
So far, we've kept to the *// Design pattern here* area, but now we're going to work on
|
So far, we've kept to the _// Design pattern here_ area, but now we're going to work on
|
||||||
the area under *// Complete?*
|
the area under _// Complete?_
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ However, for future refefence, `sa` is a variable that you can get from `part.sh
|
||||||
just like `complete`. But instead of `true` or `false` it will hold the amount of seam allowance
|
just like `complete`. But instead of `true` or `false` it will hold the amount of seam allowance
|
||||||
in mm.
|
in mm.
|
||||||
|
|
||||||
Note that you can still do `if (sa)` because zero is *falsy*.
|
Note that you can still do `if (sa)` because zero is _falsy_.
|
||||||
|
|
||||||
We won't be adding seam allowance, but we will be doing something that is essentially the same.
|
We won't be adding seam allowance, but we will be doing something that is essentially the same.
|
||||||
Rather than draw an outline outside our bib to indicate the seam allowance, we'll draw one within
|
Rather than draw an outline outside our bib to indicate the seam allowance, we'll draw one within
|
||||||
|
@ -170,10 +170,10 @@ points.scalebox = points.title.shift(-90, 55)
|
||||||
macro("scalebox", { at: points.scalebox })
|
macro("scalebox", { at: points.scalebox })
|
||||||
```
|
```
|
||||||
|
|
||||||
And with that, our pattern is now *complete*:
|
And with that, our pattern is now _complete_:
|
||||||
|
|
||||||
<Example pattern="tutorial" part="step11">
|
<Example pattern="tutorial" part="step11">
|
||||||
We used attributes to add color, dashes, text on a path and even opacity
|
We used attributes to add color, dashes, text on a path and even opacity
|
||||||
</Example>
|
</Example>
|
||||||
|
|
||||||
We're not done yet though. There's one more thing the user can ask for: a *paperless* pattern.
|
We're not done yet though. There's one more thing the user can ask for: a _paperless_ pattern.
|
||||||
|
|
|
@ -62,7 +62,7 @@ points.rightCp1 = points.right
|
||||||
.shift(90, points.bottom.dy(points.right)/2)
|
.shift(90, points.bottom.dy(points.right)/2)
|
||||||
```
|
```
|
||||||
|
|
||||||
- We're adding a point named `rightCp1`, which will become the *control point* of the right part
|
- We're adding a point named `rightCp1`, which will become the _control point_ of the right part
|
||||||
- Instead of using the Point constructor, we're calling the `Point.shift()` method on an existing point
|
- Instead of using the Point constructor, we're calling the `Point.shift()` method on an existing point
|
||||||
- It takes two arguments: The angle to shift towards, and the distance
|
- It takes two arguments: The angle to shift towards, and the distance
|
||||||
- You can see that we're shifting 90 degrees (that means up) but the distance uses another method
|
- You can see that we're shifting 90 degrees (that means up) but the distance uses another method
|
||||||
|
|
|
@ -124,5 +124,5 @@ it doesn't look much different. We'll use some other classes later that will mak
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
It's looking pretty good. But those sharp corners at the bottom don't exactly say *baby* do they?
|
It's looking pretty good. But those sharp corners at the bottom don't exactly say _baby_ do they?
|
||||||
Let's fix that.
|
Let's fix that.
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Fitting the neck opening
|
||||||
order: 170
|
order: 170
|
||||||
---
|
---
|
||||||
|
|
||||||
Here's how we'll make sure the neck opening is *just right*:
|
Here's how we'll make sure the neck opening is _just right_:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
let tweak = 1
|
let tweak = 1
|
||||||
|
@ -28,7 +28,7 @@ do {
|
||||||
|
|
||||||
We've added a few new variables:
|
We've added a few new variables:
|
||||||
|
|
||||||
- `tweak`: A *tweak factor* that we'll use to increase or decrease the neck opening by making it more or less than 1
|
- `tweak`: A _tweak factor_ that we'll use to increase or decrease the neck opening by making it more or less than 1
|
||||||
- `target`: How long our (quarter) neck opening should be
|
- `target`: How long our (quarter) neck opening should be
|
||||||
- `delta`: How far we're off. Positive numbers mean it's too long, negative means too short
|
- `delta`: How far we're off. Positive numbers mean it's too long, negative means too short
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ let {
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
```
|
```
|
||||||
|
|
||||||
The idea behind *paperless patterns* is that users don't need to print your
|
The idea behind _paperless patterns_ is that users don't need to print your
|
||||||
pattern in order to use it.
|
pattern in order to use it.
|
||||||
Instead, we include dimensions on the pattern that allows them to transfer
|
Instead, we include dimensions on the pattern that allows them to transfer
|
||||||
the pattern directly onto fabric, or onto an intermediate medium such as tracing paper.
|
the pattern directly onto fabric, or onto an intermediate medium such as tracing paper.
|
||||||
|
@ -81,7 +81,7 @@ if (paperless) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
There's a lot going on, but it's mostly repetition. To see what that did to your pattern, you have to enable *paperless mode* in your developing environment; you can find the option under *Pattern options* on the right. Let's look at the end result, and discuss:
|
There's a lot going on, but it's mostly repetition. To see what that did to your pattern, you have to enable _paperless mode_ in your developing environment; you can find the option under _Pattern options_ on the right. Let's look at the end result, and discuss:
|
||||||
|
|
||||||
<Example pattern="tutorial" part="bib" settings_paperless="true">
|
<Example pattern="tutorial" part="bib" settings_paperless="true">
|
||||||
Your paperless bib
|
Your paperless bib
|
||||||
|
|
|
@ -45,7 +45,7 @@ This is the boilerplate of our `draftBib` method. It takes the part as an argume
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
If you're new to JavaScript, and don't intuitively *get this*, stick with it. It will become second nature soon enough.
|
If you're new to JavaScript, and don't intuitively _get this_, stick with it. It will become second nature soon enough.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ let {
|
||||||
```
|
```
|
||||||
|
|
||||||
This is FreeSewing's **shorthand** method. It returns an object with a bunch of handy helpers
|
This is FreeSewing's **shorthand** method. It returns an object with a bunch of handy helpers
|
||||||
and you use JavaScript's *object destructuring* to only get what you need.
|
and you use JavaScript's _object destructuring_ to only get what you need.
|
||||||
|
|
||||||
The example above makes the following variables available:
|
The example above makes the following variables available:
|
||||||
|
|
||||||
|
@ -75,9 +75,9 @@ These will make it possible for you to draw points and paths easily.
|
||||||
The following three variables are also needed to create a full-fledged FreeSewing pattern; their function and usage will
|
The following three variables are also needed to create a full-fledged FreeSewing pattern; their function and usage will
|
||||||
be covered in detail [later on in this tutorial](/tutorials/pattern-design/completing-your-pattern/):
|
be covered in detail [later on in this tutorial](/tutorials/pattern-design/completing-your-pattern/):
|
||||||
|
|
||||||
- `complete`: create a *complete* pattern (or not)
|
- `complete`: create a _complete_ pattern (or not)
|
||||||
- `sa`: include *seam allowance* (or not)
|
- `sa`: include _seam allowance_ (or not)
|
||||||
- `paperless`: allow the pattern to be *paperless*
|
- `paperless`: allow the pattern to be _paperless_
|
||||||
|
|
||||||
For now, we only need these so that the pattern skeleton compiles properly.
|
For now, we only need these so that the pattern skeleton compiles properly.
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ and the range of options we provided.
|
||||||
|
|
||||||
###### No more grading
|
###### No more grading
|
||||||
|
|
||||||
FreeSewing patterns are *made-to-measure*, which means that you don't need to
|
FreeSewing patterns are _made-to-measure_, which means that you don't need to
|
||||||
grade your pattern to provide a range of sizes. You should sample your pattern
|
grade your pattern to provide a range of sizes. You should sample your pattern
|
||||||
for different measurements and options to see how well it adapts.
|
for different measurements and options to see how well it adapts.
|
||||||
|
|
||||||
|
@ -87,13 +87,13 @@ If we test it, we can see that it works as intended. But there's one thing that
|
||||||
Making the bib wider shortens the length from the bottom of the neck opening to the bottom of the bib.
|
Making the bib wider shortens the length from the bottom of the neck opening to the bottom of the bib.
|
||||||
Thereby making the bib shorter when it's worn.
|
Thereby making the bib shorter when it's worn.
|
||||||
|
|
||||||
Even if the *total length* of the bib stays the same, the *useable length* shortens when the bib is made wider.
|
Even if the _total length_ of the bib stays the same, the _useable length_ shortens when the bib is made wider.
|
||||||
Users will not expect this, so it's something that we should fix in our pattern.
|
Users will not expect this, so it's something that we should fix in our pattern.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
Adjusting the pattern to make the `widthRatio` not influence the *useable length* of the bib is not
|
Adjusting the pattern to make the `widthRatio` not influence the _useable length_ of the bib is not
|
||||||
covered in this tutorial. It is left *as an exercise to the reader*.
|
covered in this tutorial. It is left _as an exercise to the reader_.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ Your bib with the head circumference measurement sampled </Example>
|
||||||
## Testing models
|
## Testing models
|
||||||
|
|
||||||
Whereas testing a measurement will only vary one individual measurement, testing models will
|
Whereas testing a measurement will only vary one individual measurement, testing models will
|
||||||
draft your pattern for different sets of measurments, which we refer to as *models*.
|
draft your pattern for different sets of measurments, which we refer to as _models_.
|
||||||
|
|
||||||
On the surface, the result below is the same as our measurement test. But that is because our bib
|
On the surface, the result below is the same as our measurement test. But that is because our bib
|
||||||
only uses one measurement. So testing that one measurement ends up being the same as testing a complete
|
only uses one measurement. So testing that one measurement ends up being the same as testing a complete
|
||||||
|
@ -173,16 +173,16 @@ Your bib sampled for a range of baby sizes </Example>
|
||||||
|
|
||||||
## The antperson test
|
## The antperson test
|
||||||
|
|
||||||
A special case of model testing is the so-called *antperson test*.
|
A special case of model testing is the so-called _antperson test_.
|
||||||
It drafts your pattern with a set of *typical* measurements , and then drafts it again
|
It drafts your pattern with a set of _typical_ measurements , and then drafts it again
|
||||||
with measurements that are 1/10th of those *typical* measurements.
|
with measurements that are 1/10th of those _typical_ measurements.
|
||||||
|
|
||||||
It is named after [the cartoon character](https://en.wikipedia.org/wiki/Ant-Man_\(film\)) who can shrink,
|
It is named after [the cartoon character](https://en.wikipedia.org/wiki/Ant-Man_\(film\)) who can shrink,
|
||||||
yet somehow his suit still fits.
|
yet somehow his suit still fits.
|
||||||
|
|
||||||
The purpose of the antperson test is to bring out areas in your pattern where you made assumptions
|
The purpose of the antperson test is to bring out areas in your pattern where you made assumptions
|
||||||
that will not properly scale.
|
that will not properly scale.
|
||||||
Many drafting books will tell you to *add 3cm there* or *measure 2 inch to the right*. Those instructions
|
Many drafting books will tell you to _add 3cm there_ or _measure 2 inch to the right_. Those instructions
|
||||||
don't scale, and you should avoid them.
|
don't scale, and you should avoid them.
|
||||||
|
|
||||||
The best patterns will pass the antperson test with 2 patterns exactly the same, where one will simply be 1/10th the scale of the other.
|
The best patterns will pass the antperson test with 2 patterns exactly the same, where one will simply be 1/10th the scale of the other.
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Your first part
|
||||||
order: 120
|
order: 120
|
||||||
---
|
---
|
||||||
|
|
||||||
Much like garments themselves, patterns are made up of *parts*.
|
Much like garments themselves, patterns are made up of _parts_.
|
||||||
|
|
||||||
Most patterns will have multiple parts. A sleeve, a back part, the collar, and so on.
|
Most patterns will have multiple parts. A sleeve, a back part, the collar, and so on.
|
||||||
Our pattern is very simple, and only has one part: the bib.
|
Our pattern is very simple, and only has one part: the bib.
|
||||||
|
@ -14,7 +14,7 @@ button in your browser, you'll get to see it:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Since we only need one part, we'll rename this *box* part, and call it *bib*.
|
Since we only need one part, we'll rename this _box_ part, and call it _bib_.
|
||||||
|
|
||||||
## Rename the box part to bib
|
## Rename the box part to bib
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ Pattern.prototype.draftBib = draftBib
|
||||||
|
|
||||||
###### Always use draftPartname
|
###### Always use draftPartname
|
||||||
|
|
||||||
FreeSewing will expect for each part to find a method named Draft*Partname*.
|
FreeSewing will expect for each part to find a method named Draft\_Partname\_.
|
||||||
|
|
||||||
If you have a part named `sleeve` you should have a method called `draftSleeve()` that drafts that part.
|
If you have a part named `sleeve` you should have a method called `draftSleeve()` that drafts that part.
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: "What's all this talk about with or without breasts?"
|
title: "What's all this talk about with or without breasts?"
|
||||||
---
|
---
|
||||||
|
|
||||||
Some people get confused by the terms *with breasts* and *without breasts*.
|
Some people get confused by the terms _with breasts_ and _without breasts_.
|
||||||
|
|
||||||
We use these terms as a gender-inclusive way to ask whether or not a person has breasts.
|
We use these terms as a gender-inclusive way to ask whether or not a person has breasts.
|
||||||
|
|
||||||
|
@ -13,11 +13,11 @@ These garment designs are usually based off of the ideal or average body.
|
||||||
Meaning, for womenswear, the designer will likely make a garment for a body with breasts,
|
Meaning, for womenswear, the designer will likely make a garment for a body with breasts,
|
||||||
narrow shoulders, a smaller waist and wide hips.
|
narrow shoulders, a smaller waist and wide hips.
|
||||||
|
|
||||||
These characteristics are generally thought of as *the typical characteristics of a woman's body*.
|
These characteristics are generally thought of as _the typical characteristics of a woman's body_.
|
||||||
However, we believe it is best to stay away from this;
|
However, we believe it is best to stay away from this;
|
||||||
no body is average and we want to build a gender-inclusive environment.
|
no body is average and we want to build a gender-inclusive environment.
|
||||||
|
|
||||||
We do not want to exclude anyone and we think that *body shape ≠ gender*.
|
We do not want to exclude anyone and we think that _body shape ≠ gender_.
|
||||||
That's why we use the terminology **with breasts** and **without breasts**,
|
That's why we use the terminology **with breasts** and **without breasts**,
|
||||||
simply asking whether a person has breast tissue or not.
|
simply asking whether a person has breast tissue or not.
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ title: I know my size, but your pattern doesn't fit me
|
||||||
The standard sizes we offer are there to allow you to discover our platform without
|
The standard sizes we offer are there to allow you to discover our platform without
|
||||||
the need to create an account. We advise against using them as-is.
|
the need to create an account. We advise against using them as-is.
|
||||||
|
|
||||||
Drafting made-to-measure sewing patterns really is *our thing*.\
|
Drafting made-to-measure sewing patterns really is _our thing_.\
|
||||||
If you insist on getting a pattern in a standard size, FreeSewing is not for you.
|
If you insist on getting a pattern in a standard size, FreeSewing is not for you.
|
||||||
|
|
||||||
Thankfully, Fiona curates
|
Thankfully, Fiona curates
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: Why do you even publish womenswear blocks? They are [insert strong opinio
|
||||||
|
|
||||||
This question comes up every now and then.
|
This question comes up every now and then.
|
||||||
The wording varies, but the sentiment can be summarized as
|
The wording varies, but the sentiment can be summarized as
|
||||||
*why even publish this garbage, it doesn't work at all*.
|
_why even publish this garbage, it doesn't work at all_.
|
||||||
|
|
||||||
Let me start by saying that you are not wrong. Both [Breanna](/designs/breanna/)
|
Let me start by saying that you are not wrong. Both [Breanna](/designs/breanna/)
|
||||||
and [Bella](/designs/bella/) have serious shortcomings.
|
and [Bella](/designs/bella/) have serious shortcomings.
|
||||||
|
|
|
@ -6,7 +6,7 @@ order: 300
|
||||||
To generate made-to-measure sewing patterns, we need measurements.
|
To generate made-to-measure sewing patterns, we need measurements.
|
||||||
Asking for them every time would be rather tedious, so we store them for you.
|
Asking for them every time would be rather tedious, so we store them for you.
|
||||||
|
|
||||||
We need a place to store them, and that *place* is your account.
|
We need a place to store them, and that _place_ is your account.
|
||||||
Your account data is stored on our backend, subject to [our privacy notice][1],
|
Your account data is stored on our backend, subject to [our privacy notice][1],
|
||||||
and with respect for [your rights][2].
|
and with respect for [your rights][2].
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ to save you a bunch of questions later, and make sure you get the most out of ou
|
||||||
|
|
||||||
- We'll tell you [what FreeSewing is][1] and [what freesewing.org is][2]
|
- We'll tell you [what FreeSewing is][1] and [what freesewing.org is][2]
|
||||||
- We'll tell you about our [made-to-measure sewing patterns][3]
|
- We'll tell you about our [made-to-measure sewing patterns][3]
|
||||||
and what we mean by [*with breasts* vs *without breasts*][4]
|
and what we mean by [_with breasts_ vs _without breasts_][4]
|
||||||
- We'll cover [why you need an account][5]
|
- We'll cover [why you need an account][5]
|
||||||
what we mean by [your people][6] or [your patterns][7], and we talk about [measurements][8]
|
what we mean by [your people][6] or [your patterns][7], and we talk about [measurements][8]
|
||||||
- We'll go over [how you can configure your patterns][9] with design and pattern options
|
- We'll go over [how you can configure your patterns][9] with design and pattern options
|
||||||
|
|
|
@ -16,10 +16,10 @@ This estimate is based on your neck circumference, so this won't show up until y
|
||||||
##### This is a difficult area for us to work in
|
##### This is a difficult area for us to work in
|
||||||
|
|
||||||
We want to help you get the best results, and that includes helping you spot issues with your measurements.
|
We want to help you get the best results, and that includes helping you spot issues with your measurements.
|
||||||
On the other hand, we in no way want to imply that someone's measurements are *wrong* somehow.
|
On the other hand, we in no way want to imply that someone's measurements are _wrong_ somehow.
|
||||||
|
|
||||||
We are an extremely size-inclusive pattern outlet, and a disproportionate amount of our users are people who struggle to find clothes or patterns from other outlets.
|
We are an extremely size-inclusive pattern outlet, and a disproportionate amount of our users are people who struggle to find clothes or patterns from other outlets.
|
||||||
So on one hand, it might seem like we're setting ourselves up for failure by comparing measurements to a set of more or less *standard* measurements.
|
So on one hand, it might seem like we're setting ourselves up for failure by comparing measurements to a set of more or less _standard_ measurements.
|
||||||
But you know your body. You know which of your measurements deviate from the average.
|
But you know your body. You know which of your measurements deviate from the average.
|
||||||
And us pointing out that they do is in a way only confirmation that you've been measuring correctly.
|
And us pointing out that they do is in a way only confirmation that you've been measuring correctly.
|
||||||
On the other hand, if something jumps out where you are fairly average sized, you know to double-check those measurements.
|
On the other hand, if something jumps out where you are fairly average sized, you know to double-check those measurements.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: Seam allowance
|
title: Seam allowance
|
||||||
---
|
---
|
||||||
|
|
||||||
This controls whether you want *seam allowance* or not.
|
This controls whether you want _seam allowance_ or not.
|
||||||
And, if you want it, how much you want.
|
And, if you want it, how much you want.
|
||||||
|
|
||||||
This will probably be self-explanatory if you know what seam allowance is.
|
This will probably be self-explanatory if you know what seam allowance is.
|
||||||
|
|
|
@ -9,5 +9,5 @@ line width and so on.
|
||||||
It was specifically created to accommodate patterns for doll clothes and other
|
It was specifically created to accommodate patterns for doll clothes and other
|
||||||
situations where the text and snippets would become too large in comparison to the pattern.
|
situations where the text and snippets would become too large in comparison to the pattern.
|
||||||
|
|
||||||
You need to enable *Expert mode* after which you can find the scale setting
|
You need to enable _Expert mode_ after which you can find the scale setting
|
||||||
under *Advanced*.
|
under _Advanced_.
|
||||||
|
|
|
@ -17,7 +17,7 @@ You can save as many patterns as you like.
|
||||||
|
|
||||||
##### Patterns vs Designs
|
##### Patterns vs Designs
|
||||||
|
|
||||||
If you came to this site looking for *patterns* you might have found them under *designs*.
|
If you came to this site looking for _patterns_ you might have found them under _designs_.
|
||||||
It's not a super important distinction, but it helps to understand that:
|
It's not a super important distinction, but it helps to understand that:
|
||||||
|
|
||||||
- **Design**: One of the styles that we offer. We've got dozens of designs, and you can try them all
|
- **Design**: One of the styles that we offer. We've got dozens of designs, and you can try them all
|
||||||
|
|
|
@ -7,7 +7,7 @@ Once you have an account, you can start adding measurements.
|
||||||
But that quickly brings up the next question: what if you want
|
But that quickly brings up the next question: what if you want
|
||||||
a pattern for you, but also for your partner?
|
a pattern for you, but also for your partner?
|
||||||
|
|
||||||
That's why we have *people*.
|
That's why we have _people_.
|
||||||
|
|
||||||
You create a person, and add measurements to that person.
|
You create a person, and add measurements to that person.
|
||||||
Now you can generate patterns for this person, based on their measurements.
|
Now you can generate patterns for this person, based on their measurements.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: High Point Shoulder (HPS)
|
title: High Point Shoulder (HPS)
|
||||||
---
|
---
|
||||||
|
|
||||||
The *high point shoulder* or *HPS* point is used as the base for several vertical measurements.
|
The _high point shoulder_ or _HPS_ point is used as the base for several vertical measurements.
|
||||||
|
|
||||||
The HPS is where your shoulder seam would meet your neck.
|
The HPS is where your shoulder seam would meet your neck.
|
||||||
The point is situated where your neck meets your shoulder.
|
The point is situated where your neck meets your shoulder.
|
||||||
|
|
|
@ -6,7 +6,7 @@ title: HPS to bust
|
||||||
|
|
||||||
###### HPS: high point shoulder
|
###### HPS: high point shoulder
|
||||||
|
|
||||||
The *high point shoulder* or *HPS* point is used as the base for several vertical measurements.
|
The _high point shoulder_ or _HPS_ point is used as the base for several vertical measurements.
|
||||||
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
|
@ -6,7 +6,7 @@ title: HPS to waist back
|
||||||
|
|
||||||
###### HPS: high point shoulder
|
###### HPS: high point shoulder
|
||||||
|
|
||||||
The *high point shoulder* or *HPS* point is used as the base for several vertical measurements.
|
The _high point shoulder_ or _HPS_ point is used as the base for several vertical measurements.
|
||||||
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
|
@ -6,7 +6,7 @@ title: HPS to waist front
|
||||||
|
|
||||||
###### HPS: high point shoulder
|
###### HPS: high point shoulder
|
||||||
|
|
||||||
The *high point shoulder* or *HPS* point is used as the base for several vertical measurements.
|
The _high point shoulder_ or _HPS_ point is used as the base for several vertical measurements.
|
||||||
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
Refer to [the hps documentation](/docs/measurements/hps/) for information on how to locate this point.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Put front and back on top of each other with *good sides together*.
|
Put front and back on top of each other with _good sides together_.
|
||||||
Sew the side seams and the short seams at the shoulder straps. If you have a serger, this is a good moment to use it. If not, finish your seams otherwise.
|
Sew the side seams and the short seams at the shoulder straps. If you have a serger, this is a good moment to use it. If not, finish your seams otherwise.
|
||||||
|
|
||||||
## Step 2: Finish hem
|
## Step 2: Finish hem
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Fold the hem upwards, and sew it down. If you have a coverlock, use it. If not, use a *twin needle* or *zig-zag stitch* to keep the seam stretchable.
|
Fold the hem upwards, and sew it down. If you have a coverlock, use it. If not, use a _twin needle_ or _zig-zag stitch_ to keep the seam stretchable.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
|
|
|
@ -9,11 +9,11 @@ title: Albert Construction
|
||||||
- Press the seam allowance of the sides and bottom to the wrong side.
|
- Press the seam allowance of the sides and bottom to the wrong side.
|
||||||
- On the right side topstich close to where the hem edge lies underneath, making sure to catch the hem and seam allowances as you sew.
|
- On the right side topstich close to where the hem edge lies underneath, making sure to catch the hem and seam allowances as you sew.
|
||||||
- Pin the pocket to the front using the guides.
|
- Pin the pocket to the front using the guides.
|
||||||
- *Edgestitch* the sides and bottom of the pocket leaving the top open. Make sure to backstitch at the start and end to secure the pocket properly.
|
- _Edgestitch_ the sides and bottom of the pocket leaving the top open. Make sure to backstitch at the start and end to secure the pocket properly.
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
|
|
||||||
If you have trouble catching the top hem we suggest to either *Baste* close to the hem edge first, and use that as a guide when stitching on the right side or pin the hem edge down from the right side making sure the pins are parallel to the top edge and use them as a guide.
|
If you have trouble catching the top hem we suggest to either _Baste_ close to the hem edge first, and use that as a guide when stitching on the right side or pin the hem edge down from the right side making sure the pins are parallel to the top edge and use them as a guide.
|
||||||
|
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Controls the length of the *bib* part of your apron.
|
Controls the length of the _bib_ part of your apron.
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Controls the width of the *bib* part of your apron.
|
Controls the width of the _bib_ part of your apron.
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue