@reonomy/styles
TypeScript icon, indicating that this package has built-in type declarations

2.13.0 • Public • Published

Reonomy Design Styles Library

npm version

Install:

$ yarn add @reonomy/styles

Usage:

import ReonomyStyles from '@reonomy/styles';

function App() {
  return (
    <ReonomyStyles>
      <MyApp />
    </ReonomyStyles>
  );
}

What's included

The default export ReonomyStyles includes the "kitchen sink" of the Reonomy Web styles library:

  • Default Material UI CssBaseline

  • ReonomyTheme: A custom theme generated by Material UI's createMuiTheme()

  • Ionicon icon set, each exported as an MUI SvgIcon

  • Global CSS

    • Utilities
      • Helper classes like .capitalize, .uppercase, .lowercase etc, and .icon-spin for animated rotating icons.
    • Typography
      • Font references (see below).
    • Labels
      • Colors for Reonomy's user-generated labels .label-style-1, .label-style-2 etc
    • Leader lines
      • Styles for common dl/dt/dd data display
    • MTA Icons
      • Styles for MTA transit line icons for NYC properties

Running Storybook

To view components, icons and theme run the following command:

yarn storybook

Font assets

In order for font files to be bundled along with your application, you will need a bundler (like webpack) that recognizes font file imports in order to include them in the bundle. Create-react-app supports this by default. Custom webpack configurations will need the file-loader plugin or something similar in order to load font assets.

For example, as seen in /example/webpack.config.js:

{test: /\.(woff(2)?|ttf|eot|svg|otf)(\?v=\d+\.\d+\.\d+)?$/, loaders: ['file-loader']}

Icon assets

All SVG icons are wrapped in MUI's SvgIcon, inheriting all SvgIconProps, and formatted at viewBox="0 0 24 24".

All icons are available individually as direct imports, alongside the exported Theme, and CssBaseline:

import {
  ReonomyCssBaseline,
  ReonomyTheme,
  IconArrowDownOutline,
  IconArrowCircleDownFilled,
} from '@reonomy/styles`

They can be used and styled directly with inline styles or classes.

<IconPlusCircleFilled style={{ width: 40, height: 40, color: 'red' }} className="iconstyle">

They will inherit their parent color and fontSize by default.

Updating Icons

Currently all Icon SVGs are exported from our Figma design system.

All files inside /src/icons are auto-generated by the script /scripts/figma-icon-import.js. It fetches all icons in our Figma doc and writes them to individual React files in that directory. It also generates an index.tsx file for handling module exports, as well as a index.spec.tsx for adding to storybook.

To run, first export the necessary envs (Figma API token is stored in 1Password):

$ export FIGMA_PROJECT_ID=1sDRuHjkM96zSxlFTGtiEa
$ export FIGMA_API_TOKEN=<token>

Then run: (Note that it will remove and rewrite the /src/icons directory entirely)

$ yarn icons

After a successful run, any issues or anomolies in the file outputs should be captured by yarn lint and yarn compile (see below).

To see a real diff of the updated code changes you will likely need to run yarn pretty-quick to prettify first.

Update NPM

Update package version in package.json or bump npm version with <update_type> being patch, minor, or major

$ npm version <update_type>

To publish updates to the package:

$ yarn lint
$ yarn compile
$ npm pack

This will generate a .tgz file top level you can now update reference to in /example/package.json, eg:

"dependencies": {
    "@reonomy/styles": "../reonomy-styles-1.0.5.tgz",

Update /example/public/index.html as needed, and ensure visual styles are as expected.

To test in visage locally, simply reference this file from the visage directory in the visage package.json:

"@reonomy/styles": "../../../styles/reonomy-styles-1.0.5.tgz",

Delete any old .tgz files before generating packing new versions (as they will be included in the bundle).

You may periodically need to clear the yarn cache with:

$ yarn cache clean

After branch is updated/approved and merged, publish the package to npm:

$ npm publish

You may need to be added to the NPM Reonomy organization before publishing.

Reference

See Create/Publishing NPM Package for more info on updating NPM.

See Material UI for more info on getting setup with Material UI in React.

Author

Reonomy Team

License

MIT

Package Sidebar

Install

npm i @reonomy/styles

Weekly Downloads

1

Version

2.13.0

License

MIT

Unpacked Size

13.1 MB

Total Files

2890

Last publish

Collaborators

  • herrethan
  • romangorelik92
  • jungers42
  • reotechadmin
  • oscar.liu
  • ironprice91
  • igor-p
  • vdepina