consul/ui/packages/consul-ui/app/components/main-nav-vertical
John Cowen b8166de30d
ui: Replaces almost all remaining instances of SASS variables with CSS (#11200)
From an engineers perspective, whenever specifying colors from now on we should use the form:

```
color: rgb(var(--tone-red-500));
```

Please note:

- Use rgb. This lets us do this like rgb(var(--tone-red-500) / 10%) so we can use a 10% opacity red-500 if we ever need to whilst still making use of our color tokens.
- Use --tone-colorName-000 (so the prefix tone). Previously we could use a mix of --gray-500: $gray-500 (note the left hand CSS prop and right hand SASS var) for the things we need to theme currently. As we no longer use SASS we can't do --gray-500: --gray-500, so we now do --tone-gray-500: --gray-500.

Just for clarity after that, whenever specifying a color anywhere, use rgb and --tone. There is only one reason where you might not use tone, and that is if you never want a color to be affected by a theme (for example a background shadow probably always should use --black)

There are a 2 or 3 left for the code editor, plus our custom-query values
2021-10-07 19:21:11 +01:00
..
README.mdx ui: Replaces almost all remaining instances of SASS variables with CSS (#11200) 2021-10-07 19:21:11 +01:00
debug.scss ui: Replaces almost all remaining instances of SASS variables with CSS (#11200) 2021-10-07 19:21:11 +01:00
index.scss ui: Replaces almost all remaining instances of SASS variables with CSS (#11200) 2021-10-07 19:21:11 +01:00
layout.scss ui: Partitions Application Layer (#11017) 2021-09-15 19:50:11 +01:00
skin.scss ui: Replaces almost all remaining instances of SASS variables with CSS (#11200) 2021-10-07 19:21:11 +01:00

README.mdx

---
class: css
---
# MainNavVertical

Used for styles of vertically orientated main application menus/navigation.

Menu item active state is applied on `.is-active` `<li>` elements. Additionally you can use the following placeholders for setting certin states manually:

- `%menu-nav-vertical-action-active` The 'active' or currently selected state.
- `%menu-nav-vertical-action-intent` The highlighted state, usually for `:hover`
  and `:focus`.

`%menu-nav-vertical-hoisted` will 'hoist' an `<li>` element to the top of the
containing block, the containing block defaults to the current viewport. If
you need to define a different ancestor for a containing block you can use
`transform` (see below).

```hbs preview-template
<div class="wrapper">
  <nav class="main-nav-vertical in-viewport">
    <ul>
      <li role="separator">Title</li>
      <li>
        <a href="">One</a>
      </li>
      <li class="is-active">
        <a href="">Two (is-active)</a>
      </li>
      <li class="with-intent">
        <a href="">Three (with-intent)</a>
      </li>
      <li class="hoisted">
        <a href="">Four (hoisted)</a>
      </li>
      <li role="separator">Title</li>
      <li class="custom-active">
        <a href="">One (custom-active)</a>
      </li>
      <li>
        <a href="">Two</a>
      </li>
      <li>
        <a href="">Three</a>
      </li>
    </ul>
  </nav>
</div>
```

```css preview-template
.main-nav-vertical {
  @extend %main-nav-vertical;
}
.main-nav-vertical li.hoisted {
  @extend %main-nav-vertical-hoisted;
}
.main-nav-vertical .with-intent > * {
  @extend %main-nav-vertical-action-intent;
}
.main-nav-vertical .custom-active > * {
  @extend %main-nav-vertical-action-active;
}
.wrapper {
  /* a transform is required to mark this element as the containing block */
  /* for hoisting, otherwise the viewport is the containing block */
  transform: translate(0, 0);
  background-color: rgb(var(--tone-gray-600));
  padding-top: 64px;
}
```