<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sergej Samsonenko</title>
    <description>The latest articles on DEV Community by Sergej Samsonenko (@sergejcodes).</description>
    <link>https://dev.to/sergejcodes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F567333%2Faeaa8197-7206-45e8-a907-b3d888afc24c.png</url>
      <title>DEV Community: Sergej Samsonenko</title>
      <link>https://dev.to/sergejcodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergejcodes"/>
    <language>en</language>
    <item>
      <title>The Rise of Native Web Components</title>
      <dc:creator>Sergej Samsonenko</dc:creator>
      <pubDate>Mon, 31 Jan 2022 16:17:20 +0000</pubDate>
      <link>https://dev.to/sergejcodes/the-rise-of-native-web-components-4eac</link>
      <guid>https://dev.to/sergejcodes/the-rise-of-native-web-components-4eac</guid>
      <description>&lt;p&gt;Native web components are on the rise. You don't believe it? Here are some statistics to prove otherwise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;According to chromestatus.com as of January 1st, 2022 about &lt;a href="https://chromestatus.com/metrics/feature/timeline/popularity/1689"&gt;&lt;code&gt;17.5%&lt;/code&gt;&lt;/a&gt; of web page loads made use of the CustomElementRegistryDefine feature to define custom elements. On the 1st of January 2021, that number was only about &lt;code&gt;10%&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;According to caniuse.com the browser support for the Custom Elements (V1) spec, is at about &lt;a href="https://caniuse.com/custom-elementsv1"&gt;&lt;code&gt;93.85%&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Web component flaws
&lt;/h2&gt;

&lt;p&gt;So why isn't everybody switching over to web components? Well, multiple reasons. If you ever googled web components and tried to implement them, you would soon realize working with the barebones web components API is no fun. Plus there are tons of features missing that you are accustomed to from common frameworks like Vue, React or Angular. Additionally, they are overly complex, thus setting the barrier to entry unreasonably high. &lt;/p&gt;

&lt;p&gt;There are certainly some other shortcomings but if the developer experience of the system is bad nobody will try to dig deeper.&lt;/p&gt;

&lt;p&gt;What I noticed right off the bat is that a lot of people think they are forced to choose between a framework or native web components for their projects. But here in lies the flaw, it's not an either-or.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thinking outside the box
&lt;/h2&gt;

&lt;p&gt;Everybody had high expectations for native web components but they never lived up to the hype and faded somewhat into the background while React and Vue still remained in the spotlight.&lt;/p&gt;

&lt;p&gt;I think that is about to change, but first, we need to reframe how we think about web components. Native web components are not here to replace common frameworks but instead should be used complementary.&lt;/p&gt;

&lt;p&gt;The strength of web components is their universality, since they're native you can use them anywhere, which makes them perfectly suitable for design systems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Design System is a set of interconnected patterns and shared practices coherently organized.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This means if you are using native web components for your design system you don't have to write the same set of components for every single framework and legacy application that you are using.&lt;/p&gt;

&lt;p&gt;After crafting a bunch of web components for multiple projects myself and fiddling with the web components API, I knew another solution would be required to make working with web components a breeze, and thus Minze was born.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minze
&lt;/h2&gt;

&lt;p&gt;What is &lt;a href="https://minze.dev"&gt;Minze&lt;/a&gt;? Minze is a dead-simple framework for shareable web components. It provides an intuitive abstraction layer around the web components API for creating encapsulated, reusable, cross-framework web components. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👶 Simple - Dive right in by scaffolding a project or using a CDN link.&lt;/li&gt;
&lt;li&gt;⚡ Fast - Tiny footprint ~2KB (minified and compressed).&lt;/li&gt;
&lt;li&gt;🚀 Modern - Based on the latest technologies around web components.&lt;/li&gt;
&lt;li&gt;📦 Shareable - Build component libraries or design systems. Define once, use everywhere.&lt;/li&gt;
&lt;li&gt;🎲 Framework Agnostic - Use Minze with any common framework - React, Vue, Angular ...&lt;/li&gt;
&lt;li&gt;🔒 Typed API - Scale your component library with ease by using TypeScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's what Minze looks like included via npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;MinzeElement&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;minze&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;MyElement&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;MinzeElement&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`Hello Minze!`&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;MyElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;define&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;my-element&amp;gt;&amp;lt;/my-element&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And here's what Minze looks like included via CDN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;my-element&amp;gt;&amp;lt;/my-element&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"//unpkg.com/minze@latest"&lt;/span&gt; &lt;span class="na"&gt;defer&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"module"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;MyElement&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;MinzeElement&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`Hello Minze!`&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;

      &lt;span class="nx"&gt;MyElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;define&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Easy, right? Feel free to share your thoughts on the web components topic in the comments below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Find out more about Minze&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/n6ai/minze"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://minze.dev"&gt;minze.dev (Documentation)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Design buttons like a Pro with Tailwind CSS</title>
      <dc:creator>Sergej Samsonenko</dc:creator>
      <pubDate>Mon, 11 Oct 2021 14:31:16 +0000</pubDate>
      <link>https://dev.to/sergejcodes/design-buttons-like-a-pro-with-tailwind-css-l7m</link>
      <guid>https://dev.to/sergejcodes/design-buttons-like-a-pro-with-tailwind-css-l7m</guid>
      <description>&lt;p&gt;Let's get down to business, today I'll show you some easy steps for creating clean, functional buttons with Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. HTML markup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, we need some basic HTML markup, all styling will happen through Tailwind classes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"..."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Button
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Display and spacing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now on to adding classes to the &lt;code&gt;class&lt;/code&gt; attribute. On mobile our button will be full-width otherwise, it will have some sane spacing defaults. The content is centered vertically as well as horizontally.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flex sm:inline-flex justify-center items-center px-5 py-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Color&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, we are adding background and text colors.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bg-blue-500 text-white
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Text&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some simple text styling.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;font-semibold text-center
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Decoration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are adding rounded borders and removing the default outline for a more polished look.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rounded-md outline-none
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. States&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't forget to add states. &lt;code&gt;Hover&lt;/code&gt;, &lt;code&gt;active&lt;/code&gt; plus &lt;code&gt;focus&lt;/code&gt;. These are important to give the user proper feedback.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hover:bg-blue-600 active:bg-blue-700 focus-visible:ring ring-blue-300
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. Transition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally adding a transition between the different states. Faster transition times usually work better for buttons &lt;em&gt;(50ms to 150ms)&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;transition duration-100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Final result&lt;/strong&gt;&lt;/p&gt;

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






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"bg-gray-100 py-16"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex flex-wrap justify-center gap-4 p-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex sm:inline-flex justify-center items-center bg-gradient-to-tr from-indigo-500 to-purple-400 hover:from-indigo-600 hover:to-purple-500 active:from-indigo-700 active:to-purple-600 focus-visible:ring ring-indigo-300 text-white font-semibold text-center rounded-md outline-none transition duration-100 px-5 py-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Button 1
    &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex sm:inline-flex justify-center items-center bg-gradient-to-tr from-pink-500 to-red-400 hover:from-pink-600 hover:to-red-500 active:from-pink-700 active:to-red-600 focus-visible:ring ring-pink-300 text-white font-semibold text-center rounded-md outline-none transition duration-100 px-5 py-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Button 2
    &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex sm:inline-flex justify-center items-center bg-blue-500 hover:bg-blue-600 active:bg-blue-700 focus-visible:ring ring-blue-300 text-white font-semibold text-center rounded-md outline-none transition duration-100 px-5 py-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Button 3
    &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex sm:inline-flex justify-center items-center bg-green-500 hover:bg-green-600 active:bg-green-700 focus-visible:ring ring-green-300 text-white font-semibold text-center rounded-md outline-none transition duration-100 px-5 py-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Button 4
    &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;More&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;👉 If you want to see more Tailwind CSS components and examples head over to &lt;a href="https://flowrift.com?utm_source=devto&amp;amp;utm_medium=organic" rel="noopener noreferrer"&gt;Flowrift&lt;/a&gt;. It's a library full of beautifully designed Tailwind CSS UI blocks.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>css</category>
      <category>tailwindcss</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Flowrift - Tailwind CSS UI blocks</title>
      <dc:creator>Sergej Samsonenko</dc:creator>
      <pubDate>Wed, 29 Sep 2021 17:02:18 +0000</pubDate>
      <link>https://dev.to/sergejcodes/flowrift-tailwind-css-ui-blocks-4fdb</link>
      <guid>https://dev.to/sergejcodes/flowrift-tailwind-css-ui-blocks-4fdb</guid>
      <description>&lt;p&gt;Introducing &lt;a href="https://flowrift.com?utm_source=devto&amp;amp;utm_medium=organic" rel="noopener noreferrer"&gt;Flowrift&lt;/a&gt;, an assistant library made of beautifully designed Tailwind CSS UI blocks. All blocks are vanilla HTML and work with Tailwind CSS' default configuration. Go big or go small: Stack blocks on top of each other to build full-page layouts, or selectively copy small code snippets. Your imagination is the only limit.&lt;/p&gt;

