# Header

The top of a website: brand, page links, a call to action and the theme switch, in five looks; the links fold into a menu when they do not fit.

Block: `smbk-header`. Status: candidate. Figma: the Figma file, https://www.figma.com/community/file/1688324308358870630. Desktop and mobile: differ by presentation only.

## Options

| Axis | Values | Default | Meaning |
|---|---|---|---|
| `look` | `floating`, `floating-hug`, `flat`, `split`, `centred` | `floating` | Floating: a raised bar with rounded corners and a hairline edge, the links in the true middle. Floating hug: the same bar only as wide as its content, centered. Flat: a square bar with no edge or shadow, a line along its foot. Split: the brand on an island of its own at the start, the links and the end on one at the end. Centred: the links at the start, the brand in the middle (in a narrow space the theme switch steps aside so the brand can sit in the middle). Figma calls this Style; the app bar has the same looks. |
| `size` | `md`, `lg` | `md` | How large the page links in the wide bar are. md is Figma's header: the middle navigation item, the extra-small step apart. lg is the large item the large step apart, as the header drew them before. The narrow menu keeps its large items either way. |
| `background` | `on`, `off` | `on` | The bar's own surface. Off drops its fill, edge and shadow so it sits on whatever is behind it; the open menu keeps its surface, as Figma draws the open header only with one. Figma: Background (on by default). |
| `line` | `on`, `off` | `on` | The hairline along the foot of a flat bar. Only the flat look draws it. Figma: Line (on by default). |
| `fold` | `none`, `links` | `none` | Whether the page links have folded away in a wide space too narrow for them: the menu button then shows and opens them under the bar, while the call to action and the theme switch stay. The wrapper measures the row and sets it; markup written by hand sets it the same way. |
| `expanded` | on / off | off | The menu is open under the bar: in a narrow space, or in a wide one whose links have folded away. |
| `zone` | on / off | off | The bar's own room, as Figma draws it: the medium inset above and below a floating bar and a step in from the sides, and its row held to the content width. Off by default, so a page that already leaves room around its header keeps its own. |
| `frosted` | on / off | off | A blur behind the bar, strongest at the top and gone by its foot, so what scrolls under it is never read sharply there. For a bar with its background off, or with its own room. Not drawn when the system asks for forced colors. |

Parts: `smbk-header__panel`, `smbk-header__frost`, `smbk-header__bar`, `smbk-header__start`, `smbk-header__brand`, `smbk-header__logo`, `smbk-header__trail`, `smbk-header__nav`, `smbk-header__links`, `smbk-header__end`, `smbk-header__theme`, `smbk-header__menu-button`, `smbk-header__second-row`, `smbk-header__second-row-nav`, `smbk-header__menu`, `smbk-header__menu-list`, `smbk-header__group`, `smbk-header__menu-cta`, `smbk-header__wide-only`, `smbk-header__narrow-only`

## Markup

