UNPKG

@appearhere/bloom

Version:

Appear Here's pattern library and styleguide

82 lines (69 loc) 1.59 kB
import PropTypes from 'prop-types'; import React from 'react'; import cx from 'classnames'; import m from '../../globals/modifiers.css'; import css from './Hero.css'; const Hero = (props) => { const { className, innerClassName, backgroundClassName, backgroundImage, children, caption, animate, ...rest } = props; const cl = cx( css.root, backgroundImage ? css.backgroundImage : null, animate ? css.animate : null, className ); const overlayCl = cx( css.overlay, backgroundImage ? css.overlayActive : null ); const innerCl = cx( css.inner, innerClassName, ); const captionClasses = cx( css.caption, m.fontRegular, ); const styles = { backgroundImage: backgroundImage ? `url(${backgroundImage})` : null }; return ( <div {...rest} className={cl} > <div className={cx(css.background, backgroundClassName)} style={styles} /> <div className={overlayCl}> <div className={innerCl}> <div className={css.content}> { children } </div> </div> { caption && backgroundImage && ( <div className={captionClasses}> { caption } </div> )} </div> </div> ); }; Hero.propTypes = { className: PropTypes.string, innerClassName: PropTypes.string, backgroundImage: PropTypes.string, children: PropTypes.node.isRequired, caption: PropTypes.node, animate: PropTypes.bool, backgroundClassName: PropTypes.string, }; export default Hero;