Ir al contenido

Navbar

Componente de barra de navegación con diseño flexible para encabezados y barras de aplicación.

import { Navbar } from 'asterui'

Navbar básico

Navbar simple con título y botones de navegación.

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

Con menú desplegable

Navbar con menú desplegable para opciones adicionales.

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

Con icono de menú

Navbar con menú desplegable tipo hamburguesa.

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 color

Navbar con diferentes variantes de color de fondo.

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

Con sombra

Navbar con sombra para apariencia 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

Esquinas redondeadas

Navbar con esquinas redondeadas para una apariencia más 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
PropiedadDescripciónTipoPredeterminado
startContenido para la sección inicial del navbar (típicamente logo/marca)React.ReactNode-
centerContenido para la sección central del navbarReact.ReactNode-
endContenido para la sección final del navbar (típicamente acciones/menú)React.ReactNode-
childrenContenido personalizado que reemplaza el diseño de tres seccionesReact.ReactNode-
colorVariante de color de fondo'base' | 'neutral' | 'primary' | 'secondary' | 'accent''base'
stickyHacer el navbar fijo en la parte superiorbooleanfalse
shadowProfundidad de sombra'none' | 'sm' | 'md' | 'lg' | 'xl''none'
roundedRadio del borde'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full''none'
classNameClases CSS adicionalesstring-
  • Usa el elemento semántico <nav> para semántica de navegación adecuada
  • Soporta navegación por teclado para todos los elementos interactivos
  • Los botones del menú móvil deben tener etiquetas descriptivas para lectores de pantalla
  • Mantiene visibilidad del foco para usuarios de teclado
  • Los menús desplegables siguen las mejores prácticas de ARIA para patrones de menú