<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <title>Documentation</title>
    <link href="https://getpublii.com/docs/feed.xml" rel="self" />
    <link href="https://getpublii.com/docs" />
    <updated>2024-01-25T11:14:27+01:00</updated>
    <author>
        <name>Publii Team</name>
    </author>
    <id>https://getpublii.com/docs</id>

    <entry>
        <title>Feather Icons Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/feather-icons.html"/>
        <id>https://getpublii.com/docs/feather-icons.html</id>
        <media:content url="https://getpublii.com/docs/media/posts/82/feather-icons-static-plugin.png" medium="image" />
            <category term="plugins"/>

        <updated>2024-01-25T11:14:27+01:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://getpublii.com/docs/media/posts/82/feather-icons-static-plugin.png" alt="Feather Icons Plugin" />
                    Introduction The Feather Icons Plugin is an elegant and versatile solution for integrating Feather icons into your website. This guide will help you understand how&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <p><img src="https://getpublii.com/docs/media/posts/82/feather-icons-static-plugin.png" class="type:primaryImage" alt="Feather Icons Plugin" /></p>
                <h2>Introduction</h2>
<p>The Feather Icons Plugin is an elegant and versatile solution for integrating <strong>Feather icons</strong> into your website. This guide will help you understand how to effectively utilize the plugin to enhance your site's visual appeal with these beautifully designed icons. </p>
<p>For a complete list of available icons and their respective names, please scroll through this <a href="#feather-icons">documentation</a> or visit the <a href="https://feathericons.com/" target="_blank" rel="nofollow noopener noreferrer">Feather Icons</a> website.</p>
<h2>Enabling the Plugin</h2>
<ol>
<li>Launch the Publii application and navigate to the <strong>Tools &amp; Plugins</strong> section.</li>
<li>Locate the Feather Icons plugin from the list of available plugins.</li>
<li>Enable it by clicking the switch button located at the bottom-left corner of the plugin's tile.</li>
</ol>
<h2>Plugin Configuration</h2>
<p>After activating the plugin, you will find various configuration options that allow you to customize the appearance and behavior of the Feather icons on your website.</p>
<h3 class="h5">Basic options</h3>
<p>This section provides settings for customizing the default properties of the icons.</p>
<ul>
<li><strong>Icon Size</strong>: Set the default size for the icons. The size is specified as a number that will be combined with the selected unit.</li>
<li><strong>Icon Size Unit</strong>: Choose the unit of measurement for the icon size. Available options include 'px' (pixels), 'em', 'rem', 'vw' (viewport width), 'vh' (viewport height), 'vmin' (viewport minimum), and 'vmax' (viewport maximum).</li>
<li><strong>Stroke Width</strong>: Adjust the stroke width of the icons. This setting determines the thickness of the icon lines and is defined in pixels.</li>
<li><strong>Stroke Color Option</strong>: Select between using the current color or custom color for the icon stroke. The 'Use Current Color' option will inherit the color from the surrounding text or element.</li>
<li><strong>Custom Stroke Color</strong>: Specify a custom color for the icon stroke when 'Custom Color' is selected. This setting uses a color picker to control the stroke color precisely.</li>
<li><strong>Vertical Align</strong>: Choose the vertical alignment for the icons. Options include 'baseline', 'bottom', 'middle', 'sub', 'super', 'text-top', 'text-bottom', 'top', and a custom value for precise alignment.</li>
<li><strong>Custom Vertical Align Value</strong>: Define a custom value for vertical alignment when the 'Custom values' option is selected. This allows for specific adjustments like '-5px', '0.5em', or '5%' to align the icon perfectly with adjacent elements.</li>
</ul>
<h3 class="h5">Advanced options</h3>
<p>These options provide additional settings for accessibility and advanced customization.</p>
<ul>
<li><strong>ARIA Hidden Attribute</strong>: Set the default value for the 'aria-hidden' attribute to improve accessibility. This option plays a crucial role in enhancing the accessibility of your website and allows you to define the default state of the 'aria-hidden' attribute for the icons.
<ul>
<li><strong>True</strong>: When set to 'true', the 'aria-hidden' attribute will be applied to the icons by default. This means that assistive technologies, like screen readers, will ignore these icons. It's particularly useful when icons are used for decorative purposes and don't convey essential information.</li>
<li><strong>False</strong>: If set to 'false', the 'aria-hidden' attribute will not be included in the icon's HTML markup, allowing screen readers to interpret the icons as part of the content. </li>
</ul>
</li>
<li><strong>Icon Loading Method:</strong> Choose how the icons should be loaded on the production site:
<ul>
<li><strong>Use SVG Map File:</strong> This method involves loading SVG maps from a separate file (the file size is approximately 60KB; when compressed using gzip, it reduces to about 10KB. ). It offers enhanced organization and cleaner HTML code. However, it may increase page load times due to an additional server request for the SVG file.</li>
<li><strong>Use Inline SVG Code:</strong> This approach embeds SVG directly within the HTML. It results in faster page loading by eliminating the need for an additional server request. However, it can increase the overall code size of your site, which might affect readability and maintenance.</li>
</ul>
<p class="msg msg--info"><strong>Please note:</strong> For websites with a few icons, inline SVG code is generally the best choice for faster page loading and easier implementation. However, for websites with many icons, an SVG map file can be a better option to maintain cleaner and more organized HTML, even though it may slightly increase page load times.</p>
</li>
</ul>
<h2>Using the Plugin</h2>
<p>Feather Icons can be used in various parts of your site, including posts, menus, footers, etc. You can either use the default settings configured in the plugin or override them with specific attributes in the shortcode. The plugin allows customization of each icon's appearance directly within the shortcode. You can modify the size, color, stroke width,  and aria-hidden attributes or add your own CSS to suit your design needs.</p>
<p>When using our custom shortcode for icons, please follow the specific order of attributes outlined below. This order is essential for the correct rendering of icons.</p>
<p>The shortcode should be structured as follows:</p>
<pre class="language-html"><code>[fi=icon_name size=value_unit color=color_value class=class_names aria-hidden=true_or_false stroke-width=value]
</code></pre>
<p class="msg msg--warning">Please make sure to include the elements in this exact sequence: <strong>icon name</strong>, <strong>size</strong>, <strong>color </strong>(in HEX format), <strong>class</strong>, <strong>aria-hidden</strong>, <strong>and stroke-width.</strong> The color should be specified using HEX format. This format is necessary for the plugin to correctly interpret and display the icons as intended.</p>
<p>Examples:</p>
<pre class="language-html"><code>&lt;!-- Default Usage --&gt;
[fi=bell]

