1
0
Fork 0

Merge branch 'joost' into plugins-scale

This commit is contained in:
Joost De Cock 2023-10-15 16:05:28 +02:00
commit d739e8f5bd
24466 changed files with 405611 additions and 707715 deletions

View file

@ -1005,7 +1005,44 @@
"contributions": [
"code"
]
},
{
"login": "trentonTrama",
"name": "Trent Trama",
"avatar_url": "https://avatars.githubusercontent.com/u/41126812?v=4",
"profile": "https://github.com/trentonTrama",
"contributions": [
"code"
]
},
{
"login": "ibek",
"name": "Ivo Bek",
"avatar_url": "https://avatars.githubusercontent.com/u/1140579?v=4",
"profile": "https://github.com/ibek",
"contributions": [
"doc"
]
},
{
"login": "compilin",
"name": "Lin",
"avatar_url": "https://avatars.githubusercontent.com/u/40794281?v=4",
"profile": "https://github.com/compilin",
"contributions": [
"code"
]
},
{
"login": "evilrobotfromouterspace",
"name": "evilrobotfromouterspace",
"avatar_url": "https://avatars.githubusercontent.com/u/143673955?v=4",
"profile": "https://github.com/evilrobotfromouterspace",
"contributions": [
"bug"
]
}
],
"skipCi": true
"skipCi": true,
"commitType": "docs"
}

View file

@ -18,3 +18,4 @@ dist
node_modules
yarn.lock
package.json
*.html

View file

