Skip to main content
skill CX Codex

use-topbar — Claude Code skill: Aura topbar for Flows/Fusion

A skill that wires the @aura/topbar component into Flows/Fusion apps: breadcrumbs, theme switcher, Atlas launcher.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add cognitedata/builder-skills --skill use-topbar -a claude-code
Open on GitHub

What use-topbar does

@aura/topbar is a shadcn registry component, not an npm package. The skill walks the agent through the job: read package.json, the main layout file and the app config to pick up the app name and branding, run a configuration interview, install the component with the shadcn CLI, then wire the useThemeMode hook for light and dark switching.

The rules leave little room. Exactly one topbar per page, composed only from @aura/topbar primitives. If the shadcn CLI install fails, the skill tells you to surface the blocker instead of hand-rolling a header. Atlas opens the EOS sidebar, and its context comes from the separate integrate-fusion-agent skill; embedding your own chat UI in the topbar is off the table.

One step writes .cursor/hooks.json with a sessionStart hook so the topbar interview fires at the start of every Cursor session. If that file already exists, the entry is merged in rather than overwriting other hooks. Your tailwind.config also needs darkMode: 'class' — without it the theme toggle does nothing.

What it helps with

  • add one compliant topbar to a Flows/Fusion app
  • build breadcrumbs with clickable segments and the object name
  • wire light and dark switching through the useThemeMode hook
  • place Share, notifications, theme, Atlas and the user avatar in the right strip in order
  • trigger the topbar configuration interview at the start of each Cursor session

Example prompts for the agent

  • add the topbar to this Flows/Fusion app
  • set up breadcrumbs and the theme switcher in the topbar
  • run the topbar configuration interview

How to install use-topbar

1Skills CLI (Vercel)

npx skills add cognitedata/builder-skills --skill use-topbar -a claude-code

2Manually: put the files in place

~/.claude/skills/use-topbar/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/use-topbar/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about use-topbar

How do I install use-topbar in Claude?

Run npx skills add cognitedata/builder-skills --skill use-topbar -a claude-code. The skill lands in ~/.claude/skills/use-topbar/SKILL.md.

What does use-topbar do?

It installs the @aura/topbar shadcn registry component into a Flows/Fusion app and composes the bar: breadcrumbs, optional Tabs or Segmented, and a right strip with Share, notifications, theme, Atlas and the user avatar.

What does the topbar need to work?

The component installs through the shadcn CLI, and tailwind.config must set darkMode: 'class'. Context for the EOS sidebar comes from the integrate-fusion-agent skill.

Source text

SKILL.md · Apache-2.0
---
name: use-topbar
description: >-
  Wires the Aura Topbar (@aura/topbar) into Flows/Fusion apps: breadcrumbs,
  optional Tabs/Segmented, right strip (Share, notifications, theme, Atlas,
  user Avatar), light/dark. Atlas opens the EOS sidebar — wire context with
  integrate-fusion-agent; do not embed a chat UI. Use when adding a topbar,
  header, breadcrumbs, theme switcher, or Atlas launcher.
allowed-tools: Read, Glob, Grep, Write, Edit, Bash
---

# Topbar

`@aura/topbar` is the single, compliant top navigation bar for every authenticated Flows/Fusion app. It is a **shadcn registry component** (installed via `pnpm dlx shadcn@latest add @aura/topbar`), not an npm package.

- **Storybook:** https://cognitedata.github.io/aura/storybook/?path=/docs/primitives-topbar--docs
- **Full rules:** [RULES.md](RULES.md) · **Interview:** [INTERVIEW.md](INTERVIEW.md) · **Install + code:** [IMPLEMENTATION.md](IMPLEMENTATION.md)

> **Non-negotiables:** Exactly one Topbar per page, composed only from `@aura/topbar` primitives, installed via the shadcn CLI only. If installation fails, surface the blocker — never build a custom header fallback. See [RULES.md §1, §11, §12](RULES.md).

---

## Step 0 — Auto-prompt hook setup

Ensure the topbar interview is triggered at the start of every future Cursor session in this project.

1. Check whether `.cursor/hooks.json` exists in the project root.
2. If it does not exist, create it:

```json
{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "This is a Flows/Fusion application. Before implementing any UI or navigation work, read and follow the topbar skill and run the topbar configuration interview with the user."
      }
    ]
  }
}
```

3. If `.cursor/hooks.json` already exists without a topbar `sessionStart` entry, merge the entry above — do not overwrite unrelated hooks.
4. Confirm to the user, then continue.

---

## Step 1 — Pre-flight: read the app

Before asking any questions, read:

- `package.json` — package manager, existing UI deps, existing `@aura/topbar`
- `src/App.tsx` (or main layout file) — routing, existing dark-mode hook/context
- Flows/Fusion app config (`app.config.ts`, `fusion.config.ts`, manifest) — `displayName`, `name`, app mark / branding

Apply any found defaults and skip the corresponding interview questions. State what was inferred.

---

## Step 2 — Configuration interview (mandatory)

Run the full Q1–Q9 interview in [INTERVIEW.md](INTERVIEW.md) before writing any implementation code. Ask one question at a time; skip only questions that Step 1 already answered definitively.

---

## Steps 3–5 — Install, theme hook, implement

See [IMPLEMENTATION.md](IMPLEMENTATION.md) for:

- Installing `@aura/topbar` via the shadcn CLI (mandatory, no workarounds)
- `useThemeMode` hook wiring for light/dark switching
- Topbar component composition example and layout wrapper

---

## Step 6 — Compliance checklist

Verify before finishing (see [RULES.md §12](RULES.md) for the full enforcement checklist):

- [ ] Exactly **one** Topbar per page
- [ ] Left: `Avatar` application mark (**small**, **fjord**) → app name breadcrumb → object name breadcrumb (only when an object is open)
- [ ] Breadcrumb segments are interactive links — not static text
- [ ] Object dropdown (if present) only on the object name segment; actions are object-scoped only
- [ ] Inline metadata (if present) is a plain string, left-aligned after the breadcrumb — not centered
- [ ] Middle: **Tabs** or **Segmented control** at **small** if present; no sidebar; no primary CTA in the Topbar
- [ ] **Primary / app-specific actions** live in the content area **below** the Topbar
- [ ] Right strip order when used: **Share → Notifications → Theme → Atlas → user Avatar**; Share/Notifications/Theme **ghost small**; Atlas **secondary small** with leading icon + "Atlas" (opens EOS sidebar; default on if the app has AI — `integrate-fusion-agent`)
- [ ] Theme: **sun** in light mode, **moon** in dark mode; Menu with Light/Dark rows + checkmark on active; wired to `document.documentElement`
- [ ] `tailwind.config` has `darkMode: 'class'`

© cognitedata · Apache-2.0 · cognitedata/builder-skills

Similar skills

Everything for Frontend and UI →

From the same set12

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor