Skip to content

feat(service): treat html style attributes as CSS - #11080

Merged
ematipico merged 4 commits into
mainfrom
dyc3/html-style-attribute-css
Aug 4, 2026
Merged

feat(service): treat html style attributes as CSS#11080
ematipico merged 4 commits into
mainfrom
dyc3/html-style-attribute-css

Conversation

@dyc3

@dyc3 dyc3 commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR makes it so style attributes in HTML are treated as embedded css declaration snippets.

This PR originally implemented formatting too, but I've chosen to defer that to make decisions regarding these things:

  • prettier escapes quotes using html escapes - its debatable whether or not we actually want to format it like this
  • similarly, <div style="background: url('/img.png')"> gets formatted as <div style="background: url("/img.png")">, which is invalid

implemented by opus 5, but gpt 5.6 sol helped clean it up

supercedes and closes #10159

Test Plan

Docs


Stack created with GitHub Stacks CLIGive Feedback 💬

@changeset-bot

changeset-bot Bot commented Jul 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ee221cf

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

✅ Organic activity

No automation signals detected in the analyzed events.

View full analysis →

This is an automated analysis by AgentScan

@github-actions github-actions Bot added A-CLI Area: CLI A-Project Area: project A-Parser Area: parser A-Formatter Area: formatter L-CSS Language: CSS and super languages L-HTML Language: HTML and super languages labels Jul 26, 2026
@codspeed-hq

codspeed-hq Bot commented Jul 26, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 13.58%

❌ 5 regressed benchmarks
✅ 37 untouched benchmarks
⏩ 244 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
css_analyzer[pure_9395922602181450299.css] 23.9 ms 29.2 ms -18.2%
css_analyzer[tachyons_11778168428173736564.css] 182.5 ms 219.4 ms -16.8%
css_analyzer[foundation_11602414662825430680.css] 242.2 ms 281.7 ms -14.04%
css_analyzer[bulma_5641719244145477318.css] 1.2 s 1.3 s -9.69%
css_analyzer[bootstrap_18416142857265205439.css] 562.4 ms 616.4 ms -8.77%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing dyc3/html-style-attribute-css (e01d8b4) with dyc3/svelte-double-curly (5393bde)

Open in CodSpeed

Footnotes

  1. 244 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@dyc3
dyc3 force-pushed the dyc3/html-srcset-attribute branch from a504b59 to dd070ed Compare July 27, 2026 22:49
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 97ae9ff to 2338c67 Compare July 27, 2026 22:49
@dyc3
dyc3 force-pushed the dyc3/html-srcset-attribute branch 2 times, most recently from b4753c2 to c4aeb59 Compare July 28, 2026 13:31
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch 4 times, most recently from 1964c70 to c3db5ce Compare July 28, 2026 17:45
@github-actions github-actions Bot added A-Tooling Area: internal tools L-Grit Language: GritQL labels Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Parser conformance results on

js/262

Test result main count This PR count Difference
Total 53595 53595 0
Passed 52312 52312 0
Failed 1241 1241 0
Panics 42 42 0
Coverage 97.61% 97.61% 0.00%

jsx/babel

Test result main count This PR count Difference
Total 38 38 0
Passed 37 37 0
Failed 1 1 0
Panics 0 0 0
Coverage 97.37% 97.37% 0.00%

markdown/commonmark

Test result main count This PR count Difference
Total 652 652 0
Passed 652 652 0
Failed 0 0 0
Panics 0 0 0
Coverage 100.00% 100.00% 0.00%

symbols/microsoft

Test result main count This PR count Difference
Total 5467 5467 0
Passed 1915 1915 0
Failed 3552 3552 0
Panics 0 0 0
Coverage 35.03% 35.03% 0.00%

ts/babel

Test result main count This PR count Difference
Total 676 676 0
Passed 592 592 0
Failed 84 84 0
Panics 0 0 0
Coverage 87.57% 87.57% 0.00%

ts/microsoft

Test result main count This PR count Difference
Total 18876 18876 0
Passed 13010 13010 0
Failed 5865 5865 0
Panics 1 1 0
Coverage 68.92% 68.92% 0.00%