```html
<header class="smbk-header smbk-header--look-floating smbk-header--size-md smbk-header--background-on smbk-header--line-on smbk-header--fold-none">
  <div class="smbk-header__panel">
    <div class="smbk-header__bar">
      <div class="smbk-header__start">
        <a class="smbk-header__brand" href="/">
          <svg
            class="smbk-logo smbk-logo--brand-simbolik smbk-logo--form-logo smbk-logo--source-shapes smbk-header__logo"
            viewBox="0 0 173 32"
            role="img"
            aria-label="Simbolik"
          ><path class="smbk-logo__mark" d="M10.5947 8.62609V0.417391C10.5947 0.186873 10.782 0 11.0129 0H12.6858C12.9168 0 13.104 0.186872 13.104 0.417391V8.62609C13.104 10.3934 14.5395 11.8261 16.3103 11.8261H37.0814C37.3124 11.8261 37.4996 12.013 37.4996 12.2435V13.913C37.4996 14.1436 37.3124 14.3304 37.0814 14.3304H16.3103C13.1537 14.3304 10.5947 11.7765 10.5947 8.62609Z"></path><path class="smbk-logo__mark" d="M26.905 23.3739V31.5826C26.905 31.8131 26.7177 32 26.4867 32H24.8139C24.5829 32 24.3957 31.8131 24.3957 31.5826V23.3739C24.3957 21.6066 22.9602 20.1739 21.1894 20.1739L0.418272 20.1739C0.1873 20.1739 6.10177e-05 19.987 6.10352e-05 19.7565L6.11612e-05 18.0869C6.11787e-05 17.8564 0.187301 17.6696 0.418272 17.6696L21.1894 17.6696C24.346 17.6696 26.905 20.2235 26.905 23.3739Z"></path><path class="smbk-logo__type" d="M53.9717 23.6522C52.201 23.6522 50.776 23.5933 49.6967 23.4755C48.6259 23.3577 47.8122 23.1389 47.2557 22.8192C46.7076 22.4994 46.3366 22.045 46.1427 21.456C45.9572 20.8669 45.8644 20.1012 45.8644 19.1587H48.1916C48.1916 19.6888 48.2296 20.118 48.3055 20.4462C48.3814 20.7659 48.5964 21.0142 48.9505 21.1909C49.3047 21.3592 49.878 21.477 50.6706 21.5443C51.4717 21.6032 52.5931 21.6327 54.0349 21.6327C55.5611 21.6327 56.7458 21.6032 57.589 21.5443C58.4406 21.477 59.0519 21.3592 59.4229 21.1909C59.7939 21.0142 60.0174 20.7617 60.0933 20.4336C60.1776 20.1054 60.2197 19.672 60.2197 19.1335C60.2197 18.4771 60.1607 17.9848 60.0427 17.6567C59.9246 17.3285 59.6464 17.1097 59.2079 17.0003C58.7695 16.8825 58.0696 16.8194 57.1084 16.811L51.3157 16.7478C49.8232 16.731 48.6849 16.6048 47.9007 16.3692C47.1166 16.1336 46.5812 15.7212 46.2945 15.1322C46.0078 14.5347 45.8644 13.689 45.8644 12.5951C45.8644 11.5769 46.0204 10.7901 46.3324 10.2347C46.6528 9.67935 47.1503 9.28385 47.8249 9.04823C48.4994 8.81262 49.3763 8.67377 50.4556 8.6317C51.5349 8.58121 52.8376 8.55597 54.3638 8.55597C56.1598 8.55597 57.5848 8.61066 58.6388 8.72006C59.7012 8.82945 60.4938 9.03561 61.0166 9.33855C61.5478 9.64148 61.8935 10.0833 62.0537 10.6639C62.2223 11.2361 62.3066 11.985 62.3066 12.9107H59.9794C59.9794 12.3637 59.9415 11.9345 59.8656 11.6232C59.7897 11.3034 59.5831 11.072 59.2459 10.929C58.917 10.7775 58.3774 10.6807 57.6269 10.6386C56.8849 10.5966 55.8394 10.5755 54.4903 10.5755C52.9557 10.5755 51.7626 10.5924 50.9109 10.626C50.0593 10.6597 49.4438 10.7396 49.0643 10.8658C48.6849 10.9921 48.453 11.194 48.3687 11.4717C48.2844 11.741 48.2422 12.1155 48.2422 12.5951C48.2422 13.0832 48.2675 13.4703 48.3181 13.7564C48.3771 14.034 48.5247 14.2444 48.7608 14.3875C48.9969 14.5305 49.3805 14.6273 49.9118 14.6778C50.4514 14.7199 51.2018 14.7451 52.1631 14.7535L57.159 14.804C58.6598 14.8208 59.7981 14.9471 60.5739 15.1827C61.358 15.4099 61.8893 15.8348 62.1675 16.4575C62.4542 17.0718 62.5975 17.9638 62.5975 19.1335C62.5975 20.1853 62.4415 21.0142 62.1296 21.6201C61.826 22.2259 61.337 22.6761 60.6624 22.9706C59.9879 23.2567 59.0983 23.4419 57.9937 23.526C56.8976 23.6102 55.5569 23.6522 53.9717 23.6522Z"></path><path class="smbk-logo__type" d="M65.848 23.3746V9.64148H68.2764V23.3746H65.848Z"></path><path class="smbk-logo__type" d="M71.5649 23.3746V8.83366H73.9932V10.6386C74.3558 10.1506 74.7901 9.74246 75.296 9.41428C75.8019 9.0861 76.4469 8.84207 77.2311 8.68219C78.0237 8.51389 79.0355 8.42974 80.2666 8.42974C81.7927 8.42974 83.0364 8.6359 83.9977 9.04823C84.9589 9.46056 85.6672 10.1716 86.1225 11.1814C86.5357 10.5419 87.0332 10.0202 87.615 9.61624C88.1968 9.20391 88.9261 8.90518 89.803 8.72006C90.6884 8.52651 91.7761 8.42974 93.0662 8.42974C94.6008 8.42974 95.8487 8.64011 96.8099 9.06086C97.7712 9.47319 98.4752 10.18 98.9221 11.1814C99.3775 12.1828 99.6051 13.5544 99.6051 15.2963V23.3746H97.1767V15.2963C97.1767 13.9667 97.0376 12.9569 96.7593 12.2669C96.4811 11.5685 96.0173 11.0931 95.3681 10.8406C94.7273 10.5797 93.8588 10.4493 92.7626 10.4493C90.6125 10.4493 89.0779 10.7649 88.1588 11.396C87.2482 12.0271 86.7929 13.0579 86.7929 14.4885V14.4758C86.8013 14.7367 86.8055 15.0102 86.8055 15.2963V23.3746H84.3771V15.2963C84.3771 13.9667 84.238 12.9569 83.9597 12.2669C83.6815 11.5685 83.2177 11.0931 82.5685 10.8406C81.9277 10.5797 81.0592 10.4493 79.963 10.4493C77.8129 10.4493 76.2783 10.7649 75.3592 11.396C74.4486 12.0271 73.9932 13.0579 73.9932 14.4885V23.3746H71.5649Z"></path><path class="smbk-logo__type" d="M111.772 23.6522C110.212 23.6522 108.893 23.5344 107.814 23.2988C106.743 23.0632 105.9 22.5331 105.284 21.7084V23.3746H102.856V0H105.284V10.4872C105.9 9.67094 106.743 9.14501 107.814 8.90939C108.893 8.67377 110.212 8.55597 111.772 8.55597C113.408 8.55597 114.791 8.64011 115.921 8.80841C117.059 8.97671 117.978 9.3133 118.678 9.8182C119.378 10.3231 119.888 11.072 120.208 12.065C120.529 13.0579 120.689 14.3791 120.689 16.0284C120.689 17.7282 120.529 19.0872 120.208 20.1054C119.888 21.1236 119.378 21.8893 118.678 22.4026C117.978 22.9075 117.059 23.2399 115.921 23.3998C114.791 23.5681 113.408 23.6522 111.772 23.6522ZM118.261 16.0284C118.261 14.825 118.197 13.8615 118.071 13.1379C117.953 12.4142 117.687 11.8714 117.274 11.5096C116.861 11.1393 116.216 10.8911 115.339 10.7649C114.471 10.6386 113.282 10.5755 111.772 10.5755C110.398 10.5755 109.285 10.6386 108.433 10.7649C107.582 10.8911 106.928 11.1393 106.473 11.5096C106.018 11.8714 105.706 12.4142 105.537 13.1379C105.368 13.8615 105.284 14.825 105.284 16.0284C105.284 17.2738 105.368 18.2709 105.537 19.0199C105.706 19.7688 106.018 20.3326 106.473 20.7112C106.928 21.0815 107.582 21.3297 108.433 21.456C109.285 21.5738 110.398 21.6327 111.772 21.6327C113.282 21.6327 114.471 21.5738 115.339 21.456C116.216 21.3297 116.861 21.0815 117.274 20.7112C117.687 20.3326 117.953 19.7688 118.071 19.0199C118.197 18.2709 118.261 17.2738 118.261 16.0284Z"></path><path class="smbk-logo__type" d="M132.034 23.6522C130.407 23.6522 129.024 23.5681 127.886 23.3998C126.747 23.2399 125.828 22.9075 125.128 22.4026C124.429 21.8893 123.918 21.1236 123.598 20.1054C123.278 19.0872 123.117 17.7282 123.117 16.0284C123.117 14.3791 123.278 13.0579 123.598 12.065C123.918 11.072 124.429 10.3231 125.128 9.8182C125.828 9.3133 126.747 8.97671 127.886 8.80841C129.024 8.64011 130.407 8.55597 132.034 8.55597C133.67 8.55597 135.053 8.64011 136.183 8.80841C137.321 8.97671 138.24 9.3133 138.94 9.8182C139.64 10.3231 140.15 11.072 140.47 12.065C140.791 13.0579 140.951 14.3791 140.951 16.0284C140.951 17.7282 140.791 19.0872 140.47 20.1054C140.15 21.1236 139.64 21.8893 138.94 22.4026C138.24 22.9075 137.321 23.2399 136.183 23.3998C135.053 23.5681 133.67 23.6522 132.034 23.6522ZM138.523 16.0284C138.523 14.825 138.459 13.8615 138.333 13.1379C138.215 12.4142 137.949 11.8714 137.536 11.5096C137.123 11.1393 136.478 10.8911 135.601 10.7649C134.732 10.6386 133.543 10.5755 132.034 10.5755C130.533 10.5755 129.344 10.6386 128.467 10.7649C127.591 10.8911 126.946 11.1393 126.532 11.5096C126.119 11.8714 125.849 12.4142 125.723 13.1379C125.605 13.8615 125.546 14.825 125.546 16.0284C125.546 17.2738 125.605 18.2709 125.723 19.0199C125.849 19.7688 126.119 20.3326 126.532 20.7112C126.946 21.0815 127.591 21.3297 128.467 21.456C129.344 21.5738 130.533 21.6327 132.034 21.6327C133.543 21.6327 134.732 21.5738 135.601 21.456C136.478 21.3297 137.123 21.0815 137.536 20.7112C137.949 20.3326 138.215 19.7688 138.333 19.0199C138.459 18.2709 138.523 17.2738 138.523 16.0284Z"></path><path class="smbk-logo__type" d="M144.65 32V9.6H147.141L147.078 32H144.65Z"></path><path class="smbk-logo__type" d="M151.069 23.3746V9.64148H153.498V23.3746H151.069Z"></path><path class="smbk-logo__type" d="M156.811 23.3746V0H159.24V15.1827L168.915 8.83366H172.596L162.313 15.6623L173.001 23.3746H169.383L159.24 15.9148V23.3746H156.811Z"></path><path class="smbk-logo__type" d="M151.069 7.09569V4.52174H153.498V7.09569H151.069Z"></path><path class="smbk-logo__type" d="M65.88 7.37395V4.8H68.3084V7.37395H65.88Z"></path></svg>
        </a>
      </div>
      <div class="smbk-header__trail">
        <nav aria-label="Main" class="smbk-header__nav smbk-header__wide-only">
          <ul class="smbk-header__links">
            <li><a class="smbk-nav-item smbk-nav-item--size-md" href="#work" aria-current="page"><span class="smbk-nav-item__label" data-label="Work">Work</span></a></li>
            <li>
              <div class="smbk-dropdown__anchor">
                <button
                  type="button"
                  class="smbk-nav-item smbk-nav-item--size-md"
                  id="header-1-opener"
                  aria-expanded="false"
                  aria-controls="header-1-panel"
                >
                  <span class="smbk-nav-item__label" data-label="Services">Services</span>
                  <i
                    class="ph ph-caret-down smbk-icon smbk-icon--size-md smbk-nav-item__caret"
                    aria-hidden="true"
                  ></i>
                </button>
                <div class="smbk-dropdown__layer">
                  <div
                    id="header-1-panel"
                    role="group"
                    aria-label="Services"
                    class="smbk-dropdown smbk-dropdown--size-md smbk-dropdown--align-start"
                    tabindex="-1"
                    data-scrollbar=""
                    hidden=""
                  >
                    <a class="smbk-dropdown__item" href="#design-systems">
                      <span class="smbk-dropdown__text">Design systems</span>
                    </a>
                    <a class="smbk-dropdown__item" href="#brand-systems">
                      <span class="smbk-dropdown__text">Brand systems</span>
                    </a>
                    <a class="smbk-dropdown__item" href="#advisory">
                      <span class="smbk-dropdown__text">Advisory</span>
                    </a>
                  </div>
                </div>
              </div>
            </li>
            <li>
              <div class="smbk-dropdown__anchor">
                <button
                  type="button"
                  class="smbk-nav-item smbk-nav-item--size-md"
                  id="header-2-opener"
                  aria-expanded="false"
                  aria-controls="header-2-panel"
                >
                  <span class="smbk-nav-item__label" data-label="Products">Products</span>
                  <i
                    class="ph ph-caret-down smbk-icon smbk-icon--size-md smbk-nav-item__caret"
                    aria-hidden="true"
                  ></i>
                </button>
                <div class="smbk-dropdown__layer">
                  <div
                    id="header-2-panel"
                    role="group"
                    aria-label="Products"
                    class="smbk-dropdown smbk-dropdown--size-md smbk-dropdown--align-start"
                    tabindex="-1"
                    data-scrollbar=""
                    hidden=""
                  >
                    <a class="smbk-dropdown__item" href="#design-system">
                      <span class="smbk-dropdown__text">Design system</span>
                    </a>
                    <a class="smbk-dropdown__item" href="#icons">
                      <span class="smbk-dropdown__text">Icon library</span>
                    </a>
                  </div>
                </div>
              </div>
            </li>
            <li><a class="smbk-nav-item smbk-nav-item--size-md" href="#resources"><span class="smbk-nav-item__label" data-label="Resources">Resources</span></a></li>
            <li><a class="smbk-nav-item smbk-nav-item--size-md" href="#about"><span class="smbk-nav-item__label" data-label="About">About</span></a></li>
          </ul>
        </nav>
        <div class="smbk-header__end">
          <div class="smbk-header__wide-only"><button type="button" class="smbk-btn smbk-btn--tone-outline smbk-btn--size-md"><span class="smbk-btn__label">Book a call</span><i class="ph ph-arrow-up-right smbk-icon smbk-icon--size-md smbk-btn__icon" aria-hidden="true"></i></button></div>
          <div class="smbk-header__wide-only">
            <div
              role="radiogroup"
              aria-label="Theme"
              class="smbk-theme-switch smbk-segmented smbk-segmented--size-md smbk-segmented--look-theme"
            >
              <span class="smbk-segmented__indicator" aria-hidden="true"></span>
              <label class="smbk-segmented__item">
                <input
                  type="radio"
                  class="smbk-segmented__control"
                  aria-label="Dark theme"
                  name="theme"
                  value="dark"
                >
                <i
                  class="ph ph-moon-stars smbk-icon smbk-icon--size-md smbk-segmented__icon"
                  aria-hidden="true"
                ></i>
                <span class="smbk-tooltip__layer"><span role="tooltip" id="react-aria-header-3" aria-hidden="true" class="smbk-tooltip smbk-tooltip--arrow-top-center smbk-tooltip--inverse" hidden=""><span class="smbk-tooltip__bubble">Dark theme</span><span class="smbk-tooltip__arrow" aria-hidden="true"></span></span></span>
              </label>
              <label class="smbk-segmented__item">
                <input
                  type="radio"
                  class="smbk-segmented__control"
                  aria-label="Light theme"
                  name="theme"
                  checked=""
                  value="light"
                >
                <i
                  class="ph ph-sun smbk-icon smbk-icon--size-md smbk-segmented__icon"
                  aria-hidden="true"
                ></i>
                <span class="smbk-tooltip__layer"><span role="tooltip" id="react-aria-header-4" aria-hidden="true" class="smbk-tooltip smbk-tooltip--arrow-top-center smbk-tooltip--inverse" hidden=""><span class="smbk-tooltip__bubble">Light theme</span><span class="smbk-tooltip__arrow" aria-hidden="true"></span></span></span>
              </label>
            </div>
          </div>
          <div class="smbk-header__theme smbk-header__narrow-only">
            <div
              role="radiogroup"
              aria-label="Theme"
              class="smbk-theme-switch smbk-segmented smbk-segmented--size-md smbk-segmented--look-theme"
            >
              <span class="smbk-segmented__indicator" aria-hidden="true"></span>
              <label class="smbk-segmented__item">
                <input
                  type="radio"
                  class="smbk-segmented__control"
                  aria-label="Dark theme"
                  name="theme-narrow"
                  value="dark"
                >
                <i
                  class="ph ph-moon-stars smbk-icon smbk-icon--size-md smbk-segmented__icon"
                  aria-hidden="true"
                ></i>
                <span class="smbk-tooltip__layer"><span role="tooltip" id="react-aria-header-5" aria-hidden="true" class="smbk-tooltip smbk-tooltip--arrow-top-center smbk-tooltip--inverse" hidden=""><span class="smbk-tooltip__bubble">Dark theme</span><span class="smbk-tooltip__arrow" aria-hidden="true"></span></span></span>
              </label>
              <label class="smbk-segmented__item">
                <input
                  type="radio"
                  class="smbk-segmented__control"
                  aria-label="Light theme"
                  name="theme-narrow"
                  checked=""
                  value="light"
                >
                <i
                  class="ph ph-sun smbk-icon smbk-icon--size-md smbk-segmented__icon"
                  aria-hidden="true"
                ></i>
                <span class="smbk-tooltip__layer"><span role="tooltip" id="react-aria-header-6" aria-hidden="true" class="smbk-tooltip smbk-tooltip--arrow-top-center smbk-tooltip--inverse" hidden=""><span class="smbk-tooltip__bubble">Light theme</span><span class="smbk-tooltip__arrow" aria-hidden="true"></span></span></span>
              </label>
            </div>
          </div>
          <button
            type="button"
            class="smbk-btn smbk-btn--tone-ghost smbk-btn--size-md smbk-btn--icon-only smbk-header__menu-button smbk-header__narrow-only"
            aria-label="Menu"
            aria-expanded="false"
            aria-controls="header-7-menu"
          >
            <i
              class="ph ph-list smbk-icon smbk-icon--size-md smbk-btn__icon"
              aria-hidden="true"
            ></i>
          </button>
        </div>
      </div>
    </div>
    <div id="header-7-menu" class="smbk-header__menu">
      <hr class="smbk-divider smbk-divider--orientation-horizontal"/>
      <nav aria-label="Menu">
        <ul class="smbk-header__menu-list">
          <li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#work" aria-current="page"><span class="smbk-nav-item__label" data-label="Work">Work</span></a></li>
          <li><button type="button" class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" aria-expanded="false" aria-controls="header-7-group-1"><span class="smbk-nav-item__label" data-label="Services">Services</span><i class="ph ph-caret-down smbk-icon smbk-icon--size-md smbk-nav-item__caret" aria-hidden="true"></i></button><ul id="header-7-group-1" class="smbk-header__group" hidden=""><li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#design-systems"><span class="smbk-nav-item__label" data-label="Design systems">Design systems</span></a></li><li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#brand-systems"><span class="smbk-nav-item__label" data-label="Brand systems">Brand systems</span></a></li><li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#advisory"><span class="smbk-nav-item__label" data-label="Advisory">Advisory</span></a></li></ul></li>
          <li><button type="button" class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" aria-expanded="false" aria-controls="header-7-group-2"><span class="smbk-nav-item__label" data-label="Products">Products</span><i class="ph ph-caret-down smbk-icon smbk-icon--size-md smbk-nav-item__caret" aria-hidden="true"></i></button><ul id="header-7-group-2" class="smbk-header__group" hidden=""><li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#design-system"><span class="smbk-nav-item__label" data-label="Design system">Design system</span></a></li><li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#icons"><span class="smbk-nav-item__label" data-label="Icon library">Icon library</span></a></li></ul></li>
          <li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#resources"><span class="smbk-nav-item__label" data-label="Resources">Resources</span></a></li>
          <li><a class="smbk-nav-item smbk-nav-item--size-lg smbk-nav-item--block" href="#about"><span class="smbk-nav-item__label" data-label="About">About</span></a></li>
        </ul>
      </nav>
      <div class="smbk-header__menu-cta">
        <button type="button" class="smbk-btn smbk-btn--tone-outline smbk-btn--size-md">
          <span class="smbk-btn__label">Book a call</span>
          <i
            class="ph ph-arrow-up-right smbk-icon smbk-icon--size-md smbk-btn__icon"
            aria-hidden="true"
          ></i>
        </button>
      </div>
    </div>
  </div>
</header>
```

## React

```tsx
import { Header } from './design-system/components/header/header.js';
import { Button } from './design-system/components/button/button.js';
import { ThemeSwitch } from './design-system/components/theme-switch/theme-switch.js';

<Header look="floating" size="md" background="on" line="on" fold="none" items={[{ label: "Work", href: "#work", active: true }, { label: "Services", href: "#services", children: [{ label: "Design systems", href: "#design-systems" }, { label: "Brand systems", href: "#brand-systems" }, { label: "Advisory", href: "#advisory" }] }, { label: "Products", href: "#products", children: [{ label: "Design system", href: "#design-system" }, { label: "Icon library", href: "#icons" }] }, { label: "Resources", href: "#resources" }, { label: "About", href: "#about" }]} cta={<Button tone="outline" size="md" trailingIcon="ArrowUpRight">Book a call</Button>} themeSwitch={<ThemeSwitch size="md" />} />
```

## Stylesheet

```css
/* smbk-header — Header. Figma "Header" 7392:2169 (Style × Platform × State), built from the app bar's parts.
 * The top of a website: the brand, page links in the middle, a call to action and the theme switch at the end.
 * In a wide space the bar is three columns, the links centered in it. In a narrow space the links move into a
 * menu that a button opens under the bar, and the call to action fills the menu's last row. Which form shows is
 * the layout switch. In a wide space too narrow for the links the wrapper folds them away (fold): the menu
 * button shows and opens them under the bar, while the call to action stays.
 *
 * What the header shares with the app bar, which it is built from, is written once in ../bar/bar.css: the bar and
 * its surface, the five looks, the bar's own room (zone), the frost behind it, the second row, the row's common
 * arrangement and the open menu's movement. This stylesheet keeps what is the header's own: its grid of three
 * columns, its links, call to action and menu groups, and the fade between backgrounds. */

/* A page may switch the background while it is on screen (on once content scrolls under the bar):
   the surface, its edge and its shadow fade in and out with the state purpose rather than
   jumping, under reduced motion too, since nothing moves. The menu and its groups stop growing
   under reduced motion (the block at the end). */
.smbk-header {
  transition-property: background-color, border-color, box-shadow;
  transition-duration: var(--smbk-motion-state-duration);
  transition-timing-function: var(--smbk-motion-state-easing);
}

/* Figma draws the header's edge inside it (80 tall in a wide space, 56 in a narrow one), so each
   padding here gives the edge's width back; the same in the narrow bar and its menu.
   The wide bar as Figma draws it: three columns, the start (the brand) in the first, the links in the
   second, the end in the third, the large inline step apart, the row at least a large control tall. The first
   and the third share what the links leave equally, so the links stay in the middle of the bar whatever the two
   ends hold; where there is too little room, each end keeps what its content needs and the links give up the
   exact middle rather than overlap. The row clips what it cannot hold until the page's script has measured it,
   so the page never scrolls sideways. */
.smbk-header__bar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-auto-rows: minmax(var(--smbk-size-control-lg), auto);
  gap: var(--smbk-space-inline-lg);
  padding: calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

/* Each place has its own column, so a place that is gone (the links, folded) leaves the others where they are. */
.smbk-header__start {
  grid-area: 1 / 1;
  justify-self: start;
}

.smbk-header__nav {
  grid-area: 1 / 2;
}

.smbk-header__end {
  grid-area: 1 / 3;
}

.smbk-header__brand {
  justify-self: start;
}

/* In the narrow form the brand gives way first: in a space too narrow for the
   brand, the theme switch and the menu button (the smallest phones), the logo
   scales down inside its box rather than pushing the menu button out of the
   bar. At every width where they fit, nothing changes. */
@container style(--smbk-layout: narrow) {
  .smbk-header__start,
  .smbk-header__brand {
    flex-shrink: 1;
    min-width: 0;
  }
}

/* Figma draws the logo small in the narrow bar (AppBarStart Logo small, 24 tall). Only
   there may it scale down inside its box (the brand giving way, above): a wide bar keeps the whole logo,
   because a logo that may shrink to its box has no width of its own to claim in the bar's first column. */
@container style(--smbk-layout: narrow) {
  .smbk-header__logo {
    height: var(--smbk-size-icon-lg);
    max-width: 100%;
  }
}

/* The page links (their row is in bar.css): the large ones the large step apart. */
.smbk-header__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.smbk-header--size-lg .smbk-header__links {
  gap: var(--smbk-space-inline-lg);
}

/* The end: the call to action and the theme switch. */
.smbk-header__end {
  justify-content: flex-end;
  flex-shrink: 0;
}

/* The open menu, as Figma's open mobile header draws it: one divider under the bar, then the
   links and the call to action on one rhythm, each row a medium control tall and the extra-small
   stack step apart, the large inset in from the sides and above the menu's foot. A group of further
   links opened under a link keeps the same rhythm, its links set further in. */
.smbk-header__menu {
  padding: 0 calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

.smbk-header__menu-list {
  display: flex;
  flex-direction: column;
  gap: var(--smbk-space-stack-xs);
  margin: 0;
  padding: var(--smbk-space-stack-xs) 0 0;
  list-style: none;
}

.smbk-header__menu-list > li {
  display: flex;
  flex-direction: column;
  gap: var(--smbk-space-stack-xs);
}

.smbk-header__group {
  display: flex;
  flex-direction: column;
  gap: var(--smbk-space-stack-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}

.smbk-header__group[hidden] {
  display: none;
}

/* A group's links read as under the link that opened them: their words start the item's own side
   padding further in, while their fill still spans the row. */
.smbk-header__group .smbk-nav-item {
  padding-inline-start: calc(var(--smbk-space-inset-xl) + var(--smbk-space-inset-xl));
}

/* The call to action as the menu's last row, only in the narrow form: in a wide bar whose links have folded, it
   stays in the bar. */
.smbk-header__menu-cta {
  display: none;
  flex-direction: column;
  padding-top: var(--smbk-space-stack-xs);
}

.smbk-header__menu-cta > * {
  width: 100%;
}

/* ---- the looks' rows (their surfaces are in bar.css) ---- */

/* The second row has the bar's padding at its sides and foot. */
.smbk-header__second-row {
  padding: 0 calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

/* Floating hug: the three places side by side. */
.smbk-header--look-floating-hug .smbk-header__bar {
  grid-template-columns: auto auto auto;
}

/* Split: the row holds the two islands at its two ends, each an island a large control tall inside the bar's
   padding. */
.smbk-header--look-split .smbk-header__bar {
  display: flex;
  justify-content: space-between;
}

.smbk-header--look-split .smbk-header__start,
.smbk-header--look-split .smbk-header__trail {
  min-height: calc(var(--smbk-size-control-lg) + var(--smbk-space-inset-xl) + var(--smbk-space-inset-xl));
  padding: calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

.smbk-header--look-split .smbk-header__second-row {
  padding: calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

/* Centred: the links at the start, the brand in the middle, the end at the end. */
.smbk-header--look-centred .smbk-header__start {
  grid-area: 1 / 2;
  justify-self: center;
}

.smbk-header--look-centred .smbk-header__nav {
  grid-area: 1 / 1;
  justify-self: start;
}

/* ---- fold: in a wide space too narrow for the links, they go and the menu button takes their place, opening
   them under the bar; the call to action and the theme switch stay. The wrapper measures and sets it. ---- */

.smbk-header--fold-links .smbk-header__nav {
  display: none;
}

/* ---- the two forms (the shared parts are in bar.css): the open menu's foot padding after a fold. ---- */

.smbk-header--fold-links.smbk-header--expanded .smbk-header__menu {
  padding-bottom: calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
}

/* The narrow bar as Figma draws it: one row, brand and controls at its two ends; the medium inset above, below
   and at the end, the large one at the start. The menu button's own padding
   brings its icon level with the logo's inset from the other edge. */
@container style(--smbk-layout: narrow) {
  .smbk-header__bar {
    display: flex;
    justify-content: space-between;
    padding: calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
  }

  .smbk-header__menu-cta {
    display: flex;
  }

  .smbk-header__second-row {
    padding: 0 calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
  }

  .smbk-header--expanded .smbk-header__menu {
    padding-bottom: calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
  }

  /* Split: the islands have the narrow bar's padding. */
  .smbk-header--look-split .smbk-header__start,
  .smbk-header--look-split .smbk-header__trail,
  .smbk-header--look-split .smbk-header__second-row {
    min-height: 0;
    padding: calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-md) - var(--smbk-border-width-hairline)) calc(var(--smbk-space-inset-xl) - var(--smbk-border-width-hairline));
  }

  /* Centred: the theme switch steps aside so the brand can sit in the middle (bar.css), as Figma draws the centred
     phone bar. */
  .smbk-header--look-centred .smbk-header__theme {
    display: none;
  }
}

/* ---- motion: the menu's own is in bar.css. ---- */

/* A group of further links under an item of the open menu grows the same way. */
.smbk-header__group {
  interpolate-size: allow-keywords;
  overflow: clip;
  overflow-clip-margin: calc(var(--smbk-focus-ring-width) + var(--smbk-focus-ring-offset));
  transition-property: block-size, display;
  transition-duration: var(--smbk-motion-enter-duration);
  transition-timing-function: var(--smbk-motion-enter-easing);
  transition-behavior: allow-discrete;
}

.smbk-header__group[hidden] {
  block-size: 0;
  transition-duration: var(--smbk-motion-exit-duration);
  transition-timing-function: var(--smbk-motion-exit-easing);
}

@starting-style {
  .smbk-header--expanded .smbk-header__menu {
    block-size: 0;
    padding-bottom: 0;
  }

  .smbk-header__group:not([hidden]) {
    block-size: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .smbk-header__group {
    transition: none;
  }
}
```

