1
0
Fork 0
freesewing/sites/dev/docs/reference/api/design
Joost De Cock ab3204f9f1 chore: Port FreeSewing.dev to docusaurus
The replaces the NextJS site powering FreeSewing.dev with a Docusaurus
setup. It's part of my efforts to simplify FreeSewing's setup so we can
focus on our core value proposition.
2024-09-28 13:13:48 +02:00
..
readme.mdx chore: Port FreeSewing.dev to docusaurus 2024-09-28 13:13:48 +02:00

---
title: Design 
---

The `Design` named export in FreeSewing's core library is a constructor that
creates new pattern designs.

## Signature

```js
Pattern Design({
  array parts,
  object data
})
```

## Example

```js
const Sorcha = new Design({ 
  // design configuration here
})
```

This constructor creates a new pattern design.
It takes a single argument, an object holding the design's configuration.

## Design configuration

Since a design's configuration is managed at the part level,
the Design configuration object only requires a `parts` property that should
hold an array of parts to include in the Design.

```js
const Sorcha = new Design({ 
  parts: [ front, back, sleeve ],
})
```

:::tipA Design in FreeSewing is little more than a container for various Parts:::

Optionally, you can also pass it a `data` attribute
to hold any custom data you'd like to add to your Design.

Any `data` you add to the Design constructor will be added
to [the Store](/reference/api/store).

```js
const Sorcha = new Design({ 
  parts: [ front, back, sleeve ],
  data: {
    version: 3,
    price: 12,
    currency: 'euro'
  }
})
```

## Notes


The Design constructor is a _super-constructor_. 
It will return a constructor method that will a pattern based on your design.

## Properties

In addition to the returned constructor method, an instantiated Design object
also provides the following properties:

### Design.designConfig

This holds the design configuration as passed to the Design constructor.

### Design.patternConfig

Holds the resolved pattern configuration based on the configuration passed to the Design constructor.