@paradigmjs/universal v0.0.17
Paradigm is optimized for building complex, data-dense web interfaces for desktop applications which run in modern browsers and IE11. This is not a mobile-first UI toolkit.
Read frequently asked questions (FAQ) on the wiki ▸
Changelog
Paradigm's change log and migration guides for major verions live on the repo's Github wiki.
Packages
This repository contains multiple projects in the packages/
directory that fall into 3 categories:
Libraries
These are the component libraries we publish to NPM.
- - Core styles & components.
- - Components for generating and displaying icons.
- - Components to create dynamic 9-slice surfaces.
- - Theme-aware responsive style props for building design systems.
Applications
These are hosted on GitHub Pages as static web applications:
docs
- Documentation site at Paradigm.lunaris.io
Build tooling
These packages define development dependencies and contain build configuration. They adhere to the standard NPM package layout, which allows us to keep clear API boundaries for build configuration and isolate groups of devDependencies
. They are published to NPM in order to allow other related projects to use this infrastructure outside this monorepo.
Contributing
Looking for places to contribute to the codebase? First read the contribution guidelines, then check out the "help wanted" label.
Development
Lerna manages inter-package dependencies in this monorepo.
Builds are orchestrated via lerna run
and NPM scripts.
Prerequisites: Node.js v10+, NPM v6.13.4+
One-time setup
After cloning this repo, run:
npm i
to install all dependencies.- If running on Windows:
npm install -g windows-build-tools
to install build tools globally- Ensure
bash
is your configured script-shell by running:npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
Incorporating upstream changes
If you were previously in a working state and have just pulled new code from develop
:
- If there were package dependency changes, run
npm i
at the root.- This command is very quick if there are no new things to install.
- Run
npm run compile
to get the latest built versions of the library packages in this repo.- This command is quicker than
npm cache verify
since it doesn't build the application packages (docs-app
,landing-app
, etc.) or run tests
- This command is quicker than
Developing libraries
Run npm run dev
from the root directory to watch changes across all packages and run the docs application with rollup
dev server.
Alternately, each library has its own dev script to run the docs app and watch changes to just that package (and its dependencies): npm run dev:core
, npm run dev:nine
, etc.
Updating documentation
Much of Paradigm's documentation lives inside source code as JSDoc comments in .tsx
files. This documentation is extracted and converted automatically during the build of packages/docs
.
If you are updating documentation sources you'll need to run npm run compile
from packages/docs
to see changes reflected in the application.
Updating icons
The One-time setup and Incorporating upstream changes steps should produce the generated source code in this repo used to build the icons documentation. This is sufficient for most development workflows.
If you are updating icons or adding new ones, you'll need to run npm compile
in packages/icons
to see those changes reflected before
running any of the dev scripts.
License
This project is made available under the Apache 2.0 License.