Design system components for MITODL Projects
All PR titles and commits to main
should use the conventional commits format. During release, the types of commits included since the last release inform what sort of version bump should be made. For example, bugfixes yield a new patch version, whereas breaking changes trigger a major version bump.
To trigger a release, run the "Release" github action. Using semantic-release, this action will:
- Inspect the commit history since previous release for conventional commits an
- Determine whether the version bump should be major, minor, or patch based on commit types. Breaking changes (e.g.,
feat!: remove Button variant 'outlined'
) will result in major version bumps. - Publish the package to NPM and the repository's Github Releases.
Documentation for smoot-design
components is available at https://mitodl.github.io/smoot-design.
Components in smoot-design
are documented using Storybook's autodocs feature.
Autodocs should infer props and comments from Typescript + JSDoc comments. However, autodocs can be a bit finnicky. Tips:
- Filename should match Component Name: If you're documenting
Button
, it must be exported from a file calledButton.tsx
. - Component
displayName
: Some components may need an explicitdisplayName
, this can be set byButton.displayName="Button"
.- React component display names are not visible to end users; they are used in React's Dev Tools. React automatically adds display names for most components while transpiling, but autodocs uses un-transpiled code to generate documentation.