# `Rone Styles`

This is a test/proof-of-concept to make Rone styling more broadly available. All content here will be changing regularly!

## Installation

`npm install ap-npm-styles-test`

## Importing

`import theme from 'ap-npm-styles-test';`

### Styling using the `theme` object

We created our `theme` object in TypeScript, and as such we're able to get autocompletion/Intellisense hints
for a better developer experience. After importing the theme as shown above, you can use the `theme` object
to access token values such as `theme.blueLight40`, `theme.spacing3x`, etc.

```javascript
const myStyles = {
  background: theme.grayLight40,
  color: theme.blueDark55,
  padding: theme.spacing3x,
};
```

This approach is great for those using CSS-in-JS approaches such as [styled-components](https://styled-components.com/), which is what we use to style the Rone component library. Because this theme object is written in vanilla JS/TS, it should be compatible with any front end, regardless of which framework (if any) is being used.

## Via CSS

If you prefer to style your application more traditionally using stylesheets, you can use the stylesheets included in this package.

### How to import CSS

At the top of any CSS file you can simply import the `styles.css` from this package, which will give you access to all of our styling tokens:

`@import url("ap-npm-styles-test/src/css/styles.css");`

```css
.yourClass {
  background: var(--grayLight40);
  color: var(--blueDark55);
  padding: var(--spacing3x);
}
```

### Autocompletion for CSS variables

While you can certainly use the styles without autocompletion, in our opinion it's a better developer experience
to have autocompletion available. If you're using VSCode, you can add the
[CSS Variable Autocomplete](https://marketplace.visualstudio.com/items?itemName=vunguyentuan.vscode-css-variables) extension
to get autocompletion/Intellisense for the style tokens!

By default, this extension excludes CSS variables defined in your `node_modules` folder. To get it to function properly with
this library, you can open up your VSCode `settings.json` and modify the `"cssVariables.blacklistFolders"` array from this:

 <!-- from`"**/node_modules"` to `"**/node_modules/[!ap-npm-styles-test/**]"`. This will ignore any CSS variables defined anywhere in your`node_modules` _except for_ those defined in this library. -->

```javascript
     "cssVariables.blacklistFolders": [
    ...,
    ...,
    "**/node_modules",
    ...,
    ...,
  ]
```

to this:

```javascript
     "cssVariables.blacklistFolders": [
    ...,
    ...,
    "**/node_modules/[!ap-npm-styles-test/**]",
    ...,
    ...,
  ]
```

## Fonts

Regardless of whether you prefer CSS-in-JS or more traditional styling, in your `index.html` you'll need to include a link to the fonts used in Rone via Google Fonts:

```html
<head>
  . .
  <link
    rel="stylesheet"
    href="https://fonts.googleapis.com/css?family=IBM+Plex+Mono:400,600|IBM+Plex+Sans:300,300i,400,400i,500,500i,600,600i|Montserrat:400,400i,500,500i&display=swap"
  />
  . .
</head>
```

## Global Tokens

Our global tokens are essentially simple CSS classes, and these have been modified from the JS approach that we use in the Rone component library to work outside of our typical React/styled-components environment. Accessing these global tokens will work differently depending on the manner in which you are styling your application:

When using these tokens in a style object, you can access them on the `theme.globalTokens` object.
If you are styling via a library like `styled-components`, you can access them directly from the `theme` object.
If you are styling using a stylesheet, you can access them via the class names below:

```css
.keyboardNavigationFocus {
  outline-width: 0.25rem;
  outline-style: solid;
  outline-color: #669bff;
  outline-offset: 0.0625rem;
}

.text {
  color: #1f1f1f;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.01rem;
  font-size: 1rem;
  line-height: 1.5rem;
  margin: 0;
}

.textSM {
  color: #1f1f1f;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.01rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  margin: 0;
}

.textXS {
  color: #1f1f1f;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.015rem;
  font-size: 0.75rem;
  line-height: 1rem;
  margin: 0;
}

.textMono {
  color: #1f1f1f;
  font-family: 'IBM Plex Mono', 'Cousine', Courier, monospace;
  font-weight: 400;
  letter-spacing: 0.01rem;
  line-height: 1.25rem;
  font-size: inherit;
  margin: 0;
}

.textLink {
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-decoration: underline;
  text-decoration-style: solid;
  color: #0058ff;
  cursor: pointer;
}

.textLink:hover,
.textLink:visited,
.textLink[data-focus-visible-added] {
  color: #0058ff;
}

.textLink:active {
  color: #003599;
}

.textLink:disabled {
  color: #a2a2a2;
}

.textButton {
  color: #1f1f1f;
  font-family: 'Montserrat', 'Open Sans', 'IBM Plex Sans', 'Roboto',
    'Helvetica Neue', Arial, sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem;
  letter-spacing: 0.03rem;
  margin: 0;
}

.headingXL {
  font-weight: 300;
  font-size: 3rem;
  line-height: 3.75rem;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  color: #1f1f1f;
  margin: 0;
  letter-spacing: 0;
}

.headingLG {
  font-weight: 300;
  font-size: 2.25rem;
  line-height: 3rem;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  color: #1f1f1f;
  margin: 0;
  letter-spacing: 0;
}

.headingMD {
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 2rem;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  color: #1f1f1f;
  letter-spacing: 0;
  margin: 0;
}

.heading {
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.75rem;
  letter-spacing: 0.01rem;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  color: #1f1f1f;
  margin: 0;
}

.title {
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.75rem;
  letter-spacing: 0.005rem;
  font-family: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  color: #1f1f1f;
  margin: 0;
}

.titleSM {
  font-family: 'Montserrat', 'Open Sans', 'IBM Plex Sans', 'Roboto',
    'Helvetica Neue', Arial, sans-serif;
  color: #606060;
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1rem;
  letter-spacing: 0.005rem;
  color: #1f1f1f;
  margin: 0;
}
```

## Tokens

Below is a list of all the style tokens and their values for reference:

### Breakpoints

```css
:root {
  --breakpoint320: 320px;
  --breakpoint640: 640px;
  --breakpoint1024: 1024px;
  --breakpoint1366: 1366px;
  --breakpoint1920: 1920px;
  --breakpointMobile: 320px;
  --breakpointTablet: 640px;
  --breakpointDesktop: 1024px;
  --breakpointDesktopLg: 1366px;
  --breakpointDesktopHd: 1920px;
}
```

### Colors

```css
:root {
  --white: #ffffff;
  --silver: #f9fafb;
  --nickel: #eef0f2;
  --brand: #0057b8;
  --gray: #444444;
  --pink: #fc6ab8;
  --purple: #8826ff;
  --blue: #0058ff;
  --teal: #23d6be;
  --green: #1da379;
  --yellow: #f0b323;
  --red: #f9423a;
  --brandLight15: #2670c3;
  --brandLight30: #4d89cd;
  --brandLight40: #669ad4;
  --brandLight50: #80abdc;
  --brandLight60: #99bce3;
  --brandLight70: #b3cdea;
  --brandLight80: #ccddf1;
  --brandLight90: #e6eef8;
  --brandLight95: #f2f7fb;
  --brandLight99: #fcfdfe;
  --brandDark15: #004a9c;
  --brandDark40: #00346e;
  --brandDark55: #002753;
  --grayLight15: #606060;
  --grayLight30: #7c7c7c;
  --grayLight40: #8f8f8f;
  --grayLight50: #a2a2a2;
  --grayLight60: #b4b4b4;
  --grayLight70: #c7c7c7;
  --grayLight80: #dadada;
  --grayLight90: #ececec;
  --grayLight95: #f6f6f6;
  --grayLight99: #fdfdfd;
  --grayDark15: #3a3a3a;
  --grayDark40: #292929;
  --grayDark55: #1f1f1f;
  --pinkLight15: #fc80c3;
  --pinkLight30: #fd97cd;
  --pinkLight40: #fda6d4;
  --pinkLight50: #feb5dc;
  --pinkLight60: #fec3e3;
  --pinkLight70: #fed2ea;
  --pinkLight80: #fee1f1;
  --pinkLight90: #fff0f8;
  --pinkLight95: #fff8fb;
  --pinkLight99: #fffefe;
  --pinkDark15: #d65a9c;
  --pinkDark40: #97406e;
  --pinkDark55: #713053;
  --purpleLight15: #9a47ff;
  --purpleLight30: #ac67ff;
  --purpleLight40: #b87dff;
  --purpleLight50: #c493ff;
  --purpleLight60: #cfa8ff;
  --purpleLight70: #dbbeff;
  --purpleLight80: #e7d4ff;
  --purpleLight90: #f3e9ff;
  --purpleLight95: #f9f4ff;
  --purpleLight99: #fefdff;
  --purpleDark15: #7420d9;
  --purpleDark40: #521799;
  --purpleDark55: #3d1173;
  --blueLight15: #2671ff;
  --blueLight30: #4d8aff;
  --blueLight40: #669bff;
  --blueLight50: #80acff;
  --blueLight60: #99bcff;
  --blueLight70: #b3cdff;
  --blueLight80: #ccdeff;
  --blueLight90: #e6eeff;
  --blueLight95: #f2f7ff;
  --blueLight99: #fcfdff;
  --blueDark15: #004bd9;
  --blueDark40: #003599;
  --blueDark55: #002873;
  --greenLight15: #3fb18d;
  --greenLight30: #61bfa1;
  --greenLight40: #77c8af;
  --greenLight50: #8ed1bc;
  --greenLight60: #a5dac9;
  --greenLight70: #bbe3d7;
  --greenLight80: #d2ede4;
  --greenLight90: #e8f6f2;
  --greenLight95: #f4faf8;
  --greenLight99: #fdfefe;
  --greenDark15: #198b67;
  --greenDark40: #116249;
  --greenDark55: #0d4936;
  --tealLight15: #44dcc8;
  --tealLight30: #65e2d2;
  --tealLight40: #7be6d8;
  --tealLight50: #91ebdf;
  --tealLight60: #a7efe5;
  --tealLight70: #bdf3ec;
  --tealLight80: #d3f7f2;
  --tealLight90: #e9fbf9;
  --tealLight95: #f4fdfc;
  --tealLight99: #fdfffe;
  --tealDark15: #1eb6a2;
  --tealDark40: #158072;
  --tealDark55: #106055;
  --yellowLight15: #f2be44;
  --yellowLight30: #f5ca65;
  --yellowLight40: #f6d17b;
  --yellowLight50: #f8d991;
  --yellowLight60: #f9e1a7;
  --yellowLight70: #fbe8bd;
  --yellowLight80: #fcf0d3;
  --yellowLight90: #fef7e9;
  --yellowLight95: #fefbf4;
  --yellowLight99: #fffefd;
  --yellowDark15: #cc981e;
  --yellowDark40: #906b15;
  --yellowDark55: #6c5110;
  --redLight15: #fa5e58;
  --redLight30: #fb7b75;
  --redLight40: #fb8e89;
  --redLight50: #fca19d;
  --redLight60: #fdb3b0;
  --redLight70: #fdc6c4;
  --redLight80: #fed9d8;
  --redLight90: #feeceb;
  --redLight95: #fff6f5;
  --redLight99: #fffdfd;
  --redDark15: #d43831;
  --redDark40: #952823;
  --redDark55: #701e1a;
  --whiteTransparent15: rgba(255, 255, 255, 0.85);
  --whiteTransparent30: rgba(255, 255, 255, 0.7);
  --whiteTransparent40: rgba(255, 255, 255, 0.6);
  --whiteTransparent50: rgba(255, 255, 255, 0.5);
  --whiteTransparent60: rgba(255, 255, 255, 0.4);
  --whiteTransparent70: rgba(255, 255, 255, 0.3);
  --whiteTransparent80: rgba(255, 255, 255, 0.2);
  --whiteTransparent90: rgba(255, 255, 255, 0.1);
  --whiteTransparent95: rgba(255, 255, 255, 0.05);
  --grayTransparent50: rgba(68, 68, 68, 0.5);
  --uiBackground: #ffffff;
  --uiBackgroundAlt: #f9fafb;
  --uiBackgroundModal: rgba(68, 68, 68, 0.5);
  --shadow: #1f1f1f;
  --shadowRGB: 31, 31, 31;
  --textPrimary: #1f1f1f;
  --textSecondary: #606060;
  --textTertiary: #8f8f8f;
  --textPrimaryInverse: #ffffff;
  --textSecondaryInverse: rgba(255, 255, 255, 0.7);
  --textTertiaryInverse: rgba(255, 255, 255, 0.5);
  --textLinkDisabled: #a2a2a2;
  --textLinkEnabled: #0058ff;
  --textLinkHover: #0058ff;
  --textLinkFocus: #0058ff;
  --textLinkActive: #003599;
  --textLinkVisited: #0058ff;
  --interactive: #0058ff;
  --info: #4d8aff;
  --danger: #f9423a;
  --success: #1da379;
  --warning: #f0b323;
  --dataNegative: #fa5e58;
  --dataPositive: #3fb18d;
  --inputLabel: #7c7c7c;
  --inputCaret: #8f8f8f;
  --inputValuePlaceholder: #8f8f8f;
  --inputLabelDisabled: #8f8f8f;
  --valueDisabled: #a2a2a2;
  --inputBackgroundDisabled: #f9fafb;
  --inputFocus: #444444;
  --inputInvalid: #d43831;
  --inputBorder: #ececec;
  --tooltipBackground: #606060;
  --buttonBackgroundTextHover: #f2f7ff;
  --buttonBackgroundTextFocus: #e6eeff;
  --buttonBackgroundTextActive: #ccdeff;
  --buttonLabelTextDisabled: #a2a2a2;
  --buttonLabelTextEnabled: #0058ff;
  --buttonLabelTextHover: #0058ff;
  --buttonLabelTextFocus: #0058ff;
  --buttonLabelTextActive: #0058ff;
  --buttonBackgroundOutlinedDisabled: #ffffff;
  --buttonBackgroundOutlinedEnabled: #ffffff;
  --buttonBackgroundOutlinedHover: #f2f7ff;
  --buttonBackgroundOutlinedFocus: #e6eeff;
  --buttonBackgroundOutlinedActive: #ccdeff;
  --buttonBorderOutlinedDisabled: #dadada;
  --buttonBorderOutlinedEnabled: #0058ff;
  --buttonBorderOutlinedHover: #0058ff;
  --buttonBorderOutlinedFocus: #0058ff;
  --buttonBorderOutlinedActive: #0058ff;
  --buttonLabelOutlinedDisabled: #a2a2a2;
  --buttonLabelOutlinedEnabled: #0058ff;
  --buttonLabelOutlinedHover: #0058ff;
  --buttonLabelOutlinedFocus: #0058ff;
  --buttonLabelOutlinedActive: #0058ff;
  --buttonBackgroundDisabled: #f6f6f6;
  --buttonBackgroundEnabled: #004bd9;
  --buttonBackgroundHover: #0058ff;
  --buttonBackgroundFocus: #2671ff;
  --buttonBackgroundActive: #4d8aff;
  --buttonBorderDisabled: #dadada;
  --buttonBorderEnabled: #004bd9;
  --buttonBorderHover: #0058ff;
  --buttonBorderFocus: #2671ff;
  --buttonBorderActive: #4d8aff;
  --buttonLabelDisabled: #a2a2a2;
  --buttonLabelEnabled: #ffffff;
  --buttonLabelHover: #ffffff;
  --buttonLabelFocus: #ffffff;
  --buttonLabelActive: #ffffff;
  --buttonBackgroundDangerDisabled: #fff6f5;
  --buttonBackgroundDangerEnabled: #d43831;
  --buttonBackgroundDangerHover: #f9423a;
  --buttonBackgroundDangerFocus: #fa5e58;
  --buttonBackgroundDangerActive: #fb7b75;
  --buttonBorderDangerDisabled: #feeceb;
  --buttonBorderDangerEnabled: #d43831;
  --buttonBorderDangerHover: #f9423a;
  --buttonBorderDangerFocus: #fa5e58;
  --buttonBorderDangerActive: #fb7b75;
  --buttonLabelDangerDisabled: #fca19d;
  --buttonLabelDangerEnabled: #ffffff;
  --buttonLabelDangerHover: #ffffff;
  --buttonLabelDangerFocus: #ffffff;
  --buttonLabelDangerActive: #ffffff;
  --buttonBackgroundIconHover: #f6f6f6;
  --buttonBackgroundIconFocus: #dadada;
  --buttonBackgroundIconActive: #b4b4b4;
  --buttonLabelIconDisabled: #a2a2a2;
  --buttonLabelIconEnabled: #606060;
  --buttonLabelIconHover: #1f1f1f;
  --buttonLabelIconFocus: #1f1f1f;
  --buttonLabelIconActive: #1f1f1f;
  --buttonLabelIconInverseDisabled: rgba(255, 255, 255, 0.3);
  --buttonLabelIconInverseEnabled: rgba(255, 255, 255, 0.7);
  --buttonLabelIconInverseHover: #ffffff;
  --buttonLabelIconInverseFocus: #ffffff;
  --buttonLabelIconInverseActive: #ffffff;
  --buttonBackgroundIconInverseHover: rgba(255, 255, 255, 0.1);
  --buttonBackgroundIconInverseFocus: rgba(255, 255, 255, 0.3);
  --buttonBackgroundIconInverseActive: rgba(255, 255, 255, 0.5);
  --divider: #dadada;
  --dividerTransparent: rgba(255, 255, 255, 0.2);
  --dividerLight: #ececec;
  --tableBorder: #dadada;
  --tableHeaderDarkBackground: #606060;
  --tableHeaderDarkText: #ffffff;
  --tableHeaderLightBackground: #eef0f2;
  --tableHeaderLightText: #1f1f1f;
  --outlineKeyboardNavigationFocus: #669bff;
  --series1: #669bff;
  --series2: #f5ca65;
  --series3: #1eb6a2;
  --series4: #dadada;
  --series5: #c493ff;
  --series6: #fec3e3;
  --series7: #b3cdff;
  --series8: #f8d991;
  --series9: #44dcc8;
  --series10: #a2a2a2;
  --series11: #dbbeff;
  --series12: #fc80c3;
}
```

### Elevation

```css
:root {
  --elevation0: 0;
  --elevation1: 100;
  --elevation2: 200;
  --elevation3: 300;
  --elevation4: 400;
  --elevation5: 500;
  --elevation6: 600;
  --elevation7: 700;
  --elevation8: 800;
  --elevation9: 900;
  --elevation10: 1000;
  --elevation11: 1100;
  --elevation12: 1200;
  --elevation13: 1300;
  --elevation14: 1400;
  --elevation15: 1500;
  --elevation16: 1600;
  --elevation17: 1700;
  --elevation18: 1800;
  --elevation19: 1900;
  --elevation20: 2000;
  --elevation21: 2100;
  --elevation22: 2200;
  --elevation23: 2300;
  --elevation24: 2400;
  --elevationAppbar: 400;
  --elevationButton: 200;
  --elevationButtonPressed: 800;
  --elevationCard: 200;
  --elevationDialog: 2400;
}
```

### Shadows

```css
:root {
  --shadowOpacity1: 0.2;
  --shadowOpacity2: 0.14;
  --shadowOpacity3: 0.12;
  --shadow1: 0 2px 1px -1px rgba(31, 31, 31, 0.2), 0 1px 1px 0 rgba(31, 31, 31, 0.14),
    0 1px 3px 0 rgba(31, 31, 31, 0.12);
  --shadow2: 0 3px 1px -2px rgba(31, 31, 31, 0.2), 0 2px 2px 0 rgba(31, 31, 31, 0.14),
    0 1px 5px 0 rgba(31, 31, 31, 0.12);
  --shadow3: 0 3px 3px -2px rgba(31, 31, 31, 0.2), 0 3px 4px 0 rgba(31, 31, 31, 0.14),
    0 1px 8px 0 rgba(31, 31, 31, 0.12);
  --shadow4: 0 2px 4px -1px rgba(31, 31, 31, 0.2), 0 4px 5px 0 rgba(31, 31, 31, 0.14),
    0 1px 10px 0 rgba(31, 31, 31, 0.12);
  --shadow5: 0 3px 5px -1px rgba(31, 31, 31, 0.2), 0 5px 8px 0 rgba(31, 31, 31, 0.14),
    0 1px 14px 0 rgba(31, 31, 31, 0.12);
  --shadow6: 0 3px 5px -1px rgba(31, 31, 31, 0.2), 0 6px 10px 0 rgba(31, 31, 31, 0.14),
    0 1px 18px 0 rgba(31, 31, 31, 0.12);
  --shadow7: 0 4px 5px -2px rgba(31, 31, 31, 0.2), 0 7px 10px 1px rgba(31, 31, 31, 0.14),
    0 2px 16px 1px rgba(31, 31, 31, 0.12);
  --shadow8: 0 5px 5px -3px rgba(31, 31, 31, 0.2), 0 8px 10px 1px rgba(31, 31, 31, 0.14),
    0 3px 14px 2px rgba(31, 31, 31, 0.12);
  --shadow9: 0 5px 6px -3px rgba(31, 31, 31, 0.2), 0 9px 12px 1px rgba(31, 31, 31, 0.14),
    0 3px 16px 2px rgba(31, 31, 31, 0.12);
  --shadow10: 0 6px 6px -3px rgba(31, 31, 31, 0.2), 0 10px 14px 1px rgba(31, 31, 31, 0.14),
    0 4px 18px 3px rgba(31, 31, 31, 0.12);
  --shadow11: 0 6px 7px -4px rgba(31, 31, 31, 0.2), 0 11px 15px 1px rgba(31, 31, 31, 0.14),
    0 4px 20px 3px rgba(31, 31, 31, 0.12);
  --shadow12: 0 7px 8px -4px rgba(31, 31, 31, 0.2), 0 12px 17px 2px rgba(31, 31, 31, 0.14),
    0 5px 22px 4px rgba(31, 31, 31, 0.12);
  --shadow13: 0 7px 8px -4px rgba(31, 31, 31, 0.2), 0 13px 19px 2px rgba(31, 31, 31, 0.14),
    0 5px 24px 4px rgba(31, 31, 31, 0.12);
  --shadow14: 0 7px 9px -4px rgba(31, 31, 31, 0.2), 0 14px 21px 2px rgba(31, 31, 31, 0.14),
    0 5px 26px 4px rgba(31, 31, 31, 0.12);
  --shadow15: 0 8px 9px -5px rgba(31, 31, 31, 0.2), 0 15px 22px 2px rgba(31, 31, 31, 0.14),
    0 6px 28px 5px rgba(31, 31, 31, 0.12);
  --shadow16: 0 8px 10px -5px rgba(31, 31, 31, 0.2), 0 16px 24px 2px rgba(31, 31, 31, 0.14),
    0 6px 30px 5px rgba(31, 31, 31, 0.12);
  --shadow17: 0 8px 11px -5px rgba(31, 31, 31, 0.2), 0 17px 26px 2px rgba(31, 31, 31, 0.14),
    0 6px 32px 5px rgba(31, 31, 31, 0.12);
  --shadow18: 0 9px 11px -5px rgba(31, 31, 31, 0.2), 0 18px 28px 2px rgba(31, 31, 31, 0.14),
    0 7px 34px 6px rgba(31, 31, 31, 0.12);
  --shadow19: 0 9px 12px -6px rgba(31, 31, 31, 0.2), 0 19px 29px 2px rgba(31, 31, 31, 0.14),
    0 7px 36px 6px rgba(31, 31, 31, 0.12);
  --shadow20: 0 10px 13px -6px rgba(31, 31, 31, 0.2), 0 20px 31px 3px rgba(31, 31, 31, 0.14),
    0 8px 38px 7px rgba(31, 31, 31, 0.12);
  --shadow21: 0 10px 13px -6px rgba(31, 31, 31, 0.2), 0 21px 33px 3px rgba(31, 31, 31, 0.14),
    0 8px 40px 7px rgba(31, 31, 31, 0.12);
  --shadow22: 0 10px 14px -6px rgba(31, 31, 31, 0.2), 0 22px 35px 3px rgba(31, 31, 31, 0.14),
    0 8px 42px 7px rgba(31, 31, 31, 0.12);
  --shadow23: 0 11px 14px -7px rgba(31, 31, 31, 0.2), 0 23px 36px 3px rgba(31, 31, 31, 0.14),
    0 9px 44px 8px rgba(31, 31, 31, 0.12);
  --shadow24: 0 11px 15px -7px rgba(31, 31, 31, 0.2), 0 24px 38px 3px rgba(31, 31, 31, 0.14),
    0 9px 46px 8px rgba(31, 31, 31, 0.12);
  --shadowAppbar: 0 2px 4px -1px rgba(31, 31, 31, 0.2), 0 4px 5px 0 rgba(31, 31, 31, 0.14),
    0 1px 10px 0 rgba(31, 31, 31, 0.12);
  --shadowButton: 0 3px 1px -2px rgba(31, 31, 31, 0.2), 0 2px 2px 0 rgba(31, 31, 31, 0.14),
    0 1px 5px 0 rgba(31, 31, 31, 0.12);
  --shadowButtonPressed: 0 5px 5px -3px rgba(31, 31, 31, 0.2), 0 8px 10px 1px
      rgba(31, 31, 31, 0.14), 0 3px 14px 2px rgba(31, 31, 31, 0.12);
  --shadowCard: 0 3px 1px -2px rgba(31, 31, 31, 0.2), 0 2px 2px 0 rgba(31, 31, 31, 0.14),
    0 1px 5px 0 rgba(31, 31, 31, 0.12);
  --shadowDialog: 0 11px 14px -7px rgba(31, 31, 31, 0.2), 0 23px 36px 3px rgba(31, 31, 31, 0.14),
    0 9px 44px 8px rgba(31, 31, 31, 0.12);
}
```

### Size

```css
:root {
  --sizeBaselineValue: 8;
  --sizeBaseline: 8px;
  --size0_125x: 0.0625rem;
  --size0_25x: 0.125rem;
  --size0_5x: 0.25rem;
  --size1x: 0.5rem;
  --size1_5x: 0.75rem;
  --size2x: 1rem;
  --size2_5x: 1.25rem;
  --size3x: 1.5rem;
  --size4x: 2rem;
  --size4_5x: 2.25rem;
  --size5x: 2.5rem;
  --size6x: 3rem;
  --size7x: 3.5rem;
  --size7_5x: 3.75rem;
  --size8x: 4rem;
  --size9x: 4.5rem;
  --size10x: 5rem;
  --size11x: 5.5rem;
  --size12x: 6rem;
  --size14x: 7rem;
  --size32x: 16rem;
  --size35x: 17.5rem;
  --size40x: 20rem;
  --size70x: 35rem;
  --sizeBorderWidthThin: 0.0625rem;
  --sizeBorderWidthThick: 0.125rem;
  --sizeBorderWidthThicker: 0.25rem;
  --sizeBorderRadius: 0.25rem;
  --sizeBorderRadiusCircle: calc(100% * 0.5);
  --sizeButtonHeight: 2.25rem;
  --sizeIconXl: 6rem;
  --sizeIconLg: 3rem;
  --sizeIconMd: 2rem;
  --sizeIcon: 1.5rem;
  --sizeIconSm: 1.25rem;
  --sizeButtonIcon: 1.25rem;
  --sizeSideNav: 16rem;
  --sizeMenuWidthMin: 7rem;
  --sizeMenuWidthMax: 17.5rem;
  --sizeDialogWidthMin: 17.5rem;
  --sizeDialogWidthMax: 35rem;
}
```

### Spacing

```css
:root {
  --spacingBaselineValue: 8;
  --spacingBaseline: 8px;
  --spacing0_25x: 0.125rem;
  --spacing0_5x: 0.25rem;
  --spacing1x: 0.5rem;
  --spacing1_5x: 0.75rem;
  --spacing2x: 1rem;
  --spacing3x: 1.5rem;
  --spacing4x: 2rem;
  --spacing5x: 2.5rem;
  --spacing6x: 3rem;
  --spacingLayout2x: 1rem;
  --spacingLayout3x: 1.5rem;
  --spacingLayout4x: 2rem;
  --spacingLayout6x: 3rem;
  --spacingLayout8x: 4rem;
  --spacingLayout12x: 6rem;
  --spacingLayout20x: 10rem;
}
```

### Typography

```css
:root {
  --fontStack: 'IBM Plex Sans', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
  --fontStackPair: 'Montserrat', 'Open Sans', 'IBM Plex Sans', 'Roboto',
    'Helvetica Neue', Arial, sans-serif;
  --fontStackMono: 'IBM Plex Mono', 'Cousine', Courier, monospace;
  --fontSizeRootValue: 16;
  --fontSizeRoot: 16px;
  --fontSize0_75x: 0.75rem;
  --fontSize0_875x: 0.875rem;
  --fontSize1x: 1rem;
  --fontSize1_25x: 1.25rem;
  --fontSize1_5x: 1.5rem;
  --fontSize2_25x: 2.25rem;
  --fontSize3x: 3rem;
  --fontWeightLight: 300;
  --fontWeightRegular: 400;
  --fontWeightMedium: 500;
  --fontWeightSemiBold: 600;
  --fontLineHeight1x: 1rem;
  --fontLineHeight1_25x: 1.25rem;
  --fontLineHeight1_5x: 1.5rem;
  --fontLineHeight1_75x: 1.75rem;
  --fontLineHeight2x: 2rem;
  --fontLineHeight3x: 3rem;
  --fontLineHeight3_75x: 3.75rem;
  --fontLetterSpacing0_005x: 0.005rem;
  --fontLetterSpacing0_01x: 0.01rem;
  --fontLetterSpacing0_015x: 0.015rem;
  --fontLetterSpacing0_03x: 0.03rem;
  --fontLineWidthMin: 256px;
  --fontLineWidthTwoColumnMax: 432px;
  --fontLineWidthOneColumnMax: 688px;
}
```
