CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/astro-starlight

Skills for setting up and customizing Astro Starlight documentation sites, covering project setup, custom theming, and component overrides.

100

Quality

100%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

overrides-reference.mdskills/starlight-custom-component/references/

Starlight Component Overrides Reference

Quick-reference for overridable components and common starlightRoute data properties.

Overridable Components

Full list: Overrides Reference

KeyDefault componentLocation in UI
BannerBanner.astroAnnouncement banner above header
HeaderHeader.astroTop navigation bar
FooterFooter.astroPage footer
PageTitlePageTitle.astroThe <h1> page title
HeroHero.astroLanding page hero (splash pages)
SocialIconsSocialIcons.astroSocial links in header
ThemeSelectThemeSelect.astroLight/dark toggle
SearchSearch.astroSearch component
SidebarSidebar.astroLeft sidebar
TableOfContentsTableOfContents.astroRight table of contents
PaginationPagination.astroPrevious/next page links
LastUpdatedLastUpdated.astroLast-updated date
EditLinkEditLink.astroEdit page link
PageFramePageFrame.astroOverall page layout
TwoColumnContentTwoColumnContent.astroContent + TOC layout

starlightRoute Properties

Access via Astro.locals.starlightRoute.

PropertyTypeDescription
idstringPage slug (empty for homepage)
slugstringAlias for id
entry.data.titlestringPage title from frontmatter
entry.data.descriptionstring | undefinedPage description
entry.data.template'doc' | 'splash'Page layout
entry.data.draftboolean | undefinedDraft status
entry.data.sidebar.hiddenboolean | undefinedHidden from sidebar
sidebarSidebarEntry[]Full sidebar tree
tocTocEntry[] | undefinedTOC entries
pagination.prevLink | undefinedPrevious page link
pagination.nextLink | undefinedNext page link
editUrlURL | undefinedEdit page URL
lastUpdatedDate | undefinedLast updated date

Full reference: Route Data Reference

Named Slots in Layout Components

Components that use named slots — must be transferred when wrapping:

PageFrame

<Default>
  <slot name="header" slot="header" />
  <slot />
  <slot name="footer" slot="footer" />
</Default>

TwoColumnContent

<Default>
  <slot />
  <slot name="right-sidebar" slot="right-sidebar" />
</Default>

Import Path

Default components are importable from:

import Default from '@astrojs/starlight/components/<ComponentName>.astro';

Complete Example: Conditional Banner

---
// src/components/HeaderWithBanner.astro
import Default from '@astrojs/starlight/components/Header.astro';
const showBanner = Astro.locals.starlightRoute.id.startsWith('guides/');
---
{showBanner && (
  <div class="guide-banner">These guides are for version 2.x</div>
)}
<Default><slot /></Default>

<style>
  .guide-banner {
    background: var(--sl-color-accent);
    color: var(--sl-color-white);
    padding: 0.5rem 1rem;
    text-align: center;
  }
</style>

skills

tile.json