## Tokens it reads

```json
{
  "border-width": {
    "hairline": {
      "$type": "dimension",
      "$value": "{{border-width.1}}",
      "$description": "Thin lines: dividers and almost every edge."
    }
  },
  "color": {
    "border": {
      "rim": {
        "$type": "color",
        "$value": "{{color.alpha.white.90}}",
        "$description": "The light rim that makes a surface look lit: fields, chosen pills, cards."
      },
      "subtle": {
        "$type": "color",
        "$value": "{{color.grey.300}}",
        "$description": "Dividers and quiet edges."
      },
      "focus": {
        "$type": "color",
        "$value": "{{color.red.600}}",
        "$description": "Keyboard focus ring on controls."
      }
    },
    "surface": {
      "default": {
        "$type": "color",
        "$value": "{{color.grey.100}}",
        "$description": "Standard surface: cards, panels, the header."
      }
    },
    "text": {
      "default": {
        "$type": "color",
        "$value": "{{color.grey.900}}",
        "$description": "Main text."
      }
    }
  },
  "radius": {
    "container": {
      "sm": {
        "$type": "dimension",
        "$value": "{{radius.8}}",
        "$description": "Corners of cards, panels and dialogs, small."
      }
    },
    "control": {
      "xs": {
        "$type": "dimension",
        "$value": "{{radius.2}}",
        "$description": "Corners of controls, extra small."
      }
    }
  },
  "elevation": {
    "raised": {
      "$type": "shadow",
      "$value": {
        "light": "0px 2px 8px 1px #373d431a, 0px 1px 2px 0px #373d431a",
        "dark": "0px 2px 8px 1px #00000026, 0px 1px 2px 0px #00000026"
      }
    }
  },
  "motion": {
    "state": {
      "duration": {
        "$type": "duration",
        "$value": "{{duration.200}}"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": "{{easing.cubic-in-out}}"
      }
    },
    "enter": {
      "duration": {
        "$type": "duration",
        "$value": "{{duration.320}}"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": "{{easing.expo-out}}"
      }
    },
    "exit": {
      "duration": {
        "$type": "duration",
        "$value": "{{duration.200}}"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": "{{easing.expo-in}}"
      }
    }
  },
  "space": {
    "0": {
      "$type": "dimension",
      "$value": "0px",
      "$description": "Raw space step, 0 px. Only for fixed distances inside a component; spacing that follows density uses space/inset, stack or inline."
    },
    "inset": {
      "md": {
        "$type": "dimension",
        "$value": "{{space.8}}",
        "$description": "Padding inside a component, medium."
      },
      "2xl": {
        "$type": "dimension",
        "$value": "{{space.24}}",
        "$description": "Padding inside a component, 2× large."
      },
      "xl": {
        "$type": "dimension",
        "$value": "{{space.16}}",
        "$description": "Padding inside a component, extra large."
      }
    },
    "gutter": {
      "xs": {
        "$type": "dimension",
        "$value": "{{space.8}}",
        "$description": "A section’s outer side padding on a phone (space/layout/gutter points here). The page itself has no gutter: each section carries its own."
      }
    },
    "stack": {
      "sm": {
        "$type": "dimension",
        "$value": "{{space.8}}",
        "$description": "Gap between things stacked one above another, small."
      },
      "md": {
        "$type": "dimension",
        "$value": "{{space.12}}",
        "$description": "Gap between things stacked one above another, medium."
      },
      "xs": {
        "$type": "dimension",
        "$value": "{{space.4}}",
        "$description": "Gap between things stacked one above another, extra small."
      }
    },
    "inline": {
      "lg": {
        "$type": "dimension",
        "$value": "{{space.12}}",
        "$description": "Gap between things side by side, large."
      },
      "md": {
        "$type": "dimension",
        "$value": "{{space.8}}",
        "$description": "Gap between things side by side, medium."
      },
      "xs": {
        "$type": "dimension",
        "$value": "{{space.4}}",
        "$description": "Gap between things side by side, extra small."
      },
      "sm": {
        "$type": "dimension",
        "$value": "{{space.6}}",
        "$description": "Gap between things side by side, small."
      },
      "2xl": {
        "$type": "dimension",
        "$value": "{{space.24}}",
        "$description": "Gap between things side by side, 2× large."
      }
    }
  },
  "size": {
    "layout": {
      "container": {
        "default": {
          "$type": "dimension",
          "$value": "{{size.layout.container.3xl}}",
          "$description": "The default page container max width: 3xl, 1360 px. Full width (the space available) is the Fill sizing in Figma and size/layout/container/full (100%) in code, which Figma cannot hold as a number."
        }
      }
    },
    "control": {
      "md": {
        "$type": "dimension",
        "$value": "{{size.40}}",
        "$description": "Height of a medium control, where controls insert by default: 40 comfortable, 32 compact. Dashboard recipe: use compact density; 40 for the page’s one main action and for forms; 32 for toolbars and filters, the size used most; 28 for actions inside table rows and cards. On phones switch to comfortable density, or give small controls an invisible 44 px tap area (size/target/comfortable)."
      },
      "lg": {
        "$type": "dimension",
        "$value": "{{size.48}}",
        "$description": "Height of a large control: 48 comfortable, 40 compact. A page may use it for its main call to action; apps use md. Dashboard recipe: use compact density; 40 for the page’s one main action and for forms; 32 for toolbars and filters, the size used most; 28 for actions inside table rows and cards. On phones switch to comfortable density, or give small controls an invisible 44 px tap area (size/target/comfortable)."
      }
    },
    "icon": {
      "xl": {
        "$type": "dimension",
        "$value": "{{size.32}}",
        "$description": "Icon box, extra large."
      },
      "lg": {
        "$type": "dimension",
        "$value": "{{size.24}}",
        "$description": "Icon box, large."
      }
    },
    "target": {
      "comfortable": {
        "$type": "dimension",
        "$value": "{{size.44}}",
        "$description": "Comfortable touch target (44)."
      }
    }
  },
  "blur": {
    "4": {
      "$type": "dimension",
      "$value": "4px",
      "$description": "Raw blur, 4 px."
    },
    "8": {
      "$type": "dimension",
      "$value": "8px",
      "$description": "Raw blur, 8 px."
    },
    "14": {
      "$type": "dimension",
      "$value": "14px",
      "$description": "Raw blur, 14 px."
    }
  },
  "focus": {
    "ring": {
      "width": {
        "$type": "dimension",
        "$value": "{{border-width.2}}",
        "$description": "Thickness of the focus ring."
      },
      "offset": {
        "$type": "dimension",
        "$value": "{{space.2}}",
        "$description": "Gap between a control and its focus ring."
      }
    }
  }
}
```

