<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nikki</title>
    <description>The latest articles on Forem by Nikki (@nikkipeel).</description>
    <link>https://forem.com/nikkipeel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F318984%2F69565fac-b2a3-4f02-88d9-e79c667a6768.jpeg</url>
      <title>Forem: Nikki</title>
      <link>https://forem.com/nikkipeel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nikkipeel"/>
    <language>en</language>
    <item>
      <title>Adding Syntax Highlighting to Code Blocks with PrismJS</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Wed, 24 Feb 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/nikkipeel/adding-syntax-highlighting-to-code-blocks-with-prismjs-1hn3</link>
      <guid>https://forem.com/nikkipeel/adding-syntax-highlighting-to-code-blocks-with-prismjs-1hn3</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: this post uses Dev.to's syntax highlighting. To see PrismJS in action, please visit the original post on&lt;/em&gt; &lt;a href="https://nikkipeel.netlify.app/syntax-highlighting-with-prismjs" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You've written code using an IDE like Visual Studio Code or Sublime. Maybe you've built a blog that uses code blocks like I have. You may have been wondering how to go from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    .unstyled-code-block {
        display: block;
        position: absolute;
        color: none;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;    &lt;span class="nc"&gt;.styled-code-block&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;inherit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;What is Syntax Highlighting?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Syntax highlighting is a feature that displays text in different colors and fonts according to a category of terms. The intention of syntax highlighting is to create visual distinctions for readers. Text editors such as Visual Studio Code, Vim, and Sublime all utilize this feature. Code is far easier to interpret with these distinctions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;PrismJS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://prismjs.com/" rel="noopener noreferrer"&gt;PrismJS&lt;/a&gt; is a lightweight syntax highlighter built with Javascript. PrismJS can be included with any website, but for this tutorial I'll be installing it with Gatsby.&lt;/p&gt;

&lt;p&gt;Here's a link for more information on how you can use their library: &lt;a href="https://prismjs.com/#basic-usage" rel="noopener noreferrer"&gt;PrismJS Docs - Basic Usage&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Installation with GatsbyJS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt; - Beginner knowledge of Gatsby (or React)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step One - Create a Gatsby Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this tutorial, we'll be using an easily customizable Gatsby Starter: &lt;a href="https://www.gatsbyjs.com/starters/gatsbyjs/gatsby-starter-blog/" rel="noopener noreferrer"&gt;gatsby-starter-blog&lt;/a&gt;. This starter includes support for a full-featured blog with optimized images and markdown posts. Create a new folder, open up a terminal, and run the following command to install:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gatsby new gatsby-starter-blog https://github.com/gatsbyjs/gatsby-starter-blog&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This creates a new Gatsby site with the name 'gatsby-starter-blog', we're then appending it to include this starter's source code from Github&lt;/p&gt;

&lt;p&gt;Our new project structure should look something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="/static/6fbff99472ce4a11d935621dddfb7459/2e195/markdown-blog.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fnikkipeel.netlify.app%2Fstatic%2F6fbff99472ce4a11d935621dddfb7459%2F2e195%2Fmarkdown-blog.png" title="gatsby-starter-blog" alt="gatsby-starter-blog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Along with our site's &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;package.json&lt;/code&gt;, and configuration files, we should also see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;content/&lt;/code&gt; holds our image assets and markdown blog posts&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/&lt;/code&gt; contains our website's components (layout.js, bio.js, seo.js), pages (index.js, 404.js), templates (blog-post.js, our single post template file), and our CSS files (normalize.css, style.css)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;static/&lt;/code&gt; contains static files that are generated upon build&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step Two - Install Required Plugins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ensure that your new Gatsby site is working by opening up a terminal, navigating into your project's folder and run: &lt;code&gt;npm start&lt;/code&gt;. This builds your Gatsby site which you can now view at &lt;em&gt;localhost:8000&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Next, we'll need to ensure that three important packages are installed in our project: gatsby-transformer-remark, gatsby-remark-prismjs, and prismjs. Our starter, &lt;code&gt;gatsby-starter-blog&lt;/code&gt; includes these packages already, but if you're using a different starter or blog, please open up a terminal, navigate into your project's root folder and run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install gatsby-transformer-remark gatsby-remark-prismjs prismjs&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gatsbyjs.com/plugins/gatsby-transformer-remark/" rel="noopener noreferrer"&gt;gatsby-transformer-remark&lt;/a&gt; - Parses Markdown files using &lt;a href="https://remark.js.org/" rel="noopener noreferrer"&gt;Remark&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gatsbyjs.com/plugins/gatsby-remark-prismjs/" rel="noopener noreferrer"&gt;gatsby-remark-prismjs&lt;/a&gt; - Adds syntax highlighting to code blocks in markdown files using PrismJS&lt;/p&gt;