&lt;!-- Example with Size and Color --&gt;
[fi=bell size=30px color=#ff0000]

&lt;!-- Example with Size and Stroke Width --&gt;
[fi=bell size=4rem stroke-width=3]

&lt;!-- Example with Full Customization --&gt;
[fi=bell size=4rem color=#00ff00 class=icon aria-hidden=false stroke-width=4]

</code></pre>
<h2 id="feather-icons">Full List of Feather Icons</h2>
<p>Below you can find a comprehensive list of all available Feather Icons. This list is designed to make finding and selecting the perfect icon for your needs easier. Browse through the list, and when you find an icon you wish to use, <strong>click on it</strong>. Upon clicking, the shortcode for that specific <strong>icon will be automatically copied</strong> to your clipboard in the format [fi=icon-name].</p>
<div class="grid-container">
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline> </svg><strong>activity</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1"></path> <polygon points="12 15 17 21 7 21 12 15"></polygon> </svg><strong>airplay</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="8" x2="12" y2="12"></line> <line x1="12" y1="16" x2="12.01" y2="16"></line> </svg><strong>alert-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon> <line x1="12" y1="8" x2="12" y2="12"></line> <line x1="12" y1="16" x2="12.01" y2="16"></line> </svg><strong>alert-octagon</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path> <line x1="12" y1="9" x2="12" y2="13"></line> <line x1="12" y1="17" x2="12.01" y2="17"></line> </svg><strong>alert-triangle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="10" x2="6" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="18" y1="18" x2="6" y2="18"></line> </svg><strong>align-center</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="21" y1="10" x2="3" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="21" y1="18" x2="3" y2="18"></line> </svg><strong>align-justify</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="17" y1="10" x2="3" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="17" y1="18" x2="3" y2="18"></line> </svg><strong>align-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="21" y1="10" x2="7" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="21" y1="18" x2="7" y2="18"></line> </svg><strong>align-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="5" r="3"></circle> <line x1="12" y1="22" x2="12" y2="8"></line> <path d="M5 12H2a10 10 0 0 0 20 0h-3"></path> </svg><strong>anchor</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="14.31" y1="8" x2="20.05" y2="17.94"></line> <line x1="9.69" y1="8" x2="21.17" y2="8"></line> <line x1="7.38" y1="12" x2="13.12" y2="2.06"></line> <line x1="9.69" y1="16" x2="3.95" y2="6.06"></line> <line x1="14.31" y1="16" x2="2.83" y2="16"></line> <line x1="16.62" y1="12" x2="10.88" y2="21.94"></line> </svg><strong>aperture</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="21 8 21 21 3 21 3 8"></polyline> <rect x="1" y="3" width="22" height="5"></rect> <line x1="10" y1="12" x2="14" y2="12"></line> </svg><strong>archive</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polyline points="8 12 12 16 16 12"></polyline> <line x1="12" y1="8" x2="12" y2="16"></line> </svg><strong>arrow-down-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="17" y1="7" x2="7" y2="17"></line> <polyline points="17 17 7 17 7 7"></polyline> </svg><strong>arrow-down-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="7" y1="7" x2="17" y2="17"></line> <polyline points="17 7 17 17 7 17"></polyline> </svg><strong>arrow-down-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="5" x2="12" y2="19"></line> <polyline points="19 12 12 19 5 12"></polyline> </svg><strong>arrow-down</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polyline points="12 8 8 12 12 16"></polyline> <line x1="16" y1="12" x2="8" y2="12"></line> </svg><strong>arrow-left-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" y1="12" x2="5" y2="12"></line> <polyline points="12 19 5 12 12 5"></polyline> </svg><strong>arrow-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polyline points="12 16 16 12 12 8"></polyline> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>arrow-right-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="5" y1="12" x2="19" y2="12"></line> <polyline points="12 5 19 12 12 19"></polyline> </svg><strong>arrow-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polyline points="16 12 12 8 8 12"></polyline> <line x1="12" y1="16" x2="12" y2="8"></line> </svg><strong>arrow-up-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="17" y1="17" x2="7" y2="7"></line> <polyline points="7 17 7 7 17 7"></polyline> </svg><strong>arrow-up-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="7" y1="17" x2="17" y2="7"></line> <polyline points="7 7 17 7 17 17"></polyline> </svg><strong>arrow-up-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="19" x2="12" y2="5"></line> <polyline points="5 12 12 5 19 12"></polyline> </svg><strong>arrow-up</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="4"></circle> <path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94"></path> </svg><strong>at-sign</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="8" r="7"></circle> <polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88"></polyline> </svg><strong>award</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="20" x2="18" y2="10"></line> <line x1="12" y1="20" x2="12" y2="4"></line> <line x1="6" y1="20" x2="6" y2="14"></line> </svg><strong>bar-chart-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="20" x2="12" y2="10"></line> <line x1="18" y1="20" x2="18" y2="4"></line> <line x1="6" y1="20" x2="6" y2="16"></line> </svg><strong>bar-chart</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19"></path> <line x1="23" y1="13" x2="23" y2="11"></line> <polyline points="11 6 7 12 13 12 9 18"></polyline> </svg><strong>battery-charging</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="1" y="6" width="18" height="12" rx="2" ry="2"></rect> <line x1="23" y1="13" x2="23" y2="11"></line> </svg><strong>battery</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M13.73 21a2 2 0 0 1-3.46 0"></path> <path d="M18.63 13A17.89 17.89 0 0 1 18 8"></path> <path d="M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14"></path> <path d="M18 8a6 6 0 0 0-9.33-5"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>bell-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path> <path d="M13.73 21a2 2 0 0 1-3.46 0"></path> </svg><strong>bell</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5"></polyline> </svg><strong>bluetooth</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path> <path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path> </svg><strong>bold</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path> <path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path> </svg><strong>book-open</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path> <path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path> </svg><strong>book</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path> </svg><strong>bookmark</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path> <polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline> <line x1="12" y1="22.08" x2="12" y2="12"></line> </svg><strong>box</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect> <path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path> </svg><strong>briefcase</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect> <line x1="16" y1="2" x2="16" y2="6"></line> <line x1="8" y1="2" x2="8" y2="6"></line> <line x1="3" y1="10" x2="21" y2="10"></line> </svg><strong>calendar</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="1" y1="1" x2="23" y2="23"></line> <path d="M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56"></path> </svg><strong>camera-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"></path> <circle cx="12" cy="13" r="4"></circle> </svg><strong>camera</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path> <line x1="2" y1="20" x2="2.01" y2="20"></line> </svg><strong>cast</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path> <polyline points="22 4 12 14.01 9 11.01"></polyline> </svg><strong>check-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="9 11 12 14 22 4"></polyline> <path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"></path> </svg><strong>check-square</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="20 6 9 17 4 12"></polyline> </svg><strong>check</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="6 9 12 15 18 9"></polyline> </svg><strong>chevron-down</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="15 18 9 12 15 6"></polyline> </svg><strong>chevron-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="9 18 15 12 9 6"></polyline> </svg><strong>chevron-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="18 15 12 9 6 15"></polyline> </svg><strong>chevron-up</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="7 13 12 18 17 13"></polyline> <polyline points="7 6 12 11 17 6"></polyline> </svg><strong>chevrons-down</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="11 17 6 12 11 7"></polyline> <polyline points="18 17 13 12 18 7"></polyline> </svg><strong>chevrons-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="13 17 18 12 13 7"></polyline> <polyline points="6 17 11 12 6 7"></polyline> </svg><strong>chevrons-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="17 11 12 6 7 11"></polyline> <polyline points="17 18 12 13 7 18"></polyline> </svg><strong>chevrons-up</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <circle cx="12" cy="12" r="4"></circle> <line x1="21.17" y1="8" x2="12" y2="8"></line> <line x1="3.95" y1="6.06" x2="8.54" y2="14"></line> <line x1="10.88" y1="21.94" x2="15.46" y2="14"></line> </svg><strong>chrome</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> </svg><strong>circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path> <rect x="8" y="2" width="8" height="4" rx="1" ry="1"></rect> </svg><strong>clipboard</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polyline points="12 6 12 12 16 14"></polyline> </svg><strong>clock</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="8" y1="19" x2="8" y2="21"></line> <line x1="8" y1="13" x2="8" y2="15"></line> <line x1="16" y1="19" x2="16" y2="21"></line> <line x1="16" y1="13" x2="16" y2="15"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="12" y1="15" x2="12" y2="17"></line> <path d="M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25"></path> </svg><strong>cloud-drizzle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9"></path> <polyline points="13 11 9 17 15 17 11 23"></polyline> </svg><strong>cloud-lightning</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>cloud-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="16" y1="13" x2="16" y2="21"></line> <line x1="8" y1="13" x2="8" y2="21"></line> <line x1="12" y1="15" x2="12" y2="23"></line> <path d="M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25"></path> </svg><strong>cloud-rain</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25"></path> <line x1="8" y1="16" x2="8.01" y2="16"></line> <line x1="8" y1="20" x2="8.01" y2="20"></line> <line x1="12" y1="18" x2="12.01" y2="18"></line> <line x1="12" y1="22" x2="12.01" y2="22"></line> <line x1="16" y1="16" x2="16.01" y2="16"></line> <line x1="16" y1="20" x2="16.01" y2="20"></line> </svg><strong>cloud-snow</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"></path> </svg><strong>cloud</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="16 18 22 12 16 6"></polyline> <polyline points="8 6 2 12 8 18"></polyline> </svg><strong>code</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2"></polygon> <line x1="12" y1="22" x2="12" y2="15.5"></line> <polyline points="22 8.5 12 15.5 2 8.5"></polyline> <polyline points="2 15.5 12 8.5 22 15.5"></polyline> <line x1="12" y1="2" x2="12" y2="8.5"></line> </svg><strong>codepen</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path> <polyline points="7.5 4.21 12 6.81 16.5 4.21"></polyline> <polyline points="7.5 19.79 7.5 14.6 3 12"></polyline> <polyline points="21 12 16.5 14.6 16.5 19.79"></polyline> <polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline> <line x1="12" y1="22.08" x2="12" y2="12"></line> </svg><strong>codesandbox</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8h1a4 4 0 0 1 0 8h-1"></path> <path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path> <line x1="6" y1="1" x2="6" y2="4"></line> <line x1="10" y1="1" x2="10" y2="4"></line> <line x1="14" y1="1" x2="14" y2="4"></line> </svg><strong>coffee</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18"></path> </svg><strong>columns</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z"></path> </svg><strong>command</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"></polygon> </svg><strong>compass</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect> <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path> </svg><strong>copy</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="9 10 4 15 9 20"></polyline> <path d="M20 4v7a4 4 0 0 1-4 4H4"></path> </svg><strong>corner-down-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="15 10 20 15 15 20"></polyline> <path d="M4 4v7a4 4 0 0 0 4 4h12"></path> </svg><strong>corner-down-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="14 15 9 20 4 15"></polyline> <path d="M20 4h-7a4 4 0 0 0-4 4v12"></path> </svg><strong>corner-left-down</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="14 9 9 4 4 9"></polyline> <path d="M20 20h-7a4 4 0 0 1-4-4V4"></path> </svg><strong>corner-left-up</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="10 15 15 20 20 15"></polyline> <path d="M4 4h7a4 4 0 0 1 4 4v12"></path> </svg><strong>corner-right-down</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="10 9 15 4 20 9"></polyline> <path d="M4 20h7a4 4 0 0 0 4-4V4"></path> </svg><strong>corner-right-up</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="9 14 4 9 9 4"></polyline> <path d="M20 20v-7a4 4 0 0 0-4-4H4"></path> </svg><strong>corner-up-left</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="15 14 20 9 15 4"></polyline> <path d="M4 20v-7a4 4 0 0 1 4-4h12"></path> </svg><strong>corner-up-right</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect> <rect x="9" y="9" width="6" height="6"></rect> <line x1="9" y1="1" x2="9" y2="4"></line> <line x1="15" y1="1" x2="15" y2="4"></line> <line x1="9" y1="20" x2="9" y2="23"></line> <line x1="15" y1="20" x2="15" y2="23"></line> <line x1="20" y1="9" x2="23" y2="9"></line> <line x1="20" y1="14" x2="23" y2="14"></line> <line x1="1" y1="9" x2="4" y2="9"></line> <line x1="1" y1="14" x2="4" y2="14"></line> </svg><strong>cpu</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="1" y="4" width="22" height="16" rx="2" ry="2"></rect> <line x1="1" y1="10" x2="23" y2="10"></line> </svg><strong>credit-card</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M6.13 1L6 16a2 2 0 0 0 2 2h15"></path> <path d="M1 6.13L16 6a2 2 0 0 1 2 2v15"></path> </svg><strong>crop</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="22" y1="12" x2="18" y2="12"></line> <line x1="6" y1="12" x2="2" y2="12"></line> <line x1="12" y1="6" x2="12" y2="2"></line> <line x1="12" y1="22" x2="12" y2="18"></line> </svg><strong>crosshair</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <ellipse cx="12" cy="5" rx="9" ry="3"></ellipse> <path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"></path> <path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"></path> </svg><strong>database</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z"></path> <line x1="18" y1="9" x2="12" y2="15"></line> <line x1="12" y1="9" x2="18" y2="15"></line> </svg><strong>delete</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <circle cx="12" cy="12" r="3"></circle> </svg><strong>disc</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="8" y1="12" x2="16" y2="12"></line> <line x1="12" y1="16" x2="12" y2="16"></line> <line x1="12" y1="8" x2="12" y2="8"></line> <circle cx="12" cy="12" r="10"></circle> </svg><strong>divide-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="8" y1="12" x2="16" y2="12"></line> <line x1="12" y1="16" x2="12" y2="16"></line> <line x1="12" y1="8" x2="12" y2="8"></line> </svg><strong>divide-square</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="6" r="2"></circle> <line x1="5" y1="12" x2="19" y2="12"></line> <circle cx="12" cy="18" r="2"></circle> </svg><strong>divide</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="1" x2="12" y2="23"></line> <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path> </svg><strong>dollar-sign</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="8 17 12 21 16 17"></polyline> <line x1="12" y1="12" x2="12" y2="21"></line> <path d="M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"></path> </svg><strong>download-cloud</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path> <polyline points="7 10 12 15 17 10"></polyline> <line x1="12" y1="15" x2="12" y2="3"></line> </svg><strong>download</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32"></path> </svg><strong>dribbble</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path> </svg><strong>droplet</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path> </svg><strong>edit-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 20h9"></path> <path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path> </svg><strong>edit-3</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path> <path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path> </svg><strong>edit</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path> <polyline points="15 3 21 3 21 9"></polyline> <line x1="10" y1="14" x2="21" y2="3"></line> </svg><strong>external-link</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>eye-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path> <circle cx="12" cy="12" r="3"></circle> </svg><strong>eye</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path> </svg><strong>facebook</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="13 19 22 12 13 5 13 19"></polygon> <polygon points="2 19 11 12 2 5 2 19"></polygon> </svg><strong>fast-forward</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z"></path> <line x1="16" y1="8" x2="2" y2="22"></line> <line x1="17.5" y1="15" x2="9" y2="15"></line> </svg><strong>feather</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z"></path> <path d="M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z"></path> <path d="M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z"></path> <path d="M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z"></path> <path d="M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z"></path> </svg><strong>figma</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="9" y1="15" x2="15" y2="15"></line> </svg><strong>file-minus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="12" y1="18" x2="12" y2="12"></line> <line x1="9" y1="15" x2="15" y2="15"></line> </svg><strong>file-plus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="16" y1="13" x2="8" y2="13"></line> <line x1="16" y1="17" x2="8" y2="17"></line> <polyline points="10 9 9 9 8 9"></polyline> </svg><strong>file-text</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path> <polyline points="13 2 13 9 20 9"></polyline> </svg><strong>file</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="2" width="20" height="20" rx="2.18" ry="2.18"></rect> <line x1="7" y1="2" x2="7" y2="22"></line> <line x1="17" y1="2" x2="17" y2="22"></line> <line x1="2" y1="12" x2="22" y2="12"></line> <line x1="2" y1="7" x2="7" y2="7"></line> <line x1="2" y1="17" x2="7" y2="17"></line> <line x1="17" y1="17" x2="22" y2="17"></line> <line x1="17" y1="7" x2="22" y2="7"></line> </svg><strong>film</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon> </svg><strong>filter</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path> <line x1="4" y1="22" x2="4" y2="15"></line> </svg><strong>flag</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path> <line x1="9" y1="14" x2="15" y2="14"></line> </svg><strong>folder-minus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path> <line x1="12" y1="11" x2="12" y2="17"></line> <line x1="9" y1="14" x2="15" y2="14"></line> </svg><strong>folder-plus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path> </svg><strong>folder</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7"></path> </svg><strong>framer</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M16 16s-1.5-2-4-2-4 2-4 2"></path> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg><strong>frown</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="20 12 20 22 4 22 4 12"></polyline> <rect x="2" y="7" width="20" height="5"></rect> <line x1="12" y1="22" x2="12" y2="7"></line> <path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"></path> <path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"></path> </svg><strong>gift</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="6" y1="3" x2="6" y2="15"></line> <circle cx="18" cy="6" r="3"></circle> <circle cx="6" cy="18" r="3"></circle> <path d="M18 9a9 9 0 0 1-9 9"></path> </svg><strong>git-branch</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="4"></circle> <line x1="1.05" y1="12" x2="7" y2="12"></line> <line x1="17.01" y1="12" x2="22.96" y2="12"></line> </svg><strong>git-commit</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="18" cy="18" r="3"></circle> <circle cx="6" cy="6" r="3"></circle> <path d="M6 21V9a9 9 0 0 0 9 9"></path> </svg><strong>git-merge</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="18" cy="18" r="3"></circle> <circle cx="6" cy="6" r="3"></circle> <path d="M13 6h3a2 2 0 0 1 2 2v7"></path> <line x1="6" y1="9" x2="6" y2="21"></line> </svg><strong>git-pull-request</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path> </svg><strong>github</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"></path> </svg><strong>gitlab</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="2" y1="12" x2="22" y2="12"></line> <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path> </svg><strong>globe</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="7" height="7"></rect> <rect x="14" y="3" width="7" height="7"></rect> <rect x="14" y="14" width="7" height="7"></rect> <rect x="3" y="14" width="7" height="7"></rect> </svg><strong>grid</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="22" y1="12" x2="2" y2="12"></line> <path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path> <line x1="6" y1="16" x2="6.01" y2="16"></line> <line x1="10" y1="16" x2="10.01" y2="16"></line> </svg><strong>hard-drive</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="4" y1="9" x2="20" y2="9"></line> <line x1="4" y1="15" x2="20" y2="15"></line> <line x1="10" y1="3" x2="8" y2="21"></line> <line x1="16" y1="3" x2="14" y2="21"></line> </svg><strong>hash</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path> <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path> </svg><strong>headphones</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path> </svg><strong>heart</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path> <line x1="12" y1="17" x2="12.01" y2="17"></line> </svg><strong>help-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path> </svg><strong>hexagon</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path> <polyline points="9 22 9 12 15 12 15 22"></polyline> </svg><strong>home</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <circle cx="8.5" cy="8.5" r="1.5"></circle> <polyline points="21 15 16 10 5 21"></polyline> </svg><strong>image</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline> <path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path> </svg><strong>inbox</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="16" x2="12" y2="12"></line> <line x1="12" y1="8" x2="12.01" y2="8"></line> </svg><strong>info</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect> <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path> <line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line> </svg><strong>instagram</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" y1="4" x2="10" y2="4"></line> <line x1="14" y1="20" x2="5" y2="20"></line> <line x1="15" y1="4" x2="9" y2="20"></line> </svg><strong>italic</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"></path> </svg><strong>key</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="12 2 2 7 12 12 22 7 12 2"></polygon> <polyline points="2 17 12 22 22 17"></polyline> <polyline points="2 12 12 17 22 12"></polyline> </svg><strong>layers</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="3" y1="9" x2="21" y2="9"></line> <line x1="9" y1="21" x2="9" y2="9"></line> </svg><strong>layout</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <circle cx="12" cy="12" r="4"></circle> <line x1="4.93" y1="4.93" x2="9.17" y2="9.17"></line> <line x1="14.83" y1="14.83" x2="19.07" y2="19.07"></line> <line x1="14.83" y1="9.17" x2="19.07" y2="4.93"></line> <line x1="14.83" y1="9.17" x2="18.36" y2="5.64"></line> <line x1="4.93" y1="19.07" x2="9.17" y2="14.83"></line> </svg><strong>life-buoy</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>link-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path> <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg><strong>link</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path> <rect x="2" y="9" width="4" height="12"></rect> <circle cx="4" cy="4" r="2"></circle> </svg><strong>linkedin</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="8" y1="6" x2="21" y2="6"></line> <line x1="8" y1="12" x2="21" y2="12"></line> <line x1="8" y1="18" x2="21" y2="18"></line> <line x1="3" y1="6" x2="3.01" y2="6"></line> <line x1="3" y1="12" x2="3.01" y2="12"></line> <line x1="3" y1="18" x2="3.01" y2="18"></line> </svg><strong>list</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="2" x2="12" y2="6"></line> <line x1="12" y1="18" x2="12" y2="22"></line> <line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line> <line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line> <line x1="2" y1="12" x2="6" y2="12"></line> <line x1="18" y1="12" x2="22" y2="12"></line> <line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line> <line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line> </svg><strong>loader</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect> <path d="M7 11V7a5 5 0 0 1 10 0v4"></path> </svg><strong>lock</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path> <polyline points="10 17 15 12 10 7"></polyline> <line x1="15" y1="12" x2="3" y2="12"></line> </svg><strong>log-in</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path> <polyline points="16 17 21 12 16 7"></polyline> <line x1="21" y1="12" x2="9" y2="12"></line> </svg><strong>log-out</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path> <polyline points="22,6 12,13 2,6"></polyline> </svg><strong>mail</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path> <circle cx="12" cy="10" r="3"></circle> </svg><strong>map-pin</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6"></polygon> <line x1="8" y1="2" x2="8" y2="18"></line> <line x1="16" y1="6" x2="16" y2="22"></line> </svg><strong>map</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="15 3 21 3 21 9"></polyline> <polyline points="9 21 3 21 3 15"></polyline> <line x1="21" y1="3" x2="14" y2="10"></line> <line x1="3" y1="21" x2="10" y2="14"></line> </svg><strong>maximize-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path> </svg><strong>maximize</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="8" y1="15" x2="16" y2="15"></line> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg><strong>meh</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg><strong>menu</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path> </svg><strong>message-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path> </svg><strong>message-square</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="1" y1="1" x2="23" y2="23"></line> <path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6"></path> <path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23"></path> <line x1="12" y1="19" x2="12" y2="23"></line> <line x1="8" y1="23" x2="16" y2="23"></line> </svg><strong>mic-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path> <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path> <line x1="12" y1="19" x2="12" y2="23"></line> <line x1="8" y1="23" x2="16" y2="23"></line> </svg><strong>mic</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="4 14 10 14 10 20"></polyline> <polyline points="20 10 14 10 14 4"></polyline> <line x1="14" y1="10" x2="21" y2="3"></line> <line x1="3" y1="21" x2="10" y2="14"></line> </svg><strong>minimize-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path> </svg><strong>minimize</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>minus-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>minus-square</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="5" y1="12" x2="19" y2="12"></line> </svg><strong>minus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect> <line x1="8" y1="21" x2="16" y2="21"></line> <line x1="12" y1="17" x2="12" y2="21"></line> </svg><strong>monitor</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> </svg><strong>moon</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="1"></circle> <circle cx="19" cy="12" r="1"></circle> <circle cx="5" cy="12" r="1"></circle> </svg><strong>more-horizontal</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="1"></circle> <circle cx="12" cy="5" r="1"></circle> <circle cx="12" cy="19" r="1"></circle> </svg><strong>more-vertical</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"></path> <path d="M13 13l6 6"></path> </svg><strong>mouse-pointer</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="5 9 2 12 5 15"></polyline> <polyline points="9 5 12 2 15 5"></polyline> <polyline points="15 19 12 22 9 19"></polyline> <polyline points="19 9 22 12 19 15"></polyline> <line x1="2" y1="12" x2="22" y2="12"></line> <line x1="12" y1="2" x2="12" y2="22"></line> </svg><strong>move</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 18V5l12-2v13"></path> <circle cx="6" cy="18" r="3"></circle> <circle cx="18" cy="16" r="3"></circle> </svg><strong>music</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="12 2 19 21 12 17 5 21 12 2"></polygon> </svg><strong>navigation-2</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="3 11 22 2 13 21 11 13 3 11"></polygon> </svg><strong>navigation</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon> </svg><strong>octagon</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line> <path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path> <polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline> <line x1="12" y1="22.08" x2="12" y2="12"></line> </svg><strong>package</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path> </svg><strong>paperclip</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="10" y1="15" x2="10" y2="9"></line> <line x1="14" y1="15" x2="14" y2="9"></line> </svg><strong>pause-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="6" y="4" width="4" height="16"></rect> <rect x="14" y="4" width="4" height="16"></rect> </svg><strong>pause</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 19l7-7 3 3-7 7-3-3z"></path> <path d="M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"></path> <path d="M2 2l7.586 7.586"></path> <circle cx="11" cy="11" r="2"></circle> </svg><strong>pen-tool</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" y1="5" x2="5" y2="19"></line> <circle cx="6.5" cy="6.5" r="2.5"></circle> <circle cx="17.5" cy="17.5" r="2.5"></circle> </svg><strong>percent</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone-call</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="19 1 23 5 19 9"></polyline> <line x1="15" y1="5" x2="23" y2="5"></line> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone-forwarded</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="16 2 16 8 22 8"></polyline> <line x1="23" y1="1" x2="16" y2="8"></line> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone-incoming</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="23" y1="1" x2="17" y2="7"></line> <line x1="17" y1="1" x2="23" y2="7"></line> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone-missed</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91"></path> <line x1="23" y1="1" x2="1" y2="23"></line> </svg><strong>phone-off</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="23 7 23 1 17 1"></polyline> <line x1="16" y1="8" x2="23" y2="1"></line> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone-outgoing</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path> </svg><strong>phone</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21.21 15.89A10 10 0 1 1 8 2.83"></path> <path d="M22 12A10 10 0 0 0 12 2v10z"></path> </svg><strong>pie-chart</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <polygon points="10 8 16 12 10 16 10 8"></polygon> </svg><strong>play-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="5 3 19 12 5 21 5 3"></polygon> </svg><strong>play</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="8" x2="12" y2="16"></line> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>plus-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="12" y1="8" x2="12" y2="16"></line> <line x1="8" y1="12" x2="16" y2="12"></line> </svg><strong>plus-square</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="12" y1="5" x2="12" y2="19"></line> <line x1="5" y1="12" x2="19" y2="12"></line> </svg><strong>plus</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z"></path> <polyline points="8 10 12 14 16 10"></polyline> </svg><strong>pocket</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M18.36 6.64a9 9 0 1 1-12.73 0"></path> <line x1="12" y1="2" x2="12" y2="12"></line> </svg><strong>power</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="6 9 6 2 18 2 18 9"></polyline> <path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path> <rect x="6" y="14" width="12" height="8"></rect> </svg><strong>printer</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="2"></circle> <path d="M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14"></path> </svg><strong>radio</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="1 4 1 10 7 10"></polyline> <polyline points="23 20 23 14 17 14"></polyline> <path d="M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"></path> </svg><strong>refresh-ccw</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="23 4 23 10 17 10"></polyline> <polyline points="1 20 1 14 7 14"></polyline> <path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path> </svg><strong>refresh-cw</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="17 1 21 5 17 9"></polyline> <path d="M3 11V9a4 4 0 0 1 4-4h14"></path> <polyline points="7 23 3 19 7 15"></polyline> <path d="M21 13v2a4 4 0 0 1-4 4H3"></path> </svg><strong>repeat</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="11 19 2 12 11 5 11 19"></polygon> <polygon points="22 19 13 12 22 5 22 19"></polygon> </svg><strong>rewind</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="1 4 1 10 7 10"></polyline> <path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"></path> </svg><strong>rotate-ccw</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="23 4 23 10 17 10"></polyline> <path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"></path> </svg><strong>rotate-cw</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 11a9 9 0 0 1 9 9"></path> <path d="M4 4a16 16 0 0 1 16 16"></path> <circle cx="5" cy="19" r="1"></circle> </svg><strong>rss</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"></path> <polyline points="17 21 17 13 7 13 7 21"></polyline> <polyline points="7 3 7 8 15 8"></polyline> </svg><strong>save</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="6" cy="6" r="3"></circle> <circle cx="6" cy="18" r="3"></circle> <line x1="20" y1="4" x2="8.12" y2="15.88"></line> <line x1="14.47" y1="14.48" x2="20" y2="20"></line> <line x1="8.12" y1="8.12" x2="12" y2="12"></line> </svg><strong>scissors</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg><strong>search</strong></div>
<div><svg viewbox="0 0 24 24" width="60" height="60" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="22" y1="2" x2="11" y2="13"></line> <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon> </svg><strong>send</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect> <rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect> <line x1="6" y1="6" x2="6.01" y2="6"></line> <line x1="6" y1="18" x2="6.01" y2="18"></line> </svg><strong>server</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="3"></circle> <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path> </svg><strong>settings</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="18" cy="5" r="3"></circle> <circle cx="6" cy="12" r="3"></circle> <circle cx="18" cy="19" r="3"></circle> <line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line> <line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line> </svg><strong>share-2</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path> <polyline points="16 6 12 2 8 6"></polyline> <line x1="12" y1="2" x2="12" y2="15"></line> </svg><strong>share</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18"></path> <path d="M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>shield-off</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path> </svg><strong>shield</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path> <line x1="3" y1="6" x2="21" y2="6"></line> <path d="M16 10a4 4 0 0 1-8 0"></path> </svg><strong>shopping-bag</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="9" cy="21" r="1"></circle> <circle cx="20" cy="21" r="1"></circle> <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path> </svg><strong>shopping-cart</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="16 3 21 3 21 8"></polyline> <line x1="4" y1="20" x2="21" y2="3"></line> <polyline points="21 16 21 21 16 21"></polyline> <line x1="15" y1="15" x2="21" y2="21"></line> <line x1="4" y1="4" x2="9" y2="9"></line> </svg><strong>shuffle</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="9" y1="3" x2="9" y2="21"></line> </svg><strong>sidebar</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="19 20 9 12 19 4 19 20"></polygon> <line x1="5" y1="19" x2="5" y2="5"></line> </svg><strong>skip-back</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="5 4 15 12 5 20 5 4"></polygon> <line x1="19" y1="5" x2="19" y2="19"></line> </svg><strong>skip-forward</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z"></path> <path d="M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path> <path d="M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z"></path> <path d="M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z"></path> <path d="M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z"></path> <path d="M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"></path> <path d="M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z"></path> <path d="M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z"></path> </svg><strong>slack</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line> </svg><strong>slash</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="4" y1="21" x2="4" y2="14"></line> <line x1="4" y1="10" x2="4" y2="3"></line> <line x1="12" y1="21" x2="12" y2="12"></line> <line x1="12" y1="8" x2="12" y2="3"></line> <line x1="20" y1="21" x2="20" y2="16"></line> <line x1="20" y1="12" x2="20" y2="3"></line> <line x1="1" y1="14" x2="7" y2="14"></line> <line x1="9" y1="8" x2="15" y2="8"></line> <line x1="17" y1="16" x2="23" y2="16"></line> </svg><strong>sliders</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect> <line x1="12" y1="18" x2="12.01" y2="18"></line> </svg><strong>smartphone</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M8 14s1.5 2 4 2 4-2 4-2"></path> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg><strong>smile</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect> <circle cx="12" cy="14" r="4"></circle> <line x1="12" y1="6" x2="12.01" y2="6"></line> </svg><strong>speaker</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> </svg> <strong>square </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon> </svg> <strong>star </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <rect x="9" y="9" width="6" height="6"></rect> </svg> <strong>stop-circle </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> <strong>sun </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 18a5 5 0 0 0-10 0"></path> <line x1="12" y1="2" x2="12" y2="9"></line> <line x1="4.22" y1="10.22" x2="5.64" y2="11.64"></line> <line x1="1" y1="18" x2="3" y2="18"></line> <line x1="21" y1="18" x2="23" y2="18"></line> <line x1="18.36" y1="11.64" x2="19.78" y2="10.22"></line> <line x1="23" y1="22" x2="1" y2="22"></line> <polyline points="8 6 12 2 16 6"></polyline> </svg> <strong>sunrise </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 18a5 5 0 0 0-10 0"></path> <line x1="12" y1="9" x2="12" y2="2"></line> <line x1="4.22" y1="10.22" x2="5.64" y2="11.64"></line> <line x1="1" y1="18" x2="3" y2="18"></line> <line x1="21" y1="18" x2="23" y2="18"></line> <line x1="18.36" y1="11.64" x2="19.78" y2="10.22"></line> <line x1="23" y1="22" x2="1" y2="22"></line> <polyline points="16 5 12 9 8 5"></polyline> </svg> <strong>sunset </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18"></path> </svg> <strong>table </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect> <line x1="12" y1="18" x2="12.01" y2="18"></line> </svg> <strong>tablet </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path> <line x1="7" y1="7" x2="7.01" y2="7"></line> </svg> <strong>tag </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <circle cx="12" cy="12" r="6"></circle> <circle cx="12" cy="12" r="2"></circle> </svg> <strong>target </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="4 17 10 11 4 5"></polyline> <line x1="12" y1="19" x2="20" y2="19"></line> </svg> <strong>terminal </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path> </svg> <strong>thermometer </strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"></path> </svg><strong>thumbs-down</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path> </svg><strong>thumbs-up</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="1" y="5" width="22" height="14" rx="7" ry="7"></rect> <circle cx="8" cy="12" r="3"></circle> </svg><strong>toggle-left</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="1" y="5" width="22" height="14" rx="7" ry="7"></rect> <circle cx="16" cy="12" r="3"></circle> </svg><strong>toggle-right</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path> </svg><strong>tool</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="3 6 5 6 21 6"></polyline> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path> <line x1="10" y1="11" x2="10" y2="17"></line> <line x1="14" y1="11" x2="14" y2="17"></line> </svg><strong>trash-2</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="3 6 5 6 21 6"></polyline> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path> </svg><strong>trash</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <rect x="7" y="7" width="3" height="9"></rect> <rect x="14" y="7" width="3" height="5"></rect> </svg><strong>trello</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="23 18 13.5 8.5 8.5 13.5 1 6"></polyline> <polyline points="17 18 23 18 23 12"></polyline> </svg><strong>trending-down</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline> <polyline points="17 6 23 6 23 12"></polyline> </svg><strong>trending-up</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path> </svg><strong>triangle</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="1" y="3" width="15" height="13"></rect> <polygon points="16 8 20 8 23 11 23 16 16 16 16 8"></polygon> <circle cx="5.5" cy="18.5" r="2.5"></circle> <circle cx="18.5" cy="18.5" r="2.5"></circle> </svg><strong>truck</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="7" width="20" height="15" rx="2" ry="2"></rect> <polyline points="17 2 12 7 7 2"></polyline> </svg><strong>tv</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7"></path> </svg><strong>twitch</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path> </svg><strong>twitter</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="4 7 4 4 20 4 20 7"></polyline> <line x1="9" y1="20" x2="15" y2="20"></line> <line x1="12" y1="4" x2="12" y2="20"></line> </svg><strong>type</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7"></path> </svg><strong>umbrella</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3"></path> <line x1="4" y1="21" x2="20" y2="21"></line> </svg><strong>underline</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect> <path d="M7 11V7a5 5 0 0 1 9.9-1"></path> </svg><strong>unlock</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="16 16 12 12 8 16"></polyline> <line x1="12" y1="12" x2="12" y2="21"></line> <path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"></path> <polyline points="16 16 12 12 8 16"></polyline> </svg><strong>upload-cloud</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path> <polyline points="17 8 12 3 7 8"></polyline> <line x1="12" y1="3" x2="12" y2="15"></line> </svg><strong>upload</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="8.5" cy="7" r="4"></circle> <polyline points="17 11 19 13 23 9"></polyline> </svg><strong>user-check</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="8.5" cy="7" r="4"></circle> <line x1="23" y1="11" x2="17" y2="11"></line> </svg><strong>user-minus</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="8.5" cy="7" r="4"></circle> <line x1="20" y1="8" x2="20" y2="14"></line> <line x1="23" y1="11" x2="17" y2="11"></line> </svg><strong>user-plus</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="8.5" cy="7" r="4"></circle> <line x1="18" y1="8" x2="23" y2="13"></line> <line x1="23" y1="8" x2="18" y2="13"></line> </svg><strong>user-x</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path> <circle cx="12" cy="7" r="4"></circle> </svg><strong>user</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="9" cy="7" r="4"></circle> <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path> <path d="M16 3.13a4 4 0 0 1 0 7.75"></path> </svg><strong>users</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>video-off</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="23 7 16 12 23 17 23 7"></polygon> <rect x="1" y="5" width="15" height="14" rx="2" ry="2"></rect> </svg><strong>video</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="5.5" cy="11.5" r="4.5"></circle> <circle cx="18.5" cy="11.5" r="4.5"></circle> <line x1="5.5" y1="16" x2="18.5" y2="16"></line> </svg><strong>voicemail</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon> <path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path> </svg><strong>volume-1</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon> <path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path> </svg><strong>volume-2</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon> <line x1="23" y1="9" x2="17" y2="15"></line> <line x1="17" y1="9" x2="23" y2="15"></line> </svg><strong>volume-x</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon> </svg><strong>volume</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="7"></circle> <polyline points="12 9 12 12 13.5 13.5"></polyline> <path d="M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83"></path> </svg><strong>watch</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="1" y1="1" x2="23" y2="23"></line> <path d="M16.72 11.06A10.94 10.94 0 0 1 19 12.55"></path> <path d="M5 12.55a10.94 10.94 0 0 1 5.17-2.39"></path> <path d="M10.71 5.05A16 16 0 0 1 22.58 9"></path> <path d="M1.42 9a15.91 15.91 0 0 1 4.7-2.88"></path> <path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path> <line x1="12" y1="20" x2="12.01" y2="20"></line> </svg><strong>wifi-off</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 12.55a11 11 0 0 1 14.08 0"></path> <path d="M1.42 9a16 16 0 0 1 21.16 0"></path> <path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path> <line x1="12" y1="20" x2="12.01" y2="20"></line> </svg><strong>wifi</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path> </svg><strong>wind</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="15" y1="9" x2="9" y2="15"></line> <line x1="9" y1="9" x2="15" y2="15"></line> </svg><strong>x-circle</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon> <line x1="15" y1="9" x2="9" y2="15"></line> <line x1="9" y1="9" x2="15" y2="15"></line> </svg><strong>x-octagon</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="9" y1="9" x2="15" y2="15"></line> <line x1="15" y1="9" x2="9" y2="15"></line> </svg><strong>x-square</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg><strong>x</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path> <polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon> </svg><strong>youtube</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polyline points="12.41 6.75 13 2 10.57 4.92"></polyline> <polyline points="18.57 12.91 21 10 15.66 10"></polyline> <polyline points="8 8 3 14 12 14 11 22 16 16"></polyline> <line x1="1" y1="1" x2="23" y2="23"></line> </svg><strong>zap-off</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon> </svg><strong>zap</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> <line x1="11" y1="8" x2="11" y2="14"></line> <line x1="8" y1="11" x2="14" y2="11"></line> </svg><strong>zoom-in</strong></div>
<div><svg viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> <line x1="8" y1="11" x2="14" y2="11"></line> </svg><strong>zoom-out</strong></div>
</div>
<h2>Conclusion</h2>
<p>The Feather Icons Plugin is a powerful and easy-to-use tool for adding and customizing icons on your Publii site. With its wide range of settings and customization options, you can easily enhance the visual appeal of your website while maintaining accessibility standards.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Social Sharing Plugin: Extensive Guide</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/social-sharing.html"/>
        <id>https://getpublii.com/docs/social-sharing.html</id>
            <category term="plugins"/>

        <updated>2023-11-27T12:47:17+01:00</updated>
            <summary>
                <![CDATA[
                    The Social Sharing plugin, tailored for Publii CMS, empowers websites with extensive social media integration. It supports a vast array of 39 different platforms and&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>The Social Sharing plugin, tailored for Publii CMS, empowers websites with extensive social media integration. It supports a vast array of 39 different platforms and enhances content visibility and user engagement through customizable and visually appealing social sharing buttons. With Platform-Colored options, you can effortlessly match your button colors to various social media platforms without requiring manual color adjustments. </p>
<h2>Installation and Compatibility</h2>
<p>To utilize the Social Sharing plugin, ensure your Publii CMS is updated to version 0.43.1 or higher. This plugin is tailored for compatibility with the latest Publii theme versions, particularly those released around October/November 2023.</p>
<p>To add support for the Social Sharing plugin to your older or custom Publii themes, follow these steps:</p>
<ol>
<li><strong>Locate the Relevant File</strong>: Open your file explorer and navigate to the <code>Documents/Publii/sites/YOUR_SITE/input/themes/YOUR_THEME</code> directory, where <code>YOUR_SITE</code> is the name of your site, and <code>YOUR_THEME</code> is the folder for the theme you are currently using.</li>
<li><strong>Edit the post.hbs File</strong>: Use your preferred code editor to open the <code>post.hbs</code>  file located in your theme's folder. </li>
<li><strong>Insert the Social Sharing Code</strong>:
<ol>
<li>Find an appropriate place in the <code>post.hbs</code> file where you want the social sharing buttons to appear. It's typically placed near the bottom of the post template and looks like this: <code> {{&gt; share-buttons}}</code></li>
<li>Replace the above code with the custom social sharing code snippet: <code>{{{@customSocialSharing}}}</code>.</li>
</ol>
<p>For instance, your code might look something like this:</p>
<pre class="language-handlebars"><code>{{#if @config.post.displayShareButtons}}
  {{#checkIfAll @plugins.socialSharing @plugins.socialSharing.state}}
    &lt;div class="post__share"&gt;
        {{{@customSocialSharing}}}
    &lt;/div&gt;
  {{/checkIfAll}}          
{{/if}}</code></pre>
</li>
</ol>
<h2>General Settings</h2>
<h3 class="h6">Button Display Modes</h3>
<ul>
<li><strong>Icon Only:</strong> Displays only the social platform icon, providing a clean and minimalistic look. Ideal for websites with a modern, uncluttered design.</li>
<li><strong>Text Only:</strong> Shows only the name of the social platform. This mode benefits users who prefer text labels for clarity and accessibility.</li>
<li><strong>Icon and Text:</strong> Combines both the icon and the text label, offering a comprehensive view that is both visually appealing and informative.</li>
</ul>
<h3 class="h6">Layout Options</h3>
<ul>
<li><strong>Horizontal Layout:</strong> Aligns buttons in a linear row. Suitable for headers, footers, or any horizontal space in your website's layout.</li>
<li><strong>Vertical Layout:</strong> Stacks buttons in a column, ideal for sidebars or narrow vertical spaces like popups.</li>
</ul>
<h3 class="h6">Button Types</h3>
<ul>
<li><strong>Link Buttons:</strong> Styled as text links with icons, these buttons offer a simple and minimalistic approach. The text and icon color can be adjusted to match your site's theme.</li>
<li><strong>Outlined Buttons:</strong> These buttons feature a distinct border, providing an elegant and defined appearance. The border color can be customized to align with your site's design or represent the social platform's color scheme.</li>
<li><strong>Solid Buttons:</strong> Solid buttons offer a bold, filled color, drawing more attention. They include a 'Luminance Adjust on Hover' feature, allowing the button to slightly change color when hovered over, enhancing the interactive experience.</li>
</ul>
<h2>Color Customization</h2>
<p><strong>Platform-Colored:</strong> These options dynamically adapt the color scheme of the buttons based on the selected social media platform, ensuring visual harmony and brand consistency. They allow you to configure colors for both the default and hover states, depending on your preferences and the design of your site.</p>
<p>Depending on the type of button you choose (link, outlined, or solid), you will have the flexibility to customize various elements of the buttons with color options specific to each platform:</p>
<h3 class="h6">Link Buttons:</h3>
<ul>
<li><strong>Text:</strong> Choose to colorize the text of the link buttons.</li>
<li><strong>Icon:</strong> Opt for coloring the icons within the link buttons.</li>
<li><strong>Both Icon and Text:</strong> Apply colorization to the text and icons within link buttons.</li>
</ul>
<h3 class="h6">Outlined Buttons:</h3>
<ul>
<li><strong>Border:</strong> If you're using outlined buttons, you can select this option to colorize the border.</li>
<li><strong>Text and Icons:</strong> This option lets you colorize the text and icons for outlined buttons.</li>
<li><strong>Border, Text, and Icons:</strong> This comprehensive option allows you to colorize the border, text, and icons for outlined buttons.</li>
</ul>
<h3 class="h6">Solid Buttons:</h3>
<ul>
<li><strong>Background:</strong> You can also colorize the solid buttons' backgrounds, providing further customization possibilities.</li>
</ul>
<p>Platform-colored options simplify the process, ensuring your buttons seamlessly match the color schemes of social media platforms, resulting in a cohesive and visually appealing user experience tailored to your site's theme and the selected button type.</p>
<h2>Social Platforms</h2>
<p>In this section, you can select and configure various social media platforms for sharing content from your website. It allows for rearranging the order of social buttons using a drag-and-drop method and renaming the buttons. For example, you can rename a button from "Facebook" to "Share with Facebook" for more precise user guidance.</p>
<p>This section not only allows for the selection of social media sharing buttons but also provides several additional options that are essential for specific platforms.</p>
<ul>
<li><strong>Facebook App ID:</strong> Enter your Facebook App ID here. This ID is essential for enabling features like sharing via Facebook Messenger.</li>
<li><strong>Twitter Handle:</strong> Define your Twitter account's handle. This handle is appended when sharing content via Twitter, for example, 'via @TwitterHandle'. If left blank, the author's Twitter handle is used.</li>
<li><strong>Clipboard Alert Text:</strong> Customize the alert text when a URL is copied to the clipboard. The default text is "URL copied to clipboard".</li>
<li><strong>Mastodon Domain Label</strong>: Customize the label text for the Mastodon domain input field. This label appears as a prompt when users are asked to enter their Mastodon domain.</li>
</ul>
<h2>Styling Options</h2>
<ul>
<li><strong>Text Color:</strong> Allows customization of the text color on buttons, ensuring alignment with your website's color scheme. </li>
<li><strong>Text Color on Hover:</strong> Defines the text color when the mouse hovers over the button. </li>
<li><strong>Icon Color:</strong> Customizes the color of icons within the button. This setting is available when specific button styles and platform color conditions are met.</li>
<li><strong>Icon Color on Hover:</strong> Changes the icon color on mouse hover, enhancing user interaction. </li>
<li><strong>Border Text Color:</strong> Alters the text color for buttons with borders. This option comes into play based on the button style and specific platform-colored border conditions.</li>
<li><strong>Background Color:</strong> Sets the background color of buttons, allowing for a harmonious integration with the site's design. It is dependent on the button style and platform background color settings.</li>
<li><strong>Luminance Adjustment:</strong> Modifies the luminance of the social platform's background color on hover, offering a customizable visual effect. This feature allows for lightening or darkening the button color in the hover state, providing dynamic visual feedback to the users. </li>
<li><strong>Border Width:</strong> Allows setting the border width for buttons, providing a way to adjust button aesthetics based on design requirements. </li>
<li><strong>Button Hover Effect:</strong> Select the hover effect for buttons. Available options include: None, Translate Up, Scale, Rotate, Skew, Scale and Translate, Translate XY, Rotate and Scale, and Custom. This feature enhances the interactive experience by allowing diverse animations and transformations on hover.</li>
<li><strong>Button Padding:</strong> Adjusts the padding around buttons, ensuring comfortable spacing and alignment with the overall design. </li>
<li><strong>Button Border Radius:</strong> Defines the border radius for buttons, allowing for rounded or sharp edges based on stylistic preferences. </li>
<li><strong>Font Family:</strong> Choose the font family for button text, ensuring typographic consistency with your site's design. This option supports official Publii theme fonts and allows for custom font specifications. It's compatible with the theme's CSS font variables, making it easy to align with the overall design aesthetics of your website.</li>
<li><strong>Font Size:</strong> Adjusts the font size for button text, aligning it with your website's typography for a cohesive look.</li>
</ul>
<h3>Advanced Customization</h3>
<ul>
<li><strong>Container CSS Class:</strong> Define a custom CSS class for the container. The default value is "scl-container". This option allows for advanced styling and layout control.</li>
<li><strong>Button CSS Class:</strong> Set a specific CSS class for buttons. The default value is "scl-btn". Helpful in applying custom styles and behaviors to buttons.</li>
<li><strong>Theme's Popup Container CSS Class:</strong> Specify the CSS class name for the theme's popup container, with the default value being <code>js-post__share-popup</code>. Keep this default class unless you use a custom popup to display social media buttons with your class name. The default class name is integral for official Publii themes, where social media buttons are displayed in a popup activated by a "Share" button. Only change this class if you use your popup implementation with a different class name, as this is crucial for ensuring the plugin functions correctly in such customized setups.</li>
<li><strong>Social Sharing Popup:</strong> Toggle to enable or disable a popup window for social sharing buttons. This feature enhances user interaction by providing a dedicated sharing interface.</li>
<li><strong>Popup Width:</strong> Define the width of the popup in pixels. This setting is active only when the social sharing popup is enabled.</li>
<li><strong>Popup Height:</strong> Set the height of the popup in pixels. This configuration is applicable when the social sharing popup feature is active.</li>
</ul>
<h2>Optimized Performance: Intelligent Icon Mapping and Selective CSS Loading</h2>
<p>By employing optimized SVG icons, the Social Sharing plugin guarantees a swift, visually appealing display with minimal impact on load times. A key feature is <strong>intelligent icon mapping</strong>, which dynamically generates a map of icons based on the specific social platforms chosen by the user. This approach ensures that only selected icons are loaded, avoiding the redundancy of unused graphics.</p>
<p>Furthermore, the plugin's smart CSS generation contributes significantly to performance efficiency. It customizes the CSS based on the button type, <strong>attaching only the needed CSS</strong> styles. For instance, in the case of a 'link' type button, which lacks borders or backgrounds, the plugin does not load styles related to these elements.</p>
<p>This meticulous attention to detail in code management means that the plugin enhances the user interface and maintains a lightweight presence on the host website, ensuring optimal page performance.</p>
<h2>HTML Output and Accessibility</h2>
<p>The plugin excels in performance and demonstrates a commitment to accessibility. This is evident in the dynamically generated HTML code it produces, which includes specific ARIA (Accessible Rich Internet Applications) attributes tailored to the type of buttons.</p>
<p>For example, depending on the chosen display option ('Icon only', 'Text only', or 'Both'), the plugin attaches the necessary ARIA attributes to enhance accessibility. This approach is particularly beneficial for screen readers and assistive technologies, ensuring that all users can interact with the social sharing buttons effectively regardless of their abilities.</p>
<p>Below is a sample of the HTML code generated by the plugin for three different platforms, showcasing how it adapts to various scenarios while prioritizing accessibility and performance.</p>
<pre class="language-html"><code>&lt;!-- Example of generated HTML for three platforms --&gt;
&lt;div class="scl-container"&gt;
    &lt;!-- Diaspora Button --&gt;
    &lt;a href="https://share.diasporafoundation.org/..." class="scl-btn p-diaspora" aria-label="Diaspora"&gt;
        &lt;svg width="24" height="24" aria-hidden="true" ...&gt;&lt;/svg&gt;
        &lt;span&gt;Diaspora&lt;/span&gt;
    &lt;/a&gt;
    &lt;!-- Digg Button --&gt;
    &lt;a href="https://digg.com/submit?url=..." class="scl-btn p-digg" aria-label="Digg"&gt;
        &lt;svg width="40" height="24" aria-hidden="true" ...&gt;&lt;/svg&gt;
        &lt;span&gt;Digg&lt;/span&gt;
    &lt;/a&gt;
    &lt;!-- Email Button --&gt;
    &lt;a href="mailto:?subject=..." class="scl-btn p-email" aria-label="Email"&gt;
        &lt;svg width="24" height="24" aria-hidden="true" ...&gt;&lt;/svg&gt;
        &lt;span&gt;Email&lt;/span&gt;
    &lt;/a&gt;
&lt;/div&gt;
</code></pre>
<h2>Customization with CSS Variables</h2>
<p>While the plugin offers extensive styling options through its user interface, it allows advanced users to directly manipulate styles using CSS variables. These variables are dynamically generated and can be adjusted to tailor the appearance of the sharing buttons to fit the specific needs of a website.</p>
<p>Below is a list of CSS variables available for customization, categorized by different button styles: 'Links', 'Outlined buttons', and 'Solid buttons'. Each category includes variables for colors, hover states, icon colors, borders, and more, allowing for detailed and precise styling.</p>
<pre class="language-css"><code>/* Links */

  --scl-link-color: Color of the link text;
  --scl-link-color-hover: Hover color of the link text;
  --scl-link-icon-color: Color of the link icon;
  --scl-link-icon-color-hover: Hover color of the link icon;


/* Outlined buttons */

  --scl-outlined-color: Text color for outlined button;
  --scl-outlined-color-hover: Hover text color for outlined button;
  --scl-outlined-icon-color: Icon color for outlined button;
  --scl-outlined-icon-color-hover: Hover icon color for outlined button;
  --scl-outlined-border-color: Border color for outlined button;
  --scl-outlined-border-color-hover: Hover border color for outlined button;
  --scl-outlined-border-width: Border width for outlined button;
  --scl-btn-padding: Padding for button;


/* Solid buttons */

  --scl-btn-bg: Background color of the button;
  --scl-btn-bg-hover: Hover background color of the button;
  --scl-btn-txticon-color: Text and icon color for button with background;
  --scl-btn-txticon-color-hover: Hover text and icon color for button with background;
  --scl-btn-padding: Padding for button with background;
  --scl-hsla-luminance: Luminance adjustment for button with background;


/* General Variables */

  --scl-container-gap: Gap between container elements;
  --scl-container-direction: Layout direction of the container (row/column);
  --scl-btn-hover-effect: Hover effect for buttons;
  --scl-btn-gap: Gap between buttons;
  --scl-btn-transition: Transition effect for buttons;
  --scl-btn-border-radius: Border radius for buttons;
  --scl-btn-font-family: Font family for buttons;
  --scl-btn-font-size: Font size for buttons;
  --scl-icon-size: Size of the icon;</code></pre>
<p>These variables provide a high degree of customization, empowering users to fine-tune the aesthetic aspects of the social sharing buttons to integrate with their website design seamlessly.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Git™ Repository</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/host-static-website-git-repository.html"/>
        <id>https://getpublii.com/docs/host-static-website-git-repository.html</id>
        <media:content url="https://getpublii.com/docs/media/posts/80/image8.png" medium="image" />
            <category term="hosting"/>
            <category term="deployment"/>
            <category term="cloud"/>

        <updated>2023-11-27T12:51:17+01:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://getpublii.com/docs/media/posts/80/image8.png" alt="Static website with GitLab Pages" />
                    Publii version 0.44 introduces Git™ repository support, enhancing website synchronization and data management. Note: Starting with version 0.44, Publii is beginning the phase-out of GitHub&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <p><img src="https://getpublii.com/docs/media/posts/80/image8.png" class="type:primaryImage" alt="Static website with GitLab Pages" /></p>
                <p>Publii version 0.44 introduces Git™ repository support, enhancing website synchronization and data management.</p>
<p class="msg  msg--warning"><strong>Note:</strong> Starting with version 0.44, Publii is beginning the phase-out of GitHub and GitLab integrations. These integrations will be <strong>fully deprecated by version 0.46</strong>, which is expected to be released in early 2024.</p>
<h2>The Upside of Git™</h2>
<p>Git™, a widely used version control system, now forms a core part of Publii's data synchronization process. By incorporating Git™, Publii now offers more robust and versatile support for various repository services, such as GitHub, GitLab, and Bitbucket, thus broadening the scope for user compatibility and flexibility in website management.</p>
<h2>Detailed Workflow Process</h2>
<p>With the new update, Publii's workflow optimizes website updates using Git™. Here's how it works:</p>
<ol>
<li>
<p><strong>Content Pulling</strong>: Publii initially performs a check against your Git™ repository, verifying if the content aligns with the local version in Publii. This step is critical in ensuring no discrepancies between the repository and the local content. This verification process is crucial to preventing conflicts during synchronization and maintaining the integrity of your content updates.</p>
</li>
<li>
<p><strong>Website Content Overrides</strong>: When rendering the website, the content from your local version of the website takes precedence over the current state in the repository. Any updates or changes you have made locally will supersede what is in the repository.</p>
</li>
<li>
<p><strong>Commit Creation and Push</strong>: After synchronization, a commit is created from the files that have been changed. This commit is then pushed back to your Git™ repository. This process ensures that your repository is up-to-date with the latest changes made to your website.</p>
</li>
</ol>
<p class="msg msg--info"><strong>Essential Reminder:</strong> Remember, changes made in your Git™ repository won't impact your website content as they will be overridden by Publii's rendering process and the new commit generated from your local changes.</p>
<h2>Configuration Guide</h2>
<p>Before you dive into the Git™ settings, it's essential to understand the role of each field. The configuration you apply here will set the stage for how Publii communicates with your Git™ repository, ensuring your content is seamlessly pushed to the web.</p>
<figure class="post__image"><img loading="lazy"  src="https://getpublii.com/docs/media/posts/80/git-pages-configuration-2.svg" alt="Git Repository UI" width="748" height="875"></figure>
<p>After selecting 'Git™ Repository' as your server type in the server settings, proceed to fill in the Git™ repository details:</p>
<ul>
<li><strong>Website URL: </strong>The URL of your live website. This is the address where your site will be accessible to the public once deployed. Ensure it matches the domain you plan to use. If you employ a custom domain, this URL should be the domain name (e.g., <code>yourwebsite.com</code>).
<p class="msg msg--info"><strong>Please remember</strong> to place a CNAME file in the root files under the File Manager tool if you use a custom domain. Additionally, if you have files that Publii does not generate but want to be retained during synchronization, it's essential to also locate these files in the File Manager. This step ensures that external or manually added files are not overwritten or deleted during the synchronization process with Publii. </p>
</li>
<li><strong>Repository URL</strong>: Your repository's web address.</li>
<li><strong>Branch</strong>: 'main' or 'master' are the usual suspects.</li>
<li><strong>Username</strong>: The identity you assume with your Git™ service.</li>
<li><strong>Password/Token</strong>: A secret key or a personal access token. If you use 2FA to protect your account, you must use a previously generated access token instead of a password.</li>
<li><strong>Commit author email</strong>: The scribe of your commits.</li>
<li><strong>Commit message</strong>: "Publii: update content" is a solid default.</li>
</ul>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Smart Replacer Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/smart-replacer.html"/>
        <id>https://getpublii.com/docs/smart-replacer.html</id>
            <category term="plugins"/>

        <updated>2023-11-27T12:54:44+01:00</updated>
            <summary>
                <![CDATA[
                    Introduction The Smart Replacer Plugin is a powerful tool for automating text and regular expression replacements throughout your Publii website. This guide offers a comprehensive&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <h2>Introduction</h2>
<p>The Smart Replacer Plugin is a powerful tool for automating text and regular expression replacements throughout your Publii website. This guide offers a comprehensive walkthrough for enabling, configuring, and using the plugin to its full potential.</p>
<h2>Enabling the Plugin</h2>
<ol>
<li>Open the Publii application and go to the <strong>Tools &amp; Plugins</strong> section.</li>
<li>Find the Smart Replacer plugin from the list of installed plugins.</li>
<li>Activate it by toggling the switch button at the plugin tile's bottom-left corner.</li>
</ol>
<h2>Configuration Overview</h2>
<p>Once the plugin is enabled, you'll find various configuration options to control how the text and regular expression replacements function. These settings are categorized under "General Settings," "Replacement Rules," "Regular Expressions Rules," and "Global Regular Expressions Rules," each serving a specific purpose in how the plugin behaves.</p>
<h2>General Settings</h2>
<p><strong>Enable Global Configuration</strong>: Check this box if you want a single set of configurations to apply to all rules. If enabled, all rules will share these global settings. Disable this to configure each rule individually.</p>
<h3>Application Scope</h3>
<p>These options define where your rules will be applied. Each of these settings is accessible only when the Global Configuration is enabled.</p>
<ul>
<li><strong>Apply Rules to Excerpt</strong>: Enables the application of the replacement rules to the excerpts of your posts.</li>
<li><strong>Apply Rules to Post Content</strong>: Ensures the replacement rules are applied to the body text of your posts.</li>
<li><strong>Apply Rules to Post Title</strong>: Activates the replacement rules for the titles of your posts.</li>
</ul>
<h2>Replacement Rules</h2>
<p>This section is designed for creating rules specific to plain text replacements.</p>
<ul>
<li><strong>Value to Replace</strong>: Specify the text fragment you aim to replace.</li>
<li><strong>Text to Use</strong>: Insert the text to replace the specified fragment.</li>
<li><strong>Use in Excerpt</strong>: If Global Configuration is disabled, check this box to apply this rule to post excerpts.</li>
<li><strong>Use in Post Text</strong>: If Global Configuration is disabled, check this box to apply this rule to the body text of posts.</li>
<li><strong>Use in Post Title</strong>: If Global Configuration is disabled, check this box to apply this rule to post titles.</li>
</ul>
<p class="msg msg--highlight"><strong>Example:</strong> If you want to replace the term "CMS" with "Content Management System" throughout your posts, set <strong>Value to Replace</strong>: CMS and <strong>Text to Use</strong>: Content Management System. You can also create a shortcode, such as <code>[banner]</code>, and replace it with an ads banner or any other text.</p>
<h2>Regular Expressions Rules</h2>
<p>This section allows you to create rules that utilize regular expressions for more complex replacements.</p>
<ul>
<li><strong>Regular Expression</strong>: Input the regular expression pattern to be matched.</li>
<li><strong>Text to Use</strong>: Define the text that will replace the matched regular expression.</li>
<li><strong>Use in Excerpt</strong>: If Global Configuration is disabled, enable this rule for post excerpts.</li>
<li><strong>Use in Post Text</strong>: If Global Configuration is disabled, enable this rule for the text body of posts.</li>
<li><strong>Use in Post Title</strong>: If Global Configuration is disabled, enable this rule for post titles.</li>
</ul>
<p class="msg msg--highlight"><strong>Example:</strong> To add a "noffolow" attribute and icon to any external URL address set: <strong>Regular Expression</strong>: <code>/&lt;a href="http:\/\/|https:\/\/(?!www\.yourdomain\.com)(.*?)"&gt;/g</code> and <strong>Text to Use</strong>: <code>&lt;a href="http://$1" target="_blank" rel="noffolow"&gt;&lt;i class="external-icon"&gt;&lt;/i&gt;</code></p>
<h2>Global Regular Expressions Rules</h2>
<p>These are similar to the Regular Expressions Rules but apply globally across different elements and pages of the website.</p>
<ul>
<li><strong>Regular Expression</strong>: Define the global regular expression pattern.</li>
<li><strong>Text to Use</strong>: Enter the global replacement text.</li>
<li><strong>Select Range for this Rule</strong>: Choose whether this global rule will apply to the <code>&lt;head&gt;</code>, <code>&lt;body&gt;</code>, or the entire <code>&lt;html&gt;</code> of the page.</li>
<li><strong>On Which Pages Use this Rule?</strong>: Decide whether this global rule should be applied on all pages or only selected ones. Further granularity is provided for specifying pages like homepage, posts, tags, or authors.</li>
</ul>
<p class="msg msg--highlight"><strong>Example:</strong> To replace all instances of "http" with "https" in the entire HTML set: <strong>Regular Expression</strong>: <code>/http:\/\//g</code> and <strong>Text to Use</strong>: <code>https://</code></p>
<h2>Advanced Settings</h2>
<p>The Advanced Settings section offers control over the execution priority of text and regular expression replacements in different contexts. This is particularly useful when multiple plugins affect the same content areas.</p>
<h3>Setting Priorities</h3>
<p>You can set priorities for each content area: post titles, post text, post excerpts, and the overall HTML output.</p>
<ul>
<li><strong>Post Title Replacement Priority</strong>: This setting allows you to specify the execution order for title replacements when multiple plugins are active. A higher value means this plugin's operations will execute later.</li>
<li><strong>Post Content Replacement Priority</strong>: Define the priority for text replacements within the post content. Again, a higher value delays this plugin's operation.</li>
<li><strong>Post Excerpt Replacement Priority</strong>: Use this to control the priority for excerpt text replacements when other plugins can modify the excerpt. A higher value will postpone this plugin's changes.</li>
<li><strong>HTML Output Replacement Priority</strong>: This setting controls the priority for HTML output replacements. A higher value will postpone this plugin's changes if multiple plugins modify the HTML.</li>
</ul>
<p class="msg msg--highlight msg--info"><strong>Note:</strong> The default value for all priority settings is 1. You can adjust these based on your requirements to avoid conflicts with other plugins.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Advanced Head Tag Manager Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/advanced-head-tag.html"/>
        <id>https://getpublii.com/docs/advanced-head-tag.html</id>
            <category term="plugins"/>

        <updated>2024-01-10T11:14:11+01:00</updated>
            <summary>
                <![CDATA[
                    The Advanced Head Tag Manager plugin offers extensive control over the metatags of your Publii website. This comprehensive guide provides step-by-step instructions on effectively enabling,&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>The Advanced Head Tag Manager plugin offers extensive control over the metatags of your Publii website. This comprehensive guide provides step-by-step instructions on effectively enabling, configuring, and using this plugin.</p>
<p class="msg msg--info">While the Advanced Head Tag Manager plugin offers powerful customization options for your website's metatags, it requires a good understanding of SEO principles and web development. Incorrect usage can potentially negatively impact your site’s SEO performance. Ensure you are familiar with SEO best practices before making advanced changes.</p>
<h2>Enabling the Plugin</h2>
<ol>
<li>Open the Publii application and navigate to the <strong>Tools &amp; Plugins</strong> section.</li>
<li>Locate the <strong>Advanced Head Tag Manager</strong> plugin in the list of installed plugins.</li>
<li>Activate the plugin by clicking the switch button at the bottom-left corner of the plugin tile.</li>
</ol>
<h2>Advanced Head Tag Settings</h2>
<p>This section provides a range of options to customize various aspects of how metatags are managed on your website. The settings are organized into different groups, such as "Global Changes," "Homepage," "Posts," and more, allowing you to tailor the plugin's behavior both globally and for specific types of pages.</p>
<h3>Global Changes</h3>
<p>Unless overridden by specific page settings, these settings apply globally across your entire website.</p>
<ul>
<li><strong>Remove generator metatag</strong>: Enabling this option will remove the generator metatag that typically displays "Publii Open-Source CMS for Static Site." This is useful for obscuring your CMS, which can be a security measure.</li>
<li><strong>Remove charset metatag</strong>: This allows you to remove the charset metatag, which specifies the character encoding for the HTML document. If you remove this metatag, add your own appropriate charset declaration to avoid character encoding issues.</li>
<li><strong>Remove viewport metatag</strong>: Removes the viewport metatag, affecting how your site scales on mobile devices. Be cautious with this setting, as the absence of a viewport metatag can significantly impact your website's mobile-friendliness, which Google considers for ranking. Only remove this metatag if you intend to use a custom viewport metatag. Neglecting this can result in your website being treated as non-mobile by search engines, adversely affecting your site's SEO.</li>
<li><strong>Remove X-UA-Compatible metatag</strong>: This removes the metatag used for specifying document compatibility modes in IE.</li>
<li><strong>Metatags to Remove: </strong>You can specify additional metatags to be removed globally from your site. You'll have to determine the <code>type</code> (<code>name</code>, <code>property</code>, or <code>http-equiv</code>) and the <code>value</code> for each tag.</li>
<li><strong>&lt;head&gt; code to add: </strong>Add custom code snippets to all pages' head sections. For dynamic content, you can use insertions like <code>{meta_title}</code>, <code>{meta_description_raw}</code>, <code>{meta_description_raw}</code>, <code>{meta_robots_raw}</code> <br><br>Example: 
<pre class="language-html"><code>&lt;meta name="custom-meta" content="{meta_title}"&gt;</code></pre>
</li>
</ul>
<h3>Homepage</h3>
<p>These settings apply only to the homepage, overriding any global settings.</p>
<ul>
<li><strong>Modify homepage metatags</strong>: Check this box to enable customization of homepage-specific metatags.</li>
<li><strong>Metatags to Remove: </strong>Add specific metatags to be removed from the homepage. Similar to the global settings, you'll need to specify the <code>type</code> and <code>value</code>.</li>
<li><strong>&lt;head&gt; code to add:</strong> Add custom code to the head section of the homepage. The same insertions available in global settings can be used here.<br><br>Example: 
<pre class="language-html"><code>&lt;meta name="custom-meta" content="{meta_title_raw}"&gt;</code></pre>
</li>
</ul>
<h3>Posts, Tags, Authors, Pagination, 404 Error Page, and Search Page</h3>
<p>For each section corresponding to the type of page, you can enable or disable the modification of metatags specific to those pages. These settings will override global settings if enabled. Each section allows you to:</p>
<ul>
<li>Remove specific metatags</li>
<li>Add custom code to the <code>&lt;head&gt;</code> section</li>
</ul>
<p>Each page type, such as the homepage, has unique insertions that can be checked in the notes provided within the plugin or in the table below:</p>
<table style="width: 100%;">
<thead>
<tr>
<th style="width: 22.8398%;"><strong>Page Type</strong></th>
<th style="width: 77.1602%;"><strong>Available Insertions</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 22.8398%;">Global Changes</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Homepage</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Posts</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}, {post_id}, {post_title}, {post_slug}, {post_url}, {post_author_name}, {post_author_username}, {post_author_avatar}, {post_author_avatar_image_alt}, {post_author_avatar_height}, {post_author_avatar_url}, {post_author_avatar_width}, {post_author_email}, {post_author_website}, {post_author_posts_number}, {post_author_description}, {post_author_url}, {post_featured_image_url}, {post_featured_image_alt}, {post_featured_image_caption}, {post_featured_image_credits}, {post_featured_image_height}, {post_featured_image_width}, {post_featured_image_srcset}, {post_featured_image_sizes}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Tags</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}, {tag_id}, {tag_name}, {tag_description}, {tag_slug}, {tag_url}, {tag_featured_image_url}, {tag_featured_image_alt}, {tag_featured_image_caption}, {tag_featured_image_credits}, {tag_featured_image_height}, {tag_featured_image_width}, {tag_featured_image_srcset}, {tag_featured_image_sizes}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Authors</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}, {author_id}, {author_name}, {author_username}, {author_avatar}, {author_avatar_image_alt}, {author_avatar_image_height}, {author_avatar_image_url}, {author_avatar_image_width}, {author_email}, {author_website}, {author_posts_number}, {author_description}, {author_url}, {author_featured_image_url}, {author_featured_image_alt}, {author_featured_image_caption}, {author_featured_image_credits}, {author_featured_image_height}, {author_featured_image_width}, {author_featured_image_srcset}, {author_featured_image_sizes}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Pagination</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}</td>
</tr>
<tr>
<td style="width: 22.8398%;">404 Error Page</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}</td>
</tr>
<tr>
<td style="width: 22.8398%;">Search Page</td>
<td style="width: 77.1602%;">{meta_title}, {meta_title_raw}, {meta_description_raw}, {meta_robots_raw}</td>
</tr>
</tbody>
</table>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Syntax Highlighter Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/syntax-highlighter.html"/>
        <id>https://getpublii.com/docs/syntax-highlighter.html</id>
            <category term="plugins"/>

        <updated>2024-01-03T12:39:01+01:00</updated>
            <summary>
                <![CDATA[
                    The Syntax Highlighter plugin, with Prism.js integration, is a versatile addition to your website, ensuring your code snippets stand out and are easily readable. By&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>The Syntax Highlighter plugin, with Prism.js integration, is a versatile addition to your website, ensuring your code snippets stand out and are easily readable. By presenting code visually appealingly, this plugin guarantees that developers and readers alike have an optimal experience. Below is a comprehensive guide to enabling and configuring the Syntax Highlighter plugin for maximum utility.</p>
<h2>Enabling the Plugin</h2>
<ol>
<li>Open the Publii app and go to the Tools &amp; Plugins section.</li>
<li>Find the Syntax Highlighter plugin on the list of installed plugins.</li>
<li>Click the switch button in the bottom-left corner of the plugin tile to activate it.</li>
</ol>
<h2>Syntax Highlighter Settings</h2>
<p>Once the Syntax Highlighter plugin is enabled, you can access its settings screen. Here, the settings are conveniently divided into three categories: "Theme Configuration", "Display Options", and "Advanced Options".</p>
<h3>Theme Configuration</h3>
<p>The "Theme Configuration" group allows you to modify the appearance of your highlighted code. Here are the settings you can adjust within this group:</p>
<ul>
<li><strong>Themes</strong>: Select from six distinctive color themes to modify the appearance of your highlighted code. Available options include Beige, Black, Brown, Gray, Violet, and White.</li>
</ul>
<h3>Display Options</h3>
<p>The "Display Options" section provides several ways to customize how your code is displayed. The settings available within this group can help make your code more readable and accessible to others:</p>
<ul>
<li><strong>Show line numbers</strong>: Enable this feature to number each line of your code. This offers readers a more accessible reference point.</li>
<li><strong>‘Copy to Clipboard’ button</strong>: Allows users to copy code snippets with just one click.</li>
<li><strong>Inline color preview</strong>: Handy for style sheets, this feature lets readers visualize color codes through an inline preview.</li>
<li><strong>Auto linking</strong>: Turn URLs and emails within your code into clickable links.</li>
<li><strong>Show hidden characters</strong>: This feature uncovers hidden characters like tabs and line breaks. It's especially useful for those aiming for a deeper grasp of underlying code structures.</li>
</ul>
<h3>Advanced Options</h3>
<p>The "Advanced Options" section allows you to customize how the plugin scripts load. Here are the settings available within this group:</p>
<ul>
<li><strong>Load on</strong>: Decide where you want the syntax highlighter scripts to load:
<ul>
<li>Only on post pages</li>
<li>On all pages (excluding ‘404’ and ‘search’ pages)</li>
</ul>
</li>
</ul>
<p>Remember, after making your desired changes, it's crucial to click on the "Save" button at the bottom-right of the settings screen to ensure your modifications take effect.</p>
<h2>Using the Syntax Highlighter plugin</h2>
<p>The Syntax Highlighter plugin in Publii offers versatile options for integrating code into your content, whether using the Block Editor or the enhanced WYSIWYG editor.</p>
<h3 class="h6">Block Editor Integration</h3>
<p>With the Block Editor, embedding code is straightforward. When you write your code within the CODE block, it is automatically formatted and highlighted according to the language specified. This method ensures that the code is displayed correctly with minimal manual intervention.</p>
<h3 class="h6">WYSIWYG Editor Integration</h3>
<p>The WYSIWYG editor now includes a dedicated feature for embedding code. This can be accessed via a button in the editor's menu. Upon clicking this button, a popup appears, allowing you to select the programming language from a dropdown menu and enter your code in a text area. This method automatically wraps your code in the necessary markup for syntax highlighting.</p>
<h3 class="h6">Manual Code Embedding</h3>
<p>Manual code embedding is still available for users who prefer a more hands-on approach or are not using the Block Editor. Enter the following markup in the WYSIWYG editor and add the appropriate class for your code's language:</p>
<pre class="language-html"><code>&lt;pre class="language-sufix"&gt;&lt;code&gt; ...your_code_here... &lt;/code&gt;&lt;/pre&gt;
</code></pre>
<p class="msg msg--info"><strong>Note:</strong> The class "language-<strong>sufix</strong>" represents the language you've written your code. The suffix, the abbreviation of the language in the table above, should be added to the end of the class. For example, the class for HTML code would be "language-html".</p>
<p>This plugin supports the following languages (exactly the same as the Block Editor): </p>
<table style="width: 100%; height: 3398.5px;">
<tbody>
<tr style="height: 53.1016px;">
<th style="width: 49.1945%; height: 53.1016px;">Language</th>
<th style="width: 50.6706%; height: 53.1016px;">Suffix</th>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Apache Configuration</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>apacheconf</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Bash</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>bash</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">BASIC</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>basic</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Batch</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>batch</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">BBcode</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>bbcode</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">C</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>c</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">C-like</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>clike</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">C++</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>cpp</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">ColdFusion Script</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>cfscript</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">CSS</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>css</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Dart</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>dart</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Docker</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>docker</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Elm</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>elm</code></td>
</tr>
<tr>
<td style="width: 49.1945%;">GDScript</td>
<td style="width: 50.6706%;"><code>gdscript</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Git</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>git</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">GLSL</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>glsl</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Go</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>go</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">GraphQL</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>graphql</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">HAML</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>haml</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Handlebars</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>handlebars</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Haskell</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>haskell</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">HTML</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>html</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">HTTP</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>http</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">INI</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>ini</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Java</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>java</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">JavaScript</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>javascript</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">JavaScript Extras</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>js-extras</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">JSONP</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>jsonp</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">JSX</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>jsx</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">JSON</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>json</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Kotlin</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>kotlin</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">LaTeX</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>latex</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Less</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>less</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Lisp</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>lisp</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Lua</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>lua</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Makefile</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>makefile</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Markdown</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>markdown</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Markup</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>markup</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Markup Templating</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>markup-templating</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">MATLAB</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>matlab</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">NASM</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>nasm</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Nginx</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>nginx</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Objective-C</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>objective-c</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Pascal</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>pascal</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Perl</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>perl</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">PHP</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>php</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">PowerShell</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>powershell</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Pug</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>pug</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Python</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>python</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">R</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>r</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Regular Expressions</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>regex</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">RSS</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>rss</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Ruby</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>ruby</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">SASS</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>sass</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">SCSS</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>scss</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Scala</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>scala</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Scheme</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>scheme</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">SQL</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>sql</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Swift</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>swift</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Twig</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>twig</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">TypeScript</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>typescript</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">VB.NET</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>vbnet</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">Visual Basic</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>visual-basic</code></td>
</tr>
<tr style="height: 53.1016px;">
<td style="width: 49.1945%; height: 53.1016px;">YAML</td>
<td style="width: 50.6706%; height: 53.1016px;"><code>yaml</code></td>
</tr>
</tbody>
</table>
<h2>Customizing the Syntax Highlighter Appearance</h2>
<p>The Syntax Highlighter plugin allows you to customize the appearance of code blocks using CSS variables. This gives you a great deal of control over the look and feel of your code and allows you to create a consistent style across your entire website.</p>
<p>The plugin offers six pre-defined themes for syntax highlighting. You can easily adapt and override these themes by copying the CSS blocks (variables) below into the Custom CSS tool.</p>
<pre class="language-css"><code>/* Beige Theme */
:root {
   --prism-text: #323C53;
   --prism-bg: #F5F2F0;
   --prism-light-shadow: white;
   --prism-selection: #B3D4FC;
   --prism-comment: slategray;
   --prism-punctuation: #999;
   --prism-namespace-opacity: 0.7;
   --prism-property: #905;
   --prism-string: #690;
   --prism-operator: #9A6E3A;
   --prism-operator-bg: rgba(255, 255, 255, 0.5);
   --prism-atrule: #07A;
   --prism-function: #DD4A68;
   --prism-regex: #E90;
   --prism-border: rgba(112, 128, 144, 0.7);
   --prism-space: #808080;
   --prism-url: #CF222E;
}</code></pre>
<pre class="language-css"><code>/* Black Theme */
:root {
   --prism-text: #F6F6F9;
   --prism-bg: #1E2128;
   --prism-light-shadow: rgba(0, 0, 0, 0.3);
   --prism-selection: #C1DEF1;
   --prism-comment: rgba(255, 255, 255, .5);
   --prism-punctuation: #B3B9C5;
   --prism-boolean: #E1A6F2;
   --prism-namespace-opacity: .7;
   --prism-property: #6AB0F3;
   --prism-string: #FFD479;
   --prism-operator: #AC8D58;
   --prism-atrule: #92D192;
   --prism-keyword: #FFEEAD;
   --prism-regex: #FD971F;
   --prism-border: #4C4C4C;
   --prism-space: #808080;
   --prism-url: #ED8EB2;
}</code></pre>
<pre class="language-css"><code>/* Brown Theme */
:root {
   --prism-text: #D7CFD6;
   --prism-bg: #322931;
   --prism-light-shadow: rgba(0, 0, 0, 0.3);
   --prism-selection: #C1DEF1;
   --prism-comment: #797379;
   --prism-punctuation: #B9B5B8;
   --prism-boolean: #FD8B19;
   --prism-namespace-opacity: .7;
   --prism-property: #FDCC59;
   --prism-string: #149B93;
   --prism-operator: #FD8B19;
   --prism-atrule: #149B93;
   --prism-keyword: #8FC13E;
   --prism-regex: #149B93;
   --prism-border: #6F5B6D;
   --prism-space: #876F84;
   --prism-url: #FD8A7D;
}</code></pre>
<pre class="language-css"><code>/* Gray Theme */
:root {
   --prism-text: #323C53;
   --prism-bg: #F6F6F6;
   --prism-text-shadow: 0 1px white;
   --prism-selection: #B3D4FC;
   --prism-comment: #666F78;
   --prism-punctuation: #999;
   --prism-namespace-opacity: .7;
   --prism-property: #C0341D;
   --prism-selector: #2D61C9;
   --prism-operator: #9A6E3A;
   --prism-operator-bg: rgba(255, 255, 255, 0.5);
   --prism-atrule: #07A;
   --prism-function: #E09142;
   --prism-regex: #E90;
   --prism-border: rgba(112, 128, 144, 0.7);
   --prism-space: #808080;
   --prism-url: #C0341D;
}</code></pre>
<pre class="language-css"><code>/* Violet Theme */
:root {
   --prism-text: #AFA0FE;
   --prism-bg: #2A2734;
   --prism-light-shadow: #4285F4;
   --prism-selection: #4285F4;
   --prism-comment: #959DAD;
   --prism-punctuation: #959DAD;
   --prism-namespace-opacity: .7;
   --prism-property: #9EBEFF;
   --prism-function: #9EBEFF;
   --prism-string: #FC9;
   --prism-operator: #DFEAFF;
   --prism-atrule: #EBF2FF;
   --prism-border: #3E4552;
   --prism-space: #808080;
   --prism-url: #FC98E9;
}</code></pre>
<pre class="language-css"><code>/* White Theme */
:root {
   --prism-text: #24292F;
   --prism-bg: white;
   --prism-light-shadow: white;
   --prism-selection: #9FC6E9;
   --prism-comment: #6E7781;
   --prism-punctuation: #24292F;
   --prism-namespace-opacity: .7;
   --prism-property: #0550AE;
   --prism-string: #0A3069;
   --prism-operator: #0550AE;
   --prism-atrule: #CF222E;
   --prism-function: #8250DF;
   --prism-regex: #0A3069;
   --prism-border: #D1D4D8;
   --prism-space: #808080;
   --prism-url: #CF222E;
}</code></pre>
<h3>Choosing Different Themes for Light and Dark Modes</h3>
<p>If you'd like to use a different theme for dark mode (e.g., the black theme) while maintaining a different theme in light mode, you can achieve this using the <code>prefers-color-scheme</code> media query. Here's how you can apply the black theme for dark mode:</p>
<pre class="language-css"><code>@media (prefers-color-scheme: dark) {
   /* Black Theme */
   :root {
      --prism-text: #F6F6F9;
      --prism-bg: #1E2128;
      ... [rest of the variables]
   }
}
</code></pre>
<p>By copying the above code into your Custom CSS tool on your website, the black theme will automatically be applied in dark mode, while your previously selected theme will remain in light mode.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Collapsible TOC Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/collapsible-toc.html"/>
        <id>https://getpublii.com/docs/collapsible-toc.html</id>
            <category term="plugins"/>

        <updated>2023-06-21T08:53:42+02:00</updated>
            <summary>
                <![CDATA[
                    The Collapsible TOC plugin is a dynamic addition to Publii that modifies the Table of Contents (TOC) which can be generated in Publii's editors. The&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>The Collapsible TOC plugin is a dynamic addition to Publii that modifies the Table of Contents (TOC) which can be generated in Publii's editors. The plugin does not create a TOC, but provides features to enhance accessibility and navigation of an existing TOC by making the TOC structure more semantic and introducing accessibility improvements like ARIA attributes.</p>
<h2>Enabling the Plugin</h2>
<p>To activate the Collapsible TOC plugin, navigate to the Tools &amp; Plugins section of the Publii app, accessible via the left-hand menu. Here, you'll find a list of installed plugins. In this list, locate the Collapsible TOC tile and click on the switcher button in the bottom-left corner of the tile to activate the plugin.</p>
<p>Immediately upon activation, the plugin will modify any existing Tables of Contents on your site, adding collapsible functionality and a range of customizable features. However, the Collapsible TOC plugin also offers a number of settings that you can adjust to ensure it aligns with your requirements.</p>
<p>To access these settings, click on the Collapsible TOC tile again, but make sure to click anywhere except on the switcher button. This will open the settings screen where you can adjust various aspects of the plugin. Please note, this settings screen will not be accessible if the plugin is not enabled first.</p>
<h2>Collapsible TOC Settings</h2>
<p>When the Collapsible TOC plugin is activated, a settings screen becomes available. On this screen, you will find two main groups of settings that you can customize: "Options" and "Theme integration".</p>
<h3>Options</h3>
<p>The "Options" group provides control over the functionality and display of the collapsible Table of Contents. Here are the settings you can adjust within this group:</p>
<ul>
<li><strong>Toggle view:</strong> Controls the initial visibility state of the Table of Contents. When this option is enabled, the Table of Contents will be collapsed by default, but may be expanded or collapsed by the user. If this option is not enabled the TOC will be expanded by default, but can still be collapsed by the user if needed.</li>
<li><strong>Toggle element:</strong> Select which element (the TOC header, the button, or both) will toggle the TOC subsection visibility when clicked.</li>
<li><strong>Show/Hide button text:</strong> Customize the text that will be displayed on the button when the TOC is hidden or shown.</li>
<li><strong>Automatic height:</strong> Enable this to adjust the TOC height dynamically based on the content; if not enabled, the height can be configured manually.</li>
<li><strong>Custom maximum height:</strong> Only visible if the <strong>Automatic Height</strong> option is disabled. Allows a custom value for the maximum height of the TOC to be entered using pixels (px) or root element (rem) e.g. "500px", "20rem".</li>
</ul>
<h3>Theme Integration</h3>
<p>The "Theme Integration" group focuses on how the TOC integrates with your Publii's theme. Here are the settings available within this group:</p>
<ul>
<li><strong>Header title:</strong> Customize the content of the TOC header; if left blank, the default content from the article in which the TOC appears will be used.</li>
<li><strong>Heading level:</strong> Change the heading level for the TOC header. Publii generates an H3 heading by default, but here you can change it to any heading level from H1 to H6 as needed.</li>
<li><strong>List Style:</strong> This option allows users to choose the numbering style for their Table of Contents. Select the appropriate option in the drop-down list to specify your preferred styling:
<ul>
<li><strong>Decimal (1, 2, 3, 4, 5, ...):</strong>  decimal numbers.</li>
<li><strong>Decimal Leading Zero (01, 02, 03, 04, 05, ...):</strong> decimal numbers with a leading zero for single-digit numbers.</li>
<li><strong>Lower Roman (i, ii, iii, iv, v, ...):</strong> lowercase Roman numerals.</li>
<li><strong>Upper Roman (I, II, III, IV, V, ...):</strong> uppercase Roman numerals.</li>
<li><strong>Lower Alpha/Latin (a, b, c, d, e, ...):</strong> lowercase letters.</li>
<li><strong>Upper Alpha/Latin (A, B, C, D, E, ...):</strong> uppercase letters.</li>
<li><strong>Lower Greek (α, β, γ, δ, ε, ...):</strong> lowercase Greek letters.</li>
<li><strong>None - no markers:</strong> this option will not apply any specific numbering or bullet style to the TOC entries.</li>
</ul>
</li>
<li><strong>Scroll padding top:</strong> Adjust the space between the top of the page and the section heading of the article once the user has clicked on an item in the TOC and the page scrolls to it. This can be helpful to ensure titles and content are not hidden under a header or navigation bar at the top of the screen. 
<p class="msg msg--info"><strong>Tip:</strong> Instead of using specific values such as "2rem" or "2vh", you can utilize a CSS variable like <code>var(--navbar-height)</code> if it's defined in your theme. Using this variable can help ensure that the jumped-to section will not be hidden underneath the top menu bar (header).</p>
</li>
</ul>
<p>Remember to click on the "Save" button at the bottom-right of the screen after making any changes to these settings.</p>
<h2>What code generates the Collapsible TOC?</h2>
<p>After the plugin is activated, the structure of the HTML TOC generated by Publii is transformed to be more semantic and accessible. The standard unordered list (<code>ul</code>) is replaced with an ordered list (<code>ol</code>), denoting the hierarchy of the content. Furthermore, the <code>nav</code> element is used instead of the <code>div</code> to wrap the TOC, which improves the screen reader experience by indicating the navigational role of this section. The ARIA attributes <code>aria-expanded</code> and <code>aria-hidden</code> are used to improve accessibility by providing additional information about the state of the TOC.</p>
<p>Before enabling the plugin, your Table of Contents look like this:</p>
<pre><code class="language-handlebars">&lt;div class="post__toc"&gt;
  &lt;h3&gt;Table of Contents&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="#mcetoc_1h376r6091m"&gt;Introduction&lt;/a&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="#mcetoc_1h376r6091n"&gt;Chapter 1&lt;/a&gt;
          &lt;ul&gt;
            &lt;li&gt;&lt;a href="#mcetoc_1h376r6091o"&gt;Section 1.1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#mcetoc_1h376r6091p"&gt;Section 1.2&lt;/a&gt;&lt;/li&gt;
          &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;&lt;a href="#mcetoc_1h376r6091q"&gt;Chapter 2&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="#mcetoc_1h376r6091v"&gt;Summary&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

</code></pre>
<p>After enabling the plugin:</p>
<pre><code class="language-handlebars">&lt;nav class="post__toc" aria-expanded="false"&gt;
  &lt;h3 id="sublist-0" tabindex="0"&gt;
    &lt;span&gt;Table of Contents&lt;/span&gt;
    &lt;button class="post__toc-toogle"&gt;Show&lt;/button&gt;
  &lt;/h3&gt;
  &lt;ol aria-hidden="true"&gt;
    &lt;li&gt;&lt;a href="#mcetoc_1h376r6091m"&gt;Introduction&lt;/a&gt;
      &lt;ol&gt;
        &lt;li&gt;&lt;a href="#mcetoc_1h376r6091n"&gt;Chapter 1&lt;/a&gt;
          &lt;ol&gt;
            &lt;li&gt;&lt;a href="#mcetoc_1h376r6091o"&gt;Section 1.1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#mcetoc_1h376r6091p"&gt;Section 1.2&lt;/a&gt;&lt;/li&gt;
          &lt;/ol&gt;
        &lt;/li&gt;
        &lt;li&gt;&lt;a href="#mcetoc_1h376r6091q"&gt;Chapter 2&lt;/a&gt;&lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="#mcetoc_1h376r6091v"&gt;Summary&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/nav&gt;
</code></pre>
<p>Remember, by adjusting the settings in the plugin, you can customize how this structure behaves and looks in your Publii site.</p>
<h2>Customizing the Table of Contents (TOC) Appearance</h2>
<p>While your Publii site's theme primarily dictates the appearance of the Table of Contents (TOC), the 'Collapsible TOC' plugin provides additional control over the styling of the TOC toggle button (Hide/Show). This plugin gives you the ability to enhance the aesthetics of this feature.</p>
<p>These changes may be made in the Custom CSS tool, located in the Tools &amp; Plugins section of the Publii main menu.</p>
<h3>Available CSS variables</h3>
<p>The 'Collapsible TOC' plugin for Publii offers support for CSS variables provided by your site's Publii theme. This compatibility helps ensure the styling of your table of contents (TOC) and the TOC toggle button remains consistent with the rest of your site's aesthetics.</p>
<p>However, there may be situations where you want the TOC to have a distinct appearance that doesn't mirror the rest of your site. In such cases, you can override the theme's CSS variables using the dedicated plugin classes. These dedicated classes allow you to customize the TOC independently of the theme's variables.</p>
<p><span style="color: var(--text-primary-color); font-family: var(--editor-font-family); font-size: inherit; font-weight: var(--font-weight-normal);">Here is a list of CSS variables you can use to adjust the appearance of the TOC. You can copy the entire block of code to your Custom CSS tool and modify it as per your needs. You also have the option to change only specific variables from the list.</span></p>
<pre><code class="language-css">:root {    
    --toc-link-color: red;
    --toc-link-color-hover: black;
    --toc-number-color: black;
    --toc-toggle-color: black;
    --toc-toggle-link-color: red; 
    --toc-toggle-link-color-hover: red;  
  } 
</code></pre>
<p>Here's what each of these variables does:</p>
<ul>
<li><code>--toc-link-color</code>: This variable changes the color of the TOC links.</li>
<li><code>--toc-link-color-hover</code>: This variable changes the color of the TOC links when they are hovered over, active, or in focus.</li>
<li><code>--toc-number-color</code>: This variable modifies the color of the numbers or bullets in the TOC.</li>
<li><code>--toc-toggle-color</code>: This variable changes the color of the TOC toggle button, specifically the square brackets.</li>
<li><code>--toc-toggle-link-color</code>: This variable changes the color of the TOC toggle button link.</li>
<li><code>--toc-toggle-link-color-hover</code>: This variable changes the color of the TOC toggle button link when it is hovered over.</li>
</ul>
<h3>Customizable CSS Classes for TOC Elements</h3>
<p>In addition to CSS variables, the 'Collapsible TOC' plugin also provides specific CSS classes that target various elements of the Table of Contents. Using these classes, you can precisely adjust the appearance of individual components of the TOC to meet your site's styling requirements.</p>
<p>Here's a rundown of the classes you can use to style the TOC:</p>
<pre><code class="language-css">/* Main container for the Table of Contents */
.post__toc {}

/* Table of Contents when it's expanded */
.post__toc[aria-expanded="true"] {}

/* Table of Contents when it's collapsed */
.post__toc[aria-expanded="false"] {}

/* The hide/show for showing and hiding the Table of Contents */
.post__toc-toggle {}
    
/* Styling for the hide/show button when hovered, active or focused */
.post__toc-toggle:hover, 
.post__toc-toggle:active, 
.post__toc-toggle:focus {}

/* Styling for the square brackets elements before and after the hide/show button */
.post__toc-toggle::before, 
.post__toc-toggle::after {}
    
/* Styling for the table of contents header, which contains the text and hide/show button. 
   The tag (H3 here) could vary based on the option chosen in the plugin settings, and can range from H1 to H6. */
.post__toc h3 {}

/* The ordered list (ol) directly under the main container */
.post__toc &gt; ol {}

/* The ordered list when it's visible */
.post__toc &gt; ol[aria-hidden="false"] {}

/* The ordered list when it's hidden */
.post__toc &gt; ol[aria-hidden="true"] {}

/* All ordered lists (ol) in the Table of Contents */
.post__toc ol {}

/* List items (li) in the ordered list (ol) */
.post__toc ol li {}
    
/* Styling for the anchor links (a) in the table of contents */
.post__toc a {}

/* Styling for the numbers appearing before the anchor links */
.post__toc a::before {}
</code></pre>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Matomo Analytics Integration Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/matomo-analytics.html"/>
        <id>https://getpublii.com/docs/matomo-analytics.html</id>
            <category term="plugins"/>

        <updated>2022-06-28T12:33:15+02:00</updated>
            <summary>
                <![CDATA[
                    With GDPR-compliance and privacy being hot-topics in the online world, Matomo Analytics seeks to offer users an alternative to tracking-heavy analytics solutions such as Google.
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>With GDPR-compliance and privacy being hot-topics in the online world, <a href="https://matomo.org/" target="_blank" rel="nofollow noopener">Matomo Analytics</a> seeks to offer users an alternative to tracking-heavy analytics solutions such as Google. With over 250 different settings to fine-tune your analytics, multiple data visualizations, and the option to use a full GDPR-compliant cookieless tracking mode, Matomo Analytics is a superb choice for users that want useful data without compromising privacy.</p>
<p>With this plugin, integrating Matomo Analytics into your Publii site is a cinch; no need to manually add code to your site, and GDPR-cookie banner compatibility allows visitors to easily provide consent to tracking cookies if required.</p>
<h2>Setting Up Matomo</h2>
<p>Before using the plugin, an account must be created with Matomo in order to receive the credentials required to activate the plugin, and to configure the analytical options to suit your site's needs. To create an account, follow these steps:</p>
<ol>
<li>Open your browser to <a href="https://matomo.org/" target="_blank" rel="nofollow noopener">Matamo's homepage</a> and click on the <strong>Try Free Cloud Trial</strong> button in the header to be taken to the account creation screen.</li>
<li>On the account creation screen, you will need to enter your <strong>email address</strong> and provide the <strong>URL for the website you wish to track</strong>. Once done, make sure to click the checkbox to accept the terms and conditions, then click the <strong>Start improving your websites now</strong> button to continue.</li>
<li>An email will be sent by Matomo with a Matomo analytics domain for your site, plus a username and password that you will need to use to login to your account. Once you have received this email, you can proceed to the next step.</li>
<li>On the next screen you will need to complete the account creation process; enter your <strong>Matomo Analytics</strong> domain as provided in the account creation email from the previous step, then click the <strong>Log in</strong> button. Keep a note of this domain as you will need to enter it into the Publii plugin settings later.</li>
<li>A new login screen will open; here you will need to enter the <strong>Username and Password</strong> provided by Matomo in their confirmation email, the click the <strong>Log in</strong> button.</li>
<li>Once logged-in, the first screen you will see will be to integrate the tracking code into your site. We don't need this information since the plugin will take care of it for us. Instead, click on the <strong>Integrations tab</strong> under the <strong>Choose your preferred way of setting up</strong> title to open the integration information section.</li>
<li>From this section, make a note of the <strong>Matomo URL</strong> and <strong>site ID</strong>; we will need to enter this information into the plugin in Publii to allow your site to start tracking analytics. Your account is now setup and we can move to enabling and setting up the plugin.</li>
</ol>
<h2>Installing the Plugin</h2>
<p>The <strong>Matomo Analytics plugin</strong> is not included in the standard Publii installation; in order to get access to the plugin, it will first need to be downloaded via the <strong>Publii Plugin Marketplace</strong>, then installed through the Publii app. To do so, follow these steps:</p>
<ol>
<li>Open Publii’s <strong>App Menu</strong> by clicking on the three dots icon in the top-right of the app UI; this icon is always visible except when creating or editing a new post, tag or menu.</li>
<li>In the menu that appears, click on <strong>Plugins</strong>. This will take you to the <strong>Plugins</strong> page where you can see any plugins that you have installed.</li>
<li>Click on the <strong>Get More Plugins</strong> box to open your browser at the <strong>Publii Plugins Marketplace</strong>, which displays all the currently available plugins.</li>
<li>Click on the <a href="https://marketplace.getpublii.com/plugins/matomo-analytics/" target="" _blank="" rel="nofollow">Matomo Analytics plugin</a> box to open the description page. From here, you can click the <strong>Download</strong> button under the description to download the zipped install package.</li>
<li>Once the download has finished, in the <strong>Plugins</strong> screen of the Publii app, click on the <strong>Install Plugin</strong> button at the top of the page. This will open your file explorer; browse to the folder where you downloaded the plugin file, and select it. Publii will automatically install the plugin and add it to the list of available plugins in both the <strong>Plugins</strong> and <strong>Tools &amp; Plugins</strong> pages in Publii.</li>
</ol>
<h2>Activating the Plugin</h2>
<p>The plugin can be enabled by clicking the switcher button in the <strong>Matomo Analytics</strong> box of the <strong>Tools &amp; Plugins</strong> section of the Publii app. If the switcher changes from grey to blue. then the plugin is enabled. You will need to enter both your <strong>Matomo URL</strong> and <strong>Site ID</strong> into the plugin options before the plugin can function properly; to do so, open the <strong>Plugin Options</strong> screen by clicking anywhere in the Matomo Analytics box anywhere except on the switcher button; this will open the Plugin options screen, where you can add the necessary information. For the other options contained in this section, more details may be found in the next section of this guide.</p>
<h2>Matomo Analytics Plugin Options</h2>
<p>This plugin has two required settings, <strong>Matomo URL</strong> and <strong>Site ID</strong>, but it also includes options for integrating Matomo consent requests into the cookie banner. The options in the plugin are as follows:</p>
<h3>Configuration</h3>
<ul>
<li><strong>Matomo URL</strong> - Enter the Matomo URL as provided in the confirmation email sent by Matomo when creating an account, and also on the Integrations tab of the Matomo settings after logging-in on the Matomo website.</li>
<li><strong>Site ID</strong> - Enter the Site ID as provided via the Integrations tab of the Matomo settings after logging-in on the Matomo website.</li>
<li><strong>Output Code in Preview Mode</strong> - If enabled, the code used to provide tracking data to Matomo Analytics will be included when clicking the <strong>Preview your changes</strong> button in Publii. This is useful when debugging to ensure the code is generated correctly, but generally should be disabled to prevent incorrect data being included in your analytics.</li>
</ul>
<h3>Cookie Banner Integration</h3>
<ul>
<li><strong>Cookie Banner Integration</strong> - Enabling this option will add an option to the built-in Publii cookie banner for users to consent to cookies from Matomo. Depending on your analytics settings in Matomo, cookies may or may not be required.</li>
<li><strong>Cookie Group ID</strong> - This option only becomes available when the <strong>Cookie Banner Integration</strong> option is enabled. Here, you can specify the cookie group that the Matomo cookies should be added to. Make sure to add the group name to the GDPR section of the site settings. You can find instructions on how to do this in the <a href="https://getpublii.com/docs/gdpr-cookie-banner-configuration.html" target="”_blank”" rel="noopener noreferrer">GDPR section of this documentation</a>.</li>
</ul>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Recommended Server Settings</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/recommended-server-settings.html"/>
        <id>https://getpublii.com/docs/recommended-server-settings.html</id>
            <category term="server"/>
            <category term="deployment"/>

        <updated>2023-04-05T10:07:16+02:00</updated>
            <summary>
                <![CDATA[
                    Websites based on Publii don't require much to be able to function correctly; in fact, any server that can host HTML files will be handle&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>Websites based on Publii don't require much to be able to function correctly; in fact, any server that can host HTML files will be handle the basics. However, in order to provide your visitors with a safe, user-friendly site experience, there are some factors that are important to bear in mind when deciding which type of server you want to use to host your site:</p>
<ol class="ordered-list">
<li>Not all servers will be configured to handle directories, causing them to be unable to display the <strong>index.html </strong>file immediately on load. To protect from this issue, we recommend enabling the <strong>Always add index.html</strong> option in the <strong>URLs</strong> section of the <strong>Site Settings</strong>, which are available via the main menu in the left-sidebar of the Publii interface.</li>
<li>The FTP protocol may be simple to use and is certainly supported by Publii, but it is generally recommended to avoid using this protocol as it sends data without encryption, opening up more opportunities for hackers to gain access to your server. Instead, at a minimum we recommend using the <strong>FTPS</strong> protocol, which works exactly the same as regular FTP, but it also encrypts the server access data for additional protection. If possible, users should go one step further and utilize the <strong>SFTP</strong> protocol, which encrypts all traffic (connection, file transfer) to the server for maximum protection.</li>
<li>Publii does not generate empty index.html files for directories, as this would, in many cases, lead to several additional files being uploaded to the server. Therefore, we recommend using a hosting (deployment method) that includes an option to disable directory listing or, alternatively, allows users to disable it manually, for example via the <strong>.htaccess</strong> file.
<p>The following table shows how the different deployment methods handle the directory listing.</p>
<table class="table-bordered" style="width: 100.099%;" border="1">
<tbody>
<tr>
<td style="width: 34.8743%;"><strong>Deployment method</strong></td>
<td style="width: 65.1257%;"><strong>Built-in option</strong></td>
</tr>
<tr>
<td style="width: 34.8743%;">FTP</td>
<td style="width: 65.1257%;">depends on the server configuration <em><small>(can be disabled via the .htaccess file)</small></em></td>
</tr>
<tr>
<td style="width: 34.8743%;">SFTP</td>
<td style="width: 65.1257%;">depends on the server configuration <em><small>(can be disabled via the .htaccess file)</small></em></td>
</tr>
<tr>
<td style="width: 34.8743%;">GitHub</td>
<td style="width: 65.1257%;">disabled by default - returns 404 error page</td>
</tr>
<tr>
<td style="width: 34.8743%;">GitLab</td>
<td style="width: 65.1257%;">disabled by default - returns 404 error page</td>
</tr>
<tr>
<td style="width: 34.8743%;">Netlify</td>
<td style="width: 65.1257%;">disabled by default - returns 404 error page</td>
</tr>
<tr>
<td style="width: 34.8743%;">Google Cloud</td>
<td style="width: 65.1257%;">-</td>
</tr>
<tr>
<td style="width: 34.8743%;">Amazon S3</td>
<td style="width: 65.1257%;">required creating a bucket policy</td>
</tr>
<tr>
<td style="width: 34.8743%;">Manual deployment</td>
<td style="width: 65.1257%;">depends on the available settings of the destination server</td>
</tr>
</tbody>
</table>
</li>
<li>To improve the site experience for your visitors and ensure their security, we strongly recommend using SSL (Secure Sockets Layer) on your website, which will encrypt the traffic between the visitor's web browser and your site's server. This will also have a secondary benefit to your site traffic, as some browsers block pages without an SSL certificate and warns visitors that your site may be dangerous, regardless of the actual content of the site.</li>
</ol>
<p>With these points in mind, you can be sure that both your and your visitors' data will be a lot safer and more secure than before.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>The DocSearch Plugin</title>
        <author>
            <name>Publii Team</name>
        </author>
        <link href="https://getpublii.com/docs/docsearch.html"/>
        <id>https://getpublii.com/docs/docsearch.html</id>
            <category term="search"/>
            <category term="plugins"/>

        <updated>2022-07-06T14:17:37+02:00</updated>
            <summary>
                <![CDATA[
                    DocSearch is unique, free search specifically-designed for technical documentation for open-source projects or technical blogs. Providing fast, accurate search options, DocSearch empowers visitors to find&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p><a href="https://docsearch.algolia.com/" target="_blank" rel="nofollow noopener noreferrer">DocSearch</a> is unique, free search specifically-designed for technical documentation for open-source projects or technical blogs. Providing fast, accurate search options, DocSearch empowers visitors to find the information they need as quickly as possible. With the DocSearch plugin, integrating search into your Publii site takes just a few moments.</p>
<h2>How does DocSearch work?</h2>
<p>Much like other search engines, DocSearch uses a scraper to index your site content; in simple terms, the scraper reads through your website and stores the data, which it can then collate to make a custom search that is effective for your site. Uniquely, DocSearch is targeted to documentation specifically; this means it is designed to help users more effectively find answers to specific questions or subjects within a narrow scope rather than looking for more generalised relevance, and it also offers autocomplete functionality to help users locate the sections that will be more helpful in answering their query.</p>
<p>With the data collected, Algolia will automatically configure a search relevant to your site content, then provide methods to integrate the search into your site. The functionality for the search is handled by DocSearch itself; processing the search query and delivering results occurs separate from your site’s infrastructure.</p>
<h2>Why DocSearch?</h2>
<p>DocSearch is designed purely to provide efficient, relevant documentation searches; this means that it will be more efficient and effective at answering specific queries and pointing you to relevant sections in the documentation, rather than the more general searches that Google or other search engines provide.</p>
<p>If you're running a website providing technical documentation on an open-source project, then DocSearch is the perfect choice as your search provider.</p>
<h2>DocSearch requirements</h2>
<p>DocSearch's mission is to make finding relevant content in technical documentation easier, rather than to create a general search engine that any site can use. Therefore, in order to use DocSearch, each site must meet certain criteria.</p>
<h3>In order to use DocSearch, your website must meet these conditions:</h3>
<ol>
<li>Your website must be publicly available so that DocSearch can index it.</li>
<li>Your website must be a documentation site for an open-source project, or a technical blog. Algolia will reduce the scope of the data that they collect for searches to helpful pages only.</li>
<li>Your website is production-ready; that is, already contains content relevant and useful documentation. Algolia will not accept placeholder or lorem ipsum websites that are intended to be updated later.</li>
</ol>
<h2>How to get started?</h2>
<p>Once your website is online and ready to add search functionality, you should <a href="https://docsearch.algolia.com/apply/" target="_blank" rel="nofollow noopener noreferrer">submit it to DocSearch</a> on their frontpage; the form in the header of the site will allow you to do this. You will only need provide the website URL and your email address so that you can receive the search credentials once they are ready; note that you will also need to be the owner of the website in question and confirm this when submitting your application. Once Algolia accept your submission they will send you the credentials for enabling your search via email.</p>
<p>After receiving the confirmation email, you will need to copy the following data in order to add it into the plugin options:</p>
<ul>
<li>Application ID</li>
<li>Search API Key</li>
<li>Index Name</li>
</ul>
<p>Once the plugin has been enabled and the relevant data added, DocSearch will crawl your website every 24 hours to ensure your search is up-to-date.</p>
<p>The DocSearch team recommend that your site includes a sitemap as this will allow it to better track changes, and it has the added benefit of being considered best practice for SEO. By default Publii generates a full sitemap for you, but if you would like to check that it is enabled or want to exclude content from the sitemap you can do so in the <strong>Settings → Advanced options → Sitemap </strong>section of the Publii interface.</p>
<h2>Enabling the Search Section</h2>
<p>All official Publii themes have a search area built-into the theme, which will need to be enabled before the plugin will be able to function. To enable the search section:</p>
<ol>
<li>In the Publii main menu in the left-sidebar, click on the <strong>Theme Settings</strong> option to open the settings screen.</li>
<li>In the second section of this screen, <strong>Custom Settings</strong>, click on the <strong>Search </strong>tab in the list of options under the custom settings title to open the search options.</li>
<li>Click on the switcher button next to the <strong>Search</strong> option to enable the search bar.</li>
<li>The area is now enabled in your theme, and you can move on to enabling and configuring the DocSearch plugin.</li>
</ol>
<h2>Enabling the Plugin</h2>
<p>To activate the plugin, open the <strong>Tools &amp; Plugins</strong> section of the Publii app via the left-menu to see a list of installed plugins. Click on the switcher button in the bottom-left of the <strong>DocSearch<strong> </strong></strong>box in this list to enable the plugin.</p>
<p>Once both the plugin and search area in the theme have been enabled, we will need to add the <strong>Application ID</strong>, <strong>Search API Key</strong>, and <strong>Index Name </strong>that were provided by DocSearch via email after the submitted site was approved, to the plugin settings.</p>
<p>To open the plugin settings, click on the <strong>DocSearc</strong><strong>h </strong>box once again, anywhere except on the switcher button, and the settings screen will open. Note that this screen will not be available if the plugin is not enabled first.</p>
<h2>DocSearch Options</h2>
<p>As the hard work in crawling your site and creating the search is handled by DocSearch themselves, there are only three options in the plugin, all of which need to be configured before the plugin can function correctly. Make sure that you have the email with your search credentials that DocSearch provided after accepting your site submission to hand so that the relevant information can be added to the plugin options. The settings in the plugin are as follows:</p>
<h3>Search Configuration</h3>
<ul>
<li><strong>Application ID </strong>- Enter the application ID provided by DocSearch in this field.</li>
<li><strong>API Key </strong>- Enter the API Key provided by DocSearch in this field.</li>
<li><strong>Index Name </strong>- Enter the Index Name provided by DocSearch in this field.</li>
</ul>
<p>Once done, save the changes by clicking on the <strong>Save Settings </strong>button at the bottom of the options screen; the plugin will now be ready to use.</p>
<h3>Cookie Banner Integration</h3>
<p>The DocSearch plugin can be enhanced by enabling an option that allows users to consent to the cookies used by DocSearch through the built-in Publii cookie banner. If this option is enabled, one more option will be available:</p>
<ul>
<li><strong>Cookie Group ID</strong> - Enter a ID here for the cookie group that the DocSearch cookies should be included in; e.g. <strong>’funcjonality’</strong>. Make sure to add (if it doesn't exist) this group name to the GDPR section of the site settings. You can find instructions on how to do this in the <a href="file:///Users/tidycustoms/Documents/Publii/sites/documentation/preview/gdpr-cookie-banner-configuration.html">GDPR section of this documentation</a>.</li>
</ul>
            ]]>
        </content>
    </entry>
</feed>
