Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ebay/storybook-addon-themepicker

Package Overview
Dependencies
Maintainers
10
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ebay/storybook-addon-themepicker

Storybook addon for toggling between various emotion themes

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
10
Created
Source

Storybook Addon ThemePicker

This package provides a way to easily preview various themes applied to your emotion-based React components using Storybook.

ThemePicker Preview

Usage

As with all Storybook addons, first register the addon in your addons.js file:

import '@ebay/storybook-addon-themepicker/register';

Then, simply wrap your component using the WithThemes component:

import {WithThemes} from '@ebay/storybook-addon-themepicker';

storiesOf('MyComponent', module)
  .add('with themes', () => (
    <WithThemes themes={themeChoices}>
      <MyComponent />
    </WithThemes>
  ));

The themes parameter passed to WithThemes should be an array of objects, each containing a theme name and the theme itself:

const defaultTheme = {
  borderColor: '#333',
  backgroundColor: '#eee',
  textColor: '#333'
};

const darkTheme = {
  borderColor: '#777',
  backgroundColor: '#333',
  textColor: '#eee'
};

const themeChoices = [
  {
    name: 'Normal',
    theme: defaultTheme
  },
  {
    name: 'Dark Mode',
    theme: darkTheme
  }
];

Using TypeScript

The package exports the ThemeDescriptor type for use with TypeScript. The above declaration of themeChoices would change to look like this in a TypeScript-based project:

import {ThemeDescriptor} from '@ebay/storybook-addon-themepicker';

// Your theme type:
type Theme = {
  borderColor: string;
  backgroundColor: string;
  textColor: string;
};

// Your theme objects that implement your theme type:
export const defaultTheme: Theme = {
  borderColor: '#333',
  backgroundColor: '#eee',
  textColor: '#333'
};

export const darkTheme: Theme = {
  borderColor: '#777',
  backgroundColor: '#333',
  textColor: '#eee'
};

// ThemeDescriptor is parameterized by your theme type:
const themeChoices: Array<ThemeDescriptor<Theme>> = [
  {
    name: 'Normal',
    theme: defaultTheme
  },
  {
    name: 'Dark Mode',
    theme: darkTheme
  }
];

Examples

The github project comes with an example project that uses @ebay/storybook-addon-themepicker. See the example's README for instructions on how to build and run the example project.

Contributing

Feel free to submit pull requests against this project.

Running the Tests

Be sure to run tslint on your code, and run the unit tests. To do so, simply run

yarn lint
yarn test

License

Copyright 2018-2019 eBay Inc.
Developer/Author: Frederik Goris

Use of this source code is governed by an MIT-style license that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.

FAQs

Package last updated on 09 Feb 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc