<?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: Behnam Azimi</title>
    <description>The latest articles on DEV Community by Behnam Azimi (@behnamazimi).</description>
    <link>https://dev.to/behnamazimi</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%2F211204%2F3d370169-2a74-4ecd-a545-ea0a67d7ab4f.jpeg</url>
      <title>DEV Community: Behnam Azimi</title>
      <link>https://dev.to/behnamazimi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/behnamazimi"/>
    <language>en</language>
    <item>
      <title>7 Newborn Open Source Repositories</title>
      <dc:creator>Behnam Azimi</dc:creator>
      <pubDate>Sat, 16 Jul 2022 20:07:11 +0000</pubDate>
      <link>https://dev.to/behnamazimi/some-newborn-open-source-repositories-1im9</link>
      <guid>https://dev.to/behnamazimi/some-newborn-open-source-repositories-1im9</guid>
      <description>&lt;p&gt;We all knew that what we have now as popular open-source repositories or well-known tools that we use every day started with an idea and developed for personal usage and then published as a result of high satisfaction of owner/developer.&lt;/p&gt;

&lt;p&gt;In this post, I’m gonna share 7 open-source repositories/tools of mine that I have developed to serve some personal intentions first but published later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yz6FfZtz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hovbr5z1w5qhydpoqd4x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yz6FfZtz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hovbr5z1w5qhydpoqd4x.jpg" alt="Newborn Open Source Projects" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Definitely, without your likes and shares, and contributions, these repositories will not be seen and will perhaps disappear over time. so please react to this post and share your comments with me.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/practical-front-end-projects"&gt;1. Practical Front-End Projects with Pure Javascript, CSS, and HTML&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The repository contains some front-end projects developed by pure Javascript, HTML, and CSS without any third-party libraries and packages.&lt;/p&gt;

&lt;p&gt;Some of the projects you can find in the repo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Chat App (WhatsApp clone)&lt;/li&gt;
&lt;li&gt;Custom Video Player&lt;/li&gt;
&lt;li&gt;Note Manager App &lt;/li&gt;
&lt;li&gt;Othello Board Game&lt;/li&gt;
&lt;li&gt;Quiz App&lt;/li&gt;
&lt;li&gt;Escape Loading Animation (Complicated CSS animation)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/merriam-webster-dictionary-extension"&gt;2. Merriam-Webster's Dictionary Browser Extension&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I1nCUwaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/brzsoug9eeya2yqvz30q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I1nCUwaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/brzsoug9eeya2yqvz30q.jpeg" alt="Merriam-Webster's Dictionary Browser Extension" width="640" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this extension, you would be able to look up and get the English-to-English definition of any word or phrase in the content of a website, simply and effortlessly. Or you can use its simple search box to type and get the definition right away, without losing your focus on the content!&lt;/p&gt;

&lt;p&gt;I used Merriam-Webster's free services in this extension. &lt;/p&gt;

&lt;p&gt;You can install it on all Chromium base browsers, like Opera, Edge, Brave, Torch, Vivaldi. (&lt;a href="https://github.com/behnamazimi/merriam-webster-dictionary-extension#how-to-install-it-manually-on-chromium-base-browsers-like-opera-edge-brave-torch-vivaldi"&gt;How to?&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/youtube-subtitle-delay"&gt;3. YouTube Subtitle Delay Browser Extension&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Mini tool to delay subtitles on the YouTube official website which is handy when you are learning a new language. &lt;/p&gt;

&lt;p&gt;You can also install it on all Chromium base browsers, like Opera, Edge, Brave, Torch, Vivaldi.&lt;/p&gt;

&lt;p&gt;Additionally, there is another extension with the same functionality &lt;a href="https://github.com/behnamazimi/netflix-subtitle-delay"&gt;to delay Netflix subtitles&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/tw-followingtrackbot"&gt;4. Twitter Following Track Bot&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This one is a twitter bot developed with NodeJs. Using this bot you can track if any twitter account started following others. It's easy to use and you only need a Twitter developer account to start monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/keyboard-shortcuts-for-websites"&gt;5. Keyboard Shortcuts for Websites Browser Extension&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This one is also a browser extension, using this extension you can have custom keyboard shortcuts for certain actions of websites you use frequently. It's one of my favorite repositories because I use it every day :) &lt;/p&gt;

&lt;p&gt;You can also install it on all Chromium base browsers, like Opera, Edge, Brave, Torch, Vivaldi.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/curly-html-elements"&gt;6. Curly HTML Elements&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This one is a mini tool to arranging HTML elements along ellipse subset shapes. Using curly-html-elements you can layout child items of an element along a circle, semicircle, ellipse or any subset shape of it without encounter math formula and complex concepts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c6DyZoYJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ea6f6w4lkbz6lwgyp53.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c6DyZoYJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ea6f6w4lkbz6lwgyp53.jpeg" alt="Curly HTML Elements Examples" width="654" height="735"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/behnamazimi/js-service-wrapper"&gt;7. JS Service Wrapper&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This one is a promise based collective service wrapper with queue support which totally works in browser and/or Node.js environment.&lt;/p&gt;

&lt;p&gt;Sometimes you need to pass your service functions throughout a shared pipe and do some manipulation or parsing with them. Or you might want to add all of your services to a queue that supports parallel and pending tasks. It's the case this library swoops in.&lt;/p&gt;

&lt;p&gt;I also have a fun game, &lt;a href="https://behnamazimi.github.io/boom-box/"&gt;The Boom Box&lt;/a&gt;. You can reach that out and spend some fun time while blasting some boxes. Its code is also &lt;a href="https://github.com/behnamazimi/boom-box"&gt;available on Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d appreciate any kind of contribution to these projects and it would be my honor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bhnmzm.com/blog/some-newborn-opensource-repositories"&gt;Source bhnmzm.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Arranging HTML items in particular shape — ellipsis-html</title>
      <dc:creator>Behnam Azimi</dc:creator>
      <pubDate>Sat, 22 Aug 2020 11:19:14 +0000</pubDate>
      <link>https://dev.to/behnamazimi/arranging-html-items-in-particular-shaped-ellipsis-html-4pn8</link>
      <guid>https://dev.to/behnamazimi/arranging-html-items-in-particular-shaped-ellipsis-html-4pn8</guid>
      <description>&lt;p&gt;As a front-end developer sometimes you need to layout HTML elements is a particular layout by each other. The difficulty of this depends on the imagination of your UI designer but in general, the layouting items in HTML without knowing the concepts and tricks is plenty challenging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://bhnmzm.com/blog/arranging-html-items-in-particular-shapes" rel="noopener noreferrer"&gt;You can read the updated version on bhnmzm.com&lt;/a&gt;&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%2Fi%2Ftg5fi8mwseer6tyap5gq.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftg5fi8mwseer6tyap5gq.jpeg" alt="Figure1: example arch arranging made with ellipsis-html&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure1: example arch arranging made with ellipsis-html&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The most common unusual layout that I dealt with in my projects and I have seen it in many UI designs is arranging items on an arch. For example, laying in the border of a semicircle or a full circle, or arranging in the border of a semi-ellipse. To make these you need to encounter math formula and complex concepts.&lt;/p&gt;

&lt;p&gt;The good news is that I developed a mini tool exactly for this purpose, I mean for the arranging HTML elements along ellipse subset shapes. I named it &lt;strong&gt;&lt;a href="https://github.com/behnamazimi/ellipsis-html" rel="noopener noreferrer"&gt;ellipsis-html&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Using &lt;a href="https://github.com/behnamazimi/ellipsis-html" rel="noopener noreferrer"&gt;ellipsis-html&lt;/a&gt; you can layout child items of an element along a circle, semicircle, ellipse or any subset shape of it. You can see samples made with ellipsis-html in the below figure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5u1zfprvi5nbnfg8t2g5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5u1zfprvi5nbnfg8t2g5.jpg" alt="ellipsis-html sample layouts"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure2: ellipsis-html sample layouts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s only 2KB and easy to use. I explained what you need in the GitHub readme, so you could &lt;a href="https://github.com/behnamazimi/ellipsis-html#ellipsis-html-elements" rel="noopener noreferrer"&gt;read the readme too&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://behnamazimi.github.io/ellipsis-html/" rel="noopener noreferrer"&gt;Check demo here&lt;/a&gt; 😎
&lt;/h4&gt;

&lt;p&gt;You can arrange your elements in any subset shape of an ellipse with changing the options and put it in any position of your parent element.&lt;/p&gt;

&lt;p&gt;Here is the code was written to make the result that you saw in Figure 1:&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="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;ellipsis-html Sample with avatars&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- adding library --&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;"http://unpkg.com/ellipsis-html/lib/ellipsis-html.min.js"&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;style&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#efefef&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"Segoe UI"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tahoma&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Geneva&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Verdana&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nc"&gt;.title&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nc"&gt;.title&lt;/span&gt; &lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nc"&gt;.title&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nf"&gt;#avatars&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;700px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nf"&gt;#avatars&lt;/span&gt; &lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;7px&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;0.16&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&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;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My Friends&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;with ellipsis-html&lt;span class="nt"&gt;&amp;lt;/p&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&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"avatars"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/women/2.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/men/6.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/women/12.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/women/5.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/women/60.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/men/11.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://randomuser.me/api/portraits/women/50.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&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;script&amp;gt;&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;avatars&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;equal&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;reflection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;rotateY&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;157&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;reverse&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;shiftX&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;shiftY&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
      &lt;span class="p"&gt;};&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;htmlArc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;EllipsisHTML&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;elm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&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;If you encounter any problem, bring it up as an issue or contribute to the project and fix it yourself.&lt;/p&gt;

&lt;p&gt;Do not forget to &lt;a href="https://github.com/behnamazimi/ellipsis-html" rel="noopener noreferrer"&gt;star the repo&lt;/a&gt;. Like other developers, star motivates me too. 🙃😉&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Escape Loading Animation - Feeling Good Because of CSS</title>
      <dc:creator>Behnam Azimi</dc:creator>
      <pubDate>Sun, 03 May 2020 09:45:11 +0000</pubDate>
      <link>https://dev.to/behnamazimi/escape-loading-animation-feeling-good-because-of-css-422k</link>
      <guid>https://dev.to/behnamazimi/escape-loading-animation-feeling-good-because-of-css-422k</guid>
      <description>&lt;p&gt;Hi there, I hope you all are in a good mood.&lt;br&gt;
Today when I was surfing in Dribbble, I faced a cool loading animation, a fantastic loop animation. it drew my attention, and I could not ignore it. as far as I remember I was just gazing at it's GIF for 10-12 minutes and that gave me good feelings.&lt;/p&gt;

&lt;p&gt;The design belongs to &lt;a href="https://dribbble.com/colder"&gt;Vitaly Silkin&lt;/a&gt;, and he shared this on his Dribble profile about 2 years ago.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://bhnmzm.com/blog/escape-loading-animation-css"&gt;You can read the main version on bhnmzm.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Anyway, I decided to code it. It took almost 3 hours and 30 minutes but was genuinely enjoyable and be worth it. I was code with pure CSS then added it to the &lt;a href="https://bit.ly/pfep-2020"&gt;&lt;strong&gt;practical front-end projects collection&lt;/strong&gt;&lt;/a&gt; as a new cool member.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/2KVz3vu"&gt;&lt;strong&gt;You can see the demo here.&lt;/strong&gt;&lt;/a&gt; Also, you can customize the &lt;a href="https://codepen.io/bhnmzm/pen/WNQXbMz"&gt;source on Codepen&lt;/a&gt; too.&lt;/p&gt;

&lt;p&gt;When it's done, I wrote an email to Mr. Silkin and I thanked him because of his beautiful design. Also, I wrote to him that I hope he doesn't be mad at me for doing it without permission. and I closed the email with this: Your potential friend, Behnam ;)&lt;/p&gt;

&lt;p&gt;Sometimes a simple design, a short sentence, or a short story can make us happy so much more than we expected. especially in these difficult days and in the middle of that much works.&lt;/p&gt;

&lt;p&gt;Comment your feelings and make me happy more ;) &lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>saas</category>
      <category>design</category>
    </item>
    <item>
      <title>HTML Canvas Wallpaper; Only A Love Song Is Missing</title>
      <dc:creator>Behnam Azimi</dc:creator>
      <pubDate>Wed, 08 Apr 2020 21:26:41 +0000</pubDate>
      <link>https://dev.to/behnamazimi/html-canvas-wallpaper-only-a-love-song-is-missing-2538</link>
      <guid>https://dev.to/behnamazimi/html-canvas-wallpaper-only-a-love-song-is-missing-2538</guid>
      <description>&lt;p&gt;In the new project of the &lt;a href="https://github.com/behnamazimi/practical-front-end-projects"&gt;practical front-end projects series&lt;/a&gt;, I went over to the HTML Canvas and I tried to make a beautiful animated wallpaper. The result was satisfying for me and when I staring at it, I hear a slow love song in the background. xD. &lt;strong&gt;&lt;a href="https://behnamazimi.github.io/simple-web-projects/canvas-wallpaper/"&gt;You can see the demo here.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Actually the project is very simple and I'm sure reviewing its code will be so useful. I tried my best to make a fully documented and easy to read code. But you can also ask me detailed questions or &lt;a href="https://github.com/behnamazimi/practical-front-end-projects"&gt;open issues on Github.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a practical canvas tutorial, an animated wallpaper with circles that moves on it. The main goal was focusing on the canvas methods, but next to it, you can find some useful coding strategies and mathematical operations in code.&lt;/p&gt;

&lt;p&gt;I hope it will be useful for you. I will be looking forward to your comments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://bhnmzm.com/blog/html-canvas-wallpaper-with-javascript"&gt;major version on bhnmzm.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>Collection of Simple Web Projects</title>
      <dc:creator>Behnam Azimi</dc:creator>
      <pubDate>Tue, 24 Mar 2020 07:49:00 +0000</pubDate>
      <link>https://dev.to/behnamazimi/collection-of-simple-web-projects-5dko</link>
      <guid>https://dev.to/behnamazimi/collection-of-simple-web-projects-5dko</guid>
      <description>&lt;p&gt;A few months ago, I decided to work on a collection of simple and practical projects to educate in my courses, and share it publicly. Then I started and the result came up as a &lt;a href="https://github.com/behnamazimi/practical-front-end-projects"&gt;Github repo, named Simple Web Projects&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As the name implies, a collection of simple web projects developed for enthusiasts and beginners. The main purpose is education and all the codes are open for everyone that needs it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://bhnmzm.com/blog/practival-front-end-projects"&gt;You can read updated version on bhnmzm.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Webpack, gulp or another bundler was not used.&lt;/li&gt;
&lt;li&gt;Third-party libraries were not used.&lt;/li&gt;
&lt;li&gt;Codes only supported by modern browsers.&lt;/li&gt;
&lt;li&gt;Projects just are for educational purposes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Projects
&lt;/h3&gt;

&lt;p&gt;There are 6 developed projects that you can review now.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Chat App&lt;/li&gt;
&lt;li&gt;Custom Video Player&lt;/li&gt;
&lt;li&gt;Lovely Movies&lt;/li&gt;
&lt;li&gt;Note App&lt;/li&gt;
&lt;li&gt;Othello Board Game&lt;/li&gt;
&lt;li&gt;Quiz App&lt;/li&gt;
&lt;li&gt;Simple Range Slider&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Web Chat App (&lt;a href="https://behnamazimi.github.io/simple-web-projects/web-chat-app/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;This project is a real messaging app that developed with pure javascript without third-party libs. We focused on the Web Components in this project and give it a real component structure. All chats, messages, data are fake and generated with a data-factory. I hope It would be useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Components&lt;/li&gt;
&lt;li&gt;Object-Oriented Programming&lt;/li&gt;
&lt;li&gt;Event handling&lt;/li&gt;
&lt;li&gt;DOM controlling&lt;/li&gt;
&lt;li&gt;CSS flex&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Custom Video Player (&lt;a href="https://behnamazimi.github.io/simple-web-projects/custom-video-player/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;In this project, I customized the video controls and designed them manually. Focus on handling the video node and how to implement custom behavior for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video node controls&lt;/li&gt;
&lt;li&gt;Fullscreen handling&lt;/li&gt;
&lt;li&gt;CSS variables&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Lovely Movies (&lt;a href="https://behnamazimi.github.io/simple-web-projects/lovely-movies/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;A simple movie search website&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Promises and Fetch data with API&lt;/li&gt;
&lt;li&gt;Control DOM behaviors and events&lt;/li&gt;
&lt;li&gt;Usage of &lt;code&gt;position: static;&lt;/code&gt; in CSS&lt;/li&gt;
&lt;li&gt;Using CSS variables&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Note App (&lt;a href="https://behnamazimi.github.io/simple-web-projects/notes-app/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;A practical note web app to handle categorized notes. There are notes that can have a category for. you can search in notes and edit or remove those.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object-Oriented Programming (OOP)&lt;/li&gt;
&lt;li&gt;Creating DOM elements&lt;/li&gt;
&lt;li&gt;Layouting with CSS grid system&lt;/li&gt;
&lt;li&gt;localStorage usage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Othello Board Game (&lt;a href="https://behnamazimi.github.io/simple-web-projects/othello-board-game/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;Famous strategy game Othello, known as Reversi, implemented in pure Javascript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object-Oriented Programming (OOP)&lt;/li&gt;
&lt;li&gt;Othello game strategy&lt;/li&gt;
&lt;li&gt;Creating DOM elements&lt;/li&gt;
&lt;li&gt;Event handling&lt;/li&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quiz App (&lt;a href="https://behnamazimi.github.io/simple-web-projects/quiz-app/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;Simulating a quiz in a web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object-Oriented Programming (OOP)&lt;/li&gt;
&lt;li&gt;Creating and handling DOM elements&lt;/li&gt;
&lt;li&gt;CSS animation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Simple Range Slider (&lt;a href="https://behnamazimi.github.io/simple-web-projects/simple-range-slider/"&gt;View Online&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;A simple implementation of a small range slider with pure Javascript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special topics covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prototypal Object-Oriented Programming&lt;/li&gt;
&lt;li&gt;DOM events handling&lt;/li&gt;
&lt;li&gt;CSS variables&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Running locally
&lt;/h3&gt;

&lt;p&gt;It's so simple. &lt;a href="https://github.com/behnamazimi/practical-front-end-projects"&gt;Clone or download&lt;/a&gt; the repository, open project directory and click &lt;code&gt;index.html&lt;/code&gt;. As I mentioned above, there is not any bundler and all scripts have been injected in the HTML.&lt;/p&gt;

&lt;h4&gt;
  
  
  New projects are being prepared
&lt;/h4&gt;

&lt;p&gt;I try to make this repo very useful. So, I really looking forward to your help and your criticism.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>css</category>
    </item>
  </channel>
</rss>