## Purpose

The bar across the top of a website: the brand, the main page links, a call to action and the theme switch. It is for a site someone reads. The app bar is its cousin for an application someone works in, where the end holds search and the user; the two share their looks and their parts.

## Anatomy

- The block, a raised bar with a hairline edge. With the background off it has no fill, edge or shadow and sits on the page behind it; the open menu keeps its surface.
- Five looks, the app bar's: floating (the default), floating hug (only as wide as its content, centered), flat (square, no edge or shadow, a hairline along its foot that the line setting turns off), split (the start on an island of its own, the links and the end on another) and centred (the links at the start, the brand in the middle).
- The panel part: the bar's surface when the bar has its own room or a frost; otherwise it is no box and the block draws the surface.
- The bar part, the row, at least a large control tall: the start part with the brand part and the logo part, then the trail part holding the nav part with the links part (the middle navigation items, or the large ones at the large size) and the end part (the call to action, the theme switch, and in a narrow space or once the links have folded the menu button part; in a narrow space the theme part is the theme switch's medium copy). In a wide space the bar is three columns: the start and the end share the room the links leave equally, so the links sit in the exact middle of the bar however long the brand or the end is. A link with children is a dropdown's opener, and its children are the dropdown's links. A link can carry a count or a dot after its label, as a navigation item does; a link inside the wide bar's dropdown carries neither.
- The logo part is the built-in simbolik logo, or a site's own picture files with their dark versions (`logoPicture`, the logo's `picture`): the whole logo, large in a wide space and small in a narrow one. Anything else goes in the brand's place (`brand`).
- The second row part, under the bar: a divider and the second row nav part, a row a control tall for further navigation such as line tabs.
- The menu part, under the bar when expanded: a divider, then the menu list part and, in a narrow space, the menu call-to-action part as its last row, every row a medium control tall and a small step apart. A group part opened under a link keeps the same rhythm, its links' words set further in than their link's, so they read as under it.
- The frost parts, three layers behind the bar when frosted.

