Skip to content

Starlight Changelog

0.28.1

Patch Changes

  • #2334 79b9ade Thanks @HiDeoo! - Fixes an issue with Expressive Code UI labels not displaying correctly.

0.28.0

Minor Changes

  • #1923 5269aad Thanks @HiDeoo! - Overhauls the built-in localization system which is now powered by the i18next library and available to use anywhere in your documentation website.

    See the “Using UI translations” guide to learn more about how to access built-in UI labels or your own custom strings in your project. Plugin authors can also use the new injectTranslations() helper to add or update translation strings.

    ⚠️ BREAKING CHANGE: The Astro.props.labels props has been removed from the props passed down to custom component overrides.

    If you are relying on Astro.props.labels (for example to read a built-in UI label), you will need to update your code to use the new Astro.locals.t() helper instead.

    ---
    import type { Props } from '@astrojs/starlight/props';
    // The `search.label` UI label for this page’s language:
    const searchLabel = Astro.locals.t('search.label');
    ---
  • #2285 7286220 Thanks @HiDeoo! - Adds support for translating sidebar badges.

  • #1923 5269aad Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: The minimum supported version of Astro is now 4.14.0

    Please update Astro and Starlight together:

    Terminal window
    npx @astrojs/upgrade

Patch Changes

  • #2327 d7a295e Thanks @tritao! - Fixes restoration of remark directives for nodes with custom data attached.

0.27.1

Patch Changes

  • #2303 f92791a Thanks @delucis! - Fixes resolution for the internal module Git virtual module in projects with special characters in the file path

0.27.0

Minor Changes

  • #1255 6f3202b Thanks @Fryuni! - Adds support for server-rendered Starlight pages.

    When building a project with hybrid or server output mode, a new prerender option on Starlight config can be set to false to make all Starlight pages be rendered on-demand:

    export default defineConfig({
    output: 'server',
    integrations: [
    starlight({
    prerender: false,
    }),
    ],
    });

Patch Changes

  • #2242 756e85e Thanks @delucis! - Refactors the logic for persisting and restoring sidebar state across navigations for better performance on slow or busy devices

  • #1255 6f3202b Thanks @Fryuni! - Improves performance of computing the last updated times from Git history.

    Instead of executing git for each docs page, it is now executed twice regardless of the number of pages.

  • #1255 6f3202b Thanks @Fryuni! - Fixes last updated times on projects with custom srcDir

0.26.4

Patch Changes

  • #2288 b15f725 Thanks @matthewp! - Safely handle Zod errors

    Prevents bugs where errors without the .received props would through and cause builds to fail unnecessarily.

0.26.3

Patch Changes

  • #2281 5062d30 Thanks @HiDeoo! - Fixes a potential text rendering issue that could include extra whitespaces for text containing colons.

  • #2279 62d59e2 Thanks @HiDeoo! - Fixes an issue with frontmatter schemas containing collection references used with the <StarlightPage /> component and an Astro version greater than 4.14.0.

0.26.2

Patch Changes

0.26.1

Patch Changes

  • #2219 74d4716 Thanks @HiDeoo! - Fixes a sidebar persistence issue when navigating between pages with different sidebar content.

0.26.0

Minor Changes

  • #1784 68f56a7 Thanks @HiDeoo! - Adds <LinkButton> component for visually distinct and emphasized call to action links

  • #2150 9368494 Thanks @delucis! - Adds state persistence across page navigations to the main site sidebar

  • #2087 caa84ea Thanks @HiDeoo! - Adds persistence to synced <Tabs> so that a user’s choices are reflected across page navigations.

  • #2051 ec3b579 Thanks @HiDeoo! - Adds a guideline to the last step of the <Steps> component.

    If you want to preserve the previous behaviour and hide the guideline on final steps, you can add the following custom CSS to your site:

    /* Hide the guideline for the final step in <Steps> lists. */
    .sl-steps > li:last-of-type::after {
    background: transparent;
    }
  • #1784 68f56a7 Thanks @HiDeoo! - Changes the hero component action button default variant from minimal to primary.

    ⚠️ BREAKING CHANGE: If you want to preserve the previous appearance, hero component action buttons previously declared without a variant will need to be updated to include the variant property with the value minimal.

    hero:
    actions:
    - text: View on GitHub
    link: https://github.com/astronaut/my-project
    icon: external
    variant: minimal
  • #2168 e044fee Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: Updates the <StarlightPage /> component sidebar prop to accept an array of SidebarItems like the main Starlight sidebar configuration in astro.config.mjs.

    This change simplifies the definition of sidebar items in the <StarlightPage /> component, allows for shared sidebar configuration between the global sidebar option and <StarlightPage /> component, and also enables the usage of autogenerated sidebar groups with the <StarlightPage /> component. If you are using the <StarlightPage /> component with a custom sidebar configuration, you will need to update the sidebar prop to an array of SidebarItem objects.

    For example, the following custom page with a custom sidebar configuration defines a “Resources” group with a “New” badge, a link to the “Showcase” page which is part of the docs content collection, and a link to the Starlight website:

    src/pages/custom-page/example.astro
    <StarlightPage
    frontmatter={{ title: 'My custom page' }}
    sidebar={[
    {
    type: 'group',
    label: 'Resources',
    badge: { text: 'New' },
    items: [
    { type: 'link', label: 'Showcase', href: '/showcase/' },
    {
    type: 'link',
    label: 'Starlight',
    href: 'https://starlight.astro.build/',
    },
    ],
    },
    ]}
    >
    <p>This is a custom page with a custom component.</p>
    </StarlightPage>

    This configuration will now need to be updated to the following:

    src/pages/custom-page/example.astro
    <StarlightPage
    frontmatter={{ title: 'My custom page' }}
    sidebar={[
    {
    label: 'Resources',
    badge: { text: 'New' },
    items: [
    'showcase',
    { label: 'Starlight', link: 'https://starlight.astro.build/' },
    ],
    },
    ]}
    >
    <p>This is a custom page with a custom component.</p>
    </StarlightPage>

    See the “Sidebar Navigation” guide to learn more about the available options for customizing the sidebar.

0.25.5

Patch Changes