Theme

Uses context components to provide theme object deep down React tree.

Example

import {Theme, Themed} from 'libreact/lib/theme';

const theme = {
  color: 'white',
  background: 'tomato'
};

<Theme value={theme}>
  <Themed>{({color, background}) =>
    <div style={{color, background}}>Color is: {color}</div>
  }</Themed>
</Theme>

<Theme>

Theme provider, used to specify and update theme object.

Props

  • value - theme object.
  • name - optional, theme name.

<Themed>

FaCC theme consumer, re-renders on theme update.

Props

  • name - optional, theme name.

withTheme() HOC

Theme enhancer that ensures your component is injected with theme property.

withTheme: (Comp: React.Component, propName?: string, props?: object) => React.Component;

, where

  • Comp - your React component.
  • propName - optional, string, injected prop name.
  • props - optional, object, props to provided to <Themed>.

Returns a themed component that will have a prop named theme containing theme object.

Example

const Block = ({theme: {color, background}}) =>
  <div style={{color, background}}>Color is: {color}</div>;
const BlockThemed = withTheme(Block);

const theme = {
  color: 'white',
  background: 'tomato'
};

<Theme value={theme}>
  <BlockThemed />
</Theme>

@withTheme decorator

React component class decorator that injects theme into props. You can optionally, specify injected prop name and theme name.

Usage

```js @withTheme @withTheme('') @withTheme('specialTheme', {name: 'specialTheme'}) class Button extends Component {

} ``

results matching ""

    No results matching ""