@ -20,12 +20,14 @@ const frontendFiles = [
`**/pages/**/*.${jsSuffixes}`,
`**/page-templates/**/*.${jsSuffixes}`,
`packages/i18n/**/*.md/*.${jsSuffixes}`,
`packages/react-components/**/*.${jsSuffixes}`,
]
module.exports = {
extends: 'eslint:recommended',
env: {
es2021: true,
node: true,
},
// Required when using experimental EcmaScript features
parser: '@babel/eslint-parser',
@ -36,6 +38,7 @@ module.exports = {
requireConfigFile: false,
babelOptions: {
plugins: ['@babel/plugin-syntax-import-assertions'],
presets: ['@babel/preset-react'],
},
},
rules: {},
@ -60,10 +63,11 @@ module.exports = {
{
files: frontendFiles,
excludedFiles: nodeFiles,
extends: ['next/core-web-vitals'],
env: {
// We can be stricter than 'next/core-web-vitals' is
node: false,
extends: ['next'],
settings: {
next: {
rootDir: 'sites/dev/',
},
},
},
{

View file

@ -1,8 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: 💬 Chat on Discord
url: https://discord.freesewing.org/
about: Join our community on Discord for real-time chat
- name: 🙋 Ask a question on Github discussions
url: https://github.com/freesewing/freesewing/discussions
about: Ask questions on a formum-style discussion board on Github

View file

@ -35,7 +35,7 @@ jobs:
- name: Reconfigure
run: node --experimental-json-modules --no-warnings ./scripts/reconfigure.mjs
- name: Bootstrap
run: npx lerna bootstrap
run: yarn install
- name: Commit Changes
run: |
git add .

View file

@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
node-version: [16.x]
node-version: [18.x]
steps:
- name: Checkout repository
@ -33,7 +33,7 @@ jobs:
key: node_modules-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
if: steps.cache_node_modules.outputs.cache-hit != 'true'
run: npx lerna bootstrap
run: yarn install
env:
CI: true
- name: Run eslint

View file

@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
node-version: [16.x]
node-version: [18.x]
steps:
- name: Fetch PR base ref
@ -39,11 +39,11 @@ jobs:
key: node_modules-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
if: steps.cache_node_modules.outputs.cache-hit != 'true'
run: npx lerna bootstrap
run: yarn install
env:
CI: true
- name: Prebuild Packages
run: npx lerna run prebuild
- name: Buil all
run: yarn buildall
- name: Run eslint
run: |
changed_files="$(git diff --name-only origin/${{ github.base_ref }})"

View file

@ -1,31 +1,32 @@
name: Playwright Tests
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Cache node modules
uses: actions/cache@v3
id: cache_node_modules
with:
# caching node_modules
path: '**/node_modules'
key: node_modules-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
if: steps.cache_node_modules.outputs.cache-hit != 'true'
run: npx lerna bootstrap
- name: Install Playwright Browsers
run: yarn playwright install --with-deps
- name: Run Playwright tests
run: yarn e2e
# While it's nice to test e2e tests, it's not all that useful to run them on alpha code
#on:
# push:
# branches:
# - develop
# pull_request:
# branches:
# - develop
#jobs:
# test:
# timeout-minutes: 60
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 18
# - name: Cache node modules
# uses: actions/cache@v3
# id: cache_node_modules
# with:
# # caching node_modules
# path: '**/node_modules'
# key: node_modules-${{ hashFiles('yarn.lock') }}
# - name: Install dependencies
# if: steps.cache_node_modules.outputs.cache-hit != 'true'
# run: yarn install
# - name: Install Playwright Browsers
# run: yarn playwright install --with-deps
# - name: Run Playwright tests
# run: yarn e2e

View file

@ -23,7 +23,7 @@ jobs:
strategy:
matrix:
node-version: [16.x]
node-version: [18.x]
steps:
- name: Checkout repository
@ -41,9 +41,11 @@ jobs:
key: node_modules-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
if: steps.cache_node_modules.outputs.cache-hit != 'true'
run: npx lerna bootstrap
run: yarn install
env:
CI: true
- name: Build core plugins
run: "cd plugins/core-plugins && npm run build && cd -"
- name: Run all tests
run: npm run testall
- name: Upload to codecov.io

View file

@ -1,81 +1,81 @@
name: Test new-design
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
shared_setup:
runs-on: ubuntu-latest
outputs:
files: ${{ steps.diff.outputs.files }}
steps:
- name: Fetch PR base ref
uses: actions/checkout@v3
with:
ref: ${{ github.base_ref }}
- name: Checkout PR ref
uses: actions/checkout@v3
with:
ref: ${{ github.ref }}
- name: Diff for relevant files
id: diff
run: echo "files=$(git diff --shortstat origin/${{github.base_ref}} sites/shared sites/lab/components packages/new-design packages/core plugins)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-node@v3
if: steps.diff.outputs.files
with:
node-version: 18
- name: Cache node modules
uses: actions/cache@v3
if: steps.diff.outputs.files
id: cache_node_modules
with:
# caching node_modules
path: '**/node_modules'
key: node_modules-${{ hashFiles('yarn.lock') }}
lookup-only: true
- name: Install dependencies
if: steps.diff.outputs.files && steps.cache_node_modules.outputs.cache-hit != 'true'
run: npx lerna bootstrap
env:
CI: true
test:
if: needs.shared_setup.outputs.files
needs: shared_setup
timeout-minutes: 60
runs-on: ubuntu-latest
strategy:
matrix:
template:
- scratch
- tutorial
- bent
steps:
- name: Checkout PR ref
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Cache node modules
uses: actions/cache/restore@v3
id: cache_node_modules
with:
# caching node_modules
path: '**/node_modules'
key: node_modules-${{ hashFiles('yarn.lock') }}
- name: Prebuild i18n
run: yarn i18n-only
working-directory: ./packages/new-design
- name: Generate Design
run: |
cd ../
TEMPLATE=${{ matrix.template }} NAME=test${{ matrix.template }} node ${{ github.workspace }}/packages/new-design/scripts/generate-from-cli.mjs
- name: Install Playwright Browsers
run: yarn playwright install --with-deps
working-directory: ../test${{ matrix.template }}
- name: Run Playwright tests
run: yarn playwright test
working-directory: ../test${{ matrix.template }}
#on:
# push:
# branches:
# - develop
# pull_request:
# branches:
# - develop
#jobs:
# shared_setup:
# runs-on: ubuntu-latest
# outputs:
# files: ${{ steps.diff.outputs.files }}
# steps:
# - name: Fetch PR base ref
# uses: actions/checkout@v3
# with:
# ref: ${{ github.base_ref }}
# - name: Checkout PR ref
# uses: actions/checkout@v3
# with:
# ref: ${{ github.ref }}
# - name: Diff for relevant files
# id: diff
# run: echo "files=$(git diff --shortstat origin/${{github.base_ref}} sites/shared sites/lab/components packages/new-design packages/core plugins)" >> "$GITHUB_OUTPUT"
# - uses: actions/setup-node@v3
# if: steps.diff.outputs.files
# with:
# node-version: 18
# - name: Cache node modules
# uses: actions/cache@v3
# if: steps.diff.outputs.files
# id: cache_node_modules
# with:
# # caching node_modules
# path: '**/node_modules'
# key: node_modules-${{ hashFiles('yarn.lock') }}
# lookup-only: true
# - name: Install dependencies
# if: steps.diff.outputs.files && steps.cache_node_modules.outputs.cache-hit != 'true'
# run: yarn install
# env:
# CI: true
#
# test:
# if: needs.shared_setup.outputs.files
# needs: shared_setup
# timeout-minutes: 60
# runs-on: ubuntu-latest
# strategy:
# matrix:
# template:
# - scratch
# - tutorial
# - bent
# steps:
# - name: Checkout PR ref
# uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 18
# - name: Cache node modules
# uses: actions/cache/restore@v3
# id: cache_node_modules
# with:
# # caching node_modules
# path: '**/node_modules'
# key: node_modules-${{ hashFiles('yarn.lock') }}
# - name: Prebuild i18n
# run: yarn i18n-only
# working-directory: ./packages/new-design
# - name: Generate Design
# run: |
# cd ../
# TEMPLATE=${{ matrix.template }} NAME=test${{ matrix.template }} node ${{ github.workspace }}/packages/new-design/scripts/generate-from-cli.mjs
# - name: Install Playwright Browsers
# run: yarn playwright install --with-deps
# working-directory: ../test${{ matrix.template }}
# - name: Run Playwright tests
# run: yarn playwright test
# working-directory: ../test${{ matrix.template }}

108
.gitignore vendored
View file

@ -1,65 +1,18 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
dump
# .env
.env
*.key
# Plugins
plugins/plugin-theme/src/bundle.css.js
plugins/plugin-theme/css
# Components package build artifacts
packages/components/Blockquote
packages/components/Draft
packages/components/DraftConfigurator
packages/components/Emblem
packages/components/Example
packages/components/Footer
packages/components/Icon
packages/components/Legend
packages/components/LineDrawing
packages/components/Logo
packages/components/Navbar
packages/components/Render
packages/components/Ogol
packages/components/Robot
packages/components/SampleConfigurator
packages/components/Spinner
packages/components/withGist
packages/components/withLanguage
packages/components/withStorage
packages/components/Workbench
# Code coverage reports
packages/core/coverage
packages/*/report
# Utils package build artifacts
packages/utils/backend
packages/utils/camelCase
packages/utils/capitalize
packages/utils/convertSize
packages/utils/cloneObject
packages/utils/defaultGist
packages/utils/defaultSa
packages/utils/formatImperial
packages/utils/formatMm
packages/utils/isDegMeasurement
packages/utils/measurementAsMm
packages/utils/measurementDiffers
packages/utils/neckstimate
packages/utils/optionDefault
packages/utils/optionType
packages/utils/roundMm
packages/utils/roundMmDown
packages/utils/roundMmUp
packages/utils/sliderStep
packages/utils/smallestImperialStep
packages/utils/storage
packages/utils/tiler
packages/utils/validateEmail
packages/utils/validateTld
# Any NPM or Yarn lock files
designs/*/package-lock.json
designs/*/yarn.lock
@ -76,20 +29,60 @@ sites/sanity/.sanity
# Sites prebuild artifacts
sites/*/public/locales/*/*.json
!sites/sde/public/locales/*/*.json
sites/*/public/feeds/*
packages/new-design/shared/public/locales/*/*.json
packages/new-design/shared/.gitignore
packages/new-design/lib/banner.mjs
# Translation files for NextJS
# Remove this after we move to Node 16 and deprecate pattern-info
#/home/joost/git/freesewing/packages/i18n/src/next/*/*.mjs
# Lab auto-generated pages
# Lab auto-generated content
sites/lab/lib
sites/lab/pages
# but not the indexes
!sites/lab/pages/*/index.js
sites/lab/public/android-chrome-192x192.png
sites/lab/public/android-chrome-384x384.png
sites/lab/public/apple-touch-icon.png
sites/lab/public/browserconfig.xml
sites/lab/public/favicon-16x16.png
sites/lab/public/favicon-32x32.png
sites/lab/public/favicon.ico
sites/lab/public/mstile-150x150.png
sites/lab/public/safari-pinned-tab.svg
sites/lab/public/site.webmanifest
# sde auto-generated content
sites/sde/public/android-chrome-192x192.png
sites/sde/public/android-chrome-384x384.png
sites/sde/public/apple-touch-icon.png
sites/sde/public/browserconfig.xml
sites/sde/public/favicon-16x16.png
sites/sde/public/favicon-32x32.png
sites/sde/public/favicon.ico
sites/sde/public/mstile-150x150.png
sites/sde/public/safari-pinned-tab.svg
sites/sde/public/site.webmanifest
# dev auto-generated content
sites/dev/public/android-chrome-192x192.png
sites/dev/public/android-chrome-384x384.png
sites/dev/public/apple-touch-icon.png
sites/dev/public/browserconfig.xml
sites/dev/public/favicon-16x16.png
sites/dev/public/favicon-32x32.png
sites/dev/public/favicon.ico
sites/dev/public/mstile-150x150.png
sites/dev/public/safari-pinned-tab.svg
sites/dev/public/site.webmanifest
# org auto-generated content
sites/org/public/android-chrome-192x192.png
sites/org/public/android-chrome-384x384.png
sites/org/public/apple-touch-icon.png
sites/org/public/browserconfig.xml
sites/org/public/favicon-16x16.png
sites/org/public/favicon-32x32.png
sites/org/public/favicon.ico
sites/org/public/mstile-150x150.png
sites/org/public/safari-pinned-tab.svg
sites/org/public/site.webmanifest
# Node dependencies
node_modules
@ -98,7 +91,6 @@ node_modules
dist
build
export
packages/core/out
# Prebuild files
prebuild/*.json

View file

@ -7,9 +7,10 @@ image: gitpod/workspace-node:latest
tasks:
- name: Freesewing Lab
before: |
nvm install lts/gallium
nvm use lts/gallium
command: yarn kickstart && yarn lab
nvm install lts/hydrogen
nvm use lts/hydrogen
npm i -g yarn
yarn kickstart
github:
prebuilds:

View file

@ -15,6 +15,7 @@
*.html
*.env
*.sh
*.json
Dockerfile
LICENSE
yarn.lock
@ -24,3 +25,5 @@ yarn.lock
.eslintignore
.gitkeep
.all-contributorsrc
ansible.cfg
sites/shared/prebuild/data/*.mjs

File diff suppressed because it is too large Load diff

View file

@ -47,103 +47,107 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eltociear" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Irapeke"><img src="https://avatars.githubusercontent.com/u/39604334?v=4?s=100" width="100px;" alt="Irapeke"/><br /><sub><b>Irapeke</b></sub></a><br /><a href="#translation-Irapeke" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ibek"><img src="https://avatars.githubusercontent.com/u/1140579?v=4?s=100" width="100px;" alt="Ivo Bek"/><br /><sub><b>Ivo Bek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ibek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsawo"><img src="https://avatars.githubusercontent.com/u/1294706?v=4?s=100" width="100px;" alt="Jacek Sawoszczuk"/><br /><sub><b>Jacek Sawoszczuk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jsawo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgfichte"><img src="https://avatars.githubusercontent.com/u/1787162?v=4?s=100" width="100px;" alt="Jason Williams"/><br /><sub><b>Jason Williams</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jgfichte" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jejacks0n"><img src="https://avatars.githubusercontent.com/u/13765?v=4?s=100" width="100px;" alt="Jeremy Jackson"/><br /><sub><b>Jeremy Jackson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jejacks0n" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://jeroenhoek.nl"><img src="https://avatars.githubusercontent.com/u/683699?v=4?s=100" width="100px;" alt="Jeroen Hoek"/><br /><sub><b>Jeroen Hoek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jdhoek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joebidido"><img src="https://avatars.githubusercontent.com/u/39796210?v=4?s=100" width="100px;" alt="Joebidido"/><br /><sub><b>Joebidido</b></sub></a><br /><a href="#translation-Joebidido" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://joost.at/"><img src="https://avatars.githubusercontent.com/u/1708494?v=4?s=100" width="100px;" alt="Joost De Cock"/><br /><sub><b>Joost De Cock</b></sub></a><br /><a href="#maintenance-joostdecock" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joshessman"><img src="https://avatars.githubusercontent.com/u/9941074?v=4?s=100" width="100px;" alt="Josh Essman"/><br /><sub><b>Josh Essman</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joshessman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.earth.li/~kake/"><img src="https://avatars.githubusercontent.com/u/1956810?v=4?s=100" width="100px;" alt="Kake"/><br /><sub><b>Kake</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=KakeLP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/kapunahele"><img src="https://avatars.githubusercontent.com/u/4116963?v=4?s=100" width="100px;" alt="Kapunahele Wong"/><br /><sub><b>Kapunahele Wong</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kapunahelewong" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tangerineshark"><img src="https://avatars.githubusercontent.com/u/70777269?v=4?s=100" width="100px;" alt="Karen"/><br /><sub><b>Karen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=tangerineshark" title="Documentation">📖</a> <a href="#eventOrganizing-tangerineshark" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.kieranklaassen.com/"><img src="https://avatars.githubusercontent.com/u/209089?v=4?s=100" width="100px;" alt="Kieran Klaassen"/><br /><sub><b>Kieran Klaassen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kieranklaassen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kittycatou"><img src="https://avatars.githubusercontent.com/u/48165583?v=4?s=100" width="100px;" alt="Kittycatou"/><br /><sub><b>Kittycatou</b></sub></a><br /><a href="#translation-Kittycatou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.krishoward.org/"><img src="https://avatars.githubusercontent.com/u/5946286?v=4?s=100" width="100px;" alt="Kris"/><br /><sub><b>Kris</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=web-goddess" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kristinruben"><img src="https://avatars.githubusercontent.com/u/17237479?v=4?s=100" width="100px;" alt="Kristin Ruben"/><br /><sub><b>Kristin Ruben</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kristinruben" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/compilin"><img src="https://avatars.githubusercontent.com/u/40794281?v=4?s=100" width="100px;" alt="Lin"/><br /><sub><b>Lin</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=compilin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Loudepeuter"><img src="https://avatars.githubusercontent.com/u/38081954?v=4?s=100" width="100px;" alt="Loudepeuter"/><br /><sub><b>Loudepeuter</b></sub></a><br /><a href="#translation-Loudepeuter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MA-TATAS"><img src="https://avatars.githubusercontent.com/u/125549564?v=4?s=100" width="100px;" alt="MA-TATAS"/><br /><sub><b>MA-TATAS</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=MA-TATAS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/manufakturedelweiss"><img src="https://avatars.githubusercontent.com/u/38063391?v=4?s=100" width="100px;" alt="Marcus"/><br /><sub><b>Marcus</b></sub></a><br /><a href="#translation-manufakturedelweiss" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martintribo"><img src="https://avatars.githubusercontent.com/u/1613442?v=4?s=100" width="100px;" alt="Martin Tribo"/><br /><sub><b>Martin Tribo</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=martintribo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nadege"><img src="https://avatars.githubusercontent.com/u/3792171?v=4?s=100" width="100px;" alt="Nadege Michel"/><br /><sub><b>Nadege Michel</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Tests">⚠️</a> <a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nataliasayang"><img src="https://avatars.githubusercontent.com/u/48160791?v=4?s=100" width="100px;" alt="Natalia"/><br /><sub><b>Natalia</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nataliasayang" title="Code">💻</a> <a href="#design-nataliasayang" title="Design">🎨</a> <a href="#blog-nataliasayang" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nchilada"><img src="https://avatars.githubusercontent.com/u/692925?v=4?s=100" width="100px;" alt="Nikhil Chelliah"/><br /><sub><b>Nikhil Chelliah</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nchilada" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OysteinHoiby"><img src="https://avatars.githubusercontent.com/u/49735055?v=4?s=100" width="100px;" alt="OysteinHoiby"/><br /><sub><b>OysteinHoiby</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=OysteinHoiby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pat.forringer.com/"><img src="https://avatars.githubusercontent.com/u/136456?v=4?s=100" width="100px;" alt="Patrick Forringer"/><br /><sub><b>Patrick Forringer</b></sub></a><br /><a href="#plugin-destos" title="Plugin/utility libraries">🔌</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://pd75.github.io/"><img src="https://avatars.githubusercontent.com/u/10294795?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=PD75" title="Documentation">📖</a> <a href="#blog-PD75" title="Blogposts">📝</a> <a href="#translation-PD75" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phillipthelen"><img src="https://avatars.githubusercontent.com/u/298062?v=4?s=100" width="100px;" alt="Phillip Thelen"/><br /><sub><b>Phillip Thelen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=phillipthelen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QuentinFelix"><img src="https://avatars.githubusercontent.com/u/5288091?v=4?s=100" width="100px;" alt="Quentin FELIX"/><br /><sub><b>Quentin FELIX</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=QuentinFelix" title="Code">💻</a> <a href="#design-QuentinFelix" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RikHekker"><img src="https://avatars.githubusercontent.com/u/31843274?v=4?s=100" width="100px;" alt="Rik Hekker"/><br /><sub><b>Rik Hekker</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ARikHekker" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://resume.livingston-gray.com/faq.html"><img src="https://avatars.githubusercontent.com/u/6462?v=4?s=100" width="100px;" alt="Sam Livingston-Gray"/><br /><sub><b>Sam Livingston-Gray</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=geeksam" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sannek"><img src="https://avatars.githubusercontent.com/u/17491062?v=4?s=100" width="100px;" alt="Sanne"/><br /><sub><b>Sanne</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyrannogina"><img src="https://avatars.githubusercontent.com/u/19556565?v=4?s=100" width="100px;" alt="Sara Latorre"/><br /><sub><b>Sara Latorre</b></sub></a><br /><a href="#translation-Tyrannogina" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SirCharlotte"><img src="https://avatars.githubusercontent.com/u/63847870?v=4?s=100" width="100px;" alt="SirCharlotte"/><br /><sub><b>SirCharlotte</b></sub></a><br /><a href="#translation-SirCharlotte" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.instagram.com/celine_mge/"><img src="https://avatars.githubusercontent.com/u/57619777?v=4?s=100" width="100px;" alt="Slylele"/><br /><sub><b>Slylele</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Slylele" title="Documentation">📖</a> <a href="#translation-Slylele" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Soazillon"><img src="https://avatars.githubusercontent.com/u/40845940?v=4?s=100" width="100px;" alt="Soazillon"/><br /><sub><b>Soazillon</b></sub></a><br /><a href="#translation-Soazillon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SoneaTheBest"><img src="https://avatars.githubusercontent.com/u/64635425?v=4?s=100" width="100px;" alt="SoneaTheBest"/><br /><sub><b>SoneaTheBest</b></sub></a><br /><a href="#translation-SoneaTheBest" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://metafly.info/"><img src="https://avatars.githubusercontent.com/u/961256?v=4?s=100" width="100px;" alt="Stefan Sydow"/><br /><sub><b>Stefan Sydow</b></sub></a><br /><a href="#translation-stsydow" title="Translation">🌍</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/trentonTrama"><img src="https://avatars.githubusercontent.com/u/41126812?v=4?s=100" width="100px;" alt="Trent Trama"/><br /><sub><b>Trent Trama</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=trentonTrama" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woutervdub"><img src="https://avatars.githubusercontent.com/u/24414629?v=4?s=100" width="100px;" alt="Wouter van Wageningen"/><br /><sub><b>Wouter van Wageningen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woutervdub" title="Code">💻</a> <a href="#design-woutervdub" title="Design">🎨</a> <a href="#tool-woutervdub" title="Tools">🔧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amysews"><img src="https://avatars.githubusercontent.com/u/25280778?v=4?s=100" width="100px;" alt="amysews"/><br /><sub><b>amysews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=amysews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anna-puk"><img src="https://avatars.githubusercontent.com/u/100537439?v=4?s=100" width="100px;" alt="anna-puk"/><br /><sub><b>anna-puk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anna-puk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/beautifulsummermoon"><img src="https://avatars.githubusercontent.com/u/40396388?v=4?s=100" width="100px;" alt="beautifulsummermoon"/><br /><sub><b>beautifulsummermoon</b></sub></a><br /><a href="#translation-beautifulsummermoon" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/berce"><img src="https://avatars.githubusercontent.com/u/10439709?v=4?s=100" width="100px;" alt="berce"/><br /><sub><b>berce</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=berce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/biou"><img src="https://avatars.githubusercontent.com/u/1340376?v=4?s=100" width="100px;" alt="biou"/><br /><sub><b>biou</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=biou" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgeorgethe3rd"><img src="https://avatars.githubusercontent.com/u/16866285?v=4?s=100" width="100px;" alt="bobgeorgethe3rd"/><br /><sub><b>bobgeorgethe3rd</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Documentation">📖</a> <a href="#design-bobgeorgethe3rd" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brmlyklr"><img src="https://avatars.githubusercontent.com/u/22308713?v=4?s=100" width="100px;" alt="brmlyklr"/><br /><sub><b>brmlyklr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=brmlyklr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.chrisbarrett.fr"><img src="https://avatars.githubusercontent.com/u/2373249?v=4?s=100" width="100px;" alt="chri5b"/><br /><sub><b>chri5b</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dingcycle"><img src="https://avatars.githubusercontent.com/u/1681985?v=4?s=100" width="100px;" alt="dingcycle"/><br /><sub><b>dingcycle</b></sub></a><br /><a href="#translation-dingcycle" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drowned-in-books"><img src="https://avatars.githubusercontent.com/u/100040772?v=4?s=100" width="100px;" alt="drowned-in-books"/><br /><sub><b>drowned-in-books</b></sub></a><br /><a href="#question-drowned-in-books" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/evilrobotfromouterspace"><img src="https://avatars.githubusercontent.com/u/143673955?v=4?s=100" width="100px;" alt="evilrobotfromouterspace"/><br /><sub><b>evilrobotfromouterspace</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Aevilrobotfromouterspace" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DocSpencer77"><img src="https://avatars.githubusercontent.com/u/43393580?v=4?s=100" width="100px;" alt="gaylyndie"/><br /><sub><b>gaylyndie</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=DocSpencer77" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grimlokason"><img src="https://avatars.githubusercontent.com/u/5112238?v=4?s=100" width="100px;" alt="grimlokason"/><br /><sub><b>grimlokason</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=grimlokason" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://weblog.redisdead.net"><img src="https://avatars.githubusercontent.com/u/6494414?v=4?s=100" width="100px;" alt="hellgy"/><br /><sub><b>hellgy</b></sub></a><br /><a href="#design-hellgy" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackseye"><img src="https://avatars.githubusercontent.com/u/27834526?v=4?s=100" width="100px;" alt="jackseye"/><br /><sub><b>jackseye</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jackseye" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marckiesel"><img src="https://avatars.githubusercontent.com/u/39653780?v=4?s=100" width="100px;" alt="marckiesel"/><br /><sub><b>marckiesel</b></sub></a><br /><a href="#translation-marckiesel" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marpants"><img src="https://avatars.githubusercontent.com/u/61366665?v=4?s=100" width="100px;" alt="marpants"/><br /><sub><b>marpants</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=marpants" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tech.lgbt/@mergerg"><img src="https://avatars.githubusercontent.com/u/64447714?v=4?s=100" width="100px;" alt="mergerg"/><br /><sub><b>mergerg</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=raphaelsiz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mesil"><img src="https://avatars.githubusercontent.com/u/14284175?v=4?s=100" width="100px;" alt="mesil"/><br /><sub><b>mesil</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Amesil" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/starfetch"><img src="https://avatars.githubusercontent.com/u/80041179?v=4?s=100" width="100px;" alt="starfetch"/><br /><sub><b>starfetch</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Documentation">📖</a> <a href="#translation-starfetch" title="Translation">🌍</a> <a href="#design-starfetch" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timorl"><img src="https://avatars.githubusercontent.com/u/4363804?v=4?s=100" width="100px;" alt="timorl"/><br /><sub><b>timorl</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=timorl" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ttimearl"><img src="https://avatars.githubusercontent.com/u/77916590?v=4?s=100" width="100px;" alt="ttimearl"/><br /><sub><b>ttimearl</b></sub></a><br /><a href="#content-ttimearl" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisgloom"><img src="https://avatars.githubusercontent.com/u/15905991?v=4?s=100" width="100px;" alt="tuesgloomsday"/><br /><sub><b>tuesgloomsday</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chrisgloom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valadaptive"><img src="https://avatars.githubusercontent.com/u/79560998?v=4?s=100" width="100px;" alt="valadaptive"/><br /><sub><b>valadaptive</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=valadaptive" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viocky"><img src="https://avatars.githubusercontent.com/u/39279173?v=4?s=100" width="100px;" alt="viocky"/><br /><sub><b>viocky</b></sub></a><br /><a href="#translation-viocky" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woolishboy"><img src="https://avatars.githubusercontent.com/u/57816321?v=4?s=100" width="100px;" alt="woolishboy"/><br /><sub><b>woolishboy</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woolishboy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cloutiy"><img src="https://avatars.githubusercontent.com/u/8433147?v=4?s=100" width="100px;" alt="yc"/><br /><sub><b>yc</b></sub></a><br /><a href="#translation-cloutiy" title="Translation">🌍</a></td>
</tr>

119
README.md
View file

@ -22,7 +22,7 @@
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-107-pink.svg"
><img src="https://img.shields.io/badge/all_contributors-111-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
@ -48,22 +48,11 @@
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
## We are working on FreeSewing v3 🚀
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
The default branch (`develop`) in this repo is where we work on the upcoming FreeSewing v3.
Check out [the roadmap](https://github.com/freesewing/freesewing/discussions/1278) to
see what we're working towards. There is still time to submit your ideas/suggestions for
what you would like to see in our mext major release.
The current production code -- what is running on freesewing.org -- is in the `v2` branch.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
## Getting started ⚡
As this is a monorepo. You'll need [NodeJS v16](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
As this is a monorepo. You'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
```bash
@ -77,11 +66,11 @@ yarn kickstart
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -91,33 +80,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -125,10 +124,10 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://discord.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
## Contributors ✨
@ -179,103 +178,107 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eltociear" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Irapeke"><img src="https://avatars.githubusercontent.com/u/39604334?v=4?s=100" width="100px;" alt="Irapeke"/><br /><sub><b>Irapeke</b></sub></a><br /><a href="#translation-Irapeke" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ibek"><img src="https://avatars.githubusercontent.com/u/1140579?v=4?s=100" width="100px;" alt="Ivo Bek"/><br /><sub><b>Ivo Bek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ibek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsawo"><img src="https://avatars.githubusercontent.com/u/1294706?v=4?s=100" width="100px;" alt="Jacek Sawoszczuk"/><br /><sub><b>Jacek Sawoszczuk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jsawo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgfichte"><img src="https://avatars.githubusercontent.com/u/1787162?v=4?s=100" width="100px;" alt="Jason Williams"/><br /><sub><b>Jason Williams</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jgfichte" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jejacks0n"><img src="https://avatars.githubusercontent.com/u/13765?v=4?s=100" width="100px;" alt="Jeremy Jackson"/><br /><sub><b>Jeremy Jackson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jejacks0n" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://jeroenhoek.nl"><img src="https://avatars.githubusercontent.com/u/683699?v=4?s=100" width="100px;" alt="Jeroen Hoek"/><br /><sub><b>Jeroen Hoek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jdhoek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joebidido"><img src="https://avatars.githubusercontent.com/u/39796210?v=4?s=100" width="100px;" alt="Joebidido"/><br /><sub><b>Joebidido</b></sub></a><br /><a href="#translation-Joebidido" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://joost.at/"><img src="https://avatars.githubusercontent.com/u/1708494?v=4?s=100" width="100px;" alt="Joost De Cock"/><br /><sub><b>Joost De Cock</b></sub></a><br /><a href="#maintenance-joostdecock" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joshessman"><img src="https://avatars.githubusercontent.com/u/9941074?v=4?s=100" width="100px;" alt="Josh Essman"/><br /><sub><b>Josh Essman</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joshessman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.earth.li/~kake/"><img src="https://avatars.githubusercontent.com/u/1956810?v=4?s=100" width="100px;" alt="Kake"/><br /><sub><b>Kake</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=KakeLP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/kapunahele"><img src="https://avatars.githubusercontent.com/u/4116963?v=4?s=100" width="100px;" alt="Kapunahele Wong"/><br /><sub><b>Kapunahele Wong</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kapunahelewong" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tangerineshark"><img src="https://avatars.githubusercontent.com/u/70777269?v=4?s=100" width="100px;" alt="Karen"/><br /><sub><b>Karen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=tangerineshark" title="Documentation">📖</a> <a href="#eventOrganizing-tangerineshark" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.kieranklaassen.com/"><img src="https://avatars.githubusercontent.com/u/209089?v=4?s=100" width="100px;" alt="Kieran Klaassen"/><br /><sub><b>Kieran Klaassen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kieranklaassen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kittycatou"><img src="https://avatars.githubusercontent.com/u/48165583?v=4?s=100" width="100px;" alt="Kittycatou"/><br /><sub><b>Kittycatou</b></sub></a><br /><a href="#translation-Kittycatou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.krishoward.org/"><img src="https://avatars.githubusercontent.com/u/5946286?v=4?s=100" width="100px;" alt="Kris"/><br /><sub><b>Kris</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=web-goddess" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kristinruben"><img src="https://avatars.githubusercontent.com/u/17237479?v=4?s=100" width="100px;" alt="Kristin Ruben"/><br /><sub><b>Kristin Ruben</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kristinruben" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/compilin"><img src="https://avatars.githubusercontent.com/u/40794281?v=4?s=100" width="100px;" alt="Lin"/><br /><sub><b>Lin</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=compilin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Loudepeuter"><img src="https://avatars.githubusercontent.com/u/38081954?v=4?s=100" width="100px;" alt="Loudepeuter"/><br /><sub><b>Loudepeuter</b></sub></a><br /><a href="#translation-Loudepeuter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MA-TATAS"><img src="https://avatars.githubusercontent.com/u/125549564?v=4?s=100" width="100px;" alt="MA-TATAS"/><br /><sub><b>MA-TATAS</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=MA-TATAS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/manufakturedelweiss"><img src="https://avatars.githubusercontent.com/u/38063391?v=4?s=100" width="100px;" alt="Marcus"/><br /><sub><b>Marcus</b></sub></a><br /><a href="#translation-manufakturedelweiss" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martintribo"><img src="https://avatars.githubusercontent.com/u/1613442?v=4?s=100" width="100px;" alt="Martin Tribo"/><br /><sub><b>Martin Tribo</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=martintribo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nadege"><img src="https://avatars.githubusercontent.com/u/3792171?v=4?s=100" width="100px;" alt="Nadege Michel"/><br /><sub><b>Nadege Michel</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Tests">⚠️</a> <a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nataliasayang"><img src="https://avatars.githubusercontent.com/u/48160791?v=4?s=100" width="100px;" alt="Natalia"/><br /><sub><b>Natalia</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nataliasayang" title="Code">💻</a> <a href="#design-nataliasayang" title="Design">🎨</a> <a href="#blog-nataliasayang" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nchilada"><img src="https://avatars.githubusercontent.com/u/692925?v=4?s=100" width="100px;" alt="Nikhil Chelliah"/><br /><sub><b>Nikhil Chelliah</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nchilada" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OysteinHoiby"><img src="https://avatars.githubusercontent.com/u/49735055?v=4?s=100" width="100px;" alt="OysteinHoiby"/><br /><sub><b>OysteinHoiby</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=OysteinHoiby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pat.forringer.com/"><img src="https://avatars.githubusercontent.com/u/136456?v=4?s=100" width="100px;" alt="Patrick Forringer"/><br /><sub><b>Patrick Forringer</b></sub></a><br /><a href="#plugin-destos" title="Plugin/utility libraries">🔌</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://pd75.github.io/"><img src="https://avatars.githubusercontent.com/u/10294795?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=PD75" title="Documentation">📖</a> <a href="#blog-PD75" title="Blogposts">📝</a> <a href="#translation-PD75" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phillipthelen"><img src="https://avatars.githubusercontent.com/u/298062?v=4?s=100" width="100px;" alt="Phillip Thelen"/><br /><sub><b>Phillip Thelen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=phillipthelen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QuentinFelix"><img src="https://avatars.githubusercontent.com/u/5288091?v=4?s=100" width="100px;" alt="Quentin FELIX"/><br /><sub><b>Quentin FELIX</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=QuentinFelix" title="Code">💻</a> <a href="#design-QuentinFelix" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RikHekker"><img src="https://avatars.githubusercontent.com/u/31843274?v=4?s=100" width="100px;" alt="Rik Hekker"/><br /><sub><b>Rik Hekker</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ARikHekker" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://resume.livingston-gray.com/faq.html"><img src="https://avatars.githubusercontent.com/u/6462?v=4?s=100" width="100px;" alt="Sam Livingston-Gray"/><br /><sub><b>Sam Livingston-Gray</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=geeksam" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sannek"><img src="https://avatars.githubusercontent.com/u/17491062?v=4?s=100" width="100px;" alt="Sanne"/><br /><sub><b>Sanne</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyrannogina"><img src="https://avatars.githubusercontent.com/u/19556565?v=4?s=100" width="100px;" alt="Sara Latorre"/><br /><sub><b>Sara Latorre</b></sub></a><br /><a href="#translation-Tyrannogina" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SirCharlotte"><img src="https://avatars.githubusercontent.com/u/63847870?v=4?s=100" width="100px;" alt="SirCharlotte"/><br /><sub><b>SirCharlotte</b></sub></a><br /><a href="#translation-SirCharlotte" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.instagram.com/celine_mge/"><img src="https://avatars.githubusercontent.com/u/57619777?v=4?s=100" width="100px;" alt="Slylele"/><br /><sub><b>Slylele</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Slylele" title="Documentation">📖</a> <a href="#translation-Slylele" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Soazillon"><img src="https://avatars.githubusercontent.com/u/40845940?v=4?s=100" width="100px;" alt="Soazillon"/><br /><sub><b>Soazillon</b></sub></a><br /><a href="#translation-Soazillon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SoneaTheBest"><img src="https://avatars.githubusercontent.com/u/64635425?v=4?s=100" width="100px;" alt="SoneaTheBest"/><br /><sub><b>SoneaTheBest</b></sub></a><br /><a href="#translation-SoneaTheBest" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://metafly.info/"><img src="https://avatars.githubusercontent.com/u/961256?v=4?s=100" width="100px;" alt="Stefan Sydow"/><br /><sub><b>Stefan Sydow</b></sub></a><br /><a href="#translation-stsydow" title="Translation">🌍</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/trentonTrama"><img src="https://avatars.githubusercontent.com/u/41126812?v=4?s=100" width="100px;" alt="Trent Trama"/><br /><sub><b>Trent Trama</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=trentonTrama" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woutervdub"><img src="https://avatars.githubusercontent.com/u/24414629?v=4?s=100" width="100px;" alt="Wouter van Wageningen"/><br /><sub><b>Wouter van Wageningen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woutervdub" title="Code">💻</a> <a href="#design-woutervdub" title="Design">🎨</a> <a href="#tool-woutervdub" title="Tools">🔧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amysews"><img src="https://avatars.githubusercontent.com/u/25280778?v=4?s=100" width="100px;" alt="amysews"/><br /><sub><b>amysews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=amysews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anna-puk"><img src="https://avatars.githubusercontent.com/u/100537439?v=4?s=100" width="100px;" alt="anna-puk"/><br /><sub><b>anna-puk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anna-puk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/beautifulsummermoon"><img src="https://avatars.githubusercontent.com/u/40396388?v=4?s=100" width="100px;" alt="beautifulsummermoon"/><br /><sub><b>beautifulsummermoon</b></sub></a><br /><a href="#translation-beautifulsummermoon" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/berce"><img src="https://avatars.githubusercontent.com/u/10439709?v=4?s=100" width="100px;" alt="berce"/><br /><sub><b>berce</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=berce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/biou"><img src="https://avatars.githubusercontent.com/u/1340376?v=4?s=100" width="100px;" alt="biou"/><br /><sub><b>biou</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=biou" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgeorgethe3rd"><img src="https://avatars.githubusercontent.com/u/16866285?v=4?s=100" width="100px;" alt="bobgeorgethe3rd"/><br /><sub><b>bobgeorgethe3rd</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Documentation">📖</a> <a href="#design-bobgeorgethe3rd" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brmlyklr"><img src="https://avatars.githubusercontent.com/u/22308713?v=4?s=100" width="100px;" alt="brmlyklr"/><br /><sub><b>brmlyklr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=brmlyklr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.chrisbarrett.fr"><img src="https://avatars.githubusercontent.com/u/2373249?v=4?s=100" width="100px;" alt="chri5b"/><br /><sub><b>chri5b</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dingcycle"><img src="https://avatars.githubusercontent.com/u/1681985?v=4?s=100" width="100px;" alt="dingcycle"/><br /><sub><b>dingcycle</b></sub></a><br /><a href="#translation-dingcycle" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drowned-in-books"><img src="https://avatars.githubusercontent.com/u/100040772?v=4?s=100" width="100px;" alt="drowned-in-books"/><br /><sub><b>drowned-in-books</b></sub></a><br /><a href="#question-drowned-in-books" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/evilrobotfromouterspace"><img src="https://avatars.githubusercontent.com/u/143673955?v=4?s=100" width="100px;" alt="evilrobotfromouterspace"/><br /><sub><b>evilrobotfromouterspace</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Aevilrobotfromouterspace" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DocSpencer77"><img src="https://avatars.githubusercontent.com/u/43393580?v=4?s=100" width="100px;" alt="gaylyndie"/><br /><sub><b>gaylyndie</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=DocSpencer77" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grimlokason"><img src="https://avatars.githubusercontent.com/u/5112238?v=4?s=100" width="100px;" alt="grimlokason"/><br /><sub><b>grimlokason</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=grimlokason" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://weblog.redisdead.net"><img src="https://avatars.githubusercontent.com/u/6494414?v=4?s=100" width="100px;" alt="hellgy"/><br /><sub><b>hellgy</b></sub></a><br /><a href="#design-hellgy" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackseye"><img src="https://avatars.githubusercontent.com/u/27834526?v=4?s=100" width="100px;" alt="jackseye"/><br /><sub><b>jackseye</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jackseye" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marckiesel"><img src="https://avatars.githubusercontent.com/u/39653780?v=4?s=100" width="100px;" alt="marckiesel"/><br /><sub><b>marckiesel</b></sub></a><br /><a href="#translation-marckiesel" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marpants"><img src="https://avatars.githubusercontent.com/u/61366665?v=4?s=100" width="100px;" alt="marpants"/><br /><sub><b>marpants</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=marpants" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tech.lgbt/@mergerg"><img src="https://avatars.githubusercontent.com/u/64447714?v=4?s=100" width="100px;" alt="mergerg"/><br /><sub><b>mergerg</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=raphaelsiz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mesil"><img src="https://avatars.githubusercontent.com/u/14284175?v=4?s=100" width="100px;" alt="mesil"/><br /><sub><b>mesil</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Amesil" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/starfetch"><img src="https://avatars.githubusercontent.com/u/80041179?v=4?s=100" width="100px;" alt="starfetch"/><br /><sub><b>starfetch</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Documentation">📖</a> <a href="#translation-starfetch" title="Translation">🌍</a> <a href="#design-starfetch" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timorl"><img src="https://avatars.githubusercontent.com/u/4363804?v=4?s=100" width="100px;" alt="timorl"/><br /><sub><b>timorl</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=timorl" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ttimearl"><img src="https://avatars.githubusercontent.com/u/77916590?v=4?s=100" width="100px;" alt="ttimearl"/><br /><sub><b>ttimearl</b></sub></a><br /><a href="#content-ttimearl" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisgloom"><img src="https://avatars.githubusercontent.com/u/15905991?v=4?s=100" width="100px;" alt="tuesgloomsday"/><br /><sub><b>tuesgloomsday</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chrisgloom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valadaptive"><img src="https://avatars.githubusercontent.com/u/79560998?v=4?s=100" width="100px;" alt="valadaptive"/><br /><sub><b>valadaptive</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=valadaptive" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viocky"><img src="https://avatars.githubusercontent.com/u/39279173?v=4?s=100" width="100px;" alt="viocky"/><br /><sub><b>viocky</b></sub></a><br /><a href="#translation-viocky" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woolishboy"><img src="https://avatars.githubusercontent.com/u/57816321?v=4?s=100" width="100px;" alt="woolishboy"/><br /><sub><b>woolishboy</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woolishboy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cloutiy"><img src="https://avatars.githubusercontent.com/u/8433147?v=4?s=100" width="100px;" alt="yc"/><br /><sub><b>yc</b></sub></a><br /><a href="#translation-cloutiy" title="Translation">🌍</a></td>
</tr>

19
SECURITY.md Normal file
View file

@ -0,0 +1,19 @@
# Security Policy
## Supported Versions
Until v3 is GA I will support both v2 and v3.
Once v3 is out of beta, I will drop support for v2 shortly after.
| Version | Supported |
| ------- | ------------------ |
| 3.x | :white_check_mark: |
| 2.x | :white_check_mark: |
| < 2.0 | :x: |
## Reporting a Vulnerability
- You can report an issue here: https://next.freesewing.org/support
- Or you can email joost, the FreeSewing maintainer, at joost@joost.at.
I do not have money to spend on a bug bounty program, but if you provide your snail mail (physical) address, I will send you some stickers.

14
ansible/README.md Normal file
View file

@ -0,0 +1,14 @@
# Using Ansible to manage FreeSewing infrastructure
This folder holds [Ansible](https://www.ansible.com/) playbooks and
configuration to manage FreeSewing's infrastructure.
These playbooks do things like installing updates on our servers, handling
maintenance tasks, and so on.
Because of the nature of these tasks, they typically require the kind of access
to our infrastructure that is only available to the maintainer.
As such, you can probably not use these playbooks, but you are welcome to look
around if you are curious or would like to learn about using Ansible in some
real-world scenario.

16
ansible/ansible.cfg Normal file
View file

@ -0,0 +1,16 @@
[defaults]
# The user that will be connecting to remote systems
remote_user = ansible-bot
# Private key file for authentication
private_key_file = ~/.ssh/ansible-bot_rsa
# Set local and remote tmp folder
local_tmp = /tmp/ansible
remote_tmp = /tmp/ansible
# The location of the Ansible inventory
inventory=./inventory.yaml
# Use SSH for transport
transport=ssh

View file

@ -1,5 +0,0 @@
---
ansible_ssh_private_key_file: ~/.ssh/ansibot_id_rsa
ansible_user: ansibot
tmp: /tmp/ansible
backup_dir: /fs/backup

View file

@ -6,16 +6,12 @@ local:
all:
children:
main:
v2:
hosts:
backend.freesewing.org:
db: freesewing
next:
v3:
hosts:
next.backend.freesewing.org:
db: next_freesewing
2022:
hosts:
maze.backend.freesewing.org:
db: freesewing
backend3.freesewing.org:
monorepo: /fs/monorepo

View file

@ -0,0 +1,17 @@
# An Ansible playbook to install NodeJS dependencies (npm install)
#
# The FreeSewing production backend runs from the `production-backend`
# branch on our backend server. This playbook runs `yarn install` in
# the repository root
---
- hosts: '!localhost'
gather_facts: false
# Use binaries (yarn & node) from nvm (lts/hydrogen)
environment:
PATH: "/home/ansible-bot/.nvm/versions/node/v18.17.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/sbin:/usr/sbin:/usr/local/sbin"
tasks:
- name: Install monorepo dependencies (yarn install)
community.general.yarn:
# Don't install dev dependencies
production: true
path: "{{ monorepo }}"

View file

@ -0,0 +1,22 @@
# An Ansible playbook to update the backend repository.
#
# The FreeSewing production backend runs from the `production-backend`
# branch on our backend server. This playbook updates the repository to
# the latest version of the `production-backend` branch.
---
- hosts: '!localhost'
gather_facts: false
tasks:
- name: Bring monorepo up to date with production-backend branch
git:
# We don't need history
depth: 1
# We don't need other branches
single_branch: true
# Monorepo url
repo: git@github.com:freesewing/freesewing.git
# Destination folder
dest: "{{ monorepo }}"
# Check out the production-backend branch
version: production-backend

View file

@ -1,20 +0,0 @@
---
- hosts: '!localhost'
gather_facts: false
become: true
tasks:
- name: Copy backup script to host
copy:
src: fs_backup_mongo.sh
dest: /usr/sbin
owner: root
group: root
mode: '0755'
- name: Backup mongo database
shell:
cmd: "/usr/sbin/fs_backup_mongo.sh {{ db }}"
args:
executable: /bin/bash

View file

@ -1,10 +0,0 @@
---
# Hardcoding this to prevent accidentally dropping the production database
- hosts: backend.freesewing.org
gather_facts: false
become: true
tasks:
- name: Clone production database
shell: "mongodump --archive --db=freesewing | mongorestore --archive --nsFrom='freesewing.*' --nsTo='next_freesewing.*'"

View file

@ -1,11 +0,0 @@
---
- hosts: '!localhost'
gather_facts: false
become: true
tasks:
- name: Update all packages to their latest version
apt:
name: '*'
state: latest
update_cache: yes

View file

@ -0,0 +1,12 @@
# An Ansible playbook to install the latest updates on a (debian) Linux system
---
- hosts: '!localhost'
gather_facts: false
become: true
tasks:
- name: Update all packages to their latest version
apt:
name: '*'
state: latest
update_cache: yes

View file

@ -1,19 +0,0 @@
---
- hosts: '!localhost'
gather_facts: false
become: true
tasks:
- name: Copy backup script to host
copy:
src: fs_backup_mongo.sh
dest: /usr/sbin
owner: root
group: root
mode: '0755'
- name: Schedule cron job for database backup
cron:
name: "Backup mongodb {{ db }}"
minute: 25
hour: 8
job: "/usr/sbin/fs_backup_mongo.sh {{ db }}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.6 MiB

After

Width:  |  Height:  |  Size: 5 MiB

Before After
Before After

View file

@ -2,73 +2,76 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1000"
height="1000"
viewBox="0 0 264.58333 264.58334"
width="147.813mm"
height="119.13mm"
viewBox="0 0 147.81301 119.13"
version="1.1"
id="svg562"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="aaron.svg">
<defs
id="defs556" />
id="svg11398"
inkscape:version="1.2.2 (732a01da63, 2022-12-09, custom)"
sodipodi:docname="aaron.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="base"
id="namedview11400"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.45254834"
inkscape:cx="60.674334"
inkscape:cy="638.30638"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1043"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2.0460067"
inkscape:cx="318.91391"
inkscape:cy="419.10909"
inkscape:window-width="3840"
inkscape:window-height="2096"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata559">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<defs
id="defs11395" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="primary"
style="fill:#5c3566;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 38.529003,39.280318 h -5.2e-4 c 1.32715,7.109012 12.19229,7.108608 28.485595,7.108608 h 0.0047 c 1.932466,0 3.788574,8e-6 5.561467,-0.01185 13.174985,-0.08805 21.754388,-0.83081 22.924132,-7.096768 m 0,1.4e-5 C 88.503243,76.835923 89.957102,76.838753 67.018786,76.838753 h -0.0021 c -22.938313,0 -21.487053,-0.002 -28.488183,-37.558431 l 2e-5,-1.4e-5 m -0.01149,1e-5 -10.640692,1.988507 c 5.548045,29.762349 2.424554,59.519915 -22.7288467,59.519915 0,0 4.0111246,48.08522 4.0111246,72.12737 v 55.48086 c 38.5653291,7.94358 77.1301191,6.61511 115.6952711,0 v -55.48086 c 0,-24.04215 5.18055,-72.12737 5.18055,-72.12737 -25.15341,0 -29.44684,-29.757566 -23.89879,-59.519915 L 95.492878,39.280318 C 88.491744,76.835913 89.945595,76.838753 67.007279,76.838753 h -0.0021 c -22.938313,0 -21.487053,-0.002 -28.488184,-37.558435 z m 132.366597,0.04909 -12.30313,1.847951 c 6.61168,44.020593 -9.77025,59.936421 -22.61154,59.936421 0,0 3.61735,48.08291 3.61735,72.1248 v 55.48136 c 39.32211,8.30765 77.85098,7.89569 115.70043,0 v -55.48136 c 0,-24.04189 4.39973,-72.1248 4.39973,-72.1248 -14.32984,0 -31.06955,-24.907167 -23.119,-60.074915 l -10.91768,-1.571479 c -1.32794,7.109092 -11.91685,7.246586 -28.21016,7.246586 h -0.005 c -16.29305,0 -25.22579,-0.275477 -26.55135,-7.384564 z"
inkscape:connector-curvature="0" />
class="st2"
d="m 93.729958,1.8383061 -8.63071,1.9182301 c 0.19315,1.90765 0.45508,4.62756 0.71967,7.9110398 0.40216,5.00592 0.46037,6.985 0.47889,7.67292 0.11377,4.29419 0.15611,6.49287 -0.47889,9.1096 -0.41275,1.69598 -0.90752,3.65125 -2.39713,5.75469 -0.31221,0.43921 -1.88912,2.60879 -4.79425,4.31535 -0.75141,0.44186 -1.41816,0.74877 -1.91823,0.9578 v 74.797694 c 1.11125,0.16669 2.23044,0.32809 3.35757,0.4789 10.48543,1.41287 20.581932,1.98173 30.207482,1.91823 h 1.67745 c 9.62554,0.0635 19.7194,-0.50536 30.20748,-1.91823 1.12713,-0.15081 2.24631,-0.31221 3.35756,-0.4789 V 39.477936 c -0.50006,-0.20903 -1.16681,-0.51859 -1.91822,-0.9578 -2.90513,-1.70656 -4.48205,-3.87614 -4.79425,-4.31535 -1.48961,-2.10079 -1.98438,-4.05871 -2.39713,-5.75469 -0.635,-2.61673 -0.59267,-4.81541 -0.4789,-9.1096 0.0185,-0.68527 0.0767,-2.66436 0.4789,-7.67292 0.26458,-3.2834798 0.52652,-6.0033898 0.71967,-7.9110398 l -8.63071,-1.9182301 c -6.08766,5.9634901 -28.879199,6.1419001 -34.766252,0 z"
id="path18"
sodipodi:nodetypes="cccccccccccccccccccccccc"
style="fill:none;stroke:#ffcc00;stroke-width:0.264583;stroke-miterlimit:10" />
<path
style="fill:none;stroke:#babdb6;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 34.612789,41.076122 c 6.837124,42.476678 8.075205,40.095694 32.555719,40.095694 24.470134,0 27.070238,-0.03333 31.961446,-40.158494 m 67.856526,-0.06552 c 1.85873,9.941621 7.53912,10.029462 31.90319,10.029462 24.28367,0 28.63739,-0.34771 30.55382,-9.978318 M 6.4853656,104.98005 C 32.598272,103.86118 37.705852,73.757191 31.902396,41.539947 m 69.450644,-0.144319 c -5.868649,32.51906 0.4632,62.926772 27.16705,63.605052 m 8.72879,-0.0279 c 14.96612,-0.88936 33.93713,-16.944855 25.6295,-63.346122 m 69.41344,-0.181197 c -8.47506,47.016404 11.00166,62.962679 26.05463,63.549879 M 10.178575,223.6915 c 37.88228,7.6426 75.764049,6.37259 113.646145,-0.0327 m 16.76944,0.46895 c 37.90168,6.24538 75.80908,5.94278 113.7118,-0.0136"
id="secondary"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csccsccccccccccccc" />
id="path24"
style="opacity:0.3;stroke-width:0.264583"
d="m 140.00558,65.370056 c -0.23548,1.67217 -0.55033,3.33375 -0.89693,4.99004 -0.36248,1.651 -0.78052,3.29142 -1.2409,4.92125 -0.23548,0.81227 -0.48154,1.6219 -0.73819,2.42888 -0.27516,0.79904 -0.53181,1.60602 -0.8255,2.40241 -0.29368,0.79375 -0.57414,1.59279 -0.89164,2.37861 l -0.46567,1.18268 -0.49212,1.16946 c -1.34938,3.10621 -2.87867,6.13304 -4.58788,9.05404 -0.86783,1.45257 -1.75948,2.8919 -2.70669,4.29155 -0.95779,1.3917 -1.93675,2.772834 -2.97656,4.103674 0.94456,-1.40228 1.8759,-2.807224 2.7596,-4.243904 0.89959,-1.42611 1.74625,-2.88396 2.56911,-4.3524 0.80433,-1.47902 1.60867,-2.95804 2.35214,-4.47146 0.37307,-0.75406 0.73025,-1.51606 1.08744,-2.28071 0.34131,-0.76993 0.6985,-1.53193 1.01865,-2.30981 1.34673,-3.08504 2.5056,-6.2521 3.51102,-9.46679 0.50535,-1.60602 0.96308,-3.23056 1.37848,-4.86304 0.42862,-1.63513 0.79375,-3.28348 1.14564,-4.93448 z M 81.270728,50.264996 c 0.73025,2.45533 1.48431,4.90008 2.30981,7.32366 0.80963,2.42623 1.66952,4.83659 2.58498,7.22578 1.82827,4.77837 3.83381,9.48531 6.05631,14.08906 2.18282,4.62491 4.616983,9.12548 7.180803,13.54931 2.579679,4.41854 5.341929,8.728604 8.239119,12.951344 -1.53987,-2.04523 -3.00831,-4.14601 -4.45558,-6.260034 -1.42346,-2.12989 -2.79929,-4.29419 -4.132789,-6.48229 -0.65617,-1.10067 -1.32292,-2.19604 -1.94469,-3.31787 l -0.94456,-1.67482 -0.918113,-1.69068 c -0.62177,-1.12184 -1.19327,-2.26748 -1.79123,-3.40255 -0.5715,-1.14829 -1.15887,-2.28864 -1.70656,-3.44752 -0.54504,-1.16152 -1.09537,-2.31775 -1.60867,-3.4925 -0.25929,-0.58737 -0.52916,-1.16681 -0.78052,-1.75683 l -0.75406,-1.77006 -0.37571,-0.88371 -0.35983,-0.89165 -0.71967,-1.78329 c -0.47096,-1.19327 -0.91546,-2.39448 -1.35996,-3.59569 -0.87048,-2.41035 -1.69068,-4.83922 -2.45004,-7.28662 -0.74877,-2.45269 -1.45256,-4.91596 -2.06904,-7.40304 z" />
<path
inkscape:connector-curvature="0"
d="m 38.528697,39.280318 h -5.2e-4 c 1.32715,7.109012 12.19229,7.108608 28.4856,7.108608 h 0.005 c 1.93246,0 3.78857,8e-6 5.56146,-0.01185 13.17499,-0.08805 21.75439,-0.83081 22.92414,-7.096768 m 0,1.4e-5 c -7.00114,37.555601 -5.54728,37.558431 -28.4856,37.558431 h -0.002 c -22.93831,0 -21.48705,-0.002 -28.48818,-37.558431 l 2e-5,-1.4e-5"
style="fill:#75507b;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
id="inside"
sodipodi:nodetypes="ccsscccsscc" />
id="path82"
style="fill:none;stroke:#55d400;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.267626, 0.267626, 0.267626, 0.267626, 0.267626, 0.267626"
class="st7"
d="m 2.6292368,110.88092 c 0.63236,0.09 2.87636,0.43138 3.51401,0.51605 10.4854302,1.41287 20.5819302,1.98173 30.2074802,1.91823 h 1.67745 c 9.62555,0.0635 19.7194,-0.50536 30.20748,-1.91823 1.03717,-0.14023 2.06904,-0.28575 3.09298,-0.43921 M 61.362107,3.4503362 c -0.20109,1.87061 -0.62209,5.90214 -0.86022,8.6299898 -0.46831,5.32077 -0.5371,7.42421 -0.55827,8.15181 -0.12964,4.56142 -0.17992,6.90034 0.55827,9.68111 0.4789,1.80181 1.05304,3.88144 2.78606,6.11452 0.36248,0.46567 2.19605,2.77283 5.57477,4.58523 0.75407,0.40481 1.82464,0.91658 2.46932,1.1012 M 12.540547,3.5646362 c 0.20109,1.87061 0.62209,5.78784 0.86022,8.5156898 0.46831,5.32077 0.5371,7.42421 0.55827,8.15181 0.12964,4.56142 0.17991,6.90034 -0.55827,9.68111 -0.4789,1.80181 -1.05304,3.88144 -2.78607,6.11452 -0.36247,0.46567 -2.1960402,2.77283 -5.5747702,4.58523 -0.75406,0.40481 -1.9396,0.90647 -2.48729,1.12342 m 0.11863,70.162094 c 0.63235,0.09 2.77348,0.37423 3.41112,0.45889 10.4854402,1.41288 20.5819402,1.98173 30.2074802,1.91823 h 1.67746 c 9.62554,0.0635 19.7194,-0.50535 30.20748,-1.91823 1.03716,-0.14023 2.06904,-0.28575 3.09298,-0.4392 M 55.915497,2.2817361 c -0.65352,4.5190901 -2.72405,14.2277199 -2.88015,14.7701099 -0.0979,0.33602 -0.12965,0.59531 -0.30956,0.87842 -0.25136,0.39952 -0.58738,0.61912 -0.77259,0.73289 -9.03411,4.35898 -22.80977,4.58073 -30.19425,0 -0.1852,-0.11641 -0.52122,-0.33337 -0.77258,-0.73289 -0.17992,-0.28575 -0.21167,-0.5424 -0.30956,-0.87842 -0.17727,-0.60589 -2.65896,-12.3979498 -2.99498,-14.7156999 m 36.05161,2.1867301 c -9.64448,4.95103 -24.14723,4.747 -33.63491,0" />
<path
id="path130"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.267626, 0.267626, 0.267626, 0.267626, 0.267626, 0.267626"
class="st7"
d="m 145.43463,110.89235 c -0.63235,0.09 -2.4763,0.41995 -3.11394,0.50462 -10.48544,1.41287 -20.58194,1.98173 -30.20748,1.91823 h -1.67746 c -9.62554,0.0635 -19.719392,-0.50536 -30.207482,-1.91823 -1.03716,-0.14023 -2.44623,-0.41148 -3.47017,-0.56494 M 86.808878,3.5646362 c 0.20109,1.87061 0.57637,5.78784 0.8145,8.5156898 0.46831,5.32077 0.5371,7.42421 0.55827,8.15181 0.12964,4.56142 0.17991,6.90034 -0.55827,9.68111 -0.4789,1.80181 -1.05305,3.88144 -2.78607,6.11452 -0.36248,0.46567 -2.19604,2.77283 -5.57477,4.58523 -0.75406,0.40481 -1.97011,0.9085 -2.5178,1.12545 M 135.51878,3.4503362 c -0.20108,1.87061 -0.55351,5.90214 -0.79163,8.6299898 -0.46832,5.32077 -0.53711,7.42421 -0.55827,8.15181 -0.12965,4.56142 -0.17992,6.90034 0.55827,9.68111 0.47889,1.80181 1.05304,3.88144 2.78606,6.11452 0.36248,0.46567 2.19604,2.77283 5.57477,4.58523 0.75406,0.40481 1.77959,0.77502 2.32727,0.99197 m 2.3e-4,70.236394 c -0.63236,0.09 -2.39629,0.43138 -3.03394,0.51604 -10.48544,1.41288 -20.58194,1.98173 -30.20748,1.91823 h -1.67745 c -9.62555,0.0635 -19.719402,-0.50535 -30.207482,-1.91823 -1.03717,-0.14023 -2.48053,-0.37719 -3.50446,-0.53064 M 129.80973,2.2535161 c -4.98481,7.6282401 -32.797619,7.5529801 -37.460382,0.0313" />
<path
id="path200"
style="opacity:0.3;stroke-width:0.264583"
d="m 4.3281968,54.821116 c 0.10055,1.48696 0.17728,2.97921 0.19844,4.46882 0.0185,1.4896 -0.008,2.98185 -0.0926,4.4741 -0.0953,1.49225 -0.24342,2.97921 -0.47361,4.45558 -0.22489,1.47638 -0.52916,2.93952 -0.91281,4.3815 0.18256,-1.48166 0.34925,-2.95804 0.50271,-4.43441 0.14552,-1.47638 0.27252,-2.9554 0.35719,-4.43442 0.0953,-1.47902 0.14552,-2.96333 0.20902,-4.45029 l 0.082,-2.23044 c 0.045,-0.74083 0.0714,-1.48696 0.12964,-2.23044 z m 1.84944,50.209974 c 4.7836702,-0.42069 9.6520002,-0.26194 14.3801102,0.73025 2.36273,0.46831 4.69635,1.03452 7.04585,1.51342 2.3495,0.48948 4.70694,0.93398 7.06967,1.36525 2.35743,0.44714 4.72016,0.84402 7.10141,1.11389 2.38655,0.28046 4.7678,0.54769 7.15963,0.67469 2.38919,0.12965 4.78896,0.0714 7.1755,-0.15081 2.38919,-0.20638 4.75985,-0.59531 7.10671,-1.12183 -2.31511,0.64293 -4.68842,1.08479 -7.07761,1.38112 -2.39183,0.27517 -4.80748,0.381 -7.22048,0.29898 -2.413,-0.0635 -4.80748,-0.34925 -7.19666,-0.60325 -2.39448,-0.25665 -4.77838,-0.64029 -7.14375,-1.07421 -2.36273,-0.44714 -4.72282,-0.90752 -7.07496,-1.41552 -2.35215,-0.50535 -4.69371,-1.05833 -7.02998,-1.5875 -1.16946,-0.25665 -2.34421,-0.48683 -3.52954,-0.65881 -1.18269,-0.17463 -2.37596,-0.28575 -3.57188,-0.37571 -2.38918,-0.17992 -4.7942502,-0.19579 -7.1940202,-0.09 z M 12.294807,85.118556 c 1.76477,-0.69585 3.57452,-1.28588 5.40014,-1.80975 1.83092,-0.51329 3.69094,-0.92604 5.56684,-1.25148 1.87325,-0.33602 3.76237,-0.55827 5.64091,-0.80433 l 5.64357,-0.73554 c 3.76237,-0.48684 7.53798,-0.87578 11.20246,-1.80446 1.83885,-0.43921 3.65918,-0.96573 5.4557,-1.56634 0.89959,-0.29633 1.79388,-0.60854 2.68023,-0.94191 0.88636,-0.33602 1.76742,-0.68527 2.64584,-1.04511 -1.70657,0.8308 -3.4634,1.56105 -5.2414,2.23044 -1.78594,0.65088 -3.60098,1.22502 -5.43983,1.7145 -0.92075,0.24606 -1.84415,0.47096 -2.78077,0.65881 -0.93663,0.18786 -1.8759,0.34396 -2.81517,0.48684 -1.87854,0.28575 -3.75973,0.5371 -5.64092,0.78581 l -5.6515,0.68792 c -1.88383,0.22225 -3.76502,0.45772 -5.63562,0.7276 -1.87061,0.27517 -3.72798,0.64029 -5.56419,1.10067 -1.8415,0.4445 -3.66183,0.9816 -5.46629,1.56633 z m -1.06627,-12.30577 c 0.62177,0.18521 1.24354,0.37306 1.86002,0.56621 0.61912,0.1905 1.23296,0.39158 1.86002,0.55033 0.62442,0.17198 1.24354,0.3519 1.87325,0.50006 0.62706,0.15611 1.25148,0.3228 1.88383,0.45509 2.51884,0.5715 5.06148,1.02923 7.62265,1.34937 2.56117,0.32809 5.13556,0.52917 7.71789,0.61119 2.58234,0.0794 5.16996,0.0582 7.76288,-0.0503 -2.5744,0.31221 -5.16996,0.47096 -7.76817,0.46302 -2.59821,0.003 -5.19906,-0.17727 -7.77875,-0.50006 -2.57968,-0.33338 -5.14085,-0.81492 -7.65439,-1.47373 -0.62971,-0.15611 -1.25413,-0.33602 -1.87854,-0.52123 -0.62442,-0.17727 -1.2409,-0.38365 -1.85738,-0.58473 -0.61912,-0.19579 -1.22237,-0.43656 -1.83092,-0.6641 -0.60589,-0.22755 -1.21179,-0.46303 -1.81239,-0.70115 z" />
<path
id="path16"
style="fill:none;stroke:#d40000;stroke-width:0.264583;stroke-miterlimit:10"
class="st2"
d="m 54.355617,1.8383061 c -6.08766,5.9634901 -28.88185,6.1419001 -34.76889,0 m 18.2245,114.8344539 c 9.62554,0.0635 19.71939,-0.50536 30.20747,-1.91823 1.12713,-0.15081 2.24632,-0.31221 3.35757,-0.4789 V 39.477936 c -0.50007,-0.20903 -1.16682,-0.51859 -1.91823,-0.9578 -2.90513,-1.70656 -4.48204,-3.87614 -4.79425,-4.31535 -1.48961,-2.10079 -1.98438,-4.05871 -2.39713,-5.75469 -0.635,-2.61673 -0.59266,-4.81541 -0.47889,-9.1096 0.0185,-0.68527 0.0767,-2.66436 0.47889,-7.67292 0.26459,-3.2834798 0.52652,-6.0033898 0.71967,-7.9110398 l -8.63071,-1.9182301 c 0,0 -2.54529,13.2900199 -2.71727,13.9117899 -0.09,0.32279 -0.11642,0.56621 -0.28046,0.83873 -0.22754,0.381 -0.53181,0.59002 -0.6985,0.6985 -6.89874,4.08137 -21.71488,3.6852 -27.37644,0 -0.16668,-0.11112 -0.47095,-0.3175 -0.6985,-0.6985 -0.16139,-0.27252 -0.1905,-0.51858 -0.28045,-0.83873 -0.17198,-0.62177 -2.71727,-13.9117899 -2.71727,-13.9117899 l -8.63071,1.9182301 c 0.19314,1.90765 0.45508,4.62756 0.71966,7.9110398 0.40217,5.00592 0.46038,6.985 0.4789,7.67292 0.11377,4.29419 0.1561,6.49287 -0.4789,9.1096 -0.41275,1.69598 -0.90752,3.65125 -2.3971202,5.75469 -0.31221,0.43921 -1.88913,2.60879 -4.79425,4.31535 -0.75142,0.44186 -1.41817,0.74877 -1.91823,0.9578 v 74.797694 c 1.11125,0.16669 2.23044,0.32809 3.35756,0.4789 10.4854402,1.41287 20.5819402,1.98173 30.2074802,1.91823 z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

@ -1,61 +1,418 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="1000"
height="1000"
viewBox="0 0 264.58333 264.58334"
width="145.93066mm"
height="139.33513mm"
viewBox="0 0 145.93067 139.33513"
version="1.1"
id="svg562">
id="svg11858"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="albert.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview11860"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="1.4467451"
inkscape:cx="264.38658"
inkscape:cy="264.38658"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs556" />
<metadata
id="metadata559">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
id="defs11855" />
<g
id="layer1">
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-148.98377,-87.821988)">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#228be6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 59.48,6.377 c -1.69,0 -3.44,0.215 -4.58,1.901 -1.15,1.685 -1.97,4.072 -2.65,7.512 -1.35,6.86 -2.03,17.96 -2.03,35.6 h 3.04 c 0,-17.56 0.71,-28.58 1.97,-35.02 0.64,-3.22 1.43,-5.28 2.18,-6.384 0.75,-1.104 1.25,-1.294 2.01,-1.294 0.17,0 0.49,0.1 1.02,0.738 0.54,0.64 1.17,1.76 1.78,3.24 1.23,2.96 2.44,7.38 3.63,12.71 2.38,10.64 4.73,24.95 7.57,39.27 0.9,4.5 1.84,9 2.85,13.4 -2.16,9.27 -4.61,17.99 -7.5,25.05 -2.16,5.3 -4.57,9.6 -7.18,12.5 -2.61,2.9 -5.3,4.4 -8.32,4.4 v 3.1 c 4.05,0 7.61,-2.1 10.59,-5.5 2.97,-3.3 5.49,-7.9 7.72,-13.4 2.37,-5.73 4.42,-12.49 6.25,-19.69 1.83,7.2 3.88,13.96 6.25,19.69 2.24,5.5 4.75,10.1 7.73,13.4 2.97,3.4 6.54,5.5 10.59,5.5 V 120 c -3.03,0 -5.72,-1.5 -8.33,-4.4 -2.61,-2.9 -5.02,-7.2 -7.18,-12.5 -2.89,-7.06 -5.34,-15.78 -7.5,-25.05 1.01,-4.4 1.96,-8.9 2.85,-13.4 2.85,-14.32 5.19,-28.63 7.57,-39.27 1.19,-5.33 2.4,-9.75 3.63,-12.71 0.62,-1.48 1.25,-2.6 1.78,-3.24 0.54,-0.643 0.85,-0.738 1.03,-0.738 0.76,0 1.26,0.19 2.01,1.294 0.75,1.104 1.54,3.164 2.14,6.384 1.3,6.44 2,17.46 2,35.02 h 3 c 0,-17.64 -0.6,-28.74 -2,-35.6 -0.7,-3.44 -1.5,-5.827 -2.6,-7.512 -1.18,-1.686 -2.93,-1.901 -4.61,-1.901 -1.36,0 -2.44,0.08 -3.3,1.109 -0.86,1.033 -1.57,2.376 -2.25,4.024 -1.37,3.29 -2.58,7.8 -3.79,13.2 -2.42,10.8 -4.75,25.09 -7.59,39.35 -0.46,2.33 -0.94,4.65 -1.43,6.96 C 77.34,68.71 76.86,66.39 76.4,64.06 73.57,49.8 71.23,35.51 68.82,24.71 67.61,19.31 66.39,14.8 65.03,11.51 64.35,9.862 63.64,8.519 62.77,7.486 61.91,6.454 60.84,6.377 59.48,6.377 Z"
id="pri3" />
class="st2"
d="m 291.29456,141.37554 3.48456,81.4017 c -0.74877,0.51065 -1.57692,1.016 -2.48973,1.4949 -3.41577,1.78594 -6.69396,2.4765 -9.21014,2.73844 l -1.24355,-79.66075 c 2.69346,-0.72232 4.68842,-1.59544 5.9743,-2.24102 1.24089,-0.62177 2.29658,-1.27 2.98714,-2.48973 0.27517,-0.48684 0.42069,-0.93663 0.49742,-1.24354 -1.93675,-1.97644 -4.30742,-4.77044 -6.47171,-8.46403 -2.17752,-3.71475 -3.25702,-6.83154 -3.98198,-8.96143 -0.66939,-1.96321 -1.83885,-5.75998 -2.48973,-10.70504 -0.20373,-1.54782 -0.31221,-2.87073 -0.37306,-3.85763 h -10.2321 m -1.96784,0 h -0.97366 -0.66411 -0.94192 m -1.9513,0 h -10.28038 c -0.0609,0.98954 -0.16934,2.30981 -0.37307,3.85763 -0.65087,4.94241 -1.82033,8.74183 -2.48972,10.70504 -0.72761,2.12989 -1.80711,5.24668 -3.98198,8.96143 -2.16429,3.69359 -4.53496,6.48759 -6.47171,8.46403 0.0794,0.30956 0.22225,0.7567 0.49742,1.24354 0.69056,1.21973 1.74625,1.86796 2.98714,2.48973 1.28588,0.64558 3.28083,1.5187 5.97429,2.24102 l -1.24354,79.66075 c -2.51619,-0.26194 -5.79437,-0.9525 -9.21014,-2.73844 -0.91282,-0.47625 -1.74096,-0.98161 -2.48973,-1.4949 l 3.48456,-81.4017"
id="path162"
sodipodi:nodetypes="ccccccccccsccccccccccccccccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#7048e8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 59.63,6.331 c -0.64,0 -1.3,0.06 -1.9,0.173 -0.35,0.07 -0.67,0.171 -0.98,0.263 1.54,0.993 2.51,1.705 3,2.024 0.1,0.08 0.27,0.128 0.69,0.639 0.54,0.64 1.17,1.76 1.78,3.24 1.23,2.96 2.44,7.38 3.63,12.71 2.38,10.64 4.73,24.95 7.57,39.27 0.9,4.5 1.84,9 2.85,13.4 -2.16,9.27 -4.61,17.99 -7.5,25.05 -2.16,5.3 -4.57,9.6 -7.18,12.5 -2.61,2.9 -5.3,4.4 -8.32,4.4 v 3.1 c 4.05,0 7.61,-2.1 10.59,-5.5 2.97,-3.3 5.49,-7.9 7.72,-13.4 2.37,-5.73 4.42,-12.49 6.25,-19.69 1.83,7.2 3.88,13.96 6.25,19.69 2.24,5.5 4.75,10.1 7.73,13.4 2.97,3.4 6.54,5.5 10.59,5.5 V 120 c -3.03,0 -5.72,-1.5 -8.33,-4.4 -2.61,-2.9 -5.02,-7.2 -7.18,-12.5 -2.89,-7.06 -5.34,-15.78 -7.5,-25.05 1.01,-4.4 1.96,-8.9 2.85,-13.4 2.85,-14.32 5.19,-28.63 7.57,-39.27 1.19,-5.33 2.4,-9.75 3.63,-12.71 0.62,-1.48 1.25,-2.6 1.78,-3.24 0.43,-0.511 0.6,-0.559 0.69,-0.639 0.5,-0.319 1.47,-1.031 3,-2.024 -0.3,-0.09 -0.62,-0.197 -0.98,-0.263 -1.19,-0.223 -2.62,-0.262 -3.7,0.07 -0.57,0.177 -1,0.513 -1.34,0.913 -0.86,1.033 -1.57,2.376 -2.25,4.023 -1.37,3.29 -2.58,7.8 -3.79,13.2 -2.42,10.8 -4.75,25.09 -7.59,39.35 -0.46,2.33 -0.94,4.65 -1.43,6.96 C 77.34,68.71 76.86,66.39 76.4,64.06 73.57,49.8 71.23,35.51 68.82,24.71 67.61,19.31 66.39,14.8 65.03,11.51 64.35,9.862 63.64,8.519 62.77,7.486 62.43,7.086 62,6.75 61.43,6.573 60.89,6.408 60.27,6.335 59.63,6.331 Z"
id="sec1" />
class="st2"
d="m 250.96677,109.38741 c 0.76683,-5.72922 1.13835,-13.962734 3.40092,-18.063532 2.24027,-3.131164 3.4277,-2.634702 4.67403,-1.74126 2.64507,2.275017 4.19188,15.671492 4.86176,32.179542 0.0993,1.69052 0.30037,3.26447 0.58711,4.73008 m 1.13702,4.18188 c 4.81912,13.53685 17.71439,15.39396 18.25583,15.98665"
id="path168"
sodipodi:nodetypes="ccccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
id="sec4"
d="m 159.3,51.39 c 0,6.84 -2.6,19.15 -7.6,31.46 -1.4,3.16 -2.8,6.32 -4.5,9.39 -2.7,5.08 -5.8,9.96 -9.5,14.06 v 154.4 h 49.8 49.8 V 106.3 c -3.6,-4.1 -6.8,-8.98 -9.5,-14.06 -1.6,-3.07 -3.1,-6.23 -4.4,-9.39 -5.1,-12.31 -7.6,-24.62 -7.6,-31.46 h -28.3 z"
style="fill:#4dabf7;stroke:#212121;stroke-width:0.6;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
class="st10"
d="m 272.94273,89.473824 c -0.92477,-0.244877 -0.11396,-0.162324 -1.47178,-0.25432 -2.12894,0.336712 -2.77652,3.009088 -3.40968,5.509324 -1.80649,8.103472 -2.2748,22.021422 -2.79879,29.764912 -0.88644,9.70189 -6.98453,15.347 -7.37082,15.68302 -6.14785,5.49488 -9.61455,5.4155 -12.40621,6.7594"
id="path282-5-4"
sodipodi:nodetypes="cccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#228be6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 168.9,6.377 c -1.7,0 -3.5,0.215 -4.6,1.901 -1.2,1.685 -2,4.072 -2.7,7.512 -1.3,6.86 -2,17.96 -2,35.6 h 3 c 0,-17.56 0.7,-28.58 2,-35.02 0.6,-3.22 1.4,-5.28 2.2,-6.384 0.7,-1.104 1.2,-1.294 2,-1.294 0.2,0 0.5,0.1 1,0.738 0.6,0.64 1.2,1.76 1.8,3.24 1.2,2.96 2.4,7.38 3.6,12.71 2.4,10.64 4.8,24.95 7.6,39.27 1,4.87 2,9.73 3.1,14.46 -2.1,8.88 -4.5,17.2 -7.2,23.99 -2.2,5.3 -4.6,9.6 -7.2,12.5 -2.6,2.9 -5.3,4.4 -8.3,4.4 v 3.1 c 4,0 7.6,-2.1 10.5,-5.5 3,-3.3 5.5,-7.9 7.8,-13.4 2.2,-5.47 4.2,-11.87 6,-18.71 1.7,6.84 3.7,13.24 6,18.71 2.2,5.5 4.7,10.1 7.7,13.4 3,3.4 6.5,5.5 10.6,5.5 V 120 c -3,0 -5.7,-1.5 -8.3,-4.4 -2.7,-2.9 -5.1,-7.2 -7.2,-12.5 -2.8,-6.79 -5.2,-15.11 -7.3,-23.99 1.1,-4.73 2.2,-9.59 3.1,-14.46 2.9,-14.32 5.2,-28.63 7.6,-39.27 1.2,-5.33 2.4,-9.75 3.6,-12.71 0.6,-1.48 1.3,-2.6 1.8,-3.24 0.5,-0.643 0.9,-0.738 1,-0.738 0.8,0 1.3,0.19 2,1.294 0.8,1.104 1.6,3.164 2.2,6.384 1.3,6.44 2,17.46 2,35.02 h 3 c 0,-17.64 -0.7,-28.74 -2,-35.6 -0.7,-3.44 -1.5,-5.827 -2.7,-7.512 -1.1,-1.686 -2.8,-1.901 -4.5,-1.901 -1.4,0 -2.5,0.08 -3.3,1.109 -0.9,1.033 -1.6,2.376 -2.3,4.024 -1.3,3.29 -2.6,7.8 -3.8,13.2 -2.4,10.8 -4.7,25.09 -7.6,39.35 -0.5,2.72 -1.1,5.44 -1.6,8.13 -0.6,-2.69 -1.2,-5.41 -1.7,-8.13 -2.9,-14.26 -5.2,-28.55 -7.6,-39.35 -1.2,-5.4 -2.4,-9.91 -3.8,-13.2 -0.7,-1.648 -1.4,-2.991 -2.2,-4.024 -0.9,-1.032 -2,-1.109 -3.3,-1.109 z"
id="sec3" />
d="m 252.5675,118.89918 c 0.49477,6.55373 1.16945,13.08894 2.03729,19.59769 0.87048,6.50875 1.90764,12.99369 3.18558,19.43364 1.23561,6.4479 2.7305,12.84553 4.37356,19.20346 0.39952,1.59279 0.84667,3.17236 1.27,4.75986 0.45509,1.57691 0.88371,3.16177 1.35732,4.73604 0.89958,3.15912 1.8997,6.28914 2.8866,9.42181 -0.53975,-1.55046 -1.10067,-3.09562 -1.60867,-4.65931 l -0.77787,-2.33892 -0.74877,-2.3495 c -0.50271,-1.56633 -0.9525,-3.14589 -1.4314,-4.72017 -0.4445,-1.5822 -0.91546,-3.15647 -1.34144,-4.74662 l -0.64558,-2.38125 c -0.21431,-0.79375 -0.40481,-1.59279 -0.60854,-2.38919 -0.4101,-1.59279 -0.78581,-3.19352 -1.16152,-4.79425 -0.38629,-1.59808 -0.72231,-3.20939 -1.08479,-4.81277 -0.33867,-1.60866 -0.67469,-3.21733 -0.99748,-4.83129 -1.23561,-6.45848 -2.286,-12.95665 -3.06917,-19.48656 -0.20637,-1.62984 -0.37306,-3.26761 -0.54504,-4.90273 -0.17727,-1.63513 -0.33073,-3.27025 -0.46831,-4.90802 -0.25929,-3.26761 -0.48419,-6.54844 -0.62177,-9.83192 z"
id="path4"
style="opacity:0.3;stroke-width:0.264583" />
<path
style="fill:#6741d9;stroke:#212121;stroke-width:0.6;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 50.12,51.39 c 0,6.84 -2.59,19.15 -7.67,31.46 -1.3,3.16 -2.78,6.32 -4.42,9.39 -2.7,5.08 -5.87,9.96 -9.5,14.06 V 260.7 H 78.34 128.1 V 106.3 c -3.6,-4.1 -6.8,-8.98 -9.5,-14.06 -1.6,-3.07 -3.1,-6.23 -4.4,-9.39 -5.1,-12.31 -7.6,-24.62 -7.6,-31.46 H 78.34 Z m 87.58,54.91 v 154.4 h 25.5 V 119.5 c -10.2,0 -18.7,-5.4 -25.5,-13.2 z m 99.6,0 c -6.8,7.8 -15.2,13.2 -25.4,13.2 v 141.2 h 25.4 z"
id="pri1" />
d="m 252.57014,112.55976 c 0.381,3.33905 0.82021,6.67015 1.37054,9.98273 0.52652,3.31788 1.16417,6.61194 1.85738,9.90071 0.68792,3.28613 1.37583,6.57225 2.21721,9.82134 0.4101,1.62718 0.87577,3.2385 1.35202,4.84452 0.49741,1.60073 1.00806,3.19616 1.58221,4.77043 1.11125,3.16177 2.39977,6.26005 3.83116,9.28952 0.72496,1.51078 1.47638,3.00832 2.27013,4.48469 0.80169,1.47109 1.6166,2.93688 2.4765,4.37621 1.7145,2.88396 3.55864,5.68854 5.51921,8.41375 1.94733,2.73315 4.02431,5.37633 6.17008,7.96131 -2.23838,-2.50825 -4.35769,-5.12233 -6.38175,-7.80785 -2.00819,-2.69875 -3.89467,-5.48746 -5.65944,-8.35554 -3.52425,-5.73617 -6.45848,-11.84275 -8.7286,-18.18746 -2.26484,-6.35 -3.79413,-12.93283 -5.05354,-19.53154 -0.64294,-3.29671 -1.23825,-6.61194 -1.7145,-9.9404 -0.45773,-3.3311 -0.84667,-6.67014 -1.10861,-10.02242 z"
id="path8"
style="opacity:0.3;stroke-width:0.264583" />
<path
class="lining dotted stroke-sm"
data-text="pocket"
data-text-class="text-xs center"
id="pri2"
d="m 43.07,173.6 v -34.3 h 70.53 v 34.3 H 43.07"
style="fill:#91a7ff;stroke:#ff5b77;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.4, 0.8;stroke-opacity:1" />
class="st2"
d="m 255.2534,90.288005 c 0.77225,-0.303154 1.01295,-0.365977 2.00516,-0.336886 3.21936,0.763392 3.9273,15.992051 4.59718,32.500101 0.18007,3.06615 0.69504,5.74884 1.44853,8.09719 m 1.20249,3.07762 c 5.362,11.48744 16.81925,13.16586 17.32894,13.7238"
id="path146"
sodipodi:nodetypes="cccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#63e6be;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 169,6.331 c -0.6,0 -1.3,0.06 -1.9,0.173 -0.3,0.07 -0.7,0.171 -1,0.263 1.6,0.993 2.5,1.705 3,2.024 0.1,0.08 0.3,0.128 0.7,0.639 0.6,0.64 1.2,1.76 1.8,3.24 1.2,2.96 2.4,7.38 3.6,12.71 2.4,10.64 4.8,24.95 7.6,39.27 1,4.87 2,9.73 3.1,14.46 -2.1,8.88 -4.5,17.2 -7.2,23.99 -2.2,5.3 -4.6,9.6 -7.2,12.5 -2.6,2.9 -5.3,4.4 -8.3,4.4 v 3.1 c 4,0 7.6,-2.1 10.5,-5.5 3,-3.3 5.5,-7.9 7.8,-13.4 2.2,-5.47 4.2,-11.87 6,-18.71 1.7,6.84 3.7,13.24 6,18.71 2.2,5.5 4.7,10.1 7.7,13.4 3,3.4 6.5,5.5 10.6,5.5 V 120 c -3,0 -5.7,-1.5 -8.3,-4.4 -2.7,-2.9 -5.1,-7.2 -7.2,-12.5 -2.8,-6.79 -5.2,-15.11 -7.3,-23.99 1.1,-4.73 2.2,-9.59 3.1,-14.46 2.9,-14.32 5.2,-28.63 7.6,-39.27 1.2,-5.33 2.4,-9.75 3.6,-12.71 0.6,-1.48 1.3,-2.6 1.8,-3.24 0.4,-0.511 0.6,-0.559 0.7,-0.639 0.5,-0.319 1.5,-1.031 3,-2.024 -0.3,-0.09 -0.6,-0.197 -1,-0.263 -1.2,-0.223 -2.6,-0.262 -3.7,0.07 -0.6,0.177 -1,0.513 -1.3,0.913 -0.9,1.033 -1.6,2.376 -2.3,4.023 -1.3,3.29 -2.6,7.8 -3.8,13.2 -2.4,10.8 -4.7,25.09 -7.6,39.35 -0.5,2.72 -1.1,5.44 -1.6,8.13 -0.6,-2.69 -1.2,-5.41 -1.7,-8.13 C 182.9,49.8 180.6,35.51 178.2,24.71 177,19.31 175.8,14.8 174.4,11.51 173.7,9.862 173,8.519 172.2,7.486 171.8,7.086 171.4,6.75 170.8,6.573 170.3,6.408 169.6,6.335 169,6.331 Z"
id="pri4" />
class="st2"
d="m 253.78954,109.32656 c 0.17857,-5.64063 0.68564,-11.626356 2.27839,-16.496774 0.29898,-0.899583 0.54505,-1.653646 1.19063,-2.878667"
id="path148"
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
class="st2"
d="m 275.15531,109.32656 c -0.17857,-5.64063 -0.68565,-11.626356 -2.2784,-16.496774 -0.29898,-0.899583 -0.54504,-1.653646 -1.19062,-2.878667"
id="path148-3"
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
class="st2"
d="m 277.97808,109.38741 c -0.76683,-5.72922 -1.13835,-13.962734 -3.40093,-18.063532 -2.24026,-3.131164 -3.42769,-2.634702 -4.67402,-1.74126 -2.64508,2.275017 -4.19188,15.671492 -4.86177,32.179542 -1.27487,21.70817 -19.33702,24.19482 -19.97996,24.89861"
id="path168-8"
sodipodi:nodetypes="ccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<polyline
class="st2"
points="643.91,-64.89 574.99,-64.89 572.64,-64.89 503.71,-64.89 "
id="polyline172"
style="fill:none;stroke:#000000;stroke-miterlimit:10"
transform="matrix(0.26458333,0,0,0.26458333,112.65054,240.31118)" />
<line
class="st10"
x1="245.89471"
y1="147.11169"
x2="244.65117"
y2="226.77245"
id="line248"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 245.81004,223.64772 c -2.51619,-0.26194 -5.79438,-0.9525 -9.21015,-2.73844 -0.91281,-0.47625 -1.59548,-0.86845 -2.34425,-1.38174"
id="path250"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583"
sodipodi:nodetypes="ccc" />
<path
class="st10"
d="m 237.59737,142.5106 c 0.0794,0.30956 0.22225,0.75671 0.49742,1.24354 0.69056,1.21973 1.74625,1.86796 2.98714,2.48973 1.28588,0.64558 3.28084,1.51871 5.9743,2.24102"
id="path252"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<polyline
class="st10"
points="643.63,-73.89 574.7,-73.89 572.35,-73.89 503.43,-73.89 "
id="polyline254"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:1, 1, 1"
transform="matrix(0.26458333,0,0,0.26458333,112.65054,240.31118)" />
<path
class="st10"
d="m 245.90529,224.46264 c -2.51619,-0.26194 -5.79438,-0.9525 -9.21015,-2.73844 -0.91281,-0.47625 -1.74096,-0.9816 -2.48973,-1.49489"
id="path256"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<line
class="st10"
x1="282.89667"
y1="147.11169"
x2="284.14023"
y2="226.77245"
id="line258"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 282.98135,223.64772 c 2.51619,-0.26194 5.79438,-0.9525 9.21015,-2.73844 0.91281,-0.47625 1.74095,-0.9816 2.48973,-1.49489"
id="path260"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 291.19666,142.5106 c -0.0794,0.30956 -0.22225,0.75671 -0.49741,1.24354 -0.69057,1.21973 -1.74625,1.86796 -2.98715,2.48973 -1.28587,0.64558 -3.28083,1.51871 -5.97429,2.24102"
id="path262"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 283.01542,224.36565 c 2.51619,-0.26194 5.79438,-0.9525 9.21015,-2.73844 0.91281,-0.47625 1.61163,-0.88461 2.36041,-1.3979"
id="path264"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583"
sodipodi:nodetypes="ccc" />
<polyline
class="st10"
points="643.63,-76.89 574.7,-76.89 572.35,-76.89 503.43,-76.89 "
id="polyline266"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:1, 1, 1"
transform="matrix(0.26458333,0,0,0.26458333,112.65054,240.31118)" />
<path
class="st10"
d="m 251.63881,109.37683 c -0.0926,1.29116 -0.26723,3.92906 -0.61913,6.1251 -0.48154,2.98715 -1.3626,8.24177 -4.20952,14.38011 -2.1537,4.64608 -4.48204,7.747 -5.19906,8.67833 -1.20385,1.56369 -2.67741,2.87027 -3.55847,3.78044"
id="path268"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583"
sodipodi:nodetypes="cccsc" />
<path
class="st10"
d="m 277.28752,109.37683 c 0.0926,1.29116 0.26723,3.92906 0.61912,6.1251 0.48154,2.98715 1.36261,8.24177 4.20952,14.38011 2.15371,4.64608 4.48204,7.747 5.19907,8.67833 1.20385,1.56369 2.68549,2.93492 3.56655,3.84509"
id="path270"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583"
sodipodi:nodetypes="cccsc" />
<path
class="st10"
d="m 255.56461,90.272863 c -1.68973,1.854407 -2.12816,4.533186 -2.27241,5.264886 -0.9885,4.460327 -1.48779,9.144691 -1.82636,13.772931"
id="path276"
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 253.32586,109.32027 c 0.38808,-6.19847 0.93413,-14.156952 3.48555,-19.218338"
id="path278"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 250.92226,110.83163 10.34513,-0.002"
id="path278-4-4"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135435;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.27087, 0.27087, 0.27087" />
<path
class="st10"
d="m 250.85316,111.80513 10.4631,-0.002"
id="path278-4-4-6"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135791;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.271582, 0.271582, 0.271582" />
<path
class="st10"
d="m 277.96251,110.83163 -10.34512,-0.002"
id="path278-4-4-4"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135435;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.27087, 0.27087, 0.27087" />
<path
class="st10"
d="m 278.03161,111.80513 -10.4631,-0.002"
id="path278-4-4-6-1"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135791;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.271582, 0.271582, 0.271582" />
<path
class="st10"
d="m 255.70393,89.849575 c 0.92477,-0.244877 0.0726,-0.13752 1.41391,-0.229515 2.18052,0.350681 2.3819,3.092209 2.93839,4.91401 1.7545,8.10347 1.69158,22.4431 2.41018,30.1866 0.17811,1.94939 0.56663,3.735 1.07695,5.34667 m 1.1626,3.00107 c 2.09578,4.54441 4.87458,7.11198 5.13127,7.33527 6.14785,5.49488 9.61454,5.4155 12.40621,6.7594"
id="path282"
sodipodi:nodetypes="cccccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 256.01392,89.458661 c 0.92477,-0.244877 0.11396,-0.162324 1.47179,-0.25432 2.12893,0.336711 2.77652,3.009088 3.40968,5.509323 1.80648,8.103466 2.2748,22.021426 2.79879,29.764916 0.10656,1.16635 0.28845,2.27408 0.52668,3.32099 m 1.1626,3.74357 c 2.12198,5.34326 5.40159,8.37495 5.68153,8.61846 6.14786,5.49488 9.61455,5.41549 12.40622,6.7594"
id="path282-5"
sodipodi:nodetypes="cccccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 273.39205,90.288027 c 1.68973,1.854406 2.12815,4.533185 2.27241,5.264885 0.9885,4.460328 1.48778,9.144698 1.82636,13.772928"
id="path276-1"
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 275.6308,109.33544 c -0.38808,-6.19847 -0.93413,-14.156958 -3.48556,-19.218345"
id="path278-1"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 273.25273,89.864738 c -0.92477,-0.244877 -0.0726,-0.13752 -1.41391,-0.229515 -2.18052,0.350681 -2.3819,3.092209 -2.93839,4.914011 -1.75451,8.103466 -1.69158,22.443106 -2.41018,30.186596 -0.88644,9.70189 -6.98453,15.34699 -7.37082,15.68301 -6.14785,5.49488 -9.61455,5.4155 -12.40622,6.7594"
id="path282-7"
sodipodi:nodetypes="cccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 263.33295,110.83945 2.27693,0.01"
id="path278-4-4-65"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135435;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.27087, 0.27087, 0.27087" />
<path
class="st10"
d="m 263.41586,111.78957 2.11426,0.01"
id="path278-4-4-6-2"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.135791;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.271582, 0.271582, 0.271582" />
<path
class="st2"
d="m 273.69145,90.28801 c -0.77226,-0.303159 -1.01296,-0.365982 -2.00516,-0.336891 -3.21936,0.763391 -3.9273,15.992051 -4.59718,32.500101 -1.27488,21.70817 -19.33703,24.19482 -19.97997,24.89861"
id="path146-0"
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
class="st2"
d="m 180.14588,226.37766 c 3.06388,-0.0265 6.61458,-0.14288 8.46402,-0.24871 4.699,-0.27252 11.09133,-0.67204 18.92036,-2.48973 1.27529,-0.29633 2.3151,-0.56621 2.98714,-0.74613 l -3.73327,-80.90429 c -0.889,-0.91281 -2.36659,-2.30596 -3.33284,-3.63628 -2.02333,-2.7857 -3.8287,-5.7492 -5.26509,-9.03832 -1.68787,-3.86498 -3.50612,-9.88126 -4.16947,-14.6028 -0.24494,-1.74344 -0.45301,-3.50075 -0.58327,-4.91868 -2.33203,-0.0485 -6.55702,-0.0408 -13.35108,-0.0408 h -0.52123 -13.38527 c -0.0926,1.29646 -0.26723,3.14854 -0.62177,5.35252 -0.48419,3.00038 -1.37054,8.27617 -4.23069,14.43831 -2.16693,4.66725 -4.50585,7.77875 -5.22816,8.71273 -1.2118,1.57163 -2.3495,2.82046 -3.23586,3.73327 l -3.73856,80.90429 c 0.67204,0.17992 1.71185,0.4498 2.98715,0.74613 7.82637,1.81769 14.2187,2.21721 18.92035,2.48973 1.84944,0.10848 5.40015,0.22225 8.46402,0.24871 z"
id="path152"
sodipodi:nodetypes="cccccsssccccccccccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
class="st2"
d="m 187.49865,89.754339 c -4.01259,-0.23034 -2.83304,8.893617 -3.02286,19.914291"
id="path156"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
class="st2"
d="m 172.29944,89.746449 c 4.01259,-0.23034 2.83304,8.893627 3.02286,19.914291"
id="path156-1"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<polygon
class="st2"
points="316.37,-303.93 316.37,-313.25 252.27,-313.25 250.98,-313.25 186.88,-313.25 186.88,-303.93 186.88,-232.87 250.64,-232.87 252.61,-232.87 316.37,-232.87 "
id="polygon158"
style="fill:none;stroke:#000000;stroke-miterlimit:10"
transform="matrix(0.26458333,0,0,0.26458333,113.24334,240.67574)" />
<path
class="st2"
d="m 190.56094,109.69641 c 0.0902,-1.77536 0.10389,-4.19365 0,-6.24152 -0.19684,-3.854987 -0.2083,-6.702432 -1.34288,-10.017659 -0.48938,-1.4261 -1.23335,-3.10687 -2.86551,-5.411387"
id="path160"
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:0.268952;stroke-miterlimit:10" />
<path
class="st2"
d="m 169.14404,109.71666 c -0.0902,-1.77536 -0.10389,-4.19365 0,-6.24152 0.19684,-3.854987 0.3226,-6.873884 1.45719,-10.189111 0.48937,-1.4261 1.16319,-3.01332 2.79534,-5.317847"
id="path160-9"
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:0.268952;stroke-miterlimit:10" />
<line
class="st10"
x1="162.68858"
y1="160.26089"
x2="196.94948"
y2="160.26089"
id="line174"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 191.07766,109.8287 c 0.0902,-1.77535 0.10389,-4.19365 0,-6.24152 -0.19685,-3.854987 -0.32261,-6.873884 -1.45719,-10.189101 -0.1269,-0.56082 -0.59463,-2.23219 -2.46601,-4.305197"
id="path208"
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 192.9504,109.74139 c -0.12302,-1.75154 -0.28706,-4.73869 -0.49484,-7.37394 -0.13669,-1.73567 -0.2898,-3.563944 -0.74363,-5.900214 -0.1613,-0.82814 -0.41829,-2.013477 -0.99242,-3.442227 -0.36908,-0.92075 -0.72449,-1.78064 -1.48726,-2.70404 -0.74635,-0.92604 -1.46718,-1.547217 -2.45605,-1.825027"
id="path210"
sodipodi:nodetypes="cccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
d="m 166.78178,109.61637 c 0.12302,-1.75154 0.28706,-4.73869 0.49484,-7.37394 0.1367,-1.73567 0.2898,-3.563934 0.74363,-5.900204 0.1613,-0.82815 0.41829,-2.013477 0.99242,-3.442227 0.36908,-0.92075 0.72449,-1.78065 1.48726,-2.70404 0.74635,-0.92605 1.46718,-1.547217 2.45605,-1.825027 m -4.30146,21.332748 c -0.0902,-1.77535 -0.10389,-4.19364 0,-6.24152 0.19685,-3.854987 0.32261,-6.873874 1.45719,-10.189101 0.1269,-0.56082 0.59463,-2.23219 2.46601,-4.305197"
style="fill:none;stroke:#000000;stroke-width:0.134476;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.268952, 0.268952, 0.268952"
id="path241364"
sodipodi:nodetypes="cccccccccc" />
<path
class="st10"
d="m 186.96329,88.495942 c -5.81722,-2.00007 -3.81976,17.911708 -4.28573,21.194538"
id="path212"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 187.18539,89.381799 c -2.68564,-0.0603 -3.34535,4.52405 -3.26972,9.273877 0.0744,4.674214 0.20054,9.477164 0.1525,11.049694"
id="path212-5"
sodipodi:nodetypes="csc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 172.75791,88.518762 c 5.81722,-2.00007 3.81977,17.911698 4.28573,21.194528"
id="path212-0"
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 172.53581,89.404619 c 2.68565,-0.0603 3.34536,4.52405 3.26972,9.273867 -0.0744,4.674224 -0.20054,9.477174 -0.15249,11.049694"
id="path212-5-4"
sodipodi:nodetypes="csc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 166.98021,109.89749 c -0.0926,1.29117 -0.26722,3.92906 -0.61912,6.12511 -0.48154,2.98714 -1.3626,8.24177 -4.20952,14.3801 -2.15371,4.64608 -4.48204,7.747 -5.19906,8.67833 -1.20386,1.56369 -3.13002,3.33904 -4.01109,4.24921"
id="path214"
sodipodi:nodetypes="cccsc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 192.62892,109.89749 c 0.0926,1.29117 0.26723,3.92906 0.61913,6.12511 0.48154,2.98714 1.3626,8.24177 4.20952,14.3801 2.15371,4.64608 4.48204,7.747 5.19906,8.67833 1.20385,1.56369 3.13002,3.33904 4.01108,4.24921"
id="path216"
sodipodi:nodetypes="cccsc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 149.20815,220.05147 c 0.6694,0.17992 1.70392,0.44979 2.97656,0.74612 7.79728,1.81769 14.1658,2.21721 18.84892,2.48973 1.84415,0.10848 5.37898,0.22225 8.43227,0.24871 h 0.65088 c 3.05329,-0.0265 6.58812,-0.14287 8.43227,-0.24871 4.68312,-0.27252 11.05164,-0.67204 18.84891,-2.48973 1.27,-0.29633 2.30717,-0.5662 2.97657,-0.74612"
id="path218"
sodipodi:nodetypes="cccccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<polyline
class="st10"
points="303.53,-488.78 252.94,-488.78 250.97,-488.78 200.38,-488.78 "
id="polyline220"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:1, 1, 1"
transform="matrix(0.26458333,0,0,0.26458333,113.24334,240.67574)" />
<line
class="st10"
x1="162.65155"
y1="160.94089"
x2="196.91245"
y2="160.94089"
id="line222"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<path
class="st10"
d="m 149.26083,219.26984 c 0.6694,0.17992 1.70392,0.44979 2.97657,0.74612 7.79727,1.81769 14.10517,2.20509 18.78829,2.47761 1.84415,0.10848 5.37898,0.22225 8.43227,0.24871 h 0.65088 c 3.05329,-0.0265 6.58812,-0.14287 8.43227,-0.24871 4.68312,-0.27252 11.05165,-0.67204 18.84892,-2.48973 1.27,-0.29633 2.30716,-0.5662 2.97656,-0.74612"
id="path224"
sodipodi:nodetypes="cccccccc"
style="fill:none;stroke:#000000;stroke-width:0.132292;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.264583, 0.264583, 0.264583" />
<polyline
class="st10"
points="304.1,-485.07 252.61,-485.07 250.6,-485.07 199.1,-485.07 "
id="polyline226"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:1, 1, 1"
transform="matrix(0.26458333,0,0,0.26458333,113.24334,240.67574)" />
<path
d="m 162.78128,169.17739 c 0.92339,0.24606 1.82298,0.55827 2.74902,0.78846 0.46037,0.1217 0.9181,0.25135 1.38112,0.35718 0.46302,0.11113 0.92075,0.23019 1.38642,0.32544 1.85473,0.4101 3.72269,0.74083 5.60652,0.97631 1.88119,0.24342 3.7756,0.39423 5.67267,0.46567 1.8997,0.0661 3.80206,0.0688 5.71235,0.0185 -1.89177,0.25665 -3.80471,0.39158 -5.71765,0.39423 -1.91558,0.0132 -3.83116,-0.11642 -5.73352,-0.35454 -1.8997,-0.24606 -3.78618,-0.6059 -5.63827,-1.10067 -0.46302,-0.11906 -0.92339,-0.25135 -1.38112,-0.39158 -0.46038,-0.13494 -0.91281,-0.2884 -1.36525,-0.44186 -0.45508,-0.15081 -0.89694,-0.33073 -1.34144,-0.50535 -0.44714,-0.17198 -0.889,-0.34925 -1.33085,-0.53181 z"
id="path228"
sodipodi:nodetypes="cccccccccccccc"
style="stroke-width:0.264583;opacity:0.3" />
<path
d="m 163.56709,178.23407 c 2.59292,-1.03452 5.29696,-1.8362 8.06185,-2.30716 1.38113,-0.24871 2.76755,-0.42069 4.15132,-0.60854 l 4.15395,-0.53975 c 1.38377,-0.17463 2.77019,-0.34925 4.14602,-0.54505 0.69057,-0.0952 1.37584,-0.20108 2.05582,-0.32808 0.67733,-0.13229 1.35996,-0.28046 2.03464,-0.43921 2.70404,-0.64823 5.36046,-1.50812 7.94809,-2.55852 -2.50561,1.23825 -5.13557,2.23838 -7.84755,2.96069 -0.67733,0.18256 -1.35731,0.34925 -2.04787,0.49212 -0.69056,0.14023 -1.38113,0.2593 -2.07169,0.37042 -1.38377,0.21431 -2.77019,0.39158 -4.15396,0.57415 l -4.15925,0.51064 c -1.38641,0.15875 -2.77283,0.32015 -4.14866,0.51859 -1.37584,0.20372 -2.74373,0.46037 -4.09575,0.78581 -1.35467,0.30956 -2.69346,0.6985 -4.02696,1.11389 z"
id="path232"
sodipodi:nodetypes="cccccccccccccccc"
style="stroke-width:0.264583;opacity:0.3" />
<path
d="m 205.50619,162.6898 c -0.49741,2.58763 -1.08479,5.15938 -1.70656,7.72055 -0.3175,1.28058 -0.65352,2.55587 -1.01071,3.82322 l -0.52652,1.90765 c -0.17727,0.635 -0.37306,1.26471 -0.55827,1.89706 -1.50283,5.05619 -3.26231,10.03565 -5.19642,14.94631 -1.98437,4.8895 -4.15395,9.70492 -6.54314,14.40657 -0.59531,1.17739 -1.21973,2.33891 -1.83356,3.50573 -0.63765,1.15358 -1.24884,2.32304 -1.9103,3.46339 l -0.98425,1.7145 -1.0107,1.70127 c -0.66411,1.14036 -1.37319,2.24896 -2.06375,3.37079 1.29645,-2.29393 2.61143,-4.57729 3.83116,-6.91091 0.635,-1.15359 1.22767,-2.33098 1.8415,-3.4925 0.59002,-1.1774 1.19327,-2.34686 1.76477,-3.53219 2.30982,-4.73075 4.47675,-9.53029 6.41615,-14.42244 1.97114,-4.87891 3.71739,-9.84779 5.2996,-14.86693 1.58486,-5.0218 2.97921,-10.1018 4.191,-15.23207 z"
id="path238"
sodipodi:nodetypes="cccccccccccccccccc"
style="stroke-width:0.264583;opacity:0.3" />
<path
d="m 206.19411,157.71828 c -0.65352,2.70404 -1.43669,5.37634 -2.29923,8.02217 -0.87048,2.64319 -1.87325,5.24669 -2.90248,7.82637 -1.01864,2.59027 -2.12196,5.1488 -3.34698,7.6544 -1.23296,2.50031 -2.58498,4.94771 -4.10369,7.28927 -3.05064,4.67783 -6.67014,8.96673 -10.69181,12.82435 -2.01348,1.92617 -4.12221,3.7518 -6.29973,5.48746 -2.1881,1.71979 -4.43441,3.3655 -6.75216,4.90273 2.24896,-1.63512 4.46087,-3.31787 6.58812,-5.10381 2.13784,-1.77271 4.20688,-3.62479 6.17802,-5.57742 1.96056,-1.96056 3.86292,-3.97933 5.62504,-6.11981 1.77007,-2.13254 3.40519,-4.37356 4.90802,-6.69925 1.52136,-2.3151 2.87603,-4.73604 4.11692,-7.21519 0.61648,-1.24089 1.19856,-2.50031 1.76477,-3.76766 0.55827,-1.27 1.10067,-2.54794 1.63777,-3.82852 2.17488,-5.11175 4.05871,-10.34257 5.57742,-15.69509 z"
id="path242"
sodipodi:nodetypes="cccccccccccccccc"
style="stroke-width:0.264583;opacity:0.3" />
<path
style="fill:none;stroke:#000000;stroke-width:0.268952;stroke-miterlimit:10"
d="m 166.17588,109.75197 c 0.1285,-1.77271 0.298,-4.79954 0.51398,-7.46919 0.14217,-1.75684 0.30073,-3.608914 0.77097,-5.974294 0.16677,-0.83873 0.55824,-2.36836 1.02796,-3.484557 0.41794,-0.993148 0.88589,-1.9952 1.57745,-2.82149 0.59541,-0.711399 0.85786,-0.978839 2.152,-1.764739 6.85497,-2.73578 4.79698,15.18946 5.25758,21.47559"
id="path241064"
sodipodi:nodetypes="cccaacc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.268952;stroke-miterlimit:10"
d="m 193.43346,109.79272 c -0.1285,-1.77271 -0.298,-4.79954 -0.51398,-7.46919 -0.14217,-1.75684 -0.30073,-3.608914 -0.77097,-5.974294 -0.16677,-0.83873 -0.55824,-2.36836 -1.02796,-3.484557 -0.41794,-0.993148 -0.88589,-1.9952 -1.57745,-2.82149 -0.59541,-0.711399 -0.85786,-0.978839 -2.152,-1.764739 -6.85497,-2.73578 -4.79698,15.18946 -5.25758,21.47559"
id="path241064-7"
sodipodi:nodetypes="cccaacc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Before After
Before After

View file

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="174.82443mm"
height="79.411369mm"
viewBox="0 0 174.82443 79.411369"
version="1.1"
id="svg32276"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="bella.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview32278"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
lock-margins="true"
inkscape:zoom="1.108669"
inkscape:cx="335.08649"
inkscape:cy="229.55454"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:page
x="0"
y="0"
width="174.79115"
height="79.424759"
id="page1"
margin="0"
bleed="0" />
<inkscape:page
x="-0.073312007"
y="84.767082"
width="174.79115"
height="79.424751"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<defs
id="defs32273" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-212.66987,-243.0614)">
<path
id="path33"
style="fill:none;stroke:#228c3a;stroke-width:0.265;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.529998, 0.529998, 0.529998, 0, 0, 0;stroke-dashoffset:0"
class="st22"
d="m 260.62286,244.75459 c -3.40842,3.43416 -9.59006,3.58572 -13.76413,3.70379 -4.17407,0.11808 -9.08209,-0.66725 -12.55681,-3.66836 m 27.61528,-1.16272 c -0.36346,2.20357 -0.86053,4.275 -1.50638,6.19357 -0.76472,2.27168 -2.57487,4.97719 -3.89792,6.05901 -2.37715,2.51352 -5.43883,3.75706 -9.14977,3.84587 -4.03175,-0.15292 -5.0981,-0.79048 -8.41579,-3.12701 -2.46811,-2.30835 -3.64124,-4.37869 -4.50688,-6.56646 -0.85207,-2.15353 -1.45251,-4.40206 -1.56864,-6.34449 m 47.78595,5.88506 c -3.40715,10.58105 -6.52658,23.19251 -3.53692,32.864 0.89243,2.88693 2.34201,5.22395 4.34136,7.43254 M 214.0658,249.57493 c 3.40714,10.58105 6.52658,23.19251 3.53692,32.864 -0.89244,2.88694 -2.34201,5.22396 -4.34136,7.43255 m 4.90548,26.74887 c 1.07421,0.37835 2.62202,0.88371 4.52173,1.35731 3.45545,0.8599 6.18595,1.143 8.58837,1.35731 6.28915,0.55827 12.11263,0.79375 16.0483,0.79507 3.93568,10e-4 9.75916,-0.2368 16.04831,-0.79507 2.40241,-0.21431 5.13291,-0.49741 8.58837,-1.35731 1.89706,-0.47096 3.44752,-0.97631 4.52173,-1.35731"
sodipodi:nodetypes="csccsccccccsccccccccccc" />
<path
id="path27"
style="fill:none;stroke:#dc3545;stroke-width:0.264583;stroke-miterlimit:10"
class="st2"
d="m 260.82296,243.23551 c -4.9666,3.74351 -7.32157,3.84783 -13.41128,3.99834 -6.0897,0.15051 -9.24674,-0.79512 -13.39895,-3.99834 m 47.99013,44.97653 -5.42396,30.51968 c -1.07421,0.381 -2.62467,0.88636 -4.52173,1.35731 -3.45546,0.8599 -6.18596,1.143 -8.58837,1.35732 -6.28915,0.55827 -12.11263,0.79639 -16.05096,0.79507 -3.93832,-0.001 -9.76179,-0.2368 -16.05094,-0.79507 -2.40242,-0.21432 -5.13292,-0.49742 -8.58838,-1.35732 -1.8997,-0.4736 -3.44752,-0.97895 -4.52172,-1.35731 l -5.42396,-30.51968 c 1.83875,-2.55568 3.13415,-4.84744 3.77587,-8.02626 1.95961,-9.70708 -1.00841,-20.64728 -3.77587,-30.16899 l 21.17989,-6.78128 c 0.14817,1.09538 0.41275,2.667 0.90488,4.52173 0.59679,2.1655 2.17675,5.55038 4.84433,7.90136 2.13448,1.88114 5.14379,3.01114 7.58103,2.98574 2.86131,-0.0519 5.84491,-1.12057 8.08998,-3.25372 2.03764,-1.93602 3.46705,-4.0472 4.48514,-7.63338 0.49212,-1.85473 0.75671,-3.42635 0.90487,-4.52173 l 21.1799,6.78128 c -2.76746,9.52171 -5.73548,20.46191 -3.77587,30.16899 0.64172,3.17882 1.93712,5.47058 3.77587,8.02626" />
<path
id="path38"
style="opacity:0.6;fill-opacity:1"
d="m 366.31411,321.6384 1.40316,-45.369 -1.88843,45.43331 z m -28.85628,-0.14173 -1.40316,-45.369 1.88843,45.46839 z" />
<path
id="path44"
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#228c3a;stroke-width:0.265;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:0.529998, 0.529998, 0.529998, 0, 0, 0;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
class="st22"
d="m 386.07036,249.43251 c -3.40715,10.58105 -6.52658,23.19251 -3.53692,32.864 0.89244,2.88694 2.34201,5.22396 4.34136,7.43254 m -68.55394,-40.35233 c 3.40715,10.58105 6.52658,23.1925 3.53693,32.86399 -0.89244,2.88694 -2.34202,5.22396 -4.34137,7.43255 m 5.17142,27.39688 c 1.47902,0.32014 2.9845,0.62442 4.52173,0.90487 8.83179,1.61396 17.17674,2.24896 24.97534,2.24765 7.79859,-0.001 16.14355,-0.63633 24.97534,-2.24765 1.53459,-0.28045 3.04271,-0.58208 4.52173,-0.90487 m -14.65641,-73.39381 c -2.28793,2.04691 -5.10963,3.67333 -8.0686,4.31739 -2.44872,0.53301 -4.99586,0.35144 -6.97783,0.4044 -1.98197,0.053 -4.95247,-0.10054 -7.31247,-0.75074 -2.8688,-0.79035 -5.1148,-2.23633 -7.0212,-3.88288"
sodipodi:nodetypes="csccscccccccscsc" />
<path
class="st2"
d="m 352.39227,247.21393 c -6.08971,0.15051 -9.24675,-0.79513 -13.39896,-3.99834 l -21.95697,6.58159 c 2.76746,9.52172 5.73547,20.46191 3.77586,30.169 -0.64172,3.17882 -1.93712,5.47057 -3.77586,8.02625 l 5.64885,31.19702 c 1.47902,0.32015 2.9845,0.62442 4.52173,0.90488 8.83179,1.61395 17.17675,2.24895 24.97667,2.24614 7.79991,-0.003 16.14487,-0.63783 24.97666,-2.24914 1.53459,-0.28046 3.04271,-0.58208 4.52173,-0.90487 l 5.64886,-31.19684 c -1.83875,-2.55551 -3.13415,-4.84727 -3.77587,-8.02609 -1.95961,-9.70708 1.0084,-20.64728 3.77587,-30.16917 l -21.5273,-6.57894 c -4.9666,3.74368 -7.32157,3.848 -13.41127,3.99851 z"
id="path34"
sodipodi:nodetypes="cccscccccccsccc"
style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#dc3545;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" />
<path
id="path42"
style="opacity:0.6;fill-opacity:1"
d="m 214.37224,296.70064 17.76722,-5.97041 -17.82493,5.64708 z m 66.16665,-0.2256 -17.76722,-5.97041 17.82493,5.64708 z m -20.24769,25.18428 2.48047,-31.15469 -2.89388,31.12161 z m -25.67127,0.2256 -2.48047,-31.15469 2.89388,31.12161 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -2,74 +2,78 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1000"
height="1000"
viewBox="0 0 264.58333 264.58334"
width="205.62321mm"
height="95.967278mm"
viewBox="0 0 205.62321 95.967278"
version="1.1"
id="svg562"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="bent.svg">
<defs
id="defs556" />
id="svg11344"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="bent.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="base"
id="namedview11346"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.64"
inkscape:cx="453.84274"
inkscape:cy="552.13217"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.81586714"
inkscape:cx="145.24424"
inkscape:cy="159.95251"
inkscape:window-width="1920"
inkscape:window-height="1043"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-global="false"
showguides="false" />
<metadata
id="metadata559">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<defs
id="defs11341" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
id="layer1"
transform="translate(-213.12067,-173.6817)">
<path
sodipodi:nodetypes="cccccccc"
style="fill:#75507b;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 54.063317,51.233465 40.977429,53.308819 40.515197,68.970382 90.692174,66.571156 92.817809,53.290569 79.850805,51.233465 c -2.383674,2.56159 -7.45818,2.392046 -12.88983,2.392046 -6.245252,0.0394 -10.547579,0.133442 -12.897658,-2.392046 z"
id="inside"
inkscape:connector-curvature="0" />
id="front-folds"
d="M 3771.67,-458 3764.77,-428.58 C 3762.68,-418.73 3760.73,-408.85 3759.1,-398.91 3757.4,-388.99 3755.94,-379.02 3754.69,-369.03 3754.04,-364.04 3753.48,-359.03 3752.95,-354.02 3752.4,-349.01 3751.93,-344 3751.49,-338.98 3751.81,-344.01 3752.16,-349.03 3752.59,-354.06 3753.04,-359.08 3753.54,-364.09 3754.12,-369.1 3755.26,-379.12 3756.72,-389.09 3758.37,-399.04 3760.07,-408.98 3762.01,-418.87 3764.22,-428.71 3766.55,-438.5 3769.15,-448.25 3771.67,-458 Z M 3547.09,-458 C 3549.61,-448.25 3552.2,-438.5 3554.55,-428.7 3556.76,-418.87 3558.7,-408.97 3560.4,-399.03 3562.05,-389.08 3563.51,-379.11 3564.65,-369.09 3565.23,-364.08 3565.73,-359.07 3566.18,-354.05 3566.61,-349.03 3566.96,-344 3567.28,-338.97 3566.84,-343.99 3566.37,-349 3565.82,-354.01 3565.29,-359.02 3564.73,-364.02 3564.08,-369.02 3562.83,-379.01 3561.37,-388.98 3559.67,-398.9 3558.03,-408.84 3556.09,-418.72 3554,-428.57 Z"
style="opacity:0.46"
transform="matrix(0.26458333,0,0,0.26458333,-705.91184,301.04819)" />
<path
id="primary0"
style="fill:#5c3566;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 27.945171,55.347755 c 3.449765,5.345237 8.288338,36.941875 2.138182,47.670575 -1.848947,7.82648 -5.98351,24.88034 -6.343199,34.42884 -1.09109,4.40084 -0.127614,37.31479 1.930471,57.61157 -9.326854,1.64947 -12.493212,2.68786 -16.6305017,3.13771 -2.1261282,-27.71087 -4.2604632,-48.36731 -4.1552739,-62.56157 0.066166,-8.92402 6.8339696,-36.746024 12.0625546,-57.672855 2.824681,-10.79569 7.453943,-22.61427 10.997767,-22.61427 z m 79.059019,0 c -4.3212,6.250752 -7.698426,37.390127 -2.41726,46.770865 1.84895,7.82648 6.2626,25.78005 6.62229,35.32855 1.09108,4.40084 0.12759,37.31479 -1.93049,57.61157 9.32686,1.64947 12.49322,2.68786 16.63051,3.13771 2.12612,-27.71087 4.26046,-48.36731 4.15527,-62.56157 -0.0662,-8.92402 -6.83398,-36.746024 -12.06255,-57.672855 -2.8247,-10.79569 -7.45395,-22.61427 -10.99777,-22.61427 z m 51.14988,0 c 0.51558,6.567913 4.46204,38.536299 2.13818,47.670575 -1.84895,7.82648 -5.98351,24.88034 -6.3432,34.42884 -1.09109,4.40084 -0.12761,37.31479 1.93047,57.61157 -9.32685,1.64947 -12.49321,2.68786 -16.6305,3.13771 -2.12613,-27.71087 -4.26046,-48.36731 -4.15527,-62.56157 0.0662,-8.92402 6.83397,-36.746024 12.06255,-57.672855 2.82468,-10.79569 7.45394,-22.61427 10.99777,-22.61427 z m 79.05901,0 c -0.51558,6.567913 -4.74112,37.636589 -2.41726,46.770865 1.84895,7.82648 6.2626,25.78005 6.62229,35.32855 1.09108,4.40084 0.1276,37.31479 -1.93048,57.61157 9.32686,1.64947 12.49321,2.68786 16.6305,3.13771 2.12613,-27.71087 4.26046,-48.36731 4.15527,-62.56157 -0.0662,-8.92402 -6.83396,-36.746024 -12.06255,-57.672855 -2.82468,-10.79569 -7.45394,-22.61427 -10.99777,-22.61427 z"
inkscape:connector-curvature="0" />
class="st2"
d="M 396.08039,266.65765 C 394.85801,255.42344 394.04309,244.36915 393.63828,237.80219 393.16997,230.21659 393.07736,223.23688 393.04297,220.56988 392.99537,216.7493 393.01387,213.50286 393.04297,211.0634 394.38628,215.95083 398.72476,225.39397 400.93131,235.15796 403.98785,248.68315 404.89842,262.82397 405.52072,266.32427 L 418.59378,264.54098 412.98461,225.91975 C 408.33853,203.8588 402.70555,187.76155 401.95414,184.91992 401.91704,184.77705 401.58636,183.47794 400.76616,181.94865 400.12322,180.75273 399.35857,179.36896 397.79489,178.38471 397.32393,178.08838 396.89795,177.90317 396.60691,177.7894 L 378.55105,173.96795 C 374.87009,176.6345 372.59555,176.70881 368.08219,176.81602 363.56884,176.92323 361.22902,176.24964 358.15162,173.96795 L 341.34868,177.7894 C 341.05764,177.90052 340.63166,178.08573 340.1607,178.38471 338.59701,179.36896 337.83237,180.75273 337.18943,181.94865 336.36657,183.47794 336.03849,184.77705 336.00145,184.91992 335.25003,187.76155 329.6197,203.8588 324.97097,225.91975 L 319.36445,264.54098 332.43751,266.32427 C 333.08799,262.6671 334.24943,247.3821 337.44205,233.32641 339.50869,224.2278 343.65619,215.64429 344.91526,211.0634 344.94436,213.50286 344.96286,216.7493 344.91526,220.56988 344.88356,223.23423 344.79091,230.21659 344.31995,237.80219 343.91514,244.36915 343.10022,255.55573 341.87784,266.65765 342.55253,266.78994 343.07112,266.99367 344.3517,267.25296 358.25344,269.916 380.35776,269.93112 393.60653,267.25296 394.88711,266.99367 395.4057,266.78994 396.08039,266.65765"
id="back-main"
sodipodi:nodetypes="ccccscccccscccccccccccsccccccc"
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10" />
<path
id="primary1"
style="fill:#5c3566;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 54.30167,51.233465 -26.742788,4.241268 c 0.184394,1.859102 3.423186,18.17964 3.423186,25.769903 0.467699,19.785484 -1.262662,21.909534 -2.227481,25.764214 2.203681,16.50541 -0.204757,25.0003 -0.212482,40.04941 0,16.54137 -2.646177,39.85544 -3.015211,43.95719 l 83.337016,0.14616 c -0.36876,-4.10175 -1.89865,-26.36236 -1.89865,-42.90373 0,-23.27475 -1.61869,-37.94124 -1.61869,-43.7604 -2.38293,-4.12769 -3.38696,-16.299653 -2.57396,-25.797608 0,-7.590264 3.8671,-21.366037 4.05148,-23.225139 L 80.089148,51.233465 c -2.383675,2.56159 1.431124,12.522787 -12.88983,12.571102 C 52.878363,63.852878 56.651749,53.758953 54.30167,51.233465 Z m 130.2089,0 -26.74279,4.241268 c 0.18439,1.859102 -0.1816,13.090111 -0.1816,20.680374 -0.98131,8.192492 -0.0774,22.428411 0.92749,29.954033 2.20368,16.50541 0.24506,25.90001 0.23733,40.94912 0,16.54137 -3.37699,40.0016 -3.74602,44.10335 h 84.79866 c -0.36878,-4.10175 -2.62948,-26.36236 -2.62948,-42.90373 0,-23.27475 -1.16887,-38.24115 -1.16887,-44.06031 0.21175,-12.724469 0.40415,-18.544507 1.21715,-28.042463 0,-7.590263 -0.37384,-18.821272 -0.18945,-20.680374 l -26.73494,-4.241268 c -2.38368,2.56159 -7.45817,2.392046 -12.88983,2.392046 -6.24525,0.0394 -10.54757,0.133442 -12.89765,-2.392046 z"
inkscape:connector-curvature="0" />
id="front-main"
style="display:inline;fill:none;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:10;stroke-dasharray:none"
d="M 272.00869,173.87682 C 271.93489,174.72896 271.78723,175.94544 271.33805,177.09771 269.64686,181.26549 265.5468,183.53961 261.52389,183.51573 257.67134,183.49283 253.8915,181.35476 252.2799,177.09771 251.83156,175.90197 251.68192,174.7128 251.60926,173.87682 M 272.00869,173.81062 C 268.32773,176.47717 266.05318,176.55148 261.53982,176.65869 257.02647,176.7659 254.68666,176.09232 251.60926,173.81062 M 251.60926,173.81067 235.26135,177.7894 C 234.66603,177.96138 233.41191,178.40852 232.29007,179.57269 231.04124,180.8665 224.49016,201.14682 223.57205,205.71617 222.87773,209.17548 220.79568,216.42639 218.9659,225.14614 216.45167,237.12776 215.53134,251.88267 213.48085,263.38475 213.40945,263.78163 213.33797,264.19438 213.27447,264.54098 L 225.75222,266.91694 231.8415,230.18506 238.22997,211.0634 235.1661,266.91694 C 235.84078,267.04923 236.35937,267.25296 237.63995,267.51225 251.54169,270.17529 273.78889,270.19042 287.03766,267.51225 288.31824,267.25296 288.83682,267.04923 289.51151,266.91694 L 286.44499,211.0634 292.96729,230.7841 298.92274,266.91694 311.40314,264.54098 C 311.33964,264.19438 311.2682,263.78163 311.19676,263.38475 309.10367,251.6437 308.09934,236.51325 305.55569,224.403 303.79398,216.01548 301.78006,209.07672 301.10555,205.71617 300.18745,201.14682 293.63637,180.8665 292.38753,179.57269 291.2657,178.40852 290.01157,177.96138 289.41626,177.7894 L 272.00869,173.81067" />
<path
id="front-stitching"
style="fill:none;stroke:#dc3545;stroke-width:0.265;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.52999797,0.52999797,0.52999797,0,0,0;stroke-dashoffset:0"
class="st22"
d="M 271.80692,174.89239 C 268.31659,177.78041 265.69065,177.49488 261.51769,177.59981 257.34474,177.70475 255.26792,177.32666 251.7932,174.94785 M 273.20016,174.15596 C 272.95082,175.67486 272.64263,177.05158 272.06031,178.17168 267.07871,187.75403 254.7972,185.83158 251.71102,178.75127 251.02752,177.18322 250.53688,175.68485 250.41864,174.25148 M 289.29984,264.877 C 271.31781,268.44954 251.79516,268.22917 235.19785,264.9379 M 311.09094,262.27615 298.61578,264.79233 M 213.6819,262.27615 226.15704,264.79233"
sodipodi:nodetypes="ccccccccccccc" />
<path
id="back-folds"
style="opacity:0.2;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 409.45269,262.93133 C 409.45269,262.93133 407.76089,238.52836 405.08707,228.5355 402.41324,218.54264 394.50373,203.26779 394.50373,203.26779 394.50373,203.26779 401.783,218.69541 404.42561,228.66779 407.06821,238.64017 409.45269,262.93133 409.45269,262.93133 Z M 328.60904,263.34506 C 328.60904,263.34506 330.30084,238.94209 332.97467,228.94923 335.64849,218.95637 343.558,203.68152 343.558,203.68152 343.558,203.68152 336.27873,219.10914 333.63613,229.08152 330.99352,239.0539 328.60904,263.34506 328.60904,263.34506 Z M 398.44841,179.27371 396.62543,186.65559 C 396.07245,189.12944 395.55651,191.61123 395.12524,194.10625 394.6728,196.59863 394.28916,199.10423 393.95578,201.61777 393.7838,202.87455 393.63564,204.13132 393.49541,205.39073 393.34989,206.65015 393.22553,207.91221 393.10911,209.17427 393.19378,207.90957 393.28639,206.64486 393.40016,205.3828 393.51922,204.12073 393.65151,202.85867 393.80497,201.59925 394.10659,199.08042 394.49289,196.57217 394.92945,194.07186 395.37924,191.57419 395.89253,189.08975 396.47726,186.62119 397.09903,184.16321 397.78166,181.72111 398.44841,179.27371 Z M 339.03093,179.27371 C 339.69768,181.71846 340.3803,184.16321 341.00207,186.62119 341.5868,189.08975 342.10009,191.57419 342.54989,194.07186 342.98645,196.57217 343.37274,199.08042 343.67437,201.59925 343.82782,202.85867 343.96012,204.12073 344.07918,205.3828 344.19295,206.64486 344.28555,207.90957 344.37022,209.17427 344.2538,207.91221 344.12945,206.65015 343.98393,205.39073 343.8437,204.13132 343.69553,202.8719 343.52355,201.61777 343.19018,199.10423 342.80653,196.60127 342.35409,194.10625 341.92018,191.60859 341.40689,189.1268 340.85391,186.65559 Z" />
<path
id="back-stitching"
style="fill:none;stroke:#dc3545;stroke-width:0.265;stroke-linecap:round;stroke-miterlimit:10;stroke-dasharray:0.529998,0.529998,0.529998,0,0,0;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linejoin:miter;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
class="st22"
d="M 395.83771,264.89342 C 377.85567,268.46595 358.60769,267.94157 342.01037,264.65025 M 418.28787,262.23544 405.30145,264.17953 M 319.63058,262.23538 332.60068,264.17957" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Before After
Before After

52
config/authors.mjs Normal file
View file

@ -0,0 +1,52 @@
/*
* A list of (documentation) authors.
* The ID is the (future v3) FreeSewing user ID (zero for now)
* The name is what we'll use as display name
*/
export const authors = {
joostdecock: { id: 0, name: 'Joost De Cock' },
'Prof. dr. Sorcha Ní Dhubhghaill': { id: 0, name: 'Prof. dr. Sorcha Ní Dhubhghaill' },
mocked: { id: 0, name: 'Unknown (mocked in dev)' },
benjamesben: { id: 0, name: 'Benjamin' },
nikhil: { id: 0, name: 'nikhil' },
jackseye: { id: 0, name: 'jackseye' },
'Annie Kao': { id: 0, name: 'Annie Kao' },
Bart: { id: 0, name: 'Bart' },
'Enoch Riese': { id: 0, name: 'Enoch Riese' },
Zee: { id: 0, name: 'Zee' },
'James Bradbury': { id: 0, name: 'James Bradbury' },
jgfichte: { id: 0, name: 'jgfichte' },
Tríona: { id: 0, name: 'Tríona' },
starfetch: { id: 0, name: 'starfetch' },
bobgeorgethe3rd: { id: 0, name: 'starfetch' },
'Glenn Matthews': { id: 0, name: 'Glenn Matthews' },
'Raphael Sizemore': { id: 0, name: 'Raphael Sizemore' },
'Joe Schofield': { id: 0, name: 'Joe Schofield' },
mergerg: { id: 0, name: 'starfetch' },
woutervdub: { id: 0, name: 'Wouter van Wageningen' },
'anna-puk': { id: 0, name: 'Anna Puk' },
'Nick Dower': { id: 0, name: 'Nick Dower' },
'Sanne Kalkman': { id: 0, name: 'Sanne Kalkman' },
'Darigov Research': { id: 0, name: 'Darigov Research' },
'Jeroen Hoek': { id: 0, name: 'Jeroen Hoek' },
Natalia: { id: 0, name: 'Natalia Sayang' },
chri5b: { id: 0, name: 'chri5b' },
tangerineshark: { id: 0, name: 'tangerineshark' },
'bekivo@gmail.com': { id: 0, name: 'Ivo Bek' },
}
/*
* Maps git commiter name to author for those cases where the
* name in the authors table is different
*/
export const gitToAuthor = {
'Joost De Cock': 'joostdecock',
'Benjamin F': 'benjamesben',
'Benjamin Fan': 'benjamesben',
SeaZeeZee: 'Zee',
'Wouter van Wageningen': 'woutervdub',
'bobgeorgethe3rd@googlemail.com': 'bobgeorgethe3rd',
'70777269+tangerineshark@users.noreply.github.com': 'tangerineshark',
'thijs.assies@gmail.com': 'MA-TATAS',
'Natalia Sayang': 'Natalia',
}

View file

@ -1,37 +0,0 @@
import { designs, plugins, packages } from './software/index.mjs'
/*
* As this monorepo has interlocking dependencies
* we need to ensure things get built in the correct
* order. This file takes care of that
*/
const first = ['core', 'remark-jargon', 'snapseries']
const blocks = ['brian', 'titan', 'bella', 'breanna']
const extended = ['bent', 'simon', 'carlton', 'ursula']
const last = ['i18n']
export const buildOrder = [
// First build FreeSewing core library and config-helpers
first,
// Then build all FreeSewing plugins, but not the bundle
Object.keys(plugins).filter((id) => id !== 'plugin-bundle'),
// Then build the plugin bundle
['plugin-bundle'],
// Then build all FreeSewing designs that are blocks
blocks,
// Then build all FreeSewing designs that are further extended
extended,
// Then build all remaining designs
Object.keys(designs).filter((id) => [...blocks, ...extended].indexOf(id) === -1),
// Finally build the rest of the packages
Object.keys(packages).filter((id) => first.indexOf(id) === -1 && last.indexOf(id) === -1),
last,
]

View file

@ -1,14 +1,61 @@
Unreleased:
Breaking:
Added:
core:
- Allow plugins to provide their own packing implementation
plugin-bin-pack:
- First release of the plugin providing the default packing implementation
Changed:
aaron:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
albert:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
bee:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
benjamin:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
carlton:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
charlie:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
hortensia:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
huey:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
hugo:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
jaeger:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
- Corrected part mixup in translation of flag message
octoplushy:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
paco:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
sandy:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
shin:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
sven:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
yuri:
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes #5057
plugin-annotations:
- Added support for notes in flags
Fixed:
core:
- Fix order in mergeOptions method so user settings take precendence over defaults
- Fix upward snap for snapped percentage option when snap is a simple number
plugintest:
- Remove names from old plugins from list option
3.0.0:
date: 2022-09-30
Changed:
all:
- This package is now ESM only.
- Dropped support for NodeJS 14.
NodeJS 16 or more recent is now required.
plugin-gore:
- The `goreNumber` props is removed. Please use `gores` instead
snapseries:
- Named export `smallsteps` has been renamed to `smallSteps`
- Named export `bigsteps` has been renamed to `bigSteps`
- All FreeSewing pacakges are now ESM only.
- All FreeSewing pacakges now use named exports.
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
Removed:
global:
@ -37,6 +84,12 @@ Unreleased:
- The `remark-jargon` package is not part of FreeSewing v3.
While v2 versions remain available, this package is no longer supported.
Use `rehype-jargon` instead.
- The `@freesewing/ursula` package is not part of FreeSewing v3.
While v2 versions remain available, use `@freesewing/uma` instead.
- The `@freesewing/unice` package is not part of FreeSewing v3.
While v2 versions remain available, use `@freesewing/uma` instead.
- The `@freesewing/plugin-bundle` package is not part of FreeSewing v3.
While v2 versions remain available, v3 uses `@freesewing/core-plugins` instead.
plugin-banner:
- This plugin no longer sets its version as an SVG attribute when rendering patterns
@ -83,33 +136,6 @@ Unreleased:
plugin-versionfree-svg:
- This plugin no longer sets its version as an SVG attribute when rendering patterns
Fixed:
albert:
- Workaround for not finding a suitable legband radius
unice:
- Fixed bug which prevented parts from being generated as intended
waralee:
- Fixed crotch depth issue
- Fixed pocket size issue
- Fixed waist shaping issue
Changed:
plugin-title:
- Use localized date format
unice:
- Updated gusset to always curve inward
Added:
unice:
- Added new Front Curve and Back Curve style options
waralee:
- Added *mini* version of main pants part
- Added new pocket options
- Added seperate waistband options
- Added bow tie placement option
components:
- Added linedrawing for Lunetius
2.22.0:
date: 2022-08-23

View file

@ -2,10 +2,9 @@ _types:
design:
peer:
'@freesewing/core': &freesewing '{{version}}'
'@freesewing/plugin-bundle': *freesewing
dev:
'mocha': &mocha '10.2.0'
'chai': &chai '4.3.7'
'chai': &chai '4.3.10'
'@freesewing/models': *freesewing
'@freesewing/plugin-timing': *freesewing
plugin:
@ -24,14 +23,12 @@ bee:
bent:
peer:
'@freesewing/brian': *freesewing
'@freesewing/plugin-mirror': *freesewing
'@freesewing/plugin-bust': *freesewing
breanna:
peer:
'@freesewing/brian': *freesewing
brian:
peer:
'@freesewing/plugin-mirror': *freesewing
'@freesewing/plugin-bust': *freesewing
carlita:
peer:
@ -39,41 +36,37 @@ carlita:
'@freesewing/bent': *freesewing
'@freesewing/carlton': *freesewing
'@freesewing/plugin-bust': *freesewing
'@freesewing/plugin-mirror': *freesewing
carlton:
peer:
'@freesewing/brian': *freesewing
'@freesewing/bent': *freesewing
'@freesewing/plugin-mirror': *freesewing
'@freesewing/plugin-bust': *freesewing
charlie:
peer:
'@freesewing/plugin-bartack': *freesewing
'@freesewing/plugin-mirror': *freesewing
'@freesewing/titan': *freesewing
'@freesewing/snapseries': *freesewing
core:
_:
'bezier-js': '6.1.3'
'bin-pack-with-constraints': '1.0.1'
'@freesewing/core-plugins': *freesewing
'bezier-js': '6.1.4'
'hooks': '0.3.2'
'lodash.get': &_get '4.4.2'
'lodash.set': &_set '4.3.2'
'lodash.unset': &_unset '4.5.2'
'lodash.clonedeep': '^4.5.0'
dev:
'eslint': &eslint '8.39.0'
'eslint': &eslint '8.51.0'
'nyc': '15.1.0'
'mocha': *mocha
'chai': *chai
'sinon': &sinon '^15.0.1'
'chai-string': '1.5.0'
'sinon': &sinon '^16.1.0'
diana:
peer:
'@freesewing/brian': *freesewing
'@freesewing/plugin-bust': *freesewing
examples:
peer:
'@freesewing/plugin-mirror': *freesewing
'@freesewing/plugin-gore': *freesewing
holmes:
_:
@ -88,23 +81,18 @@ hugo:
peer:
'@freesewing/brian': *freesewing
'@freesewing/plugin-bust': *freesewing
i18n:
dev:
'js-yaml': '4.1.0'
'recursive-readdir': '^2.2.3'
jaeger:
peer:
'@freesewing/brian': *freesewing
'@freesewing/bent': *freesewing
'@freesewing/plugin-bust': *freesewing
'@freesewing/plugin-mirror': *freesewing
new-design:
_:
'axios': '1.4.0'
'chalk': '5.0.1'
'execa': '7.1.1'
'mustache': '4.2.0'
'ora': '6.1.0'
'axios': &axios '1.5.1'
'chalk': '5.3.0'
'execa': '8.0.1'
'mustache': &mustache '4.2.0'
'ora': &ora '7.0.1'
'prompts': '2.4.2'
'recursive-readdir': '2.2.3'
noble:
@ -114,7 +102,7 @@ paco:
peer:
'@freesewing/titan': *freesewing
'@freesewing/snapseries': *freesewing
plugin-bundle:
core-plugins:
dev:
'@freesewing/plugin-annotations': *freesewing
'@freesewing/plugin-mirror': *freesewing
@ -133,14 +121,18 @@ plugintest:
'@freesewing/plugin-sprinkle': *freesewing
'@freesewing/plugin-svgattr': *freesewing
'@freesewing/plugin-theme': *freesewing
'@freesewing/plugin-validate': *freesewing
react-components:
_:
html-react-parser: "^4.2.2"
peer:
react: '>=14'
rehype-jargon:
_:
'unist-util-visit': &unist-util-visit '4.1.2'
'hast-util-from-html': '1.0.1'
'unist-util-visit': &unist-util-visit '5.0.0'
'hast-util-from-html': '2.0.1'
rehype-highlight-lines:
_:
'unist-util-remove': '3.1.1'
'unist-util-remove': '4.0.0'
sandy:
peer:
'@freesewing/snapseries': *freesewing
@ -188,42 +180,41 @@ yuri:
backend:
_:
'@aws-sdk/client-sesv2': '3.326.0'
'@prisma/client': &prisma '4.13.0'
'@aws-sdk/client-sesv2': '3.428.0'
'@prisma/client': &prisma '5.4.2'
'bcryptjs': '2.4.3'
'cors': '2.8.5'
'crypto': '1.0.1'
'dotenv': '16.0.3'
'dotenv': '16.3.1'
'express': '4.18.2'
'js-yaml': &jsyaml '4.1.0'
'lodash.get': *_get
'mustache': '4.2.0'
'mustache': *mustache
'otplib': '12.0.1'
'passport': '0.6.0'
'passport-http': '0.3.0'
'passport-jwt': '4.0.1'
'pino': '8.11.0'
'pino': '8.15.0'
'qrcode': '1.5.3'
'swagger-ui-dist': '4.18.3'
'swagger-ui-express': '4.6.2'
'swagger-ui-dist': '5.9.0'
'swagger-ui-express': '5.0.0'
dev:
'chai': *chai
'chai-http': '4.3.0'
'esbuild': '0.17.18'
'chai-http': '4.4.0'
'esbuild': '0.19.4'
'mocha': *mocha
'mocha-steps': '1.3.0'
'nodemon': '2.0.22'
'nodemon': '3.0.1'
'prisma': *prisma
dev:
_:
'@mdx-js/loader': &mdx '2.3.0'
'@mdx-js/mdx': *mdx
'@mdx-js/mdx': &mdx '^2.3.0'
'@mdx-js/react': *mdx
'@mdx-js/runtime': &mdxRuntime '2.0.0-next.9'
'@next/bundle-analyzer': &next '13.3.4'
'@next/bundle-analyzer': &next '13.5.4'
'@tailwindcss/typography': &tailwindTypography '0.5.9'
'algoliasearch': '4.17.0'
'daisyui': &daisyui '2.51.6'
'algoliasearch': '4.20.0'
'daisyui': &daisyui '3.9.2'
'lodash.get': *_get
'lodash.orderby': &_orderby '4.6.0'
'lodash.set': *_set
@ -231,61 +222,51 @@ dev:
'react': &react '18.2.0'
'react-copy-to-clipboard': &reactCopyToClipboard '5.1.0'
'react-dom': *react
'react-hotkeys-hook': &reactHotkeysHook '4.4.0'
'react-instantsearch-dom': &reactInstantsearchDom '6.39.1'
'react-markdown': &reactMarkdown '8.0.7'
'react-swipeable': &reactSwipeable '7.0.0'
'react-timeago': &reactTimeago '7.1.0'
'rehype-autolink-headings': &rehypeAutolinkHeadings '6.1.1'
'rehype-highlight': &rehypeHighlight '6.0.0'
'rehype-sanitize': &rehypeSanitize '5.0.1'
'rehype-slug': &rehypeSlug '5.1.0'
'rehype-stringify': &rehypeStringify '9.0.3'
'remark-copy-linked-files': &remarkCopyLinkedFiles 'https://github.com/joostdecock/remark-copy-linked-files'
'react-hotkeys-hook': &reactHotkeysHook '4.4.1'
'react-instantsearch-dom': &reactInstantsearchDom '6.40.4'
'react-instantsearch-hooks-web': '6.47.3'
'react-swipeable': &reactSwipeable '7.0.1'
'react-timeago': &reactTimeago '7.2.0'
'rehype-autolink-headings': &rehypeAutolinkHeadings '7.0.0'
'rehype-highlight': &rehypeHighlight '7.0.0'
'rehype-sanitize': &rehypeSanitize '6.0.0'
'rehype-slug': &rehypeSlug '6.0.0'
'rehype-stringify': &rehypeStringify '10.0.0'
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
'remark-copy-linked-files': &remarkCopyLinkedFiles 'git+https://git@github.com/joostdecock/remark-copy-linked-files'
'remark-gfm': &remarkGfm '3.0.1'
dev: &nextSiteDevDependencies
'@playwright/test': '^1.32.3'
'autoprefixer': '10.4.14'
'eslint-config-next': *next
'autoprefixer': &autoprefixer '10.4.16'
'js-yaml': &jsYaml '4.1.0'
'postcss': &postcss '8.4.23'
'playwright': '^1.32.3'
'postcss': &postcss '8.4.31'
'remark-extract-frontmatter': '3.2.0'
'tailwindcss': &tailwindcss '3.3.2'
'remark-mdx-frontmatter': &mdxfrontmatter '3.0.0'
'tailwindcss': &tailwindcss '3.3.3'
'yaml-loader': '0.8.0'
email:
_:
'@maizzle/framework': '4.4.4'
'tailwindcss-box-shadow': '2.0.1'
'tailwindcss-email-variants': '2.0.2'
'tailwindcss-mso': '1.3.0'
lab:
_:
'@headlessui/react': &headlessUiReact '1.7.14'
'@mdx-js/loader': *mdx
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'algoliasearch': &algoliasearch '4.17.0'
'd3-dispatch': '3.0.1'
'd3-drag': '3.0.0'
'd3-selection': '3.0.0'
'algoliasearch': &algoliasearch '4.20.0'
'd3-dispatch': &d3dispatch '3.0.1'
'd3-drag': &d3drag '3.0.0'
'd3-selection': &d3selection '3.0.0'
'daisyui': *daisyui
'i18next': &i18next '22.4.14'
'i18next': &i18next '23.5.1'
'lodash.get': *_get
'lodash.orderby': *_orderby
'lodash.set': *_set
'next': *next
'next-i18next': &nextI18next '13.2.2'
'next-i18next': &nextI18next '14.0.0'
'ora': *ora
'react': *react
'react-copy-to-clipboard': *reactCopyToClipboard
'react-hotkeys-hook': *reactHotkeysHook
'react-i18next': &reactI18next '12.2.2'
'react-i18next': &reactI18next '13.2.2'
'react-instantsearch-dom': *reactInstantsearchDom
'react-markdown': *reactMarkdown
'react-swipeable': *reactSwipeable
'react-timeago': *reactTimeago
'rehype-autolink-headings': *rehypeAutolinkHeadings
@ -295,31 +276,34 @@ lab:
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
'remark-mdx-frontmatter': *mdxfrontmatter
dev:
*nextSiteDevDependencies
org:
_:
'@bugsnag/js': &bugsnag 7.18.0
'@bugsnag/plugin-react': *bugsnag
'@mdx-js/loader': *mdx
'@bugsnag/js': &bugsnag 7.20.2
'@bugsnag/plugin-react': 7.19.0
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'algoliasearch': *algoliasearch
'react-copy-to-clipboard': 5.1.0
'react-copy-to-clipboard': *reactCopyToClipboard
'daisyui': *daisyui
'echarts': 5.4.2
'echarts-for-react': 3.0.2
'jotai': &jotai '2.4.3'
'jotai-location': &jotai-location '0.5.1'
'lodash.get': *_get
'lodash.orderby': *_orderby
'lodash.set': *_set
'luxon': '3.3.0'
'luxon': '3.4.3'
'next': *next
'react-dropzone': '14.2.3'
'ora': *ora
'react-dropzone': &dropzone '14.2.3'
'react-hotkeys-hook': *reactHotkeysHook
'react-instantsearch-dom': *reactInstantsearchDom
'react-hot-toast': 2.4.0
'react-markdown': *reactMarkdown
'react-swipeable': *reactSwipeable
'react-timeago': *reactTimeago
'rehype-autolink-headings': *rehypeAutolinkHeadings
@ -329,28 +313,14 @@ org:
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
'remark-mdx-frontmatter': *mdxfrontmatter
'use-persisted-state': &use-persisted-state 0.3.3
'yaml-loader': 0.8.0
dev: *nextSiteDevDependencies
sanity:
_:
'@sanity/vision': &sanity '3.10.0'
'react': *react
'react-dom': *react
'react-is': *react
'sanity': *sanity
'styled-components': '5.3.10'
'sanity-plugin-markdown': '4.1.0'
dev:
'@sanity/eslint-config-studio': '2.0.1'
'eslint': *eslint
'prettier': '2.8.8'
'typescript': '5.0.4'
'@sanity/cli': '3.10.0'
shared:
_:
'@headlessui/react': *headlessUiReact
'@next/mdx': '13.5.4'
'@resvg/resvg-js': '2.4.1'
'@tailwindcss/typography': *tailwindTypography
'Buffer': '0.0.0'
@ -359,31 +329,98 @@ shared:
'd3-selection': '3.0.0'
'daisyui': *daisyui
'feed': '4.2.2'
'file-saver': '2.0.5'
'file-saver': &filesaver '2.0.5'
'front-matter': '4.0.2'
'highlight.js': '11.8.0'
'highlight.js': '11.9.0'
'github-slugger': '2.0.0'
'jotai': *jotai
'jotai-location': *jotai-location
'lodash.clonedeep': '4.5.0'
'lodash.debounce': &_debounce '^4.0.8'
'lodash.orderby': *_orderby
'lodash.unset': *_unset
'lodash.get': *_get
'mdast-util-toc': '6.1.1'
'mermaid': '10.1.0'
'pdfkit': '0.13.0'
'postcss-for': '2.1.1'
'mdast-util-toc': '7.0.0'
'mermaid': '10.4.0'
'ora': *ora
'pdfkit': &pdfkit '0.13.0'
'postcss-for': &postcssfor '2.1.1'
'react': *react
'react-dom': *react
'react-markdown': *reactMarkdown
'react-sizeme': '3.0.2'
'react-timeago': *reactTimeago
'react-zoom-pan-pinch': '3.0.7'
'react-zoom-pan-pinch': &zoompanpinch '3.1.0'
'rehype-autolink-headings': *rehypeAutolinkHeadings
'rehype-highlight': *rehypeHighlight
'remark-smartypants': '2.0.0'
'sharp': '0.32.1'
'svg-to-pdfkit': 'https://github.com/eriese/SVG-to-PDFKit'
'tlds': '1.238.0'
'to-vfile': '7.2.4'
'remark-frontmatter': &remarkfrontmatter '4.0.1'
'remark-mdx-frontmatter': *mdxfrontmatter
"remark-smartypants": &smartypants "2.0.0"
'sharp': '0.32.6'
"slugify": &slugify "^1.6.6"
# see: https://github.com/npm/cli/issues/2610#issuecomment-1295371753
'svg-to-pdfkit': &svgtopdfkit 'https://git@github.com/eriese/SVG-to-PDFKit'
'tlds': &rlds '1.242.0'
'to-vfile': '8.0.0'
'unist-util-visit': *unist-util-visit
'web-worker': '1.2.0'
'use-persisted-state': *use-persisted-state
'web-worker': &webworker '1.2.0'
dev:
'recursive-readdir': '^2.2.3'
'html-to-text': '^9.0.5'
sde:
_:
"@freesewing/core": *freesewing
"@freesewing/core-plugins": *freesewing
"@freesewing/brian": *freesewing
"@freesewing/bent": *freesewing
"@freesewing/titan": *freesewing
"@freesewing/bella": *freesewing
"@freesewing/breanna": *freesewing
"@freesewing/plugin-bust": *freesewing
"@freesewing/plugin-theme": *freesewing
"@freesewing/plugin-i18n": *freesewing
"@freesewing/snapseries": *freesewing
"@freesewing/react-components": *freesewing
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'autoprefixer': *autoprefixer
'axios': &axios
'd3-dispatch': *d3dispatch
'd3-drag': *d3drag
'd3-selection': *d3selection
'daisyui': *daisyui
'file-saver': *filesaver
'i18next': *i18next
'jotai': *jotai
'jotai-location': *jotai-location
'js-yaml': *jsyaml
'lodash.debounce': *_debounce
'lodash.get': *_get
'lodash.orderby': *_orderby
'lodash.set': *_set
'mustache': *mustache
"next": *next
'next-i18next': *nextI18next
'pdfkit': *pdfkit
'postcss-for': *postcssfor
"react": *react
"react-dom": *react
'react-copy-to-clipboard': *reactCopyToClipboard
'react-hotkeys-hook': *reactHotkeysHook
"react-i18next": *reactI18next
'react-dropzone': *dropzone
'react-swipeable': *reactSwipeable
'react-timeago': *reactTimeago
'react-zoom-pan-pinch': *zoompanpinch
'remark-gfm': *remarkGfm
'remark-frontmatter': *remarkfrontmatter
'remark-mdx-frontmatter': *mdxfrontmatter
'remark-smartypants': *smartypants
"slugify": *slugify
'svg-to-pdfkit': *svgtopdfkit
'tlds': *rlds
'use-persisted-state': *use-persisted-state
'web-worker': *webworker

View file

@ -5,7 +5,8 @@ customBuild:
- i18n
- new-design
- prettier-config
- plugin-bundle
- core-plugins
- react-components
- rehype-jargon
- rehype-highlight-lines
skipTests:
@ -31,6 +32,8 @@ packageJson:
author: AlfaLyr (https://github.com/alfalyr)
i18n:
private: true
lab:
private: true
lucy:
author: SeaZeeZee (https://github.com/SeaZeeZee)
lunetius: &starf
@ -49,6 +52,7 @@ packageJson:
- templates/**/*
- index.mjs
- package.json
- data.mjs
module: '!'
noble:
author: woutervdub (https://github.com/woutervdub)
@ -69,11 +73,9 @@ packageJson:
private: true
sandy:
author: AlfaLyr (https://github.com/alfalyr)
shelly:
author: Thrunic (https://github.com/Thrunic)
tiberius: *starf
unice:
author: Anna Puk (https://github.com/anna-puk)
ursula:
author: Natalia Sayang (https://github.com/nataliasayang)
waralee:
author: woutervdub (https://github.com/woutervdub)
walburga: *starf

View file

@ -43,7 +43,6 @@ other:
package:
- freesewing
patterns:
- bundle
- design
- diy
- fashion
@ -60,8 +59,7 @@ plugin:
- made to measure
- diy
- fashion
plugin-bundle:
- bundle
core-plugins:
- plugin
- sewing pattern
- sewing

1
config/languages.json Normal file
View file

@ -0,0 +1 @@
["en", "fr", "es", "de", "nl", "uk"]

View file

@ -30,7 +30,7 @@ export const measurements = [
'upperLeg',
'waist',
'waistBack',
'waistToArmhole',
'waistToArmpit',
'waistToFloor',
'waistToHips',
'waistToKnee',

15
config/roles.mjs Normal file
View file

@ -0,0 +1,15 @@
export const roles = {
levels: {
readNone: 0,
readSome: 1,
readOnly: 2,
writeSome: 3,
user: 4,
tester: 4,
curator: 5,
bughunter: 6,
support: 8,
admin: 9,
},
base: 'user',
}

View file

@ -1,10 +1,11 @@
_:
build: 'node build.mjs'
build: &build 'node build.mjs'
'build:all': 'yarn build'
clean: 'rimraf dist'
mbuild: 'NO_MINIFY=1 node build.mjs'
mbuild: &mbuild 'NO_MINIFY=1 node build.mjs'
symlink: 'mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -'
test: 'echo "{{name}}: No tests configured. Perhaps you could write some?" && exit 0'
vbuild: 'VERBOSE=1 node build.mjs'
vbuild: &vbuild 'VERBOSE=1 node build.mjs'
lab: 'cd ../../sites/lab && yarn start'
tips: 'node ../../scripts/help.mjs'
lint: "npx eslint 'src/**' 'tests/*.mjs'"
@ -12,7 +13,7 @@ _types:
design:
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
test: &test 'npx mocha tests/*.test.mjs'
testci: &testci 'npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js'
testci: &testci 'NODE_OPTIONS="--conditions=internal" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js'
plugin:
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
test: *test
@ -24,15 +25,14 @@ core:
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
lint: "npx eslint 'src/*.mjs' 'tests/*.mjs'"
jsdoc: 'jsdoc -c jsdoc.json -r src'
i18n:
prebuild: 'node scripts/prebuilder.mjs'
models:
test: 'npx mocha tests/*.test.mjs'
new-design:
i18n-only: 'SITE="new-design/shared" node ../../sites/shared/prebuild/i18n-only.mjs'
i18n-only: 'SITE="new-design/shared" node --conditions=internal ../../sites/shared/prebuild/i18n-only.mjs'
wbuild: '!'
lint: "npx eslint 'lib/*.mjs'"
mbuild: '!'
prebuild: 'node --conditions=internal ./prebuild.mjs'
test: '!'
testci: '!'
vbuild: '!'
@ -40,11 +40,14 @@ rehype-highlight-lines:
build: '!'
mbuild: '!'
vbuild: '!'
'build:all': '!'
lint: "npx eslint 'src/*.mjs'"
rehype-jargon:
lint: "npx eslint 'src/*.mjs'"
snapseries:
lint: "npx eslint 'src/*.mjs'"
react-components:
lint: "eslint 'src/**/*.mjs'"
# Sites go here
backend:
@ -52,22 +55,22 @@ backend:
clean: 'rimraf dist'
dev: 'nodemon src/index.mjs'
initdb: 'npx prisma db push'
mbuild: 'NO_MINIFY=1 node build.mjs'
mbuild: *mbuild
newdb: 'node ./scripts/newdb.mjs'
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
rmdb: 'node ./scripts/rmdb.mjs'
test: 'npx mocha --require mocha-steps tests/index.mjs'
vbuild: 'VERBOSE=1 node build.mjs'
prebuild: 'node scripts/prebuild.mjs'
vbuild: *vbuild
dev:
build: &nextBuild 'next build'
cibuild: 'yarn build && node scripts/algolia.mjs'
clean: &nextClean 'rimraf prebuild/* && rimraf public/locales/*/* && rimraf public/feeds/*'
clean: &nextClean 'rimraf prebuild/* && rimraf public/locales/*/* && rimraf public/feeds/* && rimraf ../shared/prebuild/data/*'
dev: &nextDev 'next dev -p 8000'
develop: *nextDev
i18n: "SITE=dev node --conditions=internal ../shared/prebuild/i18n-only.mjs"
lint: &nextLint 'next lint'
prebuild: 'SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs'
prebuild: &sitePrebuild 'node --conditions=internal --experimental-json-modules ./prebuild.mjs'
serve: "pm2 start npm --name 'dev' -- run start"
start: &nextStart 'yarn prebuild && yarn dev'
@ -78,12 +81,21 @@ email:
lab:
build: *nextBuild
cibuild: 'yarn build'
clean: 'rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs'
dev: *nextDev
develop: *nextDev
e2e: &e2e 'yarn playwright test'
i18n: 'SITE=lab node --conditions=internal ../shared/prebuild/i18n-only.mjs'
lint: *nextLint
prebuild: 'node --experimental-json-modules ../shared/prebuild/index.mjs'
prebuild: *sitePrebuild
start: 'cd ../org && yarn prebuild && cd - && yarn prebuild && yarn dev'
sde:
build: *nextBuild
cibuild: 'yarn build'
dev: *nextDev
develop: *nextDev
i18n: 'SITE=sde node --conditions=internal ../shared/prebuild/i18n-only.mjs'
lint: *nextLint
prebuild: *sitePrebuild
start: *nextStart
org:
@ -92,9 +104,9 @@ org:
clean: *nextClean
dev: *nextDev
develop: *nextDev
i18n: 'SITE=org node ../shared/prebuild/i18n-only.mjs'
i18n: 'SITE=org node --conditions=internal ../shared/prebuild/i18n-only.mjs'
lint: *nextLint
prebuild: 'SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs'
prebuild: *sitePrebuild
start: *nextStart
sanity:

View file

@ -0,0 +1,25 @@
export const sewingTechniques = [
'basting',
'biasBinding',
'blockDevelopment',
'boning',
'buttons',
'curved seams',
'darts',
'elastic',
'gathering',
'grommets',
'handSewing',
'interfacing',
'knitBinding',
'lining',
'pleating',
'pockets',
'precision',
'ribbing',
'serging',
'sleeves',
'topstitching',
'weltPockets',
'zipper',
]

9
config/social.mjs Normal file
View file

@ -0,0 +1,9 @@
export const social = {
YouTube: 'https://www.youtube.com/@freesewing',
Discord: 'https://discord.freesewing.org/',
Instagram: 'https://instagram.com/freesewing_org',
Facebook: 'https://www.facebook.com/groups/627769821272714/',
GitHub: 'https://github.com/freesewing',
Reddit: 'https://www.reddit.com/r/freesewing/',
Twitter: 'https://twitter.com/freesewing_org',
}

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
import designsByType from './designs.json' assert { type: 'json' }
import designs from './designs.json' assert { type: 'json' }
import packages from './packages.json' assert { type: 'json' }
import plugins from './plugins.json' assert { type: 'json' }
import sites from './sites.json' assert { type: 'json' }
@ -21,15 +21,8 @@ const unpackDesigns = (obj, folder) =>
])
)
const designs = {
...designsByType.accessories,
...designsByType.blocks,
...designsByType.garments,
...designsByType.utilities,
}
// Re-Export imported JSON
export { designs, designsByType, packages, plugins, sites }
export { designs, packages, plugins, sites }
// All software
export const software = {

View file

@ -1,9 +1,9 @@
{
"core": "A library for creating made-to-measure sewing patterns",
"i18n": "Translations for the FreeSewing project",
"models": "Body measurements data for a range of default sizes",
"new-design": "Initializer package for a new FreeSewing design: npx @freesewing/new-design",
"prettier-config": "FreeSewing's shared configuration for prettier",
"react-components": "React components by/for FreeSewing",
"snapseries": "A series of common sizes for elastics and other series to be used with snapped percentage options",
"rehype-jargon": "A Rehype plugin for jargon terms",
"rehype-highlight-lines": "A Rehype plugin to add highlighted lines to code blocks"

View file

@ -1,6 +1,7 @@
{
"core-plugins": "An umbrella package of essential plugins that are bundled with FreeSewing's core library",
"plugin-annotations": "A FreeSewing plugin that provides pattern annotations",
"plugin-bundle": "An umbrella package of 8 essential FreeSewing build-time plugins",
"plugin-bin-pack": "A FreeSewing plugin that adds a bin-pack algorithm to the core library",
"plugin-bust": "A FreeSewing plugin that helps with bust-adjusting menswear patterns",
"plugin-flip": "A FreeSewing plugin to flip parts horizontally",
"plugin-gore": "A FreeSewing plugin to generate gores for a semi-sphere or dome",

View file

@ -1,9 +1,8 @@
{
"backend": "FreeSewing backend",
"dev": "FreeSewing website with documentation for contributors & developers",
"email": "Holds maizzle instance to generate the FreeSewing email templates",
"lab": "FreeSewing website to test various patterns",
"org": "FreeSewing website",
"sanity": "Code for the sanity.io CMS",
"sde": "Stand-alone develpment environment. Basis for the @freesewing/new-design package",
"shared": "Shared code and React components for different websites"
}

View file

@ -4,16 +4,20 @@
// Dollar signs are allowed in EcmaScript identifier names,
// which is helpful when running unrendered Mustache templates through eslint.
//}}{{=$$ $$=}}
import { $$Name$$ } from '../src/index.mjs'
import { $$Name$$, i18n } from '../src/index.mjs'
// Shared tests
import { testPatternConfig } from '../../../tests/designs/config.mjs'
import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
// Test config
testPatternConfig($$Name$$)
// Test translation
testPatternI18n($$Name$$, i18n)
// Test drafting - Change the second parameter to `true` to log errors
testPatternDrafting($$Name$$, false)

View file

@ -0,0 +1,7 @@
{
"t": "{{ title }}",
"d": "{{ description }}",
"p": { },
"s": { },
"o": { }
}

View file

@ -0,0 +1,8 @@
import en from './en.json' assert { type: 'json' }
import de from './de.json' assert { type: 'json' }
import es from './es.json' assert { type: 'json' }
import fr from './fr.json' assert { type: 'json' }
import nl from './nl.json' assert { type: 'json' }
import uk from './uk.json' assert { type: 'json' }
export const i18n = { en, de, es, fr, nl, uk }

View file

@ -1,5 +1,3 @@
import { pluginBundle } from '@freesewing/plugin-bundle'
function draftBox({
options,
Point,
@ -65,6 +63,5 @@ export const box = {
options: {
size: { pct: 50, min: 10, max: 100, menu: 'fit' },
},
plugins: [pluginBundle],
draft: draftBox,
}

View file

@ -14,7 +14,10 @@
"type": "module",
"module": "dist/index.mjs",
"exports": {
".": "./dist/index.mjs"
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
},
"scripts": {
"cibuild_step1": "node build.mjs",
@ -28,10 +31,10 @@
"files": ["dist/*", "README.md"],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
"node": "18",
"npm": "9"
}
}

View file

@ -8,17 +8,9 @@
{{{info}}}
> #### Note: Version 3 is a work in progress
>
> We are working on a new major version (v3) but it is not ready for prime-time.
> For production use, please refer to our v2 packages (the `latest` on NPM)
> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2).
>
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
This folder holds: {{{fullname}}}
@ -41,11 +33,11 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -55,33 +47,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -89,11 +91,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
{{{contributors}}}
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).

View file

@ -48,22 +48,11 @@
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
## We are working on FreeSewing v3 🚀
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
The default branch (`develop`) in this repo is where we work on the upcoming FreeSewing v3.
Check out [the roadmap](https://github.com/freesewing/freesewing/discussions/1278) to
see what we're working towards. There is still time to submit your ideas/suggestions for
what you would like to see in our mext major release.
The current production code -- what is running on freesewing.org -- is in the `v2` branch.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
## Getting started ⚡
As this is a monorepo. You'll need [NodeJS v16](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
As this is a monorepo. You'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
```bash
@ -77,11 +66,11 @@ yarn kickstart
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -91,33 +80,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -125,8 +124,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://discord.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).

View file

@ -0,0 +1,17 @@
/*
* This file is auto-generated.
* Any manual changes will be overwritten.
*/
{{#designs}}
import { {{ Name }} as {{ name }} } from '@freesewing/{{ name }}'
{{/designs}}
const designs = {
{{#designs}}
{{ name }},
{{/designs}}
}
export const useDesign = (design) => (designs[design] ? designs[design] : false)
export const collection = Object.keys(designs)

View file

@ -1,16 +1,23 @@
content_segmentation: 0
commit_message: "skip-build"
pull_request_assignees:
- joostdecock
pull_request_title: New Crowdin Translations [skip build]
pull_request_labels:
- crowdin
- i18n
files:
- source: /packages/i18n/src/locales/en/**/*.yaml
translation: /packages/i18n/src/locales/%two_letters_code%/**/%original_file_name%
- source: /packages/i18n/src/locales/en/**/*.yml
translation: /packages/i18n/src/locales/%two_letters_code%/**/%original_file_name%
# Markdown for documentation and posts
- source: /markdown/org/**/en.md
translation: /markdown/org/**/%two_letters_code%.md
- source: /sites/org/pages/**/*.en.yaml
translation: /sites/org/pages/**/*.%two_letters_code%.yaml
- source: /sites/org/components/**/*.en.yaml
translation: /sites/org/components/**/*.%two_letters_code%.yaml
- source: /sites/shared/components/**/*.en.yaml
translation: /sites/shared/components/**/*.%two_letters_code%.yaml
- source: /sites/backend/src/**/*.en.yaml
translation: /sites/backend/src/**/*.%two_letters_code%.yaml
# YAML for React components and backend code
- source: /sites/**/en.yaml
translation: /sites/**/%two_letters_code%.yaml
# JSON for jargon, designs, and the new-design package
- source: /sites/shared/jargon/en.json
translation: /sites/shared/jargon/%two_letters_code%.json
- source: /designs/*/i18n/en.json
translation: /designs/*/i18n/%two_letters_code%.json
- source: /packages/new-design/i18n/en.json
translation: /packages/new-design/i18n/%two_letters_code%.json

View file

@ -1,6 +1,14 @@
# Change log for: @freesewing/aaron
## 3.0.0 (2022-09-30)
### Changed
- All FreeSewing pacakges are now ESM only.
- All FreeSewing pacakges now use named exports.
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
## 2.22.0 (2022-08-23)
### Added

View file

@ -22,7 +22,7 @@
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-107-pink.svg"
><img src="https://img.shields.io/badge/all_contributors-111-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
@ -53,17 +53,9 @@ A FreeSewing pattern for a A-shirt or tank top
> #### Note: Version 3 is a work in progress
>
> We are working on a new major version (v3) but it is not ready for prime-time.
> For production use, please refer to our v2 packages (the `latest` on NPM)
> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2).
>
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
This folder holds: @freesewing/aaron
@ -86,11 +78,11 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -100,33 +92,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -134,168 +136,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://adamrtomkins.github.io/"><img src="https://avatars.githubusercontent.com/u/5709603?v=4?s=100" width="100px;" alt="Adam Tomkins"/><br /><sub><b>Adam Tomkins</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AdamRTomkins" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://polymerisation-des-concepts.fr/"><img src="https://avatars.githubusercontent.com/u/365999?v=4?s=100" width="100px;" alt="Alexandre Ignjatovic"/><br /><sub><b>Alexandre Ignjatovic</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bankair" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AlfaLyr"><img src="https://avatars.githubusercontent.com/u/39273729?v=4?s=100" width="100px;" alt="AlfaLyr"/><br /><sub><b>AlfaLyr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AlfaLyr" title="Code">💻</a> <a href="#plugin-AlfaLyr" title="Plugin/utility libraries">🔌</a> <a href="#design-AlfaLyr" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://thelettereph.com"><img src="https://avatars.githubusercontent.com/u/357684?v=4?s=100" width="100px;" alt="Andrew James"/><br /><sub><b>Andrew James</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ephphatha" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/annekecaramin"><img src="https://avatars.githubusercontent.com/u/38046191?v=4?s=100" width="100px;" alt="Anneke"/><br /><sub><b>Anneke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=annekecaramin" title="Documentation">📖</a> <a href="#translation-annekecaramin" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anniekao"><img src="https://avatars.githubusercontent.com/u/1550506?v=4?s=100" width="100px;" alt="Annie Kao"/><br /><sub><b>Annie Kao</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anniekao" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Anternative"><img src="https://avatars.githubusercontent.com/u/81079850?v=4?s=100" width="100px;" alt="Anternative"/><br /><sub><b>Anternative</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Anternative" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Quiltmaster"><img src="https://avatars.githubusercontent.com/u/71795777?v=4?s=100" width="100px;" alt="Anthony"/><br /><sub><b>Anthony</b></sub></a><br /><a href="#question-Quiltmaster" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/arigrayzel"><img src="https://avatars.githubusercontent.com/u/33040950?v=4?s=100" width="100px;" alt="Ari Grayzel-student"/><br /><sub><b>Ari Grayzel-student</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=arigrayzel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Bart-PXL"><img src="https://avatars.githubusercontent.com/u/45118788?v=4?s=100" width="100px;" alt="Bart"/><br /><sub><b>Bart</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Bart-PXL" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BenJamesBen"><img src="https://avatars.githubusercontent.com/u/109869956?v=4?s=100" width="100px;" alt="BenJamesBen"/><br /><sub><b>BenJamesBen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3ABenJamesBen" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/camerondubas"><img src="https://avatars.githubusercontent.com/u/6216460?v=4?s=100" width="100px;" alt="Cameron Dubas"/><br /><sub><b>Cameron Dubas</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=camerondubas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cabi"><img src="https://avatars.githubusercontent.com/u/2596253?v=4?s=100" width="100px;" alt="Carsten Biebricher"/><br /><sub><b>Carsten Biebricher</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cabi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cathyzoller"><img src="https://avatars.githubusercontent.com/u/2120275?v=4?s=100" width="100px;" alt="Cathy Zoller"/><br /><sub><b>Cathy Zoller</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cathyzoller" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chantalbijoux"><img src="https://avatars.githubusercontent.com/u/39673694?v=4?s=100" width="100px;" alt="Chantal Lapointe"/><br /><sub><b>Chantal Lapointe</b></sub></a><br /><a href="#translation-Chantalbijoux" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dpiquet"><img src="https://avatars.githubusercontent.com/u/4688628?v=4?s=100" width="100px;" alt="Damien PIQUET"/><br /><sub><b>Damien PIQUET</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=dpiquet" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.darigovresearch.com/"><img src="https://avatars.githubusercontent.com/u/30328618?v=4?s=100" width="100px;" alt="Darigov Research"/><br /><sub><b>Darigov Research</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=darigovresearch" title="Documentation">📖</a> <a href="#ideas-darigovresearch" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/clegganator259"><img src="https://avatars.githubusercontent.com/u/3974250?v=4?s=100" width="100px;" alt="David Clegg"/><br /><sub><b>David Clegg</b></sub></a><br /><a href="#design-clegganator259" title="Design">🎨</a> <a href="https://github.com/freesewing/freesewing/commits?author=clegganator259" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ElenaFdR"><img src="https://avatars.githubusercontent.com/u/5113815?v=4?s=100" width="100px;" alt="Elena FdR"/><br /><sub><b>Elena FdR</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ElenaFdR" title="Documentation">📖</a> <a href="#blog-ElenaFdR" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://emmanuelnyachoke.com/"><img src="https://avatars.githubusercontent.com/u/1908926?v=4?s=100" width="100px;" alt="Emmanuel Nyachoke"/><br /><sub><b>Emmanuel Nyachoke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://enochriese.com"><img src="https://avatars.githubusercontent.com/u/5298929?v=4?s=100" width="100px;" alt="Enoch Riese"/><br /><sub><b>Enoch Riese</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eriese" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EvEkSwed"><img src="https://avatars.githubusercontent.com/u/39723451?v=4?s=100" width="100px;" alt="EvEkSwed"/><br /><sub><b>EvEkSwed</b></sub></a><br /><a href="#translation-EvEkSwed" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Fantastik-Maman"><img src="https://avatars.githubusercontent.com/u/39785382?v=4?s=100" width="100px;" alt="Fantastik-Maman"/><br /><sub><b>Fantastik-Maman</b></sub></a><br /><a href="#translation-Fantastik-Maman" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.forresto.com/"><img src="https://avatars.githubusercontent.com/u/395307?v=4?s=100" width="100px;" alt="Forrest O."/><br /><sub><b>Forrest O.</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=forresto" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fmatray"><img src="https://avatars.githubusercontent.com/u/8267716?v=4?s=100" width="100px;" alt="Frédéric"/><br /><sub><b>Frédéric</b></sub></a><br /><a href="#translation-fmatray" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/glennfmatthews/"><img src="https://avatars.githubusercontent.com/u/5603551?v=4?s=100" width="100px;" alt="Glenn Matthews"/><br /><sub><b>Glenn Matthews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=glennmatthews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://greg.technology/"><img src="https://avatars.githubusercontent.com/u/1017304?v=4?s=100" width="100px;" alt="Greg Sadetsky"/><br /><sub><b>Greg Sadetsky</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=gregsadetsky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://kirby.zone"><img src="https://avatars.githubusercontent.com/u/75245963?v=4?s=100" width="100px;" alt="Igor Couto"/><br /><sub><b>Igor Couto</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Aiocouto" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eltociear" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Irapeke"><img src="https://avatars.githubusercontent.com/u/39604334?v=4?s=100" width="100px;" alt="Irapeke"/><br /><sub><b>Irapeke</b></sub></a><br /><a href="#translation-Irapeke" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsawo"><img src="https://avatars.githubusercontent.com/u/1294706?v=4?s=100" width="100px;" alt="Jacek Sawoszczuk"/><br /><sub><b>Jacek Sawoszczuk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jsawo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgfichte"><img src="https://avatars.githubusercontent.com/u/1787162?v=4?s=100" width="100px;" alt="Jason Williams"/><br /><sub><b>Jason Williams</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jgfichte" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jejacks0n"><img src="https://avatars.githubusercontent.com/u/13765?v=4?s=100" width="100px;" alt="Jeremy Jackson"/><br /><sub><b>Jeremy Jackson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jejacks0n" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://jeroenhoek.nl"><img src="https://avatars.githubusercontent.com/u/683699?v=4?s=100" width="100px;" alt="Jeroen Hoek"/><br /><sub><b>Jeroen Hoek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jdhoek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joebidido"><img src="https://avatars.githubusercontent.com/u/39796210?v=4?s=100" width="100px;" alt="Joebidido"/><br /><sub><b>Joebidido</b></sub></a><br /><a href="#translation-Joebidido" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://joost.at/"><img src="https://avatars.githubusercontent.com/u/1708494?v=4?s=100" width="100px;" alt="Joost De Cock"/><br /><sub><b>Joost De Cock</b></sub></a><br /><a href="#maintenance-joostdecock" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joshessman"><img src="https://avatars.githubusercontent.com/u/9941074?v=4?s=100" width="100px;" alt="Josh Essman"/><br /><sub><b>Josh Essman</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joshessman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.earth.li/~kake/"><img src="https://avatars.githubusercontent.com/u/1956810?v=4?s=100" width="100px;" alt="Kake"/><br /><sub><b>Kake</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=KakeLP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/kapunahele"><img src="https://avatars.githubusercontent.com/u/4116963?v=4?s=100" width="100px;" alt="Kapunahele Wong"/><br /><sub><b>Kapunahele Wong</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kapunahelewong" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tangerineshark"><img src="https://avatars.githubusercontent.com/u/70777269?v=4?s=100" width="100px;" alt="Karen"/><br /><sub><b>Karen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=tangerineshark" title="Documentation">📖</a> <a href="#eventOrganizing-tangerineshark" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.kieranklaassen.com/"><img src="https://avatars.githubusercontent.com/u/209089?v=4?s=100" width="100px;" alt="Kieran Klaassen"/><br /><sub><b>Kieran Klaassen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kieranklaassen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kittycatou"><img src="https://avatars.githubusercontent.com/u/48165583?v=4?s=100" width="100px;" alt="Kittycatou"/><br /><sub><b>Kittycatou</b></sub></a><br /><a href="#translation-Kittycatou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.krishoward.org/"><img src="https://avatars.githubusercontent.com/u/5946286?v=4?s=100" width="100px;" alt="Kris"/><br /><sub><b>Kris</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=web-goddess" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kristinruben"><img src="https://avatars.githubusercontent.com/u/17237479?v=4?s=100" width="100px;" alt="Kristin Ruben"/><br /><sub><b>Kristin Ruben</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kristinruben" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Loudepeuter"><img src="https://avatars.githubusercontent.com/u/38081954?v=4?s=100" width="100px;" alt="Loudepeuter"/><br /><sub><b>Loudepeuter</b></sub></a><br /><a href="#translation-Loudepeuter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MA-TATAS"><img src="https://avatars.githubusercontent.com/u/125549564?v=4?s=100" width="100px;" alt="MA-TATAS"/><br /><sub><b>MA-TATAS</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=MA-TATAS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/manufakturedelweiss"><img src="https://avatars.githubusercontent.com/u/38063391?v=4?s=100" width="100px;" alt="Marcus"/><br /><sub><b>Marcus</b></sub></a><br /><a href="#translation-manufakturedelweiss" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martintribo"><img src="https://avatars.githubusercontent.com/u/1613442?v=4?s=100" width="100px;" alt="Martin Tribo"/><br /><sub><b>Martin Tribo</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=martintribo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nadege"><img src="https://avatars.githubusercontent.com/u/3792171?v=4?s=100" width="100px;" alt="Nadege Michel"/><br /><sub><b>Nadege Michel</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Tests">⚠️</a> <a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nataliasayang"><img src="https://avatars.githubusercontent.com/u/48160791?v=4?s=100" width="100px;" alt="Natalia"/><br /><sub><b>Natalia</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nataliasayang" title="Code">💻</a> <a href="#design-nataliasayang" title="Design">🎨</a> <a href="#blog-nataliasayang" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nchilada"><img src="https://avatars.githubusercontent.com/u/692925?v=4?s=100" width="100px;" alt="Nikhil Chelliah"/><br /><sub><b>Nikhil Chelliah</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nchilada" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OysteinHoiby"><img src="https://avatars.githubusercontent.com/u/49735055?v=4?s=100" width="100px;" alt="OysteinHoiby"/><br /><sub><b>OysteinHoiby</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=OysteinHoiby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pat.forringer.com/"><img src="https://avatars.githubusercontent.com/u/136456?v=4?s=100" width="100px;" alt="Patrick Forringer"/><br /><sub><b>Patrick Forringer</b></sub></a><br /><a href="#plugin-destos" title="Plugin/utility libraries">🔌</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://pd75.github.io/"><img src="https://avatars.githubusercontent.com/u/10294795?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=PD75" title="Documentation">📖</a> <a href="#blog-PD75" title="Blogposts">📝</a> <a href="#translation-PD75" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phillipthelen"><img src="https://avatars.githubusercontent.com/u/298062?v=4?s=100" width="100px;" alt="Phillip Thelen"/><br /><sub><b>Phillip Thelen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=phillipthelen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QuentinFelix"><img src="https://avatars.githubusercontent.com/u/5288091?v=4?s=100" width="100px;" alt="Quentin FELIX"/><br /><sub><b>Quentin FELIX</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=QuentinFelix" title="Code">💻</a> <a href="#design-QuentinFelix" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RikHekker"><img src="https://avatars.githubusercontent.com/u/31843274?v=4?s=100" width="100px;" alt="Rik Hekker"/><br /><sub><b>Rik Hekker</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ARikHekker" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://resume.livingston-gray.com/faq.html"><img src="https://avatars.githubusercontent.com/u/6462?v=4?s=100" width="100px;" alt="Sam Livingston-Gray"/><br /><sub><b>Sam Livingston-Gray</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=geeksam" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sannek"><img src="https://avatars.githubusercontent.com/u/17491062?v=4?s=100" width="100px;" alt="Sanne"/><br /><sub><b>Sanne</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyrannogina"><img src="https://avatars.githubusercontent.com/u/19556565?v=4?s=100" width="100px;" alt="Sara Latorre"/><br /><sub><b>Sara Latorre</b></sub></a><br /><a href="#translation-Tyrannogina" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SirCharlotte"><img src="https://avatars.githubusercontent.com/u/63847870?v=4?s=100" width="100px;" alt="SirCharlotte"/><br /><sub><b>SirCharlotte</b></sub></a><br /><a href="#translation-SirCharlotte" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.instagram.com/celine_mge/"><img src="https://avatars.githubusercontent.com/u/57619777?v=4?s=100" width="100px;" alt="Slylele"/><br /><sub><b>Slylele</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Slylele" title="Documentation">📖</a> <a href="#translation-Slylele" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Soazillon"><img src="https://avatars.githubusercontent.com/u/40845940?v=4?s=100" width="100px;" alt="Soazillon"/><br /><sub><b>Soazillon</b></sub></a><br /><a href="#translation-Soazillon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SoneaTheBest"><img src="https://avatars.githubusercontent.com/u/64635425?v=4?s=100" width="100px;" alt="SoneaTheBest"/><br /><sub><b>SoneaTheBest</b></sub></a><br /><a href="#translation-SoneaTheBest" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://metafly.info/"><img src="https://avatars.githubusercontent.com/u/961256?v=4?s=100" width="100px;" alt="Stefan Sydow"/><br /><sub><b>Stefan Sydow</b></sub></a><br /><a href="#translation-stsydow" title="Translation">🌍</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woutervdub"><img src="https://avatars.githubusercontent.com/u/24414629?v=4?s=100" width="100px;" alt="Wouter van Wageningen"/><br /><sub><b>Wouter van Wageningen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woutervdub" title="Code">💻</a> <a href="#design-woutervdub" title="Design">🎨</a> <a href="#tool-woutervdub" title="Tools">🔧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amysews"><img src="https://avatars.githubusercontent.com/u/25280778?v=4?s=100" width="100px;" alt="amysews"/><br /><sub><b>amysews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=amysews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anna-puk"><img src="https://avatars.githubusercontent.com/u/100537439?v=4?s=100" width="100px;" alt="anna-puk"/><br /><sub><b>anna-puk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anna-puk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/beautifulsummermoon"><img src="https://avatars.githubusercontent.com/u/40396388?v=4?s=100" width="100px;" alt="beautifulsummermoon"/><br /><sub><b>beautifulsummermoon</b></sub></a><br /><a href="#translation-beautifulsummermoon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/berce"><img src="https://avatars.githubusercontent.com/u/10439709?v=4?s=100" width="100px;" alt="berce"/><br /><sub><b>berce</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=berce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/biou"><img src="https://avatars.githubusercontent.com/u/1340376?v=4?s=100" width="100px;" alt="biou"/><br /><sub><b>biou</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=biou" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgeorgethe3rd"><img src="https://avatars.githubusercontent.com/u/16866285?v=4?s=100" width="100px;" alt="bobgeorgethe3rd"/><br /><sub><b>bobgeorgethe3rd</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Documentation">📖</a> <a href="#design-bobgeorgethe3rd" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brmlyklr"><img src="https://avatars.githubusercontent.com/u/22308713?v=4?s=100" width="100px;" alt="brmlyklr"/><br /><sub><b>brmlyklr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=brmlyklr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.chrisbarrett.fr"><img src="https://avatars.githubusercontent.com/u/2373249?v=4?s=100" width="100px;" alt="chri5b"/><br /><sub><b>chri5b</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dingcycle"><img src="https://avatars.githubusercontent.com/u/1681985?v=4?s=100" width="100px;" alt="dingcycle"/><br /><sub><b>dingcycle</b></sub></a><br /><a href="#translation-dingcycle" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drowned-in-books"><img src="https://avatars.githubusercontent.com/u/100040772?v=4?s=100" width="100px;" alt="drowned-in-books"/><br /><sub><b>drowned-in-books</b></sub></a><br /><a href="#question-drowned-in-books" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DocSpencer77"><img src="https://avatars.githubusercontent.com/u/43393580?v=4?s=100" width="100px;" alt="gaylyndie"/><br /><sub><b>gaylyndie</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=DocSpencer77" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grimlokason"><img src="https://avatars.githubusercontent.com/u/5112238?v=4?s=100" width="100px;" alt="grimlokason"/><br /><sub><b>grimlokason</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=grimlokason" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://weblog.redisdead.net"><img src="https://avatars.githubusercontent.com/u/6494414?v=4?s=100" width="100px;" alt="hellgy"/><br /><sub><b>hellgy</b></sub></a><br /><a href="#design-hellgy" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackseye"><img src="https://avatars.githubusercontent.com/u/27834526?v=4?s=100" width="100px;" alt="jackseye"/><br /><sub><b>jackseye</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jackseye" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marckiesel"><img src="https://avatars.githubusercontent.com/u/39653780?v=4?s=100" width="100px;" alt="marckiesel"/><br /><sub><b>marckiesel</b></sub></a><br /><a href="#translation-marckiesel" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marpants"><img src="https://avatars.githubusercontent.com/u/61366665?v=4?s=100" width="100px;" alt="marpants"/><br /><sub><b>marpants</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=marpants" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tech.lgbt/@mergerg"><img src="https://avatars.githubusercontent.com/u/64447714?v=4?s=100" width="100px;" alt="mergerg"/><br /><sub><b>mergerg</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=raphaelsiz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mesil"><img src="https://avatars.githubusercontent.com/u/14284175?v=4?s=100" width="100px;" alt="mesil"/><br /><sub><b>mesil</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Amesil" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/starfetch"><img src="https://avatars.githubusercontent.com/u/80041179?v=4?s=100" width="100px;" alt="starfetch"/><br /><sub><b>starfetch</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Documentation">📖</a> <a href="#translation-starfetch" title="Translation">🌍</a> <a href="#design-starfetch" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timorl"><img src="https://avatars.githubusercontent.com/u/4363804?v=4?s=100" width="100px;" alt="timorl"/><br /><sub><b>timorl</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=timorl" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ttimearl"><img src="https://avatars.githubusercontent.com/u/77916590?v=4?s=100" width="100px;" alt="ttimearl"/><br /><sub><b>ttimearl</b></sub></a><br /><a href="#content-ttimearl" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisgloom"><img src="https://avatars.githubusercontent.com/u/15905991?v=4?s=100" width="100px;" alt="tuesgloomsday"/><br /><sub><b>tuesgloomsday</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chrisgloom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valadaptive"><img src="https://avatars.githubusercontent.com/u/79560998?v=4?s=100" width="100px;" alt="valadaptive"/><br /><sub><b>valadaptive</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=valadaptive" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viocky"><img src="https://avatars.githubusercontent.com/u/39279173?v=4?s=100" width="100px;" alt="viocky"/><br /><sub><b>viocky</b></sub></a><br /><a href="#translation-viocky" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woolishboy"><img src="https://avatars.githubusercontent.com/u/57816321?v=4?s=100" width="100px;" alt="woolishboy"/><br /><sub><b>woolishboy</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woolishboy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cloutiy"><img src="https://avatars.githubusercontent.com/u/8433147?v=4?s=100" width="100px;" alt="yc"/><br /><sub><b>yc</b></sub></a><br /><a href="#translation-cloutiy" title="Translation">🌍</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).

View file

@ -1,4 +1,4 @@
// This file is auto-generated | All changes you make will be overwritten.
export const name = '@freesewing/aaron'
export const version = '3.0.0-alpha.9'
export const version = '3.0.0'
export const data = { name, version }

View file

@ -0,0 +1,45 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"s": {
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Armlochabsenkung",
"d": "Senkt das Armloch um diesen Wert. Negative Werte erhöhen es."
},
"backlineBend": {
"t": "Hintere Armlochform",
"d": "Bestimmt die Form / Krümmung der Rückseite der Armlöcher."
},
"hipsEase": {
"t": "Bequemlichkeitszugabe Hüfte",
"d": "Die Menge an Bequemlichkeits-/Bewegungszugabe an deinen Hüften."
},
"necklineBend": {
"t": "Ausschnittsform",
"d": "Bestimmt die Form / Krümmung des Halsausschnitts vorne."
},
"necklineDrop": {
"t": "Ausschnitt Tiefe",
"d": "Wie tief der Ausschnitt vorne geht."
},
"shoulderStrapPlacement": {
"t": "Platzierung der Schulterträger",
"d": "Bestimmt, ob der Schulterträger näher am Hals (niedrigere Zahlen), oder näher an der Schulter (höhere Zahlen) liegt."
},
"shoulderStrapWidth": {
"t": "Breite der Schulterträger",
"d": "Die Breite der Schulterträger."
},
"stretchFactor": {
"t": "Dehnung",
"d": "Bestimmt die horizontale negative Bewegungszugabe."
}
},
"p": {}
}

View file

@ -0,0 +1,58 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"p": {
"armBinding": "Arm opening knit binding",
"neckBinding": "Neck opening knit binding"
},
"s": {
"cutArmBinding.t": "The arm opening knit binding is not shown",
"cutArmBinding.d": "The **Arm opening knit binding** are two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
"cutNeckBinding.t": "The neck opening knit binding is not shown",
"cutNeckBinding.d": "The **Neck opening knit binding** is a strip of fabric {{{ width }}} wide and {{{ length }}} long.",
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"largeSaAdaptKnitBindingWidth.t": "Consider lowering the knit binding width",
"largeSaAdaptKnitBindingWidth.d": "The default width of the knit binding is 6 times the seam allowance. Because your chosen seam allowance ({{{ sa }}}) is larger than the 1cm used when designing the pattern, your knit binding is likely to be too wide. \n\nYou can lower the knit binding width to compensate for your larger seam allowance.",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Armhole drop",
"d": "Lower the armhole by this amount. Negative values will raise it."
},
"backlineBend": {
"t": "Back armhole shape",
"d": "Determines the shape/bend of the back of the armholes."
},
"hipsEase": {
"t": "Hips ease",
"d": "The amount of ease at your hips."
},
"knitBindingWidth": {
"t": "Knit binding width",
"d": "Controls the width of the knit binding as a percentage of the chosen seam allowance, or 1cm if no seam allowance is used."
},
"necklineBend": {
"t": "Neckline shape",
"d": "Determines the shape/bend of the neckline at the front."
},
"necklineDrop": {
"t": "Neckline drop",
"d": "The amount the neck is cutout at the front."
},
"shoulderStrapPlacement": {
"t": "Shoulderstrap placement",
"d": "Determines whether the shoulder strap is placed closer to the neck (lower numbers) or the shoulder (higher numbers)."
},
"shoulderStrapWidth": {
"t": "Shoulderstrap width",
"d": "The width of the shoulder straps."
},
"stretchFactor": {
"t": "Stretch",
"d": "Determines the horizontal negative ease."
}
}
}

View file

@ -0,0 +1,45 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"s": {
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Caída de la sisa",
"d": "Baja la sisa esta cantidad. Valores negativos la elevan."
},
"backlineBend": {
"t": "Forma posterior de la sisa",
"d": "Determina la forma/curva de la parte posterior de la sisa."
},
"hipsEase": {
"t": "Holgura de cadera",
"d": "La cantidad de holgura en la cadera."
},
"necklineBend": {
"t": "Forma del cuello",
"d": "Determina la forma/curva del cuello en el frente."
},
"necklineDrop": {
"t": "Caída del escote",
"d": "La cantidad de cuello que se corta en el frente."
},
"shoulderStrapPlacement": {
"t": "Posición de los tirantes",
"d": "Determina si los tirantes se colocan cerca del cuello (números más bajos) o del hombro (números más altos)."
},
"shoulderStrapWidth": {
"t": "Anchura de los tirantes",
"d": "La anchura de los tirantes."
},
"stretchFactor": {
"t": "Extensión",
"d": "Determina la holgura negativa horizontal."
}
},
"p": {}
}

View file

@ -0,0 +1,45 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"s": {
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Abaissement d'emmanchure",
"d": "Il s'agit d'abaisser l'emmanchure avec cette valeur. Les valeurs négatives la remonteront."
},
"backlineBend": {
"t": "Forme de l'arrière des emmanchures",
"d": "Détermine la forme/courbure de l'arrière des emmanchures."
},
"hipsEase": {
"t": "Aisance des hanches",
"d": "La marge d'aisance aux hanches."
},
"necklineBend": {
"t": "Forme de l'encolure",
"d": "Détermine la forme/courbure du devant de l'encolure."
},
"necklineDrop": {
"t": "Profondeur d'encolure",
"d": "Détermine de combien abaisser lencolure l'avant."
},
"shoulderStrapPlacement": {
"t": "Position de la bretelle",
"d": "Détermine si la bretelle est placée plus près du cou (chiffres les plus bas) ou de lépaule (chiffres les plus élevés)."
},
"shoulderStrapWidth": {
"t": "Largeur de la bretelle",
"d": "Détermine la largeur des bretelles."
},
"stretchFactor": {
"t": "Élasticité",
"d": "Détermine a quantité d'aisance négative en largeur."
}
},
"p": {}
}

View file

@ -0,0 +1,8 @@
import en from './en.json' assert { type: 'json' }
import de from './de.json' assert { type: 'json' }
import es from './es.json' assert { type: 'json' }
import fr from './fr.json' assert { type: 'json' }
import nl from './nl.json' assert { type: 'json' }
import uk from './uk.json' assert { type: 'json' }
export const i18n = { en, de, es, fr, nl, uk }

View file

@ -0,0 +1,45 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"s": {
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Diepte armsgat",
"d": "Verlaag het armsgat met deze hoeveelheid. Een negatieve waarde maakt het hoger."
},
"backlineBend": {
"t": "Vorm armsgat achteraan",
"d": "Bepaalt de vorm/curve van de achterkant van het armsgat."
},
"hipsEase": {
"t": "Overwijdte heup",
"d": "De hoeveelheid overwijdte aan je heupen."
},
"necklineBend": {
"t": "Vorm halslijn",
"d": "Bepaalt de vorm/kromming van de halslijn aan het middenvoor."
},
"necklineDrop": {
"t": "Diepte halslijn",
"d": "De hoeveelheid waarmee de halslijn vooraan weggesneden wordt."
},
"shoulderStrapPlacement": {
"t": "Plaatsing schouderbandjes",
"d": "Bepaalt of de schouderbandjes dichter bij de nek (lager cijfer) of dichter bij de schouder (hoger cijfer) geplaatst worden."
},
"shoulderStrapWidth": {
"t": "Breedte schouderband",
"d": "De breedte van de schouderbandjes."
},
"stretchFactor": {
"t": "Rek",
"d": "Bepaalt hoeveel kleiner de horizontale omtrek is dan je lichaamsmaten. In andere woorden, hoe strak alles zit."
}
},
"p": {}
}

View file

@ -0,0 +1,45 @@
{
"t": "Aaron A-Shirt",
"d": "Aaron is an athletic shirt or tank top.",
"s": {
"cutOneStripToFinishTheNeckOpening": "Cut one strip to finish the neck opening",
"cutTwoStripsToFinishTheArmholes": "Cut two strips to finish the armholes",
"length": "Length",
"width": "Width"
},
"o": {
"armholeDrop": {
"t": "Armhole drop",
"d": "Lower the armhole by this amount. Negative values will raise it."
},
"backlineBend": {
"t": "Back armhole shape",
"d": "Determines the shape/bend of the back of the armholes."
},
"hipsEase": {
"t": "Hips ease",
"d": "The amount of ease at your hips."
},
"necklineBend": {
"t": "Neckline shape",
"d": "Determines the shape/bend of the neckline at the front."
},
"necklineDrop": {
"t": "Neckline drop",
"d": "The amount the neck is cutout at the front."
},
"shoulderStrapPlacement": {
"t": "Shoulderstrap placement",
"d": "Determines whether the shoulder strap is placed closer to the neck (lower numbers) or the shoulder (higher numbers)."
},
"shoulderStrapWidth": {
"t": "Shoulderstrap width",
"d": "The width of the shoulder straps."
},
"stretchFactor": {
"t": "Stretch",
"d": "Determines the horizontal negative ease."
}
},
"p": {}
}

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/aaron",
"version": "3.0.0-alpha.9",
"version": "3.0.0",
"description": "A FreeSewing pattern for a A-shirt or tank top",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -27,10 +27,14 @@
"type": "module",
"module": "dist/index.mjs",
"exports": {
".": "./dist/index.mjs"
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"clean": "rimraf dist",
"mbuild": "NO_MINIFY=1 node build.mjs",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
@ -40,23 +44,21 @@
"tips": "node ../../scripts/help.mjs",
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
"testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"cibuild_step5": "node build.mjs",
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wcibuild_step5": "node build.mjs"
"wbuild:all": "yarn wbuild"
},
"peerDependencies": {
"@freesewing/core": "3.0.0-alpha.9",
"@freesewing/plugin-bundle": "3.0.0-alpha.9",
"@freesewing/brian": "3.0.0-alpha.9",
"@freesewing/plugin-bust": "3.0.0-alpha.9"
"@freesewing/core": "3.0.0",
"@freesewing/brian": "3.0.0",
"@freesewing/plugin-bust": "3.0.0"
},
"dependencies": {},
"devDependencies": {
"mocha": "10.2.0",
"chai": "4.3.7",
"@freesewing/models": "3.0.0-alpha.9",
"@freesewing/plugin-timing": "3.0.0-alpha.9"
"chai": "4.3.10",
"@freesewing/models": "3.0.0",
"@freesewing/plugin-timing": "3.0.0"
},
"files": [
"dist/*",
@ -64,10 +66,10 @@
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
"node": "18",
"npm": "9"
}
}

View file

@ -0,0 +1,115 @@
import { back } from './back.mjs'
export const armBinding = {
name: 'aaron.armBinding',
after: back,
draft: ({
store,
sa,
Point,
points,
Path,
paths,
Snippet,
snippets,
macro,
complete,
expand,
units,
part,
}) => {
const w = store.get('bindingWidth')
const l = store.get('armBindingLength')
if (expand) {
store.flag.preset('expandIsOn')
} else {
// Expand is off, do not draw the part but flag this to the user
store.flag.note({
msg: `aaron:cutArmBinding`,
notes: ['flag:saUnused', 'flag:partHiddenByExpand'],
replace: {
width: units(w),
length: units(l),
},
suggest: {
text: 'flag:show',
icon: 'expand',
update: {
settings: ['expand', 1],
},
},
})
// Also hint about expand
store.flag.preset('expand')
return part.hide()
}
points.topLeft = new Point(0, 0)
points.bottomLeft = new Point(0, l)
points.bottomRight = new Point(w, l)
points.topRight = new Point(w, 0)
paths.seam = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.line(points.topLeft)
.close()
.addClass('fabric')
/*
* Annotations
*/
// Provide cutting instructions
store.cutlist.addCut({ cut: 2 })
// Add title
points.title = new Point(w / 2, l / 8)
macro('title', {
at: points.title,
nr: 4,
title: 'aaron:armBinding',
align: 'center',
scale: 0.5,
})
// Fold lines
if (complete) {
for (const i of [1, 2, 3]) {
paths[`fold${i}`] = new Path()
.move(points.topLeft.shiftFractionTowards(points.topRight, 0.25 * i))
.line(points.bottomLeft.shiftFractionTowards(points.bottomRight, 0.25 * i))
.addClass('note help')
macro('banner', {
id: `foldHere${i}`,
path: paths[`fold${i}`],
text: 'foldHere',
classes: 'fill-note text-sm center',
repeat: 30,
spaces: 60,
})
}
}
// Logo
points.logo = points.title.shift(-90, 75)
snippets.logo = new Snippet('logo', points.logo).scale(0.75)
// Dimensions
macro('vd', {
from: points.bottomRight,
to: points.topRight,
x: points.topRight.x + sa + 15,
})
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomRight.y + sa + 15,
})
return part
},
}

View file

@ -7,6 +7,12 @@ export const back = {
options: {
backNeckCutout: 0.05,
backlineBend: { pct: 50, min: 25, max: 100, menu: 'style' },
knitBindingWidth: { pct: 600, min: 300, max: 800, menu: 'style' },
// Hide options from brian
brianFitSleeve: false,
cuffEase: 0,
s3Collar: 0,
s3Armhole: 0,
},
draft: ({
store,
@ -17,7 +23,7 @@ export const back = {
paths,
options,
complete,
paperless,
expand,
macro,
utils,
units,
@ -58,53 +64,92 @@ export const back = {
.close()
.attr('class', 'fabric')
// Complete pattern?
if (complete) {
let neckOpeningLength =
new Path()
.move(points.strapLeft)
.curve(points.strapLeftCp2, points.cbNeck, points.cbNeck)
.length() + store.get('frontNeckOpeningLength')
let armholeLength =
new Path()
.move(points.armhole)
.curve(points.armholeCp2, points.strapRightCp1, points.strapRight)
.length() + store.get('frontArmholeLength')
/*
* Annotations
*/
// Set anchor point for grid
points.gridAnchor = points.cfHem
// cutonfold
macro('cutonfold', {
from: points.cfNeck,
to: points.cfHem,
grainline: true,
})
// title
macro('title', { at: points.title, nr: 2, title: 'back' })
points.scaleboxAnchor = points.scalebox = points.title.shift(90, 100)
// scalebox
macro('scalebox', { at: points.scalebox })
// Store length of binding in the store
store.set('bindingWidth', (sa || 10) * options.knitBindingWidth)
store.set(
'armBindingLength',
(new Path()
.move(points.armhole)
.curve(points.armholeCp2, points.strapRightCp1, points.strapRight)
.length() +
store.get('frontArmholeLength')) *
0.95
)
store.set(
'neckBindingLength',
(new Path()
.move(points.strapLeft)
.curve(points.strapLeftCp2, points.cbNeck, points.cbNeck)
.length() +
store.get('frontNeckOpeningLength')) *
2 *
0.95
)
// Warn user is SA > 10 because it makes the binding width rather large
if (sa > 10 && store.get('bindingWidth') > 61) {
store.flag.tip({
msg: `aaron:largeSaAdaptKnitBindingWidth`,
replace: {
sa: units(sa),
width: units(store.get('bindingWidth')),
},
suggest: {
text: 'flag:apply',
icon: 'options',
update: {
settings: [['options', 'knitBindingWidth'], (60 / store.get('bindingWidth')) * 6],
},
},
})
}
// Instructions for cutting the binding only of expand is falsy
if (complete && !expand) {
points.bindingAnchor = new Point(points.armhole.x / 4, points.armhole.y)
.attr('data-text', 'cutTwoStripsToFinishTheArmholes')
.attr('data-text', 'aaron:cutTwoStripsToFinishTheArmholes')
.attr('data-text', ':\n')
.attr('data-text', `2x: ${units(sa * 6 || 60)} x ${units(armholeLength * 0.95 + 2 * sa)}`)
.attr('data-text', '\n \n')
.attr('data-text', 'cutOneStripToFinishTheNeckOpening')
.attr('data-text', ':\n')
.attr('data-text', 'width')
.attr('data-text', ':')
.attr(
'data-text',
`${units((sa || 10) * 6)} x ${units(neckOpeningLength * 2 * 0.95 + 2 * sa)}`
`2x: ${units(store.get('bindingWidth'))} x ${units(store.get('armBindingLength'))}`
)
.attr('data-text', '\n \n')
.attr('data-text', 'aaron:cutOneStripToFinishTheNeckOpening')
.attr('data-text', ':\n')
.attr(
'data-text',
`${units(store.get('bindingWidth'))} x ${units(store.get('neckBindingLength'))}`
)
//.attr('data-text-class', 'text-sm')
macro('cutonfold', {
from: points.cfNeck,
to: points.cfHem,
grainline: true,
})
macro('title', { at: points.title, nr: 2, title: 'back' })
points.scaleboxAnchor = points.scalebox = points.title.shift(90, 100)
macro('scalebox', { at: points.scalebox })
}
// Paperless?
if (paperless) {
dimensions(macro, points, sa)
macro('vd', {
from: points.cbHem,
to: points.cbNeck,
x: points.cbHem.x - sa - 15,
})
}
// dimensions
dimensions(macro, points, sa)
macro('vd', {
from: points.cbHem,
to: points.cbNeck,
x: points.cbHem.x - sa - 15,
})
return part
},

View file

@ -5,6 +5,7 @@ import { dimensions } from './shared.mjs'
export const front = {
from: base,
name: 'aaron.front',
measurements: ['hips'],
options: {
brianFitCollar: false,
brianFitSleeve: false,
@ -38,8 +39,6 @@ export const front = {
snippets,
options,
measurements,
complete,
paperless,
macro,
part,
}) => {
@ -127,6 +126,34 @@ export const front = {
.close()
.attr('class', 'fabric')
// Seam allowance
if (sa) {
let saShoulder = new Path().move(points.strapRight).line(points.strapLeft).offset(sa)
paths.saShoulder = new Path()
.move(points.strapRight)
.line(saShoulder.start())
.join(saShoulder)
.line(points.strapLeft)
.attr('class', 'fabric sa')
paths.sa = new Path()
.move(points.cfHem)
.line(points.cfHem)
.join(
new Path()
.move(points.cfHem)
.line(points.hem)
.offset(sa * 2.5)
)
.join(
new Path()
.move(points.hem)
.curve_(points.waist, points.armhole)
.offset(sa)
.line(points.armhole)
)
.attr('class', 'fabric sa')
}
// Store length of armhole and neck opening
store.set(
'frontArmholeLength',
@ -143,55 +170,38 @@ export const front = {
.length()
)
// Complete pattern?
if (complete) {
macro('cutonfold', {
from: points.cfNeck,
to: points.cfHem,
grainline: true,
})
points.title = new Point(points.waist.x / 2, points.waist.y)
macro('title', { at: points.title, nr: 1, title: 'front' })
points.logo = points.title.shift(-90, 75)
snippets.logo = new Snippet('logo', points.logo)
/*
* Annotations
*/
if (sa) {
let saShoulder = new Path().move(points.strapRight).line(points.strapLeft).offset(sa)
paths.saShoulder = new Path()
.move(points.strapRight)
.line(saShoulder.start())
.join(saShoulder)
.line(points.strapLeft)
.attr('class', 'fabric sa')
paths.sa = new Path()
.move(points.cfHem)
.line(points.cfHem)
.join(
new Path()
.move(points.cfHem)
.line(points.hem)
.offset(sa * 2.5)
)
.join(
new Path()
.move(points.hem)
.curve_(points.waist, points.armhole)
.offset(sa)
.line(points.armhole)
)
.attr('class', 'fabric sa')
}
}
// Set anchor point for grid
points.gridAnchor = points.cfHem
// Paperless?
if (paperless) {
dimensions(macro, points, sa)
macro('vd', {
from: points.cfHem,
to: points.cfNeck,
x: points.cfHem.x - sa - 15,
})
}
// Provide cutting instructions
store.cutlist.addCut({ cut: 1, from: 'fabric', onFold: 1 })
// Add title
points.title = new Point(points.waist.x / 2, points.waist.y)
macro('title', { at: points.title, nr: 1, title: 'front' })
// Cut on fold
macro('cutonfold', {
from: points.cfNeck,
to: points.cfHem,
grainline: true,
})
// Logo
points.logo = points.title.shift(-90, 75)
snippets.logo = new Snippet('logo', points.logo)
// Dimensions
dimensions(macro, points, sa)
macro('vd', {
from: points.cfHem,
to: points.cfNeck,
x: points.cfHem.x - sa - 15,
})
return part
},

View file

@ -1,13 +1,36 @@
import { Design } from '@freesewing/core'
import { Design, mergeI18n } from '@freesewing/core'
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as aaronI18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import { back } from './back.mjs'
import { front } from './front.mjs'
import { armBinding } from './arm-binding.mjs'
import { neckBinding } from './neck-binding.mjs'
// Setup our new design
const Aaron = new Design({
data,
parts: [back, front],
parts: [back, front, armBinding, neckBinding],
})
// Merge translations
const i18n = mergeI18n([brianI18n, aaronI18n], {
p: { keep: ['front', 'back', 'armBinding', 'neckBinding'] },
o: {
keep: [
...Object.keys(back.options),
...Object.keys(front.options),
'cuffEase',
's3Collar',
's3Armhole',
'legacyArmholeDepth',
'legacyArmholeDepthNo',
'legacyArmholeDepthYes',
'armholeDepth',
],
},
s: { drop: [] },
})
// Named exports
export { back, front, Aaron }
export { back, front, Aaron, i18n }

View file

@ -0,0 +1,115 @@
import { back } from './back.mjs'
export const neckBinding = {
name: 'aaron.neckBinding',
after: back,
draft: ({
store,
sa,
Point,
points,
Path,
paths,
Snippet,
snippets,
macro,
complete,
expand,
units,
part,
}) => {
const w = store.get('bindingWidth')
const l = store.get('neckBindingLength')
if (expand) {
store.flag.preset('expandIsOn')
} else {
// Expand is off, do not draw the part but flag this to the user
store.flag.note({
msg: `aaron:cutNeckBinding`,
notes: ['flag:saUnused', 'flag:partHiddenByExpand'],
replace: {
width: units(w),
length: units(l),
},
suggest: {
text: 'flag:show',
icon: 'expand',
update: {
settings: ['expand', 1],
},
},
})
// Also hint about expand
store.flag.preset('expand')
return part.hide()
}
points.topLeft = new Point(0, 0)
points.bottomLeft = new Point(0, l)
points.bottomRight = new Point(w, l)
points.topRight = new Point(w, 0)
paths.seam = new Path()
.move(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.line(points.topLeft)
.close()
.addClass('fabric')
/*
* Annotations
*/
// Provide cutting instructions
store.cutlist.addCut({ cut: 1 })
// Add title
points.title = new Point(w / 2, l / 8)
macro('title', {
at: points.title,
nr: 3,
title: 'aaron:neckBinding',
align: 'center',
scale: 0.5,
})
// Logo
points.logo = points.title.shift(-90, 75)
snippets.logo = new Snippet('logo', points.logo).scale(0.75)
// Fold lines
if (complete) {
for (const i of [1, 2, 3]) {
paths[`fold${i}`] = new Path()
.move(points.topLeft.shiftFractionTowards(points.topRight, 0.25 * i))
.line(points.bottomLeft.shiftFractionTowards(points.bottomRight, 0.25 * i))
.addClass('note help')
macro('banner', {
id: `foldHere${i}`,
path: paths[`fold${i}`],
text: 'foldHere',
classes: 'fill-note text-sm center',
repeat: 30,
spaces: 60,
})
}
}
// Dimensions
macro('vd', {
from: points.bottomRight,
to: points.topRight,
x: points.topRight.x + sa + 15,
})
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomRight.y + sa + 15,
})
return part
},
}

View file

@ -1,14 +1,18 @@
// This file is auto-generated | Any changes you make will be overwritten.
import { Aaron } from '../src/index.mjs'
import { Aaron, i18n } from '../src/index.mjs'
// Shared tests
import { testPatternConfig } from '../../../tests/designs/config.mjs'
import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
// Test config
testPatternConfig(Aaron)
// Test translation
testPatternI18n(Aaron, i18n)
// Test drafting - Change the second parameter to `true` to log errors
testPatternDrafting(Aaron, false)

View file

@ -1,6 +1,14 @@
# Change log for: @freesewing/albert
## 3.0.0 (2022-09-30)
### Changed
- All FreeSewing pacakges are now ESM only.
- All FreeSewing pacakges now use named exports.
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
## 2.21.0 (2022-06-27)
### Changed

View file

@ -22,7 +22,7 @@
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-107-pink.svg"
><img src="https://img.shields.io/badge/all_contributors-111-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
@ -53,17 +53,9 @@ A FreeSewing pattern for an apron
> #### Note: Version 3 is a work in progress
>
> We are working on a new major version (v3) but it is not ready for prime-time.
> For production use, please refer to our v2 packages (the `latest` on NPM)
> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2).
>
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
This folder holds: @freesewing/albert
@ -86,11 +78,11 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -100,33 +92,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -134,168 +136,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://adamrtomkins.github.io/"><img src="https://avatars.githubusercontent.com/u/5709603?v=4?s=100" width="100px;" alt="Adam Tomkins"/><br /><sub><b>Adam Tomkins</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AdamRTomkins" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://polymerisation-des-concepts.fr/"><img src="https://avatars.githubusercontent.com/u/365999?v=4?s=100" width="100px;" alt="Alexandre Ignjatovic"/><br /><sub><b>Alexandre Ignjatovic</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bankair" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AlfaLyr"><img src="https://avatars.githubusercontent.com/u/39273729?v=4?s=100" width="100px;" alt="AlfaLyr"/><br /><sub><b>AlfaLyr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AlfaLyr" title="Code">💻</a> <a href="#plugin-AlfaLyr" title="Plugin/utility libraries">🔌</a> <a href="#design-AlfaLyr" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://thelettereph.com"><img src="https://avatars.githubusercontent.com/u/357684?v=4?s=100" width="100px;" alt="Andrew James"/><br /><sub><b>Andrew James</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ephphatha" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/annekecaramin"><img src="https://avatars.githubusercontent.com/u/38046191?v=4?s=100" width="100px;" alt="Anneke"/><br /><sub><b>Anneke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=annekecaramin" title="Documentation">📖</a> <a href="#translation-annekecaramin" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anniekao"><img src="https://avatars.githubusercontent.com/u/1550506?v=4?s=100" width="100px;" alt="Annie Kao"/><br /><sub><b>Annie Kao</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anniekao" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Anternative"><img src="https://avatars.githubusercontent.com/u/81079850?v=4?s=100" width="100px;" alt="Anternative"/><br /><sub><b>Anternative</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Anternative" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Quiltmaster"><img src="https://avatars.githubusercontent.com/u/71795777?v=4?s=100" width="100px;" alt="Anthony"/><br /><sub><b>Anthony</b></sub></a><br /><a href="#question-Quiltmaster" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/arigrayzel"><img src="https://avatars.githubusercontent.com/u/33040950?v=4?s=100" width="100px;" alt="Ari Grayzel-student"/><br /><sub><b>Ari Grayzel-student</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=arigrayzel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Bart-PXL"><img src="https://avatars.githubusercontent.com/u/45118788?v=4?s=100" width="100px;" alt="Bart"/><br /><sub><b>Bart</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Bart-PXL" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BenJamesBen"><img src="https://avatars.githubusercontent.com/u/109869956?v=4?s=100" width="100px;" alt="BenJamesBen"/><br /><sub><b>BenJamesBen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3ABenJamesBen" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/camerondubas"><img src="https://avatars.githubusercontent.com/u/6216460?v=4?s=100" width="100px;" alt="Cameron Dubas"/><br /><sub><b>Cameron Dubas</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=camerondubas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cabi"><img src="https://avatars.githubusercontent.com/u/2596253?v=4?s=100" width="100px;" alt="Carsten Biebricher"/><br /><sub><b>Carsten Biebricher</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cabi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cathyzoller"><img src="https://avatars.githubusercontent.com/u/2120275?v=4?s=100" width="100px;" alt="Cathy Zoller"/><br /><sub><b>Cathy Zoller</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cathyzoller" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chantalbijoux"><img src="https://avatars.githubusercontent.com/u/39673694?v=4?s=100" width="100px;" alt="Chantal Lapointe"/><br /><sub><b>Chantal Lapointe</b></sub></a><br /><a href="#translation-Chantalbijoux" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dpiquet"><img src="https://avatars.githubusercontent.com/u/4688628?v=4?s=100" width="100px;" alt="Damien PIQUET"/><br /><sub><b>Damien PIQUET</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=dpiquet" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.darigovresearch.com/"><img src="https://avatars.githubusercontent.com/u/30328618?v=4?s=100" width="100px;" alt="Darigov Research"/><br /><sub><b>Darigov Research</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=darigovresearch" title="Documentation">📖</a> <a href="#ideas-darigovresearch" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/clegganator259"><img src="https://avatars.githubusercontent.com/u/3974250?v=4?s=100" width="100px;" alt="David Clegg"/><br /><sub><b>David Clegg</b></sub></a><br /><a href="#design-clegganator259" title="Design">🎨</a> <a href="https://github.com/freesewing/freesewing/commits?author=clegganator259" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ElenaFdR"><img src="https://avatars.githubusercontent.com/u/5113815?v=4?s=100" width="100px;" alt="Elena FdR"/><br /><sub><b>Elena FdR</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ElenaFdR" title="Documentation">📖</a> <a href="#blog-ElenaFdR" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://emmanuelnyachoke.com/"><img src="https://avatars.githubusercontent.com/u/1908926?v=4?s=100" width="100px;" alt="Emmanuel Nyachoke"/><br /><sub><b>Emmanuel Nyachoke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://enochriese.com"><img src="https://avatars.githubusercontent.com/u/5298929?v=4?s=100" width="100px;" alt="Enoch Riese"/><br /><sub><b>Enoch Riese</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eriese" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EvEkSwed"><img src="https://avatars.githubusercontent.com/u/39723451?v=4?s=100" width="100px;" alt="EvEkSwed"/><br /><sub><b>EvEkSwed</b></sub></a><br /><a href="#translation-EvEkSwed" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Fantastik-Maman"><img src="https://avatars.githubusercontent.com/u/39785382?v=4?s=100" width="100px;" alt="Fantastik-Maman"/><br /><sub><b>Fantastik-Maman</b></sub></a><br /><a href="#translation-Fantastik-Maman" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.forresto.com/"><img src="https://avatars.githubusercontent.com/u/395307?v=4?s=100" width="100px;" alt="Forrest O."/><br /><sub><b>Forrest O.</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=forresto" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fmatray"><img src="https://avatars.githubusercontent.com/u/8267716?v=4?s=100" width="100px;" alt="Frédéric"/><br /><sub><b>Frédéric</b></sub></a><br /><a href="#translation-fmatray" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/glennfmatthews/"><img src="https://avatars.githubusercontent.com/u/5603551?v=4?s=100" width="100px;" alt="Glenn Matthews"/><br /><sub><b>Glenn Matthews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=glennmatthews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://greg.technology/"><img src="https://avatars.githubusercontent.com/u/1017304?v=4?s=100" width="100px;" alt="Greg Sadetsky"/><br /><sub><b>Greg Sadetsky</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=gregsadetsky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://kirby.zone"><img src="https://avatars.githubusercontent.com/u/75245963?v=4?s=100" width="100px;" alt="Igor Couto"/><br /><sub><b>Igor Couto</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Aiocouto" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eltociear" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Irapeke"><img src="https://avatars.githubusercontent.com/u/39604334?v=4?s=100" width="100px;" alt="Irapeke"/><br /><sub><b>Irapeke</b></sub></a><br /><a href="#translation-Irapeke" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsawo"><img src="https://avatars.githubusercontent.com/u/1294706?v=4?s=100" width="100px;" alt="Jacek Sawoszczuk"/><br /><sub><b>Jacek Sawoszczuk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jsawo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgfichte"><img src="https://avatars.githubusercontent.com/u/1787162?v=4?s=100" width="100px;" alt="Jason Williams"/><br /><sub><b>Jason Williams</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jgfichte" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jejacks0n"><img src="https://avatars.githubusercontent.com/u/13765?v=4?s=100" width="100px;" alt="Jeremy Jackson"/><br /><sub><b>Jeremy Jackson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jejacks0n" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://jeroenhoek.nl"><img src="https://avatars.githubusercontent.com/u/683699?v=4?s=100" width="100px;" alt="Jeroen Hoek"/><br /><sub><b>Jeroen Hoek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jdhoek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joebidido"><img src="https://avatars.githubusercontent.com/u/39796210?v=4?s=100" width="100px;" alt="Joebidido"/><br /><sub><b>Joebidido</b></sub></a><br /><a href="#translation-Joebidido" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://joost.at/"><img src="https://avatars.githubusercontent.com/u/1708494?v=4?s=100" width="100px;" alt="Joost De Cock"/><br /><sub><b>Joost De Cock</b></sub></a><br /><a href="#maintenance-joostdecock" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joshessman"><img src="https://avatars.githubusercontent.com/u/9941074?v=4?s=100" width="100px;" alt="Josh Essman"/><br /><sub><b>Josh Essman</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joshessman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.earth.li/~kake/"><img src="https://avatars.githubusercontent.com/u/1956810?v=4?s=100" width="100px;" alt="Kake"/><br /><sub><b>Kake</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=KakeLP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/kapunahele"><img src="https://avatars.githubusercontent.com/u/4116963?v=4?s=100" width="100px;" alt="Kapunahele Wong"/><br /><sub><b>Kapunahele Wong</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kapunahelewong" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tangerineshark"><img src="https://avatars.githubusercontent.com/u/70777269?v=4?s=100" width="100px;" alt="Karen"/><br /><sub><b>Karen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=tangerineshark" title="Documentation">📖</a> <a href="#eventOrganizing-tangerineshark" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.kieranklaassen.com/"><img src="https://avatars.githubusercontent.com/u/209089?v=4?s=100" width="100px;" alt="Kieran Klaassen"/><br /><sub><b>Kieran Klaassen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kieranklaassen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kittycatou"><img src="https://avatars.githubusercontent.com/u/48165583?v=4?s=100" width="100px;" alt="Kittycatou"/><br /><sub><b>Kittycatou</b></sub></a><br /><a href="#translation-Kittycatou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.krishoward.org/"><img src="https://avatars.githubusercontent.com/u/5946286?v=4?s=100" width="100px;" alt="Kris"/><br /><sub><b>Kris</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=web-goddess" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kristinruben"><img src="https://avatars.githubusercontent.com/u/17237479?v=4?s=100" width="100px;" alt="Kristin Ruben"/><br /><sub><b>Kristin Ruben</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kristinruben" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Loudepeuter"><img src="https://avatars.githubusercontent.com/u/38081954?v=4?s=100" width="100px;" alt="Loudepeuter"/><br /><sub><b>Loudepeuter</b></sub></a><br /><a href="#translation-Loudepeuter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MA-TATAS"><img src="https://avatars.githubusercontent.com/u/125549564?v=4?s=100" width="100px;" alt="MA-TATAS"/><br /><sub><b>MA-TATAS</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=MA-TATAS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/manufakturedelweiss"><img src="https://avatars.githubusercontent.com/u/38063391?v=4?s=100" width="100px;" alt="Marcus"/><br /><sub><b>Marcus</b></sub></a><br /><a href="#translation-manufakturedelweiss" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martintribo"><img src="https://avatars.githubusercontent.com/u/1613442?v=4?s=100" width="100px;" alt="Martin Tribo"/><br /><sub><b>Martin Tribo</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=martintribo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nadege"><img src="https://avatars.githubusercontent.com/u/3792171?v=4?s=100" width="100px;" alt="Nadege Michel"/><br /><sub><b>Nadege Michel</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Tests">⚠️</a> <a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nataliasayang"><img src="https://avatars.githubusercontent.com/u/48160791?v=4?s=100" width="100px;" alt="Natalia"/><br /><sub><b>Natalia</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nataliasayang" title="Code">💻</a> <a href="#design-nataliasayang" title="Design">🎨</a> <a href="#blog-nataliasayang" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nchilada"><img src="https://avatars.githubusercontent.com/u/692925?v=4?s=100" width="100px;" alt="Nikhil Chelliah"/><br /><sub><b>Nikhil Chelliah</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nchilada" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OysteinHoiby"><img src="https://avatars.githubusercontent.com/u/49735055?v=4?s=100" width="100px;" alt="OysteinHoiby"/><br /><sub><b>OysteinHoiby</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=OysteinHoiby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pat.forringer.com/"><img src="https://avatars.githubusercontent.com/u/136456?v=4?s=100" width="100px;" alt="Patrick Forringer"/><br /><sub><b>Patrick Forringer</b></sub></a><br /><a href="#plugin-destos" title="Plugin/utility libraries">🔌</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://pd75.github.io/"><img src="https://avatars.githubusercontent.com/u/10294795?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=PD75" title="Documentation">📖</a> <a href="#blog-PD75" title="Blogposts">📝</a> <a href="#translation-PD75" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phillipthelen"><img src="https://avatars.githubusercontent.com/u/298062?v=4?s=100" width="100px;" alt="Phillip Thelen"/><br /><sub><b>Phillip Thelen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=phillipthelen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QuentinFelix"><img src="https://avatars.githubusercontent.com/u/5288091?v=4?s=100" width="100px;" alt="Quentin FELIX"/><br /><sub><b>Quentin FELIX</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=QuentinFelix" title="Code">💻</a> <a href="#design-QuentinFelix" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RikHekker"><img src="https://avatars.githubusercontent.com/u/31843274?v=4?s=100" width="100px;" alt="Rik Hekker"/><br /><sub><b>Rik Hekker</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ARikHekker" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://resume.livingston-gray.com/faq.html"><img src="https://avatars.githubusercontent.com/u/6462?v=4?s=100" width="100px;" alt="Sam Livingston-Gray"/><br /><sub><b>Sam Livingston-Gray</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=geeksam" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sannek"><img src="https://avatars.githubusercontent.com/u/17491062?v=4?s=100" width="100px;" alt="Sanne"/><br /><sub><b>Sanne</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyrannogina"><img src="https://avatars.githubusercontent.com/u/19556565?v=4?s=100" width="100px;" alt="Sara Latorre"/><br /><sub><b>Sara Latorre</b></sub></a><br /><a href="#translation-Tyrannogina" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SirCharlotte"><img src="https://avatars.githubusercontent.com/u/63847870?v=4?s=100" width="100px;" alt="SirCharlotte"/><br /><sub><b>SirCharlotte</b></sub></a><br /><a href="#translation-SirCharlotte" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.instagram.com/celine_mge/"><img src="https://avatars.githubusercontent.com/u/57619777?v=4?s=100" width="100px;" alt="Slylele"/><br /><sub><b>Slylele</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Slylele" title="Documentation">📖</a> <a href="#translation-Slylele" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Soazillon"><img src="https://avatars.githubusercontent.com/u/40845940?v=4?s=100" width="100px;" alt="Soazillon"/><br /><sub><b>Soazillon</b></sub></a><br /><a href="#translation-Soazillon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SoneaTheBest"><img src="https://avatars.githubusercontent.com/u/64635425?v=4?s=100" width="100px;" alt="SoneaTheBest"/><br /><sub><b>SoneaTheBest</b></sub></a><br /><a href="#translation-SoneaTheBest" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://metafly.info/"><img src="https://avatars.githubusercontent.com/u/961256?v=4?s=100" width="100px;" alt="Stefan Sydow"/><br /><sub><b>Stefan Sydow</b></sub></a><br /><a href="#translation-stsydow" title="Translation">🌍</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woutervdub"><img src="https://avatars.githubusercontent.com/u/24414629?v=4?s=100" width="100px;" alt="Wouter van Wageningen"/><br /><sub><b>Wouter van Wageningen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woutervdub" title="Code">💻</a> <a href="#design-woutervdub" title="Design">🎨</a> <a href="#tool-woutervdub" title="Tools">🔧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amysews"><img src="https://avatars.githubusercontent.com/u/25280778?v=4?s=100" width="100px;" alt="amysews"/><br /><sub><b>amysews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=amysews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anna-puk"><img src="https://avatars.githubusercontent.com/u/100537439?v=4?s=100" width="100px;" alt="anna-puk"/><br /><sub><b>anna-puk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anna-puk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/beautifulsummermoon"><img src="https://avatars.githubusercontent.com/u/40396388?v=4?s=100" width="100px;" alt="beautifulsummermoon"/><br /><sub><b>beautifulsummermoon</b></sub></a><br /><a href="#translation-beautifulsummermoon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/berce"><img src="https://avatars.githubusercontent.com/u/10439709?v=4?s=100" width="100px;" alt="berce"/><br /><sub><b>berce</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=berce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/biou"><img src="https://avatars.githubusercontent.com/u/1340376?v=4?s=100" width="100px;" alt="biou"/><br /><sub><b>biou</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=biou" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgeorgethe3rd"><img src="https://avatars.githubusercontent.com/u/16866285?v=4?s=100" width="100px;" alt="bobgeorgethe3rd"/><br /><sub><b>bobgeorgethe3rd</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Documentation">📖</a> <a href="#design-bobgeorgethe3rd" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brmlyklr"><img src="https://avatars.githubusercontent.com/u/22308713?v=4?s=100" width="100px;" alt="brmlyklr"/><br /><sub><b>brmlyklr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=brmlyklr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.chrisbarrett.fr"><img src="https://avatars.githubusercontent.com/u/2373249?v=4?s=100" width="100px;" alt="chri5b"/><br /><sub><b>chri5b</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dingcycle"><img src="https://avatars.githubusercontent.com/u/1681985?v=4?s=100" width="100px;" alt="dingcycle"/><br /><sub><b>dingcycle</b></sub></a><br /><a href="#translation-dingcycle" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drowned-in-books"><img src="https://avatars.githubusercontent.com/u/100040772?v=4?s=100" width="100px;" alt="drowned-in-books"/><br /><sub><b>drowned-in-books</b></sub></a><br /><a href="#question-drowned-in-books" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DocSpencer77"><img src="https://avatars.githubusercontent.com/u/43393580?v=4?s=100" width="100px;" alt="gaylyndie"/><br /><sub><b>gaylyndie</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=DocSpencer77" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grimlokason"><img src="https://avatars.githubusercontent.com/u/5112238?v=4?s=100" width="100px;" alt="grimlokason"/><br /><sub><b>grimlokason</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=grimlokason" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://weblog.redisdead.net"><img src="https://avatars.githubusercontent.com/u/6494414?v=4?s=100" width="100px;" alt="hellgy"/><br /><sub><b>hellgy</b></sub></a><br /><a href="#design-hellgy" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackseye"><img src="https://avatars.githubusercontent.com/u/27834526?v=4?s=100" width="100px;" alt="jackseye"/><br /><sub><b>jackseye</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jackseye" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marckiesel"><img src="https://avatars.githubusercontent.com/u/39653780?v=4?s=100" width="100px;" alt="marckiesel"/><br /><sub><b>marckiesel</b></sub></a><br /><a href="#translation-marckiesel" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marpants"><img src="https://avatars.githubusercontent.com/u/61366665?v=4?s=100" width="100px;" alt="marpants"/><br /><sub><b>marpants</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=marpants" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tech.lgbt/@mergerg"><img src="https://avatars.githubusercontent.com/u/64447714?v=4?s=100" width="100px;" alt="mergerg"/><br /><sub><b>mergerg</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=raphaelsiz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mesil"><img src="https://avatars.githubusercontent.com/u/14284175?v=4?s=100" width="100px;" alt="mesil"/><br /><sub><b>mesil</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Amesil" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/starfetch"><img src="https://avatars.githubusercontent.com/u/80041179?v=4?s=100" width="100px;" alt="starfetch"/><br /><sub><b>starfetch</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Documentation">📖</a> <a href="#translation-starfetch" title="Translation">🌍</a> <a href="#design-starfetch" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timorl"><img src="https://avatars.githubusercontent.com/u/4363804?v=4?s=100" width="100px;" alt="timorl"/><br /><sub><b>timorl</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=timorl" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ttimearl"><img src="https://avatars.githubusercontent.com/u/77916590?v=4?s=100" width="100px;" alt="ttimearl"/><br /><sub><b>ttimearl</b></sub></a><br /><a href="#content-ttimearl" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisgloom"><img src="https://avatars.githubusercontent.com/u/15905991?v=4?s=100" width="100px;" alt="tuesgloomsday"/><br /><sub><b>tuesgloomsday</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chrisgloom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valadaptive"><img src="https://avatars.githubusercontent.com/u/79560998?v=4?s=100" width="100px;" alt="valadaptive"/><br /><sub><b>valadaptive</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=valadaptive" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viocky"><img src="https://avatars.githubusercontent.com/u/39279173?v=4?s=100" width="100px;" alt="viocky"/><br /><sub><b>viocky</b></sub></a><br /><a href="#translation-viocky" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woolishboy"><img src="https://avatars.githubusercontent.com/u/57816321?v=4?s=100" width="100px;" alt="woolishboy"/><br /><sub><b>woolishboy</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woolishboy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cloutiy"><img src="https://avatars.githubusercontent.com/u/8433147?v=4?s=100" width="100px;" alt="yc"/><br /><sub><b>yc</b></sub></a><br /><a href="#translation-cloutiy" title="Translation">🌍</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).

View file

@ -1,4 +1,4 @@
// This file is auto-generated | All changes you make will be overwritten.
export const name = '@freesewing/albert'
export const version = '3.0.0-alpha.9'
export const version = '3.0.0'
export const data = { name, version }

View file

@ -0,0 +1,36 @@
{
"t": "Albert, die Schürze",
"d": "Albert ist eine Schürze.",
"p": {
"front": "Vorderseite",
"pocket": "Tasche",
"strap": "Strap"
},
"s": {},
"o": {
"backOpening": {
"t": "Hintere Öffnung",
"d": "Steuert die Öffnung an der Rückseite der Schürze"
},
"chestDepth": {
"t": "Länge des Riemens",
"d": "Steuert die Länge der Riemen"
},
"lengthBonus": {
"t": "Längenzugabe",
"d": "Steuert die Länge der Schürze"
},
"bibLength": {
"t": "Latzlänge",
"d": "Steuert die Länge des Latzes"
},
"bibWidth": {
"t": "Latzbreite",
"d": "Steuert die Breite des Latzes"
},
"strapWidth": {
"t": "Riemenbreite",
"d": "Steuert die Breite des Riemens"
}
}
}

View file

@ -0,0 +1,43 @@
{
"t": "Albert apron",
"d": "Albert is an apron.",
"p": {
"front": "Front",
"pocket": "Pocket",
"strap": "Strap"
},
"s": {
"attachStrap": "Attach strap",
"cutPocket.t": "The pocket is not currently shown",
"cutPocket.d": "The **Pocket** is a rectangular piece of fabric {{{ width }}} wide and {{{ length }}} long.",
"cutStrap.t": "The straps are not currently shown",
"cutStrap.d": "The **Straps** are two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
"foldHere": "Fold here"
},
"o": {
"backOpening": {
"t": "Back opening",
"d": "Controls the opening at the back of the apron"
},
"chestDepth": {
"t": "Strap length",
"d": "Controls the length of the straps"
},
"lengthBonus": {
"t": "Length bonus",
"d": "Controls the length of the apron"
},
"bibLength": {
"t": "Bib length",
"d": "Controls the length of the bib"
},
"bibWidth": {
"t": "Bib width",
"d": "Controls the width of the bib"
},
"strapWidth": {
"t": "Strap width",
"d": "Controls the width of the strap"
}
}
}

View file

@ -0,0 +1,36 @@
{
"t": "Albert, delantal",
"d": "Albert es un delantal.",
"p": {
"front": "Frente",
"pocket": "Bolsillo",
"strap": "Strap"
},
"s": {},
"o": {
"backOpening": {
"t": "Abertura de la espalda",
"d": "Controla la apertura en la parte trasera del Profeta"
},
"chestDepth": {
"t": "Longitud del Strp",
"d": "Controla la longitud de las correas"
},
"lengthBonus": {
"t": "Bonus de longitud",
"d": "Controla la longitud del buque"
},
"bibLength": {
"t": "Longitud de bib",
"d": "Controla la longitud de la bib"
},
"bibWidth": {
"t": "Ancho bib",
"d": "Controla el ancho de la bib"
},
"strapWidth": {
"t": "Strap width",
"d": "Controla el ancho de la correa"
}
}
}

View file

@ -0,0 +1,36 @@
{
"t": "Tablier Albert",
"d": "Albert est un tablier.",
"p": {
"front": "Avant",
"pocket": "Poche",
"strap": "Strap"
},
"s": {},
"o": {
"backOpening": {
"t": "Ouverture arrière",
"d": "Contrôle l'ouverture à l'arrière du tablier"
},
"chestDepth": {
"t": "Longueur de l'anse",
"d": "Contrôle la longueur des liens"
},
"lengthBonus": {
"t": "Supplément de longueur",
"d": "Contrôle la longueur du tablier"
},
"bibLength": {
"t": "Longueur du plastron",
"d": "Contrôle la longueur du plastron"
},
"bibWidth": {
"t": "Largeur du plastron",
"d": "Contrôle la largeur du plastron"
},
"strapWidth": {
"t": "Largeur du lien",
"d": "Contrôle la largeur des liens"
}
}
}

View file

@ -0,0 +1,8 @@
import en from './en.json' assert { type: 'json' }
import de from './de.json' assert { type: 'json' }
import es from './es.json' assert { type: 'json' }
import fr from './fr.json' assert { type: 'json' }
import nl from './nl.json' assert { type: 'json' }
import uk from './uk.json' assert { type: 'json' }
export const i18n = { en, de, es, fr, nl, uk }

View file

@ -0,0 +1,90 @@
{
"t": "Albert schort",
"d": "Albert is een vork.",
"p": {
"back": "Achterzijde",
"backBase": "Basis rug",
"backPocketWelt": "Back pocket welt",
"base": "Basis",
"bentBack": "Achterzijde Bent",
"bentBase": "Basis Bent",
"bentFront": "Voorzijde Bent",
"bentSleeve": "Mouw Bent",
"bentTopSleeve": "Bovenmouw Bent",
"bentUnderSleeve": "Ondermouw Bent",
"buttonholePlacket": "Knoopsgatenpat",
"buttonPlacket": "Knopenpat",
"collar": "Kraag",
"collarStand": "Kraagstaander",
"cuff": "Manchet",
"fabricTail": "Stof staart",
"fabricTip": "Stof tip",
"frontBase": "Basis voorzijde",
"frontFacing": "Beleg vooraan",
"front": "Voorzijde",
"frontLeft": "Voorzijde links",
"frontLining": "Voering vooraan",
"frontRight": "Voorzijde rechts",
"gusset": "Gusset",
"hoodCenter": "Midden kap",
"hood": "Capuchon",
"hoodSide": "Zijkant kap",
"inset": "Inzet",
"interfacingTail": "Interfacing staart",
"interfacingTip": "Interfacing tip",
"liningTail": "Voering staart",
"liningTip": "Voering tip",
"loop": "Lus",
"panel1": "Deel 1",
"panel2": "Deel 2",
"panel3": "Deel 3",
"panel4": "Deel 4",
"panel5": "Deel 5",
"panel6": "Deel 6",
"panels": "Panelen",
"pocketBag": "Binnenzak",
"pocketFacing": "Zak beleg",
"pocketInterfacing": "Tussenvoering zak",
"pocket": "Zak",
"pocketWelt": "Paspel zak",
"side": "Zijkant",
"sleeveBase": "Basis mouw",
"sleevecap": "Mouwkop",
"sleevePlacketOverlap": "Mouwsplit boven",
"sleevePlacketUnderlap": "Mouwsplit onder",
"sleeve": "Mouw",
"topSleeve": "Bovenmouw",
"top": "Top",
"underCollar": "Onderkraag",
"underSleeve": "Ondermouw",
"waistband": "Tailleband",
"yoke": "Schouderpas"
},
"s": {},
"o": {
"backOpening": {
"t": "Rugopening",
"d": "Bepaalt de opening aan de achterkant van de schort"
},
"chestDepth": {
"t": "Lengte van de badjes",
"d": "Bepaalt de lengte van de bandjes"
},
"lengthBonus": {
"t": "Lengtebonus",
"d": "Bepaalt de lengte van de schort"
},
"bibLength": {
"t": "Lengte slabbetje",
"d": "Bepaalt de lengte van het slabbetje"
},
"bibWidth": {
"t": "Breedte slabbetje",
"d": "Bepaalt de breedte van het slabbetje"
},
"strapWidth": {
"t": "Breedte bandjes",
"d": "Bepaalt de breedte van de bandjes"
}
}
}

View file

@ -0,0 +1,36 @@
{
"t": "Albert apron",
"d": "Albert is an apron.",
"p": {
"front": "Front",
"pocket": "Pocket",
"strap": "Strap"
},
"s": {},
"o": {
"backOpening": {
"t": "Back opening",
"d": "Controls the opening at the back of the apron"
},
"chestDepth": {
"t": "Strap length",
"d": "Controls the length of the straps"
},
"lengthBonus": {
"t": "Length bonus",
"d": "Controls the length of the apron"
},
"bibLength": {
"t": "Bib length",
"d": "Controls the length of the bib"
},
"bibWidth": {
"t": "Bib width",
"d": "Controls the width of the bib"
},
"strapWidth": {
"t": "Strap width",
"d": "Controls the width of the strap"
}
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/albert",
"version": "3.0.0-alpha.9",
"version": "3.0.0",
"description": "A FreeSewing pattern for an apron",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -27,10 +27,14 @@
"type": "module",
"module": "dist/index.mjs",
"exports": {
".": "./dist/index.mjs"
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"clean": "rimraf dist",
"mbuild": "NO_MINIFY=1 node build.mjs",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
@ -40,21 +44,19 @@
"tips": "node ../../scripts/help.mjs",
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
"testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"cibuild_step5": "node build.mjs",
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wcibuild_step5": "node build.mjs"
"wbuild:all": "yarn wbuild"
},
"peerDependencies": {
"@freesewing/core": "3.0.0-alpha.9",
"@freesewing/plugin-bundle": "3.0.0-alpha.9"
"@freesewing/core": "3.0.0"
},
"dependencies": {},
"devDependencies": {
"mocha": "10.2.0",
"chai": "4.3.7",
"@freesewing/models": "3.0.0-alpha.9",
"@freesewing/plugin-timing": "3.0.0-alpha.9"
"chai": "4.3.10",
"@freesewing/models": "3.0.0",
"@freesewing/plugin-timing": "3.0.0"
},
"files": [
"dist/*",
@ -62,10 +64,10 @@
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
"node": "18",
"npm": "9"
}
}

View file

@ -1,5 +1,3 @@
import { pluginBundle } from '@freesewing/plugin-bundle'
export const front = {
name: 'albert.front',
measurements: ['chest', 'hpsToWaistBack', 'waist', 'waistToKnee', 'hips'],
@ -9,7 +7,6 @@ export const front = {
bibLength: { pct: 75, min: 0, max: 90, menu: 'style' },
lengthBonus: { pct: 0, min: -20, max: 25, menu: 'style' },
},
plugins: pluginBundle,
draft: ({
options,
measurements,
@ -19,42 +16,33 @@ export const front = {
paths,
Snippet,
snippets,
complete,
sa,
paperless,
complete,
macro,
store,
part,
}) => {
let chestWidth = measurements.chest / 4
let bibWidth = chestWidth * options.bibWidth
let bibLength = measurements.hpsToWaistBack * options.bibLength
let apronLength =
const chestWidth = measurements.chest / 4
const bibWidth = chestWidth * options.bibWidth
const bibLength = measurements.hpsToWaistBack * options.bibLength
const apronLength =
measurements.hpsToWaistBack * options.bibLength +
measurements.waistToKnee * (1 + options.lengthBonus)
/*
let apronWidth =
Math.max(measurements.hips, measurements.waist) *
(1 - options.backOpening)
*/
let apronWidth = measurements.waist * (1 - options.backOpening)
let strapWidth = (measurements.hpsToWaistBack * options.strapWidth) / 8
let hemWidth = strapWidth
let sideHemWidth = Math.max(sa, hemWidth / 4)
let pocketSize = apronLength / 4
const apronWidth = measurements.waist * (1 - options.backOpening)
const strapWidth = (measurements.hpsToWaistBack * options.strapWidth) / 8
const pocketSize = apronLength / 4
store.set('bibWidth', bibWidth)
store.set('apronLength', apronLength)
store.set('apronWidth', apronWidth)
store.set('strapWidth', strapWidth)
store.set('hemWidth', hemWidth)
store.set('pocketSize', pocketSize)
points.topLeft = new Point(0, 0)
points.topLeftHem = points.topLeft.shift(270, hemWidth)
points.topLeftHem = points.topLeft.shift(270, strapWidth)
points.bottomLeftHem = points.topLeftHem.shift(270, apronLength)
points.waistLeft = points.topLeftHem.shift(270, bibLength)
points.bottomLeft = points.bottomLeftHem.shift(270, hemWidth)
points.bottomLeft = points.bottomLeftHem.shift(270, strapWidth)
points.topRight = points.topLeft.shift(0, bibWidth / 2)
points.topRightHem = points.topLeftHem.shift(0, bibWidth / 2)
points.bottomRightHem = points.bottomLeftHem.shift(0, apronWidth / 2)
@ -69,140 +57,172 @@ export const front = {
points.topCOF = points.topLeft.shift(270, apronLength / 5)
points.bottomCOF = points.bottomLeft.shift(90, apronLength / 5)
points.pocketLeftTop = points.waistLeft.shift(270, hemWidth)
points.pocketLeftTop = points.waistLeft.shift(270, strapWidth)
points.pocketRightTop = points.pocketLeftTop.shift(0, pocketSize)
points.pocketLeftBottom = points.pocketLeftTop.shift(270, pocketSize)
points.pocketRightBottom = points.pocketLeftBottom.shift(0, pocketSize)
points.crossBoxTo1 = new Point(
points.crossBox1TopLeft = new Point(
points.topRightHem.x - strapWidth,
points.topRightHem.y + hemWidth
points.topRightHem.y - strapWidth
)
points.crossBoxTo2 = new Point(
points.topRightBack.x - strapWidth,
points.topRightBack.y + hemWidth
points.crossBox1BottomRight = new Point(
points.crossBox1TopLeft.x + strapWidth,
points.crossBox1TopLeft.y + strapWidth
)
points.crossBox2TopLeft = points.topRightBack.copy().shift(180, strapWidth)
points.crossBox2BottomRight = new Point(
points.crossBox2TopLeft.x + strapWidth,
points.crossBox2TopLeft.y + strapWidth
)
paths.rightHem = new Path()
// Re-use this for hem hint
paths.seam = new Path()
.move(points.bottomRight)
.line(points.topRightBack)
.curve(points.topRightBackCPfront, points.topRightCPdown, points.topRightHem)
.line(points.topRight)
.attr('class', 'various dashed')
.attr('data-text', 'narrow hem')
.attr('data-text-class', 'text-xs center')
paths.pocket = new Path()
.move(points.pocketLeftBottom)
.line(points.pocketLeftTop)
.line(points.pocketRightTop)
.line(points.pocketRightBottom)
.line(points.pocketLeftBottom)
.attr('class', 'lining dotted stroke-sm')
.attr('data-text', 'pocket')
.attr('data-text-class', 'text-xs center')
paths.right = paths.rightHem.offset(sideHemWidth)
paths.seam = new Path()
.move(points.bottomLeft)
.join(paths.right)
.line(points.topLeft)
.line(points.bottomLeft)
.line(points.bottomRight)
.close()
.attr('class', 'fabric')
.addClass('class', 'fabric')
paths.complete = paths.seam.clone().line(points.bottomLeft).close()
paths.topHem = new Path()
.move(points.topLeftHem)
.line(points.topRightHem.shift(0, sa))
.attr('class', 'various dashed')
.attr('data-text', 'hem')
.attr('data-text-class', 'text-xs center')
paths.bottomHem = new Path()
.move(points.bottomLeftHem)
.line(points.bottomRightHem.shift(0, sa))
.attr('class', 'various dashed')
.attr('data-text', 'hem')
.attr('data-text-class', 'text-xs center')
// Complete?
if (complete) {
points.logo = points.topRightBack.shiftFractionTowards(points.pocketRightBottom, 0.5)
snippets.logo = new Snippet('logo', points.logo)
points.title = points.logo.shift(-90, 100)
macro('title', {
nr: 1,
at: points.title,
title: 'Front',
paths.pocket = new Path()
.move(points.pocketLeftBottom)
.line(points.pocketLeftTop)
.line(points.pocketRightTop)
.line(points.pocketRightBottom)
.line(points.pocketLeftBottom)
.addClass('fabric help')
macro('banner', {
id: 'pocket',
path: paths.pocket,
text: 'pocket',
classes: 'fill-note center',
})
}
points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5)
macro('scalebox', { at: points.scaleboxAnchor })
macro('crossbox', {
from: points.topRightHem,
to: points.crossBoxTo1,
})
macro('crossbox', {
from: points.topRightBack,
to: points.crossBoxTo2,
text: 'attachment',
})
if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
if (sa) {
const saBase = new Path()
.move(points.bottomLeft.shift(-90, sa))
.line(points.bottomRight.shift(-90, sa))
.line(points.topRightBack)
.curve(points.topRightBackCPfront, points.topRightCPdown, points.topRightHem)
.line(points.topRight.shift(90, sa))
.line(points.topLeft.shift(90, sa))
paths.sa = saBase
.clone()
.offset(sa * 2)
.addClass('fabric sa')
if (complete) {
paths.hemHint = saBase.clone().offset(sa).addClass('note help')
macro('banner', {
id: 'narrowHem',
path: paths.hemHint,
text: 'albert:narrowHem',
repeat: 60,
spaces: 60,
classes: 'fill-note center',
})
}
macro('cutonfold', {
from: points.topCOF,
to: points.bottomCOF,
})
}
// Paperless?
if (paperless) {
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
})
macro('hd', {
from: points.topLeft,
to: points.topRight,
y: points.topLeft.y - sa - 15,
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - sa - 15,
})
macro('vd', {
from: points.bottomRight,
to: points.topRightBack,
x: points.topRightBack.x + sa + 15,
})
macro('vd', {
from: points.topRightBack,
to: points.topRight,
x: points.topRightBack.x + sa + 15,
})
macro('vd', {
from: points.topLeft,
to: points.topLeftHem,
x: points.topLeftHem.x + sa + 15,
})
macro('vd', {
from: points.topLeftHem,
to: points.bottomLeftHem,
x: points.topLeftHem.x + sa + 15,
})
macro('vd', {
from: points.bottomLeftHem,
to: points.bottomLeft,
x: points.bottomLeftHem.x + sa + 15,
})
}
/*
* Annotations
*/
// Cut list
store.cutlist.addCut({ cut: 1, from: 'fabric' })
// Cut on fold
macro('cutonfold', {
to: points.bottomCOF,
from: points.topCOF,
reverse: true,
})
// Logo
points.logo = points.topRightBack.shiftFractionTowards(points.pocketRightBottom, 0.5)
snippets.logo = new Snippet('logo', points.logo)
// Title
points.title = points.logo.shift(-90, 100)
macro('title', {
nr: 1,
at: points.title,
title: 'front',
})
// Scalebox
points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5)
macro('scalebox', { at: points.scaleboxAnchor })
// Crossbox 1
macro('crossbox', {
topLeft: points.crossBox1TopLeft,
bottomRight: points.crossBox1BottomRight,
id: 'crossbox1',
})
// Crossbox 2
macro('crossbox', {
topLeft: points.crossBox2TopLeft,
bottomRight: points.crossBox2BottomRight,
id: 'crossbox2',
text: 'albert:attachStrap',
})
// Dimensions
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
id: 'wBottom',
})
macro('hd', {
from: points.topLeft,
to: points.topRight,
y: points.topLeft.y - sa - 15,
id: 'wTop',
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - 30,
id: 'hLeft',
})
macro('vd', {
from: points.bottomRight,
to: points.topRightBack,
x: points.topRightBack.x + sa + 15,
id: 'hRightBottom',
})
macro('vd', {
from: points.topRightBack,
to: points.topRight,
x: points.topRightBack.x + sa + 15,
id: 'hRightTop',
})
macro('vd', {
from: points.topLeftHem,
to: points.topLeft,
x: points.topLeftHem.x - 15,
id: 'foldoverTop',
})
macro('vd', {
from: points.bottomLeftHem,
to: points.topLeftHem,
x: points.topLeftHem.x - 15,
id: 'hLeftToFoldover',
})
macro('vd', {
from: points.bottomLeft,
to: points.bottomLeftHem,
x: points.bottomLeftHem.x + sa + 15,
id: 'hBottomHem',
})
return part
},

View file

@ -3,6 +3,7 @@ import { data } from '../data.mjs'
import { front } from './front.mjs'
import { pocket } from './pocket.mjs'
import { strap } from './strap.mjs'
import { i18n } from '../i18n/index.mjs'
// Setup our new design
const Albert = new Design({
@ -11,4 +12,4 @@ const Albert = new Design({
})
// Named exports
export { front, pocket, strap, Albert }
export { front, pocket, strap, Albert, i18n }

View file

@ -10,76 +10,100 @@ export const pocket = {
paths,
Snippet,
snippets,
complete,
sa,
paperless,
macro,
expand,
units,
store,
part,
}) => {
let pocketSize = store.get('pocketSize')
let hemWidth = store.get('hemWidth')
const pocketSize = store.get('pocketSize')
if (!expand) {
// Expand is on, do not draw the part but flag this to the user
const extraSa = sa ? 2 * sa : 0
store.flag.note({
msg: `albert:cutPocket`,
notes: [sa ? 'flag:saIncluded' : 'flag:saExcluded', 'flag:partHiddenByExpand'],
replace: {
width: units(pocketSize * 2 + extraSa),
length: units(pocketSize + extraSa + store.get('strapWidth')),
},
suggest: {
text: 'flag:show',
icon: 'expand',
update: {
settings: ['expand', 1],
},
},
})
// Also hint about expand
store.flag.preset('expand')
return part.hide()
}
points.topLeft = new Point(0, 0)
points.topRight = new Point(pocketSize, 0)
points.topLeftHem = points.topLeft.shift(270, hemWidth)
points.topRightHem = points.topRight.shift(270, hemWidth)
points.bottomLeft = points.topLeftHem.shift(270, pocketSize)
points.bottomRight = points.topRightHem.shift(270, pocketSize)
points.topCOF = points.topLeft.shift(270, pocketSize / 5)
points.bottomCOF = points.bottomLeft.shift(90, pocketSize / 5)
points.bottomLeft = points.topLeft.shift(270, pocketSize)
points.bottomRight = points.topRight.shift(270, pocketSize)
paths.seam = new Path()
.move(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight)
.line(points.topLeft)
.move(points.bottomLeft)
.close()
.attr('class', 'fabric')
paths.all = paths.seam.clone().line(points.bottomLeft).close().attr('class', 'fabric')
if (sa)
paths.sa = new Path()
.move(points.bottomLeft)
.line(points.bottomRight)
.line(points.topRight.shift(90, store.get('strapWidth')))
.line(points.topLeft.shift(90, store.get('strapWidth')))
.offset(sa)
.attr('class', 'fabric sa')
paths.topHem = new Path()
.move(points.topLeftHem)
.line(points.topRightHem.shift(0, sa))
.attr('class', 'various dashed')
.attr('data-text', 'hem')
.attr('data-text-class', 'text-xs center')
/*
* Annotations
*/
// Cut list
store.cutlist.addCut({ cut: 1, from: 'fabric' })
// Cut on fold
macro('cutonfold', {
from: points.topCOF,
to: points.bottomCOF,
from: points.topLeft,
to: points.bottomLeft,
reverse: true,
})
// Complete?
if (complete) {
points.logo = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)
snippets.logo = new Snippet('logo', points.logo)
points.title = points.logo.shift(-90, 45)
macro('title', {
nr: 3,
at: points.title,
title: 'Pocket',
})
if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
}
}
// Logo
points.logo = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)
snippets.logo = new Snippet('logo', points.logo)
// Paperless?
if (paperless) {
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - sa - 15,
})
}
// Title
points.title = points.logo.shift(-90, 45)
macro('title', {
nr: 3,
at: points.title,
title: 'Pocket',
})
// Dimensions
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
id: 'width',
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - 15,
id: 'height',
})
return part
},

View file

@ -16,44 +16,62 @@ export const strap = {
paths,
Snippet,
snippets,
complete,
sa,
paperless,
macro,
store,
complete,
units,
expand,
part,
}) => {
let bibWidth = store.get('bibWidth')
let apronWidth = store.get('apronWidth')
let backOpening = apronWidth - Math.max(measurements.hips, measurements.waist)
let hemWidth = store.get('hemWidth')
const bibWidth = store.get('bibWidth')
const apronWidth = store.get('apronWidth')
const backOpening = apronWidth - Math.max(measurements.hips, measurements.waist)
let hSpan = backOpening / 2 + bibWidth / 2
let vSpan =
const hSpan = backOpening / 2 + bibWidth / 2
const vSpan =
measurements.hpsToWaistBack +
measurements.hpsToWaistBack -
measurements.hpsToWaistBack * options.bibLength
let strapWidth = store.get('strapWidth')
let strapLength =
const strapWidth = store.get('strapWidth')
const strapLength =
Math.sqrt(hSpan * hSpan + vSpan * vSpan) + measurements.chest * options.chestDepth
/*
console.log('chestWidth ' + chestWidth)
console.log('backOpening ' + backOpening)
console.log('hSpan ' + hSpan)
console.log('vSpan ' + vSpan)
console.log('strapLength ' + strapLength)
*/
if (!expand) {
// Expand is on, do not draw the part but flag this to the user
const extraSa = sa ? 2 * sa : 0
store.flag.note({
msg: `albert:cutStrap`,
notes: [sa ? 'flag:saIncluded' : 'flag:saExcluded', 'flag:partHiddenByExpand'],
replace: {
width: units(strapWidth + extraSa),
length: units(strapLength + strapWidth * 2 + extraSa),
},
suggest: {
text: 'flag:show',
icon: 'expand',
update: {
settings: ['expand', 1],
},
},
})
// Also hint about expand
store.flag.preset('expand')
return part.hide()
}
points.topLeft = new Point(0, 0)
points.topLeftHem = points.topLeft.shift(270, hemWidth)
points.topLeftHem = points.topLeft.shift(270, strapWidth)
points.topMiddle = new Point(strapWidth, 0)
points.topMiddleHem = new Point(strapWidth, hemWidth)
points.topMiddleHem = new Point(strapWidth, strapWidth)
points.topRight = new Point(strapWidth * 2, 0)
points.bottomLeftHem = new Point(0, strapLength + hemWidth)
points.bottomLeft = new Point(0, strapLength + hemWidth * 2)
points.bottomMiddleHem = new Point(strapWidth, strapLength + hemWidth)
points.bottomMiddle = new Point(strapWidth, strapLength + hemWidth * 2)
points.bottomRight = new Point(strapWidth * 2, strapLength + hemWidth * 2)
points.bottomLeftHem = new Point(0, strapLength + strapWidth)
points.bottomLeft = new Point(0, strapLength + strapWidth * 2)
points.bottomMiddleHem = new Point(strapWidth, strapLength + strapWidth)
points.bottomMiddle = new Point(strapWidth, strapLength + strapWidth * 2)
points.bottomRight = new Point(strapWidth * 2, strapLength + strapWidth * 2)
paths.seam = new Path()
.move(points.topLeft)
@ -64,71 +82,84 @@ export const strap = {
.close()
.attr('class', 'fabric')
paths.topHem = new Path()
.move(points.topLeftHem)
.line(points.topMiddleHem)
.attr('class', 'various dashed')
.attr('data-text', 'attach')
.attr('data-text-class', 'text-xs center')
paths.bottomHem = new Path()
.move(points.bottomLeftHem)
.line(points.bottomMiddleHem)
.attr('class', 'various dashed')
.attr('data-text', 'attach')
.attr('data-text-class', 'text-xs center')
paths.fold = new Path()
.move(points.topMiddle)
.line(points.bottomMiddle)
.attr('class', 'various dashed')
.attr('data-text', 'fold')
.attr('data-text-class', 'text-xs center')
// Complete?
if (complete) {
points.logo = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.5)
points.title = points.logo.shift(-90, 50)
macro('title', {
nr: 2,
at: points.title,
title: 'Strap',
paths.fold = new Path()
.move(points.topMiddle)
.line(points.bottomMiddle)
.addClass('note help')
.addText('albert:foldHere', 'fill-note center')
macro('banner', {
id: 'foldHere',
path: paths.fold,
text: 'albert:foldHere',
})
macro('crossbox', { from: points.topLeft, to: points.topMiddleHem })
macro('crossbox', { from: points.bottomLeftHem, to: points.bottomMiddle })
if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
}
}
// Paperless?
if (paperless) {
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - sa - 15,
})
macro('vd', {
from: points.topMiddle,
to: points.topMiddleHem,
x: points.topMiddleHem.x + sa + 15,
})
macro('vd', {
from: points.topMiddleHem,
to: points.bottomMiddleHem,
x: points.topMiddleHem.x + sa + 15,
})
macro('vd', {
from: points.bottomMiddleHem,
to: points.bottomMiddle,
x: points.bottomMiddleHem.x + sa + 15,
})
}
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
/*
* Annotations
*/
// Cut list
store.cutlist.addCut({ cut: 2, from: 'fabric' })
// Logo
points.logo = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)
snippets.logo = new Snippet('logo', points.logo)
// Title
points.title = points.logo.shift(-90, 70)
macro('title', {
nr: 2,
at: points.title,
title: 'strap',
align: 'center',
})
// Crossbox
macro('crossbox', {
topLeft: points.topLeft,
bottomRight: points.topMiddleHem,
id: 'crossbox1',
})
macro('crossbox', {
topLeft: points.bottomLeftHem,
bottomRight: points.bottomMiddle,
id: 'crossbox2',
})
// Dimensions
macro('hd', {
from: points.bottomLeft,
to: points.bottomRight,
y: points.bottomLeft.y + sa + 15,
id: 'wBottom',
})
macro('vd', {
from: points.bottomLeft,
to: points.topLeft,
x: points.topLeft.x - sa - 30,
id: 'hLeft',
})
macro('vd', {
from: points.topMiddleHem,
to: points.topMiddle,
x: points.topLeft.x - sa - 15,
id: 'crossboxTop',
})
macro('vd', {
from: points.bottomMiddleHem,
to: points.topMiddleHem,
x: points.topLeft.x - sa - 15,
id: 'betweenCrossboxes',
})
macro('vd', {
from: points.bottomMiddle,
to: points.bottomMiddleHem,
x: points.topLeft.x - sa - 15,
id: 'crossboxBottom',
})
return part
},

View file

@ -1,14 +1,18 @@
// This file is auto-generated | Any changes you make will be overwritten.
import { Albert } from '../src/index.mjs'
import { Albert, i18n } from '../src/index.mjs'
// Shared tests
import { testPatternConfig } from '../../../tests/designs/config.mjs'
import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
// Test config
testPatternConfig(Albert)
// Test translation
testPatternI18n(Albert, i18n)
// Test drafting - Change the second parameter to `true` to log errors
testPatternDrafting(Albert, false)

View file

@ -1,6 +1,14 @@
# Change log for: @freesewing/bee
## 3.0.0 (2022-09-30)
### Changed
- All FreeSewing pacakges are now ESM only.
- All FreeSewing pacakges now use named exports.
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
## 2.21.0 (2022-06-27)
### Changed

View file

@ -22,7 +22,7 @@
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-107-pink.svg"
><img src="https://img.shields.io/badge/all_contributors-111-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
@ -53,17 +53,9 @@ A FreeSewing pattern for a bikini top
> #### Note: Version 3 is a work in progress
>
> We are working on a new major version (v3) but it is not ready for prime-time.
> For production use, please refer to our v2 packages (the `latest` on NPM)
> or [the `v2` branch in our monorepo](https://github.com/freesewing/freesewing/tree/v2).
>
> We the `main` branch and `next` packages on NPM holds v3 code. But it's alpha for now.
## What am I looking at? 🤔
This repository is our *monorepo* holding all our NPM designs, plugins, other NPM packages, and (web)sites.
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
This folder holds: @freesewing/bee
@ -86,11 +78,11 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
our sewing patterns adapted to your measurements.
sewing patterns adapted to your measurements.
If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/).
Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But we also provide a range
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
for parametric design of sewing patterns. But FreeSewing also provides a range
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
functionality of the platform.
@ -100,33 +92,43 @@ If you have NodeJS installed, you can try it right now by running:
npx create-freesewing-pattern
```
Or, consult our getting started guides
for [Linux](https://freesewing.dev/tutorials/getting-started-linux/),
[MacOS](https://freesewing.dev/tutorials/getting-started-mac/),
or [Windows](https://freesewing.dev/tutorials/getting-started-windows/).
Getting started guides are available for:
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that
walks you through your first parametric design,
and [a friendly community](https://freesewing.org/community/where/) with
people who can help you when you get stuck.
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
show you how to create your first parametric design.
## Support FreeSewing: Become a patron 🥰
FreeSewing is an open source project run by a community,
and financially supported by our patrons.
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
If you feel what we do is worthwhile, and you can spend a few coind without
If you feel FreeSewing is worthwhile, and you can spend a few coind without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
## Links 👩‍💻
- 💻 Makers website: [freesewing.org](https://freesewing.org)
- 💻 Developers website: [freesewing.dev](https://freesewing.dev)
- 💬 Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/)
- ✅ Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/)
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
**Places the FreeSewing community hangs out**
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
@ -134,168 +136,8 @@ See [the license file](https://github.com/freesewing/freesewing/blob/develop/LIC
## Where to get help 🤯
Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions,
share your feedback, or just hang out.
If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://adamrtomkins.github.io/"><img src="https://avatars.githubusercontent.com/u/5709603?v=4?s=100" width="100px;" alt="Adam Tomkins"/><br /><sub><b>Adam Tomkins</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AdamRTomkins" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://polymerisation-des-concepts.fr/"><img src="https://avatars.githubusercontent.com/u/365999?v=4?s=100" width="100px;" alt="Alexandre Ignjatovic"/><br /><sub><b>Alexandre Ignjatovic</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bankair" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AlfaLyr"><img src="https://avatars.githubusercontent.com/u/39273729?v=4?s=100" width="100px;" alt="AlfaLyr"/><br /><sub><b>AlfaLyr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=AlfaLyr" title="Code">💻</a> <a href="#plugin-AlfaLyr" title="Plugin/utility libraries">🔌</a> <a href="#design-AlfaLyr" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://thelettereph.com"><img src="https://avatars.githubusercontent.com/u/357684?v=4?s=100" width="100px;" alt="Andrew James"/><br /><sub><b>Andrew James</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ephphatha" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/annekecaramin"><img src="https://avatars.githubusercontent.com/u/38046191?v=4?s=100" width="100px;" alt="Anneke"/><br /><sub><b>Anneke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=annekecaramin" title="Documentation">📖</a> <a href="#translation-annekecaramin" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anniekao"><img src="https://avatars.githubusercontent.com/u/1550506?v=4?s=100" width="100px;" alt="Annie Kao"/><br /><sub><b>Annie Kao</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anniekao" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Anternative"><img src="https://avatars.githubusercontent.com/u/81079850?v=4?s=100" width="100px;" alt="Anternative"/><br /><sub><b>Anternative</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Anternative" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Quiltmaster"><img src="https://avatars.githubusercontent.com/u/71795777?v=4?s=100" width="100px;" alt="Anthony"/><br /><sub><b>Anthony</b></sub></a><br /><a href="#question-Quiltmaster" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/arigrayzel"><img src="https://avatars.githubusercontent.com/u/33040950?v=4?s=100" width="100px;" alt="Ari Grayzel-student"/><br /><sub><b>Ari Grayzel-student</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=arigrayzel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Bart-PXL"><img src="https://avatars.githubusercontent.com/u/45118788?v=4?s=100" width="100px;" alt="Bart"/><br /><sub><b>Bart</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Bart-PXL" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BenJamesBen"><img src="https://avatars.githubusercontent.com/u/109869956?v=4?s=100" width="100px;" alt="BenJamesBen"/><br /><sub><b>BenJamesBen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=BenJamesBen" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3ABenJamesBen" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/camerondubas"><img src="https://avatars.githubusercontent.com/u/6216460?v=4?s=100" width="100px;" alt="Cameron Dubas"/><br /><sub><b>Cameron Dubas</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=camerondubas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cabi"><img src="https://avatars.githubusercontent.com/u/2596253?v=4?s=100" width="100px;" alt="Carsten Biebricher"/><br /><sub><b>Carsten Biebricher</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cabi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cathyzoller"><img src="https://avatars.githubusercontent.com/u/2120275?v=4?s=100" width="100px;" alt="Cathy Zoller"/><br /><sub><b>Cathy Zoller</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=cathyzoller" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chantalbijoux"><img src="https://avatars.githubusercontent.com/u/39673694?v=4?s=100" width="100px;" alt="Chantal Lapointe"/><br /><sub><b>Chantal Lapointe</b></sub></a><br /><a href="#translation-Chantalbijoux" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dpiquet"><img src="https://avatars.githubusercontent.com/u/4688628?v=4?s=100" width="100px;" alt="Damien PIQUET"/><br /><sub><b>Damien PIQUET</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=dpiquet" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.darigovresearch.com/"><img src="https://avatars.githubusercontent.com/u/30328618?v=4?s=100" width="100px;" alt="Darigov Research"/><br /><sub><b>Darigov Research</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=darigovresearch" title="Documentation">📖</a> <a href="#ideas-darigovresearch" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/clegganator259"><img src="https://avatars.githubusercontent.com/u/3974250?v=4?s=100" width="100px;" alt="David Clegg"/><br /><sub><b>David Clegg</b></sub></a><br /><a href="#design-clegganator259" title="Design">🎨</a> <a href="https://github.com/freesewing/freesewing/commits?author=clegganator259" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ElenaFdR"><img src="https://avatars.githubusercontent.com/u/5113815?v=4?s=100" width="100px;" alt="Elena FdR"/><br /><sub><b>Elena FdR</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=ElenaFdR" title="Documentation">📖</a> <a href="#blog-ElenaFdR" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://emmanuelnyachoke.com/"><img src="https://avatars.githubusercontent.com/u/1908926?v=4?s=100" width="100px;" alt="Emmanuel Nyachoke"/><br /><sub><b>Emmanuel Nyachoke</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=enyachoke" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://enochriese.com"><img src="https://avatars.githubusercontent.com/u/5298929?v=4?s=100" width="100px;" alt="Enoch Riese"/><br /><sub><b>Enoch Riese</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eriese" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EvEkSwed"><img src="https://avatars.githubusercontent.com/u/39723451?v=4?s=100" width="100px;" alt="EvEkSwed"/><br /><sub><b>EvEkSwed</b></sub></a><br /><a href="#translation-EvEkSwed" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Fantastik-Maman"><img src="https://avatars.githubusercontent.com/u/39785382?v=4?s=100" width="100px;" alt="Fantastik-Maman"/><br /><sub><b>Fantastik-Maman</b></sub></a><br /><a href="#translation-Fantastik-Maman" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.forresto.com/"><img src="https://avatars.githubusercontent.com/u/395307?v=4?s=100" width="100px;" alt="Forrest O."/><br /><sub><b>Forrest O.</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=forresto" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fmatray"><img src="https://avatars.githubusercontent.com/u/8267716?v=4?s=100" width="100px;" alt="Frédéric"/><br /><sub><b>Frédéric</b></sub></a><br /><a href="#translation-fmatray" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/glennfmatthews/"><img src="https://avatars.githubusercontent.com/u/5603551?v=4?s=100" width="100px;" alt="Glenn Matthews"/><br /><sub><b>Glenn Matthews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=glennmatthews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://greg.technology/"><img src="https://avatars.githubusercontent.com/u/1017304?v=4?s=100" width="100px;" alt="Greg Sadetsky"/><br /><sub><b>Greg Sadetsky</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=gregsadetsky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://kirby.zone"><img src="https://avatars.githubusercontent.com/u/75245963?v=4?s=100" width="100px;" alt="Igor Couto"/><br /><sub><b>Igor Couto</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Aiocouto" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=eltociear" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Irapeke"><img src="https://avatars.githubusercontent.com/u/39604334?v=4?s=100" width="100px;" alt="Irapeke"/><br /><sub><b>Irapeke</b></sub></a><br /><a href="#translation-Irapeke" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsawo"><img src="https://avatars.githubusercontent.com/u/1294706?v=4?s=100" width="100px;" alt="Jacek Sawoszczuk"/><br /><sub><b>Jacek Sawoszczuk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jsawo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgfichte"><img src="https://avatars.githubusercontent.com/u/1787162?v=4?s=100" width="100px;" alt="Jason Williams"/><br /><sub><b>Jason Williams</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jgfichte" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jejacks0n"><img src="https://avatars.githubusercontent.com/u/13765?v=4?s=100" width="100px;" alt="Jeremy Jackson"/><br /><sub><b>Jeremy Jackson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jejacks0n" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://jeroenhoek.nl"><img src="https://avatars.githubusercontent.com/u/683699?v=4?s=100" width="100px;" alt="Jeroen Hoek"/><br /><sub><b>Jeroen Hoek</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jdhoek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joeschofield0"><img src="https://avatars.githubusercontent.com/u/47668691?v=4?s=100" width="100px;" alt="Joe Schofield"/><br /><sub><b>Joe Schofield</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joeschofield0" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joebidido"><img src="https://avatars.githubusercontent.com/u/39796210?v=4?s=100" width="100px;" alt="Joebidido"/><br /><sub><b>Joebidido</b></sub></a><br /><a href="#translation-Joebidido" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://joost.at/"><img src="https://avatars.githubusercontent.com/u/1708494?v=4?s=100" width="100px;" alt="Joost De Cock"/><br /><sub><b>Joost De Cock</b></sub></a><br /><a href="#maintenance-joostdecock" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joshessman"><img src="https://avatars.githubusercontent.com/u/9941074?v=4?s=100" width="100px;" alt="Josh Essman"/><br /><sub><b>Josh Essman</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=joshessman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.earth.li/~kake/"><img src="https://avatars.githubusercontent.com/u/1956810?v=4?s=100" width="100px;" alt="Kake"/><br /><sub><b>Kake</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=KakeLP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/kapunahele"><img src="https://avatars.githubusercontent.com/u/4116963?v=4?s=100" width="100px;" alt="Kapunahele Wong"/><br /><sub><b>Kapunahele Wong</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kapunahelewong" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tangerineshark"><img src="https://avatars.githubusercontent.com/u/70777269?v=4?s=100" width="100px;" alt="Karen"/><br /><sub><b>Karen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=tangerineshark" title="Documentation">📖</a> <a href="#eventOrganizing-tangerineshark" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mcgnly"><img src="https://avatars.githubusercontent.com/u/5653631?v=4?s=100" width="100px;" alt="Katie McGinley"/><br /><sub><b>Katie McGinley</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=mcgnly" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.kieranklaassen.com/"><img src="https://avatars.githubusercontent.com/u/209089?v=4?s=100" width="100px;" alt="Kieran Klaassen"/><br /><sub><b>Kieran Klaassen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kieranklaassen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kittycatou"><img src="https://avatars.githubusercontent.com/u/48165583?v=4?s=100" width="100px;" alt="Kittycatou"/><br /><sub><b>Kittycatou</b></sub></a><br /><a href="#translation-Kittycatou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.krishoward.org/"><img src="https://avatars.githubusercontent.com/u/5946286?v=4?s=100" width="100px;" alt="Kris"/><br /><sub><b>Kris</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=web-goddess" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kristinruben"><img src="https://avatars.githubusercontent.com/u/17237479?v=4?s=100" width="100px;" alt="Kristin Ruben"/><br /><sub><b>Kristin Ruben</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=kristinruben" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Loudepeuter"><img src="https://avatars.githubusercontent.com/u/38081954?v=4?s=100" width="100px;" alt="Loudepeuter"/><br /><sub><b>Loudepeuter</b></sub></a><br /><a href="#translation-Loudepeuter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lucibytes"><img src="https://avatars.githubusercontent.com/u/77203781?v=4?s=100" width="100px;" alt="Lucian"/><br /><sub><b>Lucian</b></sub></a><br /><a href="#eventOrganizing-lucibytes" title="Event Organizing">📋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/luizfzs"><img src="https://avatars.githubusercontent.com/u/6039675?v=4?s=100" width="100px;" alt="Luiz Saggioro"/><br /><sub><b>Luiz Saggioro</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=luizfzs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MA-TATAS"><img src="https://avatars.githubusercontent.com/u/125549564?v=4?s=100" width="100px;" alt="MA-TATAS"/><br /><sub><b>MA-TATAS</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=MA-TATAS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/manufakturedelweiss"><img src="https://avatars.githubusercontent.com/u/38063391?v=4?s=100" width="100px;" alt="Marcus"/><br /><sub><b>Marcus</b></sub></a><br /><a href="#translation-manufakturedelweiss" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martintribo"><img src="https://avatars.githubusercontent.com/u/1613442?v=4?s=100" width="100px;" alt="Martin Tribo"/><br /><sub><b>Martin Tribo</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=martintribo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nadege"><img src="https://avatars.githubusercontent.com/u/3792171?v=4?s=100" width="100px;" alt="Nadege Michel"/><br /><sub><b>Nadege Michel</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Tests">⚠️</a> <a href="https://github.com/freesewing/freesewing/commits?author=nadege" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nataliasayang"><img src="https://avatars.githubusercontent.com/u/48160791?v=4?s=100" width="100px;" alt="Natalia"/><br /><sub><b>Natalia</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nataliasayang" title="Code">💻</a> <a href="#design-nataliasayang" title="Design">🎨</a> <a href="#blog-nataliasayang" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://yergler.net/"><img src="https://avatars.githubusercontent.com/u/510875?v=4?s=100" width="100px;" alt="Nathan Yergler"/><br /><sub><b>Nathan Yergler</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nyergler" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nicholasdower"><img src="https://avatars.githubusercontent.com/u/9117775?v=4?s=100" width="100px;" alt="Nick Dower"/><br /><sub><b>Nick Dower</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=nicholasdower" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/issues?q=author%3Anicholasdower" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nchilada"><img src="https://avatars.githubusercontent.com/u/692925?v=4?s=100" width="100px;" alt="Nikhil Chelliah"/><br /><sub><b>Nikhil Chelliah</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=nchilada" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OysteinHoiby"><img src="https://avatars.githubusercontent.com/u/49735055?v=4?s=100" width="100px;" alt="OysteinHoiby"/><br /><sub><b>OysteinHoiby</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=OysteinHoiby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pat.forringer.com/"><img src="https://avatars.githubusercontent.com/u/136456?v=4?s=100" width="100px;" alt="Patrick Forringer"/><br /><sub><b>Patrick Forringer</b></sub></a><br /><a href="#plugin-destos" title="Plugin/utility libraries">🔌</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://pd75.github.io/"><img src="https://avatars.githubusercontent.com/u/10294795?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=PD75" title="Documentation">📖</a> <a href="#blog-PD75" title="Blogposts">📝</a> <a href="#translation-PD75" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phillipthelen"><img src="https://avatars.githubusercontent.com/u/298062?v=4?s=100" width="100px;" alt="Phillip Thelen"/><br /><sub><b>Phillip Thelen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=phillipthelen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixieish"><img src="https://avatars.githubusercontent.com/u/32991415?v=4?s=100" width="100px;" alt="Pixieish"/><br /><sub><b>Pixieish</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Pixieish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.uza.be/persoon/prof-dr-sorcha-ni-dhubhghaill"><img src="https://avatars.githubusercontent.com/u/30624634?v=4?s=100" width="100px;" alt="Prof. dr. Sorcha Ní Dhubhghaill"/><br /><sub><b>Prof. dr. Sorcha Ní Dhubhghaill</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sorchanidhubhghaill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QuentinFelix"><img src="https://avatars.githubusercontent.com/u/5288091?v=4?s=100" width="100px;" alt="Quentin FELIX"/><br /><sub><b>Quentin FELIX</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=QuentinFelix" title="Code">💻</a> <a href="#design-QuentinFelix" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RikHekker"><img src="https://avatars.githubusercontent.com/u/31843274?v=4?s=100" width="100px;" alt="Rik Hekker"/><br /><sub><b>Rik Hekker</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ARikHekker" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://resume.livingston-gray.com/faq.html"><img src="https://avatars.githubusercontent.com/u/6462?v=4?s=100" width="100px;" alt="Sam Livingston-Gray"/><br /><sub><b>Sam Livingston-Gray</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=geeksam" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sannek"><img src="https://avatars.githubusercontent.com/u/17491062?v=4?s=100" width="100px;" alt="Sanne"/><br /><sub><b>Sanne</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=sannek" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyrannogina"><img src="https://avatars.githubusercontent.com/u/19556565?v=4?s=100" width="100px;" alt="Sara Latorre"/><br /><sub><b>Sara Latorre</b></sub></a><br /><a href="#translation-Tyrannogina" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SeaZeeZee"><img src="https://avatars.githubusercontent.com/u/86711383?v=4?s=100" width="100px;" alt="SeaZeeZee"/><br /><sub><b>SeaZeeZee</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=SeaZeeZee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SimonbJohnson"><img src="https://avatars.githubusercontent.com/u/2110742?v=4?s=100" width="100px;" alt="SimonbJohnson"/><br /><sub><b>SimonbJohnson</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3ASimonbJohnson" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SirCharlotte"><img src="https://avatars.githubusercontent.com/u/63847870?v=4?s=100" width="100px;" alt="SirCharlotte"/><br /><sub><b>SirCharlotte</b></sub></a><br /><a href="#translation-SirCharlotte" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.instagram.com/celine_mge/"><img src="https://avatars.githubusercontent.com/u/57619777?v=4?s=100" width="100px;" alt="Slylele"/><br /><sub><b>Slylele</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=Slylele" title="Documentation">📖</a> <a href="#translation-Slylele" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Soazillon"><img src="https://avatars.githubusercontent.com/u/40845940?v=4?s=100" width="100px;" alt="Soazillon"/><br /><sub><b>Soazillon</b></sub></a><br /><a href="#translation-Soazillon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SoneaTheBest"><img src="https://avatars.githubusercontent.com/u/64635425?v=4?s=100" width="100px;" alt="SoneaTheBest"/><br /><sub><b>SoneaTheBest</b></sub></a><br /><a href="#translation-SoneaTheBest" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://metafly.info/"><img src="https://avatars.githubusercontent.com/u/961256?v=4?s=100" width="100px;" alt="Stefan Sydow"/><br /><sub><b>Stefan Sydow</b></sub></a><br /><a href="#translation-stsydow" title="Translation">🌍</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Documentation">📖</a> <a href="https://github.com/freesewing/freesewing/commits?author=stsydow" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TriploidTree"><img src="https://avatars.githubusercontent.com/u/4170521?v=4?s=100" width="100px;" alt="Tríona"/><br /><sub><b>Tríona</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=TriploidTree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/theUnmutual"><img src="https://avatars.githubusercontent.com/u/22374635?v=4?s=100" width="100px;" alt="Unmutual"/><br /><sub><b>Unmutual</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=theUnmutual" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woutervdub"><img src="https://avatars.githubusercontent.com/u/24414629?v=4?s=100" width="100px;" alt="Wouter van Wageningen"/><br /><sub><b>Wouter van Wageningen</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woutervdub" title="Code">💻</a> <a href="#design-woutervdub" title="Design">🎨</a> <a href="#tool-woutervdub" title="Tools">🔧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amysews"><img src="https://avatars.githubusercontent.com/u/25280778?v=4?s=100" width="100px;" alt="amysews"/><br /><sub><b>amysews</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=amysews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anna-puk"><img src="https://avatars.githubusercontent.com/u/100537439?v=4?s=100" width="100px;" alt="anna-puk"/><br /><sub><b>anna-puk</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=anna-puk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/beautifulsummermoon"><img src="https://avatars.githubusercontent.com/u/40396388?v=4?s=100" width="100px;" alt="beautifulsummermoon"/><br /><sub><b>beautifulsummermoon</b></sub></a><br /><a href="#translation-beautifulsummermoon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/berce"><img src="https://avatars.githubusercontent.com/u/10439709?v=4?s=100" width="100px;" alt="berce"/><br /><sub><b>berce</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=berce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/biou"><img src="https://avatars.githubusercontent.com/u/1340376?v=4?s=100" width="100px;" alt="biou"/><br /><sub><b>biou</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=biou" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgeorgethe3rd"><img src="https://avatars.githubusercontent.com/u/16866285?v=4?s=100" width="100px;" alt="bobgeorgethe3rd"/><br /><sub><b>bobgeorgethe3rd</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=bobgeorgethe3rd" title="Documentation">📖</a> <a href="#design-bobgeorgethe3rd" title="Design">🎨</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brmlyklr"><img src="https://avatars.githubusercontent.com/u/22308713?v=4?s=100" width="100px;" alt="brmlyklr"/><br /><sub><b>brmlyklr</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=brmlyklr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.chrisbarrett.fr"><img src="https://avatars.githubusercontent.com/u/2373249?v=4?s=100" width="100px;" alt="chri5b"/><br /><sub><b>chri5b</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=chri5b" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dingcycle"><img src="https://avatars.githubusercontent.com/u/1681985?v=4?s=100" width="100px;" alt="dingcycle"/><br /><sub><b>dingcycle</b></sub></a><br /><a href="#translation-dingcycle" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drowned-in-books"><img src="https://avatars.githubusercontent.com/u/100040772?v=4?s=100" width="100px;" alt="drowned-in-books"/><br /><sub><b>drowned-in-books</b></sub></a><br /><a href="#question-drowned-in-books" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/econo202"><img src="https://avatars.githubusercontent.com/u/34138153?v=4?s=100" width="100px;" alt="econo202"/><br /><sub><b>econo202</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=econo202" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ericamattos"><img src="https://avatars.githubusercontent.com/u/4341417?v=4?s=100" width="100px;" alt="ericamattos"/><br /><sub><b>ericamattos</b></sub></a><br /><a href="#translation-ericamattos" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fightingrabbit"><img src="https://avatars.githubusercontent.com/u/25751445?v=4?s=100" width="100px;" alt="fightingrabbit"/><br /><sub><b>fightingrabbit</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=fightingrabbit" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DocSpencer77"><img src="https://avatars.githubusercontent.com/u/43393580?v=4?s=100" width="100px;" alt="gaylyndie"/><br /><sub><b>gaylyndie</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=DocSpencer77" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grimlokason"><img src="https://avatars.githubusercontent.com/u/5112238?v=4?s=100" width="100px;" alt="grimlokason"/><br /><sub><b>grimlokason</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=grimlokason" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://weblog.redisdead.net"><img src="https://avatars.githubusercontent.com/u/6494414?v=4?s=100" width="100px;" alt="hellgy"/><br /><sub><b>hellgy</b></sub></a><br /><a href="#design-hellgy" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackseye"><img src="https://avatars.githubusercontent.com/u/27834526?v=4?s=100" width="100px;" alt="jackseye"/><br /><sub><b>jackseye</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=jackseye" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marckiesel"><img src="https://avatars.githubusercontent.com/u/39653780?v=4?s=100" width="100px;" alt="marckiesel"/><br /><sub><b>marckiesel</b></sub></a><br /><a href="#translation-marckiesel" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marpants"><img src="https://avatars.githubusercontent.com/u/61366665?v=4?s=100" width="100px;" alt="marpants"/><br /><sub><b>marpants</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=marpants" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tech.lgbt/@mergerg"><img src="https://avatars.githubusercontent.com/u/64447714?v=4?s=100" width="100px;" alt="mergerg"/><br /><sub><b>mergerg</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=raphaelsiz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mesil"><img src="https://avatars.githubusercontent.com/u/14284175?v=4?s=100" width="100px;" alt="mesil"/><br /><sub><b>mesil</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/issues?q=author%3Amesil" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/starfetch"><img src="https://avatars.githubusercontent.com/u/80041179?v=4?s=100" width="100px;" alt="starfetch"/><br /><sub><b>starfetch</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Code">💻</a> <a href="https://github.com/freesewing/freesewing/commits?author=starfetch" title="Documentation">📖</a> <a href="#translation-starfetch" title="Translation">🌍</a> <a href="#design-starfetch" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timorl"><img src="https://avatars.githubusercontent.com/u/4363804?v=4?s=100" width="100px;" alt="timorl"/><br /><sub><b>timorl</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=timorl" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ttimearl"><img src="https://avatars.githubusercontent.com/u/77916590?v=4?s=100" width="100px;" alt="ttimearl"/><br /><sub><b>ttimearl</b></sub></a><br /><a href="#content-ttimearl" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisgloom"><img src="https://avatars.githubusercontent.com/u/15905991?v=4?s=100" width="100px;" alt="tuesgloomsday"/><br /><sub><b>tuesgloomsday</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=chrisgloom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valadaptive"><img src="https://avatars.githubusercontent.com/u/79560998?v=4?s=100" width="100px;" alt="valadaptive"/><br /><sub><b>valadaptive</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=valadaptive" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viocky"><img src="https://avatars.githubusercontent.com/u/39279173?v=4?s=100" width="100px;" alt="viocky"/><br /><sub><b>viocky</b></sub></a><br /><a href="#translation-viocky" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/woolishboy"><img src="https://avatars.githubusercontent.com/u/57816321?v=4?s=100" width="100px;" alt="woolishboy"/><br /><sub><b>woolishboy</b></sub></a><br /><a href="https://github.com/freesewing/freesewing/commits?author=woolishboy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cloutiy"><img src="https://avatars.githubusercontent.com/u/8433147?v=4?s=100" width="100px;" alt="yc"/><br /><sub><b>yc</b></sub></a><br /><a href="#translation-cloutiy" title="Translation">🌍</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).

View file

@ -1,4 +1,4 @@
// This file is auto-generated | All changes you make will be overwritten.
export const name = '@freesewing/bee'
export const version = '3.0.0-alpha.9'
export const version = '3.0.0'
export const data = { name, version }

120
designs/bee/i18n/de.json Normal file
View file

@ -0,0 +1,120 @@
{
"t": "Bee, das Bikini-Oberteil",
"d": "Bee ist ein Bikini-Oberteil",
"p": {
"bandTie": "Band Tie",
"cup": "Cup",
"neckTie": "Neck Tie"
},
"s": {},
"o": {
"chestEase": {
"t": "Brustzugabe",
"d": "Kontrolliert die Brustzugabe des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"waistEase": {
"t": "Taillenzugabe",
"d": "Kontrolliert die Taillenzugabe des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"bustSpanEase": {
"t": "Zugabe im Abstand der Brustpunkte",
"d": "Kontrolliert die Zugabe des Abstandes der Brustpunkte des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"topDepth": {
"t": "Obere Tiefe",
"d": "Kontrolliert, wie weit sich der Bikini-Cup nach oben erstreckt"
},
"bottomCupDepth": {
"t": "Untere Tiefe",
"d": "Kontrolliert, wie weit sich der Bikini-Cup nach unten erstreckt"
},
"sideDepth": {
"t": "Seitliche Tiefe",
"d": "Kontrolliert, wie weit sich der Bikini-Cup zur Seite erstreckt"
},
"sideCurve": {
"t": "Seitliche Kurve",
"d": "Kontrolliert die Krümmung der Seite des Bikini-Cups"
},
"frontCurve": {
"t": "Vordere Kurve",
"d": "Kontrolliert die Krümmung der Vorderseite des Bikini-Cups"
},
"bellaGuide": {
"t": "Bella anzeigen",
"d": "Zeigt die Umrisse des Bella-Grundschnittes an, auf dem Bee basiert"
},
"ties": {
"t": "Bänder",
"d": "Sollen Bänder hinzugefügt werden, ja oder nein"
},
"bandTieWidth": {
"t": "Breite des Brustbandes",
"d": "Kontrolliert die Breite des Bandes um deinen Brustkorb"
},
"bandTieLength": {
"t": "Länge des Brustbandes",
"d": "Kontrolliert die Länge des Bandes um deinen Brustkorb"
},
"bandTieEnds": {
"t": "Enden des Brustbandes",
"d": "Möchtest du gerade oder spitze Enden des Brustbandes?"
},
"bandTieColours": {
"t": "Farben des Brustbandes",
"d": "Möchtest du ein- oder mehrfarbige Brustbänder?"
},
"neckTieWidth": {
"t": "Breite des Nackenträgers",
"d": "Steuert die Breite des Nackenträgers"
},
"neckTieLength": {
"t": "Länge des Nackenträgers",
"d": "Steuert die Länge des Nackenträgers"
},
"neckTieEnds": {
"t": "Enden des Nackenträgers",
"d": "Möchtest du gerade oder spitze Enden des Nackenträgers?"
},
"neckTieColours": {
"t": "Farben des Nackenträgers",
"d": "Möchtest du ein- oder mehrfarbige Nackenträger?"
},
"crossBackTies": {
"t": "Gekreuzte Rückenträger",
"d": "Möchtest du die Version von Bee mit gekreuzten Rückenträgern?"
},
"bandLength": {
"t": "Länge der gekreuzten Rückenträger",
"d": "Kontrolliert die Länge Brustbandes für die Variante von Bee mit gekreuzten Rückenträgern"
},
"backDartHeight": {
"t": "Höhe der Rückenabnäher (Bella)",
"d": "Kontrolliert die Höhe der Rückenabnäher des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"armholeDepth": {
"t": "Tiefen des Armloches (Bella)",
"d": "Kontrolliert die Tiefe des Armloches des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"frontArmholePitchDepth": {
"t": "Tiefe des vorderen Armlochdrehpunktes (Bella)",
"d": "Kontrolliert die Tiefe des vorderen Armlochdrehpunktes des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"frontShoulderWidth": {
"t": "Vordere Schulterbreite (Bella)",
"d": "Kontrolliert die vordere Schulterbreite des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"fullChestEaseReduction": {
"t": "Full chest reduction (Bella)",
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
},
"highBustWidth": {
"t": "Hohe Brustweite (Bella)",
"d": "Kontrolliert die hohe Brustbreite des zugrunde liegenden Grundschnittes \"Bella\" auf welchem Bee basiert"
},
"shoulderToShoulderEase": {
"t": "Shoulder to Shoulder ease (Bella)",
"d": "Controls the shoulder to shoulder ease in the underlying Bella block Bee is based on"
}
}
}

178
designs/bee/i18n/en.json Normal file
View file

@ -0,0 +1,178 @@
{
"t": "Bee bikini top",
"d": "Bee is a bikini top",
"p": {
"bandTie": "Band Tie",
"cup": "Cup",
"neckTie": "Neck Tie"
},
"s": {
"casingStitchingLine": "Sew down casing here",
"cutBandTie.t": "The band ties are not shown",
"cutBandTie.d": "The **band ties** are {{{ width }}} wide and {{{ length }}} long.",
"cutNeckTie.t": "The neck ties are not shown",
"cutNeckTie.d": "The **neck ties** are {{{ width }}} wide and {{{ length }}} long."
},
"o": {
"chestEase": {
"t": "Chest ease",
"d": "Controls the chest ease in the underlying Bella block Bee is based on"
},
"waistEase": {
"t": "Waist ease",
"d": "Controls the waist ease in the underlying Bella block Bee is based on"
},
"bustSpanEase": {
"t": "Bust span ease",
"d": "Controls the bust span ease in the underlying Bella block Bee is based on"
},
"topDepth": {
"t": "Top Depth",
"d": "Controls how far the bikini cup extends upwards"
},
"bottomCupDepth": {
"t": "Bottom depth",
"d": "Controls how far the bikini cup extends downwards"
},
"sideDepth": {
"t": "Side depth",
"d": "Controls how far the bikini cup extends towards the side"
},
"sideCurve": {
"t": "Side curve",
"d": "Controls the curvature of the side of the bikini cup"
},
"frontCurve": {
"t": "Front curve",
"d": "Controls the curvature of the front of the bikini cup"
},
"bellaGuide": {
"t": "Show Bella outline",
"d": "Do you want the pattern to show the outline of the Bella block Bee is based on?"
},
"bellaGuideYes": {
"t": "Show Bella",
"d": "Shows the outline of the Bella block"
},
"bellaGuideNo": {
"t": "Do not show Bella",
"d": "Only shows the final Bee pattern"
},
"ties": {
"t": "Ties",
"d": "Whether to includes ties on the pattern"
},
"tiesYes": {
"t": "With ties",
"d": "Draft a pattern including ties"
},
"tiesNo": {
"t": "Without ties",
"d": "Draft a pattern without ties"
},
"bandTieWidth": {
"t": "Band (chest) tie width",
"d": "Controls the width of the ties around your chest"
},
"bandTieLength": {
"t": "Band (chest) tie length",
"d": "Controls the length of the ties around your chest"
},
"pointedTieEnds": {
"t": "Pointed tie ends",
"d": "Enable this options if you prefer tie ends to be pointy, rarther than straight"
},
"pointedTieEndsYes": {
"t": "Pointy ends",
"d": "Make the tie ends pointy"
},
"pointedTieEndsNo": {
"t": "Straight ends",
"d": "Make the tie ends straight"
},
"duoColorTies": {
"t": "Duo-colored ties",
"d": "Enable this option to generate a pattern for bands using two colors instead of one"
},
"duoColorTiesYes": {
"t": "Two colors",
"d": "Use two colors for the ties"
},
"duoColorTiesNo": {
"t": "Single color",
"d": "Use a single color for the ties"
},
"neckTieWidth": {
"t": "Neck tie width",
"d": "Controls the width of the ties around your chest"
},
"neckTieLength": {
"t": "Neck tie length",
"d": "Controls the length of the ties around your chest"
},
"neckTieEnds": {
"t": "Neck tie ends",
"d": "Whether you like straight or pointy ends on the ties around your chest"
},
"neckTieColours": {
"t": "Neck tie colours",
"d": "Whether you want single color ties around your chest, or dual-coloured ones"
},
"crossBackTies": {
"t": "Cross back ties",
"d": "Whether you'd like to use the cross back tie variation of Bee"
},
"crossBackTiesYes": {
"t": "Use cross back ties",
"d": "Generate a pattern for ties that cross your back"
},
"crossBackTiesNo": {
"t": "Use regular ties",
"d": "Generate a pattern for the default ties"
},
"bandLength": {
"t": "Band Length (Cross back ties)",
"d": "Controls the length of the band around your chest for the cross back ties variation of Bee"
},
"backDartHeight": {
"t": "Back dart height (Bella)",
"d": "Controls the back dart height in the underlying Bella block Bee is based on"
},
"armholeDepth": {
"t": "Armhole depth (Bella)",
"d": "Controls the armhole depth in the underlying Bella block Bee is based on"
},
"frontArmholePitchDepth": {
"t": "Front armhole pitch depth (Bella)",
"d": "Controls the front armhole pitch depth in the underlying Bella block Bee is based on"
},
"frontShoulderWidth": {
"t": "Front shoulder width (Bella)",
"d": "Controls the front shoulder width in the underlying Bella block Bee is based on"
},
"fullChestEaseReduction": {
"t": "Full chest reduction (Bella)",
"d": "Controls the full chest reduction in the underlying Bella block Bee is based on"
},
"highBustWidth": {
"t": "High bust width (Bella)",
"d": "Controls the high bust width in the underlying Bella block Bee is based on"
},
"shoulderToShoulderEase": {
"t": "Shoulder to Shoulder ease (Bella)",
"d": "Controls the shoulder to shoulder ease in the underlying Bella block Bee is based on"
},
"reversible": {
"t": "Reversible",
"d": "Whether you want to make a fully reversible Bee or not"
},
"reversibleYes": {
"t": "Make it reversible",
"d": "Create a Bee that you can wear with both sides out, posssibly ussing different fabrics"
},
"reversibleNo": {
"t": "Do not make it reversible",
"d": "Create a Bee with where only one side is intended to be worn on the outside"
}
}
}

Some files were not shown because too many files have changed in this diff Show more