import React from 'react'; import PropTypes from 'prop-types'; import styled from 'styled-components'; import { fontFamily, fontWeight, textAlign, lineHeight, letterSpacing, } from 'styled-system'; import { base, themed } from '../Base'; const HeadingWrapper = styled('p')( base, fontFamily, fontWeight, textAlign, lineHeight, letterSpacing, themed('Heading') ); const Heading = ({ content, ...props }) => ( <HeadingWrapper {...props}>{content}</HeadingWrapper> ); Heading.propTypes = { content: PropTypes.oneOfType([PropTypes.string, PropTypes.element]), as: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6']), fontFamily: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, PropTypes.number]) ), ]), fontWeight: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, PropTypes.number]) ), ]), textAlign: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, PropTypes.number]) ), ]), lineHeight: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, PropTypes.number]) ), ]), letterSpacing: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, PropTypes.number]) ), ]), ...base.propTypes, }; Heading.defaultProps = { as: 'h2', m: 0, fontWeight: 700, }; export default Heading;