&lt;p&gt;&lt;a href="https://prismjs.com/" rel="noopener noreferrer"&gt;prismjs&lt;/a&gt; - PrismJS, our syntax highlighter&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step Three - Add Plugins to Config File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, we need to make sure we're referencing our new plugins in our Gatsby configuration. Open up &lt;code&gt;gatsby-config.js&lt;/code&gt; and add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="c1"&gt;// In your gatsby-config.js&lt;/span&gt;
&lt;span class="nx"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`gatsby-transformer-remark`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`gatsby-remark-prismjs`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Class prefix for &amp;lt;pre&amp;gt; tags containing syntax highlighting;&lt;/span&gt;
            &lt;span class="c1"&gt;// defaults to 'language-' (e.g. &amp;lt;pre class="language-js"&amp;gt;).&lt;/span&gt;
            &lt;span class="c1"&gt;// If your site loads Prism into the browser at runtime,&lt;/span&gt;
            &lt;span class="c1"&gt;// (e.g. for use with libraries like react-live),&lt;/span&gt;
            &lt;span class="c1"&gt;// you may use this to prevent Prism from re-processing syntax.&lt;/span&gt;
            &lt;span class="c1"&gt;// This is an uncommon use-case though;&lt;/span&gt;
            &lt;span class="c1"&gt;// If you're unsure, it's best to use the default value.&lt;/span&gt;
            &lt;span class="na"&gt;classPrefix&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;language-&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="c1"&gt;// This is used to allow setting a language for inline code&lt;/span&gt;
            &lt;span class="c1"&gt;// (i.e. single backticks) by creating a separator.&lt;/span&gt;
            &lt;span class="c1"&gt;// This separator is a string and will do no white-space&lt;/span&gt;
            &lt;span class="c1"&gt;// stripping.&lt;/span&gt;
            &lt;span class="c1"&gt;// A suggested value for English speakers is the non-ascii&lt;/span&gt;
            &lt;span class="c1"&gt;// character '›'.&lt;/span&gt;
            &lt;span class="na"&gt;inlineCodeMarker&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="c1"&gt;// This lets you set up language aliases. For example,&lt;/span&gt;
            &lt;span class="c1"&gt;// setting this to '{ sh: "bash" }' will let you use&lt;/span&gt;
            &lt;span class="c1"&gt;// the language "sh" which will highlight using the&lt;/span&gt;
            &lt;span class="c1"&gt;// bash highlighter.&lt;/span&gt;
            &lt;span class="na"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
            &lt;span class="c1"&gt;// This toggles the display of line numbers globally alongside the code.&lt;/span&gt;
            &lt;span class="c1"&gt;// To use it, add the following line in gatsby-browser.js&lt;/span&gt;
            &lt;span class="c1"&gt;// right after importing the prism color scheme:&lt;/span&gt;
            &lt;span class="c1"&gt;// require("prismjs/plugins/line-numbers/prism-line-numbers.css")&lt;/span&gt;
            &lt;span class="c1"&gt;// Defaults to false.&lt;/span&gt;
            &lt;span class="c1"&gt;// If you wish to only show line numbers on certain code blocks,&lt;/span&gt;
            &lt;span class="c1"&gt;// leave false and use the {numberLines: true} syntax below&lt;/span&gt;
            &lt;span class="na"&gt;showLineNumbers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="c1"&gt;// If setting this to true, the parser won't handle and highlight inline&lt;/span&gt;
            &lt;span class="c1"&gt;// code used in markdown i.e. single backtick code like `this`.&lt;/span&gt;
            &lt;span class="na"&gt;noInlineHighlight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="c1"&gt;// This adds a new language definition to Prism or extend an already&lt;/span&gt;
            &lt;span class="c1"&gt;// existing language definition. More details on this option can be&lt;/span&gt;
            &lt;span class="c1"&gt;// found under the header "Add new language definition or extend an&lt;/span&gt;
            &lt;span class="c1"&gt;// existing language" below.&lt;/span&gt;
            &lt;span class="na"&gt;languageExtensions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
              &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;superscript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;javascript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;definition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                  &lt;span class="na"&gt;superscript_types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;SuperType&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="na"&gt;insertBefore&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                  &lt;span class="na"&gt;function&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="na"&gt;superscript_keywords&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;superif|superelse&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                  &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
              &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="c1"&gt;// Customize the prompt used in shell output&lt;/span&gt;
            &lt;span class="c1"&gt;// Values below are default&lt;/span&gt;
            &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
              &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;localhost&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="na"&gt;global&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="c1"&gt;// By default the HTML entities &amp;lt;&amp;gt;&amp;amp;'" are escaped.&lt;/span&gt;
            &lt;span class="c1"&gt;// Add additional HTML escapes by providing a mapping&lt;/span&gt;
            &lt;span class="c1"&gt;// of HTML entities and their escape value IE: { '}': '&amp;amp;#123;' }&lt;/span&gt;
            &lt;span class="na"&gt;escapeEntities&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
          &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step Four - Include a CSS Theme&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PrismJS offers eight different themes to choose from or you can create your own using CSS. I'm using Prism's 'Tomorrow Night' theme for this blog. You can see the different theme options in action on the PrismJS homepage: (&lt;a href="https://prismjs.com/" rel="noopener noreferrer"&gt;https://prismjs.com/&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;To use a theme, just require its CSS file in your &lt;code&gt;gatsby-browser.js&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="c1"&gt;// gatsby-browser.js&lt;/span&gt;
    &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;prismjs/themes/prism-tomorrow.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Including the theme's file in our &lt;code&gt;gatsby-browser.js&lt;/code&gt; allows us to use this CSS along with our existing stylesheet.&lt;/p&gt;

&lt;p&gt;Here is a peak at this section of my blog's CSS file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* My initial styles with custom scrollbar 
code blocks without language specification will
use this instead of PrismJS 
*/&lt;/span&gt;
&lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#4f4543&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f8f5f2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;word-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;break-word&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="nl"&gt;letter-spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 

&lt;span class="nt"&gt;pre&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.5rem&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;-webkit-overflow-scrolling&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;touch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow-x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;70vw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;min-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 

&lt;span class="nt"&gt;pre&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="nd"&gt;::-webkit-scrollbar&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.25em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 

&lt;span class="nt"&gt;pre&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="nd"&gt;::-webkit-scrollbar-track&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#8f2d56&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;inset&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;pre&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="nd"&gt;::-webkit-scrollbar-thumb&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;48px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#FFB847&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;inset&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* PrismJS Theme styles */&lt;/span&gt;
 &lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;],&lt;/span&gt;
 &lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#ccc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#453d3b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Consolas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Monaco&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;'Andale Mono'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;'Ubuntu Mono'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;monospace&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;white-space&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;pre&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;word-spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;word-break&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;word-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

   &lt;span class="nl"&gt;-moz-tab-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;-o-tab-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;tab-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

   &lt;span class="nl"&gt;-webkit-hyphens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;-moz-hyphens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;-ms-hyphens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;hyphens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nd"&gt;:not&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;],&lt;/span&gt;
 &lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#453d3b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="c"&gt;/* Inline code */&lt;/span&gt;
 &lt;span class="nd"&gt;:not&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.1em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
   &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.3em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;white-space&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;


 &lt;span class="nc"&gt;.token.comment&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.block-comment&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.prolog&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.doctype&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.cdata&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#999&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.punctuation&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#ccc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.tag&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.attr-name&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.namespace&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.deleted&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#e2777a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.function-name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#6196cc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.boolean&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.number&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.function&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f08d49&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.property&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.class-name&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.constant&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.symbol&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f8c555&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.selector&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.important&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.atrule&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.keyword&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.builtin&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#cc99cd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.string&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.char&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.attr-value&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.regex&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.variable&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#7ec699&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.operator&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.entity&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.url&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#67cdcc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.important&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
 &lt;span class="nc"&gt;.token.bold&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
 &lt;span class="nc"&gt;.token.italic&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;italic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.entity&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;help&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="nc"&gt;.token.inserted&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* Additional styling from Gatsby -

 * Remove the default PrismJS theme background-color, border-radius, margin, padding and overflow.
 * 1. Make the element just wide enough to fit its content.
 * 2. Always fill the visible space in .gatsby-highlight.
 * 3. Adjust the position of the line numbers
 */&lt;/span&gt;
 &lt;span class="nc"&gt;.gatsby-highlight&lt;/span&gt; &lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"language-"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;initial&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 1 */&lt;/span&gt;
  &lt;span class="nl"&gt;min-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 2 */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Usage&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We're not going to see any syntax highlighting until writing a code block in one of our posts. Navigate into one of the existing markdown posts (found in the &lt;code&gt;blog/&lt;/code&gt; folder within &lt;code&gt;content&lt;/code&gt;) and write some code blocks.&lt;/p&gt;

