Skip to content

Navbar

The navbar configuration controls the top navigation menu links and search functionality.

Config File

src/config/navBarConfig.ts

Firefly provides built-in navigation link presets:

PresetDescription
LinkPreset.HomeHome page
LinkPreset.ArchiveArchive
LinkPreset.AboutAbout
LinkPreset.FriendsFriends
LinkPreset.SponsorSponsor
LinkPreset.GuestbookGuestbook
LinkPreset.BangumiBangumi

Custom links support the following properties:

PropertyTypeRequiredDescription
namestringYesLink name
urlstringYesLink URL
iconstringNoIcon (Iconify format)
externalbooleanNoExternal link
childrenarrayNoSubmenu items (supports nesting)

Example

ts
import { LinkPreset, type NavBarLink } from "../types/config";

const links: (NavBarLink | LinkPreset)[] = [
  LinkPreset.Home,
  LinkPreset.Archive,

  // Custom link with submenu
  {
    name: "Links",
    url: "/links/",
    icon: "material-symbols:link",
    children: [
      {
        name: "GitHub",
        url: "https://github.com/CuteLeaf/Firefly",
        external: true,
        icon: "fa7-brands:github",
      },
    ],
  },

  LinkPreset.Friends,
];

Search Configuration

PropertyTypeDefaultDescription
methodNavBarSearchMethodNavBarSearchMethod.PageFindSearch method, currently supports PageFind

Dynamic Navbar

The navbar automatically adjusts based on siteConfig.pages settings:

  • pages.guestbook: false — hides Guestbook link
  • pages.sponsor: false — hides Sponsor link
  • pages.bangumi: false — hides Bangumi link

TIP

Pre-installed icon sets: fa7-brands, fa7-regular, fa7-solid, material-symbols, simple-icons. Visit icones.js.org for icon codes. Install additional sets with: pnpm add @iconify-json/<icon-set-name>.