@@ -49,7 +49,9 @@ let private cssProp (key: string) (value: obj) =
4949
5050 key + " :" + value + " ;"
5151
52- let private cssPropRegex = Regex( " ([A-Z])" )
52+ let private slugRegex = Regex( " ([A-Z])" , RegexOptions.Compiled)
53+ let inline private slugKey key =
54+ slugRegex.Replace( string key, " -$1" ) .ToLower()
5355
5456let private renderCssProp ( prop : CSSProp ): string =
5557 match prop with
@@ -458,7 +460,7 @@ let private renderCssProp (prop: CSSProp): string =
458460 | WritingMode v -> cssProp " writing-mode" v
459461 | ZIndex v -> cssProp " z-index" v
460462 | Zoom v -> cssProp " zoom" v
461- | CSSProp.Custom ( key, value) -> cssProp key ( cssPropRegex.Replace ( string value , " -$1 " ) .ToLower ())
463+ | CSSProp.Custom ( key, value) -> cssProp ( slugKey key ) value
462464
463465let inline boolAttr ( key : string ) ( value : bool ) = if value then key else " "
464466let inline strAttr ( key : string ) ( value : string ) = key + " =\" " + ( escapeHtml value) + " \" "
@@ -616,7 +618,7 @@ let private renderHtmlAttr (attr: HTMLAttr): string =
616618 let css = css.[ 0 .. css.Length - 2 ]
617619 strAttr " style" css
618620
619- | Custom ( key, value) -> strAttr key ( string value)
621+ | Custom ( key, value) -> strAttr ( key.ToLower ()) ( string value)
620622 | Data ( key, value) -> strAttr ( " data-" + key) ( string value)
621623
622624let private renderSVGAttr ( attr : SVGAttr ): string =
@@ -678,7 +680,7 @@ let private renderSVGAttr (attr: SVGAttr): string =
678680 | SVGAttr.Y1 v -> objAttr " y1" v
679681 | SVGAttr.Y2 v -> objAttr " y2" v
680682 | SVGAttr.Y v -> objAttr " y" v
681- | SVGAttr.Custom ( key, value) -> objAttr key value
683+ | SVGAttr.Custom ( key, value) -> objAttr ( slugKey key) value
682684
683685let private renderAttrs ( attrs : IProp seq ) tag =
684686 let html = StringBuilder()
0 commit comments