&lt;p&gt;Here's a helpful reference on writing with Markdown: &lt;a href="https://www.markdownguide.org/cheat-sheet/" rel="noopener noreferrer"&gt;Markdown Cheatsheet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three backticks are used to denote a multi-line code block in Markdown. In order to use PrismJS, we need to include our code language of choice with the intial backticks, like so:&lt;/p&gt;

&lt;p&gt;&lt;a href="/static/09e67125cb77d6addbbb6d17e6b0e452/0f67e/syntax-highlight.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fnikkipeel.netlify.app%2Fstatic%2F09e67125cb77d6addbbb6d17e6b0e452%2F0f67e%2Fsyntax-highlight.png" title="prismjs usage" alt="prismjs usage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Final Considerations&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;PrismJS was easy to integrate with my existing Gatsby Blog and I plan to use it in other projects as well. There are additional options you can include such as line highlighting, line numbering, adding a Shell prompt, showing code differences, or line hiding. For more on how you can use PrismJS, please visit Gatsby's extensive documentation: &lt;a href="https://www.gatsbyjs.com/plugins/gatsby-remark-prismjs/" rel="noopener noreferrer"&gt;gatsby-remark-prismjs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would also recommend testing your blog with a Contrast Checker tool in your browser before publishing. This is especially helpful if you plan to make changes to your PrismJS styles but want to also ensure accessibility guidelines are met. &lt;a href="https://webaim.org/resources/contrastchecker/" rel="noopener noreferrer"&gt;WebAIM Contrast Checker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Syntax_highlighting" rel="noopener noreferrer"&gt;Wiki - Syntax Highlighting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prismjs.com/" rel="noopener noreferrer"&gt;PrismJS Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gatsbyjs.com/plugins/gatsby-remark-prismjs/" rel="noopener noreferrer"&gt;GatsbyJS - gatsby-remark-prismjs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gatsbyjs.com/starters/gatsbyjs/gatsby-starter-blog" rel="noopener noreferrer"&gt;gatsby-starter-blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gatsby</category>
      <category>tutorial</category>
      <category>javascript</category>
      <category>markdown</category>
    </item>
    <item>
      <title>Styling with text-decoration</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Sun, 07 Feb 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/nikkipeel/styling-with-text-decoration-5ck8</link>
      <guid>https://forem.com/nikkipeel/styling-with-text-decoration-5ck8</guid>
      <description>&lt;p&gt;Text-decoration is a great way to emphasize text on a webpage. I use the CSS property often for headings or elements that receive focus, such as buttons or anchor tags.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Text-decoration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Text-decoration is shorthand for the following properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;text-decoration-color&lt;/code&gt;: sets the color of the decoration, otherwise the color of the text is inherited&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;text-decoration-line&lt;/code&gt;: sets the type of decoration that is used; the options are: &lt;em&gt;underline, overline,&lt;/em&gt; and &lt;em&gt;line-through&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;text-decoration-style&lt;/code&gt;: sets the style of the line that is used for the decoration such as &lt;em&gt;solid, double,wavy, dashed,&lt;/em&gt; or &lt;em&gt;dotted&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;text-decoration-thickness&lt;/code&gt;: sets the thickness of the line used for the decoration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use text-decoration with a single property: &lt;code&gt;text-decoration: underline;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or with multiple properties on the same line: &lt;code&gt;text-decoration: underline solid #444 5px;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Text-underline-offset&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Sometimes, the text-decoration line is obstructed with letters. You can use the property &lt;code&gt;text-underline-offset&lt;/code&gt; to move the line up or down:&lt;/p&gt;

&lt;p&gt;In the following image, the property is used to move the line down slightly:&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/54582b9b43460590e747d3463889c456/0e758/offset.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EpMsPV4h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://nikkipeel.netlify.app/static/54582b9b43460590e747d3463889c456/07a9c/offset.png" alt="text-underline-offset" title="text-underline-offset" width="880" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep in mind this must be declared outside of &lt;code&gt;text-decoration&lt;/code&gt; because it's styling the line itself and is not a &lt;code&gt;text-decoration&lt;/code&gt; property&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Along with text-shadow, border, and color, text-decoration is an excellent way to bring attention to various elements of your website. I created a CodePen to demonstrate a few of the different ways we can use this property:&lt;/p&gt;

&lt;p&gt;Here is a link to the pen: &lt;a href="https://codepen.io/nikki-peel/full/zYovZmv"&gt;codepen: text-decoration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/031fd5113ad2c31d9e9c497efa9243d0/b7535/text-decoration.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YL4wcS9E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://nikkipeel.netlify.app/static/031fd5113ad2c31d9e9c497efa9243d0/07a9c/text-decoration.png" alt="text-decoration demo" title="text-decoration demo" width="880" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Resources:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration"&gt;MDN docs: text-decoration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/WAI/WCAG21/Techniques/general/G182"&gt;WCAG 2.1 - Using visual cues to convey information&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>css</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Customizing the scrollbar with CSS</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Tue, 19 Jan 2021 15:17:15 +0000</pubDate>
      <link>https://forem.com/nikkipeel/customizing-the-scrollbar-with-css-1ei7</link>
      <guid>https://forem.com/nikkipeel/customizing-the-scrollbar-with-css-1ei7</guid>
      <description>&lt;p&gt;Have you ever noticed the intricacies of the websites you visit? You can style just about every pixel of it, including the scrollbar. I was curious about how to go about this and found that it could be accomplished with just a few lines of CSS. &lt;/p&gt;

&lt;p&gt;Here's what we'll build in Codepen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fy3psdt0zzi0q6kjjdzcc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fy3psdt0zzi0q6kjjdzcc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to the final project: &lt;a href="https://codepen.io/nikki-peel/pen/oNzmEMa" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three boxes containing overflowing text content will all be scrollable but styled differently. The first &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; will have content be scrollable while the scrollbar itself is hidden. The second &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; will have a styled scrollbar that is always visible. The third &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; will have a styled scrollbar but only display it when the &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; is focused upon.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Create the three sections with text content&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;First, create three &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; elements and within those sections create a paragraph containing a long string of text (I used 4 paragraphs of dummy text, enough to create overflow). I also chose to label each &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; with an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section&amp;gt;
  &amp;lt;h1&amp;gt;Hidden&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;section&amp;gt;
  &amp;lt;h1&amp;gt;Styled&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;section&amp;gt;
  &amp;lt;h1&amp;gt;Hidden-until-focused&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Create base styles with CSS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Next, you'll want to create some basic styling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  --white: #f8f5f2;
  --teal: #00E8F0;
  --magenta: #CC0088;
  --purple: #54086B;
  --gradient: linear-gradient(to top left, var(--purple), var(--magenta));
}

body {
  display: flex;
  justify-content: space-evenly;
  background: var(--gradient);
  color: #121212;
  width: 90vw;
  height: 100vh;
  margin: 2rem auto;
}

section {
  display: block;
  background-color: var(--white);
  border-radius: 5px;
  height: 60vh;
  overflow-y: auto;
  margin: 0 1rem;
  padding: 2rem;
  border: 3px solid #121212;
}

p {
  line-height: 1.35;
  font-family: sans-serif;
} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I decided to use custom properties for the colors in this project and declared them first at the top of the file (this is optional of course). Next, we'll use Flexbox to style the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; using display: flex and space the sections evenly using &lt;code&gt;justify-content: space-evenly&lt;/code&gt;. I also added margin to the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; so that the sections would be centered horizontally with a bit of space on top and bottom as well: &lt;code&gt;margin: 2rem auto&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body {
  display: flex;
  justify-content: space-evenly;
  background: var(--gradient);
  color: #121212;
  width: 90vw;
  height: 100vh;
  margin: 2rem auto;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sections each have a &lt;code&gt;height&lt;/code&gt; of 60vh with a &lt;code&gt;border-radius&lt;/code&gt; of 5px for rounded corners. I added some padding to the &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; as well so that there is a nice amount of whitespace. You want to make sure you declare &lt;code&gt;overflow-y: auto&lt;/code&gt; when styling your sections so that they are scrollable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section {
  display: block;
  background-color: var(--white);
  border: 3px solid #121212;
  height: 60vh;
  border-radius: 5px;
  overflow-y: auto;
  margin: 0 1rem;
  padding: 2rem;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only styling I chose for the paragraph elements was a line-height of 1.35 and changing the font-family to sans-serif:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p {
  line-height: 1.35;
  font-family: sans-serif;
} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Styling the scrollbar component&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now it's time for the fun part! In order to select the scrollbar, we'll use the pseudo-element &lt;code&gt;::webkit-scrollbar&lt;/code&gt; on our &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element to indicate that we want to use a custom scrollbar and assign it a &lt;code&gt;width&lt;/code&gt; of 1.25em:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: if you plan to use a horizontal scroll bar instead (or in addition to) you'll need to declare a &lt;code&gt;height&lt;/code&gt; for the scrollbar&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section::-webkit-scrollbar {
width: 1.25em;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we can style the 'track' of the scrollbar using &lt;code&gt;::-webkit-scrollbar-track&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section::-webkit-scrollbar-track {
  border-radius: 1.5px;
  background-color: var(--teal);
  -webkit-box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I added a small &lt;code&gt;border-radius&lt;/code&gt; because the &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; container has rounded corners as well. You may also create an inner-shadow for the track using &lt;code&gt;box-shadow&lt;/code&gt; and the keyword 'inset'.&lt;/p&gt;

&lt;p&gt;Now that the &lt;code&gt;sidebar&lt;/code&gt; and &lt;code&gt;sidebar-track&lt;/code&gt; have been made we can add custom styling to the &lt;code&gt;sidebar-thumb&lt;/code&gt; (this is the element that moves along the track):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section::-webkit-scrollbar-thumb  {
  height: 50px;
  border-radius: 10px;
  background-color: var(--magenta);
  -webkit-box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once again, we've added &lt;code&gt;border-radius&lt;/code&gt; for rounded corners and an inner-shadow on the element. Adding an explicit height here was also necessary because the height of the &lt;code&gt;scrollbar-thumb&lt;/code&gt; adapts to screen size and becomes too small of a target on mobile devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Hiding the scrollbar&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Remember, we want to hide the scrollbar on the first &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; while still maintaining scroll. To do this, simply target the element by its ID (&lt;code&gt;#hidden&lt;/code&gt;) and write &lt;code&gt;display: none;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#hidden::-webkit-scrollbar {  
  display: none;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Hiding the scrollbar until focused&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Styling the third &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; was a bit trickier. We don't want the scrollbar to show unless the section has been focused upon. First, you must target the element by its ID (&lt;code&gt;#inactive&lt;/code&gt;) and hide the overflowing content (this also hides the scrollbar!):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#inactive {
  overflow: hidden;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, target the element's &lt;code&gt;:focus&lt;/code&gt; state and change the overflow of the y axis to &lt;code&gt;auto&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#inactive:focus {
  overflow-y: auto;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you click or tap on the third section, you should now see our custom scrollbar appear!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Making the sections tabbable and adding &lt;code&gt;:focus&lt;/code&gt; styling&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;These next few steps are implemented so that the sections can be focused upon by keyboard users as well. The &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element is not tabbable by default as is the case with input elements, buttons, and anchor tags. In order to fix this, I added a &lt;code&gt;tabindex&lt;/code&gt; to each of the sections within the HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section id="hidden" tabindex="1"&amp;gt;&amp;lt;/section&amp;gt;
&amp;lt;section tabindex="2"&amp;gt;&amp;lt;/section&amp;gt;
&amp;lt;section id="inactive" tabindex="3"&amp;gt;&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, custom styling can be used to indicate more clearly whether an element has been focused upon. For this project, I applied &lt;code&gt;transition&lt;/code&gt; and &lt;code&gt;:focus&lt;/code&gt; styles globally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* {
    transition: all .3s ease;
}

*:focus {
  outline: 4px dotted var(--teal);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Finishing touches&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You may also wish to add a short note as I have to the third &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; indicating that the user must tap to view the content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;em&amp;gt;* tap to focus on small screens&amp;lt;/em&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In our CSS file, we can hide this element on large screens using a media query:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;em {
  display: block;
}

@media screen and (min-width: 769px) {
  em {
    display:none;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we should add another media query so that our content collapses when viewed on small screens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@media screen and (max-width: 768px) {
  body {
    display: flex;
    flex-direction: column;
  }

  section {
    margin: 1rem auto;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First, we update our &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element to use &lt;code&gt;flex-direction: column&lt;/code&gt;. Next, adjust the margin on the &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; elements so that there is a vertical gap between them and they are centered horizontally: &lt;code&gt;margin: 1rem auto;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Final HTML:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section id="hidden" tabindex="1"&amp;gt;
  &amp;lt;h1&amp;gt;Hidden&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;section tabindex="2"&amp;gt;
  &amp;lt;h1&amp;gt;Styled&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;section id="inactive" tabindex="3"&amp;gt;
  &amp;lt;em&amp;gt;* tap to focus on small screens&amp;lt;/em&amp;gt;
  &amp;lt;h1&amp;gt;Hidden-until-focused&amp;lt;/h1&amp;gt;
  &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
    &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
     &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Nobis, quod fugiat natus exercitationem totam eveniet sint. Officiis itaque minima unde facilis at aut nostrum, veniam amet natus perspiciatis laboriosam exercitationem adipisci laudantium nihil voluptatem assumenda animi, fugit est harum officia! Quas quae expedita nemo, qui fuga unde error commodi harum deserunt aut incidunt esse sed laudantium veritatis earum nobis, quisquam at optio perferendis. Sed, consectetur. Enim deserunt tempore sunt? Laudantium rerum dignissimos sunt animi molestias maiores reprehenderit esse quas laboriosam?
      &amp;lt;br/&amp;gt;
    &amp;lt;br/&amp;gt;
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Expedita incidunt minima fugiat obcaecati et repudiandae dolore delectus, perspiciatis odio harum! Eaque iste numquam facere voluptas aspernatur molestiae hic vitae ducimus! Ducimus rem assumenda autem! Impedit molestiae quibusdam possimus libero quasi sunt eius rerum, omnis labore unde illo repellendus soluta eveniet vitae voluptatum. Quidem, sit adipisci ratione natus inventore voluptate saepe soluta in! Ea nemo voluptatem perferendis fuga eligendi quas, modi eos architecto, cupiditate minima vel adipisci obcaecati quia debitis! Debitis!
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Final CSS:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  --white: #f8f5f2;
  --teal: #00E8F0;
  --magenta: #CC0088;
  --purple: #54086B;
  --gradient: linear-gradient(to top left, var(--purple), var(--magenta));
}

* {
    transition: all .3s ease;
}

*:focus {
  outline: 4px dotted var(--teal);
}

body {
  display: flex;
  justify-content: space-evenly;
  background: var(--gradient);
  color: #121212;
  width: 90vw;
  height: 100vh;
  margin: 2rem auto;
}

section {
  display: block;
  background-color: var(--white);
  border-radius: 5px;
  height: 60vh;
  overflow-y: auto;
  margin: 0 1rem;
  padding: 2rem;
  border: 3px solid #121212;
}

p {
  line-height: 1.35;
  font-family: sans-serif;
} 

section::-webkit-scrollbar {
    width: 1.25em;
} 

section::-webkit-scrollbar-track {
  border-radius: 1.5px;
  background-color: var(--teal);
  -webkit-box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}

section::-webkit-scrollbar-thumb  {
  height: 50px;
  border-radius: 10px;
  background-color: var(--magenta);
  -webkit-box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}


/* hiding the scrollbar for the first &amp;lt;section&amp;gt; */
#hidden::-webkit-scrollbar {
  display: none;
}

#inactive {
  overflow: hidden;
}

#inactive:focus {
  overflow-y: auto;
}

/* use hidden-scrollbar type for 'body' */
body::-webkit-scrollbar {
  display: none;
}

@media screen and (max-width: 768px) {
  body {
    display: flex;
    flex-direction: column;
  }

  section {
    margin: 1rem auto;
  }
}

em {
  display: block;
}

@media screen and (min-width: 769px) {
  em {
    display:none;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it! We now have three scrollable sections each with custom styling 🎉&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Wrapping things up&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is just the beginning of what you can do to style the scrollbars for your projects. There are a variety of pseudo-elements that can be used to customize each part of the scrollbar:&lt;/p&gt;

&lt;p&gt;*&lt;code&gt;::-webkit-scrollbar&lt;/code&gt; — the entire scrollbar.&lt;br&gt;
*&lt;code&gt;::-webkit-scrollbar-button&lt;/code&gt; — the buttons on the scrollbar (arrows pointing upwards and downwards).&lt;br&gt;
*&lt;code&gt;::-webkit-scrollbar-thumb&lt;/code&gt; — the draggable scrolling handle.&lt;br&gt;
*&lt;code&gt;::-webkit-scrollbar-track&lt;/code&gt; — the track (progress bar) of the scrollbar.&lt;br&gt;
*&lt;code&gt;::-webkit-scrollbar-track-piece&lt;/code&gt; — the part of the track (progress bar) not covered by the handle.&lt;br&gt;
*&lt;code&gt;::-webkit-scrollbar-corner&lt;/code&gt; — the bottom corner of the scrollbar, where both horizontal and vertical scrollbars meet.&lt;br&gt;
*&lt;code&gt;::-webkit-resizer&lt;/code&gt; — the draggable resizing handle that appears at the bottom corner of some elements.&lt;/p&gt;

&lt;p&gt;One important factor to keep in mind is accessibility. According to MDN, it is not suggested to be used in production due to its incompatibility with some browsers:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-scrollbar" rel="noopener noreferrer"&gt;MDN Docs - webkit-scrollbar&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2w9nss0a05gt5xzdlo5x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2w9nss0a05gt5xzdlo5x.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Farjlxuwklo40r9mi1dhv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Farjlxuwklo40r9mi1dhv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also another method being developed which I think is important to point out: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars" rel="noopener noreferrer"&gt;MDN Docs - CSS Scrollbars&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is an example from MDN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.scroller {
  width: 300px;
  height: 100px;
  overflow-y: scroll;
  scrollbar-color: rebeccapurple green;
  scrollbar-width: thin;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we're using green for the color of our thumb and purple for our scrollbar's track (both declared using &lt;code&gt;scrollbar-color&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;And the HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="scroller"&amp;gt;
Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi
welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic.
Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette
tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato.
Dandelion cucumber earthnut pea peanut soko zucchini.
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Current browser compatibility for scrollbar-color and scrollbar-width:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3gy0rnb7xy1er7f1392g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3gy0rnb7xy1er7f1392g.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhktcfixvcpw7sifxc608.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhktcfixvcpw7sifxc608.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you know of any other methods that can be used for customizing the scrollbar, please share in the comments. Thank you for reading!&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Updates &amp; Pandemic Projects</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Wed, 13 Jan 2021 14:09:47 +0000</pubDate>
      <link>https://forem.com/nikkipeel/updates-pandemic-projects-3gbe</link>
      <guid>https://forem.com/nikkipeel/updates-pandemic-projects-3gbe</guid>
      <description>&lt;p&gt;I hope everyone's been staying safe and healthy during this pandemic! I'm trying to focus on learning as much as I can. Being a junior developer, I've been focused on coding daily and creating functional projects to add to my portfolio. In this post, I wanted to share a few things I've worked on (and why I chose the technologies I did):&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Bootstrap Portfolio&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nikkipeel.com"&gt;Visit Portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I rebuilt my portfolio in June to a new design using Bootstrap. I cut my coding time in half by switching to a framework (even with changes to the color palette and typography), and the new site is much more responsive and accessible. I included a sidebar for navigation on large screens and a card-grid layout for displaying projects:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5nnE5I3X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/45nbl0ikg9c5mkk52n7p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5nnE5I3X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/45nbl0ikg9c5mkk52n7p.png" alt="Alt Text" width="880" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Previous design (HTML &amp;amp; CSS only)-&lt;br&gt;
&lt;a href="https://github.com/nikkipeel/portfolio"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JL7QOQgF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0231qqnlzxsipjlatkui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JL7QOQgF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0231qqnlzxsipjlatkui.png" alt="Alt Text" width="880" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I cringe a &lt;em&gt;little&lt;/em&gt; bit when looking back on old projects (performance was terrible in my old portfolio), but it truly is a necessary part of growing as a developer. I fully intend on revamping this portfolio again in the future, but for now I'm pleased with the design and content.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Wordpress Blog with Elementor&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nomadicnobodies.com"&gt;Visit Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of my favorite things to do is spend time outdoors with my family. I wanted to create a personal blog to display a large amount of content. I decided to use Wordpress for this because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I lacked experience with a CMS and wanted to create a site as if it were for a real client. Wordpress powers a lot of websites and I wanted to gain real experience using the platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I wanted to create a blog fast and spend less time on coding because I had a lot of content I wanted to use right away&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Though I'm happy with how quickly I was able to get my blog up and running, I felt I had to write a lot of custom CSS and may have been better served using Bootstrap. I may rebuild the site in the future with a different tech stack (Javascript and the Wordpress API? Gatsby?). I did enjoy the features that could easily be added using plugins - such as the custom Google Map that was added to the category page 'Trips'. I was even able to customize the login page and admin dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E90E4oAb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2kcjey412v3kc884j0w6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E90E4oAb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2kcjey412v3kc884j0w6.png" alt="Alt Text" width="880" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yqVbE614--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mqbol2m8q2lbhtthmx6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yqVbE614--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mqbol2m8q2lbhtthmx6e.png" alt="Alt Text" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;React Blog with Tailwind and Sanity&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nikkipeel.netlify.app"&gt;Visit Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I saw a really great technical blog recently that I wanted to replicate and customize. Instead of using Jekyll, I created mine with React and Tailwind (I love Tailwind!) and deployed the site using Github and Netlify. I also found a great tutorial on Youtube that featured exactly what I was looking for: &lt;br&gt;
&lt;a href="https://youtu.be/NO7_jgzVgbc"&gt;Build a Portfolio Site with React and Sanity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, I wasn't planning to build a portfolio site, but this tutorial would also show me how to integrate with Sanity.io (more CMS experience!).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rM2YZ2n2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rfvcy27zeuzc1bsog4s6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rM2YZ2n2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rfvcy27zeuzc1bsog4s6.png" alt="Alt Text" width="880" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bd_zMhjO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hkrgrvw0krj6foetzrp4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bd_zMhjO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hkrgrvw0krj6foetzrp4.png" alt="Alt Text" width="880" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm pretty happy for now with the end result and even managed to upload my first post. My goal in creating a technical blog like this is to improve my documentation (for the sake of better understanding the technologies I use). I'm hoping what I can post may be helpful to those new to web development as well.&lt;/p&gt;

&lt;p&gt;Moving forward, it seems that some of the functionality I'd like to add would be more easily accomplished with Gatsby. I'd like to be able to generate an XML file for use in RSS feeds and for my posts there to be automatically added here on dev.to.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Front End Projects with Tailwind&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I've been working a lot with &lt;a href="https://tailwindcss.com/"&gt;Tailwind&lt;/a&gt; this year. One thing that I enjoy about using a framework like this is that it forces me to be more conscious of my html tags (using &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;, or &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; instead of &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;). Of course that's always possible with Bootstrap as well, but I also enjoy the method of writing these styles within my markdown (and the css files are TINY). &lt;/p&gt;

&lt;p&gt;Here are a few of the other pages I've made with Tailwind:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nikkipeel.github.io/cannabiz"&gt;Cannabiz - Visit Site&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P-9bIafg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/adwz12noxk4cj1frjvv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P-9bIafg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/adwz12noxk4cj1frjvv3.png" alt="Alt Text" width="880" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/nikki-peel/pen/zYKBzzg"&gt;Photography Portfolio - Visit Site&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fKxT6Sgq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ofx1lhkpz8lwrt45i4lo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fKxT6Sgq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ofx1lhkpz8lwrt45i4lo.png" alt="Alt Text" width="880" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nikkipeel.github.io/tailwind-blog/"&gt;Tailwind Blog - Visit Site&lt;/a&gt;&lt;br&gt;
&lt;em&gt;My first Tailwind site&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C5h4492M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pulknz9ewg6tz9kxfi26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C5h4492M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pulknz9ewg6tz9kxfi26.png" alt="Alt Text" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading this! If you have any input for me about my projects or want to share some of what you've done yourself, please feel free to do so 😊 &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Epilepsy and ES6- nevertheless, she coded</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Sun, 08 Mar 2020 12:16:50 +0000</pubDate>
      <link>https://forem.com/nikkipeel/epilepsy-and-es6-nevertheless-shecoded-1fgp</link>
      <guid>https://forem.com/nikkipeel/epilepsy-and-es6-nevertheless-shecoded-1fgp</guid>
      <description>&lt;p&gt;Imagine you're at the office. You're sitting at your desk, debugging an app or building a UI. Your coworker suddenly falls to the floor and starts convulsing. They're having a seizure....what do you do? You roll them onto their side, protect their head from injury, but the shaking continues. Just when you thought things couldn't get worse, their breathing stops. You're a developer, not a doctor. Now what?!??&lt;/p&gt;

&lt;p&gt;I've had epilepsy since I was 15 years old, almost 20 years. I've been that stranger-in-need on more than one occasion. At school, at work, at events, while driving....I can never predict when my next involuntary dance will be. I've crashed two cars and have hit my head on safes, doors, wall corners, bars, desks, and more. Some say epilepsy is an invisible illness, but I've had many painful bruises to prove otherwise.&lt;/p&gt;

&lt;p&gt;I'm not one of those lucky people that is 'overcoming my illness' or 'living without boundaries'. My boundaries are seizure triggers and epilepsy will inevitably end up overcoming me. More than 1 in 1,000 people with epilepsy die from SUDEP- the sudden, unexpected death of someone with epilepsy. It is the leading cause of death in people with uncontrolled seizures. Did I mention I also have refractory epilepsy? Lucky me! &lt;/p&gt;

&lt;p&gt;But seriously, chronic illness has a way of altering your perspective on life. Sometimes I wonder, when I'm camping with my family, playing ball with the dogs, or just debating politics in the morning....is it the last time? Sometimes I'll struggle to fall asleep; I'm envisioning my husband and kids at my funeral when I shut my eyes. Despite the negativity, I do feel that I enjoy life more overall...everything matters, everything means something. &lt;/p&gt;

&lt;p&gt;So I plan. I prepare. I update my 'software' regularly. Much of my life with epilepsy is planning for the next big 'disc' failure.&lt;/p&gt;

&lt;p&gt;Just this past Wednesday, I had another seizure. I stopped breathing for 45 seconds, longer than I knew I could hold my breath! But this time was different than the others: there were no hot fryers or grill tops to burn myself on, no hard corners to bump my head on - I fell directly onto my bed. That moment is what I've been planning for since 2015 when I first googled 'free web development courses'. At the time, I was a homeschool mom who had been denied disability assistance twice and didn't finish college because I became pregnant. I'd always relied on hard labor to earn a buck, working as a line cook, restaurant manager, and landscaper. But I was determined to work smarter, not harder, in an effort to extend my life. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz06l19el3nxa44sy4j84.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz06l19el3nxa44sy4j84.jpg" alt="Inspirational quote" width="800" height="787"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, I've been working to complete my portfolio website and have been finishing up courses on Udemy (check out &lt;a href="https://www.udemy.com/course/modern-react-bootcamp/" alt="Udemy-Modern React Bootcamp"&gt;The Modern React Bootcamp&lt;/a&gt;) and &lt;a href="https://www.freecodecamp.org/" alt="FreeCodeCamp website"&gt;FreeCodeCamp&lt;/a&gt;. I also took a break to publish a simple Bootstrap site for my son's Science Fair project (an excuse to apply some of my skills): &lt;a href="https://nikkipeel.github.io/science-project/" alt="Science Fair website"&gt;Testing Performance in Model Rockets.&lt;/a&gt;  I feel very fortunate to be able to learn and create neat projects like this.&lt;/p&gt;

&lt;p&gt;It's rare that I get excited about the future, but I am. Remote work is on the rise. The ability to contribute to the world, no matter your physical ability or location, is groundbreaking. It's changing the world - changing my world anyway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fy8ygd47ckjxq33uqoovq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fy8ygd47ckjxq33uqoovq.jpg" alt="Wearing EEG head cap" width="800" height="1202"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Having my brainwaves recorded by an EEG head cap, 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fa10ax9ziam3e8po6jzj6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fa10ax9ziam3e8po6jzj6.jpg" alt="Coffee percolator atop campfire" width="720" height="960"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;My dream is to code while drinking percolator coffee at sunrise with birds chirping in the distance &lt;/em&gt;&lt;/p&gt;

</description>
      <category>wecoded</category>
      <category>womenintech</category>
      <category>a11y</category>
    </item>
    <item>
      <title>Am I a Developer yet?</title>
      <dc:creator>Nikki</dc:creator>
      <pubDate>Mon, 27 Jan 2020 19:23:40 +0000</pubDate>
      <link>https://forem.com/nikkipeel/am-i-a-developer-yet-meg</link>
      <guid>https://forem.com/nikkipeel/am-i-a-developer-yet-meg</guid>
      <description>&lt;p&gt;Today I hit a big landmark in my journey transitioning into Web Development: I received a call this morning from a recruiter regarding a Junior-level Front-End-based role. I've been studying Web Design, App Development, CMS, front-end, back-end (you name it, I've tried it) for almost 5 years now. Prior to my interest in all things web-related I was a line cook, food server, restaurant manager, customer service representative and homeschool mom. I've gotten great at managing time, creating schedules, handling money, and assisting customers. But did I ever think I'd be capable of eliminating bugs from software or creating responsive web sites? Not so much. My brother was the technical one growing up, playing PC games and taking apart computers. It was never 'supposed' to be for someone like me. However, in High School and College I had a lot of interest in Graphic Design and often dabbled with Illustrator and Photoshop. On most days, I feel VERY comfortable playing with code; it feels as if it's something I shouldn't have waited until my 30's to pursue. On the other days, I still see myself as an outsider. &lt;/p&gt;

&lt;p&gt;Fortunately, before my landmark phone conversation this morning, I had read a great blog post which specifically addressed this psychological problem:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/juanfrank77/how-to-forget-about-imposter-syndrome-1d79"&gt;https://dev.to/juanfrank77/how-to-forget-about-imposter-syndrome-1d79&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do I feel I'll be offered the job? Not necessarily. However, it was a great experience to be forced to look back on the progress I have made and I'm excited to continue learning new skills. Those Bootcamps, code-alongs, projects, and code snippets really do add up over time! So am I a Developer? Of course! And here's my justification:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ONLY YOU CAN DECIDE WHO YOU ARE&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Imposter Syndrome is real, and we don't deserve to do this to ourselves. Of course you're still learning, everyone is. It's important to note that the learning never stops. You won't just become an expert one day and seize to ask any more questions. There'll always be something new to learn. Burnout is common and can also add to feelings of self-doubt. I try to reserve one whole day each week as a break from programming. It usually isn't a 'whole' day, and I can't help myself from working on codepen projects here and there...but the break from courses and documentation is great for rejuvenating both mind and body. &lt;/p&gt;

&lt;p&gt;This was my first post. Too often, I refrain from socialization and the lack of communication has hindered my growth. One of my goals in further developing myself is to ask more questions, share more input, and connect with more people. &lt;/p&gt;

&lt;p&gt;Thank you so much for reading!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>todayilearned</category>
    </item>
  </channel>
</rss>
