Aperture Component Library
This repository is utilized for the isolated development, documentation, and design review
of Aperture's component library.
The application is bootstrapped by Create React App, and is powered by Storybook.
The repository is packaged, exported, and made available as a a private NPM package.
Repository Overview
Component development
Components are located within semantically named subfolders inside of src/components.
Components are styled with the CSS in JS paradigm, through the help of Emotion.
Component documentation
Component documentation is generated with the help of Storybook.
Each component is given a corresponding documentation file,
<componentName.stories.js>
, located within src/stories.
Documentation files are encouraged for all components, but are not a technical requisite
for a working, consumable, component.
Component exporting
Components within this repository are intended for consumption within the
Aperture web application.
Components are exported in aggregate at src/index.js
.
New components must be added to this file's list of exports in order to be
available for consumption in the next package release.
Storybook customizations
In the unlikely event that changes or modifications need to be made to the
repository's Storybook environment, these configuration files are located within
the src/.storybook
folder.
Standard additions, deletions, or modifications of components and their stories
should not require any changes within this folder.
Linting
Linting and formatting issues can be identified through 'yarn lint'.
Because linting errors prevent even development builds,
as a temporary measure Airbnb and Prettier extensions are
commented out (line: 7) and set to warn (line: 27)
within the .eslintrc.js
file.
It is recommended that these extensions are temporary enabled and full linting is performed before publishing to the NPM package
Build and Deployment
There are four steps to successfully correlate a change in this repository to a version update in the aperture-component-library NPM package.