@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from c3db5ce to 6cbffa6 Compare July 28, 2026 18:10
@dyc3
dyc3 force-pushed the dyc3/html-srcset-attribute branch 2 times, most recently from a671e44 to 2f475a3 Compare July 28, 2026 20:13
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 6cbffa6 to b992bf0 Compare July 28, 2026 20:14
@dyc3
dyc3 force-pushed the dyc3/html-srcset-attribute branch from 2f475a3 to 4933150 Compare July 29, 2026 15:04
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from b992bf0 to 8033925 Compare July 29, 2026 15:08
@dyc3
dyc3 marked this pull request as ready for review July 29, 2026 15:17
@dyc3
dyc3 force-pushed the dyc3/html-srcset-attribute branch from 4933150 to 981488b Compare July 29, 2026 18:04
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 8033925 to 27084d1 Compare July 29, 2026 18:04
@dyc3
dyc3 requested a review from a team July 29, 2026 21:13
@github-actions github-actions Bot added the A-Linter Area: linter label Aug 2, 2026
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 1d70e8c to 72bcb2d Compare August 2, 2026 19:35
@dyc3
dyc3 changed the base branch from dyc3/svelte-plugin-tests to dyc3/svelte-attribute-shorthand August 2, 2026 19:39
@dyc3
dyc3 marked this pull request as draft August 2, 2026 19:48
@dyc3
dyc3 force-pushed the dyc3/svelte-attribute-shorthand branch from 3317649 to d757695 Compare August 2, 2026 22:35
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 72bcb2d to 57e5916 Compare August 2, 2026 22:35
@github-actions github-actions Bot removed the A-Linter Area: linter label Aug 2, 2026
@dyc3
dyc3 force-pushed the dyc3/svelte-attribute-shorthand branch from d757695 to 4cb13b7 Compare August 3, 2026 12:57
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 57e5916 to bd0901c Compare August 3, 2026 12:57
@dyc3
dyc3 changed the base branch from dyc3/svelte-attribute-shorthand to dyc3/svelte-double-curly August 3, 2026 12:58
@dyc3 dyc3 changed the title feat(format/html): format the style attribute as CSS feat(service): treat html style attributes as CSS Aug 3, 2026
@dyc3
dyc3 marked this pull request as ready for review August 3, 2026 17:52
Comment thread .changeset/feat-html-style-attribute-css.md Outdated
Comment thread crates/biome_cli/tests/cases/html_style_attribute.rs
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from c9522ff to 80d2d11 Compare August 3, 2026 19:13
@dyc3
dyc3 force-pushed the dyc3/svelte-double-curly branch from 9233ee9 to 016da58 Compare August 3, 2026 20:21
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from 80d2d11 to b7736aa Compare August 3, 2026 20:21
@dyc3
dyc3 force-pushed the dyc3/svelte-double-curly branch from 016da58 to 5393bde Compare August 3, 2026 20:32
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from b7736aa to e01d8b4 Compare August 3, 2026 20:32
dyc3 and others added 4 commits August 3, 2026 20:05
The value of a `style` attribute is a list of CSS declarations, but it
was printed exactly as written, so whatever spacing it was pasted with
stayed. It now goes through the CSS formatter, the way a `<style>`
element already did.

An attribute is not a block: the declarations stay on the tag's line
while they fit and break onto their own lines once they do not, and the
last one only takes a semicolon in the broken form. That is what
`CssEmbeddingKind::HtmlStyleAttribute` selects, reusing the snippet root
that already parses a bare declaration list. Such a list ends at the end
of its input rather than at a `}`, so the final semicolon is now
optional there — `style="color: red"` is how everyone writes it.

Two supporting fixes:

The trailing hard line break after embedded content moves from the
`EndEmbedded` tag into the callers that wrap it. A block wants that
break; an attribute value must not have one, since it would force the
attribute onto its own line whatever its length.

The formatter now knows which ranges have a parsed document waiting, as
the JavaScript formatter already did. A hole nothing fills prints as
nothing, so leaving one for a value that was never parsed would silently
empty the attribute.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@dyc3
dyc3 force-pushed the dyc3/html-style-attribute-css branch from e01d8b4 to ee221cf Compare August 4, 2026 00:06
@dyc3
dyc3 changed the base branch from dyc3/svelte-double-curly to main August 4, 2026 00:07
@ematipico
ematipico merged commit af16a0b into main Aug 4, 2026
6 checks passed
@ematipico
ematipico deleted the dyc3/html-style-attribute-css branch August 4, 2026 15:46
@github-actions github-actions Bot mentioned this pull request Aug 4, 2026
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Client that referenced this pull request Aug 18, 2026
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.5.7` -> `2.5.8`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.5.7/2.5.8) | `2.5.9` |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.5.8`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#258)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.7...@biomejs/biome@2.5.8)

##### Patch Changes

- [#&#8203;10710](biomejs/biome#10710) [`0a0fbc1`](biomejs/biome@0a0fbc1) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added a new nursery rule [`useReactCompiler`](https://biomejs.dev/linter/rules/use-react-compiler/), which reports diagnostics from React Compiler lint mode.

- [#&#8203;11251](biomejs/biome#11251) [`ea9dd8a`](biomejs/biome@ea9dd8a) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Improved performance of [`noImportCycles`](https://biomejs.dev/linter/rules/no-import-cycles/).

- [#&#8203;11247](biomejs/biome#11247) [`52b44d6`](biomejs/biome@52b44d6) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added the nursery rule [`noSvelteLegacyConst`](https://biomejs.dev/linter/rules/no-svelte-legacy-const/), which disallows legacy Svelte `{@const}` tags and recommends declaration tags with `$derived()`.

  Invalid:

  ```svelte
  {#each boxes as box}
    {@const area = box.width * box.height}
    <p>{area}</p>
  {/each}
  ```

  Valid:

  ```svelte
  {#each boxes as box}
    {const area = $derived(box.width * box.height)}
    <p>{area}</p>
  {/each}
  ```

- [#&#8203;11252](biomejs/biome#11252) [`d5f5704`](biomejs/biome@d5f5704) Thanks [@&#8203;Turtle-Hwan](https://github.com/Turtle-Hwan)! - Fixed [#&#8203;11250](biomejs/biome#11250): [`useAwait`](https://biomejs.dev/linter/rules/use-await/) no longer reports async functions that contain an `await using` declaration.

- [#&#8203;11143](biomejs/biome#11143) [`6be7be1`](biomejs/biome@6be7be1) Thanks [@&#8203;vznh](https://github.com/vznh)! - Fixed [#&#8203;11017](biomejs/biome#11017): [`noUselessUndefined`](https://biomejs.dev/linter/rules/no-useless-undefined/) no longer reports `return undefined` when the enclosing function has a return type annotation other than `undefined` or `void`.

- [#&#8203;11234](biomejs/biome#11234) [`caefe39`](biomejs/biome@caefe39) Thanks [@&#8203;subotac](https://github.com/subotac)! - Fixed [#&#8203;11228](biomejs/biome#11228): CSS block comments between a declaration colon and value now preserve their source indentation.

  ```diff
   :root {
     --font-stack:
  -/* comment */
  +    /* comment */
       system-ui;
   }
  ```

- [#&#8203;11285](biomejs/biome#11285) [`bca1f73`](biomejs/biome@bca1f73) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed [#&#8203;11280](biomejs/biome#11280): CSS formatting keeps comments inside functional pseudo-classes and pseudo-elements instead of moving them before the function name.

  ```diff
  -:/* comment */ where(div) {}
  +:where(/* comment */ div) {}
  ```

- [#&#8203;11080](biomejs/biome#11080) [`af16a0b`](biomejs/biome@af16a0b) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - HTML `style` attribute values are now parsed as CSS. All Biome CSS lint rules are applied to the `style` attributes.

- [#&#8203;11195](biomejs/biome#11195) [`6a85588`](biomejs/biome@6a85588) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed Svelte files failing to parse when an expression begins with an object literal.

  Now the following snippet is correctly parsed:

  ```svelte
  <p>{{ a: true }}</p>
  <div class={{ active: isActive }}></div>
  ```

- [#&#8203;11173](biomejs/biome#11173) [`481d008`](biomejs/biome@481d008) Thanks [@&#8203;Austin1serb](https://github.com/Austin1serb)! - Fixed [#&#8203;10242](biomejs/biome#10242): JavaScript GritQL patterns with multiple metavariables now match snippets consistently in WebAssembly.

- [#&#8203;11187](biomejs/biome#11187) [`23c0369`](biomejs/biome@23c0369) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Added the nursery rule [`noInvalidPropertyInitValue`](https://biomejs.dev/linter/rules/no-invalid-property-init-value/), which reports an `@property` whose `initial-value` does not match its `syntax` descriptor. For example, the following declaration triggers the rule because `red` is not a `<length>`:

  ```css
  @Property --size {
    syntax: "<length>";
    inherits: false;
    initial-value: red;
  }
  ```

- [#&#8203;11272](biomejs/biome#11272) [`73896e6`](biomejs/biome@73896e6) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved the diagnostic emitted by [`noRootType`](https://biomejs.dev/linter/rules/no-root-type).

- [#&#8203;11240](biomejs/biome#11240) [`bd0b68d`](biomejs/biome@bd0b68d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;11223](biomejs/biome#11223): Improved the
  performance of [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
  when analyzing async class methods that call other methods through `this`.

- [#&#8203;11172](biomejs/biome#11172) [`4a0bc5c`](biomejs/biome@4a0bc5c) Thanks [@&#8203;saberoueslati](https://github.com/saberoueslati)! - Fixed [#&#8203;10806](biomejs/biome#10806): [`noUselessFragments`](https://biomejs.dev/linter/rules/no-useless-fragments/) no longer causes Biome to panic when its unsafe fix removes a fragment used as a JSX attribute value.

- [#&#8203;11227](biomejs/biome#11227) [`4d603b0`](biomejs/biome@4d603b0) Thanks [@&#8203;saberoueslati](https://github.com/saberoueslati)! - Fixed [#&#8203;11178](biomejs/biome#11178): [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) no longer reports Vue's built-in instance properties, such as `$slots` and `$attrs`, in template expressions or `$event` in inline event-handler expressions. The instance properties are still reported inside `<script setup>`, where they are not defined.

- [#&#8203;11187](biomejs/biome#11187) [`23c0369`](biomejs/biome@23c0369) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed CSS parsing of registered custom properties: Biome now correctly validates the `syntax` descriptor of `@property` rules.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMzAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Client/pulls/17
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Server that referenced this pull request Aug 18, 2026
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.5.7` -> `2.5.8`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.5.7/2.5.8) | `2.5.9` |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.5.8`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#258)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.7...@biomejs/biome@2.5.8)

##### Patch Changes

- [#&#8203;10710](biomejs/biome#10710) [`0a0fbc1`](biomejs/biome@0a0fbc1) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added a new nursery rule [`useReactCompiler`](https://biomejs.dev/linter/rules/use-react-compiler/), which reports diagnostics from React Compiler lint mode.

- [#&#8203;11251](biomejs/biome#11251) [`ea9dd8a`](biomejs/biome@ea9dd8a) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Improved performance of [`noImportCycles`](https://biomejs.dev/linter/rules/no-import-cycles/).

- [#&#8203;11247](biomejs/biome#11247) [`52b44d6`](biomejs/biome@52b44d6) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added the nursery rule [`noSvelteLegacyConst`](https://biomejs.dev/linter/rules/no-svelte-legacy-const/), which disallows legacy Svelte `{@const}` tags and recommends declaration tags with `$derived()`.

  Invalid:

  ```svelte
  {#each boxes as box}
    {@const area = box.width * box.height}
    <p>{area}</p>
  {/each}
  ```

  Valid:

  ```svelte
  {#each boxes as box}
    {const area = $derived(box.width * box.height)}
    <p>{area}</p>
  {/each}
  ```

- [#&#8203;11252](biomejs/biome#11252) [`d5f5704`](biomejs/biome@d5f5704) Thanks [@&#8203;Turtle-Hwan](https://github.com/Turtle-Hwan)! - Fixed [#&#8203;11250](biomejs/biome#11250): [`useAwait`](https://biomejs.dev/linter/rules/use-await/) no longer reports async functions that contain an `await using` declaration.

- [#&#8203;11143](biomejs/biome#11143) [`6be7be1`](biomejs/biome@6be7be1) Thanks [@&#8203;vznh](https://github.com/vznh)! - Fixed [#&#8203;11017](biomejs/biome#11017): [`noUselessUndefined`](https://biomejs.dev/linter/rules/no-useless-undefined/) no longer reports `return undefined` when the enclosing function has a return type annotation other than `undefined` or `void`.

- [#&#8203;11234](biomejs/biome#11234) [`caefe39`](biomejs/biome@caefe39) Thanks [@&#8203;subotac](https://github.com/subotac)! - Fixed [#&#8203;11228](biomejs/biome#11228): CSS block comments between a declaration colon and value now preserve their source indentation.

  ```diff
   :root {
     --font-stack:
  -/* comment */
  +    /* comment */
       system-ui;
   }
  ```

- [#&#8203;11285](biomejs/biome#11285) [`bca1f73`](biomejs/biome@bca1f73) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed [#&#8203;11280](biomejs/biome#11280): CSS formatting keeps comments inside functional pseudo-classes and pseudo-elements instead of moving them before the function name.

  ```diff
  -:/* comment */ where(div) {}
  +:where(/* comment */ div) {}
  ```

- [#&#8203;11080](biomejs/biome#11080) [`af16a0b`](biomejs/biome@af16a0b) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - HTML `style` attribute values are now parsed as CSS. All Biome CSS lint rules are applied to the `style` attributes.

- [#&#8203;11195](biomejs/biome#11195) [`6a85588`](biomejs/biome@6a85588) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed Svelte files failing to parse when an expression begins with an object literal.

  Now the following snippet is correctly parsed:

  ```svelte
  <p>{{ a: true }}</p>
  <div class={{ active: isActive }}></div>
  ```

- [#&#8203;11173](biomejs/biome#11173) [`481d008`](biomejs/biome@481d008) Thanks [@&#8203;Austin1serb](https://github.com/Austin1serb)! - Fixed [#&#8203;10242](biomejs/biome#10242): JavaScript GritQL patterns with multiple metavariables now match snippets consistently in WebAssembly.

- [#&#8203;11187](biomejs/biome#11187) [`23c0369`](biomejs/biome@23c0369) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Added the nursery rule [`noInvalidPropertyInitValue`](https://biomejs.dev/linter/rules/no-invalid-property-init-value/), which reports an `@property` whose `initial-value` does not match its `syntax` descriptor. For example, the following declaration triggers the rule because `red` is not a `<length>`:

  ```css
  @Property --size {
    syntax: "<length>";
    inherits: false;
    initial-value: red;
  }
  ```

- [#&#8203;11272](biomejs/biome#11272) [`73896e6`](biomejs/biome@73896e6) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved the diagnostic emitted by [`noRootType`](https://biomejs.dev/linter/rules/no-root-type).

- [#&#8203;11240](biomejs/biome#11240) [`bd0b68d`](biomejs/biome@bd0b68d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;11223](biomejs/biome#11223): Improved the
  performance of [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
  when analyzing async class methods that call other methods through `this`.

- [#&#8203;11172](biomejs/biome#11172) [`4a0bc5c`](biomejs/biome@4a0bc5c) Thanks [@&#8203;saberoueslati](https://github.com/saberoueslati)! - Fixed [#&#8203;10806](biomejs/biome#10806): [`noUselessFragments`](https://biomejs.dev/linter/rules/no-useless-fragments/) no longer causes Biome to panic when its unsafe fix removes a fragment used as a JSX attribute value.

- [#&#8203;11227](biomejs/biome#11227) [`4d603b0`](biomejs/biome@4d603b0) Thanks [@&#8203;saberoueslati](https://github.com/saberoueslati)! - Fixed [#&#8203;11178](biomejs/biome#11178): [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) no longer reports Vue's built-in instance properties, such as `$slots` and `$attrs`, in template expressions or `$event` in inline event-handler expressions. The instance properties are still reported inside `<script setup>`, where they are not defined.

- [#&#8203;11187](biomejs/biome#11187) [`23c0369`](biomejs/biome@23c0369) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed CSS parsing of registered custom properties: Biome now correctly validates the `syntax` descriptor of `@property` rules.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMzAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Server/pulls/36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CLI Area: CLI A-Formatter Area: formatter A-Parser Area: parser A-Project Area: project A-Tooling Area: internal tools L-CSS Language: CSS and super languages L-Grit Language: GritQL L-HTML Language: HTML and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants