Fragments (<>...</>) are supported. They render children without a wrapper element.
<>
<h1>Title</h1>
<p>Description</p>
</>#Transparent Fragments
A fragment that passes through children is treated as transparent — the compiler skips it and processes the children directly:
<>{children}</>
<>{props.children}</>No extra hydration markers are generated for transparent fragments.
#Fragments and Hydration
Fragments don't produce a DOM node, so the compiler handles hydration differently from regular elements.
For conditional fragments, the compiler uses HTML comment markers as boundaries:
<!--bf-cond-start:slot_0-->
<h1>Title</h1>
<p>Description</p>
<!--bf-cond-end:slot_0-->The client runtime uses these comment markers to locate and swap the fragment content when the condition changes.
For component roots that return a fragment, each direct child element is marked with bf-s so the runtime can find them during hydration.