Ms. Whitby's Classroom logo Ms. Whitby's Classroom

Primer CSS Development

If you’ve made it this far, thank you! We appreciate your contribution, and hope that this document helps you along the way. If you have any questions or problems, don’t hesitate to file an issue.

Structure

Primer CSS is published to npm as @primer/css. Each of Primer CSS’s “modules” lives in a subfolder under src/ with an index.scss in it. Generally speaking, the styles are divided into three primary themes:

Paths

Here’s what you need to know about how the files are structured in both git and in the published npm module:

Install

Run npm install to install the npm dependencies.

The docs directory

The docs directory contains all of the documentation files in our docs site. Files are nested in the /content folder.

Code blocks

All html fenced code blocks in src/**/*.md will be rendered as stories and listed under the relevant module’s name in the left-hand nav. File changes should trigger a live reload automatically (after a brief delay).

Storybook

Primer CSS Storybook is used for designing and prototyping components. Stories are written in HTML and leverage the Storybook API for configuring conditional logic.

npm run storybook

The Storybook directory

Storybook configuration files live in .storybook. Addons and additional global config can be added to main.js or preview.js

Stories

Stories are individual .jsx or .mdx files that contain component HTML for prototyping, typically showcasing all possible variations of a component. Stories can be found in the stories directory and are organized by component. Storybook will build and deploy a preview on any open Pull Request.

Scripts

Our package.json houses a collection of run-scripts that we use to maintain, test, build, and publish Primer CSS. Run npm run <script> with any of the following values for <script>:

The above list may not always be up-to-date. You can list all of the available scripts by calling npm run with no other arguments.