&lt;p&gt;All blocks are well organized inside a highly performant app. Just &lt;em&gt;view, copy &amp;amp; customize&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you Busy?&lt;/li&gt;
&lt;li&gt;Missing a section in your design?&lt;/li&gt;
&lt;li&gt;Lacking inspiration?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We got you covered.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Some highlights:&lt;/strong&gt;&lt;br&gt;
⭐ Growing Library&lt;br&gt;
⭐ Responsive Preview&lt;br&gt;
⭐ Code View&lt;br&gt;
⭐ Keyboard Shortcuts&lt;br&gt;
⭐ Randomizer&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://flowrift.com?utm_source=devto&amp;amp;utm_medium=organic" rel="noopener noreferrer"&gt;Go to the Flowrift App&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://about.flowrift.com?utm_source=devto&amp;amp;utm_medium=organic" rel="noopener noreferrer"&gt;More about Flowrift&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Top 3 free icon packs for your next project</title>
      <dc:creator>Sergej Samsonenko</dc:creator>
      <pubDate>Mon, 15 Feb 2021 22:33:00 +0000</pubDate>
      <link>https://dev.to/sergejcodes/top-3-free-icon-packs-for-your-next-project-4hg8</link>
      <guid>https://dev.to/sergejcodes/top-3-free-icon-packs-for-your-next-project-4hg8</guid>
      <description>&lt;p&gt;Who doesn't like some free resources? 😎 Here are my top 3 high-quality icon collections I use in almost every project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unicons
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://iconscout.com/unicons/explore/line"&gt;Unicons&lt;/a&gt; contain 1000+ Pixel-perfect vector icons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1apPJm9X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j8pqxwo5zn9xk67ml5lb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1apPJm9X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j8pqxwo5zn9xk67ml5lb.png" alt="Unicons" width="680" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Heroicons
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroicons.com"&gt;Heroicons&lt;/a&gt; are beautiful hand-crafted SVG icons.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8B4N3qki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/541vylf57bevm82mhs85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8B4N3qki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/541vylf57bevm82mhs85.png" alt="Heroicons" width="680" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Eva Icons
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://akveo.github.io/eva-icons"&gt;Eva Icons&lt;/a&gt; is a pack of more than 480 beautifully crafted Open Source icons for common actions and items.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nLlIQ5cI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xvvg2r1zqs21hvphrzux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nLlIQ5cI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xvvg2r1zqs21hvphrzux.png" alt="Eva icons" width="680" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Now build something awesome. 💪&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>development</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Modern Shopify theme development</title>
      <dc:creator>Sergej Samsonenko</dc:creator>
      <pubDate>Wed, 27 Jan 2021 23:23:23 +0000</pubDate>
      <link>https://dev.to/sergejcodes/modern-shopify-theme-development-321h</link>
      <guid>https://dev.to/sergejcodes/modern-shopify-theme-development-321h</guid>
      <description>&lt;p&gt;If you ever tried to develop a Shopify theme you know how ridiculously neglected the official Shopify tooling is. I'm not exaggerating here. I spent countless hours searching for a way to set up a development environment, navigating through abandoned or deprecated Shopify projects, and reading comments from fed up devs. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xTiTngHGyb6C8qMkta/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xTiTngHGyb6C8qMkta/giphy.gif" alt="woman in disbelief" width="264" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the end, I said: &lt;em&gt;"Fine, I'll do it myself"&lt;/em&gt;. That's pretty much how the &lt;a href="https://github.com/uicrooks/shopify-theme-lab"&gt;Shopify Theme Lab&lt;/a&gt; project started. Of course, the road to the finished product was a little bit more complicated, but that's another story.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Framework
&lt;/h2&gt;

&lt;p&gt;So what exactly is &lt;strong&gt;Shopify Theme Lab&lt;/strong&gt;? It can be summed up in one sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's a highly customizable Shopify theme development environment, with great developer-experience and modern tooling.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you use Shopify Theme Lab you'll see how incredibly simple and enjoyable the process of developing themes can be.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can it do?
&lt;/h2&gt;

&lt;p&gt;First and foremost it's probably the easiest way to get up and running with Shopify theme development. And that's the most difficult part.&lt;/p&gt;

&lt;p&gt;Some other notable features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's highly customizable&lt;/li&gt;
&lt;li&gt;You have modern tooling at your disposal. Out of the box, it comes with &lt;strong&gt;Vue&lt;/strong&gt; and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Remote reloading during development&lt;/li&gt;
&lt;li&gt;Preprocessor support for SASS/SCSS, LESS and Stylus&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get to work
&lt;/h2&gt;

&lt;p&gt;Head over to the &lt;a href="https://github.com/uicrooks/shopify-theme-lab"&gt;Shopify Theme Lab repo on GitHub&lt;/a&gt; and build something awesome 💪🏻&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webpack</category>
      <category>vue</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
