Pular para o conteúdo

Navbar

Componente de barra de navegação com layout flexível para cabeçalhos e barras de aplicativos.

import { Navbar } from 'asterui'

Navbar Básica

Navbar simples com título e botões de navegação.

import { Navbar, Button, Typography, Flex } from 'asterui'

function App() {
  return (
      <Navbar
        start={<Typography.Text strong className="text-xl">AsterUI</Typography.Text>}
        end={
          <Flex gap="sm">
            <Button variant="ghost">Home</Button>
            <Button variant="ghost">About</Button>
            <Button color="primary">Sign In</Button>
          </Flex>
        }
      />
    )
}

export default App

Com Menu Dropdown

Navbar com menu dropdown para opções adicionais.

import { Navbar, Button, Dropdown, Typography, Flex } from 'asterui'
import { ChevronDownIcon } from '@aster-ui/icons'

function App() {
  return (
      <Navbar
        start={<Typography.Text strong className="text-xl">AsterUI</Typography.Text>}
        end={
          <Flex gap="sm">
            <Button variant="ghost">Home</Button>
            <Dropdown>
              <Dropdown.Trigger>
                <Button variant="ghost">
                  Products
                  <ChevronDownIcon size="sm" className="ml-1" />
                </Button>
              </Dropdown.Trigger>
              <Dropdown.Menu>
                <Dropdown.Item>Product 1</Dropdown.Item>
                <Dropdown.Item>Product 2</Dropdown.Item>
                <Dropdown.Item>Product 3</Dropdown.Item>
              </Dropdown.Menu>
            </Dropdown>
            <Button variant="ghost">About</Button>
            <Button color="primary">Sign In</Button>
          </Flex>
        }
      />
    )
}

export default App

Com Ícone de Menu

Navbar com dropdown de menu hamburguer.

import { Navbar, Button, Dropdown, Typography } from 'asterui'

function App() {
  return (
      <Navbar
        start={
          <Dropdown>
            <Dropdown.Trigger>
              <Button variant="ghost" shape="circle">☰</Button>
            </Dropdown.Trigger>
            <Dropdown.Menu>
              <Dropdown.Item>Home</Dropdown.Item>
              <Dropdown.Item>Products</Dropdown.Item>
              <Dropdown.Item>About</Dropdown.Item>
              <Dropdown.Item>Contact</Dropdown.Item>
            </Dropdown.Menu>
          </Dropdown>
        }
        center={<Typography.Text strong className="text-xl">AsterUI</Typography.Text>}
        end={<Button color="primary">Sign In</Button>}
      />
    )
}

export default App

Variantes de Cores

Navbar com diferentes variantes de cor de fundo.

import { Navbar, Button, Typography, Flex } from 'asterui'

function App() {
  return (
      <Flex direction="column" gap="md">
        <Navbar
          color="neutral"
          start={<Typography.Text strong className="text-xl">Neutral</Typography.Text>}
          end={<Button variant="ghost">Action</Button>}
        />
        <Navbar
          color="primary"
          start={<Typography.Text strong className="text-xl">Primary</Typography.Text>}
          end={<Button variant="ghost">Action</Button>}
        />
        <Navbar
          color="secondary"
          start={<Typography.Text strong className="text-xl">Secondary</Typography.Text>}
          end={<Button variant="ghost">Action</Button>}
        />
      </Flex>
    )
}

export default App

Com Sombra

Navbar com sombra para aparência elevada.

import { Navbar, Button, Typography, Flex } from 'asterui'

function App() {
  return (
      <Navbar
        shadow="md"
        start={<Typography.Text strong className="text-xl">AsterUI</Typography.Text>}
        end={
          <Flex gap="sm">
            <Button variant="ghost">Home</Button>
            <Button color="primary">Sign In</Button>
          </Flex>
        }
      />
    )
}

export default App

Cantos Arredondados

Navbar com cantos arredondados para uma aparência mais suave.

import { Navbar, Button, Typography, Flex } from 'asterui'

function App() {
  return (
      <Navbar
        color="neutral"
        rounded="lg"
        start={<Typography.Text strong className="text-xl">AsterUI</Typography.Text>}
        end={
          <Flex gap="sm">
            <Button variant="ghost">Home</Button>
            <Button color="primary">Sign In</Button>
          </Flex>
        }
      />
    )
}

export default App
PropriedadeDescriçãoTipoPadrão
startConteúdo para a seção inicial da navbar (tipicamente logo/marca)React.ReactNode-
centerConteúdo para a seção central da navbarReact.ReactNode-
endConteúdo para a seção final da navbar (tipicamente ações/menu)React.ReactNode-
childrenConteúdo customizado que substitui o layout de três seçõesReact.ReactNode-
colorVariante de cor de fundo'base' | 'neutral' | 'primary' | 'secondary' | 'accent''base'
stickyTornar navbar fixa no topobooleanfalse
shadowProfundidade da sombra'none' | 'sm' | 'md' | 'lg' | 'xl''none'
roundedRaio da borda'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full''none'
classNameClasses CSS adicionaisstring-
  • Usa elemento semântico <nav> para semântica de navegação adequada
  • Suporta navegação por teclado para todos os elementos interativos
  • Botões de menu mobile devem ter rótulos descritivos para leitores de tela
  • Mantém visibilidade de foco para usuários de teclado
  • Menus dropdown seguem as melhores práticas ARIA para padrões de menu