A stack-agnostic Sass library providing basic components and typography intended for the Employer experience.
View code and component examples in the pattern library.
Add and install with Yarn:
$ yarn add employer-style-base
You may now apply the styling to your application. Note that all styling is scoped with the
employer-scope class. We would have preferred leaving scoping up to the consuming application, but certain inflexibilites with Sass and some peculiar things this library is doing currently forbid this.
At the moment, only uncompiled Sass source files are available for consumption. That means your application will need to perform the precompilation, whether it be through Webpack, Gulp, Grunt, Rails asset pipeline, etc. Do note that
employer-style-base depends upon and includes Bourbon for basic Sass mixins.
The current layout of this library is heavily inspired by Bitters, a wonderful boilerplate of common-sense Sass conventions and structure. Our outline looks a little something like this:
dist/ ├── ... >> Not yet used sass/ >> The bulk of the styling itself ├── directives/ >> Useful mixins and functions to build a site with │ ├── 00_variables/ >> Re-usable color and sizing variables │ ├── 01_tools/ >> Globally used mixins and functions │ ├── 02_base_components/ >> Small components that are typically used in larger components │ ├── 03_components/ >> Large components and features; items that make use of 02_base_components │ └── 04_utilities/ >> Helper classes and overrides └── selectors/ >> Classes and element selectors which implement directives
Employer supports the following browsers
Our projects prefer semantic (BEM) class names that are specific to their use and which use the directives created here, over classes that are reused. For that reason, contributions should typically be added as mixins.
Adding Classes - Reusable classes are primarily buttons, tooltips, and other commonly repeated elements. That said, do include a class or element counterpart to your directives in the
selectors/ directory for use by 3rd party projects that do not consume the Sass files.
When adding a new directive, make sure to document it in the pattern library. In addition to the new code, you should have:
/selectorsdirectory, like our boxes.
config.jsfile to dictate all of the modifiers and a
.hbstemplate for rendering each modifier, like our buttons (
Then update the
package.json file in your project with the new version:
If you haven't already, from within the employer-style-base repo run
This will install Fractal and Fractal CLI.
In order to show styled components, you must first compile from
yarn run dev
to both compile and watch the
.scss files. If you've already started the Fractal server you may need to restart it.
This step will generate updated CSS. Remember to commit the updated files.
Now in a new tab, start the pattern library locally with
yarn run fractal
This will start the fractal server and give you a URL for viewing the local copy of the pattern library. It will also watch the files for changes to the documentation.
After your changes are committed and merged, update the production build of the pattern library, then push the changes to the
gh-pages branch with the following commands:
fractal build git subtree push --prefix build origin gh-pages
Fractal views are built using the Handlebars templating framework.
The current iteration of this style library has been influenced by (but does not strictly adhere to) the following: