Skip to Content

drule()

drule() (Dynamic Rule) is similar to rule() but allows adding style overrides at render time.

const classNames = nano.drule({ border: '1px solid #888', color: '#888', });

Static Usage

When called without arguments, it behaves like rule():

<button className={classNames()}>Click me!</button> <button className={'' + classNames}>Click me!</button>

Dynamic Overrides

Pass a CSS object to add overrides on the fly:

<button className={classNames({ color: 'red' })}>Click me!</button>

Example

A button that changes color based on props:

const classNames = nano.drule({ border: '1px solid #888', color: '#fff', }); const Button = ({ children, primary }) => ( <button className={classNames({ background: primary ? 'blue' : 'grey', })} > {children} </button> );

Installation

Requires rule and cache addons:

import { create } from 'nano-css'; import { addon as addonCache } from 'nano-css/addon/cache'; import { addon as addonRule } from 'nano-css/addon/rule'; import { addon as addonDrule } from 'nano-css/addon/drule'; const nano = create(); addonCache(nano); addonRule(nano); addonDrule(nano);
Last updated on