Referência de Substituição
Você pode substituir os componentes padrões do Starlight fornecendo o caminho do componente a ser substituido no campo components
nas configurações do Starlight.
Esta página lista todos os componentes disponíveis para substituição e links do GitHub para a implementação padrão.
Leia mais em Guia de Substituição.
Props de componentes
Todos os componentes podem acessar o objeto padrão Astro.props
que contém informações sobre a página em que se encontra.
Para tipar seus componentes personalizados, importe o tipo Props
do Starlight:
---
import type { Props } from '@astrojs/starlight/props';
const { hasSidebar } = Astro.props;
// ^ tipo: boolean
---
Assim você terá autocomplete e tipos quando acessar Astro.props
.
Props
O Starlight passará os seguintes props aos seus componentes personalizados.
dir
Tipos: 'ltr' | 'rtl'
Direção de escrita da página.
lang
Tipos: string
Etiqueta BCP-47 do local da página atual, ex: en
, zh-CN
, ou pt-BR
.
locale
Tipos: string | undefined
O caminho base de onde o idioma é servido. undefined
para slugs do locale raiz.
slug
Tipos: string
O slug da página atual, gerado a partir do nome do arquivo.
id
Tipos: string
ID único para a página, baseado no nome do arquivo.
isFallback
Tipos: true | undefined
Será true
se a página não tiver tradução no idioma atual e estiver utilizando conteúdo de fallback do local raiz.
Usado apenas em site multilíngues.
entryMeta
Tipos: { dir: 'ltr' | 'rtl'; lang: string }
Metadados do local do conteúdo da página. Pode ser diferente do local atual quando a página estiver utilizando conteúdo de fallback.
entry
A entrada da coleção de conteúdo do Astro para a página atual.
Inclui valores do frontmatter para a página atual em entry.data
.
entry: {
data: {
title: string;
description: string | undefined;
// etc.
}
}
Leia mais sobre as propriedades desse objeto na referência de Coleção de Conteúdo Astro
sidebar
Tipos: SidebarEntry[]
Entradas de navegação da barra lateral na página.
hasSidebar
Tipos: boolean
Se a barra lateral será ou não exibida na página.
pagination
Tipos: { prev?: Link; next?: Link }
Links para a próxima página e a anterior na barra lateral, se ativado.
toc
Tipos: { minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined
Sumário da página, se ativado.
headings
Tipos: { depth: number; slug: string; text: string }[]
Arranjo de todos os títulos Markdown extraídos da página atual.
Utilize toc
em vez disso se você deseja construir um componente de sumário que respeita as configurações do Starlight.
lastUpdated
Tipos: Date | undefined
Objeto Date
JavaScript que representa quando a página foi atualizada pela última vez, se ativado.
editUrl
Tipos: URL | undefined
Objeto URL
para o endereço onde a página poderá ser editada, se ativado.
Componentes
Head
Estes componentes são renderizados dentro do <head>
de cada página.
Deve-se apenas incluir elementos permitidos dentro do <head>
Head
Componente padrão: Head.astro
Componente renderizado dentro do <head>
de cada página.
Contém tags importantes como <title>
, e <meta charset="utf-8">
.
Substitua esse componente em último caso.
Se possível, dê preferência as opções head
de configuração do Starlight.
ThemeProvider
Componente padrão: ThemeProvider.astro
Componente renderizado dentro do <head>
que configura o suporte para o tema claro/escuro.
A implementação padrão embute um script e um <template>
utilizado pelo script em <ThemeSelect />
.
Acessibilidade
SkipLink
Componente padrão: SkipLink.astro
Para acessibilidade, esse componente é renderizado como primeiro elemento do <body>
, é um link para o conteúdo principal da página atual.
A implementação padrão fica invisível até o usuário focar nela utilizando a tecla Tab no teclado.
Layout
Estes componentes são responsáveis por dispor os componentes do Starlight e gerenciar a visualização através dos breakpoints. Substituí-los gera uma complexidade significativa. Se possível, prefira substituir componentes mais específicos.
PageFrame
Componente padrão: PageFrame.astro
Componente de layout que amarra a maioria do conteúdo da página.
A implementação padrão monta o layout header–sidebar–main. Nele há slots nomeados header
e sidebar
, além do slot padrão para o conteúdo principal.
Também renderiza o <MobileMenuToggle />
para dar suporte ao abrir/fechar a barra lateral em viewports menores (mobile).
MobileMenuToggle
Componente padrão: MobileMenuToggle.astro
Componente renderizado dentro do <PageFrame>
, responsável por abrir ou fechar a barra lateral em viewports menores (mobile).
TwoColumnContent
Componente padrão: TwoColumnContent.astro
Componente de layout que amarra a coluna central e a barra da direita (sumário). A implementação padrão alterna o layout entre uma coluna, em viewport estreitas; e duas colunas, em viewports maiores.
Header
Estes componentes renderizam a barra de navegação superior do Starlight
Header
Componente padrão: Header.astro
O componente Header é exibido no início de cada página.
A implementação padrão exibe <SiteTitle />
, <Search />
, <SocialIcons />
, <ThemeSelect />
, e <LanguageSelect />
.
SiteTitle
Componente padrão: SiteTitle.astro
Componente renderizado no início do Header que exibe o título do site. A implementação padrão inclui a lógica para renderizar os logos definidos nas configurações do Starlight.
Search
Componente padrão: Search.astro
Componente utilizado para renderizar a interface de busca. A implementação padrão inclui o botão no cabeçalho e o código para exibir o modal de busca quando for clicado e carregar a interface do Pagefind.
SocialIcons
Componente padrão: SocialIcons.astro
Componente renderizado no cabeçalho da página, incluindo links das mídias sociais.
A implementação padrão utiliza a opção social
nas configurações do Starlight para renderizar os links e ícones.
ThemeSelect
Componente padrão: ThemeSelect.astro
Componente renderizado no cabeçalho da página que permite aos usuários selecionar o tema preferido.
LanguageSelect
Componente padrão: LanguageSelect.astro
Componente renderizado no cabeçalho da página que permite escolher o idioma.
Global Sidebar
A barra lateral do Starlight inclue a navegação principal do site. Em telas menores fica invisível, podendo ser exibido via botão de dropdown.
Sidebar
Componente padrão: Sidebar.astro
Componente que contém a navegação global, renderizado ao lado do conteúdo da página.
A implementação padrão exibe a barra lateral em viewports largas o suficiente e escondido sob um menu dropdown em viewports estreitas (mobile).
Também renderiza o <MobileMenuFooter />
que exibe itens adicionais dentro do menu mobile.
MobileMenuFooter
Componente padrão: MobileMenuFooter.astro
Componente renderizado no final do menu dropdown mobile.
A implementação padrão renderiza <ThemeSelect />
e <LanguageSelect />
.
Page Sidebar
A barra lateral do Starlight é responsável por exibir o sumário delineando os subtítulos da página atual. Em viewports estreitas, fica sob um menu dropdown fixo.
PageSidebar
Componente padrão: PageSidebar.astro
Componente renderizado ao lado do conteúdo da página principal para exibir o sumário.
A implementação padrão renderiza <TableOfContents />
e <MobileTableOfContents />
.
TableOfContents
Componente padrão: TableOfContents.astro
Componente que renderiza o sumário da página atual em viewports largas.
MobileTableOfContents
Componente padrão: MobileTableOfContents.astro
Componente que renderiza o sumário da página atual em viewports estreitas (mobile).
Conteúdo
Componentes renderizados na coluna central da página.
Banner
Componente padrão: Banner.astro
Componente banner renderizado no início de cada página.
A implementação padrão utiliza o valor do frontmatter banner
para decidir se renderiza o banner ou não.
ContentPanel
Componente padrão: ContentPanel.astro
Componente de layout que amarra as seções da coluna central.
PageTitle
Componente padrão: PageTitle.astro
Componente contendo o elemento <h1>
da página atual.
Certifique-se de adicionar id="_top"
ao elemento <h1>
assim como implementação padrão.
FallbackContentNotice
Componente padrão: FallbackContentNotice.astro
Aviso exibido aos visitantes da página quando a tradução para o idioma atual não estiver disponível. Apenas utilizado em site multilíngue.
Hero
Componente padrão: Hero.astro
Componente renderizado no início da página quando hero
tiver configurado no frontmatter.
A implementação padrão exibe um título grande, tagline, links de chamada de ação, e opcionalmente, uma imagem junto.
MarkdownContent
Componente padrão: MarkdownContent.astro
Componente renderizado ao redor do conteúdo principal de cada página. A implementação padrão adiciona estilos para o conteúdo Markdown.
Footer
Estes componentes são renderizados no final da coluna de conteúdo principal da página.
Footer
Componente padrão: Footer.astro
Componente do rodapé exibido no final de cada página.
A implementação padrão exibe <LastUpdated />
, <Pagination />
, e <EditLink />
.
LastUpdated
Componente padrão: LastUpdated.astro
Componente renderizado no rodapé da página que a data de última atualização.
EditLink
Componente padrão: EditLink.astro
Componente renderizado no rodapé da página que exibe o link de onde a página poderá ser editada.
Pagination
Componente padrão: Pagination.astro
Componente renderizado no rodapé da página que exibe setas de navegação entre a próxima página e a anterior.