{"componentChunkName":"component---src-templates-post-js","path":"/create-blue-block-button-react","result":{"data":{"markdownRemark":{"html":"<p>In this chapter we will build out a Secondary button Blue.</p>\n<p>In the <code class=\"language-text\">buttons</code> folder, create a <code class=\"language-text\">BlueBlockButton.js</code> component 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\">import</span> styled<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> keyframes <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"styled-components\"</span>\n<span class=\"token keyword\">import</span> loading <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../assets/loop.svg\"</span>\n\n<span class=\"token keyword\">const</span> rotate <span class=\"token operator\">=</span> keyframes<span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">\n  from {\n\t  transform: rotate(0deg);\n  }\n  to {\n\t  transform: rotate(360deg);\n  }\n</span><span class=\"token template-punctuation string\">`</span></span>\n<span class=\"token keyword\">const</span> ImageStyles <span class=\"token operator\">=</span> styled<span class=\"token punctuation\">.</span>img<span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">\n  display: inline-block;\n  animation: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>rotate<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\"> 2s infinite linear;\n</span><span class=\"token template-punctuation string\">`</span></span>\n\n<span class=\"token keyword\">const</span> BlueBlockButton <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  className <span class=\"token operator\">=</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n  onClick<span class=\"token punctuation\">,</span>\n  children<span class=\"token punctuation\">,</span>\n  disabled <span class=\"token operator\">=</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">,</span>\n  isLoading<span class=\"token punctuation\">,</span>\n  large<span class=\"token punctuation\">,</span>\n  long<span class=\"token punctuation\">,</span>\n  <span class=\"token operator\">...</span>props\n<span class=\"token punctuation\">}</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>button\n      <span class=\"token comment\">/* eslint-disable no-template-curly-in-string*/</span>\n      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\"> cursor-pointer bg-blue-lightest text-blue-darkest focus:outline-none font-display rounded-px px-16 py-2 hover:bg-transparent hover:border hover:border-blue-darkest</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span>\n      onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>onClick<span class=\"token punctuation\">}</span>\n      disabled<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>disabled<span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">{</span><span class=\"token operator\">...</span>props<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>isLoading <span class=\"token operator\">?</span> <span class=\"token operator\">&lt;</span>ImageStyles src<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>loading<span class=\"token punctuation\">}</span> alt<span class=\"token operator\">=</span><span class=\"token string\">\"loading...\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span> <span class=\"token operator\">:</span> children<span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>button<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">const</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  onClick<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>func<span class=\"token punctuation\">,</span>\n  children<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  disabled<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>bool<span class=\"token punctuation\">,</span>\n  large<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>bool<span class=\"token punctuation\">,</span>\n  long<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>bool<span class=\"token punctuation\">,</span>\n  isLoading<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>bool<span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span>\nBlueBlockButton<span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> propTypes\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> BlueBlockButton</code></pre></div>\n<p>Yet again we are doingg something simalr, only difference is that it is a different colour button.</p>\n<p>Once you're done it should look like this:</p>\n<p><img src=\"/uploads/blueoutline.png\" alt=\"blueoutline-component\"></p>","frontmatter":{"date":"July 16, 2020","path":"/create-blue-block-button-react","title":"Create Blue Block Button","postnumber":40}}},"pageContext":{"previous":{"node":{"frontmatter":{"path":"/create-remove-button-react","postnumber":41}}},"next":{"node":{"frontmatter":{"path":"/create-red-outline-button-react","postnumber":39}}}}},"staticQueryHashes":["3207677222","3649515864","63159454"]}