## When to use

- The top of every page of a website.

## When not to use

- An application. Use the [app bar](app-bar.md), which has the same looks.
- A page with no navigation. A logo alone is not a header.

## Behavior

One markup serves both forms. In a wide space the links sit in the middle of the bar and the call to action at the end; when the bar is too short for the two ends to be equal, each keeps the room its content needs and the links move off the exact middle rather than overlap; in a narrow space both move into a menu that the menu button opens under the bar. A link with children shows a caret and opens its children instead of going to its own address, in both forms. In a wide space it opens them in the dropdown, hanging under it over the page, which grows to keep each child on one line; pressing it again, pressing Escape, choosing a link, clicking elsewhere or moving focus away closes it. A header can also be set to open these dropdowns on hover: a group then opens once a mouse rests on its link and closes a moment after the mouse leaves it and its panel, while a press still opens it for touch and the keyboard. In the narrow menu it opens them beneath it in place, and a group holding the current page starts open. A group can also be set to start open. The menu grows open under the bar with the enter motion and closes a little faster with the exit motion, and a group grows open under its item the same way; the wide dropdown drops in from its item. Under reduced motion all of them open and close at once. A page may switch the background while the header is on screen, as a site does when it keeps the bar clear at the top of the page and gives it its surface once content scrolls under it; the surface, edge and shadow then fade in and out with the state motion, under reduced motion too. The form follows the layout switch, so a wrapper can force either.

