UNPKG

create-nextjs-storybook

Version:

Install embedded Storybook route into a NextJS project

57 lines (52 loc) 1.22 kB
'use client'; import React from 'react'; import PropTypes from 'prop-types'; import styles from './button.module.css'; /** * Primary UI component for user interaction */ export const Button = ({ primary, backgroundColor, size, label, ...props }) => { const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary'; return ( <button type="button" className={[styles['storybook-button'], styles[`storybook-button--${size}`], styles[mode]].join(' ')} {...props} > {label} <style jsx>{` button { background-color: ${backgroundColor}; } `}</style> </button> ); }; Button.propTypes = { /** * Is this the principal call to action on the page? */ primary: PropTypes.bool, /** * What background color to use */ backgroundColor: PropTypes.string, /** * How large should the button be? */ size: PropTypes.oneOf(['small', 'medium', 'large']), /** * Button contents */ label: PropTypes.string.isRequired, /** * Optional click handler */ onClick: PropTypes.func, }; Button.defaultProps = { backgroundColor: null, primary: false, size: 'medium', onClick: undefined, };