This method should only be used on the server.
Renders all cached styles grouped CSS strings and returns a valid HTML markup with <style> elements. The elements are grouped and sorted in the following order:
- Fonts
- Static Styles
- Keyframes
- Rules
- Support Rules
- Media Query Rules
- Support & Media Query Rules
The DOM renderer is able to rehydrate its cache from the markup in order to skip initial rendering.
| Argument | Type | Description |
|---|---|---|
| renderer | Renderer | The renderer providing the styles which are rendered to stringified HTML markup. |
(string): Single concatenated HTML markup string containing required <style> elements.
import { renderToMarkup } from 'fela-dom'
import { createRenderer } from 'fela'
const renderer = createRenderer()
const rule = ({ fontSize }) => ({
fontSize: fontSize,
color: 'blue',
'@supports (display: flex)': {
color: 'green'
},
'@media (min-width: 300px)': {
color: 'red'
}
})
renderer.renderStatic('html,body{box-sizing:border-box;margin:0}').
renderer.renderRule(rule, { fontSize: '12px' })
const markup = renderToMarkup(renderer)The following markup would be returned:
<style type="text/css" data-fela-type="STATIC" data-fela-rehydration="4">html,body{box-sizing:border-box;margin:0}</style>
<style type="text/css" data-fela-type="RULE" data-fela-rehydration="4">.a{font-size:12px}.b{color:blue}</style>
<style type="text/css" data-fela-type="RULE" data-fela-rehydration="4" data-fela-support>.c{color:green}</style>
<style type="text/css" data-fela-type="RULE" data-fela-rehydration="4" media="(min-width: 300px)">.d{color:red}</style>