<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Envato Tuts+ Code</title><managingEditor>noemail@noemail.org (Esther Vaati)</managingEditor><pubDate>Mon, 21 Jul 2025 10:04:15 GMT</pubDate><link>https://code.tutsplus.com</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:owner><itunes:email>noemail@noemail.org</itunes:email></itunes:owner><item><title>How to create an SVG viewer in HTML, CSS, and JavaScript</title><link>https://webdesign.tutsplus.com/svg-viewer--cms-109195t</link><author>noemail@noemail.org (Esther Vaati)</author><pubDate>Sun, 15 Jun 2025 19:34:15 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109195</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i91s"&gt;
&lt;p&gt;Our SVG viewer will have the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="text-align:-webkit-match-parent"&gt;An editor that allows us to write, paste, and edit SVG code&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-align:-webkit-match-parent"&gt;A validation mechanism that checks if the SVG Code is valid&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-align:-webkit-match-parent"&gt;A preview area where we’ll see the SVG in real-time&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-align:-webkit-match-parent"&gt;An export feature that will allow us to export the SVG&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;So, by the end of this tutorial, we’ll have something like this:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/MYaKMYG?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;The SVG editor will have a text area to add, edit, or paste the SVG code.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"editor"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"editor-header"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;SVG Code Editor&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #f4bf75"&gt;&amp;lt;textarea&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"svgInput"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #6a9fb5"&gt;placeholder=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"Paste your SVG code here and watch the magic happen..."&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The preview area will have a preview container where the current SVG code will be injected for preview.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-header"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;SVG Preview&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-content"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"previewContainer"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-p95v-html-markup"&gt;HTML Markup&lt;/h2&gt;
&lt;p&gt;Okay, let’s start with the building blocks. The HTML markup will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"main"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;SVG Preview Tool&lt;span style="color: #f4bf75"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Edit, preview, and export clean, scalable vector art&lt;span style="color: #f4bf75"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"editor"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"editor-header"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;SVG Code Editor&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;textarea&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"svgInput"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;placeholder=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"Paste your SVG code here and watch the magic happen..."&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-header"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;SVG Preview&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-content"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"previewContainer"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;button&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"exportBtn"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Export SVG&lt;span style="color: #f4bf75"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-8ulw-styling-with-css"&gt;Styling with CSS&lt;/h2&gt;
&lt;p&gt;As you saw from the final demo, we want the editor and the preview to appear side by side on large screens and stack vertically on small devices.  We'll achieve this layout using Flexbox and media queries.  &lt;/p&gt;
&lt;p&gt;Let's begin by applying some basic styles to the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; elements as shown below.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@import&lt;/span&gt; &lt;span style="color: #90a959"&gt;url("https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&amp;amp;display=swap")&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;*&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;box-sizing&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-box&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;body&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-family&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"DM Mono"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;monospace&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;header&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;420px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;40px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;h1&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;700&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;header&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;p&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;18px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We'll apply the following styles to ensure all elements are stacked vertically. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.main&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;24px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1000px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;90vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;700px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-top&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;calc&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;100%&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;-&lt;/span&gt; &lt;span style="color: #90a959"&gt;84px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We also want the text editor and the preview container to fill the available height of their parent containers.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.editor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #90a959"&gt;#7287f2&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.editor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;linear-gradient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;135deg&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;#667eea&lt;/span&gt; &lt;span style="color: #90a959"&gt;0%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;#764ba2&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.editor-header&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview-header&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;12px&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;14px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;white&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;textarea&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #949494"&gt;/* width: 100%; */&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;13px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;resize&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#2e3138&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;white&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-y&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;textarea&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;:focus&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;outline&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-40" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;40&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-41" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;41&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-42" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;42&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-43" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;43&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-44" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;44&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-45" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;45&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-46" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;46&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#f9fafb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-47" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;47&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-y&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-48" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;48&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-49" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;49&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-50" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;50&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview-content&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-51" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;51&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-52" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;52&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-53" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;53&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-54" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;54&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-55" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;55&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-56" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;56&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.svg-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-57" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;57&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-58" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;58&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-59" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;59&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-60" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;60&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Finally, let's style the export button, add styles for displaying error messages, and apply media queries for responsiveness. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.error-message&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#dc2626&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fef2f2&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fca5a5&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;6px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;13px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;button&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-top&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;40px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;linear-gradient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;135deg&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;#667eea&lt;/span&gt; &lt;span style="color: #90a959"&gt;0%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;#764ba2&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;white&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;12px&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;150px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@media&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;768px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;body&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.main&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.editor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.preview&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-40" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;40&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-41" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;41&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-42" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;42&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Now the SVG  tool interface looks like this:&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png" alt="Svg viewer Tool" loading="lazy" width="870px" height="641px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png" alt="Svg viewer Tool" loading="lazy" width="650px" height="480px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png" alt="Svg viewer Tool" loading="lazy" width="380px" height="283px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/109195/image-upload/Svg_viewer.png 2x"&gt;&lt;/figure&gt;
&lt;h2 id="toc-ipes-javascript-functionality"&gt;JavaScript functionality&lt;/h2&gt;
&lt;p&gt;In this section, we'll perform some SVG code validation to ensure that any SVG code added to the editor is parsed before being displayed.&lt;/p&gt;
&lt;p&gt;We'll also add a sample SVG code in the editor and display it in the preview area by default.&lt;/p&gt;
&lt;p&gt;Let's start by getting the elements from the DOM and assigning them to variables for easy access.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgInput&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;svgInput&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;previewContainer&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;previewContainer&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;exportBtn&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;exportBtn&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-3hhf-svg-code-validation"&gt;SVG Code Validation&lt;/h3&gt;
&lt;p&gt;The next step is to ensure that the SVG code is valid before adding it for preview. Create a function called &lt;code&gt;loadSVG()&lt;/code&gt; that takes an SVG string as an argument. &lt;/p&gt;
&lt;p&gt;Inside this function, we will first check if the SVG string is empty. If its empty, we'll display an error message.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;previewContainer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;trim&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;())&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;showErrorMessage&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Enter SVG code to see preview&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #aa759f"&gt;return&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;The second form of validation will be done using the &lt;code&gt;DOMParser&lt;/code&gt; to ensure the SVG Code is well formatted XML code.&lt;/span&gt;&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-info"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;
&lt;code&gt;DOMParser&lt;/code&gt; is an inbuilt interface in JavaScript that allows us to convert XML or HTML strings into a DOM Document object. Once the string is parsed into a DOM, you can query it using standard DOM methods like querySelector, etc. &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span&gt;To parse the XML, first create an instance of the &lt;code&gt;DOMParser&lt;/code&gt; API. Then, parse the SVG string using the &lt;code&gt;ParseFromString()&lt;/code&gt; method and set "image/svg+xml" as the MIME type.&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parser&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;DOMParser&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;doc&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parser&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseFromString&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;image/svg+xml&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Check for errors by querying the &lt;code&gt;&amp;lt;parserror&amp;gt;&lt;/code&gt; element. If there are no errors, we will extract the &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; element and inject it into the preview.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;previewContainer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;trim&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;())&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;showErrorMessage&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Enter SVG code to see preview&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #aa759f"&gt;return&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;try&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parser&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;DOMParser&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;doc&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parser&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseFromString&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;image/svg+xml&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parserError&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;doc&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;parsererror&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;parserError&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #aa759f"&gt;throw&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;XML parsing error: &lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parserError&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgElement&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;doc&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;svg&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #aa759f"&gt;throw&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;No valid SVG element found&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;div&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;container&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;className&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;svg-container&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;container&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;previewContainer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;container&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt; &lt;span style="color: #aa759f"&gt;catch &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;showErrorMessage&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Invalid SVG code: &lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;message&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-5goh-add-event-listeners"&gt;Add event listeners&lt;/h3&gt;
&lt;p&gt;We now have a function that validates and displays the SVG code, so the next step is to ensure it runs before the SVG code in the input changes.&lt;/p&gt;
&lt;p&gt;Add two event listeners to the textarea element as shown below:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #aa759f"&gt;this&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;paste&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #aa759f"&gt;this&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The input event will be triggered whenever you type, delete, or change the contents of the  text area, while the paste event will be triggered when you paste the content to the text area.&lt;/p&gt;
&lt;h2 id="toc-mhnz-load-sample-svg"&gt;Load sample SVG and export SVG&lt;/h2&gt;
&lt;p&gt;The final step is to ensure that we have a default SVG when the tool opens. This is great to ensure the user sees how the tool works. &lt;/p&gt;
&lt;p&gt;Create a function called &lt;code&gt;loadDefaultSVG()&lt;/code&gt; which looks like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadDefaultSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sampleSvg&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`&amp;lt;svg xmlns="https://www.w3.org/2000/svg" width="160" height="190" viewBox="0 0 60 60"&amp;gt;&amp;lt;defs&amp;gt;&amp;lt;style&amp;gt;.cls-1{fill:#87e64b;}&amp;lt;/style&amp;gt;&amp;lt;/defs&amp;gt;&amp;lt;circle class="cls-1" cx="25.56" cy="61.15" r="2.86"/&amp;gt;&amp;lt;path class="cls-1" d="M42,41.65l-16.13,1.73c-.3.03-.45-.34-.21-.53l15.78-12.29c1.02-.84,1.68-2.14,1.4-3.54-.28-2.14-2.05-3.54-4.29-3.26l-17.15,2.51c-.3.04-.46-.34-.22-.53l17-12.98c3.35-2.61,3.63-7.73.56-10.71-2.79-2.79-7.27-2.7-10.06.09L1.29,30.01c-1.02,1.12-1.49,2.61-1.21,4.19.47,2.52,2.98,4.19,5.5,3.73l14.77-3.01c.32-.07.49.36.22.54l-16.38,10.49c-2.05,1.3-2.98,3.63-2.33,5.96.65,3.07,3.73,4.84,6.71,4.1l24.49-6.03c.28-.07.48.25.3.47l-3.82,4.72c-1.02,1.3.65,3.07,2.05,2.05l12.58-10.34c2.24-1.86.75-5.5-2.14-5.22h-.03Z"/&amp;gt;&amp;lt;/svg&amp;gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sampleSvg&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;sampleSvg&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;window&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;load&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;loadDefaultSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;In the code above, we set a default SVG string as the value of the editor (in the textarea), then we call the &lt;code&gt;loadSVG()&lt;/code&gt; function which in turn renders the SVG in the preview area.&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-tip"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;I’ve used the Envato “creative spark” for this example, but you can choose any default SVG you like&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="toc-72w8-export-svg"&gt;Export SVG&lt;/h3&gt;
&lt;p&gt;To export the SVG, we'll package it as an SVG file and trigger a download when the export button is clicked. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;exportSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blob&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Blob&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;([&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;svgInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;],&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;type&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;image/svg+xml&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;URL&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createObjectURL&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blob&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;a&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;href&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;download&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;svg-viewer.svg&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;body&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;click&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;body&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;removeChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;URL&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;revokeObjectURL&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;exportBtn&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;click&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;exportSVG&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-xok4-final-demo"&gt;Final demo&lt;/h2&gt;
&lt;p&gt;And we’re done! Here’s a reminder of the final codepen demo:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/MYaKMYG?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;We built a fully functional SVG viewer using HTML, CSS, and JavaScript. This simple, yet powerful tool will allow you to preview and export your SVG graphics for use in your projects. &lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109195/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109195/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109195/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109195/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>Create a color contrast checker with HTML, CSS, and JavaScript</title><link>https://webdesign.tutsplus.com/color-contrast-checker--cms-109187t</link><author>noemail@noemail.org (Esther Vaati)</author><pubDate>Mon, 26 May 2025 20:57:29 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109187</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iufx"&gt;
&lt;p&gt;By “color contrast” we’re referring to the difference in brightness between foreground and background colors. In simpler terms, it defines how easy it is for the human eye to recognize text or images on a coloured background.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/" target="_blank" rel="noopener"&gt;Web Content Accessibility Guidelines&lt;/a&gt; (WCAG) provide specific recommendations regarding color contrast for text to make web content accessible and visible to people with impaired vision.&lt;/p&gt;
&lt;p&gt;It recommends a minimum contrast ratio of &lt;strong&gt;4.5:1&lt;/strong&gt; for normal text. For larger text, the minimum recommended contrast ratio is &lt;strong&gt;3:1&lt;/strong&gt;. According to the WCAG,  larger text is defined as &lt;strong&gt;24px&lt;/strong&gt; or larger for normal-weight fonts and &lt;strong&gt;18.66px&lt;/strong&gt; or larger for bold text. &lt;/p&gt;
&lt;p&gt;For example, if you have a dark background with dark-colored text, the text will not be easily readable, as seen below.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/109187/image-upload/color_contrast.png" loading="lazy" width="870px" height="370px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/109187/image-upload/color_contrast.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/109187/image-upload/color_contrast.png" loading="lazy" width="650px" height="279px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/109187/image-upload/color_contrast.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/109187/image-upload/color_contrast.png" loading="lazy" width="380px" height="168px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/109187/image-upload/color_contrast.png 2x"&gt;&lt;/figure&gt;
&lt;h2 id="toc-u4ui-how-is-contrast-ratio-calculated"&gt;How is contrast ratio calculated?&lt;/h2&gt;
&lt;p&gt;The contrast ratio between two colors is calculated using the following formula.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table shell"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;contrast ratio &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;L1 + 0.05&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; /&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt; L2+0.05&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;L1&lt;/code&gt; is the relative luminance of the lighter color, and &lt;code&gt;L2&lt;/code&gt; is the relative luminance of the darker color. While higher contrast is generally recommended to meet accessibility standards, moderate contrast is the best as it reduces eye strain. &lt;/p&gt;
&lt;p&gt;Luminance, on the other hand, is the perceived brightness of a color, and it's calculated based on RGB values of that color as shown below:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;R0 = R/255
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;G0 = G/255
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;B0 = B/255
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Once we obtain these values, we linearise each component as follows:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;r&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;R0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.03928&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;R0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;12.92&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Math&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;pow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;R0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;2.4&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;g&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;G0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.03928&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;G0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;12.92&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Math&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;pow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;G0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;2.4&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;b&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;B0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.03928&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;B0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;12.92&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Math&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;pow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;B0&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.055&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;2.4&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Finally, we compute the relative luminance like so:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;Luminance = 0.2126 * R0+0.07152* G0+0.0722*B0
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;Now that we know how to calculate the contrast ratio, let’s build our own color contrast tool!&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="toc-vd8v-heres-what-were-working-towards"&gt;&lt;span&gt;Here’s what we’re working towards&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/MYwxWwZ?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-1zxq-html-structure"&gt;HTML Structure&lt;/h2&gt;
&lt;p&gt;The HTML structure will have the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Color pickers for selecting the foreground and background colors&lt;/li&gt;
&lt;li&gt;A display area to indicate whether the selected color combination meets the WCAG guidelines.&lt;/li&gt;
&lt;li&gt;A preview area that displays sample text to visually demonstrate readability.  &lt;/li&gt;
&lt;li&gt;A paragraph displaying the contrast ratio of the selected colors. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The code for the HTML markup will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Color Contrast Checker&lt;span style="color: #f4bf75"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color-pickers"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color-picker"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-color"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Text Color:&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-color"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"#000000"&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-color-hex"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"#000000"&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;p&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-color-error"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"error-message"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color-picker"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"bg-color"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Background Color:&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"bg-color"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"#FFFFFF"&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"bg-color-hex"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"#FFFFFF"&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;p&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"bg-color-error"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"error-message"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"output"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"results"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"results-item"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;WCAG AA&lt;span style="color: #f4bf75"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Normal Text: &lt;span style="color: #f4bf75"&gt;&amp;lt;span&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"normal_text_aa"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Pass&lt;span style="color: #f4bf75"&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Large Text: &lt;span style="color: #f4bf75"&gt;&amp;lt;span&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"large_text_aa"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Pass&lt;span style="color: #f4bf75"&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"results-item"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;WCAG AAA&lt;span style="color: #f4bf75"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Normal Text: &lt;span style="color: #f4bf75"&gt;&amp;lt;span&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"normal_text_aaa"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Pass&lt;span style="color: #f4bf75"&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Large Text: &lt;span style="color: #f4bf75"&gt;&amp;lt;span&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"large_text_aaa"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Pass&lt;span style="color: #f4bf75"&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is a preview text&lt;span style="color: #f4bf75"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"ratio"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Contrast Ratio: &lt;span style="color: #f4bf75"&gt;&amp;lt;span&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"contrast-ratio"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-40" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;40&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-41" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;41&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-42" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;42&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"error"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-43" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;43&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;p&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"error-message"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-44" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;44&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-45" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;45&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-sxei-styling-with-css"&gt;Styling with CSS&lt;/h2&gt;
&lt;p&gt;We'll start by adding some basic styles to the body, the enclosing container, and the title.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;body&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fff&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;800px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;h1&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;32px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#333&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Align the color picker elements using Flexbox to ensure child elements (i.e. the input and label) are stacked vertically.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.color-pickers&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.color-picker&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;160px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Style the inputs and labels as shown below:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;label&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.7&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;input&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;type&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;]&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;40px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.05&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;input&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;type&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;]&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt; &lt;span style="color: #90a959"&gt;12px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.05&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;uppercase&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The display area will indicate whether the selected colors have passed the minimum contrast ratio requirement. If they fail, we will show a &lt;em&gt;fail&lt;/em&gt; message, otherwise a &lt;em&gt;pass&lt;/em&gt; message will be displayed.&lt;/p&gt;
&lt;p&gt; Here are the styles for the display area.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.results&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.results-item&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;15px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;130px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.05&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.results-item&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;h3&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;10px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#333&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.results-item&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;p&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;5px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.pass&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#38a169&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bold&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.fail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.error-message&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#e53e3e&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bold&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Add these styles to the preview and contrast ratio elements .&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;24px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.05&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.ratio&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;italic&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#333&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We'll also have  styles for error messages.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.error&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#e53e3e&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.error-message&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Our simple interface now looks like this:&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/109187/image-upload/color_tool.png" loading="lazy" width="870px" height="675px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/109187/image-upload/color_tool.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/109187/image-upload/color_tool.png" loading="lazy" width="650px" height="505px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/109187/image-upload/color_tool.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/109187/image-upload/color_tool.png" loading="lazy" width="380px" height="297px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/109187/image-upload/color_tool.png 2x"&gt;&lt;/figure&gt;
&lt;h2 id="toc-rn01-color-contrast-functionality-with-javascript"&gt;Color contrast functionality with JavaScript&lt;/h2&gt;
&lt;p&gt;To get accurate color contrast ratios, we'll use the WCAG contrast checker API, which provides an easy way to check the contrast between any two colors. The color contrast ratio is obtained by providing the foreground and background color values to the API, as shown below.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table shell"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;https://webaim.org/resources/contrastchecker/?fcolor&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;0000FF&amp;amp;bcolor&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;FFFFFF&amp;amp;api
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here we are using black for the text and white for the background.&lt;/p&gt;
&lt;p&gt;The output is a JSON object that looks something like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table shell"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"ratio"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"8.59"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"AA"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"pass"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"AALarge"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"pass"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"AAA"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"pass"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"AAALarge"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"pass"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;A ratio of &lt;strong&gt;8.59&lt;/strong&gt; means the two colors pass the minimum color contrast guidelines. The &lt;em&gt;pass&lt;/em&gt; status means the colors also pass the WCAG requirements for both normal text (AA) and large text (AA). &lt;/p&gt;
&lt;p&gt;The pass on AAA means the contrast ratio passes the most strict compliance level. &lt;/p&gt;
&lt;p&gt;Select all the elements we'll be working with. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-color&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorInput&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;bg-color&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorHex&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-color-hex&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorHex&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;bg-color-hex&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorError&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-color-error&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorError&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;bg-color-error&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aa&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;normal_text_aa&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aa&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;large_text_aa&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aaa&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;normal_text_aaa&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aaa&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;large_text_aaa&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;preview&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;preview&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;contrastRatio&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;contrast-ratio&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Next, we'll  get the currently selected color values from each of the color picker inputs. Create a function called &lt;code&gt;updateColors&lt;/code&gt; which looks like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateColors&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;preview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;preview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;This function gets the current values and applies them to the preview. The selected background color is used as the preview's background while the selected foreground color is applied to the text.&lt;/p&gt;
&lt;p&gt;Invoke the &lt;code&gt;updateColors&lt;/code&gt; function to ensure the preview visually reflects how the text appears on the chosen background. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateColors&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-tpyh-color-validation"&gt;Color validation&lt;/h2&gt;
&lt;p&gt;Before calculating the contrast ratio of the selected colors, we'll first need to validate and sync the color values. This will ensure that when a color is selected using the color picker, the corresponding HEX input value is updated and vice versa. &lt;/p&gt;
&lt;p&gt;To do that, we'll create two functions, one for validating the foreground and another for validating the background color. &lt;/p&gt;
&lt;p&gt;Create a function called  &lt;code&gt;updateTextColorFromHex&lt;/code&gt; .&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateTextColorFromHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Get the current hex value from the text color input.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Check if the value provided starts with the # symbol, if it doesn't, append the symbol at the start of the value. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;charAt&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;!==&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;#&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;#&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Perform another validation to ensure the provided HEX value is a valid and existing color. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;isValidHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;))&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorError&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;incorrect color&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #aa759f"&gt;return&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;If the hex value of the color provided is invalid, show a message and exit the function. If it's a valid color, clear the error message and sync the input value and the color picker to ensure the text input and the color input both show the same color.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorError&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorError&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;block&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexValue&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The helper &lt;code&gt;isValidHex&lt;/code&gt; function uses a regular expression to test the input value and it looks like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;isValidHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;return&lt;/span&gt; &lt;span style="color: #75b5aa"&gt;/^#&lt;/span&gt;&lt;span style="color: #8f5536"&gt;([&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;A-Fa-f0-9&lt;/span&gt;&lt;span style="color: #8f5536"&gt;]{6}&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;|&lt;/span&gt;&lt;span style="color: #8f5536"&gt;[&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;A-Fa-f0-9&lt;/span&gt;&lt;span style="color: #8f5536"&gt;]{3})&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;$/&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;test&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We'll perform a similar validation for the background color.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  function updateBgColorFromHex() {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    let hexValue = bgColorHex.value;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    if (hexValue.charAt(0) !== "#") {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      hexValue = "#" + hexValue;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    if (!isValidHex(hexValue)) {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      bgColorError.textContent = "incorrect color";
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      bgColorError.style.display = "block";
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      return;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    bgColorError.textContent = "";
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    bgColorInput.value = hexValue;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    bgColorHex.value = hexValue;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    updateColors()
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-xqli-event-listeners"&gt;Event listeners &lt;/h2&gt;
&lt;p&gt;It is also important to ensure that when the color or text input  change, the corresponding values are updated. We do this by adding input event listeners to the elements. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateTextColorFromHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateBgColorFromHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateColors&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorHex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateColors&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/introduction-to-javascript-event-listeners--cms-35236"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/35236/preview_image/click.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/35236/preview_image/click.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/35236/preview_image/click.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/35236/preview_image/click.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/35236/preview_image/click.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/35236/preview_image/click.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;An Introduction to JavaScript Event Listeners for Web Designers&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/20515/profileImage/wvQWK027_400x400.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Anna Monus&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;25 Jul 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2 id="toc-pqig-contract-ckecker"&gt;Contrast checker&lt;/h2&gt;
&lt;p&gt;The next step is to pass the current foreground and background hex color values to the API.&lt;/p&gt;
&lt;p&gt;Create a function called &lt;code&gt;getContrastRatio&lt;/code&gt;, which takes two arguments namely, &lt;code&gt;foreground&lt;/code&gt; and &lt;code&gt;background&lt;/code&gt;.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;getContrastRatio&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;foreground&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;//logic goes here
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Since the API takes the values without the # symbol, we'll remove the # character using the &lt;code&gt;replace()&lt;/code&gt; method, as shown below.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fcolor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;foreground&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;replace&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;#&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bcolor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;replace&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;#&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here, we are replacing the # symbol with an empty string. For example, if the hex value is #FFFFFF, the output will be FFFFFF.&lt;/p&gt;
&lt;p&gt;Append the values to the API string.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;apiUrl&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`https://webaim.org/resources/contrastchecker/?
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;                fcolor=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fcolor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;&amp;amp;bcolor=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;bcolor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;&amp;amp;api`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Using &lt;code&gt;fetch()&lt;/code&gt;, make a network request to the WebAIMi API and handle any occurring errors gracefully.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fetch&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;apiUrl&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ok&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #aa759f"&gt;throw&lt;/span&gt; &lt;span style="color: #aa759f"&gt;new&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Network response was not ok&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;return&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;json&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-3rok-update-the-results"&gt;Update the results&lt;/h3&gt;
&lt;p&gt;If the API response is successful, we'll get a JSON object containing the contrast ratio and the output of the contrast check, either a fail or a pass in this format.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;ratio&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;8.59&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;AA&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;AALarge&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;AAA&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;AAALarge&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AA - normal text&lt;/li&gt;
&lt;li&gt;AALarge - large text&lt;/li&gt;
&lt;li&gt;AAA - strict compliance for normal text&lt;/li&gt;
&lt;li&gt;AAALarge - strict compliance for large text&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We'll then update the results to the page by appending them to the appropriate elements.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AA&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;className&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AA&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AALarge&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;className&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AALarge&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aaa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AAA&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;normal_text_aaa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;className&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AAA&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aaa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AAALarge&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;large_text_aaa&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;className&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;AAALarge&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;pass&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fail&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here, each result is displayed as either a Pass or Fail, accompanied by styling that uses red for fail and green for pass.&lt;/p&gt;
&lt;p&gt;The final step is to update the &lt;code&gt;updateColors()&lt;/code&gt; function to ensure the selected colors are passed to the &lt;code&gt;getContrastRatio()&lt;/code&gt; function.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updateColors&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColorInput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;preview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;preview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;getContrastRatio&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bgColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Don’t forget to update the contrast ratio by setting the ratio value as the text content.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;contrastRatio&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseFloat&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ratio&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-7cgz-the-final-demo"&gt;The final demo&lt;/h2&gt;
&lt;p&gt;Here is the final demo!&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/MYwxWwZ?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-ftbm-conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;That's a wrap for this tutorial! We have learned how to build a tool that checks contrast ratios to help adhere to WCAG guidelines. Hopefully, you now feel equipped to create more accessible and user-friendly designs.&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/building-an-inclusive-web-why-accessibility-matters--cms-29773"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/29773/preview_image/brideg-a11y.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Building an Inclusive Web: Why Accessibility Matters&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/20418/profileImage/RlQ_WWuR_400x400.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Sami Keijonen&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;03 Dec 2017&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/accessibility-basics-designing-for-visual-impairment--cms-27634"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/27634/preview_image/pre.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/27634/preview_image/pre.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/27634/preview_image/pre.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/27634/preview_image/pre.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/27634/preview_image/pre.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/27634/preview_image/pre.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Accessibility Basics: Designing for Visual Impairment
&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/19988/profileImage/graeme.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/19988/profileImage/graeme.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/19988/profileImage/graeme.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/19988/profileImage/graeme.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/19988/profileImage/graeme.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/19988/profileImage/graeme.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Graeme Fulton&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;13 Jun 2022&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/how-to-use-the-contrast-checker-in-chrome-devtools--cms-31504"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/31504/preview_image/pre.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/31504/preview_image/pre.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/31504/preview_image/pre.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/31504/preview_image/pre.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/31504/preview_image/pre.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/31504/preview_image/pre.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Use the Contrast Checker in Chrome DevTools&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/2532/profileImage/kezz.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/2532/profileImage/kezz.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/2532/profileImage/kezz.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/2532/profileImage/kezz.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/2532/profileImage/kezz.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/2532/profileImage/kezz.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Kezz Bracey&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;22 Oct 2018&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109187/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109187/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109187/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109187/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>How to use Lotties in Figma</title><link>https://design.tutsplus.com/tutorials/how-to-use-lotties-in-figma--cms-109193</link><author>noemail@noemail.org (Andrei Marius)</author><pubDate>Mon, 2 Jun 2025 12:33:50 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109193</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" id="izg6" class="content-block-wysi content-block"&gt;&lt;p&gt;In the following tutorial, I will show you how to create &lt;a href="https://design.tutsplus.com/c/graphic-design/s/animated-graphics" target="_blank" rel="noopener"&gt;Lottie animations&lt;/a&gt; in Figma. We'll use two colorful designs to exmplify how you can &lt;a href="https://webdesign.tutsplus.com/compatible-with/figma" target="_blank" rel="noopener"&gt;animate in Figma&lt;/a&gt;, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Figma account. If you're ready to learn how to use Lottie in Figma, let's dive in.&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;&lt;iframe height="700" width="850" scrolling="no" src="https://codepen.io/tutsplus/embed/pvJyLzv?default-tab=result" frameborder="no" loading="lazy" allowfullscreen="true"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;div data-content-block-type="TableOfContents" class="content-block content-block-tableofcontents"&gt;&lt;ul class="visual-toc-list toc-ordered-list visual-toc__regular-theme div-container visual-toc-list__overflow visual-toc-list__unequal-split" start="0"&gt;


&lt;li class="toc-item-title"&gt;&lt;a href="#toc-qf32-how-to-create-the-starting-frames-and-shapes-of-the-lottie-animation"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to create the starting frames and shapes of the Lottie animation&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-xeir-how-to-add-a-star-shape-to-an-animation-in-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to add a star shape to an animation in Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-rxlg-how-to-properly-organize-assets-when-you-animate-in-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to properly organize assets when you animate in Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-dwld-how-to-create-an-animation-in-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to create an animation in Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-wznb-how-to-create-lottie-animations-in-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to create Lottie animations in Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-j48m-how-to-use-text-in-lottie-animations-with-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to use text in Lottie animations with Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-u58l-how-to-make-lottie-animations-in-figma-using-a-component-set"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to make Lottie animations in Figma using a component set&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-ottl-how-to-create-a-text-animation-in-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to create a text animation in Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-pbqj-how-to-add-lottie-to-figma"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;How to add Lottie to Figma&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" id="iwklg" class="content-block-content-block-wysi content-block"&gt;
&lt;h2 id="toc-qf32-how-to-create-the-starting-frames-and-shapes-of-the-lottie-animation"&gt;
&lt;span class="sectionnum"&gt;1. &lt;/span&gt;How to create the starting frames and shapes of the Lottie animation&lt;/h2&gt;
&lt;h3 id="toc-lh17-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Start with the &lt;strong&gt;Frame Tool (F)&lt;/strong&gt; and create an &lt;strong&gt;850 x 850 px&lt;/strong&gt; frame.&lt;/p&gt;
&lt;p&gt;Continue with the &lt;strong&gt;Ellipse Tool (O)&lt;/strong&gt; and use it to add a &lt;strong&gt;500 px&lt;/strong&gt; circle. Set the &lt;strong&gt;Fill&lt;/strong&gt; color of this shape to &lt;code&gt;#383955&lt;/code&gt;. Make sure that your circle is selected, and press &lt;strong&gt;Control-D&lt;/strong&gt; to duplicate it. Change the color of this second circle to &lt;code&gt;#FFB400&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Layers&lt;/strong&gt; panel, rename your two circles as shown below.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg" alt="create frame and circles" loading="lazy" width="870px" height="872px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg" alt="create frame and circles" loading="lazy" width="650px" height="651px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg" alt="create frame and circles" loading="lazy" width="380px" height="381px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation1.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="izryp" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-arub-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Select your frame and press &lt;strong&gt;Control-D&lt;/strong&gt; four times, which will add four copies of your selected frame. To make things less congested, you can select all the frames and set the &lt;strong&gt;Spacing&lt;/strong&gt; to about &lt;strong&gt;150 px&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg" alt="duplicate frames in Figma" loading="lazy" width="870px" height="250px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg" alt="duplicate frames in Figma" loading="lazy" width="650px" height="190px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg" alt="duplicate frames in Figma" loading="lazy" width="380px" height="117px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation2.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="iqdc3" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-r9xx-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Adjust the size of the yellow circles from the first three frames as shown below, and remember to move them to the center of the frames that they are part of. Select the yellow circles from the first and the fifth frame, and replace the yellow with the darker color.&lt;/p&gt;
&lt;p&gt;This will help with the animation as it sets the main stages of your animation. Later, the &lt;strong&gt;Smart Animate&lt;/strong&gt; feature will fill in the missing frames.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg" alt="scale circles in Figma" loading="lazy" width="870px" height="609px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg" alt="scale circles in Figma" loading="lazy" width="650px" height="457px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg" alt="scale circles in Figma" loading="lazy" width="380px" height="269px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation3.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="in0dv" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-xeir-how-to-add-a-star-shape-to-an-animation-in-figma"&gt;
&lt;span class="sectionnum"&gt;2.&lt;/span&gt; How to add a star shape to an animation in Figma&lt;/h2&gt;
&lt;h3 id="toc-gdef-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Use the &lt;strong&gt;Star Tool&lt;/strong&gt; to add a &lt;strong&gt;350 px&lt;/strong&gt; star shape in the center of your first frame. Make it white, keep the default &lt;strong&gt;5 points&lt;/strong&gt;, and set the &lt;strong&gt;Ratio&lt;/strong&gt; to &lt;strong&gt;50%&lt;/strong&gt; and the &lt;strong&gt;Radius&lt;/strong&gt; to &lt;strong&gt;20&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg" alt="create star shape in Figma" loading="lazy" width="870px" height="760px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg" alt="create star shape in Figma" loading="lazy" width="650px" height="568px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg" alt="create star shape in Figma" loading="lazy" width="380px" height="333px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation4.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i0n7e" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-0gou-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Make sure that your star shape is still selected, and press &lt;strong&gt;Control-C&lt;/strong&gt; to copy it. Select your other four frames and simply press &lt;strong&gt;Control-V&lt;/strong&gt; to add the same star shape.&lt;/p&gt;
&lt;p&gt;Select the star shapes from your second and third frames, and then change the &lt;strong&gt;Fill&lt;/strong&gt; color from white to yellow. Select only the star shape from the second frame, shrink it to &lt;strong&gt;250 px&lt;/strong&gt;, and lower its &lt;strong&gt;Radius&lt;/strong&gt; to &lt;strong&gt;16&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg" alt="duplicate scale and color star in Figma" loading="lazy" width="870px" height="502px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg" alt="duplicate scale and color star in Figma" loading="lazy" width="650px" height="377px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg" alt="duplicate scale and color star in Figma" loading="lazy" width="380px" height="224px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation5.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-rxlg-how-to-properly-organize-assets-when-you-animate-in-figma"&gt;
&lt;span class="sectionnum"&gt;3.&lt;/span&gt; How to properly organize assets when you animate in Figma&lt;/h2&gt;
&lt;h3 id="toc-uvh1-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Focus on your third frame and use the &lt;strong&gt;Ellipse Tool (O)&lt;/strong&gt; to add several yellow circles around your star shape, roughly as shown below.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg" alt="add tiny circles in Figma" loading="lazy" width="870px" height="720px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg" alt="add tiny circles in Figma" loading="lazy" width="650px" height="539px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg" alt="add tiny circles in Figma" loading="lazy" width="380px" height="316px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation6.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-wo96-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Select the circles from your third frame and copy them (&lt;strong&gt;Control-C&lt;/strong&gt;). Select Frame 4 and press &lt;strong&gt;Control-V&lt;/strong&gt; to paste the circles, and then make them white. &lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg" alt="add white circles" loading="lazy" width="870px" height="720px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg" alt="add white circles" loading="lazy" width="650px" height="539px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg" alt="add white circles" loading="lazy" width="380px" height="316px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation7.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ia2sa" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-7od1-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Move to Frame 2, select it, and press &lt;strong&gt;Control-V&lt;/strong&gt; again to paste that set of yellow circles. Select the circles one by one and move them behind the star shape.&lt;/p&gt;
&lt;p&gt;Again, moving these circles will help with the animation. The circles will start moving from behind the star toward their final destinations, specified in Frame 3.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg" alt="move circles behind star shape" loading="lazy" width="870px" height="446px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg" alt="move circles behind star shape" loading="lazy" width="650px" height="336px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg" alt="move circles behind star shape" loading="lazy" width="380px" height="200px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation8.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i0boh" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-uiui-step-4"&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Select all those tiny circles from your second frame and copy them (&lt;strong&gt;Control-C&lt;/strong&gt;). Select Frame 1 and Frame 5, and press &lt;strong&gt;Control-V&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As I’ve said before, the tiny circles need to sit behind the star shapes. To do this easily, just select all the star shapes across your five frames and press the &lt;strong&gt;] &lt;/strong&gt;key to bring them to the front of their respective layers.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg" alt="add circles behind star shape" loading="lazy" width="870px" height="468px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg" alt="add circles behind star shape" loading="lazy" width="650px" height="352px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg" alt="add circles behind star shape" loading="lazy" width="380px" height="210px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation9.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ieswh" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-x1zl-step-5"&gt;Step 5&lt;/h3&gt;
&lt;p&gt;Let's do a quick recap before you learn how to make a Lottie animation in Figma. First things first: names matter. Make sure the elements you’re animating have the same names across all layers. Also, changes in the order of objects can disrupt your animation, so try to maintain the same order throughout the layers.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg" alt="name and order of shapes in Figma when animating" loading="lazy" width="870px" height="642px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg" alt="name and order of shapes in Figma when animating" loading="lazy" width="650px" height="481px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg" alt="name and order of shapes in Figma when animating" loading="lazy" width="380px" height="283px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation9B.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="io7x7" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-dwld-how-to-create-an-animation-in-figma"&gt;
&lt;span class="sectionnum"&gt;4.&lt;/span&gt; How to create an animation in Figma&lt;/h2&gt;
&lt;h3 id="toc-kgys-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Now that the design is complete, let's move to the prototype and learn how to animate in Figma. Start by switching from &lt;strong&gt;Design&lt;/strong&gt; mode to &lt;strong&gt;Prototype&lt;/strong&gt; mode.&lt;/p&gt;
&lt;p&gt;Select the first frame and connect it with the second one. Set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as shown below. As I've said before, Smart Animate does most of the magic as it fills in the missing frames from your animation.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg" alt="figma prototype mode" loading="lazy" width="870px" height="865px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg" alt="figma prototype mode" loading="lazy" width="650px" height="646px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg" alt="figma prototype mode" loading="lazy" width="380px" height="378px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation10.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-2qzf-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Select the second frame and connect it with the third one. Set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as shown in the following image. &lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg" alt="add interaction in prototype mode" loading="lazy" width="870px" height="865px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg" alt="add interaction in prototype mode" loading="lazy" width="650px" height="646px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg" alt="add interaction in prototype mode" loading="lazy" width="380px" height="378px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation11.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-rw0a-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Select the third frame and connect it with the fourth one. Set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as shown below. &lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg" alt="add interaction between frames in prototype mode" loading="lazy" width="870px" height="865px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg" alt="add interaction between frames in prototype mode" loading="lazy" width="650px" height="646px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg" alt="add interaction between frames in prototype mode" loading="lazy" width="380px" height="378px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation12.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-yc2i-step-4"&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Select the fourth frame and connect it with the fifth one. Set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as indicated below. &lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg" alt="smart animate in prototype mode" loading="lazy" width="870px" height="865px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg" alt="smart animate in prototype mode" loading="lazy" width="650px" height="646px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg" alt="smart animate in prototype mode" loading="lazy" width="380px" height="378px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation13.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i3enq" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-jejz-step-5"&gt;Step 5&lt;/h3&gt;
&lt;p&gt;Finally, connect the fifth frame with the first one and set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as you can see below.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg" alt="link frames in prototype mode" id="ivhdu" loading="lazy" width="870px" height="865px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg" alt="link frames in prototype mode" id="ivhdu" loading="lazy" width="650px" height="646px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg" alt="link frames in prototype mode" id="ivhdu" loading="lazy" width="380px" height="378px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation14.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ieoqu" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-wznb-how-to-create-lottie-animations-in-figma"&gt;
&lt;span class="sectionnum"&gt;5.&lt;/span&gt; How to create Lottie animations in Figma&lt;/h2&gt;
&lt;h3 id="toc-t7sr-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;To convert a Figma animation to Lottie, you will need the &lt;strong&gt;LottieFiles&lt;/strong&gt; plugin.&lt;/p&gt;
&lt;p&gt;Press &lt;strong&gt;Control-/&lt;/strong&gt; to open the &lt;strong&gt;Quick Actions&lt;/strong&gt; menu. Select the &lt;strong&gt;Plugins &amp;amp; widgets&lt;/strong&gt; section and search for the &lt;strong&gt;LottieFiles&lt;/strong&gt; plugin.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg" alt="search lottiefiles plugin in Figma using Quick Actions" loading="lazy" id="ind9g" width="870px" height="662px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg" alt="search lottiefiles plugin in Figma using Quick Actions" loading="lazy" id="ind9g" width="650px" height="496px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg" alt="search lottiefiles plugin in Figma using Quick Actions" loading="lazy" id="ind9g" width="380px" height="292px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation16.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i9jtv" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-kl31-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Click the &lt;strong&gt;Run&lt;/strong&gt; button to add the &lt;strong&gt;LottieFiles&lt;/strong&gt; plugin to Figma. You'll need to set up an account with &lt;a href="https://lottiefiles.com/" target="_self"&gt;LottieFiles&lt;/a&gt; before you can export a Lottie from Figma.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg" alt="run and add lottiefiles plugin in Figma" loading="lazy" width="870px" height="970px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg" alt="run and add lottiefiles plugin in Figma" loading="lazy" width="650px" height="724px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg" alt="run and add lottiefiles plugin in Figma" loading="lazy" width="380px" height="422px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation17.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ilu4m" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-qi7f-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Once you've set up your account and opened the LottieFiles plugin, you'll notice that you need to select a flow to go from Figma to a Lottie animation.&lt;/p&gt;
&lt;p&gt;If you don't have one already, make sure that you're still in &lt;strong&gt;Prototype&lt;/strong&gt; mode and add a &lt;strong&gt;Flow&lt;/strong&gt; for your first frame.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg" alt="add flow in prototype mode" loading="lazy" width="870px" height="289px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg" alt="add flow in prototype mode" loading="lazy" width="650px" height="219px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg" alt="add flow in prototype mode" loading="lazy" width="380px" height="134px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation15.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ixwl2" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-95sh-step-4"&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Select the preferred &lt;strong&gt;Flow&lt;/strong&gt; from the dropdown menu. In this case, there's only one, so you won't have much trouble finding it, but for larger designs, it's a good practice to name your flows.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg" alt="select flow in lottiefiles plugin" loading="lazy" width="870px" height="940px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg" alt="select flow in lottiefiles plugin" loading="lazy" width="650px" height="702px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg" alt="select flow in lottiefiles plugin" loading="lazy" width="380px" height="410px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation18.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="idwj9" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-lbhb-step-5"&gt;Step 5&lt;/h3&gt;
&lt;p&gt;Once you select a flow, you'll get a nice preview of your Lottie animation. Clicking the &lt;strong&gt;Save to&lt;/strong&gt; button will save the animation in your &lt;strong&gt;Projects&lt;/strong&gt; folder at lottiefiles.com. Before you do it, be aware that there's a limit of 10 animations before you have to pay to save your Lottie animations. Don't make the same mistake as I did, and be sure that the animation that you choose to save is the final version. And no, deleting a saved animation won't reset the limit.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg" alt="preview lottie animation in Figma" loading="lazy" width="870px" height="940px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg" alt="preview lottie animation in Figma" loading="lazy" width="650px" height="702px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg" alt="preview lottie animation in Figma" loading="lazy" width="380px" height="410px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation19.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ia7eu" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-j48m-how-to-use-text-in-lottie-animations-with-figma"&gt;
&lt;span class="sectionnum"&gt;6.&lt;/span&gt; How to use text in Lottie animations with Figma&lt;/h2&gt;
&lt;h3 id="toc-9k5k-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Pick the &lt;strong&gt;Text Tool (T)&lt;/strong&gt; and use it to add the "Loading" text. Feel free to use any font and set the &lt;strong&gt;Size&lt;/strong&gt; to about &lt;strong&gt;80&lt;/strong&gt;, and then open the &lt;strong&gt;Type settings&lt;/strong&gt; fly-out menu to check the &lt;strong&gt;Cap height to baseline&lt;/strong&gt; button.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg" alt="add text in Figma" loading="lazy" width="870px" height="817px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg" alt="add text in Figma" loading="lazy" width="650px" height="611px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg" alt="add text in Figma" loading="lazy" width="380px" height="358px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation20.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="iqcf4h" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-vb9r-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Pick the &lt;strong&gt;Ellipse Tool (O)&lt;/strong&gt; and use it to add three &lt;strong&gt;10 px&lt;/strong&gt; circles, as shown below. Use the fill colors indicated in the following image, and then focus on the &lt;strong&gt;Layers&lt;/strong&gt; panel.&lt;/p&gt;
&lt;p&gt;As a good practice, you can rename each circle based on its color. Place the orange circle below the yellow one and the red one below the orange one.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg" alt="add circles in Figma" loading="lazy" width="870px" height="921px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg" alt="add circles in Figma" loading="lazy" width="650px" height="688px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg" alt="add circles in Figma" loading="lazy" width="380px" height="402px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation21.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ie0d9z" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-10q1-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Select your circles along with the text, and turn your selection into a compound path (&lt;strong&gt;Alt-Control-K&lt;/strong&gt;). Rename it "Loading Text".&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg" alt="create component and rename it in Figma" loading="lazy" width="870px" height="910px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg" alt="create component and rename it in Figma" loading="lazy" width="650px" height="680px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg" alt="create component and rename it in Figma" loading="lazy" width="380px" height="397px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation22.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i7houi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-o4kb-step-4"&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Select the circles and align them all to the left edge of the yellow one.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg" alt="align circles to left edge" loading="lazy" width="870px" height="371px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg" alt="align circles to left edge" loading="lazy" width="650px" height="280px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg" alt="align circles to left edge" loading="lazy" width="380px" height="169px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation23.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i2u2dj" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-u58l-how-to-make-lottie-animations-in-figma-using-a-component-set"&gt;
&lt;span class="sectionnum"&gt;7.&lt;/span&gt; How to make Lottie animations in Figma using a component set&lt;/h2&gt;
&lt;h3 id="toc-6ny9-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Make sure that your main component is selected, and add a variant. Select the three circles inside your default variant, and make them invisible by lowering the &lt;strong&gt;Opacity&lt;/strong&gt; of the &lt;strong&gt;Fill&lt;/strong&gt; colors to &lt;strong&gt;0%&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg" alt="add variant and lower fill opacity in Figma" loading="lazy" width="870px" height="570px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg" alt="add variant and lower fill opacity in Figma" loading="lazy" width="650px" height="428px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg" alt="add variant and lower fill opacity in Figma" loading="lazy" width="380px" height="253px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation24.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="itfdqj" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-wkxt-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Add a third variant to your component set. Select the orange circle inside this new variant, and move it to the right using the &lt;strong&gt;Right Arrow&lt;/strong&gt; key. Leave an &lt;strong&gt;8 px&lt;/strong&gt; gap between your orange circle and the yellow one.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg" alt="add variant in figma" loading="lazy" width="870px" height="1026px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg" alt="add variant in figma" loading="lazy" width="650px" height="766px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg" alt="add variant in figma" loading="lazy" width="380px" height="446px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation25.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i3aw7l" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-wg83-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Add a fourth variant to your component set. Select the red circle inside this new variant and move it to the right using the &lt;strong&gt;Right Arrow&lt;/strong&gt; key. Leave an &lt;strong&gt;8 px&lt;/strong&gt; gap between this red circle and the orange one.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg" alt="add variant and move red circle" loading="lazy" width="870px" height="745px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg" alt="add variant and move red circle" loading="lazy" width="650px" height="557px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg" alt="add variant and move red circle" loading="lazy" width="380px" height="327px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation26.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-ha08-step-4"&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Add a  fifth variant to your component set. Select the red circle inside this new variant and move it behind the orange one. &lt;/p&gt;
&lt;p&gt;Add one last variant to your component set. Select the orange circle inside this new variant and move it behind the yellow one. &lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg" alt="add component variants in Figma" loading="lazy" width="870px" height="1211px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg" alt="add component variants in Figma" loading="lazy" width="650px" height="903px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg" alt="add component variants in Figma" loading="lazy" width="380px" height="524px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation27.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i20hs5" class="content-block-wysi content-block"&gt;
&lt;h2 id="toc-ottl-how-to-create-a-text-animation-in-figma"&gt;
&lt;span class="sectionnum"&gt;8.&lt;/span&gt; How to create a text animation in Figma&lt;/h2&gt;
&lt;h3 id="toc-iidx-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Switch from &lt;strong&gt;Design&lt;/strong&gt; mode to &lt;strong&gt;Prototype&lt;/strong&gt; mode. First, connect each consecutive variant, and then connect the last variant with the first one. Select all connections and set the &lt;strong&gt;Interaction&lt;/strong&gt; settings as shown below. Again, &lt;strong&gt;Smart animate&lt;/strong&gt; will do the magic.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg" alt="create animation using prototype in Figma" loading="lazy" width="870px" height="1213px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg" alt="create animation using prototype in Figma" loading="lazy" width="650px" height="904px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg" alt="create animation using prototype in Figma" loading="lazy" width="380px" height="525px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation28.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i7gism" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-78yy-step-2"&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Create a new frame, make it purple, and drag in the "Loading" text component from the &lt;strong&gt;Assets&lt;/strong&gt; panel. Don't forget to add a &lt;strong&gt;Flow&lt;/strong&gt; to this new frame.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg" alt="insert component in Figma" loading="lazy" width="870px" height="620px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg" alt="insert component in Figma" loading="lazy" width="650px" height="465px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg" alt="insert component in Figma" loading="lazy" width="380px" height="274px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation29.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="iw39cu" class="content-block-wysi content-block"&gt;
&lt;h3 id="toc-ht6l-step-3"&gt;Step 3&lt;/h3&gt;
&lt;p&gt;Finally, you can press &lt;strong&gt;Control-/&lt;/strong&gt; to open the &lt;strong&gt;Quick Actions&lt;/strong&gt;, search for the &lt;strong&gt;LottieFiles&lt;/strong&gt; plugin, and open it to preview your Lottie animation.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg" alt="preview lottie animation in Figma" loading="lazy" width="870px" height="940px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg" alt="preview lottie animation in Figma" loading="lazy" width="650px" height="702px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg" alt="preview lottie animation in Figma" loading="lazy" width="380px" height="410px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation30.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="i2nz0f" class="content-block-wysi content-block"&gt;
&lt;p&gt;Here's how your Lottie animation should look. Check out this tutorial if you want to learn how to create the "loading dots" animation: &lt;a href=""&gt;How to create a Lottie loading animation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/GgJZxKX?default-tab=result" width="850" height="400" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-pbqj-how-to-add-lottie-to-figma"&gt;
&lt;span class="sectionnum"&gt;9.&lt;/span&gt; How to add Lottie to Figma&lt;/h2&gt;
&lt;h3 id="toc-q08s-step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;You can add Lottie to Figma, but there are some limitations as Figma does not support playing JSON Lottie files directly. You can only add Lottie animations as &lt;strong&gt;GIF&lt;/strong&gt; or &lt;strong&gt;MP4&lt;/strong&gt; files, but keep in mind that you need a subscription to import an MP4 file in Figma.&lt;/p&gt;
&lt;p&gt;You can insert your saved Lottie animations as GIFs using the LottieFiles plugin, but if you don't have a LottieFiles subscription, there will be a limit on the size of the imported GIF.&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg" alt="how to add lottie to Figma using lottiefiles" loading="lazy" width="870px" height="716px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg" alt="how to add lottie to Figma using lottiefiles" loading="lazy" width="650px" height="536px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg" alt="how to add lottie to Figma using lottiefiles" loading="lazy" width="380px" height="315px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation31.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="imv3lt" class="content-block-wysi content-block"&gt;&lt;p&gt;The same limitation applies if you choose to export your saved Lottie animation as an MP4 file.&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg" alt="how to add lottie to Figma using MP4" loading="lazy" width="870px" height="591px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg" alt="how to add lottie to Figma using MP4" loading="lazy" width="650px" height="443px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg" alt="how to add lottie to Figma using MP4" loading="lazy" width="380px" height="262px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109193/image-upload/StarAnimation32.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" id="ivhz0l" class="content-block-wysi content-block"&gt;
&lt;p&gt;If your Lottie animation was created in &lt;a href="https://photography.tutsplus.com/video/compatible-with/adobe-after-effects" target="_blank" rel="noopener"&gt;After Effects&lt;/a&gt; and you have that file, you could save that animation as a larger GIF and then import it in Figma.&lt;/p&gt;
&lt;h2 id="toc-zfeg-congratulations-youre-done"&gt;Congratulations! You're done&lt;/h2&gt;
&lt;p&gt;Here is how your Lottie animation should look. I hope you've enjoyed this tutorial and can apply these techniques in your future projects.&lt;/p&gt;
&lt;p&gt;Feel free to adjust the final Lottie animation and make it your own. Now that you've learned how to use Lottie in Figma, you can head over to &lt;a href="https://elements.envato.com/" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;Envato&lt;/a&gt;, where you can find interesting solutions to improve your animation.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/pvJyLzv?default-tab=result" width="850" height="700" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-h86j-want-to-learn-more"&gt;Want to learn more?&lt;/h2&gt;
&lt;p&gt;We have loads of tutorials on Envato Tuts+, from beginner to intermediate level. Take a look!&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://design.tutsplus.com/tutorials/how-to-create-a-text-animation-lottie--cms-109140"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/posts/109140/preview_image/ComicBookTextAnimationPreview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to create a Lottie text animation&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/158/profiles/957/profileImage/PORTRAIT_2025_400x400_Tuts_.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Andrei Marius&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;07 Apr 2025&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://design.tutsplus.com/articles/everything-you-need-to-know-about-lottie-animations--cms-109142"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/403/posts/109142/preview_image/lottie_preview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Everything you need to know about Lottie animations&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jonathan Lam&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;25 Apr 2025&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://design.tutsplus.com/articles/how-to-use-lottie-animations--cms-109157"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/403/posts/109157/preview_image/how_to_lotties_preview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to use Lottie animations&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jonathan Lam&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;30 May 2025&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://design.tutsplus.com/tutorials/how-to-create-a-lottie-animation--cms-109162"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/107/posts/109162/preview_image/33_Lottie_Animation_Cat_Thumbnail.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to create a Lottie animation&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/107/profiles/2394/profileImage/EeVohH6x3GY.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Yulia Sokolova&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;18 Apr 2025&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109193/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109193/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109193/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109193/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>How to create a glassmorphism generator tool </title><link>https://webdesign.tutsplus.com/glassmorphism-generator-tool--cms-109168t</link><author>noemail@noemail.org (Esther Vaati)</author><pubDate>Fri, 18 Apr 2025 08:44:10 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109168</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iurl"&gt;
&lt;p&gt;Glassmorphism is a pretty resilient design style (it’s been around a long while now!) achieved by a combination of background blur transparency, a semi-transparent border, and sometimes subtle border shadows.&lt;/p&gt;
&lt;h2 id="toc-mnvb-our-glassmorphism-generator"&gt;Our glassmorphism generator&lt;/h2&gt;
&lt;p&gt;Here’s what we’re going to build.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/XJbJgZw?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h3 id="toc-r779-how-glassmorphism-works"&gt;How glassmorphism is created with CSS&lt;/h3&gt;
&lt;p&gt;With CSS we can apply a background blur and a transparent background to an element and then place it over a background (typically an image, a gradient, or another layered element) to create the illusion of frosted glass.&lt;/p&gt;
&lt;p&gt;As you can see from the demo, we are using an image as our background, and the card element on top features a transparent background, a blur effect, a border, and a subtle box shadow. All these properties, when combined, create the frosted glass effect.&lt;/p&gt;
&lt;p&gt;Let's get started!&lt;/p&gt;
&lt;h2 id="toc-yk4m-build-a-glassmorphism-generator"&gt;Build a Glassmorphism generator&lt;/h2&gt;
&lt;h3 id="toc-319j-html-structure"&gt;HTML Structure&lt;/h3&gt;
&lt;p&gt;The HTML structure will be minimal, with the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A preview section to display the glass morphism effect in real-time. &lt;/li&gt;
&lt;li&gt;A settings section for customizing the color, blur, and opacity values.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt; &lt;/code&gt;element to display the CSS for the current glass effect.  &lt;/li&gt;
&lt;li&gt;A button for copying the generated CSS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is all the HTML needed:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Glassmorphism Generator&lt;span style="color: #f4bf75"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;section&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-section"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"preview-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"glass-card"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Glassmorphism Effect&lt;span style="color: #f4bf75"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          This is how your glassmorphism element will look with the current settings.
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;section&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"settings-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"settings"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"colorPicker"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Color:&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"colorPicker"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color-picker"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"#3abb16"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"settings"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"opacity"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"slider-label"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Opacity:&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"range"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"opacity"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"slider"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;min=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"0"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;max=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"1"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;step=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"0.01"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"0.25"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"settings"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-40" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;40&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"blur"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"slider-label"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Blur:&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-41" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;41&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-42" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;42&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"range"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-43" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;43&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"blur"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-44" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;44&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"slider"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-45" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;45&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;min=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"0"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-46" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;46&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;max=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"20"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-47" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;47&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;step=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"0.5"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-48" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;48&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"10"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-49" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;49&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-50" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;50&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-51" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;51&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-52" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;52&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-53" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;53&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"code-card"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-54" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;54&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;pre&amp;gt;&amp;lt;code&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"output"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-55" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;55&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-56" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;56&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-57" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;57&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;button&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"copyCssButton"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"copy-css"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Copy CSS&lt;span style="color: #f4bf75"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-58" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;58&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-do"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;The values you use on the form elements here will be applied to the glassmorphism card when it first loads&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="toc-gbku-styling-with-css"&gt;Styling with CSS&lt;/h3&gt;
&lt;p&gt;Let's start by using flex to align everything at the center. Here are the styles for the body and the main container.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;body&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-family&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"DM Mono"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;monospace&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;main&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The preview section has a background image and a card on top showing the frosted glass effect. Add these styles to the preview container. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.preview-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#ffffff&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;320px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.5rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-image&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;url("image url here")&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cover&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-position&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-8f2g-the-default-glassmorphism-effect"&gt;The Default Glassmorphism effect&lt;/h3&gt;
&lt;p&gt;The first time you open the tool, we want a default frosted effect already applied to the glass card. As we mentioned, earlier, the frosted glass effect is achieved by a combination of 4 key CSS properties.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;span&gt;Transparent background&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; - makes the card partially see-through.&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;span&gt;Backdrop blur&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; -This applies a blur to the background element. In our case, the background image will &lt;/span&gt;&lt;span&gt;be blurred&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;span&gt;Transparent Border&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; - Adds a subtle semi-transparent outline defining the card's edges.&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;span&gt;Box shadow &lt;/span&gt;&lt;/strong&gt;&lt;span&gt;- Adds depth by using a soft shadow, making the card appear as though it's floating over the background image.&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In CSS, if you need to apply transparency to an element, you can use the &lt;code&gt;rgba()&lt;/code&gt; or the &lt;code&gt;hsla()&lt;/code&gt; color functions. These functions allow you to define a color with an alpha (transparency) value, where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0 means fully transparent&lt;/li&gt;
&lt;li&gt;1 means fully opaque. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The lower the alpha value, the more transparent the effect, which is important for creating a glass effect. &lt;/p&gt;
&lt;p&gt;Add the following properties to the glass card. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.glass-card&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;75%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;160px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4rem&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;24px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgba&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;254&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;245&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;238&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;0.2&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;backdrop-filter&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;5px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;-webkit-backdrop-filter&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;5px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;10px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgba&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;255&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;255&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;255&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.2&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;box-shadow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgba&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here, we are applying  a transparent background, a blur, a border, and a box shadow using the RGBA color function. The backdrop blur is the secret weapon behind the frosted effect. It blurs everything behind the card, creating the signature glass effect. Without this value, the background would be plain transparent.&lt;/p&gt;
&lt;p&gt;The thin semitransparent white border gives the card a shiny edge, while the box shadow will make it appear like it's floating above the background. The default effect will now look like this:&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg" alt="glassmorphism effect" loading="lazy" width="870px" height="514px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg" alt="glassmorphism effect" loading="lazy" width="650px" height="386px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg" alt="glassmorphism effect" loading="lazy" width="380px" height="229px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/109168/image-upload/glassmorphism_effect.jpg 2x"&gt;&lt;/figure&gt;
&lt;h3 id="toc-714z-styling-the-other-elements"&gt;Styling the other elements&lt;/h3&gt;
&lt;figure class="post_image"&gt;&lt;/figure&gt;
&lt;p&gt;Let’s style the rest of the elements:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.settings-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;input&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;type&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"color"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;]&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.slider&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;4px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#e0e0e0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;appearance&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.settings&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;12px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.slider&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-webkit-slider-thumb&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;appearance&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#147ccb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.slider&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-moz-range-thumb&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#147ccb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.code-card&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;95%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-40" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;40&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#e0e0e0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-41" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;41&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#021120&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-42" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;42&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-43" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;43&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-44" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;44&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-x&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-45" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;45&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-46" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;46&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-47" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;47&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;pre&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-48" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;48&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.875rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-49" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;49&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;white-space&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pre-wrap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-50" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;50&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-51" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;51&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.copy-css&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-52" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;52&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-top&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;24px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-53" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;53&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cursor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pointer&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-54" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;54&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;uppercase&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-55" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;55&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-56" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;56&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fff&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-57" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;57&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.875rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-58" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;58&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-59" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;59&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;45px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-60" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;60&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#167cbb&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-61" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;61&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-62" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;62&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-63" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;63&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-64" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;64&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-9wa6-javascript-functionality"&gt;Glassmorphism generation&lt;/h3&gt;
&lt;p&gt;In this part of the tutorial, we want to have a customization option where you can choose your own color, transparency, and blur values to create a unique glass effect. &lt;/p&gt;
&lt;p&gt;Let's start by getting all the elements &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;colorElement&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;colorPicker&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacityElement&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;opacity&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blurElement&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;blur&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;cssOutput&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;output&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;copyCssButton&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;copyCssButton&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;glassCard&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.glass-card&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;When you select a color from the color picker element, its usually in the hex format, so we need to convert the selected color to the RGBA color format. To do that, let's create a function called &lt;code&gt;hextoRGB&lt;/code&gt;, which will take in the hex color and opacity values chosen by the user and returns the corresponding  RGBA format.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexToRGB&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacity&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;r&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseInt&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;slice&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;3&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt; &lt;span style="color: #90a959"&gt;16&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;g&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseInt&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;slice&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;3&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;5&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt; &lt;span style="color: #90a959"&gt;16&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;b&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseInt&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;hex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;slice&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;5&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;7&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt; &lt;span style="color: #90a959"&gt;16&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;return&lt;/span&gt; &lt;span style="color: #90a959"&gt;`rgba(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;r&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;g&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;b&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacity&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;)`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;For example, if the selected color is  &lt;code&gt;#3498db&lt;/code&gt;, the corresponding color in  RGBA format will be: &lt;code&gt;rgba(52,152,219,0.6)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The next step is to update the glass card to reflect the selected color, blur, and opacity values. Create a function called &lt;code&gt;updatePreview()&lt;/code&gt; that gets the selected values and applies them as styles to the glass card. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updatePreview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;colorElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacityElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blurElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexToRGB&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;glassCard&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;glassCard&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backdropFilter&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`blur(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;px)`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;In the code, the preview section will dynamically update the appearance based on the values from the inputs. &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&lt;span&gt;glassCard.style.backgroundColor = &lt;/span&gt;&lt;span&gt;backgroundColor&lt;/span&gt;&lt;/code&gt;:&lt;span&gt;updates the background color using an RGBA value.&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;code&gt;glassCard.style.backdropFilter = `blur(${blur}px)`;&lt;/code&gt;: applies a blur effect to the background behind the card, creating the frosted glass look. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also need to add &lt;a href="https://webdesign.tutsplus.com/introduction-to-javascript-event-listeners--cms-35236t" target="_self"&gt;event listeners&lt;/a&gt; to the inputs, to ensure any change in the values updates the preview.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;colorElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updatePreview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacityElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updatePreview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blurElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;input&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updatePreview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-k63k-generate-and-copy-css-values"&gt;Generate and copy CSS values&lt;/h3&gt;
&lt;p&gt;So far, we are able to create customized frosted glass effects, the next step is to generate the CSS used to achieve the glass effect and allow for easy copying as shown in the image below.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/109168/image-upload/glass_CSS.png" loading="lazy" width="870px" height="427px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/109168/image-upload/glass_CSS.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/109168/image-upload/glass_CSS.png" loading="lazy" width="650px" height="322px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/109168/image-upload/glass_CSS.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/109168/image-upload/glass_CSS.png" loading="lazy" width="380px" height="192px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/109168/image-upload/glass_CSS.png 2x"&gt;&lt;/figure&gt;
&lt;p&gt;In the &lt;code&gt;updatePreview ()&lt;/code&gt; function, create a CSS string using the currently selected color, blur, and opacity values and add the string as the text content of the CSS output element. Every time you change a value, the CSS will also change and update the preview.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;updatePreview&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;colorElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacityElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;blurElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hexToRGB&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;glassCard&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;glassCard&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;style&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backdropFilter&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`blur(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;px)`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;css&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`.card {
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  background: &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;backgroundColor&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;;
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  backdrop-filter: blur(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;px);
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  -webkit-backdrop-filter: blur(&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;blur&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;px);
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  border-radius: 10px;
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  border: 1px solid rgba(255, 255, 255, &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;);
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;}`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;output&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;css&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The last feature is to copy the CSS values, making it easy to copy the generated CSS values with just one click. Add an event listener to the copy CSS button.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;copyCssButton&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;click&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;navigator&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;clipboard&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;writeText&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;cssOutput&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;alert&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Css copied&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #aa759f"&gt;catch&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;alert&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;error copying CSS&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here we are using the &lt;code&gt;navigator.clipboard&lt;/code&gt; API, a built-in browser tool that allows us to copy things to the clipboard. The &lt;code&gt;writeText()&lt;/code&gt; method is used to copy the contents of the CSS output element directly to the clipboard.&lt;/p&gt;
&lt;h2 id="toc-trel-our-final-glassmorphism-tool"&gt;Our final glassmorphism tool&lt;/h2&gt;
&lt;p&gt;Let’s remind ourselves of what we’ve built!&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/XJbJgZw?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/what-is-the-glassmorphism-web-design-trend--cms-93333"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/93333/preview_image/glassmorphism.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;What is the Glassmorphism Web Design Trend?&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/21134/profileImage/hermione-wright.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Hermione Wright&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;28 Nov 2022&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/how-to-create-a-frosted-glass-effect-in-css--cms-32535"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/32535/preview_image/pre-glass.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/32535/preview_image/pre-glass.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/32535/preview_image/pre-glass.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/32535/preview_image/pre-glass.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/32535/preview_image/pre-glass.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/32535/preview_image/pre-glass.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;2 Ways to Create a CSS Frosted Glass Effect&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Adi Purdila&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;19 Apr 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="toc-6s4h-conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;That's a wrap for this tutorial. Adding a frosted glass effect to your designs can enhance the overall aesthetic and give your UI a modern touch. To improve on this tool you can add support for different backgrounds such as shapes and gradients.&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109168/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109168/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109168/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109168/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>How to create infinite text scrolling in HTML, CSS, and JavaScript</title><link>https://code.tutsplus.com/infinite-text-scrolling-in-html-css-and-javascript--cms-109170t</link><author>noemail@noemail.org (Esther Vaati)</author><pubDate>Mon, 21 Apr 2025 20:38:04 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109170</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i5do"&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-warn"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;
&lt;span&gt;It’s worth noting that a horizontal marquee brings many &lt;/span&gt;&lt;a href="https://accessibilityinsights.io/info-examples/web/marquee/" target="_blank" rel="noopener"&gt;accessibility challenges&lt;/a&gt;&lt;span&gt;. Moving text can be distracting and difficult to read. Consider carefully the kind of content you wish to display in this way!&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="toc-ekhi-how-to-create-a-text-scroll-effect-in-css"&gt;&lt;span&gt;Basics: How the text scroll effect works&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This text scroll effect can be achieved using simple CSS animation properties. To make text scroll horizontally on a webpage, we’ll add sample text in a container element and apply the &lt;code&gt;transform:translateX()&lt;/code&gt; CSS property to the text as shown below ↓&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/bNdNRGW?default-tab=result" width="850" height="400" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The text is moved using &lt;code&gt;transform:translateX()&lt;/code&gt; property inside a &lt;code&gt;@keyframes&lt;/code&gt; animation. The animation starts with the text at 0% (initial position) and moves to -100%  (text moves out of view to the left).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The scroll animation is applied using:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;animation&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;scrollText&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;25&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;s&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;linear&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;infinite&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;scrollText&lt;/code&gt; is the name of the animation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;25s&lt;/code&gt; is the duration of the animation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;linear&lt;/code&gt; makes the scrolll speed consistent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;inifinite&lt;/code&gt; means the animation will repeat forever&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To scroll text vertically, we use &lt;code&gt;transform:translateY&lt;/code&gt; property inside a &lt;code&gt;@keyframe&lt;/code&gt; animation. In the next example, we have duplicated the text and made the container taller to accommodate the scrolling text.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/wBaBeKd?default-tab=result" width="850" height="400" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-x4cp-how-to-create-an-infinite-horizontal-and-vertical-text-scroll-effect"&gt;How to create an infinite horizontal and vertical text scroll effect&lt;/h2&gt;
&lt;p&gt;Let’s combine all the tricks we have learned so far and create a stylish infinite vertical and horizontal text scroll effect.&lt;/p&gt;
&lt;h3 id="toc-bb9s-html-structure"&gt;HTML structure&lt;/h3&gt;
&lt;p&gt;In our HTML structure, we have separate containers for each scroll direction. The horizontal scroll will occupy the main content area while the vertical scroll will be in a sidebar. By the end of this tutorial, we will have something like this:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/qEdEjRW?default-tab=result" width="850" height="700" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;The HTML structure will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"main-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"scroll-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-row"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"infinite-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #949494"&gt;&amp;lt;!-- text added here --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #949494"&gt;&amp;lt;!-- text added here --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"vertical-scroll-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"vertical-infinite-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"vertical-text-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #949494"&gt;&amp;lt;!-- text added here --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"vertical-text-scroll"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #949494"&gt;&amp;lt;!-- text added here --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The scrolling text will be added dynamically using JavaScript. For each scroll direction, we will duplicate each pair of scrolling text elements to create a seamless looping animation.&lt;/p&gt;
&lt;h3 id="toc-cdii-main-styles"&gt;Main CSS styles&lt;/h3&gt;
&lt;p&gt;Firstly, let’s remove the default spacing on the body, so set &lt;code&gt;overflowX: hidden&lt;/code&gt; to prevent horizontal scrolling. We’ll also apply a custom font.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@import&lt;/span&gt; &lt;span style="color: #90a959"&gt;url("https://fonts.googleapis.com/css2?family=Montserrat:wght@800&amp;amp;display=swap")&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;body&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-family&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"Montserrat"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sans-serif&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-x&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#000&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#adea74&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We have also applied a bright Envato green background to provide contrast with the “soft serve” of the scrolling text containers.&lt;/p&gt;
&lt;p&gt;Align the sections side by side using flexbox and set the main container to full width.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.main-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The horizontal scroll container will take the full width of the webpage, while the vertical scroll container will have a width of 200px.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.scroll-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-grow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.vertical-scroll-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;200px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fef5ee&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-left&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgba&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;hidden&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-b7pc-add-text-to-webpage"&gt;Add scroll text to the webpage with JavaScript&lt;/h3&gt;
&lt;p&gt;Before we start animating, let’s inject the text to be animated to the &lt;a href="https://webdesign.tutsplus.com/what-is-the-dom-api-for-javascript--cms-35650a" target="_self"&gt;Dom&lt;/a&gt; with JavaScript. This could be done manually too, but adding text dynamically like this gives us more flexibility. &lt;/p&gt;
&lt;p&gt;Get  the horizontal and vertical text scroll elements, in our case, these two elements.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;horizontalTextScroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelectorAll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.text-scroll&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;verticalTextScroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelectorAll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.vertical-text-scroll&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Define a list of phrases that will appear in our scroll animation.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;items&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Digital Strategy&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Design System&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Brand Strategy&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Website Design&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;SEO Optimization&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Content Strategy&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;];&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We will then loop through each phrase in the items array and pass it as an argument to the &lt;code&gt;addScrollItem&lt;/code&gt; function. This function is responsible for adding the text and star to both the horizontal and vertical scrolling containers on the webpage.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;item&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;addItemToScrolls&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;item&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;To create an infinite horizontal scrolling effect, we loop through each element defined by &lt;code&gt;horizontalTextScroll&lt;/code&gt;  and since there are two of them, we insert the same set of text items into both.&lt;/p&gt;
&lt;p&gt;The duplication is important to ensure that when one set scrolls out of view, the next scrolls in ensuring a seamless loop.&lt;/p&gt;
&lt;p&gt;The function look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;addItemToScrolls&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;horizontalTextScroll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;span&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-item&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;In the same loop, we will also add a star (★) between each phrase to enhance the visual experience. Update the code as shown below.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;addItemToScrolls&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;horizontalTextScroll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;span&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-item&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createStar&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;star&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createStar&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;span&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;★&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;return&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;To create an infinite vertical scrolling effect, follow the same steps as the horizontal scroll except rather than adding the full phrase, for example, &lt;strong&gt;"Digital Stategy",&lt;/strong&gt; we only take the first word, in this case, &lt;strong&gt;"Digital"&lt;/strong&gt; and add it to the scroll element.&lt;/p&gt;
&lt;p&gt;We will also perform duplication to ensure a continuous loop.   &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;addItemToScrolls&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;horizontalTextScroll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;span&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text-item&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createStar&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;star&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;verticalTextScroll&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;span&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;vertical-text-item&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;firstWord&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;split&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)[&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;];&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;firstWord&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createStar&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollItem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;star&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-635p-animating-the-text-with-css"&gt;Animating the text with CSS&lt;/h3&gt;
&lt;p&gt;We'll start with the horizontal section. Define the animations using CSS &lt;code&gt;@keyframes.&lt;/code&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@keyframes&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #151515;background-color: #ac4142"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;%&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;translateX&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #151515;background-color: #ac4142"&gt;100&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;%&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;translateX&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;-50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The element will have no movement at 0% (its original position), and by the end of the animation, the text will have moved by 50% of its width. This means the text will slide halfway off the left side of its parent container.&lt;/p&gt;
&lt;p&gt;Since we are duplicating the content inside the same container, we use &lt;code&gt;translateX(-50%)&lt;/code&gt; so that when the first half moves out of view, the second half takes its place, creating a seamless scrolling loop.&lt;/p&gt;
&lt;p&gt;To ensure the animation repeats infinitely and runs at a constant speed, set the animation to 25s linear infinite . &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.infinite-scroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;animation&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scroll&lt;/span&gt; &lt;span style="color: #90a959"&gt;25s&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;linear&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;infinite&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Set &lt;code&gt;display:flex&lt;/code&gt; to ensure the duplicated text elements are displayed in a row. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.infinite-scroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;animation&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scroll&lt;/span&gt; &lt;span style="color: #90a959"&gt;25s&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;linear&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;infinite&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;To draw attention to the content as it moves across the webpage, increase the font size of the text and the star and add a bigger font weight to the text. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.text-item&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;800&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.star&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;10px&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-rxlq-vertical-scrooling"&gt;Vertical scrolling animation&lt;/h3&gt;
&lt;p&gt;To create the &lt;em&gt;vertical&lt;/em&gt; scrolling effect, we will follow the same animation steps, but this time, instead of moving the content sideways using &lt;code&gt;translateX&lt;/code&gt;, we will use &lt;code&gt;translateY&lt;/code&gt; to move the content vertically. We’re also presented with some interesting challenges with the way the text is laid out—we’ll solve those with Flexbox and another unusual CSS property.&lt;/p&gt;
&lt;p&gt;Define another keyframe animation similar to the previous one for the vertical infinite scroll.  &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@keyframes&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollVertical&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #151515;background-color: #ac4142"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;%&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;translateY&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #151515;background-color: #ac4142"&gt;100&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;%&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;translateY&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;-50%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Add the animation to the vertical scroll container.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.vertical-infinite-scroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;animation&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollVertical&lt;/span&gt; &lt;span style="color: #90a959"&gt;25s&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;linear&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;infinite&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The text on the vertical scroll needs to be flipped to ensure the characters are arranged from top to bottom. In CSS, we use the &lt;a href="https://webdesign.tutsplus.com/easily-create-sideways-text-using-the-writing-mode-css-property--cms-31829t" target="_self"&gt;&lt;code&gt;writing-mode&lt;/code&gt;&lt;/a&gt; property which allows us to define the direction in which text is laid out.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.vertical-text-item&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;writing-mode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;vertical-rl&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt; 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;After setting the writing mode, we also need to flip the text so it appears upright from top to bottom using the &lt;code&gt;transform: rotate(360)&lt;/code&gt; property. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.vertical-text-item&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;writing-mode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;vertical-rl&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transform&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rotate&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;180deg&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt; 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Now we have this effect on the vertical scroll.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png" loading="lazy" width="870px" height="385px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png" loading="lazy" width="650px" height="291px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png" loading="lazy" width="380px" height="175px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/109170/image-upload/vertical_scroll.png 2x"&gt;&lt;/figure&gt;
&lt;p&gt;Apply &lt;code&gt;flex:display&lt;/code&gt; to ensure the two pairs of text are arranged in a column and set &lt;code&gt;flex-direction: column&lt;/code&gt; to stack them vertically. Additionally, set &lt;code&gt;flex-shrink: 0;&lt;/code&gt; to stop  the items from shrinking when there is insufficient space.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.vertical-text-scroll&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-shrink&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-t9dx-final-scrolling-text-demo"&gt;Final scrolling text demo&lt;/h2&gt;
&lt;p&gt;Here is a reminder of the final scroll demo.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/qEdEjRW?default-tab=result" width="850" height="700" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;If you are looking for more advanced effects, check out our tutorial on &lt;a href="https://webdesign.tutsplus.com/how-to-build-horizontal-marquee-effects-with-gsap--cms-108794t" target="_self"&gt;How to Build Horizontal Marquee Effects with GSAP&lt;/a&gt;, and take your animations to the next level with GSAP.&lt;/p&gt;
&lt;h2 id="toc-mtjb-conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this tutorial, we have used simple CSS properties to achieve horizontal and vertical text scroll effects. These effects can easily be integrated into any design, making it an eye-catching addition to any webpage.&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109170/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109170/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109170/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109170/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>25 ridiculously impressive HTML5 canvas experiments</title><link>https://webdesign.tutsplus.com/21-ridiculously-impressive-html5-canvas-experiments--net-14210a</link><author>noemail@noemail.org (Abhin Sharma)</author><pubDate>Mon, 20 Jan 2014 02:02:38 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/net-14210</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" id="if0i" class="content-block-wysi content-block"&gt;
&lt;p&gt;&lt;a href="https://webdesign.tutsplus.com/what-is-html5--cms-25803t" target="_self"&gt;HTML5&lt;/a&gt; is the thing to talk about these days. Today, we have a collection of ridiculously impressive &lt;a href="https://webdesign.tutsplus.com/html-element-canvas--cms-107060a" target="_self"&gt;HTML5 canvas-based&lt;/a&gt; experiments that will make you say, "Wow!" Let's take a peek at some of the latest, cutting-edge examples out there.&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-warn"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;The animations in some of these canvas experiments may potentially trigger seizures for people with photosensitive epilepsy. Viewer discretion is advised.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now for the experiments!&lt;/p&gt;
&lt;h2 id="toc-ns93-25-extremely-cool-html5-canvas-animations"&gt;25 extremely cool HTML5 canvas animations!&lt;/h2&gt;
&lt;p&gt;Get inspired and ready for greatness with these impressive &lt;a href="https://webdesign.tutsplus.com/28-html5-features-tips-and-techniques-you-must-know--net-13520t" target="_self"&gt;HTML5&lt;/a&gt; canvas samples! Let's go!&lt;/p&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;1.&lt;/span&gt; &lt;a href="https://codepen.io/jackrugile/pen/DGenc" target="_blank" rel="noopener"&gt;Orbital Trails&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This top &lt;span&gt;HTML5 animation features b&lt;/span&gt;eautiful swirling rainbow particles!&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/jackrugile/pen/DGenc" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png" alt="Orbital Trails" loading="lazy" width="870px" height="548px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png" alt="Orbital Trails" loading="lazy" width="650px" height="411px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png" alt="Orbital Trails" loading="lazy" width="380px" height="244px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_canvas_orbital_trails.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;2.&lt;/span&gt; &lt;a href="https://codepen.io/towc/pen/mJzOWJ" target="_blank" rel="noopener"&gt;Neon Hexagon Patterns&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Glowing lights and particles trace this hexagonal, honey-comb pattern in this HTML5 canvas sample.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/towc/pen/mJzOWJ" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png" alt="Neon Hexagon Patterns" loading="lazy" width="870px" height="529px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png" alt="Neon Hexagon Patterns" loading="lazy" width="650px" height="397px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png" alt="Neon Hexagon Patterns" loading="lazy" width="380px" height="236px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_hexagon_traces.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;3.&lt;/span&gt; &lt;a href="https://codepen.io/mladen___/pen/gbvqBo" target="_self"&gt;Long Shadow&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This canvas in HTML5 example simulates a movable light source amongst boxes.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/mladen___/pen/gbvqBo" target="_self"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png" alt="Long Shadow" loading="lazy" width="870px" height="494px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png" alt="Long Shadow" loading="lazy" width="650px" height="371px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png" alt="Long Shadow" loading="lazy" width="380px" height="221px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_long_shadow.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;4.&lt;/span&gt; &lt;a href="https://codepen.io/MarcoGuglielmelli/pen/lLCxy" target="_self"&gt;Animated Particle Background&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A cosmic network of nodes and lines, with an HTML5 animation and a spotlight effect.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/MarcoGuglielmelli/pen/lLCxy" target="_self"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png" alt="Animated Particle Background" loading="lazy" width="870px" height="472px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png" alt="Animated Particle Background" loading="lazy" width="650px" height="355px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png" alt="Animated Particle Background" loading="lazy" width="380px" height="211px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_animated_particle_background.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;5.&lt;/span&gt; &lt;a href="https://codepen.io/alexzaworski/pen/mEkvAG" target="_blank" rel="noopener"&gt;Click Response&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Click anywhere on this example of canvas in HTML5 to see a cute explosion of circles.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/alexzaworski/embed/mEkvAG?height=481&amp;amp;theme-id=light&amp;amp;default-tab=result" width="850" height="481" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;6.&lt;/span&gt; &lt;a href="https://codepen.io/at80/pen/tqdmv" target="_blank" rel="noopener"&gt;Heart Particles&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A vast cloud of shining falling hearts appear in this &lt;span&gt;HTML5 canvas example&lt;/span&gt;.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/at80/pen/tqdmv" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png" alt="Heart Particles" loading="lazy" width="870px" height="442px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png" alt="Heart Particles" loading="lazy" width="650px" height="333px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png" alt="Heart Particles" loading="lazy" width="380px" height="199px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_heart_particles.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;7.&lt;/span&gt; &lt;a href="https://codepen.io/tsuhre/pen/BYbjyg" target="_blank" rel="noopener"&gt;Colorful Ribbons&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Watch these colorful bands of light fill the screen thanks to this HTML5 canvas animation.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/tsuhre/pen/BYbjyg" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png" alt="Colorful Ribbons" loading="lazy" width="870px" height="462px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png" alt="Colorful Ribbons" loading="lazy" width="650px" height="348px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png" alt="Colorful Ribbons" loading="lazy" width="380px" height="207px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_colorful_ribbons.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;8.&lt;/span&gt; &lt;a href="https://codepen.io/tholman/pen/qCnfB" target="_blank" rel="noopener"&gt;Draw With Text&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Click and keep dragging on the canvas HTML5 animation to draw with random words.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/alexzaworski/embed/qCnfB?height=481&amp;amp;theme-id=light&amp;amp;default-tab=result" width="850" height="481" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;9.&lt;/span&gt; &lt;a href="https://codepen.io/hakimel/pen/QdWpRv" target="_blank" rel="noopener"&gt;Rotating Spiral&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A 3D spiral, rendered with lines. You can even rotate this HTML5 canvas sample with the mouse!&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/hakimel/pen/QdWpRv" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png" alt="Rotating Spiral" loading="lazy" width="870px" height="447px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png" alt="Rotating Spiral" loading="lazy" width="650px" height="336px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png" alt="Rotating Spiral" loading="lazy" width="380px" height="201px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_spiral.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;10.&lt;/span&gt; &lt;a href="https://codepen.io/kennethcachia/pen/Fhvie" target="_blank" rel="noopener"&gt;Shape Shifting Text&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;View this canvas in HTML5 example in full-screen mode. Type in text and watch it appear in a cool particle effect.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/kennethcachia/pen/Fhvie" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png" alt="Shape Shifting Text" loading="lazy" width="870px" height="415px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png" alt="Shape Shifting Text" loading="lazy" width="650px" height="313px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png" alt="Shape Shifting Text" loading="lazy" width="380px" height="187px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_shape_shifting_text.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;11.&lt;/span&gt; &lt;a href="https://codepen.io/linrock/pen/Amdhr" target="_blank" rel="noopener"&gt;Falling Confetti&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A pretty falling confetti effect. This example of canvas in HTML5 is perfect for a background!&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/linrock/pen/Amdhr" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png" alt="Falling Confetti" loading="lazy" width="870px" height="437px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png" alt="Falling Confetti" loading="lazy" width="650px" height="329px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png" alt="Falling Confetti" loading="lazy" width="380px" height="197px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_falling_confetti.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;12.&lt;/span&gt; &lt;a href="https://codepen.io/jackrugile/pen/qLCuE" target="_blank" rel="noopener"&gt;Parallax Skyline&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A minimalist side-scrolling parallax. This HTML5 canvas example would be perfect for an old-school video game.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/jackrugile/pen/qLCuE" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png" alt="Parallax Skyline" loading="lazy" width="870px" height="385px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png" alt="Parallax Skyline" loading="lazy" width="650px" height="291px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png" alt="Parallax Skyline" loading="lazy" width="380px" height="175px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_parallax_skyline.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;13.&lt;/span&gt; &lt;a href="https://codepen.io/mimikos/pen/wKqyqY" target="_blank" rel="noopener"&gt;Ambient Background&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Fuzzy bokeh spots swirling around. View this canvas animation in full-page mode for the best effect.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/mimikos/pen/wKqyqY" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png" alt="Ambient Background" loading="lazy" width="870px" height="439px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png" alt="Ambient Background" loading="lazy" width="650px" height="331px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png" alt="Ambient Background" loading="lazy" width="380px" height="197px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_ambient_background.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;14.&lt;/span&gt; &lt;a href="https://codepen.io/waisbren89/pen/gwvVpP" target="_blank" rel="noopener"&gt;Fizzy Sparks&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Just hover the mouse over the HTML5 canvas sample and see shiny sparks go off everywhere.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/alexzaworski/embed/gwvVpP?height=481&amp;amp;theme-id=light&amp;amp;default-tab=result" width="850" height="481" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;15.&lt;/span&gt; &lt;a href="https://codepen.io/juliangarnier/pen/gmOwJX" target="_blank" rel="noopener"&gt;Anime.js Fireworks&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Click this canvas in HTML5 example for a simple, but stylish and colorful fireworks effect.  &lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/juliangarnier/pen/gmOwJX" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png" alt="Anime.js Fireworks" loading="lazy" width="870px" height="434px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png" alt="Anime.js Fireworks" loading="lazy" width="650px" height="327px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png" alt="Anime.js Fireworks" loading="lazy" width="380px" height="195px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_animejs_canvas_fireworks.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;16.&lt;/span&gt; &lt;a href="https://codepen.io/tholman/pen/Apvxe" target="_blank" rel="noopener"&gt;Mechanical Grass&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Watch the "grass" grow wherever you move your mouse. Be sure to view this example of canvas in HTML5 in full screen to see the effect.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/tholman/pen/Apvxe" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png" alt="Mechanical Grass" loading="lazy" width="870px" height="419px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png" alt="Mechanical Grass" loading="lazy" width="650px" height="316px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png" alt="Mechanical Grass" loading="lazy" width="380px" height="189px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_mechanical_grass.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;17.&lt;/span&gt; &lt;a href="https://codepen.io/Thibka/pen/BRzgOM" target="_blank" rel="noopener"&gt;Interactive Stars&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Watch stars and constellations appear in the night sky as you move your mouse through this HTML5 canvas example.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/Thibka/pen/BRzgOM" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png" alt="Interactive Stars" loading="lazy" width="870px" height="410px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png" alt="Interactive Stars" loading="lazy" width="650px" height="309px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png" alt="Interactive Stars" loading="lazy" width="380px" height="185px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_interactive_stars.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;18.&lt;/span&gt; &lt;a href="https://codepen.io/akm2/pen/rHIsa" target="_blank" rel="noopener"&gt;Gravity Points&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Click anywhere on the HTML5 canvas animation and see all the particles gravitate towards that point.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/alexzaworski/embed/rHIsa?height=481&amp;amp;theme-id=light&amp;amp;default-tab=result" width="850" height="481" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;19.&lt;/span&gt; &lt;a href="https://codepen.io/ImagineProgramming/pen/LpOJzM" target="_blank" rel="noopener"&gt;Particle Swarm&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Simulated particles swirl around in the simulated magnetic field of this HTML5 canvas sample.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/ImagineProgramming/pen/LpOJzM" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png" alt="Particle Swarm" loading="lazy" width="870px" height="475px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png" alt="Particle Swarm" loading="lazy" width="650px" height="357px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png" alt="Particle Swarm" loading="lazy" width="380px" height="213px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_particle_swarm.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;20.&lt;/span&gt; &lt;a href="https://codepen.io/zadvorsky/pen/xxwbBQV" target="_blank" rel="noopener"&gt;Crowd Simulator&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This amusing canvas in HTML5 example simulates a busy crowd of people walking.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/zadvorsky/pen/xxwbBQV" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png" alt="Crowd Simulator" loading="lazy" width="870px" height="368px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png" alt="Crowd Simulator" loading="lazy" width="650px" height="278px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png" alt="Crowd Simulator" loading="lazy" width="380px" height="167px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_crowd_simulator.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;21.&lt;/span&gt; &lt;a href="https://codepen.io/tmrDevelops/pen/dMdNvy" target="_blank" rel="noopener"&gt;Birds of a Feather&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The canvas animation features a beautiful and serene animated flocking simulation.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/tmrDevelops/pen/dMdNvy" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png" alt="Birds of a Feather" loading="lazy" width="870px" height="473px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png" alt="Birds of a Feather" loading="lazy" width="650px" height="356px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png" alt="Birds of a Feather" loading="lazy" width="380px" height="212px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_birds_of_feather.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;22.&lt;/span&gt; &lt;a href="https://codepen.io/akm2/pen/Aatbf" target="_blank" rel="noopener"&gt;Lightning&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Connect two points anywhere on the screen with this HTML5 canvas example and watch the electricity arc!&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/akm2/pen/Aatbf" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png" alt="Lightning" loading="lazy" width="870px" height="431px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png" alt="Lightning" loading="lazy" width="650px" height="325px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png" alt="Lightning" loading="lazy" width="380px" height="194px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_lightning.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;23.&lt;/span&gt; &lt;a href="https://codepen.io/akm2/pen/nImoa" target="_blank" rel="noopener"&gt;Noise Abstraction&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This canvas in HTML5 example comes with a unique animated algorithm for generating stylish and colorful abstract backgrounds. &lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/akm2/pen/nImoa" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png" alt="Noise Abstraction" loading="lazy" width="870px" height="495px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png" alt="Noise Abstraction" loading="lazy" width="650px" height="372px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png" alt="Noise Abstraction" loading="lazy" width="380px" height="221px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_noise_abstraction.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;24.&lt;/span&gt; &lt;a href="https://codepen.io/tmrDevelops/pen/rVNxVQ" target="_blank" rel="noopener"&gt;Liquid Lights&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;With this HTML5 canvas example, you get a screen full of animated flashing lights, reminiscent of a nightclub or concert.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;a href="https://codepen.io/tmrDevelops/pen/rVNxVQ" target="_blank" rel="noopener"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png" alt="Liquid Lights" loading="lazy" width="870px" height="465px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png" alt="Liquid Lights" loading="lazy" width="650px" height="350px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png" alt="Liquid Lights" loading="lazy" width="380px" height="208px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1251/posts/37005/image-upload/tutsplus_liquid_lights.png 2x"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;
&lt;span class="sectionnum"&gt;25.&lt;/span&gt; &lt;a href="https://codepen.io/run-time/pen/JbEFn" target="_blank" rel="noopener"&gt;Rainbow Spider&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Can you move quickly enough to make the spider fall down from the web? Give this a HTML5 canvas animation a try.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/alexzaworski/embed/JbEFn?height=481&amp;amp;theme-id=light&amp;amp;default-tab=result" width="850" height="481" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-afkh-elevate-your-html5-canvas-animation-game-with-envato"&gt;Elevate your HTML5 canvas animation game with Envato!&lt;/h2&gt;
&lt;p&gt;So what do you think? Getting your own ideas for a neat canvas application? Well, now you have more than one reason to create HTML5 apps: &lt;a href="https://codecanyon.net/category/html5" data-action="click-&amp;gt;ga-analytics#sendMarketClickEvent"&gt;CodeCanyon has an HTML5 category!&lt;/a&gt; Browse through it and see what's available, or have a look at our &lt;a href="https://themeforest.net/tags/html5" target="_self" data-action="click-&amp;gt;ga-analytics#sendMarketClickEvent"&gt;HTML5 Templates&lt;/a&gt; on ThemeForest.&lt;/p&gt;
&lt;p&gt;And, if you want to take your projects to the stratosphere, &lt;a href="https://elements.envato.com/" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;Envato&lt;/a&gt; is where it's at! For a low monthly subscription fee, you get unlimited downloads of millions of premium digital assets. So, if you want top-notch &lt;a href="https://elements.envato.com/web-templates" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;web templates&lt;/a&gt;, &lt;a href="https://elements.envato.com/video-templates" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;video templates&lt;/a&gt;, and &lt;a href="https://elements.envato.com/add-ons" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;add-ons&lt;/a&gt;, this is where you need to go.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post has been updated with contributions from &lt;a href="https://tutsplus.com/authors/monty-shokeen" target="_self"&gt;Monty Shokeen&lt;/a&gt;. Monty is a full-stack developer who also loves to write tutorials, and to learn about new JavaScript libraries. &lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/9251/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/9251/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/9251/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/9251/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>Easy CSS slider (carousel with pure CSS)</title><link>https://webdesign.tutsplus.com/easy-slider-carousel-with-pure-css--cms-107626t</link><author>noemail@noemail.org (Jemima Abu)</author><pubDate>Tue, 22 Aug 2023 20:44:17 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-107626</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}#i1dz{background-color:rgb(243, 245, 246);}#iasu{background-color:rgb(243, 245, 246);}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iluj"&gt;
&lt;p&gt;You might be thinking “&lt;em&gt;CSS is used for styling while JavaScript is used for interactivity, that’s just the way the web works&lt;/em&gt;.”&lt;/p&gt;
&lt;p&gt;But CSS loads on a &lt;a href="https://elements.envato.com/learn/web-design-trends" target="_blank" rel="noopener" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;webpage&lt;/a&gt; faster than JavaScript. And CSS also causes less &lt;a href="https://developers.google.com/speed/docs/insights/browser-reflow" target="_blank" rel="nofollow noopener"&gt;reflow&lt;/a&gt; on a page (which improves performance). So, it’s fair to say we should use CSS for interactivity wherever possible.&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="FullWidthSection" class="content-block content-block-fullwidthsection" id="i1dz"&gt;&lt;div class="full-width-section__content-container div-container"&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="imgr"&gt;
&lt;h2 id="toc-0c1l-our-easy-carousel"&gt;Our easy CSS slider&lt;/h2&gt;
&lt;p&gt;Let’s take a look at the slider (CSS carousel) we’ll be building today. Scroll through to see the scroll-snap effect:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/zYyGpYo?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="is7lc"&gt;&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-info"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;While we'll be using mostly &lt;a href="https://webdesign.tutsplus.com/c/htmlcss/s/css" target="_self"&gt;CSS language&lt;/a&gt; for the carousel, we first need to set the layout &lt;a href="https://webdesign.tutsplus.com/c/htmlcss/s/html" target="_self"&gt;applying HTML&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="idri"&gt;
&lt;h2 id="toc-dn3k-layout-with-html"&gt;
&lt;span class="sectionnum"&gt;1.&lt;/span&gt; Layout with HTML&lt;/h2&gt;
&lt;p&gt;The layout of our easy slider is simple. We’ll create a &lt;code&gt;carousel-container&lt;/code&gt; &lt;a href="https://webdesign.tutsplus.com/html-element-div--cms-93842a" target="_self"&gt;div&lt;/a&gt; to hold the &lt;code&gt;carousel-slide&lt;/code&gt; elements. &lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"carousel-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"carousel-slide"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  ...
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;That’s all we need so let’s move on to the styling of our carousel in &lt;a href="https://webdesign.tutsplus.com/c/htmlcss" target="_self"&gt;HTML and CSS&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="toc-tmaz-carousel-behaviour-with-css"&gt;
&lt;span class="sectionnum"&gt;2.&lt;/span&gt; CSS Carousel behaviour&lt;/h2&gt;
&lt;p&gt;Once we have our carousel slides set up, we’ll style the CSS slider to have the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scrollable content&lt;/li&gt;
&lt;li&gt;Snap to next slide&lt;/li&gt;
&lt;li&gt;Progress bar indicating slide progress&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="toc-7884-scrollable-content"&gt;Scrollable content&lt;/h3&gt;
&lt;p&gt;For the scrollable content, we’ll use the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex" target="_blank" rel="nofollow noopener"&gt;&lt;code&gt;display:flex&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-x" target="_self"&gt;&lt;code&gt;overflow-x: auto&lt;/code&gt;&lt;/a&gt; properties. We’ll also style slides so we can see 3 slides on the desktop screen and 1 slide on mobile.&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-x&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-slide&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #90a959"&gt;30%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@media&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.carousel-slide&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #90a959"&gt;90%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-pn6n-snap-to-slide"&gt;Snap to slide&lt;/h3&gt;
&lt;p&gt;Next, to achieve the snapping effect on the slides, we’ll use the CSS &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_scroll_snap" target="_blank" rel="nofollow noopener"&gt;scroll-snap &lt;/a&gt;properties.&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-tip"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;The scroll snap properties allow us define “snapping” points on an element. These are the points of the element that we want to be fully visible once scrolling.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; The updated code of our carousel in CSS looks like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;overflow-x&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scroll-snap-type&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;x&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;mandatory&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-slide&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #90a959"&gt;30%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;scroll-snap-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;@media&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;600px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;.carousel-slide&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt; &lt;span style="color: #90a959"&gt;90%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div data-content-block-type="FullWidthSection" class="content-block content-block-fullwidthsection" id="iasu"&gt;&lt;div class="full-width-section__content-container div-container"&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i6dq"&gt;
&lt;p&gt;We can get a better understanding of how the &lt;code&gt;scroll-snap&lt;/code&gt; property works using this demo:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/NWeqXpK?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Let’s break down what’s happening:&lt;/p&gt;
&lt;p&gt;1. The first property is the &lt;code&gt;scroll-snap-type&lt;/code&gt;. This property is applied to the parent container and accepts two keywords:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first keyword determines which axis the scroll snap should be applied to - &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;y&lt;/code&gt;, &lt;code&gt;both&lt;/code&gt; or &lt;code&gt;none&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;The second keyword determines the behaviour of the scroll snap. If set to &lt;code&gt;proximity&lt;/code&gt;, the scroll will only snap to the nearest element if it’s close enough to the edges of the container. &lt;code&gt;Mandatory&lt;/code&gt; means the container will always snap to whichever element is closest.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2. The second property is the &lt;code&gt;scroll-snap-align&lt;/code&gt;. This applies to the children of the scroll snap type container. It determines which part of the element is snapped into view.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i0g3"&gt;
&lt;h3 id="toc-7wni-visible-scrollbar"&gt;Optional: CSS-only progress bar&lt;/h3&gt;
&lt;div&gt;
&lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"&gt;
&lt;span&gt;Let's keep inline with our &lt;/span&gt;&lt;span&gt;CSS-only&lt;/span&gt;&lt;span&gt; interactivity. We can take advantage of native browser features to create a progress bar for our carousel in CSS. &lt;/span&gt;
&lt;/div&gt;
&lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"&gt; &lt;/div&gt;
&lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"&gt;
&lt;span&gt;We’ll do this by styling the carousel container scrollbar to give the appearance of a progress bar. &lt;/span&gt;This is what the code looks like:&lt;/div&gt;
&lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-webkit-scrollbar&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;8px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-webkit-scrollbar-thumb&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#29AB87&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-webkit-scrollbar-track&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#b1b3b399&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;.carousel-container&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;::-webkit-scrollbar-track-piece:start&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#29AB87&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-info"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;Learn more about the &lt;a href="https://webdesign.tutsplus.com/css-property-display--cms-107337a" target="_self"&gt;display&lt;/a&gt;, &lt;a href="https://webdesign.tutsplus.com/css-property-flex--cms-107390a" target="_self"&gt;flex&lt;/a&gt;, &lt;a href="https://webdesign.tutsplus.com/css-property-overflow--cms-107393a" target="_self"&gt;overflow&lt;/a&gt;, and &lt;a href="https://webdesign.tutsplus.com/css-property-background--cms-107366a" target="_self"&gt;background&lt;/a&gt; CSS properties on out dedicated tutorials.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Let’s look at the properties we’re using:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;::webkit-scrollbar&lt;/code&gt;: &lt;span&gt;the entire scrollbar element &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;::webkit-scrollbar-thumb&lt;/code&gt;: the draggable bar on the scrollbar&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;::webkit-scrollbar-track&lt;/code&gt;: &lt;span&gt;the path that the scrollbar thumb is on&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;::webkit-scrollbar-track-piece:start&lt;/code&gt;: the path of the track not covered by the scrollbar thumb, the &lt;code&gt;:start&lt;/code&gt; &lt;a href="https://webdesign.tutsplus.com/the-30-css-selectors-you-must-memorize--net-16048t" target="_self" rel=""&gt;CSS selector&lt;/a&gt; targets only the path behind the scrollbar thumb&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2722/posts/107626/image-upload/webkit_.jpg" loading="lazy" width="870px" height="394px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2722/posts/107626/image-upload/webkit_.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2722/posts/107626/image-upload/webkit_.jpg" loading="lazy" width="650px" height="297px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2722/posts/107626/image-upload/webkit_.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2722/posts/107626/image-upload/webkit_.jpg" loading="lazy" width="380px" height="178px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2722/posts/107626/image-upload/webkit_.jpg 2x"&gt;&lt;/figure&gt;
&lt;p&gt;In the diagram above, we can see what parts of the scrollbar are being targeted. By making the &lt;code&gt;-webkit-scrollbar-thumb&lt;/code&gt; and &lt;code&gt;::webkit-scrollbar-track-piece:start&lt;/code&gt; the same &lt;a href="https://webdesign.tutsplus.com/css-property-color--cms-107389a" target="_self"&gt;color in CSS&lt;/a&gt;, the scrollbar gives the impression of being filled in as it’s being scrolled. &lt;span&gt;This creates a progress bar.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Since our progress bar is actually a scrollbar, it can also &lt;/span&gt;&lt;span&gt;be used&lt;/span&gt;&lt;span&gt; to scroll through the CSS carousel. It results in an &lt;/span&gt;&lt;span&gt;additional&lt;/span&gt;&lt;span&gt; feature: it’s a win/win!&lt;/span&gt;&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-warn"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;The &lt;code&gt;::webkit-scrollbar&lt;/code&gt; properties are non-standard, pretty sketchy, and not supported by all browsers. That's why it’s not recommended to use this in a production environment. Our progress bar will look like a regular scrollbar on non-supported browsers. This also happens if you choose not to include these &lt;code&gt;::webkit-scrollbar&lt;/code&gt; rules.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;That’s all there is to our easy slider! We've built a scrollable container with a nifty snapping feature. We even added a progress bar using only CSS:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/zYyGpYo?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-neuk-more-features-with-javascript"&gt;
&lt;span class="sectionnum"&gt;3.&lt;/span&gt; More features with JavaScript&lt;/h2&gt;
&lt;p&gt;We’ve gotten the basic feature of the CSS carousel out of the way. Now we can go on to add even more features, using JavaScript this time.&lt;/p&gt;
&lt;p&gt;One of those features is using arrows to handle the carousel &lt;a href="https://elements.envato.com/learn/best-website-navigation-menus" target="_blank" rel="noopener" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;navigation&lt;/a&gt;. In a previous tutorial, we looked into building a carousel with JavaScript (less than 14 lines of code!). We can combine that tutorial with this one to add even more features to our easy slider.&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/how-to-build-a-simple-carousel-with-vanilla-javascript--cms-41734"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/41734/preview_image/slider.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/41734/preview_image/slider.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/41734/preview_image/slider.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/41734/preview_image/slider.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/41734/preview_image/slider.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/41734/preview_image/slider.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How To Build a Simple Carousel With Vanilla JavaScript (14 Lines of Code!)&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jemima Abu&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;16 Aug 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This is what our combined CSS carousel looks like:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/MWZwrGJ?default-tab=result" width="850" height="500" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In this demo of a carousel in CSS and HTML, &lt;em&gt;just for fun&lt;/em&gt;, the code has &lt;/span&gt;&lt;span&gt;been refactored&lt;/span&gt;&lt;span&gt; to use even fewer lines of JavaScript. This is what our updated carousel arrow function looks like:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;carousel&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.carousel-container&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;slide&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.carousel-slide&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;handleCarouselMove&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;positive&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d28445"&gt;true&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;slideWidth&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;slide&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;clientWidth&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;carousel&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollLeft&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;positive&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;?&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;carousel&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollLeft&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;+&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;slideWidth&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;carousel&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;scrollLeft&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;slideWidth&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Then we pass that function to our HTML arrows:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;button&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"carousel-arrow carousel-arrow--prev"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;onclick=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"handleCarouselMove(false)"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;&amp;amp;#8249;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;button&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"carousel-arrow carousel-arrow--next"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;onclick=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"handleCarouselMove()"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;&amp;amp;#8250;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;And with that, we’ll call it a day on our modded-up &lt;a href="https://elements.envato.com/learn/web-design-image-carousels" target="_blank" rel="noopener" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;carousel&lt;/a&gt; in CSS and HTML!&lt;/p&gt;
&lt;h2 id="toc-3g5j-whats-next"&gt;What's next?&lt;/h2&gt;
&lt;p&gt;You just learned how to create an easy carousel in HTML and CSS. There's a ton of useful tips and tricks yet for you to learn. Check out some of our tutorials and get closer to become a CSS master!&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/best-css-and-javascript-carousel-tutorials--cms-92882"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/92882/preview_image/carousels.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/92882/preview_image/carousels.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/92882/preview_image/carousels.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/92882/preview_image/carousels.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/92882/preview_image/carousels.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/92882/preview_image/carousels.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;The Best CSS and JavaScript Carousel Tutorials on Tuts+&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;26 Jan 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/8-best-wordpress-slider-carousel-plugins-of-2017--cms-28592"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/28592/preview_image/slideshow.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/30/posts/28592/preview_image/slideshow.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/30/posts/28592/preview_image/slideshow.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/30/posts/28592/preview_image/slideshow.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/28592/preview_image/slideshow.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/28592/preview_image/slideshow.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;21+ Best WordPress Slider &amp;amp; Carousel Plugins of 2025&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Daniel Strongin&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;08 May 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/a-quick-css-only-approach-for-creating-responsive-sticky-tables--cms-106864"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/posts/106864/preview_image/sm.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/posts/106864/preview_image/sm.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/posts/106864/preview_image/sm.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/posts/106864/preview_image/sm.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/posts/106864/preview_image/sm.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/posts/106864/preview_image/sm.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;A Quick, CSS-Only Approach for Creating Responsive Sticky Tables&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;06 Jun 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/from-pixels-to-code-ai-powered-tools-for-automatic-html-and-css-generation--cms-107045"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1223/posts/107045/preview_image/ai_powered_tools_preview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;From Pixels to Code: AI-Powered Tools for Automatic HTML and CSS Generation&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1223/profiles/19734/profileImage/192887389_10226422225921366_1386554784344850241_n.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Brenda Barron&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;12 Jun 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/2-ways-to-make-half-colored-background-page-sections--cms-108648"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/108648/preview_image/preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/108648/preview_image/preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/108648/preview_image/preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/108648/preview_image/preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/108648/preview_image/preview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/108648/preview_image/preview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;2 Ways to Make Half-Colored Background Page Sections&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;23 Apr 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/how-to-create-a-custom-mouse-cursor-with-css-or-javascript--cms-106724"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/106724/preview_image/mouse_cursor.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/106724/preview_image/mouse_cursor.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/106724/preview_image/mouse_cursor.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/106724/preview_image/mouse_cursor.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/106724/preview_image/mouse_cursor.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/106724/preview_image/mouse_cursor.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to make a custom mouse cursor with CSS or JavaScript&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2722/profiles/21247/profileImage/jemima_3.jpeg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jemima Abu&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;22 Aug 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/build-an-interactive-image-gallery-with-html-css-and-javascript--cms-107881"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/107881/preview_image/lightbox.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/107881/preview_image/lightbox.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/107881/preview_image/lightbox.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/107881/preview_image/lightbox.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/107881/preview_image/lightbox.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/107881/preview_image/lightbox.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Build an Interactive Image Gallery with HTML, CSS, and JavaScript&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/21344/profileImage/jo.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/21344/profileImage/jo.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/21344/profileImage/jo.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/21344/profileImage/jo.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/21344/profileImage/jo.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/21344/profileImage/jo.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Juliet Ofoegbu&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;20 Nov 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/how-to-use-gradients-on-the-web--cms-29922"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/29922/preview_image/gradients.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/29922/preview_image/gradients.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/29922/preview_image/gradients.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/29922/preview_image/gradients.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/29922/preview_image/gradients.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/29922/preview_image/gradients.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Use CSS Gradients on the Web&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/profiles/265/profileImage/adi.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/profiles/265/profileImage/adi.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Adi Purdila&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;23 Jan 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/107626/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/107626/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/107626/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/107626/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>Create a currency converter with HTML, CSS, and vanilla JavaScript</title><link>https://webdesign.tutsplus.com/currency-converter-with-html-css-and-vanilla-javascript--cms-108362t</link><author>noemail@noemail.org (Esther Vaati)</author><pubDate>Thu, 28 Dec 2023 18:37:50 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-108362</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}#ihkj{background-color:rgb(191, 234, 200);}&lt;/style&gt;&lt;div data-content-block-type="SummaryText" class="content-block content-block-summarytext summary-text" id="izff"&gt;&lt;p&gt;By the end of this tutorial, you’ll have learned how to build a responsive currency app that fetches real-time data with the Exchange Rate API in a user-friendly interface. Let’s get to it!&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="FullWidthSection" class="content-block content-block-fullwidthsection" id="ihkj"&gt;&lt;div class="full-width-section__content-container div-container" id="ikdy"&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i5xc"&gt;
&lt;h2 id="toc-e745-our-currency-converter-demo"&gt;Our currency converter demo&lt;/h2&gt;
&lt;p&gt;To create your own currency converter, you’ll first need to register your own API key from &lt;a href="https://www.exchangerate-api.com/" target="_blank" rel="noopener"&gt;exchangerate-api.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/rNRebdQ?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;I based this design loosely on the excellent &lt;a href="https://dribbble.com/shots/19533571-Crypto-exchange-platform" target="_blank" rel="noopener"&gt;Crypto exchange platform&lt;/a&gt; by Yev Ledenov on Dribbble. &lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ipwb"&gt;
&lt;h2 id="toc-i0mz-html-structure"&gt;Currency converter code in HTML&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;We'll begin with the HTML part of our app. The currency converter code in HTML will give our application a simple interface containing:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;An input field for the amount to be converted&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A drop-down to select the from Currency value&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A second drop-down to select the to currency value&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A convert button&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A &lt;a href="https://webdesign.tutsplus.com/html-element-p--cms-93847a" target="_blank" rel="noopener"&gt;&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;&lt;/a&gt; tag to show the converted amount&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;A &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tag to show any errors that might occur during the conversion process&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The currency converter HTML code will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table html"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"currency-container"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Currency converter&lt;span style="color: #f4bf75"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"input-box"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;label&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;for=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"amount"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Enter amount&lt;span style="color: #f4bf75"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;input&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;type=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"text"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"amount"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;placeholder=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"100"&lt;/span&gt;  &lt;span style="color: #6a9fb5"&gt;required&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"currency"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"box"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;select&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"select-option"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;name=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"from-currency"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"fromCurrency"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;option&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"USD"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;United States Dollar&lt;span style="color: #f4bf75"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;span&amp;gt;&lt;/span&gt;TO&lt;span style="color: #f4bf75"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;div&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"box"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;select&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"select-option"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;name=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"to-currency"&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;id=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"toCurrency"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #f4bf75"&gt;&amp;lt;option&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;value=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"USD"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;United States Dollar&lt;span style="color: #f4bf75"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #f4bf75"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;button&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"convert"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&lt;/span&gt;Convert&lt;span style="color: #f4bf75"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;p&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"result"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;&amp;lt;p&lt;/span&gt; &lt;span style="color: #6a9fb5"&gt;class=&lt;/span&gt;&lt;span style="color: #90a959"&gt;"error"&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #f4bf75"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Currently, we are using the option value as a placeholder. We will replace and add more option data dynamically to our currency converter with JavaScript.&lt;/p&gt;
&lt;h2 id="toc-t90e-styking-with-css"&gt;Styling with CSS&lt;/h2&gt;
&lt;p&gt;All the greatest currency converter apps start with nice, basic styles. We’ve pulled in the rather excellent &lt;a href="https://fonts.google.com/specimen/Bricolage+Grotesque" target="_blank" rel="noopener"&gt;Bricolage Grotesque&lt;/a&gt; font from Google fonts too:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;*&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;box-sizing&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-box&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-family&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;'Bricolage Grotesque'&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sans-serif&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;h1&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;5em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;bold&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;.5em&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;line-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;.8&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;auto&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;min-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100vh&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#202020&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2em&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#040203&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.currency-container&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fit-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#7cb889&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;3em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;40px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;For the input and label (including the placeholder in the input) they will have the following styles:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.input-box&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text-align&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;label&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.5em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-bottom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;.4em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;#amount&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;300px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;3em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;3px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;black&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;transparent&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;black&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;#amount&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;:focus&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;3px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;white&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;outline&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;::placeholder&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;rgba&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;0.6&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;opacity&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt; &lt;span style="color: #949494"&gt;/* Firefox */&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Next, we will apply styling to the box elements containing the &lt;strong&gt;From&lt;/strong&gt; and &lt;strong&gt;To&lt;/strong&gt; currency drop-downs. The drop-down elements will be arranged in a column layout &lt;a href="https://webdesign.tutsplus.com/flexbox-vs-css-grid-which-should-you-use--cms-30184a" target="_self"&gt;using Flexbox&lt;/a&gt;. They'll be centered vertically and horizontally.&lt;/p&gt;
&lt;p&gt;We also have a gap between the box elements, some padding, and a border radius:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.currency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-top&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;50px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex-direction&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;column&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;gap&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.5rem&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.box&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;flex&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;justify-content&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The select-option will have the following styles:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.select-option&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;16px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#333&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;display&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;block&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-weight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;700&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;line-height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.3&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;max-width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;outline&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;20px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;3px&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;solid&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;black&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Finally, the convert button, the result, and the error message elements will have the following styles:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table css"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;button&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;width&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100%&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;height&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;100px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;padding&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;10px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border-radius&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;border&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;none&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;1.5em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;align-items&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;center&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;background-color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;black&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#fff&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;margin-top&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;30px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;black&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;2.5em&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #f4bf75"&gt;.error&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;color&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;#800020&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;font-size&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;12px&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;We're getting there! Now, let's convert currency with the JavaScript functionality.&lt;/p&gt;
&lt;h2 id="toc-5ywd-javascript-functunality"&gt;JavaScript currency functionality&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;The JavaScript currency functionality will have two key parts:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Getting the currency code, currency name, and flag from the REST countries API&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Getting conversion rate from the Exchange Rate API&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="toc-yurg-currencies-api"&gt;REST countries API&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;The &lt;/span&gt;&lt;a class="editor-rtfLink" href="https://restcountries.com/" target="_blank" rel="noopener"&gt;&lt;span&gt;REST countries API&lt;/span&gt;&lt;/a&gt;&lt;span&gt; provides an API with the endpoint &lt;a href="https://restcountries.com/v3.1/all" target="_self"&gt;https://restcountries.com/v3.1/all&lt;/a&gt;. There, you can &lt;a href="https://webdesign.tutsplus.com/how-to-build-a-filtering-component-in-pure-css--cms-33111t" target="_self"&gt;filter results&lt;/a&gt; by providing the fields you are interested in. In our case, we want the country flag, currency name, and currency code. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The endpoint will look like this:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;https://restcountries.com/v3.1/all?fields=currencies,flag
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;And here's how the resulting sample data will look like:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;{
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    "name": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      "common": "Eritrea",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      "official": "State of Eritrea",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      "nativeName": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        "ara": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "official": "دولة إرتريا",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "common": "إرتريا‎"
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        },
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        "eng": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "official": "State of Eritrea",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "common": "Eritrea"
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        },
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        "tir": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "official": "ሃገረ ኤርትራ",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          "common": "ኤርትራ"
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    },
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    "currencies": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      "ERN": {
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        "name": "Eritrean nakfa",
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        "symbol": "Nfk"
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      }
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    },
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    "flag": "&#127466;&#127479;"
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  },
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-tip"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;To make it easier to display our currencies, we will fetch the data and store it in a JavaScript file.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The script for fetching the data will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;https://restcountries.com/v3.1/all?fields=name,currencies,flag&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fetch&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;json&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;[];&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Object&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;keys&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currencies&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;length&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;push&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;({&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;countryname&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;common&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Object&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;values&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currencies&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)[&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;].&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Object&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;keys&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currencies&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)[&lt;/span&gt;&lt;span style="color: #90a959"&gt;0&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #6a9fb5"&gt;flag&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;flag&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;sort&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;b&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;localeCompare&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;b&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;));&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;jsonString&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;JSON&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;stringify&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d28445"&gt;null&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;console&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;log&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;jsonString&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The code above does the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We use the &lt;code&gt;fetch()&lt;/code&gt; method to make an HTTP request to the REST countries API.&lt;/li&gt;
&lt;li&gt;Then, we convert the response to JSON format and start processing the data.&lt;/li&gt;
&lt;li&gt;From the response JSON, we first check if each country has a currency code—since not all countries have one.&lt;/li&gt;
&lt;li&gt;If a country has a currency, we create an object with its name, code, and currency name and push it to the empty result array.&lt;/li&gt;
&lt;li&gt;Next, we sort the currency code alphabetically.&lt;/li&gt;
&lt;li&gt;Finally, we convert the result to JSON and print the &lt;span&gt;stringified&lt;/span&gt; data to the console.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you run the script in a browser environment, you should be able to copy the data to your JavaScript currency file. The data looks like this:&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/108362/image-upload/currencies_1_.png" alt="Create a currency converter with JavaScript." loading="lazy" width="870px" height="370px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/108362/image-upload/currencies_1_.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/108362/image-upload/currencies_1_.png" alt="Create a currency converter with JavaScript." loading="lazy" width="650px" height="279px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/108362/image-upload/currencies_1_.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/108362/image-upload/currencies_1_.png" alt="Create a currency converter with JavaScript." loading="lazy" width="380px" height="168px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/108362/image-upload/currencies_1_.png 2x"&gt;&lt;/figure&gt;
&lt;p&gt;Another options is to add this &lt;a href="https://essykings.github.io/JavaScript/currency.js" target="_self"&gt;link&lt;/a&gt; to your script using the &lt;code&gt;src&lt;/code&gt; attribute.&lt;/p&gt;
&lt;p&gt;Next, let’s get the select elements:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fromCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;let&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;toCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"&gt;
&lt;span&gt;We have the data in an array, so it’s easier to append the currencies to the option elements of the fromCurrency and toCurrency select elements&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;p&gt;Create a function called &lt;code&gt;addCurrency()&lt;/code&gt;. Inside the &lt;code&gt;addCurrency()&lt;/code&gt; function, we use the &lt;code&gt;forEach()&lt;/code&gt; function to loop through the currencies array. For each iteration, we want to add the currency code to the option element and append the option element to both the select elements:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;currencies&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;forEach&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;select-option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;USD&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;selected&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d28445"&gt;true&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;flag&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; - &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionFrom&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;select-option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;EUR&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;selected&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d28445"&gt;true&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;flag&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; - &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;currency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;optionTO&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;In the code above, we use the &lt;code&gt;ForEach()&lt;/code&gt; function to iterate on each the currencies array data and do the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extracts the currency key from the currencies array  for each currency.&lt;/li&gt;
&lt;li&gt;Gets the flag.&lt;/li&gt;
&lt;li&gt;Gets the currency name.&lt;/li&gt;
&lt;li&gt;Creates an HTML option element for the "&lt;code&gt;fromCurrency&lt;/code&gt;" select dropdown.&lt;/li&gt;
&lt;li&gt;Sets the option value to the currency code.&lt;/li&gt;
&lt;li&gt;Sets the option text to a combination of the flag, the currency name, and the currency code.&lt;/li&gt;
&lt;li&gt;Appends the created option element to the "&lt;code&gt;fromCurrency&lt;/code&gt;" select dropdown.&lt;/li&gt;
&lt;li&gt;Creates another option element for the "&lt;code&gt;toCurrency&lt;/code&gt;" select dropdown with the same data as the &lt;code&gt;fromCurrency&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Appends the created option element to the "toCurrency" select dropdown.&lt;/li&gt;
&lt;li&gt;Finally, we invoke the &lt;code&gt;addCurrency()&lt;/code&gt; function to apply the functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;strong&gt;option value&lt;/strong&gt; will be the currency code. The &lt;strong&gt;option text&lt;/strong&gt; will be the currency flag, currency code, and currency name separated by a hyphen.&lt;/p&gt;
&lt;p&gt;We also set the default currency in the &lt;code&gt;fromCurrency&lt;/code&gt; option element to USD. &lt;span&gt;We set EUR as the default currency for the&lt;/span&gt; &lt;code&gt;toCurrency&lt;/code&gt; option element.&lt;/p&gt;
&lt;p&gt;Now, our drop down is showing the currencies.&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/1885/posts/108362/image-upload/currency_option.png" loading="lazy" width="870px" height="804px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/1885/posts/108362/image-upload/currency_option.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/1885/posts/108362/image-upload/currency_option.png" loading="lazy" width="650px" height="601px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/1885/posts/108362/image-upload/currency_option.png 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1885/posts/108362/image-upload/currency_option.png" loading="lazy" width="380px" height="352px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1885/posts/108362/image-upload/currency_option.png 2x"&gt;&lt;/figure&gt;
&lt;h3 id="toc-z2xz-code-refactoring"&gt;Code refactoring&lt;/h3&gt;
&lt;p&gt;From the &lt;code&gt;addCurrency()&lt;/code&gt; function, you can see that we are repeating the same code to add the option values. Let’s create another function for generating the options for each currency element.&lt;/p&gt;
&lt;p&gt;The function will look like this:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createOption&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;defaultCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;element&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;){&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #949494"&gt;// console.log(country);
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;createElement&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;classList&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;add&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;select-option&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;===&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;defaultCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;selected&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d28445"&gt;true&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;flag&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;code&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; - &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;element&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;appendChild&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;option&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;createOption()&lt;/code&gt; function takes three parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the country object&lt;/li&gt;
&lt;li&gt;the default code&lt;/li&gt;
&lt;li&gt;the element where the options will be appended&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Next, update the addCurrency() function as follows:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;addCurrency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;countries&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;map&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createOption&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;USD&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;createOption&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;country&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;EUR&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrency&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The function is now easier to read since we don’t have any repetitive code.&lt;/p&gt;
&lt;h3 id="toc-rv2a-currency-conversion"&gt;Currency conversion&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;We will use the ExchangeRate API for currency conversion. The ExchangeRate API  provides currency conversion rates for 161 currencies.&lt;/span&gt;&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-tip"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;
&lt;span&gt;Head over to &lt;/span&gt;&lt;a class="editor-rtfLink" href="https://www.exchangerate-api.com/" target="_blank" rel="noopener"&gt;&lt;span&gt;www.exchangerate-api.com&lt;/span&gt;&lt;/a&gt; &lt;span&gt;and get a Free API key.&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span&gt;The API allows developers to convert currencies by providing a pair of currency codes in the request. For example, if you want to convert USD to EUR, your API call will look like this:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table plaintext"&gt;&lt;tbody&gt;&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;https://v6.exchangerate-api.com/v6/24faec6b42da4a96ceea41d3/pair/USD/EUR
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The endpoint will give us the following result:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table shell"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"result"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"success"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"documentation"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"https://www.exchangerate-api.com/docs"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"terms_of_use"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"https://www.exchangerate-api.com/terms"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"time_last_update_unix"&lt;/span&gt;: 1703721602,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"time_last_update_utc"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"Thu, 28 Dec 2023 00:00:02 +0000"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"time_next_update_unix"&lt;/span&gt;: 1703808002,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"time_next_update_utc"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"Fri, 29 Dec 2023 00:00:02 +0000"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"base_code"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"USD"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"target_code"&lt;/span&gt;: &lt;span style="color: #90a959"&gt;"EUR"&lt;/span&gt;,
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #90a959"&gt;"conversion_rate"&lt;/span&gt;: 0.9015
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Since we already have the codes in our select options, we will pass the values in the API and multiply the conversion rate by the amount to get the result. &lt;/p&gt;
&lt;p&gt;Create a function called &lt;code&gt;convertCurrency()&lt;/code&gt; function. In the function:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get the display element&lt;/li&gt;
&lt;li&gt;Get the values from the selected options&lt;/li&gt;
&lt;li&gt;Store the url in a variable&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;BASE_URL&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`https://v6.exchangerate-api.com/v6/&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;apiKey&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrrencyCode&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fromCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrencyCode&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;toCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.result&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.error&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Ensure you supply your API key from the Exchange Rate API. You can obtain one for free &lt;a href="https://www.exchangerate-api.com/" target="_self"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the &lt;code&gt;convertCurrency()&lt;/code&gt; function, we first check if a valid amount has been entered. I&lt;span&gt;f true, we perform a GET request to the exchange rate API with the currency pairs.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The response will contain the conversion rate. Finally we update the result with a formatted converted amount:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;function&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;convertCurrency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;BASE_URL&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`https://v6.exchangerate-api.com/v6/&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;apiKey&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrrencyCode&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;fromCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrencyCode&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;getElementById&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;toCurrency&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.result&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.error&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;console&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;log&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;console&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;log&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;input&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;value&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #aa759f"&gt;if &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;!==&lt;/span&gt; &lt;span style="color: #90a959"&gt;""&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;parseFloat&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;BASE_URL&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;/pair/&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;console&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;log&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fetch&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;resp&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;resp&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;json&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;then&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;((&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;console&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;log&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;conversion_rate&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;conversionResult&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;*&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;conversion_rate&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;).&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;toFixed&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #90a959"&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;formattedResult&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;conversionResult&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;replace&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #75b5aa"&gt;/&lt;/span&gt;&lt;span style="color: #8f5536"&gt;\B(?=(\d{3})&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;+&lt;/span&gt;&lt;span style="color: #8f5536"&gt;(?!\d))&lt;/span&gt;&lt;span style="color: #75b5aa"&gt;/g&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;          &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;,&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;result&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;fromCurrrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; = &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;formattedResult&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;${&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;toCurrencyCode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;`&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;amount&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;innerHTML&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt; &lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #aa759f"&gt;catch&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;error&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;textContent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;An error occured, please try again later &lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;      &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt; &lt;span style="color: #aa759f"&gt;else&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;alert&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Please enter an amount&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;If an error occurs, we display a message to the user, letting them know something went wrong. &lt;/p&gt;
&lt;p&gt;For the conversion to work, let’s add an event listener to the convert button and invoke the &lt;code&gt;convertCurrency()&lt;/code&gt; function, as shown below:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d28445"&gt;const&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;convertBtn&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;document&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;querySelector&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.convert&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;convertBtn&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;click&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;convertCurrency&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 id="toc-ypau-final-result"&gt;Final result&lt;/h3&gt;
&lt;p&gt;Congratulations! You just created a nice and easy currency converter app. Here is the final result:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/rNRebdQ?default-tab=result" width="850" height="800" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-n0rk-conclusion"&gt;Keep learning, keep creating!&lt;/h2&gt;
&lt;p&gt;There you go! This tutorial has covered how to build an easy currency converter app that fetches real-time data from the Exchange Rate API.&lt;/p&gt;
&lt;p&gt;You can add other functionalities to your website with plugins and templates designed by the pros. That's where Envato comes in! For a low monthly fee, you'll get unlimited downloads of &lt;a href="https://elements.envato.com/web-templates" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;web templates&lt;/a&gt;, &lt;a href="https://elements.envato.com/wordpress/plugins" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;WordPress plugins&lt;/a&gt;, &lt;a href="https://elements.envato.com/cms-templates" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;CMS themes&lt;/a&gt;, and so much more.&lt;/p&gt;
&lt;p&gt;Ensure you get your free API key from the ExchangeRateAPI, explore &lt;a href="https://elements.envato.com/" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;the Envato library&lt;/a&gt;, and have fun building things!&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/108362/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108362/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108362/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108362/a2t.img" width="1" /&gt;&lt;/div&gt;</description><enclosure length="3703" type="application/javascript; charset=utf-8" url="https://essykings.github.io/JavaScript/currency.js"/><itunes:explicit/><itunes:subtitle>* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}#ihkj{background-color:rgb(191, 234, 200);} By the end of this tutorial, you’ll have learned how to build a responsive currency app that fetches real-time data with the Exchange Rate API in a user-friendly interface. Let’s get to it! Our currency converter demo To create your own currency converter, you’ll first need to register your own API key from exchangerate-api.com. I based this design loosely on the excellent Crypto exchange platform by Yev Ledenov on Dribbble.  Currency converter code in HTML We'll begin with the HTML part of our app. The currency converter code in HTML will give our application a simple interface containing: An input field for the amount to be converted A drop-down to select the from Currency value A second drop-down to select the to currency value A convert button A &amp;lt;p&amp;gt; tag to show the converted amount A &amp;lt;p&amp;gt; tag to show any errors that might occur during the conversion process The currency converter HTML code will look like this: 1 &amp;lt;div class="container"&amp;gt; 2 3 &amp;lt;div class="currency-container"&amp;gt; 4 &amp;lt;h1&amp;gt;Currency converter&amp;lt;/h1&amp;gt; 5 &amp;lt;div class="input-box"&amp;gt; 6 &amp;lt;label for="amount"&amp;gt;Enter amount&amp;lt;/label&amp;gt; 7 &amp;lt;input type="text" id="amount" placeholder="100" required/&amp;gt; 8 &amp;lt;/div&amp;gt; 9 &amp;lt;div class="currency"&amp;gt; 10 &amp;lt;div class="box"&amp;gt; 11 &amp;lt;select 12 class="select-option" 13 name="from-currency" 14 id="fromCurrency" 15 &amp;gt; 16 &amp;lt;option value="USD"&amp;gt;United States Dollar&amp;lt;/option&amp;gt; 17 &amp;lt;/select&amp;gt; 18 &amp;lt;/div&amp;gt; 19 &amp;lt;div&amp;gt; 20 &amp;lt;span&amp;gt;TO&amp;lt;/span&amp;gt; 21 &amp;lt;/div&amp;gt; 22 &amp;lt;div class="box"&amp;gt; 23 &amp;lt;select class="select-option" name="to-currency" id="toCurrency"&amp;gt; 24 &amp;lt;option value="USD"&amp;gt;United States Dollar&amp;lt;/option&amp;gt; 25 &amp;lt;/select&amp;gt; 26 &amp;lt;/div&amp;gt; 27 &amp;lt;button class="convert"&amp;gt;Convert&amp;lt;/button&amp;gt; 28 &amp;lt;p class="result"&amp;gt;&amp;lt;/p&amp;gt; 29 &amp;lt;p class="error"&amp;gt;&amp;lt;/p&amp;gt; 30 31 &amp;lt;/div&amp;gt; 32 &amp;lt;/div&amp;gt; 33 &amp;lt;/div&amp;gt; Currently, we are using the option value as a placeholder. We will replace and add more option data dynamically to our currency converter with JavaScript. Styling with CSS All the greatest currency converter apps start with nice, basic styles. We’ve pulled in the rather excellent Bricolage Grotesque font from Google fonts too: 1 * { 2 margin: 0; 3 padding: 0; 4 box-sizing: border-box; 5 font-family: 'Bricolage Grotesque', sans-serif; 6 } 7 8 h1 { 9 font-size: 5em; 10 font-weight: bold; 11 text-align: center; 12 margin: .5em 0; 13 line-height: .8; 14 } 15 16 .container { 17 margin: auto; 18 min-height: 100vh; 19 background-color: #202020; 20 padding: 2em 0; 21 color: #040203; 22 display: flex; 23 flex-direction: column; 24 align-items: center; 25 justify-content: center; 26 } 27 28 .currency-container { 29 height: fit-content; 30 background-color: #7cb889; 31 padding: 3em; 32 border-radius: 40px; 33 } For the input and label (including the placeholder in the input) they will have the following styles: 1 .input-box { 2 display: flex; 3 flex-direction: column; 4 align-items: center; 5 justify-content: center; 6 text-align: center; 7 } 8 9 label { 10 font-size: 1.5em; 11 margin-bottom: .4em; 12 } 13 14 #amount { 15 width: 300px; 16 padding: 20px; 17 border-radius: 30px; 18 font-size: 3em; 19 border: 3px solid black; 20 background: transparent; 21 color: black; 22 23 } 24 #amount:focus { 25 border: 3px solid white; 26 outline: none; 27 } 28 29 ::placeholder { 30 color: rgba(0,0,0,0.6); 31 opacity: 1; /* Firefox */ 32 } Next, we will apply styling to the box elements containing the From and To currency drop-downs. The drop-down elements will be arranged in a column layout using Flexbox. They'll be centered vertically and horizontally. We also have a gap between the box elements, some padding, and a border radius: 1 .currency { 2 margin-top: 50px; 3 padding: 20px 20px; 4 display: flex; 5 align-items: center; 6 justify-content: center; 7 flex-direction: column; 8 gap: 1.5rem; 9 } 10 11 .box { 12 display: flex; 13 align-items: center; 14 justify-content: center; 15 } The select-option will have the following styles: 1 .select-option { 2 font-size: 16px; 3 color: #333; 4 padding: 20px; 5 display: block; 6 font-weight: 700; 7 line-height: 1.3; 8 width: 100%; 9 max-width: 100%; 10 margin: 0; 11 outline: none; 12 border-radius: 20px; 13 border: 3px solid black; 14 } Finally, the convert button, the result, and the error message elements will have the following styles: 1 button { 2 width: 100%; 3 height: 100px; 4 padding: 10px; 5 border-radius: 30px; 6 border: none; 7 font-size: 1.5em; 8 align-items: center; 9 background-color: black; 10 color: #fff; 11 margin-top: 30px; 12 } 13 .result { 14 color: black; 15 font-size: 2.5em; 16 } 17 .error { 18 color: #800020; 19 font-size: 12px; 20 } We're getting there! Now, let's convert currency with the JavaScript functionality. JavaScript currency functionality The JavaScript currency functionality will have two key parts: Getting the currency code, currency name, and flag from the REST countries API Getting conversion rate from the Exchange Rate API REST countries API The REST countries API provides an API with the endpoint https://restcountries.com/v3.1/all. There, you can filter results by providing the fields you are interested in. In our case, we want the country flag, currency name, and currency code. The endpoint will look like this: 1 https://restcountries.com/v3.1/all?fields=currencies,flag And here's how the resulting sample data will look like: 1 { 2 "name": { 3 "common": "Eritrea", 4 "official": "State of Eritrea", 5 "nativeName": { 6 "ara": { 7 "official": "دولة إرتريا", 8 "common": "إرتريا‎" 9 }, 10 "eng": { 11 "official": "State of Eritrea", 12 "common": "Eritrea" 13 }, 14 "tir": { 15 "official": "ሃገረ ኤርትራ", 16 "common": "ኤርትራ" 17 } 18 } 19 }, 20 "currencies": { 21 "ERN": { 22 "name": "Eritrean nakfa", 23 "symbol": "Nfk" 24 } 25 }, 26 "flag": "&#127466;&#127479;" 27 }, To make it easier to display our currencies, we will fetch the data and store it in a JavaScript file. The script for fetching the data will look like this: 1 const url = 2 "https://restcountries.com/v3.1/all?fields=name,currencies,flag"; 3 fetch(url) 4 .then((response) =&amp;gt; response.json()) 5 .then((data) =&amp;gt; { 6 7 const result = []; 8 data.forEach((country) =&amp;gt; { 9 if (Object.keys(country.currencies).length &amp;gt;0) { 10 result.push({ 11 countryname: country.name.common, 12 name: Object.values(country.currencies)[0].name, 13 code: Object.keys(country.currencies)[0], 14 flag: country.flag, 15 }); 16 } 17 }); 18 19 result.sort((a, b) =&amp;gt; a.code.localeCompare(b.code)); 20 const jsonString = JSON.stringify(result, null); 21 console.log(jsonString); 22 23 }); The code above does the following: We use the fetch() method to make an HTTP request to the REST countries API. Then, we convert the response to JSON format and start processing the data. From the response JSON, we first check if each country has a currency code—since not all countries have one. If a country has a currency, we create an object with its name, code, and currency name and push it to the empty result array. Next, we sort the currency code alphabetically. Finally, we convert the result to JSON and print the stringified data to the console. When you run the script in a browser environment, you should be able to copy the data to your JavaScript currency file. The data looks like this: Another options is to add this link to your script using the src attribute. Next, let’s get the select elements: 1 let fromCurrency = document.getElementById("fromCurrency"); 2 let toCurrency = document.getElementById("toCurrency"); We have the data in an array, so it’s easier to append the currencies to the option elements of the fromCurrency and toCurrency select elements.   Create a function called addCurrency(). Inside the addCurrency() function, we use the forEach() function to loop through the currencies array. For each iteration, we want to add the currency code to the option element and append the option element to both the select elements: 1 const result = currencies.forEach((currency) =&amp;gt; { 2 3 const optionFrom = document.createElement("option"); 4 optionFrom.classList.add("select-option"); 5 optionFrom.value = currency.code; 6 if (currency.code === "USD") { 7 optionFrom.selected = true; 8 } 9 optionFrom.text =`${currency.flag} ${currency.code} - ${currency.name}`; 10 11 fromCurrency.appendChild(optionFrom); 12 13 const optionTO = document.createElement("option"); 14 optionTO.classList.add("select-option"); 15 optionTO.value = currency.code; 16 if (currency.code === "EUR") { 17 optionTO.selected = true; 18 } 19 optionTO.text =`${currency.flag} ${currency.code} - ${currency.name}`; 20 toCurrency.appendChild(optionTO); 21 }); In the code above, we use the ForEach() function to iterate on each the currencies array data and do the following: Extracts the currency key from the currencies array  for each currency. Gets the flag. Gets the currency name. Creates an HTML option element for the "fromCurrency" select dropdown. Sets the option value to the currency code. Sets the option text to a combination of the flag, the currency name, and the currency code. Appends the created option element to the "fromCurrency" select dropdown. Creates another option element for the "toCurrency" select dropdown with the same data as the fromCurrency. Appends the created option element to the "toCurrency" select dropdown. Finally, we invoke the addCurrency() function to apply the functionality. The option value will be the currency code. The option text will be the currency flag, currency code, and currency name separated by a hyphen. We also set the default currency in the fromCurrency option element to USD. We set EUR as the default currency for the toCurrency option element. Now, our drop down is showing the currencies. Code refactoring From the addCurrency() function, you can see that we are repeating the same code to add the option values. Let’s create another function for generating the options for each currency element. The function will look like this: 1 function createOption(country, defaultCode, element ){ 2 // console.log(country); 3 const option = document.createElement("option"); 4 option.classList.add("select-option"); 5 option.value = country.code; 6 if (country.code === defaultCode) { 7 option.selected = true; 8 } 9 option.text = `${country.flag} ${country.code} - ${country.name}`; 10 element.appendChild(option); 11 12 13 } The createOption() function takes three parameters: the country object the default code the element where the options will be appended Next, update the addCurrency() function as follows: 1 function addCurrency() { 2 const result = countries.map((country) =&amp;gt; { 3 createOption(country, "USD", fromCurrency ); 4 createOption(country, "EUR", toCurrency ) 5 6 }); 7 } The function is now easier to read since we don’t have any repetitive code. Currency conversion We will use the ExchangeRate API for currency conversion. The ExchangeRate API  provides currency conversion rates for 161 currencies. Head over to www.exchangerate-api.com and get a Free API key. The API allows developers to convert currencies by providing a pair of currency codes in the request. For example, if you want to convert USD to EUR, your API call will look like this: 1 https://v6.exchangerate-api.com/v6/24faec6b42da4a96ceea41d3/pair/USD/EUR The endpoint will give us the following result: 1 { 2 "result": "success", 3 "documentation": "https://www.exchangerate-api.com/docs", 4 "terms_of_use": "https://www.exchangerate-api.com/terms", 5 "time_last_update_unix": 1703721602, 6 "time_last_update_utc": "Thu, 28 Dec 2023 00:00:02 +0000", 7 "time_next_update_unix": 1703808002, 8 "time_next_update_utc": "Fri, 29 Dec 2023 00:00:02 +0000", 9 "base_code": "USD", 10 "target_code": "EUR", 11 "conversion_rate": 0.9015 12 } Since we already have the codes in our select options, we will pass the values in the API and multiply the conversion rate by the amount to get the result.  Create a function called convertCurrency() function. In the function: Get the display element Get the values from the selected options Store the url in a variable 1 const BASE_URL = `https://v6.exchangerate-api.com/v6/${apiKey}`; 2 const fromCurrrencyCode = document.getElementById("fromCurrency").value; 3 const toCurrencyCode = document.getElementById("toCurrency").value; 4 const result = document.querySelector(".result"); 5 const error = document.querySelector(".error"); Ensure you supply your API key from the Exchange Rate API. You can obtain one for free here. In the convertCurrency() function, we first check if a valid amount has been entered. If true, we perform a GET request to the exchange rate API with the currency pairs. The response will contain the conversion rate. Finally we update the result with a formatted converted amount: 1 function convertCurrency() { 2 const BASE_URL = `https://v6.exchangerate-api.com/v6/${apiKey}`; 3 4 const fromCurrrencyCode = document.getElementById("fromCurrency").value; 5 const toCurrencyCode = document.getElementById("toCurrency").value; 6 const result = document.querySelector(".result"); 7 const error = document.querySelector(".error"); 8 9 console.log(fromCurrrencyCode); 10 console.log(toCurrencyCode); 11 12 const amount = input.value; 13 14 if (amount !== "" &amp;amp;&amp;amp; parseFloat(amount) &amp;gt;= 1) { 15 const url = `${BASE_URL}/pair/${fromCurrrencyCode}/${toCurrencyCode}`; 16 console.log(url); 17 fetch(url) 18 .then((resp) =&amp;gt; resp.json()) 19 .then((data) =&amp;gt; { 20 console.log(data.conversion_rate); 21 22 const conversionResult = (amount * data.conversion_rate).toFixed( 23 2 24 ); 25 const formattedResult = conversionResult.replace( 26 /\B(?=(\d{3})+(?!\d))/g, 27 "," 28 ); 29 30 result.innerHTML = `${amount} ${fromCurrrencyCode} = ${formattedResult} ${toCurrencyCode}`; 31 amount.innerHTML = " "; 32 }) 33 .catch(() =&amp;gt; { 34 error.textContent = "An error occured, please try again later "; 35 }); 36 } else { 37 alert("Please enter an amount"); 38 } 39 } If an error occurs, we display a message to the user, letting them know something went wrong.  For the conversion to work, let’s add an event listener to the convert button and invoke the convertCurrency() function, as shown below: 1 const convertBtn = document.querySelector(".convert"); 2 convertBtn.addEventListener("click", () =&amp;gt; { 3 convertCurrency(); 4 }); Final result Congratulations! You just created a nice and easy currency converter app. Here is the final result: Keep learning, keep creating! There you go! This tutorial has covered how to build an easy currency converter app that fetches real-time data from the Exchange Rate API. You can add other functionalities to your website with plugins and templates designed by the pros. That's where Envato comes in! For a low monthly fee, you'll get unlimited downloads of web templates, WordPress plugins, CMS themes, and so much more. Ensure you get your free API key from the ExchangeRateAPI, explore the Envato library, and have fun building things!</itunes:subtitle><itunes:author>noemail@noemail.org (Esther Vaati)</itunes:author><itunes:summary>* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}#ihkj{background-color:rgb(191, 234, 200);} By the end of this tutorial, you’ll have learned how to build a responsive currency app that fetches real-time data with the Exchange Rate API in a user-friendly interface. Let’s get to it! Our currency converter demo To create your own currency converter, you’ll first need to register your own API key from exchangerate-api.com. I based this design loosely on the excellent Crypto exchange platform by Yev Ledenov on Dribbble.  Currency converter code in HTML We'll begin with the HTML part of our app. The currency converter code in HTML will give our application a simple interface containing: An input field for the amount to be converted A drop-down to select the from Currency value A second drop-down to select the to currency value A convert button A &amp;lt;p&amp;gt; tag to show the converted amount A &amp;lt;p&amp;gt; tag to show any errors that might occur during the conversion process The currency converter HTML code will look like this: 1 &amp;lt;div class="container"&amp;gt; 2 3 &amp;lt;div class="currency-container"&amp;gt; 4 &amp;lt;h1&amp;gt;Currency converter&amp;lt;/h1&amp;gt; 5 &amp;lt;div class="input-box"&amp;gt; 6 &amp;lt;label for="amount"&amp;gt;Enter amount&amp;lt;/label&amp;gt; 7 &amp;lt;input type="text" id="amount" placeholder="100" required/&amp;gt; 8 &amp;lt;/div&amp;gt; 9 &amp;lt;div class="currency"&amp;gt; 10 &amp;lt;div class="box"&amp;gt; 11 &amp;lt;select 12 class="select-option" 13 name="from-currency" 14 id="fromCurrency" 15 &amp;gt; 16 &amp;lt;option value="USD"&amp;gt;United States Dollar&amp;lt;/option&amp;gt; 17 &amp;lt;/select&amp;gt; 18 &amp;lt;/div&amp;gt; 19 &amp;lt;div&amp;gt; 20 &amp;lt;span&amp;gt;TO&amp;lt;/span&amp;gt; 21 &amp;lt;/div&amp;gt; 22 &amp;lt;div class="box"&amp;gt; 23 &amp;lt;select class="select-option" name="to-currency" id="toCurrency"&amp;gt; 24 &amp;lt;option value="USD"&amp;gt;United States Dollar&amp;lt;/option&amp;gt; 25 &amp;lt;/select&amp;gt; 26 &amp;lt;/div&amp;gt; 27 &amp;lt;button class="convert"&amp;gt;Convert&amp;lt;/button&amp;gt; 28 &amp;lt;p class="result"&amp;gt;&amp;lt;/p&amp;gt; 29 &amp;lt;p class="error"&amp;gt;&amp;lt;/p&amp;gt; 30 31 &amp;lt;/div&amp;gt; 32 &amp;lt;/div&amp;gt; 33 &amp;lt;/div&amp;gt; Currently, we are using the option value as a placeholder. We will replace and add more option data dynamically to our currency converter with JavaScript. Styling with CSS All the greatest currency converter apps start with nice, basic styles. We’ve pulled in the rather excellent Bricolage Grotesque font from Google fonts too: 1 * { 2 margin: 0; 3 padding: 0; 4 box-sizing: border-box; 5 font-family: 'Bricolage Grotesque', sans-serif; 6 } 7 8 h1 { 9 font-size: 5em; 10 font-weight: bold; 11 text-align: center; 12 margin: .5em 0; 13 line-height: .8; 14 } 15 16 .container { 17 margin: auto; 18 min-height: 100vh; 19 background-color: #202020; 20 padding: 2em 0; 21 color: #040203; 22 display: flex; 23 flex-direction: column; 24 align-items: center; 25 justify-content: center; 26 } 27 28 .currency-container { 29 height: fit-content; 30 background-color: #7cb889; 31 padding: 3em; 32 border-radius: 40px; 33 } For the input and label (including the placeholder in the input) they will have the following styles: 1 .input-box { 2 display: flex; 3 flex-direction: column; 4 align-items: center; 5 justify-content: center; 6 text-align: center; 7 } 8 9 label { 10 font-size: 1.5em; 11 margin-bottom: .4em; 12 } 13 14 #amount { 15 width: 300px; 16 padding: 20px; 17 border-radius: 30px; 18 font-size: 3em; 19 border: 3px solid black; 20 background: transparent; 21 color: black; 22 23 } 24 #amount:focus { 25 border: 3px solid white; 26 outline: none; 27 } 28 29 ::placeholder { 30 color: rgba(0,0,0,0.6); 31 opacity: 1; /* Firefox */ 32 } Next, we will apply styling to the box elements containing the From and To currency drop-downs. The drop-down elements will be arranged in a column layout using Flexbox. They'll be centered vertically and horizontally. We also have a gap between the box elements, some padding, and a border radius: 1 .currency { 2 margin-top: 50px; 3 padding: 20px 20px; 4 display: flex; 5 align-items: center; 6 justify-content: center; 7 flex-direction: column; 8 gap: 1.5rem; 9 } 10 11 .box { 12 display: flex; 13 align-items: center; 14 justify-content: center; 15 } The select-option will have the following styles: 1 .select-option { 2 font-size: 16px; 3 color: #333; 4 padding: 20px; 5 display: block; 6 font-weight: 700; 7 line-height: 1.3; 8 width: 100%; 9 max-width: 100%; 10 margin: 0; 11 outline: none; 12 border-radius: 20px; 13 border: 3px solid black; 14 } Finally, the convert button, the result, and the error message elements will have the following styles: 1 button { 2 width: 100%; 3 height: 100px; 4 padding: 10px; 5 border-radius: 30px; 6 border: none; 7 font-size: 1.5em; 8 align-items: center; 9 background-color: black; 10 color: #fff; 11 margin-top: 30px; 12 } 13 .result { 14 color: black; 15 font-size: 2.5em; 16 } 17 .error { 18 color: #800020; 19 font-size: 12px; 20 } We're getting there! Now, let's convert currency with the JavaScript functionality. JavaScript currency functionality The JavaScript currency functionality will have two key parts: Getting the currency code, currency name, and flag from the REST countries API Getting conversion rate from the Exchange Rate API REST countries API The REST countries API provides an API with the endpoint https://restcountries.com/v3.1/all. There, you can filter results by providing the fields you are interested in. In our case, we want the country flag, currency name, and currency code. The endpoint will look like this: 1 https://restcountries.com/v3.1/all?fields=currencies,flag And here's how the resulting sample data will look like: 1 { 2 "name": { 3 "common": "Eritrea", 4 "official": "State of Eritrea", 5 "nativeName": { 6 "ara": { 7 "official": "دولة إرتريا", 8 "common": "إرتريا‎" 9 }, 10 "eng": { 11 "official": "State of Eritrea", 12 "common": "Eritrea" 13 }, 14 "tir": { 15 "official": "ሃገረ ኤርትራ", 16 "common": "ኤርትራ" 17 } 18 } 19 }, 20 "currencies": { 21 "ERN": { 22 "name": "Eritrean nakfa", 23 "symbol": "Nfk" 24 } 25 }, 26 "flag": "&#127466;&#127479;" 27 }, To make it easier to display our currencies, we will fetch the data and store it in a JavaScript file. The script for fetching the data will look like this: 1 const url = 2 "https://restcountries.com/v3.1/all?fields=name,currencies,flag"; 3 fetch(url) 4 .then((response) =&amp;gt; response.json()) 5 .then((data) =&amp;gt; { 6 7 const result = []; 8 data.forEach((country) =&amp;gt; { 9 if (Object.keys(country.currencies).length &amp;gt;0) { 10 result.push({ 11 countryname: country.name.common, 12 name: Object.values(country.currencies)[0].name, 13 code: Object.keys(country.currencies)[0], 14 flag: country.flag, 15 }); 16 } 17 }); 18 19 result.sort((a, b) =&amp;gt; a.code.localeCompare(b.code)); 20 const jsonString = JSON.stringify(result, null); 21 console.log(jsonString); 22 23 }); The code above does the following: We use the fetch() method to make an HTTP request to the REST countries API. Then, we convert the response to JSON format and start processing the data. From the response JSON, we first check if each country has a currency code—since not all countries have one. If a country has a currency, we create an object with its name, code, and currency name and push it to the empty result array. Next, we sort the currency code alphabetically. Finally, we convert the result to JSON and print the stringified data to the console. When you run the script in a browser environment, you should be able to copy the data to your JavaScript currency file. The data looks like this: Another options is to add this link to your script using the src attribute. Next, let’s get the select elements: 1 let fromCurrency = document.getElementById("fromCurrency"); 2 let toCurrency = document.getElementById("toCurrency"); We have the data in an array, so it’s easier to append the currencies to the option elements of the fromCurrency and toCurrency select elements.   Create a function called addCurrency(). Inside the addCurrency() function, we use the forEach() function to loop through the currencies array. For each iteration, we want to add the currency code to the option element and append the option element to both the select elements: 1 const result = currencies.forEach((currency) =&amp;gt; { 2 3 const optionFrom = document.createElement("option"); 4 optionFrom.classList.add("select-option"); 5 optionFrom.value = currency.code; 6 if (currency.code === "USD") { 7 optionFrom.selected = true; 8 } 9 optionFrom.text =`${currency.flag} ${currency.code} - ${currency.name}`; 10 11 fromCurrency.appendChild(optionFrom); 12 13 const optionTO = document.createElement("option"); 14 optionTO.classList.add("select-option"); 15 optionTO.value = currency.code; 16 if (currency.code === "EUR") { 17 optionTO.selected = true; 18 } 19 optionTO.text =`${currency.flag} ${currency.code} - ${currency.name}`; 20 toCurrency.appendChild(optionTO); 21 }); In the code above, we use the ForEach() function to iterate on each the currencies array data and do the following: Extracts the currency key from the currencies array  for each currency. Gets the flag. Gets the currency name. Creates an HTML option element for the "fromCurrency" select dropdown. Sets the option value to the currency code. Sets the option text to a combination of the flag, the currency name, and the currency code. Appends the created option element to the "fromCurrency" select dropdown. Creates another option element for the "toCurrency" select dropdown with the same data as the fromCurrency. Appends the created option element to the "toCurrency" select dropdown. Finally, we invoke the addCurrency() function to apply the functionality. The option value will be the currency code. The option text will be the currency flag, currency code, and currency name separated by a hyphen. We also set the default currency in the fromCurrency option element to USD. We set EUR as the default currency for the toCurrency option element. Now, our drop down is showing the currencies. Code refactoring From the addCurrency() function, you can see that we are repeating the same code to add the option values. Let’s create another function for generating the options for each currency element. The function will look like this: 1 function createOption(country, defaultCode, element ){ 2 // console.log(country); 3 const option = document.createElement("option"); 4 option.classList.add("select-option"); 5 option.value = country.code; 6 if (country.code === defaultCode) { 7 option.selected = true; 8 } 9 option.text = `${country.flag} ${country.code} - ${country.name}`; 10 element.appendChild(option); 11 12 13 } The createOption() function takes three parameters: the country object the default code the element where the options will be appended Next, update the addCurrency() function as follows: 1 function addCurrency() { 2 const result = countries.map((country) =&amp;gt; { 3 createOption(country, "USD", fromCurrency ); 4 createOption(country, "EUR", toCurrency ) 5 6 }); 7 } The function is now easier to read since we don’t have any repetitive code. Currency conversion We will use the ExchangeRate API for currency conversion. The ExchangeRate API  provides currency conversion rates for 161 currencies. Head over to www.exchangerate-api.com and get a Free API key. The API allows developers to convert currencies by providing a pair of currency codes in the request. For example, if you want to convert USD to EUR, your API call will look like this: 1 https://v6.exchangerate-api.com/v6/24faec6b42da4a96ceea41d3/pair/USD/EUR The endpoint will give us the following result: 1 { 2 "result": "success", 3 "documentation": "https://www.exchangerate-api.com/docs", 4 "terms_of_use": "https://www.exchangerate-api.com/terms", 5 "time_last_update_unix": 1703721602, 6 "time_last_update_utc": "Thu, 28 Dec 2023 00:00:02 +0000", 7 "time_next_update_unix": 1703808002, 8 "time_next_update_utc": "Fri, 29 Dec 2023 00:00:02 +0000", 9 "base_code": "USD", 10 "target_code": "EUR", 11 "conversion_rate": 0.9015 12 } Since we already have the codes in our select options, we will pass the values in the API and multiply the conversion rate by the amount to get the result.  Create a function called convertCurrency() function. In the function: Get the display element Get the values from the selected options Store the url in a variable 1 const BASE_URL = `https://v6.exchangerate-api.com/v6/${apiKey}`; 2 const fromCurrrencyCode = document.getElementById("fromCurrency").value; 3 const toCurrencyCode = document.getElementById("toCurrency").value; 4 const result = document.querySelector(".result"); 5 const error = document.querySelector(".error"); Ensure you supply your API key from the Exchange Rate API. You can obtain one for free here. In the convertCurrency() function, we first check if a valid amount has been entered. If true, we perform a GET request to the exchange rate API with the currency pairs. The response will contain the conversion rate. Finally we update the result with a formatted converted amount: 1 function convertCurrency() { 2 const BASE_URL = `https://v6.exchangerate-api.com/v6/${apiKey}`; 3 4 const fromCurrrencyCode = document.getElementById("fromCurrency").value; 5 const toCurrencyCode = document.getElementById("toCurrency").value; 6 const result = document.querySelector(".result"); 7 const error = document.querySelector(".error"); 8 9 console.log(fromCurrrencyCode); 10 console.log(toCurrencyCode); 11 12 const amount = input.value; 13 14 if (amount !== "" &amp;amp;&amp;amp; parseFloat(amount) &amp;gt;= 1) { 15 const url = `${BASE_URL}/pair/${fromCurrrencyCode}/${toCurrencyCode}`; 16 console.log(url); 17 fetch(url) 18 .then((resp) =&amp;gt; resp.json()) 19 .then((data) =&amp;gt; { 20 console.log(data.conversion_rate); 21 22 const conversionResult = (amount * data.conversion_rate).toFixed( 23 2 24 ); 25 const formattedResult = conversionResult.replace( 26 /\B(?=(\d{3})+(?!\d))/g, 27 "," 28 ); 29 30 result.innerHTML = `${amount} ${fromCurrrencyCode} = ${formattedResult} ${toCurrencyCode}`; 31 amount.innerHTML = " "; 32 }) 33 .catch(() =&amp;gt; { 34 error.textContent = "An error occured, please try again later "; 35 }); 36 } else { 37 alert("Please enter an amount"); 38 } 39 } If an error occurs, we display a message to the user, letting them know something went wrong.  For the conversion to work, let’s add an event listener to the convert button and invoke the convertCurrency() function, as shown below: 1 const convertBtn = document.querySelector(".convert"); 2 convertBtn.addEventListener("click", () =&amp;gt; { 3 convertCurrency(); 4 }); Final result Congratulations! You just created a nice and easy currency converter app. Here is the final result: Keep learning, keep creating! There you go! This tutorial has covered how to build an easy currency converter app that fetches real-time data from the Exchange Rate API. You can add other functionalities to your website with plugins and templates designed by the pros. That's where Envato comes in! For a low monthly fee, you'll get unlimited downloads of web templates, WordPress plugins, CMS themes, and so much more. Ensure you get your free API key from the ExchangeRateAPI, explore the Envato library, and have fun building things!</itunes:summary></item><item><title>What to do when one of your WordPress plugins gets compromised</title><link>https://webdesign.tutsplus.com/what-to-do-when-one-of-your-wordpress-plugins-gets-compromised--cms-109077a</link><author>noemail@noemail.org (Suzanne Scacca)</author><pubDate>Thu, 19 Dec 2024 23:39:51 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-109077</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ipt5"&gt;
&lt;p&gt;&lt;span&gt;There are over a billion websites. It’s much easier for hackers to exploit a single vulnerable resource that connects to countless websites than to go after them one at a time. This is why WordPress plugins are a popular way in which hackers break into websites.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So, let’s talk about what happens when one of your installed WordPress plugins is compromised. We’ll look at:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt; Some recent examples of hacked plugins.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;The ramifications of having one of them on your website.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;What steps you can take to re-secure your site and reduce the chances of your site being infected or exploited again.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="int4r"&gt;&lt;h2 id="toc-71d1-the-far-reaching-effects-of-wordpress-plugin-security"&gt;&lt;span&gt;The far-reaching effects of a WordPress plugin breach&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iukqg"&gt;&lt;p&gt;&lt;span&gt;Here are some examples of hacked plugins from 2024 and the wide-ranging impact they had on the WordPress community. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i166h"&gt;&lt;h3 id="toc-sth7-the-social-warfare-supply-chain-attack"&gt;&lt;span&gt;The Social Warfare supply chain attack&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iv215"&gt;
&lt;p&gt;&lt;span&gt;In June 2024, it was discovered that a supply chain attack breached not one, but &lt;/span&gt;&lt;em&gt;&lt;span&gt;nine &lt;/span&gt;&lt;/em&gt;&lt;span&gt;WordPress plugins. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The malware distributed during this supply chain attack did a number of things to websites with these plugins installed. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For starters, it added a new admin account to the website, which gave the attacker full control. Also, it added malicious JavaScript to the footer, which distributed SEO spam throughout each site. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;On June 22, 2024, &lt;/span&gt;&lt;a href="https://wordpress.org/support/topic/a-security-message-from-the-plugin-review-team/"&gt;&lt;span&gt;the WordPress plugin review team&lt;/span&gt;&lt;/a&gt;&lt;span&gt; posted a message to the board of the Social Warfare social media sharing plugin. It read: &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ixycz"&gt;&lt;blockquote&gt;
&lt;p style="text-align:left"&gt;“The WordPress.org Plugin Review Team was notified that a malicious actor had taken over Social Sharing Plugin – Social Warfare. As a result, versions 4.4.6.4 to 4.4.7.1 of the plugin created users with administrative privileges.&lt;/p&gt;
&lt;p style="text-align:left"&gt;The Plugin Review Team has disabled it and released a ‘clean’ updated version: 4.4.7.3. Please update immediately.&lt;/p&gt;
&lt;p style="text-align:left"&gt;If you have used versions 4.4.6.4 to 4.4.7.1 of the Social Warfare plugin, we strongly recommend you do an in-depth review of your site’s activity and user account details.”&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ij21"&gt;
&lt;p&gt;&lt;span&gt;This alert &lt;/span&gt;&lt;a href="https://www.wordfence.com/blog/2024/06/supply-chain-attack-on-wordpress-org-plugins-leads-to-5-maliciously-compromised-wordpress-plugins/"&gt;&lt;span&gt;caught the attention of Wordfence&lt;/span&gt;&lt;/a&gt;&lt;span&gt; two days later. The team analyzed the infected file and checked it against their Threat Intelligence platform. They discovered that four other WordPress plugins contained the same malicious code: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Blaze Widget&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Wrapper Link Element &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Contact Form 7 Multi-Step Addon &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Simply Show Hooks&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;That wasn’t the end of this saga. On June 28, &lt;/span&gt;&lt;a href="https://www.wordfence.com/blog/2024/06/3-more-plugins-infected-in-wordpress-org-supply-chain-attack-due-to-compromised-developer-passwords/"&gt;&lt;span&gt;Wordfence discovered four more compromised plugins&lt;/span&gt;&lt;/a&gt;&lt;span&gt;: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;WP Server Health Stats&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Ad Invalid Click Protector (AICP)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;PowerPress Podcasting plugin by Blubrry (powerpress)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Seo Optimized Images (seo-optimized-images)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Unlike Social Warfare which was patched, some of these plugins have been delisted. For instance, this is what the plugin page looks like for &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/blaze-widget/"&gt;&lt;span&gt;BLAZE widget&lt;/span&gt;&lt;/a&gt;&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg" alt="Screenshot from WordPress.org plugin repository for the unlisted blaze-widget plugin" id="i5bn" loading="lazy" width="870px" height="426px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg" alt="Screenshot from WordPress.org plugin repository for the unlisted blaze-widget plugin" id="i5bn" loading="lazy" width="650px" height="321px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg" alt="Screenshot from WordPress.org plugin repository for the unlisted blaze-widget plugin" id="i5bn" loading="lazy" width="380px" height="192px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_blaze_widget_closed.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i97h"&gt;&lt;p&gt;&lt;span&gt;There’s a warning at the top of the screen that reads: &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i55p"&gt;&lt;blockquote&gt;
&lt;p&gt;“This plugin has been closed as of June 24, 2024 and is not available for download. This closure is permanent. Reason: Security Issue.”&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i8qj"&gt;&lt;p&gt;&lt;span&gt;Although you can still see these plugin pages in the repository, no one will be able to install or use them in the future.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ihei"&gt;&lt;h3 id="toc-5tgh-the-really-simple-security-critical-authentication-bypass-vulnerability"&gt;&lt;span&gt;The Really Simple Security critical authentication bypass vulnerability&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ijft"&gt;&lt;p&gt;&lt;span&gt;Unlike the supply chain attack which didn’t impact any super popular plugins, the &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/really-simple-ssl/"&gt;&lt;span&gt;Really Simple Security plugin&lt;/span&gt;&lt;/a&gt;&lt;span&gt; exploit affected &lt;/span&gt;&lt;em&gt;&lt;span&gt;over 4 million websites&lt;/span&gt;&lt;/em&gt;&lt;span&gt;. Yikes.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg" alt="Screenshot from the WordPress.org Really Simple Security plugin page that shows there are over 4 million users" id="ih37j" loading="lazy" width="870px" height="438px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg" alt="Screenshot from the WordPress.org Really Simple Security plugin page that shows there are over 4 million users" id="ih37j" loading="lazy" width="650px" height="330px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg" alt="Screenshot from the WordPress.org Really Simple Security plugin page that shows there are over 4 million users" id="ih37j" loading="lazy" width="380px" height="197px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_listing.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i3uud"&gt;
&lt;p&gt;&lt;span&gt;On November 6, 2024, &lt;/span&gt;&lt;a href="https://www.wordfence.com/blog/2024/11/really-simple-security-vulnerability/"&gt;&lt;span&gt;Wordfence discovered the critical authentication bypass vulnerability&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It gave the hacker the ability to access and exploit any users’ accounts (including the admin) when Really Simple Security’s two-factor authentication was enabled. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Wordfence contacted the plugin author the same day and received a response back on November 7. The patched update was released to Pro users on November 12 and Free users on November 14. In conjunction with WordPress, they attempted to force-install the critical update on anyone’s site who had the vulnerable version of the plugin. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition, the author emailed its users early on the morning of November: &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg" alt="Email from Really Simple Security sent to plugin users to inform them of security vulnerability" id="id141" loading="lazy" width="870px" height="501px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg" alt="Email from Really Simple Security sent to plugin users to inform them of security vulnerability" id="id141" loading="lazy" width="650px" height="377px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg" alt="Email from Really Simple Security sent to plugin users to inform them of security vulnerability" id="id141" loading="lazy" width="380px" height="224px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_really_simple_security_email_notice.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iub1i"&gt;
&lt;p&gt;&lt;span&gt;This type of swift and widespread response was critical, considering the threat level of this particular exploit. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Although WordPress has long been able to force critical security updates like this one, it doesn’t always work as intended. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In fact, I learned about this attack because one of my WordPress students received the email above. When we went into her site, I saw that she still had the vulnerable version of the plugin installed. For some reason, the force-patch didn’t work. To make matters worse, her web developer was unaware of the vulnerability, too. So, it was this email that brought her attention to the matter.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ing9v"&gt;&lt;h2 id="toc-hya8-when-and-why-wordpress-plugins-become-a-problem-the-facts"&gt;&lt;span&gt;When and why WordPress plugins become a problem: The facts&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i5m7b"&gt;&lt;p&gt;&lt;span&gt;According to &lt;/span&gt;&lt;a href="https://patchstack.com/whitepaper/state-of-wordpress-security-in-2024/"&gt;&lt;span&gt;Patchstack’s State of WordPress Security in 2024&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &lt;/span&gt;&lt;strong&gt;97% of the WordPress software vulnerabilities they discovered were attributed to plugins&lt;/strong&gt;&lt;span&gt;. WordPress themes accounted for 3% and the WordPress core for 0.2%.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg" alt="Donut chart generated from data collected by Patchstack. It shows that 97% of plugins, 3% of themes, and 0.2% of WordPress core code are responsible for WordPress software vulnerabilities." id="ibrei" loading="lazy" width="870px" height="570px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg" alt="Donut chart generated from data collected by Patchstack. It shows that 97% of plugins, 3% of themes, and 0.2% of WordPress core code are responsible for WordPress software vulnerabilities." id="ibrei" loading="lazy" width="650px" height="428px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg" alt="Donut chart generated from data collected by Patchstack. It shows that 97% of plugins, 3% of themes, and 0.2% of WordPress core code are responsible for WordPress software vulnerabilities." id="ibrei" loading="lazy" width="380px" height="253px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_patchstack_wordpress_vulnerability_data.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="izq9d"&gt;
&lt;p&gt;&lt;span&gt;This doesn’t mean that WordPress plugins are generally unsafe to use. Nor does it mean that having a vulnerable plugin installed automatically means your website has been infected.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Most plugin authors do a great job of monitoring their software, removing bugs and malware, and quickly sending patches out to end users via updates. However, unless those updates are set to automatically go through on every WordPress website, that’s when it becomes an issue.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;According to Patchstack:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ifmvm"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;42% of WordPress sites in 2023 had at least one vulnerable piece of software &lt;/strong&gt;&lt;strong&gt;installed&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i4zks"&gt;
&lt;p&gt;&lt;span&gt;So, running outdated versions of WordPress plugins is a problem. But that’s not at all. Abandoned plugins are hugely problematic as well. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;According to &lt;/span&gt;&lt;a href="https://wpscan.com/2024-website-threat-report/"&gt;&lt;span&gt;WPScan’s 2024 Website Threat Report&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, they informed WordPress about 827 plugins and themes that had been abandoned by their developers. &lt;/span&gt;&lt;strong&gt;Only 58.16% of them were permanently removed from the repository on wordpress.org&lt;/strong&gt;&lt;span&gt;. What’s more, many of those that remained contained vulnerabilities. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As the report notes: &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iwbo5"&gt;&lt;blockquote&gt;
&lt;p&gt;“We reported 404 of those plugins in a single day to draw attention to the ‘zombie plugin pandemic’ in WordPress. Such ‘zombie’ plugins are components that seem safe and up-to-date at first glance, but may contain unpatched security issues. Furthermore, such plugins remain active on user sites even if they are removed from the WordPress plugins repository.”&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ix9y5"&gt;
&lt;p&gt;&lt;span&gt;As a result, this puts a lot of the responsibility of ensuring plugin integrity on website designers, developers, and owners. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;With how pervasive of an issue this is, unpatched, unmanaged, and abandoned WordPress plugins create tons of work and headaches for web developers and designers. Not only do they force you to drop everything to manage the plugin patch and website repair, but they can put you in a tenuous position with the website owner (i.e. your client or employer). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Because, let’s face it, they’re not going to get mad that a plugin was poorly coded or managed. They’re going to care that &lt;/span&gt;&lt;em&gt;&lt;span&gt;you &lt;/span&gt;&lt;/em&gt;&lt;span&gt;vetted it and then used it on their site. They’re especially going to care if their website is defaced, taken offline, or blacklisted as a result. And they’re going to be even more irate if their end users’ private data is stolen and exploited. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i5pij"&gt;&lt;h2 id="toc-39gx-what-to-do-if-one-of-your-wordpress-plugins-is-compromised"&gt;&lt;span&gt;What to do if one of your WordPress plugins is compromised&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ikqwv"&gt;
&lt;p&gt;&lt;span&gt;WordPress plugins are not the problem. We’re able to accomplish incredible things in web design and development—and easily, too—thanks to plugins. &lt;/span&gt;&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-warn"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;&lt;span&gt;The problem is that WordPress is the most popular content management system in the world.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Owing to WordPress’ widespread use, its vulnerabilities are well-known to bad actors. All it takes is one small misstep when coding a plugin to let one of them in. Or for a plugin to go unmanaged for so long that someone with bad intentions finally manages a way to exploit it. &lt;/p&gt;
&lt;p&gt;&lt;span&gt;As someone who uses WordPress plugins, you can’t stress about that. Instead, what you need to focus on is what to do if or when one of your installed plugins has been compromised:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i9z3v"&gt;&lt;h3 id="toc-zf3y-step-1-review-the-vulnerability-report"&gt;&lt;span&gt;Step 1: Review the vulnerability report&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iipql"&gt;
&lt;p&gt;&lt;span&gt;If you learn that one of the plugins you use has a vulnerability, see if you can find information on what it is and how it works. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Your plugin author may send you a notice (as Really Simple Security did) explaining the incident. It’s also a good idea to refer to WordPress security sources like &lt;/span&gt;&lt;a href="https://patchstack.com/database/"&gt;&lt;span&gt;Patchstack&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &lt;/span&gt;&lt;a href="https://wpscan.com/plugins/"&gt;&lt;span&gt;WPScan&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, and &lt;/span&gt;&lt;a href="https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/"&gt;&lt;span&gt;Wordfence&lt;/span&gt;&lt;/a&gt;&lt;span&gt; which regularly monitor and report on vulnerabilities. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For example, Wordfence regularly updates its vulnerability database and organizes it by plugins, themes, and core:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg" alt="A look at Wordfence's WordPress plugin vulnerability database" id="isgmg" loading="lazy" width="870px" height="426px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg" alt="A look at Wordfence's WordPress plugin vulnerability database" id="isgmg" loading="lazy" width="650px" height="321px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg" alt="A look at Wordfence's WordPress plugin vulnerability database" id="isgmg" loading="lazy" width="380px" height="192px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_wordfence_vulnerability_database.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="is8yj"&gt;&lt;p&gt;&lt;span&gt;By educating yourself on the nature of the vulnerability, you’ll know what to look for when cleaning up and repairing your website. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i3duw"&gt;&lt;h3 id="toc-imch-step-2-update-the-plugin"&gt;&lt;span&gt;Step 2: Update the plugin in question&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iwi58"&gt;
&lt;p&gt;&lt;span&gt;Unless a WordPress plugin has been abandoned, the plugin author should have a patch ready soon after the vulnerability is detected. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;While WordPress has had the ability to &lt;/span&gt;&lt;a href="https://make.wordpress.org/plugins/2015/03/14/plugin-automatic-security-updates/"&gt;&lt;span&gt;force a critical security update since around 2015&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, it isn’t always a foolproof method (as evidenced by my student’s website). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you don’t have automated plugin updates set up, then you’ll need to log into WordPress and manually push through the patch as soon as it’s available. It’s a good idea to log in and confirm it happened regardless.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For reference, you can enable auto-updates from the WordPress &lt;/span&gt;&lt;strong&gt;Plugins &lt;/strong&gt;&lt;span&gt;screen. There’s a button that appears directly to the right of your plugins that looks like this:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg" alt='An example of what the "Enable auto-updates" feature looks like on the Plugins page in WordPress. This is for the Slider Revolution plugin.' id="iqt3h" loading="lazy" width="870px" height="106px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg" alt='An example of what the "Enable auto-updates" feature looks like on the Plugins page in WordPress. This is for the Slider Revolution plugin.' id="iqt3h" loading="lazy" width="650px" height="84px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg" alt='An example of what the "Enable auto-updates" feature looks like on the Plugins page in WordPress. This is for the Slider Revolution plugin.' id="iqt3h" loading="lazy" width="380px" height="56px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_slider_revolution_update.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="imw11"&gt;&lt;h3 id="toc-bp1q-step-3-find-an-alternative-optional"&gt;&lt;span&gt;Step 3: Find an alternative (optional)&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iyc8c"&gt;
&lt;p&gt;&lt;span&gt;Depending on the severity of the vulnerability or the history you have with the plugin, you might decide it’s best to deactivate and delete it altogether. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If that’s the case, go to your preferred plugin repository like &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/"&gt;&lt;span&gt;WordPress.org&lt;/span&gt;&lt;/a&gt;&lt;span&gt; or &lt;/span&gt;&lt;a href="https://codecanyon.net/category/wordpress/" data-action="click-&amp;gt;ga-analytics#sendMarketClickEvent"&gt;&lt;span&gt;CodeCanyon&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There are certain things to look for when vetting WordPress plugins. For instance, Simply Show Hooks was one of the impacted plugins in the supply chain attack. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg" alt="In this screenshot of the simply-show-hooks plugin page on WordPress.org, we see that the plugin was last updated 8 years ago" id="itb7r" loading="lazy" width="870px" height="379px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg" alt="In this screenshot of the simply-show-hooks plugin page on WordPress.org, we see that the plugin was last updated 8 years ago" id="itb7r" loading="lazy" width="650px" height="286px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg" alt="In this screenshot of the simply-show-hooks plugin page on WordPress.org, we see that the plugin was last updated 8 years ago" id="itb7r" loading="lazy" width="380px" height="172px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_delisted_outdated_plugin.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i3zak"&gt;
&lt;p&gt;&lt;span&gt;The red warning at the top of the page is a clear sign to stay away. However, if you look at the data on the right, there are a couple more red flags. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For instance, the last time the plugin was updated was 8 years ago. Also, it was only tested up to WordPress version 4.6.29. We’re currently at 6.7.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you’re purchasing premium WordPress plugins from CodeCanyon, there are other things to look for. Let’s look at this example of &lt;/span&gt;&lt;a href="https://codecanyon.net/item/filter-everything-wordpress-woocommerce-filter/31634508#" data-action="click-&amp;gt;ga-analytics#sendMarketClickEvent"&gt;&lt;span&gt;Filter Everything&lt;/span&gt;&lt;/a&gt;&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg" alt="A look at the CodeCanyon page for the Filter Everything plugin shows various parts of the page have been highlighted. These are where users learn if they can trust the plugin's integrity." id="i1rck" loading="lazy" width="870px" height="632px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg" alt="A look at the CodeCanyon page for the Filter Everything plugin shows various parts of the page have been highlighted. These are where users learn if they can trust the plugin's integrity." id="i1rck" loading="lazy" width="650px" height="474px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg" alt="A look at the CodeCanyon page for the Filter Everything plugin shows various parts of the page have been highlighted. These are where users learn if they can trust the plugin's integrity." id="i1rck" loading="lazy" width="380px" height="279px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/109077/image-upload/wordpress_compromised_plugins_codecanyon_filter_everything.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i7maj"&gt;
&lt;p&gt;&lt;span&gt;Here’s what you should pay attention to: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reviews and Comments:&lt;/strong&gt;&lt;span&gt; The overall rating is important as it tells you a lot about the quality of the plugin and support provided. However, you can also search the &lt;/span&gt;&lt;strong&gt;Comments &lt;/strong&gt;&lt;span&gt;for keywords like “security” and “vulnerability” to see if there have been issues in the past and to see how they were handled.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Live Preview&lt;/strong&gt;&lt;span&gt;: Take a look at how the landing page or the plugin demo work. If the page is broken or severely outdated, then that’s a good sign to stay away.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Quality checked by Envato”&lt;/strong&gt;&lt;span&gt;: In the licensing/pricing box in the top-right, you’ll see this notice. Having Envato’s seal of approval on a plugin is a must.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author Status&lt;/strong&gt;&lt;span&gt;: On the right, you’ll not only see the author’s status, but also their accolades. For instance, Stepasyuk has the following: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Elite Author&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Featured Item&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Top Monthly Author&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Trendsetter&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Weekly Top Seller&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Author Level 9&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Collector Level 1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Exclusive Author&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;11 Years of Membership&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;If you want to know if you can trust the integrity of the plugin and author, this section will provide you with proof.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last Update&lt;/strong&gt;&lt;span&gt;: The last bit of info to check out is the last plugin update date. Ideally, it should be within the last three months. Six months maximum.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ixwe8"&gt;&lt;h3 id="toc-z5s2-step-4-perform-a-security-scan-and-cleanup"&gt;&lt;span&gt;Step 4: Perform a security scan and cleanup&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i16bx"&gt;&lt;p&gt;&lt;span&gt;According to &lt;/span&gt;&lt;a href="https://sucuri.net/reports/2021-hacked-website-report/"&gt;&lt;span&gt;Sucuri’s 2021 Hacked Website Report&lt;/span&gt;&lt;/a&gt;&lt;span&gt;: &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ibmlg"&gt;&lt;blockquote&gt;
&lt;p&gt;“Website owners are often averse to taking all the necessary post-infection steps, but if measures aren’t taken the attackers are likely to return.”&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iv7ef"&gt;
&lt;p&gt;&lt;span&gt;Updating an insecure plugin is an essential step. But even if your website seems fine, post-incident steps are necessary, too. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Start by visiting your website. Go through as many pages as you can (this includes the page source code where possible) seeing if you spot any differences. Malware can take lots of forms, including SEO spam, redirects, defacing, code comments, or even the white screen of death. They’re not always obvious, but some you can spot on your own.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Next, do a security scan. Most &lt;/span&gt;&lt;a href="https://webdesign.tutsplus.com/best-5-security-plugins-for-wordpress--cms-93712a"&gt;&lt;span&gt;WordPress security plugins&lt;/span&gt;&lt;/a&gt;&lt;span&gt; have them. Not only can they tell you if malware is detected, but they often have a log containing recent file changes. If anything there looks suspicious, dig into it. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also, review your list of administrative users. Any that weren’t there before the incident or that you don’t recognize should be followed up on or deleted. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You’ll want to remove unauthorized user access as well as to delete any malicious code and content injected into your site. If you’re not able to do that easily enough, consider rolling back your website to before the security breach date. You can do this with the help of a &lt;/span&gt;&lt;a href="https://webdesign.tutsplus.com/best-backup-plugins-for-wordpress--cms-39581a"&gt;&lt;span&gt;WordPress backup plugin&lt;/span&gt;&lt;/a&gt;&lt;span&gt; or with any backups saved by your web hosting service. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i1je3"&gt;&lt;h3 id="toc-zlfz-step-5-create-a-stronger-plugin-management-process"&gt;&lt;span&gt;Step 5: Create a stronger plugin management process&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="icx8v"&gt;
&lt;p&gt;&lt;span&gt;To reduce the chances of another vulnerable plugin threatening your site or wreaking havoc on your workload, put a plugin auditing and management system into place. Here are some things to include: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Use a WordPress security plugin to fortify your site from within.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Take advantage of your web host’s security features, including security scanners.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Only install trusted, well-rated, and regularly maintained plugins.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Automate updates for WordPress plugins you know you can trust.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Log into your site and check on available updates every few days (at least).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Back up your website before every major update.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Audit your plugin list every three to six months.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Delete unused plugins along with any data they stored on your server.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Watch for outdated or abandoned plugin warnings and find suitable replacements ASAP.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;It’s also a good idea to subscribe to at least one WordPress security blog, like &lt;/span&gt;&lt;a href="https://blog.sucuri.net/"&gt;&lt;span&gt;Sucuri&lt;/span&gt;&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href="https://www.wordfence.com/blog/"&gt;&lt;span&gt;Wordfence&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. Also, WordPress state-of-security reports (like the ones mentioned earlier in this post) are important reads. This way, you’ll be aware of common threats, know when one of your plugins has been hacked, and know which plugins to avoid as you look for new ones to try.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i7t4a"&gt;&lt;h2 id="toc-3ap7-conclusion"&gt;&lt;span&gt;Conclusion&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="in55g"&gt;
&lt;p&gt;&lt;span&gt;Knowing how vulnerable WordPress plugins can be to attack, there are certain steps you can take to ensure your website and end users aren’t seriously impacted if one of the plugins you use gets exploited. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In addition to being more mindful about which plugins you install and keeping them updated, it’s a good idea to make security a priority in general when working with WordPress. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For reference, while WordPress plugins are responsible for 97% of &lt;/span&gt;&lt;em&gt;&lt;span&gt;software&lt;/span&gt;&lt;/em&gt;&lt;span&gt;-based vulnerabilities, &lt;/span&gt;&lt;a href="https://sucuri.net/reports/2022-hacked-website-report/"&gt;&lt;span&gt;Sucuri&lt;/span&gt;&lt;/a&gt;&lt;span&gt; found that only 36% of the compromised websites they discovered in 2022 had a vulnerable theme or plugin installed. So, securing your site from as many angles as possible is a must.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here’s some further reading with best practices to help you keep your WordPress website secure:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iuc69"&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/navigating-wordpress-security-essential-strategies-for-a-safe-site--cms-108243"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/posts/108243/preview_image/preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/posts/108243/preview_image/preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/posts/108243/preview_image/preview.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/posts/108243/preview_image/preview.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1809/posts/108243/preview_image/preview.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1809/posts/108243/preview_image/preview.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Navigating WordPress Security: Essential Strategies for a Safe Site&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Daniel Strongin&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;02 Jan 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://code.tutsplus.com/tutorials/understanding-hash-functions-and-keeping-passwords-safe--net-17577"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/769/posts/13976/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Understanding Hash Functions and Keeping Passwords Safe&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;&lt;img class="roundup-block__author-image" src="//www.gravatar.com/avatar/6c1d4fe10f721b1c40a1fa205be25796?s=200&amp;amp;d=https%3A%2F%2Fassets.tutsplus.com%2Fimages%2Fhub%2Favatar_default.png&amp;amp;r=PG" alt="" loading="lazy"&gt;&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Burak Guzel&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;29 May 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/articles/8-common-wordpress-issues-and-vulnerabilities-and-how-to-fix-them--cms-93249"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/769/posts/93249/preview_image/lock_as_symbol_for_privacy_and_general_data_protec_2022_08_01_04_29_33_utc.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;8 Common WordPress Issues and Vulnerabilities (And How to Fix Them)&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2776/profiles/21300/profileImage/otherone.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2776/profiles/21300/profileImage/otherone.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2776/profiles/21300/profileImage/otherone.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2776/profiles/21300/profileImage/otherone.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2776/profiles/21300/profileImage/otherone.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2776/profiles/21300/profileImage/otherone.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Kingsley Ubah&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;19 Jan 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://code.tutsplus.com/tutorials/free-and-reliable-ssl-for-everyone--cms-39098"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/321/posts/39098/preview_image/logo.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/321/posts/39098/preview_image/logo.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/321/posts/39098/preview_image/logo.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/321/posts/39098/preview_image/logo.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/321/posts/39098/preview_image/logo.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/321/posts/39098/preview_image/logo.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Free and Reliable SSL for Everyone With ZeroSSL&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/profiles/857/profileImage/jeremy3.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/profiles/857/profileImage/jeremy3.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/769/profiles/857/profileImage/jeremy3.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/769/profiles/857/profileImage/jeremy3.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/769/profiles/857/profileImage/jeremy3.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/769/profiles/857/profileImage/jeremy3.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jeremy McPeak&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;02 Apr 2022&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/how-to-add-two-factor-authentication-to-wordpress--cms-39061"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/369/posts/39061/preview_image/two-factor-security-guard.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Add Two-Factor Authentication to WordPress&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/369/profiles/1609/profileImage/jessica%20thornsby.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Jessica Thornsby&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;29 Nov 2021&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://business.tutsplus.com/articles/best-password-manager-apps--cms-107726"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2777/posts/107726/preview_image/preview_password_copy.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;10 Best Password Manager Apps for 2025&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/1809/profiles/20319/profileImage/Headshot_SoundShockAudio_Daniel_Strongin.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;Daniel Strongin&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;04 Sep 2023&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/109077/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109077/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109077/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/109077/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>How to build horizontal marquee effects with GSAP</title><link>https://webdesign.tutsplus.com/how-to-build-horizontal-marquee-effects-with-gsap--cms-108794t</link><author>noemail@noemail.org (George Martsoukos)</author><pubDate>Tue, 18 Jun 2024 17:48:29 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-108794</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="id5j"&gt;
&lt;h2 id="toc-yvwr-new-to-gsap"&gt;New to GSAP?&lt;/h2&gt;
&lt;p&gt;First things first: did you get here 'cause you're curious about GSAP, but don't know exactly what it is? Let's give it a quick overview.&lt;/p&gt;
&lt;h3 id="toc-gw81-so-what-is-gsap"&gt;So, what is GSAP?&lt;/h3&gt;
&lt;p&gt;GSAP is a JavaScript animation library from GreenSock. You can create high-quality &lt;a href="https://webdesign.tutsplus.com/new-course-practical-animation-with-gsap--cms-26882a" target="_self"&gt;GSAP animations&lt;/a&gt;. These will perform well in every browser you're using.&lt;/p&gt;
&lt;p&gt;There are also &lt;a href="https://webdesign.tutsplus.com/new-course-advanced-animation-with-gsap-plugins--cms-26346a" target="_self"&gt;GSAP plugins&lt;/a&gt; that will help you achieve more, by expanding the GSAP library capabilities.&lt;/p&gt;
&lt;h3 id="toc-k2nt-previous-gsap-tutorials"&gt;Previous GSAP tutorials&lt;/h3&gt;
&lt;p&gt;In the past, I’ve shown you how to use &lt;a href="https://gsap.com/" target="_blank" rel="noopener"&gt;GSAP&lt;/a&gt; to build different effects.&lt;span&gt; From cursor hovers and a page loading GSAP animation to a draggable image gallery.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iysi"&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/cursor-hover-effect-with-javascript-mouse-events-and-gsap--cms-38899"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/38899/preview_image/bee-cursor2.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Build a Cursor Hover Effect With JavaScript Mouse Events and GSAP&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;08 Nov 2021&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/simple-page-loading-animation-with-gsap--cms-36814"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/36814/preview_image/homepage.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/36814/preview_image/homepage.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/36814/preview_image/homepage.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/36814/preview_image/homepage.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/36814/preview_image/homepage.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/36814/preview_image/homepage.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Build a JavaScript Page Loading Animation With GSAP&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;22 Apr 2021&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/draggable-javascript-image-gallery-with-gsap--cms-37591"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/37591/preview_image/draggable-gallery.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Build a Draggable Image Gallery and a Custom Lightbox With GSAP&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;16 Sep 2021&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/create-horizontal-scroll-animations-with-gsap-scrolltrigger--cms-108881"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/posts/108881/preview_image/md.jpg" alt="" loading="lazy" width="820px" height="574px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1600/uploads/users/780/posts/108881/preview_image/md.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/780/posts/108881/preview_image/md.jpg" alt="" loading="lazy" width="650px" height="456px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/780/posts/108881/preview_image/md.jpg 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/posts/108881/preview_image/md.jpg" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/posts/108881/preview_image/md.jpg 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;Create horizontal scroll animations with GSAP &amp;amp; ScrollTrigger&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;18 Sep 2024&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="toc-iq9u-the-process"&gt;The process&lt;/h2&gt;
&lt;p&gt;You can certainly create a marquee effect in CSS only by animating the &lt;code&gt;transform&lt;/code&gt; property. However, in this tutorial, we’ll discuss how to build them using GSAP. This way, we can take advantage of all the extra goodies of this library.&lt;/p&gt;
&lt;p&gt;In its simplest form, all we need to create marquees with GSAP are the &lt;code&gt;&lt;a href="https://gsap.com/docs/v3/HelperFunctions/helpers/seamlessLoop/" target="_blank" rel="noopener"&gt;horizontalLoop()&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href="https://codepen.io/GreenSock/pen/MWXPgKm?editors=0010" target="_blank" rel="noopener"&gt;verticalLoop()&lt;/a&gt;&lt;/code&gt; helper functions.&lt;/p&gt;
&lt;p&gt;In our case, we’ll only focus on horizontal GSAP marquee animations as they’re more popular.&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-warn"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;It’s worth noting that a horizontal marquee brings many &lt;a href="https://accessibilityinsights.io/info-examples/web/marquee/" target="_blank" rel="noopener"&gt;accessibility challenges&lt;/a&gt;. Moving text can be distracting and difficult to read. Consider carefully the kind of content you wish to display in this way!&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="toc-5c0b-basic-marquee"&gt;Basic horizontal marquee&lt;/h2&gt;
&lt;p&gt;In the most straightforward implementation, consider the following demo. We'll infinitely animate some logos:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/ZENogEM?default-tab=result" width="850" height="650" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;The required JavaScript marquee code is as follows:&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table javascript"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;window&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;addEventListener&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;load&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;function &lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0;background-color: #151515"&gt;horizontalLoop&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;.marquee-item&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #6a9fb5"&gt;repeat&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #6a9fb5"&gt;paddingRight&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;40&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #6a9fb5"&gt;speed&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;0.5&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;  &lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Let’s pay attention to the &lt;code&gt;paddingRight&lt;/code&gt; configuration property. We use a value that matches the gap (40px) between the GSAP marquee items.&lt;/p&gt;
&lt;p&gt;We do this to prevent the overlapping between the first and last elements. Also, to give them a space that matches the other elements. That said, if you put &lt;code&gt;paddingRight: 0&lt;/code&gt;, you’ll end up with this result:&lt;/p&gt;
&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/780/posts/108794/image-upload/paddingright.jpg" alt="The layout if we put don't put paddingRight" loading="lazy" width="870px" height="163px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/780/posts/108794/image-upload/paddingright.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/780/posts/108794/image-upload/paddingright.jpg" alt="The layout if we put don't put paddingRight" loading="lazy" width="650px" height="126px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/780/posts/108794/image-upload/paddingright.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/posts/108794/image-upload/paddingright.jpg" alt="The layout if we put don't put paddingRight" loading="lazy" width="380px" height="81px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/posts/108794/image-upload/paddingright.jpg 2x"&gt;&lt;/figure&gt;
&lt;h2 id="toc-5c0b-basic-marquee"&gt;Horizontal marquee with stops&lt;/h2&gt;
&lt;p&gt;In this case, each marquee item contains the same text and a Lottie animation. To avoid bloating our HTML, we generate the horizontal marquee items using JavaScript. In a real-world scenario, we can also put ARIA attributes to improve the accessibility.&lt;/p&gt;
&lt;ul class="roundup-block__contents posts--half-width roundup-block--list"&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/add-adobe-after-effects-animations-to-a-web-page--cms-35093"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/35093/preview_image/lottie-thumb.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/35093/preview_image/lottie-thumb.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/35093/preview_image/lottie-thumb.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/35093/preview_image/lottie-thumb.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/35093/preview_image/lottie-thumb.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/35093/preview_image/lottie-thumb.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Add Adobe After Effects Animations to a Web Page&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;03 Dec 2020&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="roundup-block__content"&gt;&lt;a class="roundup-block__content-link" href="https://webdesign.tutsplus.com/tutorials/coming-soon-page-with-lottie-animations--cms-36914"&gt;&lt;div class="roundup-block__content-container"&gt;
&lt;div class="roundup-block__preview"&gt;
&lt;img class="roundup-block__preview-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/36914/preview_image/coming-soon.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/36914/preview_image/coming-soon.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/30/posts/36914/preview_image/coming-soon.png" alt="" loading="lazy" width="420px" height="297px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/30/posts/36914/preview_image/coming-soon.png 2x"&gt;&lt;img class="roundup-block__preview-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/30/posts/36914/preview_image/coming-soon.png" alt="" loading="lazy" width="380px" height="269px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/30/posts/36914/preview_image/coming-soon.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__content-meta"&gt;
&lt;div class="roundup-block__content-title"&gt;How to Build a Coming Soon Page With Lottie Animations&lt;/div&gt;
&lt;div class="roundup-block__author-info"&gt;
&lt;div class="roundup-block__author-profile-image"&gt;
&lt;img class="roundup-block__author-image resized-image resized-image-desktop" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-tablet" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=400/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="420px" height="420px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=800/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;&lt;img class="roundup-block__author-image resized-image resized-image-mobile" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png" alt="" loading="lazy" width="380px" height="380px" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/780/profiles/19309/profileImage/george-web-avatar-400x400.png 2x"&gt;
&lt;/div&gt;
&lt;div class="roundup-block__author-meta"&gt;
&lt;div class="roundup-block__author-name"&gt;George Martsoukos&lt;/div&gt;
&lt;div class="roundup-block__published-date"&gt;19 May 2021&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Each time we hover over an item, the HTML marquee effect pauses. To achieve this, we use the &lt;a href="https://gsap.com/docs/v3/GSAP/Timeline/pause()" target="_blank" rel="noopener"&gt;&lt;code&gt;pause()&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://gsap.com/docs/v3/GSAP/Timeline/play()" target="_blank" rel="noopener"&gt;&lt;code&gt;play()&lt;/code&gt;&lt;/a&gt; methods that are available to a GSAP timeline. Scroll down to the footer in this demo to see the effect:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/gOJzVag?default-tab=result" width="850" height="650" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id="toc-6afp-horizontal-marquees-with-reversed-directions"&gt;Horizontal marquees with reversed directions&lt;/h2&gt;
&lt;p&gt;Let’s now work on a more complicated example. Consider the following demo. In this one, we have two horizontal marquee effects that run in opposite directions:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/LYomwGY?default-tab=result" width="850" height="750" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Their direction is determined by the value of the &lt;code&gt;data-reversed&lt;/code&gt; HTML attribute.&lt;/p&gt;
&lt;p&gt;So, what makes this demo interesting? We use GSAP’s &lt;code&gt;&lt;a href="https://gsap.com/docs/v3/GSAP/gsap.matchMedia()/" target="_blank" rel="noopener"&gt;matchmedia()&lt;/a&gt;&lt;/code&gt; method to apply different &lt;code&gt;paddingRight&lt;/code&gt; and &lt;code&gt;speed&lt;/code&gt; property values depending on the screen size. Be sure to test it by resizing your browser window.&lt;/p&gt;
&lt;h2 id="toc-vwuq-horizontal-marquees-when-they-are-visible"&gt;Play horizontal marquees when in view&lt;/h2&gt;
&lt;p&gt;In the following demo, we put GSAP’s &lt;a href="https://gsap.com/docs/v3/Plugins/ScrollTrigger/?page=1" target="_blank" rel="noopener"&gt;ScrollTrigger&lt;/a&gt; plugin into play. We play the marquees only when they are in view. This way we do our best to ensure that the site visitors will see all our animated items. &lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/xxNjvZv?default-tab=result" width="850" height="650" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Again, use your browser inspector to test how the GSAP animations stop when the related html marquee exits the viewport.&lt;/p&gt;
&lt;h2 id="toc-dnb5-horizontal-marquee-like-slider"&gt;Horizontal marquee like slider&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;In this example, our marquee behaves like a slider. It autoplays, and there are arrows for navigating back and forth.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Additionally, we use GSAP’s &lt;/span&gt;&lt;a class="editor-rtfLink" href="https://gsap.com/docs/v3/Plugins/Draggable/" target="_blank" rel="noopener"&gt;&lt;span&gt;Draggable&lt;/span&gt;&lt;/a&gt;&lt;span&gt; plugin to enable drag functionality. This happens by passing the &lt;code&gt;draggable: true&lt;/code&gt;&lt;/span&gt;&lt;span&gt; configuration property to the &lt;code&gt;horizontalLoop()&lt;/code&gt; function.  &lt;/span&gt;&lt;/p&gt;
&lt;div class="callout-block"&gt;
&lt;span class="callout-icon callout-info"&gt;&lt;/span&gt;
&lt;div class="callout-message"&gt;&lt;span&gt;If you’re a &lt;a href="https://gsap.com/pricing/#features-table" target="_blank" rel="noopener"&gt;GSAP Premium or Business member&lt;/a&gt;, you can make the dragging smoother using the &lt;a href="https://gsap.com/docs/v3/Plugins/InertiaPlugin/" target="_blank" rel="noopener"&gt;Inertia&lt;/a&gt; plugin.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span&gt;As a bonus, the HTML marquee stops each time we hover over an image. At that moment, its corresponding overlay appears with a slide GSAP animation. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://codepen.io/tutsplus/embed/xxNjvVv?default-tab=result" width="850" height="750" frameborder="no" scrolling="no" allowfullscreen="true" loading="lazy"&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Once again, resize your browser window to test how the layout changes.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="toc-jk7t-conclusion"&gt;There you go, GSAP guru!&lt;/h2&gt;
&lt;p&gt;Hopefully, you enjoyed the GSAP marquees we built. Now you have enough knowledge and inspiration to start building your own.&lt;/p&gt;
&lt;p&gt;On the other hand, if you'd like to try &lt;a href="https://elements.envato.com/web-templates" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;professionally designed web templates&lt;/a&gt; to save you some time, try out &lt;a href="https://elements.envato.com/" target="_self" data-action="click-&amp;gt;ga-analytics#sendElementsClickEvent"&gt;an Envato subscription&lt;/a&gt;. It gives you access to millions of high-quality creative assets that you can use to improve your site.&lt;/p&gt;
&lt;p&gt;Last but not least, I have added all the demos of this tutorial to a &lt;a href="https://codepen.io/collection/wabyqe" target="_blank" rel="noopener"&gt;CodePen Collection&lt;/a&gt;. Be sure to check it out and give it some love!&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As always, thanks a lot for reading!&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/108794/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108794/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108794/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108794/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>Send email in Python with the API method: A step-by-step guide</title><link>https://code.tutsplus.com/python-send-email-api--cms-108845t</link><author>noemail@noemail.org (Veljko Ristić)</author><pubDate>Fri, 6 Sep 2024 08:33:24 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-108845</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i482"&gt;
&lt;p&gt;&lt;span&gt;If you want to send emails in Python, use a reliable and secure email API solution. In this article, you’ll learn the step-by-step process of sending emails in Python using the API method. &lt;/span&gt;&lt;/p&gt;
&lt;h2 id="toc-kkzk-setting-up-email-api"&gt;&lt;span&gt;Setting up the email API &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;To streamline email sending in Python, you can use a transactional email service such as Mailtrap, Gmail API, Sendgrid, etc.  And, an API also allows you to automate much of email sending &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Now, I’ll show you how to send different types of emails (plain text, email with attachments, HTML emails) and email multiple recipients in Python using an &lt;/span&gt;&lt;a href="https://mailtrap.io/email-api/"&gt;&lt;span&gt;email API&lt;/span&gt;&lt;/a&gt;&lt;span&gt; Before that, let’s understand how to set up an email API:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose an email API&lt;/strong&gt;&lt;span&gt;: To get started, choose an email API according to your preferences. Make sure it offers Python SDKs to send automated emails (for example Mailtrap’s Python SDK). &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign up&lt;/strong&gt;&lt;span&gt;: Sign up to the chosen email API provider. &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect and verify your domain: &lt;/strong&gt;&lt;span&gt;Next, connect and verify your domain with the email API service provider you’ve chosen. If not verified, you will be able to send emails to the account owner’s email address only. &lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;This ensures recipients only receive genuine emails, avoiding spam. Based on the service provider, complete domain authentication. &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install email API library&lt;/strong&gt;&lt;span&gt;: Let’s call our email API - “MyEmailAPI”. Ensure the Python app is installed in your system and then install MyEmailAPI’s Python SDK using the below command:&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;span&gt;            pip install myemailapi&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="toc-ht0f-send-a-plain-text-email"&gt;&lt;span&gt;Send a plain text email &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Create your mail object and fill in the variables&lt;/strong&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;myemailapi&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Create a mail object
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsender&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;testmail&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;reciever&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt; &lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsubject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtext&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;This&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;is&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;plain&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;Now, create the email client using your API tokens by:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Opening your email API account &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Finding API tokens and copying the credentials &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Send your message&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;# Define email API client and send email&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;MyEmailAPIClient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtoken&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;api&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;key&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;send&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;Here’s the complete code snippet:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;from&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;myemailapi&lt;/span&gt; &lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;EAddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;MyEmailAPIClient&lt;/span&gt;     
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define sender address and name
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsender&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;testmail&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define receivers
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt; 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Email subject
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsubject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #949494"&gt;# Define plain text
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtext&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hi&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;nThis&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;is&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;a&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;plain&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define MyEmailAPIClient using your API keys 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;MyEmailAPIClient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtoken&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;api&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;key&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Send your plain-text email
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;send&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Congrats&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;You&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ve&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;successfully&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sent&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;your&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;first&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;plain&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;in&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Python&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-jbea-send-an-html-email"&gt;&lt;span&gt;Send an HTML email &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Follow the instructions to &lt;/span&gt;&lt;a href="https://mailtrap.io/blog/python-send-html-email/"&gt;&lt;span&gt;send an HTML email&lt;/span&gt;&lt;/a&gt;&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Specify the HTML Parameter: &lt;/strong&gt;&lt;span&gt;Specify the ‘html’ parameter for the object - “Mail”. This is where you’ll keep the HTML content you create. Email clients that can display HTML will render this email section.  &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback Text Content: &lt;/strong&gt;&lt;span&gt;If an email client can’t render HTML content, the plain text you’ll define inside the email will be used as the fallback. This is also useful for end-users preferring pure text-based emails. &lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Here’s the full code snippet for sending a Python email with HTML content:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;from&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;myemailapi&lt;/span&gt; &lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;EAddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;MyEmailAPIClient&lt;/span&gt;     
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;                         &lt;span style="color: #949494"&gt;# Create the Mail object for the HTML email
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define sender address and name
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsender&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;testmail&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define receivers
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt; 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define email subject
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsubject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;HTML&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #949494"&gt;# Define text
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtext&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hi&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;nEmail&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;client&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;can&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;t&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;render&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;HTML&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;?&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Use&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;this&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;fallback&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0;background-color: #151515"&gt;html_text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“””&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;html&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;head&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                                 &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;title&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Title&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;title&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;head&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                                 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;body&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                                &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;h1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hi&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;there&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;h1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                                 &lt;span style="color: #d0d0d0"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;p&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;This&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;is&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;HTML&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;content&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sent&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;using&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;MyEmailAPI&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;p&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;body&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #d0d0d0"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;html&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;            &lt;span style="color: #151515;background-color: #ac4142"&gt;“””&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define MyEmailAPIClient using your API keys 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;MyEmailAPIClient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtoken&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;api&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;key&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Send your HTML email
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;send&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Congrats&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;You&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ve&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;successfully&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sent&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;your&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;first&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;HTML&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-s58j-send-email-to-multiple-recipients"&gt;&lt;span&gt;Send an email to multiple recipients &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Follow the below instructions:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Recipients Configuration: &lt;/strong&gt;&lt;span&gt;I’ll change the recipient section to set up the email for more recipients. Instead of using only one ‘to’ address, we’ll use multiple addresses. &lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setting the ‘To’ field: &lt;/strong&gt;&lt;span&gt;In the below code, we’ll define two recipient addresses for the ‘To’ field- &lt;/span&gt;&lt;a href="mailto:receiver1@example.com"&gt;&lt;span&gt;receiver1@example.com&lt;/span&gt;&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href="mailto:receiver2@example.com"&gt;&lt;span&gt;receiver2@example.com&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. In addition, we’ll define names for each recipient - &lt;/span&gt;&lt;em&gt;&lt;span&gt;Test Receiver 1 and Test Receiver 2. &lt;/span&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Here’s the complete code for sending an email to multiple recipients in Python:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;from&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;myemailapi&lt;/span&gt; &lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;EAddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;MyEmailAPIClient&lt;/span&gt;     
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Create the Mail object for multiple recipients 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;  
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #949494"&gt;# Define sender address and name
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsender&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;testmail&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #949494"&gt;# Define receivers
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                    &lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver1&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt; &lt;span style="color: #90a959"&gt;1&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                    &lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver2&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt; &lt;span style="color: #90a959"&gt;2&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt; 
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #d0d0d0"&gt;],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define email subject
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsubject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;This&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;is&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;subject&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define text
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtext&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hello&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;nThis&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;has&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;multiple&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;recipients&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt; &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define MyEmailAPIClient using your API keys 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;MyEmailAPIClient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtoken&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;api&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;key&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Send email
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;send&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Congrats&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;You&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ve&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;successfully&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sent&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;emails&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;multiple&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;recipients&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;in&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Python&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-nsxt-send-email-with-attachments"&gt;&lt;span&gt;Send an email with attachments &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Follow the below instructions: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Specify the file path: &lt;/strong&gt;&lt;span&gt;First, specify the file path for the attachments. The code will read the file content as bytes to ensure each attachment has proper encoding. This way, attachments are transmitted securely over the network. &lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encode in Base64: &lt;/strong&gt;&lt;span&gt;Ensure to encode the file content in base64 to protect it from malicious actors as email protocols lack binary-safe features. When you encode your file content, the binary data will be converted into text for secure transmission. Use the following method to encode the file content:&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;span&gt;            base64.b64encode&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create the file Attachment: &lt;/strong&gt;&lt;span&gt;Create the Attachment class instance with the following parameters:&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;&lt;span&gt;disposition_new: &lt;/span&gt;&lt;/em&gt;&lt;span&gt;To indicate the file as an attachment, the ‘disposition_new’ is set to ‘Disposition.ATTACHMENT’. &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;span&gt;content_new: &lt;/span&gt;&lt;/em&gt;&lt;span&gt;It represents the file content encoded in base64&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;mimetype_new: The parameter signals email clients about the file type.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;Here’s the complete code:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;from&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;myemailapi&lt;/span&gt; &lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;EAddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;MyEmailAPIClient&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Attachment&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Disposition&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;base64&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;from&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;pathlib&lt;/span&gt; &lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Path&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define files to attach 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;filepath&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Path&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;thisis&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;your&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;filepath&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;abc&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;pdf&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;           &lt;span style="color: #949494"&gt;# Insert your file’s name 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;filecontent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;filepath&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;read_bytes&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;()&lt;/span&gt;   
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Base64 is used to encode the content of the file 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;encodedcontent&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;base64&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;b64encode&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;filecontent&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Specify the email object with an attachment 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;Mail&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #949494"&gt;# Define sender address and name
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsender&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;testmail&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;),&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #949494"&gt;# Define receiver
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #d0d0d0;background-color: #151515"&gt;to&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;&lt;span style="color: #f4bf75"&gt;Address&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailaddress&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;              &lt;span style="color: #949494"&gt;# Define email subject
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newsubject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Attachment&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;inside&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define text
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtext&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hello&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;nThis&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;has&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;an&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;important&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;attachment&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #949494"&gt;# Define email attachment
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;             &lt;span style="color: #d0d0d0;background-color: #151515"&gt;attachments_new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;[&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                 &lt;span style="color: #f4bf75"&gt;Attachment&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                       &lt;span style="color: #d0d0d0;background-color: #151515"&gt;content_new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;encodedcontent&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;                        
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                       &lt;span style="color: #d0d0d0;background-color: #151515"&gt;filename_new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;filepath&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;                      &lt;span style="color: #949494"&gt;# The file name 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;disposition_new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Disposition&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ATTACHMENT&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;      
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;                      &lt;span style="color: #d0d0d0;background-color: #151515"&gt;mimetype_new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;application&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;pdf&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;                       &lt;span style="color: #949494"&gt;# The file type used here is PDF
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;               &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;         &lt;span style="color: #d0d0d0"&gt;],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;   &lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-33" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;33&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define MyEmailAPIClient using your API keys 
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-34" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;34&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #f4bf75"&gt;MyEmailAPIClient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;newtoken&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;new&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;api&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;-&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;key&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-35" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;35&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-36" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;36&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Send email
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-37" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;37&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;emailclient&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;send&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;mailobj&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-38" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;38&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-39" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;39&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Congrats&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;!&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;You&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;ve&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;successfully&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sent&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;emails&lt;/span&gt; &lt;span style="color: #aa759f"&gt;with&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;an&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;attachment&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h2 id="toc-g7gb-test-email-before-sending"&gt;&lt;span&gt;Test the email before sending &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Before you send bulk emails using an email API service, make sure you test it beforehand on a test server. This is similar to testing a new application or rolling out a new feature in your app. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;An email testing API will work like a third-party web server. You’ll get a secure staging environment where you can handle your email traffic internally and check if the email sending functionality is working fine. You can also detect and resolve bugs and errors before sending your emails to targeted recipients. In addition, you can preview and evaluate your email content across different devices and email clients in order to optimize your message. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a result, you’ll be able to:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Send emails to the right recipients and enhance email deliverability &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Avoid spamming recipients with too many test emails&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Prevent sending emails with broken links, especially in transactional emails like subscription confirmation emails&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Safeguard your domain reputation by preventing domain blacklisting or getting higher spam scores &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Thus, before you send your emails, send them to a designated email address using an email testing API. View the email content, check links, fix issues, and then only send your emails to the target audience. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In the below section, I’ll show you how to test an email using a hypothetical email testing API - ‘EtestAPI’. Here’s how to get started step-by-step:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;Connect to the EtestAPI client &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Define email content - subject, text, attachments (if any), sender, and receiver(s)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Generate a POST request to EtestAPI using your data and API token.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;Here’s the full code to test your email using EtestAPI:&lt;/span&gt;&lt;/p&gt;
&lt;div class="rouge-syntax-highlight"&gt;&lt;table class="rouge-line-table python"&gt;&lt;tbody&gt;
&lt;tr id="line-1" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Import ‘json’ and ‘requests’ libraries for handling JSON data and HTTP requests
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-2" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;2&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;requests&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-3" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;3&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;import&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;json&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-4" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;4&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-5" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;5&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #949494"&gt;# Define a function ‘test_my_email’ with parameters for email testing
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-6" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;6&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;&lt;span style="color: #aa759f"&gt;def&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;test_my_email&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;etestapi_token1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;inbox_id1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;sender_email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;recipient_email1&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;subject&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;):&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-7" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;7&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #aa759f"&gt;f&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;https://api.etestapi.com/v1/inboxes/&lt;/span&gt;&lt;span style="color: #8f5536"&gt;{&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;inbox_id1&lt;/span&gt;&lt;span style="color: #8f5536"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;/messages&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-8" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;8&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;headers&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-9" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;9&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Authorization&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #aa759f"&gt;f&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Bearer &lt;/span&gt;&lt;span style="color: #8f5536"&gt;{&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;etestapi_token1&lt;/span&gt;&lt;span style="color: #8f5536"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-10" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;10&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Content-Type&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;application/json&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-11" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;11&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-12" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;12&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-13" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;13&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;{&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-14" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;14&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;from&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;[{&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;sender_email1&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;sender&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@domain.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Sender&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-15" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;15&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;to&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;[{&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;recipient_email1&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;receiver&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;@example.com&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;name&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Receiver&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;}],&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-16" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;16&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;subject&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Email&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;Test&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-17" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;17&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;text&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt; &lt;span style="color: #151515;background-color: #ac4142"&gt;“&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;Hi&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;/&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;nLet&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;’&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;s&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;perform&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;email&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;testing&lt;/span&gt;&lt;span style="color: #151515;background-color: #ac4142"&gt;”&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-18" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;18&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-19" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;19&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-20" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;20&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-21" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;21&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #949494"&gt;# Convert data to a JSON string
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-22" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;22&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;json_data&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;json&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;dumps&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-23" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;23&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-24" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;24&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #949494"&gt;# make a POST request using ‘requests.post’ to send your email to EtestAPI and get the response in JSON
&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-25" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;25&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;requests&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;post&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;url&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;headers&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;headers&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;,&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;json_data&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-26" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;26&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-27" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;27&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;if&lt;/span&gt; &lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;status_code&lt;/span&gt; &lt;span style="color: #d0d0d0"&gt;==&lt;/span&gt; &lt;span style="color: #90a959"&gt;200&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-28" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;28&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Congrats! Your email test is successful!&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-29" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;29&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;The test email is sent to EtestAPI inbox.&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-30" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;30&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;    &lt;span style="color: #aa759f"&gt;else&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;:&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-31" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;31&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #aa759f"&gt;f&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #90a959"&gt;Test email failed: &lt;/span&gt;&lt;span style="color: #8f5536"&gt;{&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;status_code&lt;/span&gt;&lt;span style="color: #8f5536"&gt;}&lt;/span&gt;&lt;span style="color: #90a959"&gt;"&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="line-32" class="lineno"&gt;
&lt;td class="rouge-gutter gl" style="-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;user-select: none;"&gt;&lt;pre&gt;32&lt;/pre&gt;&lt;/td&gt;
&lt;td class="rouge-code"&gt;&lt;pre&gt;        &lt;span style="color: #d0d0d0;background-color: #151515"&gt;print&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;(&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;response&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;.&lt;/span&gt;&lt;span style="color: #d0d0d0;background-color: #151515"&gt;text&lt;/span&gt;&lt;span style="color: #d0d0d0"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Explanation&lt;/strong&gt;&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;‘url’&lt;/strong&gt;&lt;span&gt;: API endpoint URL is constructed &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;‘headers’&lt;/strong&gt;&lt;span&gt;: Headers are set up, defining the type of content and API token&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;response.status.code&lt;/strong&gt;&lt;span&gt;: It helps you check whether your email was successfully sent to the email test API.&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="toc-pdig-summing-up"&gt;&lt;span&gt;Summing up &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Using a reliable and secure email API solution allows you to send emails faster, without hassles. If you run a business, an email API will help you automate the process. Thus, you can send highly personalized and bulk emails quickly with a few lines of code as we’ve mentioned above. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We also recommend you refer to the Python documentation and the email API solution you prefer. Keep experimenting with new code and exploring email-sending functionalities.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/108845/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108845/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108845/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/108845/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item><item><title>How to clear the WordPress cache</title><link>https://webdesign.tutsplus.com/how-to-clear-the-wordpress-cache--cms-34439t</link><author>noemail@noemail.org (Suzanne Scacca)</author><pubDate>Fri, 27 Dec 2019 17:05:21 GMT</pubDate><guid isPermaLink="false">tag:code.tutsplus.com,2005:PostPresenter/cms-34439</guid><description>&lt;style&gt;* { box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}&lt;/style&gt;&lt;div data-content-block-type="SummaryText" class="content-block content-block-summarytext summary-text" id="i6tfl"&gt;&lt;p&gt;&lt;span&gt;In this post, we’re going to briefly cover what the WordPress cache is along with 5 methods you can use (and when to use each) to clear your cache.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iu3n"&gt;
&lt;p&gt;&lt;span&gt;Caching is an integral process for the performance of a website. However, there are times when caching can cause problems for us. So knowing how to clear the WordPress cache, when to do it, and the different methods is just as important as understanding what caching does in the first place. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here are the 5 methods we’ll be covering:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="TableOfContents" class="content-block content-block-tableofcontents" id="i6xt"&gt;&lt;ul class="visual-toc-list toc-ordered-list visual-toc__regular-theme div-container" start="0"&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-eolg-method-1-clear-the-browser-cache"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;Method 1: Clear the Browser Cache&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-nuoi-method-2-clear-the-cache-with-a-wordpress-plugin"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;Method 2: Clear the Cache with a WordPress Plugin&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-4p9y-method-3-clear-the-cache-from-your-firewall"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;Method 3: Clear the Cache from Your Firewall&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-9a2z-method-4-clear-the-cache-from-your-web-hosting-account"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;Method 4: Clear the Cache from Your Web Hosting Account&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="toc-item-title"&gt;&lt;a href="#toc-aohl-method-5-clear-the-cache-using-your-cdn"&gt;&lt;span class="visual-toc__heading-title content-container"&gt;Method 5: Clear the Cache Using Your CDN&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iyqz"&gt;&lt;h2 id="toc-ayj6-what-is-caching"&gt;&lt;span&gt;What Is Caching? &lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iopv"&gt;
&lt;p&gt;&lt;span&gt;Caching refers to a process where information from a web page gets saved to a temporary storage location. When caching is enabled, the browser retrieves a copy of this saved data to quickly serve up the requested URL to the user’s screen.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This is important because, without caching enabled, visitors would have to wait for the web server to transmit all of the related HTTP requests (including text, media files, scripts, stylesheets, and more) to the browser. Web pages with dozens of assets and drawing on lots of resources would take far too long to load without the efficiency of caching.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;While this process may still need to happen upon their first visit, subsequent visits to the same pages should load significantly faster thanks to the cached content.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here’s a basic illustration of how a server handles HTTP requests from a browser without caching enabled:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg" alt="An illustration demonstrates how a browser receives HTTP requests without caching enabled" loading="lazy" width="870px" height="520px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg" alt="An illustration demonstrates how a browser receives HTTP requests without caching enabled" loading="lazy" width="650px" height="391px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg" alt="An illustration demonstrates how a browser receives HTTP requests without caching enabled" loading="lazy" width="380px" height="232px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_no_caching_illustration.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iyxq"&gt;
&lt;p&gt;&lt;span&gt;Each asset and script represents an individual HTTP request. So the more content on a page there is and the more stuff that’s happening in the background, the longer it’s going to take for the server to deliver it and the browser to display the page. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here’s a basic illustration of how it looks when caching is enabled: &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg" alt="An illustration that demonstrates how caching simplifies the transmission of a stored web page to the browser" loading="lazy" width="870px" height="520px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg" alt="An illustration that demonstrates how caching simplifies the transmission of a stored web page to the browser" loading="lazy" width="650px" height="391px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg" alt="An illustration that demonstrates how caching simplifies the transmission of a stored web page to the browser" loading="lazy" width="380px" height="232px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_caching_illustration.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ivzop"&gt;
&lt;p&gt;&lt;span&gt;It’s not always the case that every asset is stored in the cache (especially when it comes to dynamic content). Nor is it always the case that the browser is the resource with the cached copy of the web page. In some cases, it’s WordPress (and the web server) delivering a static HTML file to the browser. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regardless of where the cache lives, the process is greatly simplified and your web visitors reap the benefits.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i2dwc"&gt;&lt;h2 id="toc-s9qf-why-you-might-need-to-clear-the-wordpress-cache"&gt;&lt;span&gt;Why You Might Need to Clear the WordPress Cache&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ii6rc"&gt;
&lt;p&gt;&lt;span&gt;While caching is super helpful for speeding up resource-heavy web pages, it can sometimes cause issues for us. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For instance, let’s say you’ve made some edits to a web page. You open the preview from WordPress to see how it looks on the frontend of your site. However, nothing appears to have changed. This is likely because it’s stuck in the cache. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This problem can also occur within certain plugins. Slider Revolution, for instance, has its own live editing and preview modes. However, if the older version of the design you’re working on gets stuck in the plugin’s cache, the preview may appear outdated. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Caching is supposed to make the process of loading web pages in the browser more efficient. However, if the browser or your server don’t receive the message that the content has been updated, then you might end up seeing old data that’s stored in the cache. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i76ke"&gt;&lt;h2 id="toc-w4fl-how-to-clear-the-wordpress-cache"&gt;&lt;span&gt;How to Clear the WordPress Cache&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="igk4w"&gt;
&lt;p&gt;&lt;span&gt;So, the question becomes, how do you manage the cache in WordPress?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There are five methods you can use to clear the WordPress cache with a plugin and without a plugin. Let’s go through them one at a time along with the best use case for each. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iuv6c"&gt;&lt;h3 id="toc-eolg-method-1-clear-the-browser-cache"&gt;&lt;span&gt;Method 1: Clear the Browser Cache&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i1qbf"&gt;
&lt;p&gt;&lt;span&gt;Let’s say you type your domain name into the browser and then nothing appears except for a vague &lt;/span&gt;&lt;a href="https://webdesign.tutsplus.com/how-to-fix-a-500-error-on-your-wordpress-site--cms-37732t"&gt;&lt;span&gt;500 internal server error&lt;/span&gt;&lt;/a&gt;&lt;span&gt; message. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The first thing you’ll probably try is refreshing your screen. If that doesn’t work, then manually clearing your browser cache would be a good idea. This is something your hosting support will recommend as well if you still can’t access the site after troubleshooting the issue on the backend.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To clear your browser cache, open the &lt;/span&gt;&lt;strong&gt;Settings &lt;/strong&gt;&lt;span&gt;panel. In most browsers, it’s tucked away under a hamburger menu or kebab menu icon in the far-right corner. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here’s where it is in Brave:&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg" alt="To clear the browser cache, open up the Settings from under the hamburger menu" loading="lazy" width="870px" height="520px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg" alt="To clear the browser cache, open up the Settings from under the hamburger menu" loading="lazy" width="650px" height="391px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg" alt="To clear the browser cache, open up the Settings from under the hamburger menu" loading="lazy" width="380px" height="232px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_open_browser_settings.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iywlk"&gt;
&lt;p&gt;&lt;span&gt;The &lt;/span&gt;&lt;strong&gt;Settings &lt;/strong&gt;&lt;span&gt;panel will usually load in a new tab. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If it’s not obvious where the browsing history or caching settings are, use the search bar to find them by typing in “cache”.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg" alt='Search for "cache" in your browser to locate your browsing history settings' loading="lazy" width="870px" height="207px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg" alt='Search for "cache" in your browser to locate your browsing history settings' loading="lazy" width="650px" height="159px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg" alt='Search for "cache" in your browser to locate your browsing history settings' loading="lazy" width="380px" height="99px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_access_browsing_history.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iyeai"&gt;&lt;p&gt;&lt;span&gt;Go to the &lt;/span&gt;&lt;strong&gt;Delete browsing data&lt;/strong&gt;&lt;span&gt; section. A pop-up or new screen will appear that allows you to select which actions you need. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg" alt="After clicking Delete browsing data, you’ll be able to clear the cache" loading="lazy" width="870px" height="540px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg" alt="After clicking Delete browsing data, you’ll be able to clear the cache" loading="lazy" width="650px" height="405px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg" alt="After clicking Delete browsing data, you’ll be able to clear the cache" loading="lazy" width="380px" height="240px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_delete_browsing_data_panel.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ivm4o"&gt;
&lt;p&gt;&lt;span&gt;Unselect &lt;/span&gt;&lt;strong&gt;Browsing history&lt;/strong&gt;&lt;span&gt; and &lt;/span&gt;&lt;strong&gt;Cookies and other site data&lt;/strong&gt;&lt;span&gt;. Keep &lt;/span&gt;&lt;strong&gt;Cached images and files&lt;/strong&gt;&lt;span&gt; selected. Then click &lt;/span&gt;&lt;strong&gt;Delete data&lt;/strong&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This will clear your browser cache. Return to your website to see if the page is restored or the new content is there. If not, you may want to try again after closing and reopening your browser.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ito2g"&gt;&lt;h3 id="toc-nuoi-method-2-clear-the-cache-with-a-wordpress-plugin"&gt;&lt;span&gt;Method 2: Clear the Cache With a WordPress Plugin&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i4e7l"&gt;
&lt;p&gt;&lt;span&gt;If you’ve encountered a problem with your website not reflecting the changes you’ve made in WordPress, then the best solution is to clear the cache with a WordPress performance plugin. &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/litespeed-cache/"&gt;&lt;span&gt;LiteSpeed Cache&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/wp-optimize/"&gt;&lt;span&gt;WP-Optimize&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, and &lt;/span&gt;&lt;a href="https://wordpress.org/plugins/wp-fastest-cache/"&gt;&lt;span&gt;WP Fastest Cache&lt;/span&gt;&lt;/a&gt;&lt;span&gt; are the most popular and highest rated. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Most of these performance plugins add a purge button to the WordPress toolbar. Regardless, I’m going to walk you through each of these top-rated solutions so you can see where all the cache clearing options are.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ii6ef"&gt;&lt;h4 id="toc-ukde-clearing-the-wordpress-cache-with-litespeed-cache-plugin"&gt;&lt;span&gt;Clearing the WordPress Cache With LiteSpeed Cache Plugin&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ilwdr"&gt;&lt;p&gt;&lt;span&gt;To clear the cache, located the LiteSpeed icon in the toolbar: &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg" alt="When the LiteSpeed Cache plugin is installed, a LiteSpeed icon will appear in the WordPress toolbar" loading="lazy" width="870px" height="448px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg" alt="When the LiteSpeed Cache plugin is installed, a LiteSpeed icon will appear in the WordPress toolbar" loading="lazy" width="650px" height="337px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg" alt="When the LiteSpeed Cache plugin is installed, a LiteSpeed icon will appear in the WordPress toolbar" loading="lazy" width="380px" height="201px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_cache_plugin.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ilm1q"&gt;
&lt;p&gt;&lt;span&gt;Hover over it and you’ll find settings to: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Purge All&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Purge All - LSCache&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Purge All - CSS/JS Cache&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Purge All - Opcode Cache&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg" alt="Under the LiteSpeed Cache toolbar icon, users will find various cache purging options" loading="lazy" width="870px" height="520px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg" alt="Under the LiteSpeed Cache toolbar icon, users will find various cache purging options" loading="lazy" width="650px" height="391px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg" alt="Under the LiteSpeed Cache toolbar icon, users will find various cache purging options" loading="lazy" width="380px" height="232px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_litespeed_toolbar.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ig7bc"&gt;&lt;p&gt;&lt;strong&gt;LSCache&lt;/strong&gt;&lt;span&gt; refers to purging the plugin’s server cache. &lt;/span&gt;&lt;strong&gt;CSS/JS&lt;/strong&gt;&lt;span&gt; refers to purging just the cached CSS and JavaScript. And &lt;/span&gt;&lt;strong&gt;OpCode &lt;/strong&gt;&lt;span&gt;refers to clearing the object caching, which stores database queries and is an optional setting. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i988y"&gt;&lt;h4 id="toc-0yu5-clearing-the-wordpress-cache-with-wp-optimize-plugin"&gt;&lt;span&gt;Clearing the WordPress Cache With WP-Optimize Plugin&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ivj1z"&gt;&lt;p&gt;&lt;span&gt;With WP-Optimize caching enabled, there are two places where you can clear the WordPress cache. The first is in the toolbar. Click &lt;/span&gt;&lt;strong&gt;Purge cache&lt;/strong&gt;&lt;span&gt; to instantly clear it. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg" alt="When WP-Optimize is installed, a Purge cache button appears in the WordPress toolbar" loading="lazy" width="870px" height="181px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg" alt="When WP-Optimize is installed, a Purge cache button appears in the WordPress toolbar" loading="lazy" width="650px" height="139px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg" alt="When WP-Optimize is installed, a Purge cache button appears in the WordPress toolbar" loading="lazy" width="380px" height="88px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_purge_cache_setting.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ikdw4"&gt;&lt;p&gt;&lt;span&gt;The other place to do this is within the plugin screen. Locate &lt;/span&gt;&lt;strong&gt;WP-Optimize&lt;/strong&gt;&lt;span&gt; on the sidebar. Then go to the &lt;/span&gt;&lt;strong&gt;Cache &lt;/strong&gt;&lt;span&gt;screen. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg" alt="From the WP-Optimize Cache settings screen, users are able to purge the WordPress cache" loading="lazy" width="870px" height="235px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg" alt="From the WP-Optimize Cache settings screen, users are able to purge the WordPress cache" loading="lazy" width="650px" height="179px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg" alt="From the WP-Optimize Cache settings screen, users are able to purge the WordPress cache" loading="lazy" width="380px" height="111px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_optimize_cache_screen.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iy7vb"&gt;&lt;p&gt;&lt;span&gt;Click the &lt;/span&gt;&lt;strong&gt;Purge cache&lt;/strong&gt;&lt;span&gt; button. It will tell you exactly how many files and bytes are about to be removed from the cache. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ifqbc"&gt;&lt;h4 id="toc-peml-clearing-the-wordpress-cache-with-wp-fastest-cache"&gt;&lt;span&gt;Clearing the WordPress Cache with WP Fastest Cache&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iurrm"&gt;
&lt;p&gt;&lt;span&gt;There are two places within this plugin to manage the WordPress cache. The first is the &lt;/span&gt;&lt;strong&gt;Delete Cache&lt;/strong&gt;&lt;span&gt; button in the toolbar. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;From here, you can: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Clear All Cache&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Delete Cache and Minified CSS/JS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Go to the settings&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg" alt="When WP Fastest Cache is installed, users can delete the cache from the link in the WordPress toolbar" loading="lazy" width="870px" height="217px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg" alt="When WP Fastest Cache is installed, users can delete the cache from the link in the WordPress toolbar" loading="lazy" width="650px" height="166px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg" alt="When WP Fastest Cache is installed, users can delete the cache from the link in the WordPress toolbar" loading="lazy" width="380px" height="103px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_delete_cache_setting.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="imuse"&gt;&lt;p&gt;&lt;span&gt;From the plugin panel, you’ll be able to delete the entire cache plus any minified CSS and JavaScript you have. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg" alt="In the WP Fastest Cache plugin settings, go to the Delete Cache tab to clear the WordPress cache" loading="lazy" width="870px" height="465px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg" alt="In the WP Fastest Cache plugin settings, go to the Delete Cache tab to clear the WordPress cache" loading="lazy" width="650px" height="350px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg" alt="In the WP Fastest Cache plugin settings, go to the Delete Cache tab to clear the WordPress cache" loading="lazy" width="380px" height="208px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_wp_fastest_cache_caching_panel.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ijlkn"&gt;&lt;p&gt;&lt;span&gt;With this plugin, if you clear only the cached files, it won’t include the minified CSS or JavaScript. So be sure to use the second cache clearing option to remove all the saved data from the server. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="if30k"&gt;&lt;h3 id="toc-4p9y-method-3-clear-the-cache-from-your-firewall"&gt;&lt;span&gt;Method 3: Clear the Cache From Your Firewall&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="im4s4"&gt;
&lt;p&gt;&lt;span&gt;If clearing the cache in your WordPress performance plugin doesn’t help, the next place to check is your firewall (if you have one installed). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wordpress.org/plugins/sucuri-scanner/"&gt;&lt;span&gt;Sucuri Security&lt;/span&gt;&lt;/a&gt;&lt;span&gt; is one such WordPress firewall plugin that will cache your pages. When content isn’t updating on the frontend, clearing the cache inside this plugin might help. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To do this, locate &lt;/span&gt;&lt;strong&gt;Sucuri Security&lt;/strong&gt;&lt;span&gt; on the sidebar. Then go to the &lt;/span&gt;&lt;strong&gt;Clear Cache&lt;/strong&gt;&lt;span&gt; tab. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg" alt="When the Sucuri firewall is enabled via the WordPress plugin, users can use the settings panel to clear the cache" loading="lazy" width="870px" height="445px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg" alt="When the Sucuri firewall is enabled via the WordPress plugin, users can use the settings panel to clear the cache" loading="lazy" width="650px" height="335px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg" alt="When the Sucuri firewall is enabled via the WordPress plugin, users can use the settings panel to clear the cache" loading="lazy" width="380px" height="200px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_sucuri_firewall_cache.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i0q9k"&gt;&lt;p&gt;&lt;span&gt;Click the &lt;/span&gt;&lt;strong&gt;Clear Global Cache&lt;/strong&gt;&lt;span&gt; button at the bottom. Or if it’s just one page that you’re having problems with, enter the path into the field and then hit &lt;/span&gt;&lt;strong&gt;Clear Cache&lt;/strong&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="io3hj"&gt;&lt;h3 id="toc-9a2z-method-4-clear-the-cache-from-your-web-hosting-account"&gt;&lt;span&gt;Method 4: Clear the Cache From Your Web Hosting Account&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iguaq"&gt;
&lt;p&gt;&lt;span&gt;Usually, clearing the cache inside of WordPress and/or your browser should be enough to fix whatever problem you’re experiencing. However, if there still seems to be a disconnect between the content in WordPress and what’s showing on your website, log into your hosting account. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;With &lt;/span&gt;&lt;a href="https://siteground.com/"&gt;&lt;span&gt;SiteGround hosting&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, for instance, there’s a section under &lt;/span&gt;&lt;strong&gt;Site Tools&lt;/strong&gt;&lt;span&gt; called &lt;/span&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;span&gt;. Within it, there’s a &lt;/span&gt;&lt;strong&gt;Caching &lt;/strong&gt;&lt;span&gt;tool. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For the most part, you’ll use this tool to enable the following types of server caching: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;NGINX Direct Delivery&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Dynamic Cache&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Memcached&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg" alt="In the SiteGround Speed section, users can manage three types of caching for their WordPress site" loading="lazy" width="870px" height="427px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg" alt="In the SiteGround Speed section, users can manage three types of caching for their WordPress site" loading="lazy" width="650px" height="322px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg" alt="In the SiteGround Speed section, users can manage three types of caching for their WordPress site" loading="lazy" width="380px" height="192px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_caching_screen.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ibcdf"&gt;
&lt;p&gt;&lt;span&gt;You won’t be able to clear the NGINX cache. However, you can manage both the dynamic cache as well as memcached, which both cache dynamic content. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To clear either of these caching settings, go to the respective tabs, hover over the &lt;/span&gt;&lt;strong&gt;Actions &lt;/strong&gt;&lt;span&gt;icon on the right, and select &lt;/span&gt;&lt;strong&gt;Flush Cache&lt;/strong&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;figure class="post_image"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=850/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg" alt="SiteGround users are able to clear the dynamic cache and memcached from their hosting panel" loading="lazy" width="870px" height="520px" class="resized-image resized-image-desktop" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1700/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=630/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg" alt="SiteGround users are able to clear the dynamic cache and memcached from their hosting panel" loading="lazy" width="650px" height="391px" class="resized-image resized-image-tablet" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1260/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg 2x"&gt;&lt;img src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=360/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg" alt="SiteGround users are able to clear the dynamic cache and memcached from their hosting panel" loading="lazy" width="380px" height="232px" class="resized-image resized-image-mobile" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=720/uploads/users/2779/posts/108829/image-upload/clear_wordpress_cache_siteground_flush_cache.jpg 2x"&gt;&lt;/figure&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="inb2h"&gt;&lt;p&gt;&lt;span&gt;When you’re done, return to your website to check that the issue has resolved. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ib0rg"&gt;&lt;h3 id="toc-aohl-method-5-clear-the-cache-using-your-cdn"&gt;&lt;span&gt;Method 5: Clear the Cache Using Your CDN&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="idcfq"&gt;
&lt;p&gt;&lt;span&gt;There’s one other place where your content may be getting stuck. And that would be your content delivery network (CDN). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you have a CDN enabled in your web hosting account, open it up and look for a setting that allows you to purge the cache. In SiteGround, for instance, this setting is under &lt;/span&gt;&lt;strong&gt;Site Tools&lt;/strong&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;strong&gt;Speed &lt;/strong&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;strong&gt;CDN&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Various WordPress security plugins as well as image optimization plugins include CDNs as well. If these CDNs are activated, open up your plugin to see if there’s an option to clear the cache from there. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="izr9x"&gt;&lt;h2 id="toc-g3v1-frequently-asked-questions-about-clearing-the-wordpress-cache"&gt;&lt;span&gt;Frequently Asked Questions About Clearing the WordPress Cache&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="icsk2"&gt;&lt;p&gt;&lt;span&gt;Before wrapping up, let’s quickly address the most common questions and concerns when it comes to clearing the cache.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i2poz"&gt;&lt;h3 id="toc-24pf-is-it-safe-to-clear-the-cache-in-wordpress"&gt;Is It Safe To Clear the Cache in WordPress?&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iv2mo"&gt;
&lt;p&gt;&lt;span&gt;Yes. Manually clearing the WordPress cache deletes data saved in a temporary location, not from your actual website or server. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Eventually, all cached data gets cleared. WordPress caching plugins enable us to set an automated schedule for cache clearing or to define rules for when it should happen (like when a page has updated). When we manually clear it, we’re just doing it earlier than expected.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iohuv"&gt;&lt;h3 id="toc-zws2-where-are-the-cache-settings-in-wordpress"&gt;Where Are the Cache Settings in WordPress?&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="is0iw"&gt;
&lt;p&gt;&lt;span&gt;When you have a performance or caching plugin installed, there’s usually a &lt;/span&gt;&lt;strong&gt;Clear cache &lt;/strong&gt;&lt;span&gt;/ &lt;/span&gt;&lt;strong&gt;Purge cache &lt;/strong&gt;&lt;span&gt;/ &lt;/span&gt;&lt;strong&gt;Delete cache&lt;/strong&gt;&lt;span&gt; quick-action link in the top toolbar. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can also access these settings from within your caching plugin’s settings.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="iehyi"&gt;&lt;h3 id="toc-4uqs-how-often-should-you-clear-the-wordpress-cache"&gt;How Often Should You Clear the WordPress Cache?&lt;/h3&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="i7zz5"&gt;
&lt;p&gt;&lt;span&gt;The nice thing about using a WordPress caching plugin is that you can automate this process. How frequently this plugin clears the cache, however, depends on how frequently you update your content. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For example, a small business website with a Home page, About page, some Services pages, and a Contact page won’t need the cache cleared frequently because the content won’t change much (if at all). If you can keep your server from having to reprocess the same files and content, that’s ideal. So you could probably get away with clearing the cache once every week or two.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;On the other hand, let’s say you have an ecommerce site or a blog. New content is likely published daily or weekly. So your cache should be cleared at a similar interval. This will ensure that visitors always see the latest information on your site. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="io0is"&gt;&lt;h2 id="toc-1tgi-conclusion"&gt;&lt;span&gt;Conclusion &lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div data-content-block-type="Wysi" class="content-block content-block-wysi" id="ixj4b"&gt;
&lt;p&gt;&lt;span&gt;Without caching, you’d have two choices:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You could create smaller web pages, resembling the basic HTML-based pages of Web 1.0. This would limit the amount of data your server would need to process and transmit browsers. Or you could keep on creating beautiful, modern web pages, but leave your visitors waiting far too long for them to load every time they visit them. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It’s important to remember, though, that caching can cause some issues if it’s not cleared automatically or frequently enough. So understanding how to manage the WordPress cache and when and where to delete this stored data is critical. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="mediafed_ad"&gt;&lt;img border="0" height="1" src="http://audio.tutsplus.com.feedsportal.com/c/35227/f/668806/s/34439/sc/4/mf.gif" width="1" /&gt;&lt;a href="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/34439/a2.htm"&gt;&lt;img border="0" src="http://da.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/34439/a2.img" /&gt;&lt;/a&gt;&lt;img border="0" height="1" src="http://pi.feedsportal.com/r/186529796139/u/407/f/668806/c/35227/s/34439/a2t.img" width="1" /&gt;&lt;/div&gt;</description></item></channel></rss>