open clothes in the browser
Thanks to the advances in browser standardisation around JavaScript ESM modules, not to mention the new Skypack CDN, you can generate patterns in the browser with a few lines of JavaScript.
Use open clothes.org if you just want a pattern
These instructions are intended for people who want to generate their own patterns using open clothes packages. If you just want a sewing pattern created for you, you can get all our designs on open clothes.org, our website for makers.
High level overview
To generate a pattern, you will need to:
- Instantiate the pattern (
new ...) - Pass it the settings and measurements you want to use (
{ ... }) - Load the theme plugin (using
use()) - Draft the pattern (using
draft()) - Render it to SVG (using
render())
Which can be done as a one-liner since use(), draft() and
render() are all chainable, as shown below.
Code example
Below is a complete example.
<html>
<head>
<!-- This entire head tag is optional/cosmetic -->
<title>open clothes browser example</title>
<style>
body {
font-size: 24px;
padding: 1rem;
}
svg {
max-width: calc(100vw - 4rem);
max-height: calc(100vh - 4rem);
margin: 0 auto;
}
#container {
text-align: center;
}
</style>
</head>
<body>
<script type="module">
import { Aaron } from 'https://cdn.skypack.dev/@openclothes/aaron';
import { pluginTheme as theme } from 'https://cdn.skypack.dev/@openclothes/plugin-theme';
const svg = new Aaron({
sa: 10, // Seam allowance
paperless: true, // Enable paperless mode
// 更多 settings, see: https://open clothes 开发文档/reference/settings
measurements: { // Pass in measurements
biceps: 387,
chest: 1105,
hips: 928,
hpsToWaistBack: 502,
neck: 420,
shoulderSlope: 13,
shoulderToShoulder: 481,
waistToHips: 139,
}
})
.use(theme) // Load theme plugin
.draft() // Draft the pattern
.render() // Render to SVG
// Update DOM
document.getElementById("container").innerHTML = svg
</script>
<div id='container'>SVG output will appear here</div>
</body>
</html>
Dependencies
If you compare this example with our Node.js
example you'll notice that you do not
need to worry about loading any dependencies. Not even @openclothes/core
is loaded, because Skypack will pull in all dependencies for you.