In a wide space too narrow for the links, the header folds them away rather than cutting anything off: the menu button takes their place and opens them under the bar, while the call to action and the theme switch stay in the row. The header measures its own row whenever its size or links change and once the fonts have loaded, and keeps the links whenever they fit, so they come back as soon as there is room. Before the page's script runs the row clips what it cannot hold, so the page never scrolls sideways. `fold={false}` keeps the links in the row; `fold="links"` holds them folded. Markup written by hand sets the fold modifier itself.

The header can have its own room (`zone`): the medium inset above and below a floating bar and a step in from the sides, a smaller one in a narrow space, and none around a flat bar; past the content width its row stays that wide and centered while the surface runs on. It is off by default, so a page that already leaves room around its header keeps its own. A frosted header has a blur behind it, strongest at the top and gone by its foot, so what scrolls under it is never read sharply there; it shows where the bar has no background of its own, or in its room, and is not drawn when the system asks for forced colors. In the centred look in a narrow space the theme switch steps aside so the brand can sit in the middle; the menu button stays.

The header does not hide while the reader scrolls down. A page that wants it to hide moves the header itself.

## Accessibility

### What it does for you

- A link's count and dot are part of its name, after a pause: "Issues, 18".
- The bar is a banner landmark; the links are a navigation landmark named "Main" by default and the menu one named "Menu".
- The menu button and each group opener carry their expanded state and control what they open. Escape closes the open menu and returns focus to the menu button, as the app bar's does.
- A group in the wide bar follows the disclosure navigation pattern of the WAI-ARIA Authoring Practices, which suits site navigation better than a menu: ordinary site navigation stays links and lists, not menus. The opener is a button; its children are ordinary links in a group named after it, and stay in the tab order. The down arrow on the opener opens the group on its first link; the arrows, Home and End move between the links; Escape closes and returns focus to the opener; Tab past the last link closes it and moves on.
- The current page carries the current-page marker in both forms, among the top-level links and among a group's children. The wide dropdown draws no mark for it, because its item has no such state.
- Parts hidden by the layout switch or folded away are removed from the tab order.
- In the centred look the brand is still first in reading and Tab order, before the links that are drawn to its left.

