# Biome 2.5.9 — Biome CLI v2.5.9 - Product: Biome (https://whatsnew.fyi/product/biome) - Vendor: Biome - Date: 2026-08-17 - Version: 2.5.9 - Original notes: https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9 - Permalink: https://whatsnew.fyi/product/biome/releases/2.5.9 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — The CSS parser now recovers at declaration boundaries after bogus declarations, allowing subsequent valid declarations to be parsed - **changed** — Expanded the environment variable metadata used by biome rage to include BIOME_BINARY, BIOME_LOG_FILE, and RUST_BACKTRACE - **added** — Added a new nursery rule useNamedLayer which disallows anonymous cascade layers - **changed** — The HTML formatter now preserves meaningful blank lines in HTML, including spacing after elements with trailing spaces and blank lines between comment groups - **added** — Added the nursery rule useTailwindShorthandClasses, which suggests shorter Tailwind utility classes - **fixed** — The lint/nursery/useExpect rule now recognizes Vitest Browser Mode expect.element() calls as assertions - **fixed** — The CSS parser now accepts Tailwind container-query variant names in @variant, such as @xl and @max-xl - **fixed** — The noUndeclaredVariables, noUnusedImports, and noUnusedVariables rules now correctly recognise exported variables and functions declared in one embedded script block as usable from a sibling script block in Svelte and Vue components - **fixed** — Fixed the HTML formatter's whitespace handling for marquee, noscript, video, audio, and object elements - **added** — Added the nursery rule useAstroClientOnlyDirectiveValue, which reports Astro client:only directives without an initializer - **fixed** — The useGenericFontNames rule now treats math as a valid generic font family - **fixed** — The noComponentHookFactories rule now reports a use-prefixed variable only when a function is assigned to it directly ##### 2.5.9 ###### Patch Changes - [#11321](https://github.com/biomejs/biome/pull/11321) [`41386f3`](https://github.com/biomejs/biome/commit/41386f38935b299f1a1f759a2c7fdd5c2050bded) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#11315](https://github.com/biomejs/biome/issues/11315): The CSS parser now recovers at declaration boundaries after bogus declarations, allowing subsequent valid declarations to be parsed. - [#11248](https://github.com/biomejs/biome/pull/11248) [`57b197e`](https://github.com/biomejs/biome/commit/57b197e6d5a2432ff6904afff24125e4d8ec01cd) Thanks [@yanthomasdev](https://github.com/yanthomasdev)! - Expanded the environment variable metadata used by `biome rage` to include `BIOME_BINARY`, `BIOME_LOG_FILE`, and `RUST_BACKTRACE` as well as reworded explanations for better readability. - [#11377](https://github.com/biomejs/biome/pull/11377) [`a8798ea`](https://github.com/biomejs/biome/commit/a8798ea9f2569fab4524704c99a8e2fe45c2ca32) Thanks [@Netail](https://github.com/Netail)! - Added a new nursery rule [`useNamedLayer`](https://biomejs.dev/linter/rules/use-named-layer) which disallows anonymous cascade layers. ```css @layer { a { color: red; } } ``` - [#11327](https://github.com/biomejs/biome/pull/11327) [`6771cf5`](https://github.com/biomejs/biome/commit/6771cf5bd2e64f256468a33b811adec8e793d933) Thanks [@dyc3](https://github.com/dyc3)! - The HTML formatter now preserves meaningful blank lines in HTML, including spacing after elements with trailing spaces and blank lines between comment groups. ```diff