Skip to content


styled.{{tag}} is the extension that allows to create React Components the same way as @react.component does. Here, you only define the styles of an element.

All HTML Elements are available under styled.{{tag}}. An example of it will be:

module StyledComponent = %styled.div(`
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100vw;
<StyledComponent> {React.string("Hello from the style")} </StyledComponent>

React props

Styled components expose all the react props within their API, except className.

module Input = %styled.input("...")
placeholder="Enter your name..."
onChange={_ => ()}
onBlur={_ => ()}

If you create a Dynamic component with a prop that collides with the names of the React props, it will raise an error.