nav.desktop-menu-bar · Desktop menu bar

A nav pattern from Desktop OS, drawn alone below with this design's tokens and sample copy. Used in this design on: every page, as the nav. Give the section root data-pattern="nav.desktop-menu-bar". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A slim OS menu bar across the page: boxed logo and plain menu links left, a mono clock-style meta and a small bevel primary button right.
Slots
siteName, pages, hours, cta
Tokens
bg #E3E5DA · text #272921 · heading #121309 · accent #EDA12F · accent2 #55A9FF · Onest / Onest · radius 8px · space unit 4px (full list in design/tokens.json)
Section
vertical padding step 2

Pattern notes

  • One slim surface strip (8 × 16 px padding, radius 8, 1 px rule, bevel edge): boxed logo and plain menu links on the left, a mono clock-style meta such as opening hours (hidden on phones) and a small primary key on the right.
Northfold
Start a project
Layout tree (as in design/layout.json)
{
  "pattern": "nav.desktop-menu-bar",
  "kind": "nav",
  "slots": [
    "siteName",
    "pages",
    "hours",
    "cta"
  ],
  "tree": {
    "el": "box",
    "bg": "surface",
    "dir": "row",
    "gap": 4,
    "pad": [
      2,
      4
    ],
    "align": "center",
    "justify": "between",
    "children": [
      {
        "el": "box",
        "dir": "row",
        "gap": 6,
        "align": "center",
        "children": [
          {
            "el": "logo",
            "slot": "siteName",
            "style": "boxed"
          },
          {
            "el": "nav-links",
            "mobile": "hide",
            "slot": "pages",
            "dir": "row",
            "style": "plain"
          }
        ]
      },
      {
        "el": "box",
        "dir": "row",
        "gap": 4,
        "align": "center",
        "children": [
          {
            "el": "text",
            "mobile": "hide",
            "color": "textMuted",
            "slot": "hours",
            "role": "label",
            "font": "mono"
          },
          {
            "el": "button",
            "slot": "cta",
            "variant": "primary",
            "size": "sm"
          }
        ]
      }
    ]
  }
}
Component example: reference/nav.desktop-menu-bar.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>nav.desktop-menu-bar — Desktop OS</title>
<link rel="stylesheet" href="base.css">
<style>
  .menubar { margin-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 6px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 4px 0 0 var(--edge-panel); }
  .menubar .left, .menubar .right { display: flex; align-items: center; gap: 20px; }
  .logo { display: inline-grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--heading); border-radius: 6px; font-weight: 700; color: var(--heading); text-decoration: none; }
  .menu { display: flex; gap: 16px; list-style: none; padding: 0; }
  .menu a { color: var(--heading); text-decoration: none; font-weight: 500; padding: 4px 6px; border-radius: 4px; }
  .menu a:hover, .menu a[aria-current="page"] { background: var(--surface-alt); }
  .key.sm { padding: 8px 12px; font-size: 14px; }
</style>
</head>
<body>
<header class="wrap">
  <nav class="menubar" aria-label="Main">
    <div class="left">
      <a class="logo" href="/" aria-label="Fieldnote home">F</a>
      <ul class="menu hide-sm">
        <li><a href="/product" aria-current="page">Product</a></li>
        <li><a href="/pricing">Pricing</a></li>
        <li><a href="/docs">Docs</a></li>
        <li><a href="/changelog">Changelog</a></li>
      </ul>
    </div>
    <div class="right">
      <span class="mono muted hide-sm">Tue 09:41</span>
      <a class="key sm" href="/signup">Get started — free</a>
    </div>
  </nav>
</header>
</body>
</html>

Other patterns in this design

Whole design · Spec bundle (JSON) · On the style page