A canvas made of real HTML and CSS.
Handsel is a design canvas where every layer is a real element. Draw frames, write text, drop in images or paste HTML, then copy the code. Your files stay on this device.
Open HandselCopy it as code The layer is the markup.
Click a layer and its HTML and CSS light up. What you copy is what the canvas draws: the same elements with the same styles.
<div class="home"><div class="nav"><p class="wordmark">Morrow</p><div class="links"><p class="breads">Breads</p><p class="pastries">Pastries</p><p class="visit-us">Visit us</p></div><div class="order-ahead"><p class="label">Order ahead</p></div></div><div class="hero"><p class="heading">Slow bread,<br><em>baked by sunrise.</em></p><p class="intro">Naturally leavened loaves, folded by hand over two days and out of the oven at six. Order by nine at night and collect them warm.</p><div class="actions"><div class="order-button"><p class="label-2">Order for tomorrow</p></div><div class="menu-button"><p class="label-3">See the menu</p></div></div></div><p class="hours">Open Tuesday to Sunday, 7am to 2pm</p><div class="photo"><div class="board"><div class="loaf"><div class="score"></div><div class="score-2"></div><div class="score-3"></div></div></div><div class="tag"><div class="dot"></div><p class="label-4">Out of the oven at 6am</p></div></div></div>.home {width: 1200px;height: 760px;background-color: #f3ede3;color: #1d1b16;font-family: Geist, system-ui, sans-serif;position: relative;overflow: hidden;}.nav {display: flex;align-items: center;gap: 0px;justify-content: space-between;height: 96px;padding-left: 48px;padding-right: 48px;}.wordmark {margin-top: 0px;margin-bottom: 0px;font-family: 'Instrument Serif', Georgia, serif;color: #1d1b16;font-size: 30px;}.links {display: flex;align-items: center;gap: 32px;}.breads {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #5a554a;font-size: 15px;}.pastries {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #5a554a;font-size: 15px;}.visit-us {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #5a554a;font-size: 15px;}.order-ahead {padding-top: 10px;padding-bottom: 10px;padding-left: 18px;padding-right: 18px;border-radius: 999px;border-width: 1px;border-style: solid;border-color: #1d1b16;}.label {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #1d1b16;font-size: 14px;font-weight: 500;}.hero {position: absolute;left: 48px;top: 168px;width: 560px;display: flex;flex-direction: column;align-items: flex-start;gap: 48px;}.heading {margin-top: 0px;margin-bottom: 20px;font-family: 'Instrument Serif', Georgia, serif;color: #1d1b16;width: 560px;font-size: 88px;font-weight: 400;line-height: 1;letter-spacing: -1.5px;}.intro {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #5a554a;width: 440px;font-size: 18px;line-height: 1.55;}.actions {display: flex;align-items: center;gap: 12px;}.order-button {padding-top: 16px;padding-bottom: 16px;padding-left: 26px;padding-right: 26px;border-radius: 999px;background-color: #2f4a35;}.label-2 {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #f3ede3;font-size: 16px;font-weight: 500;}.menu-button {padding-top: 16px;padding-bottom: 16px;padding-left: 22px;padding-right: 22px;border-radius: 999px;border-width: 1px;border-style: solid;border-color: rgb(29 27 22 / 0.2);}.label-3 {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #1d1b16;font-size: 16px;font-weight: 500;}.hours {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #5a554a;position: absolute;left: 48px;top: 692px;font-size: 14px;line-height: 1.4;}.photo {position: absolute;left: 632px;top: 112px;width: 520px;height: 600px;border-radius: 24px;overflow: hidden;display: flex;align-items: center;justify-content: center;background-color: #d8b28c;box-shadow: inset 0 -140px 160px -80px rgb(110 55 20 / 0.4);}.board {display: flex;align-items: center;gap: 0px;justify-content: center;width: 420px;height: 420px;border-radius: 50%;background-color: #c18b5b;box-shadow: inset 0 -18px 40px rgb(90 45 15 / 0.35), 0 30px 60px -20px rgb(90 45 15 / 0.5);}.loaf {display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 22px;width: 300px;height: 196px;border-radius: 50%;background-color: #985a30;box-shadow: inset 0 -28px 40px rgb(60 25 5 / 0.45), inset 0 18px 30px rgb(255 220 170 / 0.3), 0 24px 40px -12px rgb(60 30 10 / 0.55);}.score {width: 170px;height: 8px;border-radius: 999px;background-color: #ecc99b;opacity: 0.85;box-shadow: inset 0 2px 3px rgb(80 40 10 / 0.45);}.score-2 {width: 200px;height: 8px;border-radius: 999px;background-color: #ecc99b;opacity: 0.85;box-shadow: inset 0 2px 3px rgb(80 40 10 / 0.45);}.score-3 {width: 150px;height: 8px;border-radius: 999px;background-color: #ecc99b;opacity: 0.85;box-shadow: inset 0 2px 3px rgb(80 40 10 / 0.45);}.tag {display: flex;align-items: center;gap: 8px;padding-top: 10px;padding-bottom: 10px;padding-left: 16px;padding-right: 16px;border-radius: 999px;position: absolute;left: 24px;bottom: 24px;background-color: #f3ede3;}.dot {width: 8px;height: 8px;border-radius: 999px;background-color: #2f4a35;}.label-4 {margin-top: 0px;margin-bottom: 0px;font-family: Geist, system-ui, sans-serif;color: #1d1b16;font-size: 13px;font-weight: 500;}Paste HTML, get layers Bring what you already have.
Paste a snippet and each element lands as a frame, a text layer or an image you can move and edit. Inline styles like color, size and spacing come with it. Scripts and unsafe links are left out.
Layers 5
- Pasted
- Frame
- Text
- Text
- Text
- Text
Auto layout is flexbox. Nothing to translate.
A frame with auto layout is a flex container, so gap and padding are the CSS you copy. Drag the sliders and the cards reflow the way a browser would lay them out.
display: flex;
gap: 16px;
padding-top: 24px;
padding-right: 24px;
padding-bottom: 24px;
padding-left: 24px;On your device. Files live in this browser.
- It works signed out. There is no account to make and nothing to sign in to.
- Nothing you draw is uploaded. Images you drop in are kept in this browser too.
- Clearing this browser’s site data removes your files, so download a page you want to keep.
Why the name.
A handsel is a gift given at the start of something new, for luck, like a coin tucked into a new purse.
Every interface starts as a blank page. Handsel is a small gift for that moment: a place to try the idea in the material it will ship in.