Skip to content

Commit ce06bb1

Browse files
committed
Fix SVG element casing to preserve camelCase names
SVG elements like feDropShadow were incorrectly converted to lowercase, breaking their functionality. Now properly preserves casing for known SVG elements while normalizing regular HTML elements. Fixes svg filter rendering issue where filters would not display.
1 parent fd96a9a commit ce06bb1

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

packages/yew-macro/src/html_tree/html_element.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,14 @@ impl ToTokens for HtmlElement {
370370
tokens.extend(match &name {
371371
TagName::Lit(dashedname) => {
372372
let name_span = dashedname.span();
373-
let name = dashedname.to_ascii_lowercase_string();
373+
let original_name = dashedname.to_string();
374+
let name = if is_normalised_element_name(&original_name) {
375+
// Preserve case for known SVG/special elements
376+
original_name
377+
} else {
378+
// Convert to lowercase for regular HTML elements
379+
dashedname.to_ascii_lowercase_string()
380+
};
374381
if !is_normalised_element_name(&dashedname.to_string()) {
375382
emit_warning!(
376383
name_span.clone(),

0 commit comments

Comments
 (0)