🐞 Patch Changes
- #3911
1686eccThanks @timothyjordan! - Keeps keyboard focus inside the mobile menu while it is open, preventing focus moving to hidden interactive elements in page content.
1686ecc Thanks @timothyjordan! - Keeps keyboard focus inside the mobile menu while it is open, preventing focus moving to hidden interactive elements in page content.#4008 58a3520 Thanks @FrancoKaddour! - Fixes the table of contents overflowing the right edge of the viewport when a custom --sl-content-width value exceeds available space
#4015 bdbfffc Thanks @delucis! - Fixes an issue where aside icons were rendered incorrectly in projects where Astro’s MDX integration had optimization disabled

#3951 1202dd4 Thanks @HiDeoo! - Adds support for Astro v7, drops support for Astro v6.
⚠️ BREAKING CHANGE: Astro v6 is no longer supported. Make sure you update Astro and any other official integrations at the same time as updating Starlight:
npx @astrojs/upgradeCommunity Starlight plugins and Astro integrations may also need to be manually updated to work with Astro v7. If you encounter any issues, please reach out to the plugin or integration author to see if it is a known issue or if an updated version is being worked on.
⚠️ BREAKING CHANGE: This release drops official support for Chromium-based browsers prior to version 111 (released 07 March 2023) and Safari-based browsers prior to version 16.4 (released 27 March 2023). You can find a list of currently supported browsers and their versions using this browserslist query.

#3923 edf2e6b Thanks @Princesseuh! - Adds support for Astro 6.4 and the new Sätteri Markdown processor.
It is now possible to opt into using Astro’s 6.4 Sätteri Markdown processor by installing the @astrojs/markdown-satteri package and configuring it in your astro.config.mjs file:
import { defineConfig } from 'astro/config';import { satteri } from '@astrojs/markdown-satteri';
export default defineConfig({ markdown: { processor: satteri(), },});⚠️ BREAKING CHANGE: The minimum supported version of Astro is now v6.4.5.
Please update Starlight and Astro together:
npx @astrojs/upgradeCommunity Starlight plugins and Astro integrations may also need to be manually updated to work with Sätteri. If you encounter any issues, please reach out to the plugin or integration author to see if it is a known issue or if an updated version is being worked on.
edf2e6b Thanks @Princesseuh! - Updates Expressive Code to version 0.43.1.#3910 dddf405 Thanks @andreialba! - Improves Romanian UI translations
#3924 02f2ce1 Thanks @BouRock! - Improves Turkish UI translations
#3928 11a7ed2 Thanks @delucis! - Updates Pagefind to v1.5 and adds support for Pagefind’s new diacriticSimilarity and metaWeights advanced ranking options
#3927 e944870 Thanks @HiDeoo! - Refactors internal file path handling for Starlight content collections.
#3885 010eed1 Thanks @ArmandPhilippot! - Fixes the version mentioned in an error message related to autogenerated sidebar groups support.
#3887 b3c6990 Thanks @delucis! - Adds 13 new icons: clock, desktop, mobile-android, window, database, server, code-branch, notes, question, question-circle, analytics, padlock, and solidjs.

#3618 dcf6d09 Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: This release changes how autogenerated links work in Starlight’s sidebar configuration.
If you have sidebar groups using the autogenerate key, you must now wrap that configuration in an items array:
{ label: 'My group', autogenerate: { directory: 'some-dir' }, items: [{ autogenerate: { directory: 'some-dir' } }],}This change unlocks the possibility to mix autogenerated links and other links in a single group, for example:
{ label: 'Mixed group', items: [ 'example-page', { autogenerate: { directory: 'examples' } }, { label: 'More examples', link: 'https://example.com' }, ],}This release also updates the shape of autogenerated sidebar entries in route data. Autogenerated links and groups in Astro.locals.starlightRoute.sidebar now include an autogenerate object with the configured directory value:
{ type: 'link', label: 'Example', href: '/examples/example/', isCurrent: false, autogenerate: { directory: 'examples' }}#3618 dcf6d09 Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: This release changes the default collapsed state of autogenerated sidebar subgroups.
Autogenerated subgroups no longer inherit the collapsed value from their parent group. They are now expanded by default unless explicitly configured with autogenerate.collapsed.
If your sidebar configuration relies on a collapsed parent group to also collapse its autogenerated subgroups, update your configuration to set autogenerate.collapsed to true:
{ label: 'Reference', collapsed: true, items: [ { autogenerate: { directory: 'reference' } }, { autogenerate: { directory: 'reference', collapsed: true } }, ],}#3845 4d755f5 Thanks @delucis! - Adds a <link rel="alternate" hreflang="x-default" href="..."> tag pointing to the default locale in multilingual sites. The x-default alternate is used as a signal of which language to fall back to if no other is available. Learn more in Google’s SEO localization docs.
#3862 ec70630 Thanks @itrew! - Makes spacing of items in nested lists more consistent
#3872 417a66c Thanks @tats-u! - Enables the CSS property text-autospace in Chinese and Japanese documents.
If you would prefer to disable autospacing in Chinese and Japanese pages, you can add the following custom CSS to your site:
[lang]:where(:lang(zh, ja)) { text-autospace: initial;}#3797 9764ebd Thanks @delucis! - Avoids the risk of layout shift when users expand and collapse sidebar groups
This release can introduce additional padding to the site sidebar on certain devices to reserve space for scrollbars. You may wish to inspect your site sidebar visually when upgrading.
If you would prefer to keep the previous styling, you can add the following custom CSS to your site:
.sidebar-pane { scrollbar-gutter: auto;}#3858 6672c35 Thanks @delucis! - Updates i18next, used for Starlight’s localization APIs, from v23 to v26
There should not be any user-facing changes from this update
#3799 313611b Thanks @JosefJezek! - Improves Czech UI translations
#3770 6e7bed1 Thanks @gameroman! - Adds examples to the inline documentation for title in the Starlight configuration object
#3801 fedd48b Thanks @delucis! - Fixes missing draft content warning in dev on pages using the hero layout
#3759 f24ce99 Thanks @MilesChou! - Fixes an issue where monolingual sites using a region-specific locale (e.g., zh-TW) as the default would incorrectly display base language translations (e.g., zh Simplified Chinese) instead of the region-specific ones (e.g., zh-TW Traditional Chinese).
#3768 a4c6c20 Thanks @delucis! - Improves performance of sidebar generation for sites with very large sidebars

#3644 0d2e7ed Thanks @HiDeoo! - Adds support for Astro v6, drops support for Astro v5.
⚠️ BREAKING CHANGE: Astro v5 is no longer supported. Make sure you update Astro and any other official integrations at the same time as updating Starlight:
npx @astrojs/upgradeCommunity Starlight plugins and Astro integrations may also need to be manually updated to work with Astro v6. If you encounter any issues, please reach out to the plugin or integration author to see if it is a known issue or if an updated version is being worked on.
⚠️ BREAKING CHANGE: Drops support for content collections backwards compatibility.
In Astro 5.x, projects could delay upgrading to the new Content Layer API introduced for content collections because of some existing automatic backwards compatibility that was not previously behind a flag. This meant that it was possible to upgrade from Astro 4 to Astro 5 without updating your content collections, even if you had not enabled the legacy.collections flag. Projects would continue to build, and no errors or warnings would be displayed.
Astro v6.0 now removes this automatic legacy content collections support, along with the legacy.collections flag.
If you experience content collections errors after updating to v6, check your project for any removed legacy features that may need updating to the Content Layer API. See the Starlight v0.30.0 upgrade guide for detailed instructions on upgrading legacy collections to the new Content Layer API.
If you are unable to make any changes to your collections at this time, including Starlight’s default docs and i18n collections, you can enable the legacy.collectionsBackwardsCompat flag to upgrade to v6 without updating your collections. This temporary flag preserves some legacy v4 content collections features, and will allow you to keep your collections in their current state until the legacy flag is no longer supported.
#3704 375edcc Thanks @florian-lefebvre! - Fixes autocomplete for components exported from @astrojs/starlight/components/*
⚠️ Potentially breaking change: This change moves some files used in Starlight’s component internals out of the components/ directory. Direct use of these files was not and is not officially supported. If you previously imported TableOfContents/starlight-toc.ts, TableOfContents/TableOfContentsList.astro, Icons.ts, or SidebarPersistState.ts, please review your code when updating.
#3729 3642625 Thanks @delucis! - Improves Starlight’s default body font stack to better support languages such as Chinese, Japanese, and Korean on Windows.
For most users there should be no visible change.
If you would prefer to keep the previous font stack, you can add the following custom CSS to your site:
:root { --sl-font-system: ui-sans-serif, system-ui, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';}#3598 fff38d5 Thanks @HiDeoo! - Makes hover styles consistent in Starlight’s navigation bar
Previously, the social icon links and language/theme switchers in Starlight’s navigation bar, dimmed on hover. After this change, they now increase in contrast on hover instead. This matches hover behavior elsewhere, for example in the sidebar, table of contents, or search button.
⚠️ Potentially breaking change: this is a subtle change to the hover style colors. If you want to preserve the previous styling, you can add the following custom CSS to your site:
starlight-theme-select label,starlight-lang-select label { color: var(--sl-color-gray-1);
&:hover { color: var(--sl-color-white); }}
.social-icons a:hover { color: var(--sl-color-text-accent); opacity: 0.66;}a562096 Thanks @mschoeffmann! - Adds icons for Chrome, Edge, Firefox, and Safari0ba556d Thanks @controversial! - Excludes the accessible labels for heading anchor links from Pagefind results#3534 703fab0 Thanks @HiDeoo! - Fixes support for running builds when npx is unavailable.
Previously, Starlight would spawn a process to run the Pagefind search indexing binary using npx. On platforms where npx isn’t available, this could cause issues. Starlight now runs Pagefind using its Node.js API to avoid a separate process. As a side effect, you may notice that logging during builds is now less verbose.
#3656 a0e6368 Thanks @delucis! - Fixes several edge cases in highlighting the current page heading in Starlight’s table of contents
#3663 00cbf00 Thanks @lines-of-codes! - Adds Thai language support
#3658 ac79329 Thanks @delucis! - Avoids adding redundant aria-current="false" attributes to sidebar entries
#3382 db295c2 Thanks @trueberryless! - Fixes an issue where the mobile table of contents is unable to find the first heading when a page has a tall banner.
292666c Thanks @maxchang3! - Prevents unwanted font size adjustments on iOS after orientation changes.