A modular front-end component library for modern web development.
The framework features:
- Layout utilities including a flex grid and spacing classes
- CSS styling for common elements: forms, buttons, headers, etc
- Common interactive components using JS: modals, accordions, and dropdowns
- Powerful configuration options for all of the above.
Install via npm or yarn
$ npm install -S undernet
$ yarn add -D undernet
Components / JS
Here are the current components included:
See branding documentation to setup a custom pipeline with Undernet's SCSS modules.
See CONTRIBUTING.md for more details on git flow and recommendations for pull requests/issues.
Fork and clone for development
First fork the project on Github. Then set up locally.
$ git clone firstname.lastname@example.org:USER_NAME/undernet.git $ cd undernet/ $ npm install
The site is both a demo and marketing tool. It is built with my own webpack setup called Pulsar. It's basically just Webpack + React, so don't panic. :)
Run the dev server
$ npm run watch
Make a production build
$ npm run build
Run tests with istanbuljs/nyc coverage stats (for the site only)
$ npm run test
Load tests on file save (also for the site)
$ npm run test:w
Building the framework
The site itself is a demo of the framework, so you should be able to work on the framework source itself while the site runs in the background.
The build environment works only for macOS at the moment.
If you've already run
npm install, these commands should Just Work™.
$ npm run build:development $ npm link
From there, everything should build correctly: the framework scss and js will be prettified by
prettier and distributions of js and css will be output using
node-sass, and a few macOS specific commands for zipping/prepping files for release. The output typically takes 5-10 seconds at most.
Rebuild assets on the fly
To rebuild fresh js assets while running the site's dev server, run this in a separate session to auto-reload assets while you work:
$ npm run js:watch
New releases are simply zipped and compiled files to be distributed on npm, then for use on a CDN, such as jsdelivr.
To run a release build, run the following two commands, where
VERSION is the semver value incremented from
$ update-version --tag=VERSION $ npm run build:release
These will do three things:
- Increment the project version across multiple files that require it.
- Build all assets with the new version.
- Generate new sha-256 hashes for CDN subresource integrity (added to
The result is a repo state ready to publish to npm!