🐞 Patch Changes
- #3647
9f4efc3Thanks @gerstenbergit! - Adds Greek language support
9f4efc3 Thanks @gerstenbergit! - Adds Greek language support
#3491 28810f0 Thanks @JusticeMatthew! - Changes text overflow styling in Markdown content
⚠️ Potentially breaking change: This release switches the overflow-wrap CSS style for common elements to break-word. In most cases, there should be little visual impact, but this change can impact how layouts with implicit sizing (such as tables) look, improving legibility in how words wrap.
If you want to preserve the previous styling, you can add the following custom CSS to your site:
p, h1, h2, h3, h4, h5, h6, code { overflow-wrap: anywhere;}#3351 239698c Thanks @HiDeoo! - Ensures that Starlight CSS layer order is predictable in custom pages using the <StarlightPage> component.
Previously, due to how import order works in Astro, the <StarlightPage> component had to be the first import in custom pages to set up cascade layers used internally by Starlight to manage the order of its styles.
With this change, this restriction no longer applies and Starlight’s styles will be applied correctly regardless of the import order of the <StarlightPage> component.
#3521 ca7b771 Thanks @shubham-padia! - Fixes an issue where a vertical scrollbar could be displayed on the Starlight <Tabs> component when zooming the page
⚠️ Potentially breaking change: The <Tabs> component no longer uses margin-bottom and border-bottom to highlight the current tab. This is now done with a box-shadow. If you have custom styling for your tabs, you may need to update it.
If you want to preserve the previous styling, you can add the following custom CSS to your site:
starlight-tabs .tab { margin-bottom: -2px;}
starlight-tabs .tab > [role='tab'] { border-bottom: 2px solid var(--sl-color-gray-5); box-shadow: none;}
starlight-tabs .tab [role='tab'][aria-selected='true'] { border-color: var(--sl-color-text-accent);}#3549 1cf50eb Thanks @jacobdalamb! - Updates the default sans-serif system font stack, dropping support for the -apple-system and BlinkMacSystemFont font names used in older browsers. These are no longer needed in browsers officially supported by Starlight.
If you still need to support older browsers, you can add the following custom CSS to your site:
:root { --sl-font-system: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';}#3332 f61f99d Thanks @HiDeoo! - Adds a new markdown.processedDirs configuration option to specify additional directories where files should be processed by Starlight’s Markdown pipeline.
By default, Starlight’s processing only applies to Markdown and MDX content loaded using Starlight’s docsLoader(). This new option allows to extend this processing to other directories, which can be useful if you are rendering content from a custom content collection using the <StarlightPage> component and expect Starlight’s Markdown processing to be applied to that content as well.
#3555 547dc30 Thanks @Its-Just-Nans! - Improves the error message thrown when using a file in the public/ directory with Starlight’s customCss configuration option
#3496 b78fda4 Thanks @delucis! - Fixes invalid <head> output when configuration is missing:
<meta property="og:description" /> if Starlight’s description option is unset<link rel="canonical" /> and <meta property="og:url" /> if Astro’s site option is unset#3511 8727df1 Thanks @astrobot-houston! - Updates the seti:gitlab icon to match latest version from Seti UI Icons
#3479 2fec483 Thanks @gboubeta-uvigo! - Updates Galician UI translations
#3457 c6c0c51 Thanks @HiDeoo! - Deduplicates sitemap link tags in the head.
When enabling sitemap in Starlight, a <link rel="sitemap" href="/sitemap-index.xml"> tag is automatically added to the head of each page. Manually specifying sitemap link tags using the Starlight head configuration option or the head frontmatter field will now override the default sitemap link tag added by Starlight.
This change ensures that users manually adding the @astrojs/sitemap integration to the Astro integrations array for more fine-grained control over sitemap generation and also using the filenameBase integration option can customize the sitemap link tag in the head.
#3448 1fc7501 Thanks @dionysuzx! - Enlarges the Farcaster icon to better match other social icons
#3473 07204dd Thanks @gboubeta! - Fixes a typo in Galician table of contents label

#3427 c3b2d0f Thanks @delucis! - Fixes styling of labels that wrap across multiple lines in <Tabs> component
⚠️ Potentially breaking change: Tab labels now have a narrower line-height and additional vertical padding. If you have custom CSS targetting the <Tabs> component, you may want to double check the visual appearance of your tabs when updating.
If you want to preserve the previous styling, you can add the following custom CSS to your site:
.tab > [role='tab'] { line-height: var(--sl-line-height); padding-block: 0;}#3380 3364af3 Thanks @HiDeoo! - Makes head entry parsing stricter in Starlight config and content frontmatter.
⚠️ Potentially breaking change: Previously Starlight would accept a head entry for a meta tag defining some content which generates invalid HTML as <meta> is a void element which cannot have any child nodes. Now, it is an error to define a meta tag including some content.
If you see errors after updating, look for head entries in the Starlight configuration in the astro.config.mjs file or in the frontmatter of your content files that include a content property for a meta tag. To fix the error, move the content property to the attrs object with at least an additional attribute to identify the kind of metadata it represents:
head: { tag: 'meta', content: 'foo', attrs: { name: 'my-meta', content: 'foo', },},#3340 2018c31 Thanks @HiDeoo! - Adds missing vertical spacing between Markdown content and UI Framework components using client directives.
⚠️ Potentially breaking change: By default, Starlight applies some vertical spacing (--sl-content-gap-y) between Markdown content blocks. This change introduces similar spacing between Markdown content blocks and UI Framework components using client directives which was not present before.
If you were relying on the previous behavior, you can manually override the spacing by manually specifying the top margin on the component using custom CSS, e.g. by relying on a CSS class to target the component.
.my-custom-component { margin-top: 0;}#3416 fcc0633 Thanks @randomguy-2650! - Updates German UI translations to be more idiomatic.
#1640 d1b3828 Thanks @hippotastic! - Refactors various internal systems, improving code quality and maintainability.
#3421 97e8103 Thanks @andersk! - Removes an invalid value attribute from the language and theme selectors
#3422 9200fac Thanks @andersk! - Refactors collapsible sidebar sections and “on this page” dropdown to use <span> instead of <div>
#3341 10f6fe2 Thanks @HiDeoo! - Prevents potential build issues with the Astro Cloudflare adapter due to the dependency on Node.js builtins.
#3327 bf58c60 Thanks @delucis! - Fixes a routing bug for docs pages with a slug authored with non-normalized composition. This could occur for filenames containing diacritics in some circumstances, causing 404s.

#2261 778b743 Thanks @shubham-padia! - Adds support for using any of Starlight’s built-in icons in asides.
#3272 e7fe267 Thanks @delucis! - Adds a new generateId option to Starlight’s docsLoader()
This enables overriding the default sluggifier used to convert content filenames to URLs.
#3276 3917b20 Thanks @delucis! - Excludes banner content from search results
Previously, content set in banner in page frontmatter was indexed by Starlight’s default search provider Pagefind. This could cause unexpected search results, especially for sites setting a common banner content on multiple pages. Starlight’s default Banner component is now excluded from search indexing.
This change does not impact Banner overrides using custom components.
#3266 1161af0 Thanks @HiDeoo! - Adds support for custom HTML attributes on autogenerated sidebar links using the autogenerate.attrs option.
#3274 80ccff7 Thanks @HiDeoo! - Fixes an issue where some Starlight remark and rehype plugins were transforming Markdown and MDX content in non-Starlight pages.
⚠️ BREAKING CHANGE:
Previously, some of Starlight’s remark and rehype plugins, most notably the plugin transforming Starlight’s custom Markdown syntax for rendering asides, were applied to all Markdown and MDX content. This included content from individual Markdown pages and content from content collections other than the docs collection used by Starlight.
This change restricts the application of Starlight’s remark and rehype plugins to only Markdown and MDX content loaded using Starlight’s docsLoader(). If you were relying on this behavior, please let us know about your use case in the dedicated #starlight channel in the Astro Discord or by opening an issue.
#3266 1161af0 Thanks @HiDeoo! - Ensures invalid sidebar group configurations using the attrs option are properly reported as a type error.
Previously, invalid sidebar group configurations using the attrs option were not reported as a type error but only surfaced at runtime. This change is only a type-level change and does not affect the runtime behavior of Starlight which does not support the attrs option for sidebar groups.
#3274 80ccff7 Thanks @HiDeoo! - Prevents Starlight remark and rehype plugins from transforming Markdown and MDX content when using the Astro renderMarkdown() content loader API.
7bd02e3 Thanks @HiDeoo! - Fixes a potential issue with absolutePathToLang() plugin API not handling paths with spaces correctly.88f0d34 Thanks @HiDeoo! - Fixes an issue preventing to override the slug of a page with the slug frontmatter property using the / value.#3205 95d124a Thanks @sgalcheung! - Fixes an issue preventing to use the <StarlightPage> component when the docs content collection that Starlight uses does not exist.
#3206 e6ea584 Thanks @HiDeoo! - Fixes a text selection issue for heading with a clickable anchor link when using double click to select text in Chrome and Safari.
#3233 3064c40 Thanks @torn4dom4n! - Updates Vietnamese UI translations.
#3248 16c1239 Thanks @HiDeoo! - Prevents icons in the <Card> component from being shrunk in some narrow viewports.
#3225 21b93b8 Thanks @randomguy-2650! - Updates German UI translations
#3058 274cc06 Thanks @techfg! - Fixes display of focus indicator around site title
#3181 449c822 Thanks @HiDeoo! - Fixes an issue where all headings in Markdown and MDX content were rendered with a clickable anchor link, even in non-Starlight pages.
#3168 ca693fe Thanks @jsparkdev! - Updates Korean langage support with improvements and missing translations
#3153 ea31f46 Thanks @SuperKXT! - Fixes hover styles for highlighted directory in FileTree component.
#2905 b5232bc Thanks @HiDeoo! - Fixes a potential issue for projects with dynamic routes added by an user, an Astro integration, or a Starlight plugin where some styles could end up being missing.
#3165 80a7871 Thanks @KianNH! - Increases maxBuffer for an internal spawnSync() call to support larger Git commit histories when using Starlight’s lastUpdated feature.
#3158 d1f3c8b Thanks @heisenberg0924! - Adds Hungarian language support

#2322 f14eb0c Thanks @HiDeoo! - Groups all of Starlight’s CSS declarations into a single starlight cascade layer.
This change allows for easier customization of Starlight’s CSS as any custom unlayered CSS will override the default styles. If you are using cascade layers in your custom CSS, you can use the @layer CSS at-rule to define the order of precedence for different layers including the ones used by Starlight.
We recommend checking your site’s appearance when upgrading to make sure there are no style regressions caused by this change.
#3122 3a087d8 Thanks @delucis! - Removes default attrs and content values from head entries parsed using Starlight’s schema.
Previously when adding head metadata via frontmatter or user config, Starlight would automatically add values for attrs and content if not provided. Now, these properties are left undefined.
This makes it simpler to add tags in route middleware for example as you no longer need to provide empty values for attrs and content:
head.push({ tag: 'style', content: 'div { color: red }' attrs: {},});head.push({ tag: 'link', content: '' attrs: { rel: 'me', href: 'https://example.com' },});This is mostly an internal API but if you are overriding Starlight’s Head component or processing head entries in some way, you may wish to double check your handling of Astro.locals.starlightRoute.head is compatible with attrs and content potentially being undefined.
#3033 8c19678 Thanks @delucis! - Adds support for generating clickable anchor links for headings.
By default, Starlight now renders an anchor link beside headings in Markdown and MDX content. A new <AnchorHeading> component is available to achieve the same thing in custom pages built using <StarlightPage>.
If you want to disable this new Markdown processing set the markdown.headingLinks option in your Starlight config to false:
starlight({ title: 'My docs', markdown: { headingLinks: false, },}),⚠️ BREAKING CHANGE: The minimum supported version of Astro is now v5.5.0.
Please update Starlight and Astro together:
npx @astrojs/upgrade#2322 f14eb0c Thanks @HiDeoo! - Removes Shiki css-variables theme fallback.
⚠️ BREAKING CHANGE:
Previously, Starlight used to automatically provide a fallback theme for Shiki, the default syntax highlighter built into Astro if the configured Shiki theme was not github-dark.
This fallback was only relevant when the default Starlight code block renderer, Expressive Code, was disabled and Shiki was used. Starlight no longer provides this fallback.
If you were relying on this behavior, you now manually need to update your Astro configuration to use the Shiki css-variables theme to match the previous behavior.
import { defineConfig } from 'astro/config';
export default defineConfig({ markdown: { shikiConfig: { theme: 'css-variables', }, },});Additionally, you can use custom CSS to control the appearance of the code blocks. Here are the previously used CSS variables for the fallback theme:
:root { --astro-code-foreground: var(--sl-color-white); --astro-code-background: var(--sl-color-gray-6); --astro-code-token-constant: var(--sl-color-blue-high); --astro-code-token-string: var(--sl-color-green-high); --astro-code-token-comment: var(--sl-color-gray-2); --astro-code-token-keyword: var(--sl-color-purple-high); --astro-code-token-parameter: var(--sl-color-red-high); --astro-code-token-function: var(--sl-color-red-high); --astro-code-token-string-expression: var(--sl-color-green-high); --astro-code-token-punctuation: var(--sl-color-gray-2); --astro-code-token-link: var(--sl-color-blue-high);}