### What you must do

- Give the links another name when a page has more than one header.
- Give every word it says by itself, such as the menu button's name, in the page's language; each keeps its English unless the page gives its own.

### How to test

- With the keyboard only, Tab through the header: the brand comes first, every link, button and group opener shows its focus ring, and nothing hidden takes focus.
- Open a group in the wide bar with Enter or Down Arrow, move with the arrow keys, Home and End, then press Escape: it closes and focus returns to the opener.
- In the narrow form, open the menu with its button and close it with Escape: focus returns to the menu button.
- With a screen reader, the header is found as a banner landmark, its links as a navigation landmark by name, a count is read after the link's name, and the current page is read as current.
- With text at 200% and the page 320 pixels wide, the narrow form shows and every label stays whole.
- In a forced-color mode, the links, the current-page mark and the focus rings are still visible.

### Keyboard

| Key | What it does |
|---|---|
| Tab or Shift + Tab | Moves focus to the next or previous link, button or group opener. Tab past the last link of an open group closes it. |
| Enter | Follows the focused link or presses the focused button. |
| Enter or Space | On the menu button or a group opener, opens or closes what it controls. |
| Down Arrow | On a group opener, opens the group on its first link. |
| Down Arrow or Up Arrow | In an open group, moves between its links. |
| Home or End | In an open group, moves to its first or last link. |
| Escape | Closes the open group or menu and returns focus to its opener. |

## Usage rules

### Do

- Keep to five or six top-level links.
- Make the call to action the one thing the site most wants the reader to do.
- When the page keeps the header stuck to the top of the window as it scrolls, give the page's root a top scroll padding of the header height (`--smbk-size-header-height`) and the gap above the bar, so a link reached with Tab or a heading jumped to never lands under the bar.
- Turn on the header's own room only where the page leaves none around it, so the space is never doubled.

### Don't

- Nest groups more than one level.
- Put a search field in it. That is the app bar.
- Rely on a group's own address. A link with children only opens them, so give the section's overview page a link of its own among the children.
- Pass a second theme switch or call to action for the narrow form. Pass each once: in the narrow form the header shows a medium copy of the theme switch, and the call to action at the medium size across the menu.
