@jaak/primitives
Version:
JAAK UI primitives
65 lines (59 loc) • 1.09 kB
JavaScript
import styled from 'styled-components'
import {
backgroundTypes,
borderTypes,
boxModelTypes,
cssTypes,
displayTypes,
linkTypes,
textTypes,
} from '../types'
import { background, border, boxModel, css, display, link, text } from '../util'
/**
* @namespace Button
* @desc Primitive styled-component 💅
* @return {Function} React component
*/
const Button = styled.button.attrs({
type: 'button',
})`
${background};
${border};
${boxModel};
${css};
${display};
${link};
${text};
`
/**
* @name defaultProps
* @memberof Button
* @desc Primitive's default properties
*/
Button.defaultProps = {
borderWidth: [0],
cursor: 'pointer',
display: 'block',
fontFamily: 'inherit',
fontSize: 'baseFontSize',
margin: [0],
outline: 'none',
padding: [0],
size: ['auto'],
}
/**
* @name propTypes
* @memberof Button
* @desc Primitive's prop type definitions
*/
Button.propTypes = {
...backgroundTypes,
...borderTypes,
...boxModelTypes,
...cssTypes,
...displayTypes,
...linkTypes,
...textTypes,
}
/** @component */
export default Button