UNPKG

@appearhere/bloom

Version:

Appear Here's pattern library and styleguide

61 lines (48 loc) 1.44 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;