1
0
Fork 0

wip: Bunch of changes for v4

From the top of my head (but I'll write this up later):

- We keep the info about the designs in the design
- We use a new about.json file for this
- The auto-generated data.mjs file is no more
- Linedrawings we use in the design picker use the front
- Linedrawings should respect square aspect ration
- Migrated components to use the 'tw-' prefic for tailwind CSS classes
  to avoid conflicts with docusaurus styles
This commit is contained in:
joostdecock 2024-12-26 18:33:49 +01:00
parent 6b8eea2724
commit c8808695e5
255 changed files with 3038 additions and 2304 deletions

View file

@ -77,8 +77,10 @@ packageJson:
"./components/Account": "./components/Account/index.mjs"
"./components/Breadcrumbs": "./components/Breadcrumbs/index.mjs"
"./components/Button": "./components/Button/index.mjs"
"./components/Collection": "./components/Collection/index.mjs"
"./components/Control": "./components/Control/index.mjs"
"./components/CopyToClipboard": "./components/CopyToClipboard/index.mjs"
"./components/Design": "./components/Design/index.mjs"
"./components/Docusaurus": "./components/Docusaurus/index.mjs"
"./components/Editor": "./components/Editor/index.mjs"
"./components/Highlight": "./components/Highlight/index.mjs"

View file

@ -4,8 +4,6 @@
"description": "A FreeSewing pattern for a A-shirt or tank top",
"design": "Joost De Cock",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"tops",
"underwear"
@ -13,8 +11,8 @@
"techniques": [
"hem",
"stretch",
"knitBinding",
"curvedSeam"
"knit-binding",
"curved-seam"
]
},
"albert": {
@ -22,15 +20,13 @@
"description": "A FreeSewing pattern for an apron",
"design": "Wouter Van Wageningen",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"accessories"
],
"techniques": [
"hem",
"knitBinding",
"curvedSeam",
"knit-binding",
"curved-seam",
"pocket"
]
},
@ -39,8 +35,6 @@
"description": "A FreeSewing pattern for a bikini top",
"design": "PrudenceRabbit",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops",
"swimwear"
@ -48,7 +42,7 @@
"techniques": [
"hem",
"stretch",
"curvedSeam",
"curved-seam",
"precision"
]
},
@ -60,8 +54,6 @@
"Joost De Cock"
],
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
@ -76,8 +68,6 @@
"description": "A FreeSewing pattern for a bow tie",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"accessories"
],
@ -91,16 +81,14 @@
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
],
"techniques": [
"hem",
"curvedSeam",
"setSleeve"
"curved-seam",
"set-sleeve"
]
},
"bibi": {
@ -108,16 +96,14 @@
"description": "A FreeSewing pattern for a knit top body block",
"design": "Jonathan Haas",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"hem",
"flatSleeve"
"flat-sleeve"
]
},
"bob": {
@ -125,15 +111,13 @@
"description": "A FreeSewing pattern for a bib",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"accessories",
"infants"
],
"techniques": [
"biasTape",
"curvedSeam",
"bias-tape",
"curved-seam",
"snap"
]
},
@ -142,8 +126,6 @@
"description": "A FreeSewing pattern for a basic body block for womenswear",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
@ -158,15 +140,13 @@
"description": "A FreeSewing pattern for a basic body block for menswear",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
],
"techniques": [
"block",
"flatSleeve"
"flat-sleeve"
]
},
"bruce": {
@ -174,8 +154,6 @@
"description": "A FreeSewing pattern for boxer briefs",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"underwear"
@ -183,7 +161,7 @@
"techniques": [
"stretch",
"hem",
"curvedSeam",
"curved-seam",
"elastic"
]
},
@ -195,8 +173,6 @@
"Joost De Cock"
],
"difficulty": 5,
"lab": true,
"org": true,
"tags": [
"tops",
"coats"
@ -204,12 +180,12 @@
"techniques": [
"hem",
"pocket",
"curvedSeam",
"curved-seam",
"precision",
"setSleeve",
"weltPocket",
"set-sleeve",
"welt-pocket",
"lining",
"princessSeam",
"princess-seam",
"interfacing",
"button"
]
@ -222,8 +198,6 @@
"Joost De Cock"
],
"difficulty": 5,
"lab": true,
"org": true,
"tags": [
"tops",
"coats"
@ -231,10 +205,10 @@
"techniques": [
"hem",
"pocket",
"curvedSeam",
"curved-seam",
"precision",
"setSleeve",
"weltPocket",
"set-sleeve",
"welt-pocket",
"lining",
"interfacing",
"button"
@ -248,8 +222,6 @@
"Joost De Cock"
],
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"tops",
"underwear"
@ -257,7 +229,7 @@
"techniques": [
"boning",
"precision",
"curvedSeam",
"curved-seam",
"interfacing"
]
},
@ -266,22 +238,20 @@
"description": "A FreeSewing pattern for chino trousers",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"weltPocket",
"curvedSeam",
"welt-pocket",
"curved-seam",
"interfacing",
"fly",
"zipper",
"button",
"dart",
"hem",
"seamPocket"
"seam-pocket"
]
},
"cornelius": {
@ -289,14 +259,12 @@
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"curvedSeam",
"curved-seam",
"fly",
"zipper",
"button",
@ -308,35 +276,29 @@
"description": "A FreeSewing pattern for a top with a draped neck",
"design": "Erica Alcusa Sáez",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"flatSleeve",
"curved-seam",
"flat-sleeve",
"hem"
]
},
"examples": {
"code": "Joost De Cock",
"description": "A FreeSewing pattern holding examples for our documentation",
"lab": false,
"org": false
"description": "A FreeSewing pattern holding examples for our documentation"
},
"florence": {
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a face mask",
"design": "Joost De Cock",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"accessories"
],
"techniques": [
"curvedSeam"
"curved-seam"
]
},
"florent": {
@ -347,14 +309,12 @@
"description": "A FreeSewing pattern for a flat cap",
"design": "Quentin Felix",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"accessories",
"hats"
],
"techniques": [
"curvedSeam"
"curved-seam"
]
},
"gozer": {
@ -362,8 +322,6 @@
"description": "A FreeSewing pattern for a ghost costume",
"design": "Wouter Van Wageningen",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"costumes"
],
@ -376,14 +334,12 @@
"description": "A FreeSewing pattern for a shark plush toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curvedSeam",
"curved-seam",
"dart"
]
},
@ -395,14 +351,12 @@
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
"design": "Erica Alcusa Sáez",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"accessories",
"hats"
],
"techniques": [
"curvedSeam",
"curved-seam",
"lining"
]
},
@ -414,14 +368,12 @@
"Wouter Van Wageningen"
],
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"accessories",
"bags"
],
"techniques": [
"curvedSeam",
"curved-seam",
"precision",
"lining",
"zipper"
@ -432,17 +384,15 @@
"description": "A FreeSewing pattern for a zip-up hoodie",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"pocket",
"zipper",
"ribbing",
"flatSleeve"
"flat-sleeve"
]
},
"hugo": {
@ -450,16 +400,14 @@
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"pocket",
"ribbing",
"raglanSleeve"
"raglan-sleeve"
]
},
"jaeger": {
@ -467,8 +415,6 @@
"description": "A FreeSewing pattern for a sport coat style jacket",
"design": "Joost De Cock",
"difficulty": 5,
"lab": true,
"org": true,
"tags": [
"tops",
"coats"
@ -476,10 +422,10 @@
"techniques": [
"hem",
"pocket",
"curvedSeam",
"curved-seam",
"precision",
"setSleeve",
"weltPocket",
"set-sleeve",
"welt-pocket",
"lining",
"interfacing",
"button"
@ -490,8 +436,6 @@
"description": "A FreeSewing pattern for a 1790s shift",
"design": "SeaZeeZee",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"tops",
"historical",
@ -503,24 +447,20 @@
},
"legend": {
"code": "Joost De Cock",
"description": "A FreeSewing pattern to document pattern notation",
"lab": false,
"org": false
"description": "A FreeSewing pattern to document pattern notation"
},
"lucy": {
"code": "SeaZeeZee",
"description": "A FreeSewing pattern for a historical tie-on pocket",
"design": "SeaZeeZee",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"accessories",
"historical",
"bags"
],
"techniques": [
"curvedSeam"
"curved-seam"
]
},
"lumina": {
@ -528,15 +468,13 @@
"description": "A FreeSewing pattern for leggings",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"stretch",
"curvedSeam",
"curved-seam",
"elastic"
]
},
@ -545,15 +483,13 @@
"description": "A FreeSewing pattern for leggings",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"stretch",
"curvedSeam",
"curved-seam",
"elastic"
]
},
@ -562,8 +498,6 @@
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
"design": "Rika Tamaike",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"tops",
"coats",
@ -578,8 +512,6 @@
"description": "A FreeSewing pattern for a bike messenger bag",
"design": "clegganator259",
"difficulty": 3,
"lab": true,
"org": false,
"tags": [
"accessories",
"bags"
@ -591,17 +523,15 @@
"description": "A FreeSewing pattern for a princess seam bodice block",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"tops"
],
"techniques": [
"block",
"curvedSeam",
"curved-seam",
"precision",
"princessSeam"
"princess-seam"
]
},
"octoplushy": {
@ -609,14 +539,12 @@
"description": "A FreeSewing pattern for an octopus plushy toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curvedSeam",
"curved-seam",
"precision"
]
},
@ -625,8 +553,6 @@
"description": "A FreeSewing pattern for one-piece garments",
"design": "Thrunic",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"swimwear",
"pajamas",
@ -634,7 +560,7 @@
],
"techniques": [
"hem",
"curvedSeam",
"curved-seam",
"stretch",
"lining",
"zipper",
@ -646,16 +572,14 @@
"description": "A FreeSewing pattern for overalls",
"design": "Thrunic",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"overalls",
"onePiece"
],
"techniques": [
"flatFelledSeam",
"flat-felled-seam",
"hem",
"curvedSeam",
"curved-seam",
"button",
"pocket"
]
@ -665,8 +589,6 @@
"description": "A FreeSewing pattern for a baby romper",
"design": "Wouter Van Wageningen",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [],
"techniques": []
},
@ -675,17 +597,15 @@
"description": "A FreeSewing pattern for summer pants",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"elastic",
"curvedSeam",
"curved-seam",
"pocket",
"weltPocket",
"welt-pocket",
"hem"
]
},
@ -694,30 +614,24 @@
"description": "A FreeSewing pattern for a pencil skirt",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"skirts"
],
"techniques": [
"hem",
"curvedSeam",
"curved-seam",
"precision",
"zipper"
]
},
"plugintest": {
"code": "Joost De Cock",
"description": "A FreeSewing pattern to test (y)our plugins",
"lab": true,
"org": false
"description": "A FreeSewing pattern to test (y)our plugins"
},
"rendertest": {
"code": "Joost De Cock",
"description": "A FreeSewing pattern to test (y)our render engine our CSS",
"lab": true,
"org": false
"description": "A FreeSewing pattern to test (y)our render engine our CSS"
},
"sandy": {
"code": [
@ -727,14 +641,12 @@
"description": "A FreeSewing pattern for a circle skirt",
"design": "Erica Alcusa Sáez",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"bottoms",
"skirts"
],
"techniques": [
"curvedSeam",
"curved-seam",
"button",
"hem"
]
@ -744,8 +656,6 @@
"description": "A FreeSewing pattern for a raglan shirt, perfect for swimshirts",
"design": "Thrunic",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"tops",
"swimwear"
@ -753,8 +663,8 @@
"techniques": [
"hem",
"stretch",
"curvedSeam",
"raglanSleeve"
"curved-seam",
"raglan-sleeve"
]
},
"shin": {
@ -762,8 +672,6 @@
"description": "A FreeSewing pattern for swim trunks",
"design": "Joost De Cock",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"bottoms",
"swimwear"
@ -771,7 +679,7 @@
"techniques": [
"hem",
"stretch",
"curvedSeam",
"curved-seam",
"elastic"
]
},
@ -780,8 +688,6 @@
"description": "A FreeSewing pattern for a button down shirt",
"design": "Joost De Cock",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"tops"
],
@ -789,9 +695,9 @@
"hem",
"button",
"interfacing",
"curvedSeam",
"flatFelledSeam",
"flatSleeve"
"curved-seam",
"flat-felled-seam",
"flat-sleeve"
]
},
"simone": {
@ -799,8 +705,6 @@
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
"design": "Joost De Cock",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"tops"
],
@ -808,9 +712,9 @@
"hem",
"button",
"interfacing",
"curvedSeam",
"flatFelledSeam",
"flatSleeve"
"curved-seam",
"flat-felled-seam",
"flat-sleeve"
]
},
"skully": {
@ -818,14 +722,12 @@
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curvedSeam",
"curved-seam",
"precision"
]
},
@ -834,14 +736,12 @@
"description": "A FreeSewing pattern for a straightforward sweater",
"design": "Joost De Cock",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"flatSleeve",
"curved-seam",
"flat-sleeve",
"ribbing"
]
},
@ -850,13 +750,11 @@
"description": "A FreeSewing pattern for a zero-waste top",
"design": "Joost De Cock",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam"
"curved-seam"
]
},
"teagan": {
@ -864,16 +762,14 @@
"description": "A FreeSewing pattern for a T-shirt",
"design": "Joost De Cock",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"hem",
"flatSleeve",
"knitBand"
"flat-sleeve",
"knit-band"
]
},
"tiberius": {
@ -881,8 +777,6 @@
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
"design": "Rika Tamaike",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"tops",
"historical"
@ -897,8 +791,6 @@
"Joost De Cock"
],
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"blocks",
"bottoms"
@ -910,8 +802,6 @@
"description": "A FreeSewing pattern for a tie",
"design": "Joost De Cock",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"accessories"
],
@ -925,13 +815,11 @@
"description": "A FreeSewing pattern for a fitted top with prince(ss) seams",
"design": "Natalia Sayang",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"precision"
]
},
@ -940,31 +828,27 @@
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
"design": "Joost De Cock",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"bottoms",
"underwear"
],
"techniques": [
"elastic",
"curvedSeam"
"curved-seam"
]
},
"umbra": {
"code": "Joost De Cock, Jonathan Haas",
"code": ["Joost De Cock", "Jonathan Haas"],
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
"design": "Joost De Cock, Jonathan Haas",
"design": ["Joost De Cock", "Jonathan Haas"],
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"bottoms",
"underwear"
],
"techniques": [
"elastic",
"curvedSeam"
"curved-seam"
]
},
"wahid": {
@ -972,17 +856,15 @@
"description": "A FreeSewing pattern for a classic fitted waistcoat",
"design": "Joost De Cock",
"difficulty": 4,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"curved-seam",
"hem",
"interfacing",
"lining",
"weltPocket",
"welt-pocket",
"button"
]
},
@ -991,8 +873,6 @@
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
"design": "Rika Tamaike",
"difficulty": 1,
"lab": true,
"org": true,
"tags": [
"bottoms",
"historical"
@ -1006,16 +886,14 @@
"description": "A FreeSewing pattern for wrap pants",
"design": "Wouter Van Wageningen",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"curvedSeam",
"curved-seam",
"hem",
"weltPocket"
"welt-pocket"
]
},
"yuri": {
@ -1023,31 +901,27 @@
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
"design": "Biou",
"difficulty": 3,
"lab": true,
"org": true,
"tags": [
"tops"
],
"techniques": [
"curvedSeam",
"flatSleeve",
"curved-seam",
"flat-sleeve",
"hem",
"button"
]
},
"lily": {
"code": "Anna Puk, Joost De Cock",
"code": ["Anna Puk", "Joost De Cock"],
"description": "A FreeSewing pattern for basic leggings",
"design": "Anna Puk",
"difficulty": 2,
"lab": true,
"org": true,
"tags": [
"bottoms"
],
"techniques": [
"elastic",
"curvedSeam",
"curved-seam",
"hem"
]
}

