{"componentChunkName":"component---src-templates-post-js","path":"/create-typography-components-react","result":{"data":{"markdownRemark":{"html":"<p>In this post we will create a couple of typography components that we will use throughout the App for all of our Typography.</p>\n<p>First create a folder in the components directory called <code class=\"language-text\">typography</code>. And create a file called <code class=\"language-text\">HeadingOne.js</code> and add the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> PropTypes <span class=\"token keyword\">from</span> <span class=\"token string\">\"prop-types\"</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">HeadingOne</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> className<span class=\"token punctuation\">,</span> children <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>h1 className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>className<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\"> text-4xl text-black text-bold font-display</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>children<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h1<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingOne<span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  children<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span><span class=\"token function\">oneOfType</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingOne<span class=\"token punctuation\">.</span>defaultProps <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> HeadingOne</code></pre></div>\n<p>🛩️ We are creating a <code class=\"language-text\">H1</code> component that will allow us to add additional content inside it via the children prop.</p>\n<p>🛩️ Then we've given it some styles.</p>\n<p>Then next up create a <code class=\"language-text\">HeadingTwo.js</code> file with the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> PropTypes <span class=\"token keyword\">from</span> <span class=\"token string\">\"prop-types\"</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">HeadingTwo</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> className<span class=\"token punctuation\">,</span> children <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>h1 className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>className<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\"> text-xl text-black text-bold font-display</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>children<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h1<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingTwo<span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  children<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span><span class=\"token function\">oneOfType</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingTwo<span class=\"token punctuation\">.</span>defaultProps <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> HeadingTwo</code></pre></div>\n<p>Then create a <code class=\"language-text\">HeadingThree.js</code> component with the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> PropTypes <span class=\"token keyword\">from</span> <span class=\"token string\">\"prop-types\"</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">HeadingThree</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> className<span class=\"token punctuation\">,</span> children <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>h1 className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>className<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\"> text-2xl text-black text-bold font-display</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>children<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h1<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingThree<span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  children<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span><span class=\"token function\">oneOfType</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n\nHeadingThree<span class=\"token punctuation\">.</span>defaultProps <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> HeadingThree</code></pre></div>\n<p>Next up create a <code class=\"language-text\">BodyOne.js</code> file and add the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> PropTypes <span class=\"token keyword\">from</span> <span class=\"token string\">\"prop-types\"</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">BodyOne</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> className<span class=\"token punctuation\">,</span> children <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>p className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>className<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\"> text-sm text-black text-bold font-display</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>children<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\nBodyOne<span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  children<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span><span class=\"token function\">oneOfType</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n\nBodyOne<span class=\"token punctuation\">.</span>defaultProps <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  className<span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> BodyOne</code></pre></div>\n<p>Last lets create an <code class=\"language-text\">index.js</code> file so we can import the components in one line through out the app:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> HeadingOne <span class=\"token keyword\">from</span> <span class=\"token string\">\"./HeadingOne\"</span>\n<span class=\"token keyword\">import</span> BodyOne <span class=\"token keyword\">from</span> <span class=\"token string\">\"./BodyOne\"</span>\n<span class=\"token keyword\">import</span> HeadingTwo <span class=\"token keyword\">from</span> <span class=\"token string\">\"./HeadingTwo\"</span>\n<span class=\"token keyword\">import</span> HeadingThree <span class=\"token keyword\">from</span> <span class=\"token string\">\"./HeadingThree\"</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token punctuation\">{</span> HeadingOne<span class=\"token punctuation\">,</span> BodyOne<span class=\"token punctuation\">,</span> HeadingTwo<span class=\"token punctuation\">,</span> HeadingThree <span class=\"token punctuation\">}</span></code></pre></div>","frontmatter":{"date":"July 16, 2020","path":"/create-typography-components-react","title":"Create Typography Components","postnumber":37}}},"pageContext":{"previous":{"node":{"frontmatter":{"path":"/create-red-block-button-react","postnumber":38}}},"next":{"node":{"frontmatter":{"path":"/create-nav-and-header-react","postnumber":36}}}}},"staticQueryHashes":["3207677222","3649515864","63159454"]}