AstroEco is Releasing…
Display your GitHub releases using astro-loader-github-releases
Minor Changes
-
#3491
28810f0Thanks @JusticeMatthew! - Changes text overflow styling in Markdown content⚠️ Potentially breaking change: This release switches theoverflow-wrapCSS style for common elements tobreak-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
239698cThanks @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
ca7b771Thanks @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 usesmargin-bottomandborder-bottomto highlight the current tab. This is now done with abox-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
1cf50ebThanks @jacobdalamb! - Updates the default sans-serif system font stack, dropping support for the-apple-systemandBlinkMacSystemFontfont 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
f61f99dThanks @HiDeoo! - Adds a newmarkdown.processedDirsconfiguration 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.
Patch Changes
- Update
README.md(7deec94)
Patch Changes
- Update
README.md(7deec94)
Patch Changes
- #14916
f00aa2bThanks @Princesseuh! - Retry failed publish (again)
Patch Changes
-
#14876
b43dc7fThanks @florian-lefebvre! - Fixes a vite warning log during builds when using npm -
#14884
10273e0Thanks @florian-lefebvre! - Fixes a case where setting the status of a page to404in ssr would show an empty page (or404.astropage if provided) instead of using the current page
Patch Changes
- #14911
fcdf52fThanks @Princesseuh! - Retry failed publish
Patch Changes
- #14909
629d86bThanks @Princesseuh! - Fixes borked publish
Patch Changes
- #14740
abfed97Thanks @ArmandPhilippot! - Fixes link targets in documentation following repository relocation.
Patch Changes
- #14740
abfed97Thanks @ArmandPhilippot! - Fixes link targets in documentation following repository relocation.
Patch Changes
-
#14740
abfed97Thanks @ArmandPhilippot! - Fixes link targets in documentation following repository relocation. -
Updated dependencies [
abfed97]:- @astrojs/language-server@2.16.1
Patch Changes
-
#14740
abfed97Thanks @ArmandPhilippot! - Fixes link targets in documentation following repository relocation. -
#14710
c6903cdThanks @RomanHauksson! - Fixes the displayed description for the Content-intellisense setting to refer to the correct configuration file option
Patch Changes
-
#14769
b43ee71Thanks @adriandlam! - Fixes an unhandled rejection issue when using Astro with Vercel Workflow DevKit -
#14761
345eb22Thanks @ooga! - Updatesbuttonattributes types to allowcommandandcommandfor -
#14866
65e214bThanks @GameRoMan! - FixesAstro.globto be correctly marked as deprecated -
#14894
1ad9a5bThanks @delucis! - Fixes support for Astro component rendering in Vitest test suites using a “client” environment such ashappy-domorjsdom -
#14782
abed929Thanks @florian-lefebvre! - Improves syncing
Patch Changes
-
#3555
547dc30Thanks @Its-Just-Nans! - Improves the error message thrown when using a file in thepublic/directory with Starlight’scustomCssconfiguration option -
#3496
b78fda4Thanks @delucis! - Fixes invalid<head>output when configuration is missing:- Omits
<meta property="og:description" />if Starlight’sdescriptionoption is unset - Omits
<link rel="canonical" />and<meta property="og:url" />if Astro’ssiteoption is unset
- Omits
-
#3511
8727df1Thanks @astrobot-houston! - Updates theseti:gitlabicon to match latest version from Seti UI Icons
Minor Changes
-
#13880
1a2ed01Thanks @azat-io! - Adds experimental SVGO optimization support for SVG assetsAstro now supports automatic SVG optimization using SVGO during build time. This experimental feature helps reduce SVG file sizes while maintaining visual quality, improving your site's performance.
To enable SVG optimization with default settings, add the following to your
astro.config.mjs:import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { svgo: true, }, });
To customize optimization, pass a SVGO configuration object:
export default defineConfig({ experimental: { svgo: { plugins: [ 'preset-default', { name: 'removeViewBox', active: false, }, ], }, }, });
For more information on enabling and using this feature in your project, see the experimental SVG optimization docs.
-
#14810
2e845feThanks @ascorbic! - Adds a hint for code agents to use the--yesflag to skip prompts when runningastro add -
#14698
f42ff9bThanks @mauriciabad! - Adds theActionInputSchemautility type to automatically infer the TypeScript type of an action's input based on its Zod schemaFor example, this type can be used to retrieve the input type of a form action:
import { type ActionInputSchema, defineAction } from 'astro:actions'; import { z } from 'astro/zod'; const action = defineAction({ accept: 'form', input: z.object({ name: z.string() }), handler: ({ name }) => ({ message: `Welcome, ${name}!` }), }); type Schema = ActionInputSchema<typeof action>; // typeof z.object({ name: z.string() }) type Input = z.input<Schema>; // { name: string }
-
#14574
4356485Thanks @jacobdalamb! - Adds new CLI shortcuts available when runningastro preview:o+enter: open the site in your browserq+enter: quit the previewh+enter: print all available shortcuts
Patch Changes
-
#14813
e1dd377Thanks @ematipico! - Removespicocolorsas dependency in favor of the forkpiccolore. -
#14609
d774306Thanks @florian-lefebvre! - Improvesastro info -
#14796
c29a785Thanks @florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API onlyUpdates the default
subsetsto["latin"]Subsets have been a common source of confusion: they caused a lot of files to be downloaded by default. You now have to manually pick extra subsets.
Review your Astro config and update subsets if you need, for example if you need greek characters:
import { defineConfig, fontProviders } from "astro/config" export default defineConfig({ experimental: { fonts: [{ name: "Roboto", cssVariable: "--font-roboto", provider: fontProviders.google(), + subsets: ["latin", "greek"] }] } })
Patch Changes
- #14813
e1dd377Thanks @ematipico! - Removespicocolorsas dependency in favor of the forkpiccolore.
Patch Changes
- #14813
e1dd377Thanks @ematipico! - Removespicocolorsas dependency in favor of the forkpiccolore.
Patch Changes
- #14813
e1dd377Thanks @ematipico! - Removespicocolorsas dependency in favor of the forkpiccolore.
Patch Changes
-
#14786
758a891Thanks @mef! - Add handling of invalid encrypted props and slots in server islands. -
#14783
504958fThanks @florian-lefebvre! - Improves the experimental Fonts API build log to show the number of downloaded files. This can help spotting excessive downloading because of misconfiguration -
#14791
9e9c528Thanks @Princesseuh! - Changes the remote protocol checks for images to require explicit authorization in order to use data URIs.In order to allow data URIs for remote images, you will need to update your
astro.config.mjsfile to include the following configuration:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ images: { remotePatterns: [ { protocol: 'data', }, ], }, });
-
#14787
0f75f6bThanks @matthewp! - Fixes wildcard hostname pattern matching to correctly reject hostnames without dotsPreviously, hostnames like
localhostor other single-part names would incorrectly match patterns like*.example.com. The wildcard matching logic has been corrected to ensure that only valid subdomains matching the pattern are accepted. -
#14776
3537876Thanks @ktym4a! - Fixes the behavior ofpassthroughImageServiceso it does not generate webp. -
Updated dependencies [
9e9c528,0f75f6b]:- @astrojs/internal-helpers@0.7.5
- @astrojs/markdown-remark@6.3.9
Patch Changes
- Updated dependencies []:
- @astrojs/markdown-remark@6.3.9
Patch Changes
-
#14791
9e9c528Thanks @Princesseuh! - Changes the remote protocol checks for images to require explicit authorization in order to use data URIs.In order to allow data URIs for remote images, you will need to update your
astro.config.mjsfile to include the following configuration:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ images: { remotePatterns: [ { protocol: 'data', }, ], }, });
-
#14787
0f75f6bThanks @matthewp! - Fixes wildcard hostname pattern matching to correctly reject hostnames without dotsPreviously, hostnames like
localhostor other single-part names would incorrectly match patterns like*.example.com. The wildcard matching logic has been corrected to ensure that only valid subdomains matching the pattern are accepted.
Patch Changes
-
#14772
00c579aThanks @matthewp! - Improves the security of Server Islands slots by encrypting them before transmission to the browser, matching the security model used for props. This improves the integrity of slot content and prevents injection attacks, even when component templates don't explicitly support slots.Slots continue to work as expected for normal usage—this change has no breaking changes for legitimate requests.
-
#14771
6f80081Thanks @matthewp! - Fix middleware pathname matching by normalizing URL-encoded pathsMiddleware now receives normalized pathname values, ensuring that encoded paths like
/%61dminare properly decoded to/adminbefore middleware checks. This prevents potential security issues where middleware checks might be bypassed through URL encoding.
Patch Changes
- Update schema (
29a885d)
Major Changes
- #14427
e131261Thanks @florian-lefebvre! - Increases minimum Node.js version to 22.12.0 - (v6 upgrade guidance)
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Patch Changes
-
#14715
3d55c5dThanks @ascorbic! - Adds support for client hydration ingetContainerRenderer()The
getContainerRenderer()function is exported by Astro framework integrations to simplify the process of rendering framework components when using the experimental Container API inside a Vite or Vitest environment. This update adds the client hydration entrypoint to the returned object, enabling client-side interactivity for components rendered using this function. Previously this required users to manually callcontainer.addClientRenderer()with the appropriate client renderer entrypoint.See the
container-with-vitestdemo for a usage example, and the Container API documentation for more information on using framework components with the experimental Container API.
Minor Changes
- #14584
3c7ab17Thanks @Princesseuh! - Adds a new setting for disabling the Auto Import Cache. The cache can cause an issue where new files are not able to be automatically imported using autocomplete in certain cases. Check https://github.com/withastro/language-tools/issues/1035 for more details.
Minor Changes
- #14584
3c7ab17Thanks @Princesseuh! - Adds a new setting for disabling the Auto Import Cache. The cache can cause an issue where new files are not able to be automatically imported using autocomplete in certain cases. Check https://github.com/withastro/language-tools/issues/1035 for more details.
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Patch Changes
- #14621
e3175d9Thanks @GameRoMan! - Updatesviteversion to fix CVE
Major Changes (144fcef)
- Add
insMediasLoaderbuild-time loader that loads Instagram medias between builds - Add
liveInsMediasLoaderlive loader that loads Instagram medias on each request - Add exports including
LiveInsMediasLoaderError(extends Error) and the typesInsMediasLoaderUserConfig,LiveInsMediasLoaderUserConfig,LiveCollectionFilter, andLiveEntryFilter
Patch Changes
- Update
README.md(890cc93)
Minor Changes (348d6cf)
- Add
liveGithubReleasesLoaderlive loader that fetches releases at runtime on each request - Add exports including
LiveGithubReleasesLoaderError(extendsError) and the typesLiveGithubReleasesLoaderUserConfig,LiveCollectionFilter, andLiveEntryFilter - Update schema (for
mode: 'repoList')
Minor Changes
-
#14543
9b3241dThanks @matthewp! - Enables Netlify's skew protection feature for Astro sites deployed on Netlify. Skew protection ensures that your site's client and server versions stay synchronized during deployments, preventing issues where users might load assets from a newer deployment while the server is still running the older version.When you deploy to Netlify, the deployment ID is now automatically included in both asset requests and API calls, allowing Netlify to serve the correct version to every user. These are set for built-in features (Actions, View Transitions, Server Islands, Prefetch). If you are making your own fetch requests to your site, you can include the header manually using the
DEPLOY_IDenvironment variable:const response = await fetch('/api/endpoint', { headers: { 'X-Netlify-Deploy-ID': import.meta.env.DEPLOY_ID, }, });
Patch Changes
- Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
Patch Changes
-
#14570
c96711dThanks @matthewp! - Fix regression in 8.2.7: validate densities-based srcset widths against configured sizesWhen using
densitieswith the Vercel image adapter, calculated widths were not being validated against Vercel's configured sizes list. This caused images to fail when using densities, as Vercel would reject the invalid widths.This fix ensures densities-calculated widths are mapped to valid configured sizes, matching the behavior already implemented for the
widthsprop.
Minor Changes (34f18dc)
- Add
liveGithubPrsLoaderlive loader that fetches PRs at runtime on each request - Add exports including
LiveGithubPrsLoaderError(extendsError) and the typesLiveGithubPrsLoaderUserConfig,LiveCollectionFilter, andLiveEntryFilter - Add
maxEntriesoption - Update schema
Patch Changes
-
#3479
2fec483Thanks @gboubeta-uvigo! - Updates Galician UI translations -
#3457
c6c0c51Thanks @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 Starlightheadconfiguration option or theheadfrontmatter field will now override the default sitemap link tag added by Starlight.This change ensures that users manually adding the
@astrojs/sitemapintegration to the Astrointegrationsarray for more fine-grained control over sitemap generation and also using thefilenameBaseintegration option can customize the sitemap link tag in the head. -
#3448
1fc7501Thanks @dionysuzx! - Enlarges the Farcaster icon to better match other social icons -
#3473
07204ddThanks @gboubeta! - Fixes a typo in Galician table of contents label
Patch Changes
- #14536
9261996Thanks @florian-lefebvre! - Fixes a bug that caused too many files to be bundled in SSR
Patch Changes
-
#14536
9261996Thanks @florian-lefebvre! - Fixes a bug that caused too many files to be bundled in SSR -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
Patch Changes
- #14528
3597371Thanks @florian-lefebvre! - Fixes a case where a deprecation warning would be shown on Node 24
Minor Changes
-
#14441
62ec8eaThanks @upsuper! - Updates redirect handling to be consistent acrossstaticandserveroutput, aligning with the behavior of other adapters.Previously, the Node.js adapter used default HTML files with meta refresh tags when in
staticoutput. This often resulted in an extra flash of the page on redirect, while also not applying the proper status code for redirections. It's also likely less friendly to search engines.This update ensures that configured redirects are always handled as HTTP redirects regardless of output mode, and the default HTML files for the redirects are no longer generated in
staticoutput. It makes the Node.js adapter more consistent with the other official adapters.No change to your project is required to take advantage of this new adapter functionality. It is not expected to cause any breaking changes. However, if you relied on the previous redirecting behavior, you may need to handle your redirects differently now. Otherwise you should notice smoother redirects, with more accurate HTTP status codes, and may potentially see some SEO gains.
🚀 Features
- search: Support collection type filter, batch loading, search term highlighting on result page, and limit on displayed results - by @lin-stephanie in #44 (1c4a0)
🐞 Bug Fixes
- bg: Remove
dark:invert, use direct dark styles to prevent Safari 18+ navigation white flash - by @lin-stephanie in #30 (7126f) - toc: Ensure active heading scrolls into view in long TOC - by @lin-stephanie (218c2)
- Prevent horizontal scroll on narrow screens - by @lin-stephanie (c4fe5)
- Automatically wrap markdown tables in a scrollable div to prevent horizontal overflow - by @lin-stephanie (77938)
- Prevent search loading state from sticking when debounced requests are cancelled - by @lin-stephanie (49372)
- Prevent layout shift when toggling panel in Safari & hide non-HTML scrollbars sitewide - by @lin-stephanie (ef3b7)
- Automatically wrap markdown tables in a scrollable div to prevent horizontal overflow - by @lin-stephanie (c4885)
- Rename
manifest.webmanifest.jstoapp.webmanifest.jsand support subpath deployment - by @lin-stephanie (bfd90) - Restore scrollbar visibility (excluding search, nav, and toc panels) - by @lin-stephanie (91f94)
💅 Refactors
- Rewrite
Rosecomponent with custom element - by @lin-stephanie (ac6c2)
🏡 Chore
- Update JSDoc in
types.tsand tweak others - by @lin-stephanie (6155e) - Update docs - by @lin-stephanie (d6720)
- Update deps, Astro 5.12.1 → 5.14.4 (enable experimental
chromeDevtoolsWorkspaceandfailOnPrerenderConflict) - by @lin-stephanie (8dcee)
View changes on GitHub
Patch Changes
- Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
Patch Changes
- Updated dependencies []:
- @astrojs/markdown-remark@6.3.8
Patch Changes
- Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
Patch Changes
-
#14473
d9634d3Thanks @florian-lefebvre! - Fixes a bug that caused too many files to be bundled in SSR -
Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
Patch Changes
- Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
- @astrojs/markdown-remark@6.3.8
Last fetched: | Scheduled refresh: Every Saturday
See Customizing GitHub Activity Pages to configure your own
Inspired by releases.antfu.me