18
designs/aaron/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "aaron",
"code": "Joost De Cock",
"name": "Aaron A-shirt",
"description": "A FreeSewing pattern for a A-shirt or tank top",
"design": "Joost De Cock",
"difficulty": 2,
"tags": [
"tops",
"underwear"
],
"techniques": [
"hem",
"stretch",
"knit-binding",
"curved-seam"
]
}

View file

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

View file

@ -1,7 +1,7 @@
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 about from '../about.json' with { type: 'json' }
import { back } from './back.mjs'
import { front } from './front.mjs'
import { armBinding } from './arm-binding.mjs'
@ -9,7 +9,7 @@ import { neckBinding } from './neck-binding.mjs'
// Setup our new design
const Aaron = new Design({
data,
data: about,
parts: [back, front, armBinding, neckBinding],
})
@ -33,4 +33,4 @@ const i18n = mergeI18n([brianI18n, aaronI18n], {
})
// Named exports
export { back, front, Aaron, i18n }
export { back, front, Aaron, i18n, about }

17
designs/albert/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "albert",
"name": "Albert apron",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for an apron",
"design": "Wouter Van Wageningen",
"difficulty": 2,
"tags": [
"accessories"
],
"techniques": [
"hem",
"knit-binding",
"curved-seam",
"pocket"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { front } from './front.mjs'
import { pocket } from './pocket.mjs'
import { strap } from './strap.mjs'
@ -7,9 +7,9 @@ import { i18n } from '../i18n/index.mjs'
// Setup our new design
const Albert = new Design({
data,
data: about,
parts: [front, pocket, strap],
})
// Named exports
export { front, pocket, strap, Albert, i18n }
export { front, pocket, strap, Albert, i18n, about }

18
designs/bee/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "bee",
"name": "Bee bikini top",
"code": "bobgeorgethe3rd",
"description": "A FreeSewing pattern for a bikini top",
"design": "PrudenceRabbit",
"difficulty": 3,
"tags": [
"tops",
"swimwear"
],
"techniques": [
"hem",
"stretch",
"curved-seam",
"precision"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { cup } from './cup.mjs'
import { neckTie } from './neck-tie.mjs'
import { bandTie } from './band-tie.mjs'
@ -7,7 +7,7 @@ import { i18n as beeI18n } from '../i18n/index.mjs'
import { i18n as bellaI18n } from '@freesewing/bella'
const Bee = new Design({
data,
data: about,
parts: [cup, neckTie, bandTie],
})
@ -50,4 +50,4 @@ const i18n = mergeI18n([bellaI18n, beeI18n], {
o: { keep: i18nKeepOptions },
})
export { cup, neckTie, bandTie, Bee, i18n }
export { cup, neckTie, bandTie, Bee, i18n, about }

19
designs/bella/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "bella",
"name": "Bella body block",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a womenswear bodice block",
"design": [
"Bella Incognito",
"Joost De Cock"
],
"difficulty": 3,
"tags": [
"blocks",
"tops"
],
"techniques": [
"dart",
"block"
]
}

View file

@ -1,12 +1,12 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { back } from './back.mjs'
import { frontSideDart } from './front-side-dart.mjs'
import { i18n } from '../i18n/index.mjs'
const Bella = new Design({
data,
data: about,
parts: [back, frontSideDart],
})
export { back, frontSideDart, Bella, i18n }
export { back, frontSideDart, Bella, i18n, about }

View file

@ -0,0 +1,15 @@
{
"id": "benjamin",
"name": "Benjamin bow tie",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a bow tie",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"accessories"
],
"techniques": [
"precision",
"interfacing"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { bow1 } from './bow1.mjs'
import { bow2 } from './bow2.mjs'
import { bow3 } from './bow3.mjs'
@ -8,9 +8,9 @@ import { i18n } from '../i18n/index.mjs'
// Setup our new design
const Benjamin = new Design({
data,
data: about,
parts: [bow1, bow2, bow3, collarBand],
})
// Named exports
export { bow1, bow2, bow3, collarBand, Benjamin, i18n }
export { bow1, bow2, bow3, collarBand, Benjamin, i18n, about }

17
designs/bent/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "bent",
"name": "Bent body block",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"blocks",
"tops"
],
"techniques": [
"hem",
"curved-seam",
"set-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { front, back, i18n as brianI18n } from '@freesewing/brian'
import { sleeve } from './sleeve.mjs'
import { topSleeve } from './topsleeve.mjs'
@ -8,7 +8,7 @@ import { i18n as bentI18n } from '../i18n/index.mjs'
// Create new design
const Bent = new Design({
data,
data: about,
parts: [front, back, sleeve, topSleeve, underSleeve],
})
@ -28,4 +28,4 @@ const i18n = mergeI18n([brianI18n, bentI18n], {
})
// Named exports
export { front, back, sleeve, topSleeve, underSleeve, Bent, i18n }
export { front, back, sleeve, topSleeve, underSleeve, Bent, i18n, about }

17
designs/bibi/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "bibi",
"name": "Bibi body block",
"code": "Jonathan Haas",
"description": "A FreeSewing pattern for a knit top body block",
"design": "Jonathan Haas",
"difficulty": 2,
"tags": [
"blocks",
"tops"
],
"techniques": [
"curved-seam",
"hem",
"flat-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as bibiI18n } from '../i18n/index.mjs'
import { front } from './front.mjs'
@ -26,7 +26,7 @@ import {
// Setup our new design
const Bibi = new Design({
data,
data: about,
parts: [waistband, cuff, armholeBinding, neckBinding, sleeve, back, front],
})
@ -58,4 +58,5 @@ export {
draftKnitBinding,
Bibi,
i18n,
about,
}

17
designs/bob/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "bob",
"name": "Bob the bib",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a bib",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"accessories",
"infants"
],
"techniques": [
"bias-tape",
"curved-seam",
"snap"
]
}

View file

@ -1,13 +1,13 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { bib } from './bib.mjs'
import { i18n } from '../i18n/index.mjs'
// Setup our new design
const Bob = new Design({
data,
data: about,
parts: [bib],
})
//Named exports
export { bib, Bob, i18n }
export { bib, Bob, i18n, about }

View file

@ -0,0 +1,16 @@
{
"id": "breanna",
"name": "Breanna body block",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a basic body block for womenswear",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"blocks",
"tops"
],
"techniques": [
"block",
"dart"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { back } from './back.mjs'
import { front } from './front.mjs'
import { sleeve } from './sleeve.mjs'
@ -10,9 +10,9 @@ import { i18n } from '../i18n/index.mjs'
// Create design
const Breanna = new Design({
data,
data: about,
parts: [back, front, sleeve, base, frontBase, sleevecap],
})
// Named exports
export { back, front, sleeve, base, frontBase, sleevecap, Breanna, i18n }
export { back, front, sleeve, base, frontBase, sleevecap, Breanna, i18n, about }

16
designs/brian/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "brian",
"name": "Brian body block",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a basic body block for menswear",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"blocks",
"tops"
],
"techniques": [
"block",
"flat-sleeve"
]
}

View file

@ -1,6 +1,6 @@
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { back } from './back.mjs'
import { front } from './front.mjs'
import { sleeve } from './sleeve.mjs'
@ -10,9 +10,9 @@ import { sleevecap } from './sleevecap.mjs'
// Setup our new design
const Brian = new Design({
data,
data: about,
parts: [back, front, sleeve],
})
// Named exports
export { back, front, sleeve, base, sleevecap, Brian, i18n }
export { back, front, sleeve, base, sleevecap, Brian, i18n, about }

18
designs/bruce/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "bruce",
"name": "Bruce boxer briefs",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for boxer briefs",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"bottoms",
"underwear"
],
"techniques": [
"stretch",
"hem",
"curved-seam",
"elastic"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { back } from './back.mjs'
import { side } from './side.mjs'
import { front } from './front.mjs'
@ -8,9 +8,9 @@ import { i18n } from '../i18n/index.mjs'
// Create design
const Bruce = new Design({
data,
data: about,
parts: [back, side, front, inset],
})
// Named exports
export { back, side, front, inset, Bruce, i18n }
export { back, side, front, inset, Bruce, i18n, about }

View file

@ -0,0 +1,27 @@
{
"id": "carlita",
"name": "Carlita coat",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
"design": [
"Anneke Caramin",
"Joost De Cock"
],
"difficulty": 5,
"tags": [
"tops",
"coats"
],
"techniques": [
"hem",
"pocket",
"curved-seam",
"precision",
"set-sleeve",
"welt-pocket",
"lining",
"princess-seam",
"interfacing",
"button"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { front } from './front.mjs'
import { side } from './side.mjs'
import { frontFacing } from './front-facing.mjs'
@ -28,7 +28,7 @@ import { i18n as carlitaI18n } from '../i18n/index.mjs'
// Create new design
const Carlita = new Design({
data,
data: about,
parts: [
front,
frontFacing,
@ -82,4 +82,5 @@ export {
innerPocketTab,
Carlita,
i18n,
about,
}

View file

@ -0,0 +1,26 @@
{
"id": "carlton",
"name": "Carlton coat",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
"design": [
"Anneke Caramin",
"Joost De Cock"
],
"difficulty": 5,
"tags": [
"tops",
"coats"
],
"techniques": [
"hem",
"pocket",
"curved-seam",
"precision",
"set-sleeve",
"welt-pocket",
"lining",
"interfacing",
"button"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n, Brian, sleevecap as brianSleevecap } from '@freesewing/brian'
import { i18n as carltonI18n } from '../i18n/index.mjs'
// Parts
@ -26,7 +26,7 @@ import { innerPocketTab } from './innerpockettab.mjs'
// Create design
const Carlton = new Design({
data,
data: about,
parts: [
front,
frontFacing,
@ -90,4 +90,5 @@ export {
innerPocketTab,
Carlton,
i18n,
about,
}

View file

@ -0,0 +1,21 @@
{
"id": "cathrin",
"name": "Cathrin corset",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a underbust corset / waist trainer",
"design": [
"Cathrin Åhlén",
"Joost De Cock"
],
"difficulty": 4,
"tags": [
"tops",
"underwear"
],
"techniques": [
"boning",
"precision",
"curved-seam",
"interfacing"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
//Parts
import { panel1 } from './panel1.mjs'
import { panel2 } from './panel2.mjs'
@ -15,9 +15,9 @@ import { i18n } from '../i18n/index.mjs'
// Create design
const Cathrin = new Design({
data,
data: about,
parts: [panel1, panel2, panel3, panel4, panel5, panel6],
})
// Named exports
export { base, panels, panel1, panel2, panel3, panel4, panel5, panel6, Cathrin, i18n }
export { base, panels, panel1, panel2, panel3, panel4, panel5, panel6, Cathrin, i18n, about }

View file

@ -0,0 +1,23 @@
{
"id": "charlie",
"name": "Charlie chinos",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for chino trousers",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"welt-pocket",
"curved-seam",
"interfacing",
"fly",
"zipper",
"button",
"dart",
"hem",
"seam-pocket"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as titanI18n } from '@freesewing/titan'
import { i18n as charlieI18n } from '../i18n/index.mjs'
// Parts
@ -19,7 +19,7 @@ import { beltLoops } from './beltloops.mjs'
// Create design
const Charlie = new Design({
data,
data: about,
parts: [
front,
back,
@ -57,4 +57,5 @@ export {
beltLoops,
Charlie,
i18n,
about,
}

View file

@ -0,0 +1,19 @@
{
"id": "cornelius",
"name": "Cornelius cycling breeches",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"curved-seam",
"fly",
"zipper",
"button",
"pocket"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { frontpoints } from './frontpoints.mjs'
import { front } from './front.mjs'
@ -15,7 +15,7 @@ import { i18n } from '../i18n/index.mjs'
// Create new design
const Cornelius = new Design({
data,
data: about,
parts: [front, back, legband, legbandKeystone, waistband, pocketFacing, pocket, zipperguard],
})
@ -32,4 +32,5 @@ export {
frontpoints,
Cornelius,
i18n,
about,
}

16
designs/diana/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "diana",
"name": "Diana draped top",
"code": "Erica Alcusa Sáez",
"description": "A FreeSewing pattern for a top with a draped neck",
"design": "Erica Alcusa Sáez",
"difficulty": 2,
"tags": [
"tops"
],
"techniques": [
"curved-seam",
"flat-sleeve",
"hem"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as dianaI18n } from '../i18n/index.mjs'
// Parts
@ -8,7 +8,7 @@ import { sleeve } from './sleeve.mjs'
// Create design
const Diana = new Design({
data,
data: about,
parts: [front, back, sleeve],
})
@ -16,4 +16,4 @@ const Diana = new Design({
const i18n = mergeI18n([brianI18n, dianaI18n])
// Named exports
export { front, back, sleeve, Diana, i18n }
export { front, back, sleeve, Diana, i18n, about }

View file

@ -1,6 +1,5 @@
import { Design } from '@freesewing/core'
import { gorePlugin } from '@freesewing/plugin-gore'
import { data } from '../data.mjs'
import { i18n } from '../i18n/index.mjs'
// Stacks
@ -19,7 +18,6 @@ import { settings_sa } from './settings.mjs'
// Setup our new design
const Examples = new Design({
data,
parts: [
// Stacks
stacks_top,

View file

@ -0,0 +1,14 @@
{
"id": "florence",
"name": "Florence face mask",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a face mask",
"design": "Joost De Cock",
"difficulty": 1,
"tags": [
"accessories"
],
"techniques": [
"curved-seam"
]
}

View file

@ -1,13 +1,13 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { mask } from './mask.mjs'
import { i18n } from '../i18n/index.mjs'
// Setup our new design
const Florence = new Design({
data,
data: about,
parts: [mask],
})
// Named exports
export { mask, Florence, i18n }
export { mask, Florence, i18n, about }

View file

@ -0,0 +1,18 @@
{
"id": "florent",
"name": "Florent flat cap",
"code": [
"Quentin Felix",
"Joost De Cock"
],
"description": "A FreeSewing pattern for a flat cap",
"design": "Quentin Felix",
"difficulty": 3,
"tags": [
"accessories",
"hats"
],
"techniques": [
"curved-seam"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
import { top } from './top.mjs'
@ -10,9 +10,9 @@ import { brimInterfacing } from './briminterfacing.mjs'
// Create new design
const Florent = new Design({
data,
data: about,
parts: [top, side, brimBottom, brimTop, brimInterfacing],
})
// Named exports
export { top, side, brimBottom, brimTop, brimInterfacing, Florent, i18n }
export { top, side, brimBottom, brimTop, brimInterfacing, Florent, i18n, about }

14
designs/gozer/about.json Normal file
View file

@ -0,0 +1,14 @@
{
"id": "gozer",
"name": "Gozer ghost costume",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a ghost costume",
"design": "Wouter Van Wageningen",
"difficulty": 1,
"tags": [
"costumes"
],
"techniques": [
"hem"
]
}

View file

@ -1,16 +1,14 @@
//
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { ghost } from './ghost.mjs'
// Create new design
const Gozer = new Design({
data,
data: about,
parts: [ghost],
})
// Named exports
export { ghost, i18n, Gozer }
export { ghost, Gozer, i18n, about }

16
designs/hi/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "hi",
"name": "Hi the shark",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a shark plush toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curved-seam",
"dart"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
import { body } from './body.mjs'
@ -14,7 +14,7 @@ import { upperTeeth } from './upperTeeth.mjs'
// Create design
const Hi = new Design({
data,
data: about,
parts: [body, tail, mouth, aboveMouth, belly, topOfFin, bottomOfFin, lowerTeeth, upperTeeth],
})
@ -31,4 +31,5 @@ export {
upperTeeth,
Hi,
i18n,
about,
}

19
designs/holmes/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "holmes",
"name": "Holmes deerstalker hat",
"code": [
"Erica Alcusa Sáez",
"bobgeorgethe3rd"
],
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
"design": "Erica Alcusa Sáez",
"difficulty": 3,
"tags": [
"accessories",
"hats"
],
"techniques": [
"curved-seam",
"lining"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
@ -9,9 +9,9 @@ import { ear } from './ear.mjs'
// Create new design
const Holmes = new Design({
data,
data: about,
parts: [crown, visor, ear],
})
// Named exports
export { crown, visor, ear, Holmes, i18n }
export { crown, visor, ear, Holmes, i18n, about }

View file

@ -0,0 +1,21 @@
{
"id": "hortensia",
"name": "Hortensia handbag",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a handbag",
"design": [
"Stoffsuchti",
"Wouter Van Wageningen"
],
"difficulty": 3,
"tags": [
"accessories",
"bags"
],
"techniques": [
"curved-seam",
"precision",
"lining",
"zipper"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
import { sidePanel } from './sidepanel.mjs'
@ -11,7 +11,7 @@ import { strap } from './strap.mjs'
// Create new design
const Hortensia = new Design({
data,
data: about,
parts: [sidePanel, frontPanel, bottomPanel, zipperPanel, sidePanelReinforcement, strap],
})
@ -25,4 +25,5 @@ export {
strap,
Hortensia,
i18n,
about,
}

18
designs/huey/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "huey",
"name": "Huey hoodie",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a zip-up hoodie",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"tops"
],
"techniques": [
"curved-seam",
"pocket",
"zipper",
"ribbing",
"flat-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as hueyI18n } from '../i18n/index.mjs'
// Parts
@ -13,7 +13,7 @@ import { cuff } from './cuff.mjs'
// Create design
const Huey = new Design({
data,
data: about,
parts: [back, front, sleeve, pocket, hood, waistband, cuff],
})
@ -21,4 +21,4 @@ const Huey = new Design({
const i18n = mergeI18n([brianI18n, hueyI18n])
// Named exports
export { back, front, sleeve, pocket, hood, waistband, cuff, Huey, i18n }
export { back, front, sleeve, pocket, hood, waistband, cuff, Huey, i18n, about }

17
designs/hugo/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "hugo",
"name": "Hugo hoodie",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"tops"
],
"techniques": [
"curved-seam",
"pocket",
"ribbing",
"raglan-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as hugoI18n } from '../i18n/index.mjs'
import { back } from './back.mjs'
@ -15,7 +15,7 @@ import { neckBinding } from './neckbinding.mjs'
// Setup our new design
const Hugo = new Design({
data,
data: about,
parts: [
back,
front,
@ -47,4 +47,5 @@ export {
neckBinding,
Hugo,
i18n,
about,
}

23
designs/jaeger/about.json Normal file
View file

@ -0,0 +1,23 @@
{
"id": "jaeger",
"name": "Jaeger jacket",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a sport coat style jacket",
"design": "Joost De Cock",
"difficulty": 5,
"tags": [
"tops",
"coats"
],
"techniques": [
"hem",
"pocket",
"curved-seam",
"precision",
"set-sleeve",
"welt-pocket",
"lining",
"interfacing",
"button"
]
}

View file

@ -1,7 +1,7 @@
import { Design, mergeI18n } from '@freesewing/core'
import { i18n as bentI18n } from '@freesewing/bent'
import { i18n as jaegerI18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { backBase } from './backbase.mjs'
import { frontBase } from './frontbase.mjs'
import { side } from './side.mjs'
@ -22,7 +22,7 @@ import { frontLining } from './front-lining.mjs'
// Setup our new design
const Jaeger = new Design({
data,
data: about,
parts: [
backBase,
frontBase,
@ -68,4 +68,5 @@ export {
innerPocketWelt,
Jaeger,
i18n,
about,
}

16
designs/jane/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "jane",
"name": "Jane 1970s shift",
"code": "SeaZeeZee",
"description": "A FreeSewing pattern for a 1790s shift",
"design": "SeaZeeZee",
"difficulty": 2,
"tags": [
"tops",
"historical",
"underwear"
],
"techniques": [
"hem"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { body } from './body.mjs'
import { sleeve } from './sleeve.mjs'
import { gusset } from './gusset.mjs'
@ -7,8 +7,8 @@ import { i18n } from '../i18n/index.mjs'
// Create new design
const Jane = new Design({
data,
data: about,
parts: [body, sleeve, gusset],
})
export { body, sleeve, gusset, i18n, Jane }
export { body, sleeve, gusset, Jane, i18n, about }

View file

@ -1,5 +1,4 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import { i18n } from '../i18n/index.mjs'
import { fabricLines, saLines, otherLines, lineWidths, lineStrokes } from './lines.mjs'
import { notches } from './notches.mjs'
@ -17,7 +16,6 @@ import { sa } from './sa.mjs'
// Setup our new design
const Legend = new Design({
data,
parts: [
fabricLines,
saLines,

19
designs/lily/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "lily",
"name": "Lily leggings",
"code": [
"Anna Puk",
"Joost De Cock"
],
"description": "A FreeSewing pattern for basic leggings",
"design": "Anna Puk",
"difficulty": 2,
"tags": [
"bottoms"
],
"techniques": [
"elastic",
"curved-seam",
"hem"
]
}

View file

@ -1,6 +1,6 @@
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { front } from './front.mjs'
import { back } from './back.mjs'
@ -8,9 +8,9 @@ import { waistband } from './waistband.mjs'
// Create new design
const Lily = new Design({
data,
data: about,
parts: [front, back, waistband],
})
// Named exports
export { front, back, waistband, i18n, Lily }
export { front, back, waistband, Lily, i18n, about }

16
designs/lucy/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "lucy",
"name": "Lucy tie-on pocket",
"code": "SeaZeeZee",
"description": "A FreeSewing pattern for a historical tie-on pocket",
"design": "SeaZeeZee",
"difficulty": 2,
"tags": [
"accessories",
"historical",
"bags"
],
"techniques": [
"curved-seam"
]
}

View file

@ -1,10 +1,13 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { pocket } from './pocket.mjs'
// Setup our new design
const Lucy = new Design({ data, parts: [pocket] })
const Lucy = new Design({
data: about,
parts: [pocket],
})
// Named exports
export { pocket, Lucy, i18n }
export { pocket, Lucy, i18n, about }

17
designs/lumina/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "lumina",
"name": "Lumina leggings",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for leggings",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"stretch",
"curved-seam",
"elastic"
]
}

View file

@ -1,8 +1,6 @@
//
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { shape } from './shape.mjs'
import { panel } from './panel.mjs'
@ -12,9 +10,9 @@ import { waistband } from './waistband.mjs'
// Create new design
const Lumina = new Design({
data,
data: about,
parts: [shape, panel, leg, waistband, pocket],
})
// Named exports
export { i18n, Lumina, shape, panel, leg, waistband, pocket }
export { shape, panel, leg, waistband, pocket, Lumina, i18n, about }

17
designs/lumira/about.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "lumira",
"name": "Lumira leggings",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for leggings",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"stretch",
"curved-seam",
"elastic"
]
}

View file

@ -2,7 +2,7 @@
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { extendPath, controlPoints, createControlPoints, shape } from './shape.mjs'
import { leg } from './leg.mjs'
@ -11,14 +11,12 @@ import { waistband } from './waistband.mjs'
// Create new design
const Lumira = new Design({
data,
data: about,
parts: [shape, gusset, leg, waistband],
})
// Named exports
export {
i18n,
Lumira,
shape,
gusset,
leg,
@ -26,4 +24,7 @@ export {
extendPath,
controlPoints,
createControlPoints,
Lumira,
i18n,
about,
}

View file

@ -0,0 +1,16 @@
{
"id": "lunetius",
"name": "Lunetius lacerna",
"code": "Rika Tamaike",
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
"design": "Rika Tamaike",
"difficulty": 1,
"tags": [
"tops",
"coats",
"historical"
],
"techniques": [
"hem"
]
}

View file

@ -1,13 +1,13 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { lacerna } from './lacerna.mjs'
// Setup our new design
const Lunetius = new Design({
data,
data: about,
parts: [lacerna],
})
// Named exports
export { lacerna, Lunetius, i18n }
export { lacerna, Lunetius, i18n, about }

13
designs/magde/about.json Normal file
View file

@ -0,0 +1,13 @@
{
"id": "magde",
"name": "Magde messenger bag",
"code": "clegganator259",
"description": "A FreeSewing pattern for a bike messenger bag",
"design": "clegganator259",
"difficulty": 3,
"tags": [
"accessories",
"bags"
],
"techniques": []
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
import { bodyLiner } from './bodyLiner.mjs'
@ -16,7 +16,7 @@ import { strapAttachments } from './strapAttachments.mjs'
// Create new design
const Magde = new Design({
data,
data: about,
parts: [
backPanel,
frontPanel,
@ -47,4 +47,5 @@ export {
internalOrganiser,
Magde,
i18n,
about,
}

18
designs/noble/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "noble",
"name": "Noble body block",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a princess seam bodice block",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"blocks",
"tops"
],
"techniques": [
"block",
"curved-seam",
"precision",
"princess-seam"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { backPoints } from './backpoints.mjs'
import { backInside } from './backinside.mjs'
@ -10,9 +10,19 @@ import { frontOutside } from './frontoutside.mjs'
// Setup our new design
const Noble = new Design({
data,
data: about,
parts: [backPoints, backInside, backOutside, frontPoints, frontInside, frontOutside],
})
// Named exports
export { backPoints, backInside, backOutside, frontPoints, frontInside, frontOutside, Noble, i18n }
export {
backPoints,
backInside,
backOutside,
frontPoints,
frontInside,
frontOutside,
Noble,
i18n,
about,
}

View file

@ -0,0 +1,16 @@
{
"id": "octoplushy",
"name": "Octoplushy the octopus",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for an octopus plushy toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curved-seam",
"precision"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { headSection1, headSection2 } from './head.mjs'
import { armSection1, armSection2 } from './arm.mjs'
@ -7,9 +7,20 @@ import { eye1, eye2, eye3 } from './eye.mjs'
// Setup our new design
const Octoplushy = new Design({
data,
data: about,
parts: [headSection1, headSection2, armSection1, armSection2, eye1, eye2, eye3],
})
// Named exports
export { headSection1, headSection2, armSection1, armSection2, eye1, eye2, eye3, Octoplushy, i18n }
export {
headSection1,
headSection2,
armSection1,
armSection2,
eye1,
eye2,
eye3,
Octoplushy,
i18n,
about,
}

21
designs/onyx/about.json Normal file
View file

@ -0,0 +1,21 @@
{
"id": "onyx",
"name": "Onyx one-piece",
"code": "Thrunic",
"description": "A FreeSewing pattern for one-piece garments",
"design": "Thrunic",
"difficulty": 4,
"tags": [
"swimwear",
"pajamas",
"onePiece"
],
"techniques": [
"hem",
"curved-seam",
"stretch",
"lining",
"zipper",
"ribbing"
]
}

View file

@ -1,6 +1,6 @@
// Import Design constructor
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Import Parts
import { front } from './front.mjs'
@ -17,7 +17,7 @@ import { legRibbing } from './legribbing.mjs'
// Create new design
const Onyx = new Design({
data,
data: about,
parts: [
front,
back,
@ -48,4 +48,5 @@ export {
legRibbing,
Onyx,
i18n,
about,
}

19
designs/opal/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "opal",
"name": "Opal overalls",
"code": "Thrunic",
"description": "A FreeSewing pattern for overalls",
"design": "Thrunic",
"difficulty": 3,
"tags": [
"overalls",
"onePiece"
],
"techniques": [
"flat-felled-seam",
"hem",
"curved-seam",
"button",
"pocket"
]
}

View file

@ -1,6 +1,6 @@
import { Design } from '@freesewing/core'
import { i18n } from '../i18n/index.mjs'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { front } from './front.mjs'
import { back } from './back.mjs'
@ -17,7 +17,7 @@ import { hammerLoop } from './hammerloop.mjs'
// Create new design
const Opal = new Design({
data,
data: about,
parts: [
front,
back,
@ -50,4 +50,5 @@ export {
hammerLoop,
i18n,
Opal,
about,
}

10
designs/otis/about.json Normal file
View file

@ -0,0 +1,10 @@
{
"id": "otis",
"name": "Otis romper",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a baby romper",
"design": "Wouter Van Wageningen",
"difficulty": 2,
"tags": [],
"techniques": []
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Parts
import { back } from './back.mjs'
@ -12,7 +12,7 @@ import { bindingLeg } from './bindingLeg.mjs'
// Create new design
const Otis = new Design({
data,
data: about,
parts: [back, front, shortsleeve, longsleeve, bindingNeckBack, bindingNeckFront, bindingLeg],
})
@ -27,4 +27,5 @@ export {
bindingLeg,
i18n,
Otis,
about,
}

19
designs/paco/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "paco",
"name": "Paco pants",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for summer pants",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"bottoms",
"trousers"
],
"techniques": [
"elastic",
"curved-seam",
"pocket",
"welt-pocket",
"hem"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as titanI18n } from '@freesewing/titan'
import { i18n as pacoI18n } from '../i18n/index.mjs'
import { back } from './back.mjs'
@ -13,7 +13,7 @@ import { waistband } from './waistband.mjs'
// Setup our new design
const Paco = new Design({
data,
data: about,
parts: [
back,
front,
@ -41,4 +41,5 @@ export {
waistband,
Paco,
i18n,
about,
}

View file

@ -0,0 +1,18 @@
{
"id": "penelope",
"name": "Penenlope pencil skirt",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for a pencil skirt",
"design": "Wouter Van Wageningen",
"difficulty": 3,
"tags": [
"bottoms",
"skirts"
],
"techniques": [
"hem",
"curved-seam",
"precision",
"zipper"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { back } from './back.mjs'
import { front } from './front.mjs'
@ -7,9 +7,9 @@ import { waistband } from './waistband.mjs'
// Setup our new design
const Penelope = new Design({
data,
data: about,
parts: [back, front, waistband],
})
// Named exports
export { back, front, waistband, Penelope, i18n }
export { back, front, waistband, Penelope, i18n, about }

View file

@ -1,5 +1,4 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import { i18n } from '../i18n/index.mjs'
import { annotations } from './plugin-annotations.mjs'
import { flip } from './plugin-flip.mjs'
@ -13,7 +12,6 @@ import { ringsector } from './plugin-ringsector.mjs'
// Setup our new design
const Plugintest = new Design({
data,
parts: [annotations, flip, gore, i18nStack, measurements, mirror, round, sprinkle, ringsector],
})

View file

@ -1,11 +1,9 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import { i18n } from '../i18n/index.mjs'
import { demo } from './demo.mjs'
// Setup our new design
const Rendertest = new Design({
data,
parts: [demo],
})

20
designs/sandy/about.json Normal file
View file

@ -0,0 +1,20 @@
{
"id": "sandy",
"name": "Sandy circle skirt",
"code": [
"Erica Alcusa Sáez",
"Joost De Cock"
],
"description": "A FreeSewing pattern for a circle skirt",
"design": "Erica Alcusa Sáez",
"difficulty": 3,
"tags": [
"bottoms",
"skirts"
],
"techniques": [
"curved-seam",
"button",
"hem"
]
}

View file

@ -1,14 +1,14 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { skirt } from './skirt.mjs'
import { waistband } from './waistband.mjs'
// Setup our new design
const Sandy = new Design({
data,
data: about,
parts: [skirt, waistband],
})
// Named exports
export { skirt, waistband, Sandy, i18n }
export { skirt, waistband, Sandy, i18n, about }

18
designs/shelly/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "shelly",
"name": "Shelly swim shirt",
"code": "Thrunic",
"description": "A FreeSewing pattern for a raglan shirt, perfect for swim shirts",
"design": "Thrunic",
"difficulty": 2,
"tags": [
"tops",
"swimwear"
],
"techniques": [
"hem",
"stretch",
"curved-seam",
"raglan-sleeve"
]
}

View file

@ -1,6 +1,6 @@
// Import Design constructor
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
// Import parts
import { front } from './front.mjs'
@ -10,7 +10,7 @@ import { neckband } from './neckband.mjs'
// Create the new design
const Shelly = new Design({
data,
data: about,
// A list of parts is all that is required.
parts: [front, back, raglanSleeve, neckband],
})
@ -22,4 +22,4 @@ const Shelly = new Design({
* This allows us to re-use these parts in other designs.
*/
export { front, back, raglanSleeve, neckband, Shelly, i18n }
export { front, back, raglanSleeve, neckband, Shelly, i18n, about }

18
designs/shin/about.json Normal file
View file

@ -0,0 +1,18 @@
{
"id": "shin",
"name": "Shin swim trunks",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for swim trunks",
"design": "Joost De Cock",
"difficulty": 2,
"tags": [
"bottoms",
"swimwear"
],
"techniques": [
"hem",
"stretch",
"curved-seam",
"elastic"
]
}

View file

@ -1,5 +1,5 @@
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n } from '../i18n/index.mjs'
import { back } from './back.mjs'
import { front } from './front.mjs'
@ -7,9 +7,9 @@ import { waistband } from './waistband.mjs'
// Setup our new design
const Shin = new Design({
data,
data: about,
parts: [back, front, waistband],
})
// Named exports
export { back, front, waistband, Shin, i18n }
export { back, front, waistband, Shin, i18n, about }

19
designs/simon/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "simon",
"name": "Simon button-down shirt",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a button down shirt",
"design": "Joost De Cock",
"difficulty": 4,
"tags": [
"tops"
],
"techniques": [
"hem",
"button",
"interfacing",
"curved-seam",
"flat-felled-seam",
"flat-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as brianI18n } from '@freesewing/brian'
import { i18n as simonI18n } from '../i18n/index.mjs'
import { back } from './back.mjs'
@ -19,7 +19,7 @@ import { front } from './front.mjs'
// Setup our new design
const Simon = new Design({
data,
data: about,
parts: [
back,
buttonholePlacket,
@ -57,4 +57,5 @@ export {
yoke,
Simon,
i18n,
about,
}

19
designs/simone/about.json Normal file
View file

@ -0,0 +1,19 @@
{
"id": "simone",
"name": "Simone button-down shirt",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
"design": "Joost De Cock",
"difficulty": 4,
"tags": [
"tops"
],
"techniques": [
"hem",
"button",
"interfacing",
"curved-seam",
"flat-felled-seam",
"flat-sleeve"
]
}

View file

@ -1,5 +1,5 @@
import { Design, mergeI18n } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { i18n as simonI18n } from '@freesewing/simon'
import { i18n as simoneI18n } from '../i18n/index.mjs'
import {
@ -41,7 +41,7 @@ const frontLeft = {
// Setup our new design
const Simone = new Design({
data,
data: about,
parts: [
fbaFront,
back,
@ -79,4 +79,5 @@ export {
frontLeft,
Simone,
i18n,
about,
}

16
designs/skully/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "skully",
"name": "Skully the FreeSewing mascot",
"code": "Wouter Van Wageningen",
"description": "A FreeSewing pattern for skully, our logo, a plushy toy",
"design": "Wouter Van Wageningen",
"difficulty": 4,
"tags": [
"accessories",
"toys"
],
"techniques": [
"curved-seam",
"precision"
]
}

View file

@ -1,6 +1,6 @@
// Skully
import { Design } from '@freesewing/core'
import { data } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// Parts
import { cheek } from './cheek.mjs'
import { cheekbone } from './cheekbone.mjs'
@ -19,7 +19,7 @@ import { i18n } from '../i18n/index.mjs'
// Create new design
const Skully = new Design({
data,
data: about,
parts: [
cheek,
cheekbone,
@ -52,4 +52,5 @@ export {
uppermouth,
Skully,
i18n,
about,
}

16
designs/sven/about.json Normal file
View file

@ -0,0 +1,16 @@
{
"id": "sven",
"name": "Sven sweatshirt",
"code": "Joost De Cock",
"description": "A FreeSewing pattern for a straightforward sweater",
"design": "Joost De Cock",
"difficulty": 3,
"tags": [
"tops"
],
"techniques": [
"curved-seam",
"flat-sleeve",
"ribbing"
]
}

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