useFela
useFela is React hook(new tab) that provides a universal
css function as well as a staticStyle function. It also provides access to both renderer and theme.Arguments
| Argument | Type | Default |
|---|---|---|
| props | Object | An object of props that is used to render rules and static styles. |
Returns
(Object): The hook interface
Interface
| Property | Type | Description |
|---|---|---|
| css | function | A function that accepts a list of style object and/or rule and returns a single className. |
| staticStyle | function | A function that accepts the same arguments as renderStatic. |
| theme | Object | The theme object which is passed down via context. |
| renderer | Renderer | The renderer that is passed down via context. |
Imports
Note: Due to lack of support for hooks in Inferno, useFela is currently only available for React and Preact.
import { useFela } from 'react-fela'import { useFela } from 'preact-fela'Example
function RedOnBlue({ children }) { const { css } = useFela()
return ( <div className={css({ backgroundColor: 'blue', color: 'red' })}> {children} </div> )}Passing props
const rule = ({ color }) => ({ backgroundColor: 'blue', color,})
function RedOnBlue({ children, ...otherProps }) { const { css } = useFela(otherProps)
return <div className={css(rule)}>{children}</div>}
// Usageconst Usage = <RedOnBlue color="red" />Passing multiple styles
function RedOnBlue({ children, customStyle }) { const { css } = useFela()
return ( <div className={css({ backgroundColor: 'blue', color: 'red' }, customStyle)}> {children} </div> )}
// Usageconst Usage = <RedOnBlue customStyle={{ fontSize: 12 }} />Accessing theme
function WithTheme() { const { theme } = useFela()
return <div>Primary color is {theme.colors.primary}</div>}Rendering static styles
function WithTheme() { const { staticStyle } = useFela()
staticStyle( { backgroundColor: 'blue', }, 'body' )
return <div>Primary color is {theme.colors.primary}</div>}