Modeling design decisions. Schemas, transformations, visualizations, the works.
We are an open collective of people dedicated to the design and software crafts: UX, design, code, web, 3d, audio, the works. Learn more about us and our projects at Noodlestan.org.
👐 Your contribution is welcome! 👐
If would like to share your ideas, report a bug, ask for improvements - or simply say hi! 👋 - don't hesitate to join us on Noodlestan's Discord or to drop us a line at hello@noodlestan.org
.
If you're looking into how to setup a Design System Docs website based on Designer Decisions models and tokens, refer to our Integrations / Astro docs.
You can also start from a fully working setup by using one of the boilerplates.
System requirements:
We recommended using VS Code with the following extensions: ESLint, Prettier, MDX, Github Actions, Astro, SpellRight, Generate Index
First make sure you are using the correct node version by running nvm use
.
Install dependencies with npm install
.
Run a full build with npm run build:deps
.
Run npm run dev
in the docs directory: docs/designer-decisions/
.
Libraries:
Cli tools:
Docs:
Support tools:
This library suite targets any JS/TS stack.
Most packages are distributed both as TS modules that modern bundlers can process as well as CJS builds that Node.js and ts-node
consumers can both require
or import
. See each package README for more details.
Documentation components and widgets are (for now) only available as Astro components and distributed in source code only.
It uses:
- AJV to validate data against JSON schemas.
- typescript-json-schema to generate JSON schemas from TS types.
- chroma-js for color manipulation.
Documentation is built on top of Astro / Starlight.
- esbuild
- Vitest
- @noodlestan/eslint-config - our style guide (ESLint + Prettier)
- Lefthook - manages the git hooks
Make sure the pre-commit
hook was executed. It runs automatically before every commit and lints all code. Under the hood it runs npm run lint
and npm run ci
. Run these to inspect error details.
Update CHANGELOG.
Bump version and publish to npm
npm login
npm run release:prepare 0.0.8
npm run release:publish
Commit changes. Make sure package-lock.json
is updated and included.
git checkout -b v0.0.8
npm install
git commit -am 'Publish version v0.0.8'
git push origin v0.0.8
Merge the release PR (example).
Tag the (merged) release commit.
git checkout main
git pull
git tag v0.0.8
git push --tags
Create the release on Github.
Copyright (c) 2024 Noodlestan.
Published under a MIT license.