Skip to content

sutton-signwriting/signmaker

Repository files navigation

@sutton-signwriting/signmaker

Gitter Spec Formal SignWriting DOI

SignMaker Artwork

@sutton-signwriting/signmaker is a web app for creating and editing signs using Formal SignWriting in ASCII (FSW) and SignWriting in Unicode (SWU). It can be used directly in the browser, embedded in an iframe, and controlled through URL hash parameters or iframe messages.

Use SignMaker

About

SignMaker provides a visual signbox for arranging SignWriting symbols in two-dimensional space. It supports symbol palette browsing, sequence editing, keyboard shortcuts, multi-symbol selection, undo/redo, styling, and export to PNG or SVG.

Signs can be loaded, edited, shared, and saved as Formal SignWriting in ASCII (FSW) or SignWriting in Unicode (SWU). Editing and export run in the browser. Optional language tooling such as fingerspelling, mouthing, and translation uses remote SignWriting services.

Project steward: Steve Slevinski
Channel: https://www.youtube.com/channel/UCXu4AXlG0rXFtk_5SzumDow
Support: https://www.patreon.com/signwriting

Specifications and Records

URL Parameters

SignMaker supports eight keys for URL hash parameters.

key meaning
ui language code for the user interface
alphabet sign-language code for the palette symbol set
fsw sign value in Formal SignWriting in ASCII
swu sign value in SignWriting in Unicode
styling style string for image creation
grid grid detail: 0, 1, or 2
skin alternate display such as inverse or colorful
tab active tab

Example: https://www.sutton-signwriting.io/signmaker/#?ui=ase&fsw=AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475&skin=colorful

iFrame Messaging

Embed SignMaker in an iframe, send messages with postMessage, and receive save messages from the iframe.

Load a sign by posting { fsw }, { swu }, or { signmaker: 'load', swu }. The same keys as URL parameters are accepted.

Save posts this message back to the parent window:

{ signmaker: 'save', fsw, swu }

See the public demo for a working harness.

Develop

npm install
npm run dev

The app runs at http://localhost:5173/, with the iframe demo at http://localhost:5173/demo.html.

Build

npm run build:pages    # GitHub Pages build with /signmaker/ base path
npm run build:package  # static package/offline build with relative asset paths

build:pages is used by GitHub Actions for the public website. build:package is reserved for a future static package or downloadable app archive.

Test

npm test
npm run typecheck

Stack

Repository Layout

src/             # React app, stores, components, i18n, and SignWriting helpers
public/          # static assets, favicon, and palette alphabet data
tests/           # Playwright end-to-end suite
index.html       # editor entry
demo.html        # iframe demo harness

Credits

SignMaker was created by Steve Slevinski for Sutton SignWriting.

The SignMaker 2 web app implementation was created by Amit Moryossef.

License

MIT. Copyright (c) 2007-2026 Steve Slevinski and SignMaker contributors.

SignWriting General Interest

About

create and edit signs using Formal SignWriting in ASCII (FSW) or SignWriting in Unicode (SWU) with style

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors