# Biome @biomejs/biome@2.5.13 — Release & Upgrade Intelligence
- **Product:** Biome (https://biomejs.dev)
- **Version:** @biomejs/biome@2.5.13
- **Released:** Sep 10, 2026
- **Impact Score:** 5/10
- **Breaking Changes:** Not verified
- **Canonical Analysis:** https://changelogs.us/biome/updates/biomejs-biome-2.5.13/

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.5.13. Source highlight: Added the nursery rule `useLayeredStyles`, which enforces that style rules are defined within a cascade layer and import rules to import its styles into a cascade layer.

## New Features
- feat(lint/js/vue): add useVueBaseImport
- feat(css): model numeric SCSS identifier parts
- feat(md): parse gfm markdown
- feat(lint/js): add noXorAsExponentiation
- feat: noUnsafeIframeSandbox
- feat(css_analyze): implement useLayeredStyles

## Improvements
- perf(css_parser): short-circuit SCSS unary operator detection
- perf(css_parser): exclude diagnostics from parser benchmarks
- perf(rowan): accelerate token lookup by offset
- perf(type_inference): avoid eager generic declaration inference
- perf(yaml_formatter): avoid copying unchanged scalars
- perf(rowan): specialize first and last token traversal

## Bug Fixes
- Added the nursery rule `useLayeredStyles`, which enforces that style rules are defined within a cascade layer and import rules to import its styles into a cascade layer.
- Added the nursery rule `useBetterDomTraversing`, which prefers `.firstChild`, `.firstElementChild`, `.closest()`, and merged `.querySelector()` calls over positional DOM traversal.
- Fixed #11610, #11611, #11612, #11615, and #11616: Biome no longer fully infers an imported generic declaration just to apply its type arguments, restoring type-aware lint performance for large libraries such as Zod. This improves `useRegexpExec`, `noFloatingPromises`, `noMisusedPromises`, `useNullishCoalescing`, and `noUnsafePlusOperands`.
- Fixed #7495: `noUselessConstructor` now ignores TypeScript constructors that forward at least one argument to `super`, preserving constructors that narrow the subclass's accepted parameter types. The exemption also applies when the parent and child signatures are identical; JavaScript and zero-argument forwarding behavior are unchanged.
- Fixed #7076: `useAriaPropsForRole` and `useFocusableInteractive` no longer report non-focusable elements with `role="separator"`. A separator with an explicit `tabIndex` or `tabindex` still requires `aria-valuenow`.
- Fixed #6571 so Grit plugins can capture and inspect multiple named import specifiers.

## Upgrade Command
```bash
npm install --save-dev --save-exact @biomejs/biome@2.5.13
```
