<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HTML&amp;CSS Archives - Codeplaners</title>
	<atom:link href="https://codeplaners.com/category/htmlcss/feed/" rel="self" type="application/rss+xml" />
	<link>https://codeplaners.com/category/htmlcss/</link>
	<description>Code Solution</description>
	<lastBuildDate>Wed, 01 Jan 2025 06:40:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.7</generator>

<image>
	<url>https://codeplaners.com/wp-content/uploads/2020/09/cropped-favicon-social-32x32.png</url>
	<title>HTML&amp;CSS Archives - Codeplaners</title>
	<link>https://codeplaners.com/category/htmlcss/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Attribute Types of ol and ul</title>
		<link>https://codeplaners.com/attribute-types-of-ol-and-ul/</link>
					<comments>https://codeplaners.com/attribute-types-of-ol-and-ul/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 29 Dec 2024 04:47:04 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[Attribute Types of ol and ul]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS and Html]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1692</guid>

					<description><![CDATA[<p>This post was last updated on January 1st, 2025 at 06:37 amHi Dev, Today in this article we will understand how many attribute types of ol and ul are there in HTML and how to use them. Let&#8217;s discuss the attribute types of ol and ul. So let’s follow few step to create example of &#8230; <a href="https://codeplaners.com/attribute-types-of-ol-and-ul/" class="more-link">Continue reading<span class="screen-reader-text"> "Attribute Types of ol and ul"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/attribute-types-of-ol-and-ul/">Attribute Types of ol and ul</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="last-modified">This post was last updated on January 1st, 2025 at 06:37 am</p><p>Hi Dev,</p>
<p>Today in this article we will understand how many attribute types of ol and ul are there in HTML and how to use them. Let&#8217;s discuss the attribute types of ol and ul.</p>
<p>So let’s follow few step to create example of attribute types of ol and ul.</p>
<h3 class="step_code">ul type Attribute</h3>
<pre class="brush: xml; title: ; notranslate">
&lt;ul type=&quot;disc&quot;&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;ul type=&quot;square&quot;&gt;
</pre>
<p><strong>Example ul type attribute: </strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
   &lt;title&gt;HTML ul type attribute&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
   &lt;h1&gt;codeplaners&lt;/h1&gt;

   &lt;h2&gt;HTML ul type attribute&lt;/h2&gt;

   &lt;ul type=&quot;disc&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ul&gt;

   &lt;ul type=&quot;circle&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ul&gt;

   &lt;ul type=&quot;square&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ul&gt;
&lt;/body&gt;

&lt;/html&gt;  
</pre>
<p><strong>Preview:-</strong><br />
<img decoding="async" style="border: 3px solid #ff5722;" alt="HTML ul type attribute" src="https://codeplaners.com/wp-content/uploads/2023/12/HTML-ul-type-attribute.jpg"></p>
<h3 class="step_code">ol type Attribute</h3>
<pre class="brush: xml; title: ; notranslate">
&lt;ol type=&quot;1&quot;&gt;
&lt;ol type=&quot;a&quot;&gt;
&lt;ol type=&quot;A&quot;&gt;
&lt;ol type=&quot;i&quot;&gt;
&lt;ol type=&quot;I&quot;&gt;
</pre>
<p><strong>Example ol type attribute: </strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
   &lt;title&gt;HTML ol type attribute&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
   &lt;h1&gt;codeplaners&lt;/h1&gt;

   &lt;h2&gt;HTML ol type attribute&lt;/h2&gt;

   &lt;ol type=&quot;1&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ol&gt;

   &lt;ol type=&quot;a&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ol&gt;

   &lt;ol type=&quot;A&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ol&gt;
&lt;ol type=&quot;i&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ol&gt;
&lt;ol type=&quot;I&quot;&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
      &lt;li&gt;Lorem Text&lt;/li&gt;
   &lt;/ol&gt;


&lt;/body&gt;

&lt;/html&gt;  
</pre>
<p><strong>Preview:-</strong><br />
<img decoding="async" style="border: 3px solid #ff5722;" alt="HTML ul type attribute" src="https://codeplaners.com/wp-content/uploads/2023/12/HTML-ol-type-attribute.jpg"></p>
<p><strong>I hope it will assist you…</strong></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/attribute-types-of-ol-and-ul/">Attribute Types of ol and ul</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/attribute-types-of-ol-and-ul/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Stories Slide Example</title>
		<link>https://codeplaners.com/stories-slide-example/</link>
					<comments>https://codeplaners.com/stories-slide-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 29 Jun 2024 05:16:58 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[CSS and Html]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Jquery]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1585</guid>

					<description><![CDATA[<p>This post was last updated on January 1st, 2025 at 06:40 amHi dev, Today, i show you stories slide example. In this article I will tell you how to create cloned instagram stories slide using javascript. you will Stories Slide Example. In this article, we will implement a Stories Slide Example. So, let’s follow few &#8230; <a href="https://codeplaners.com/stories-slide-example/" class="more-link">Continue reading<span class="screen-reader-text"> "Stories Slide Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/stories-slide-example/">Stories Slide Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="last-modified">This post was last updated on January 1st, 2025 at 06:40 am</p><p>Hi dev,</p>
<p>Today, i show you stories slide example. In this article I will tell you how to create cloned instagram stories slide using javascript. you will Stories Slide Example. In this article, we will implement a Stories Slide Example. </p>
<p>So, let’s follow few steps to create example of stories slide example.</p>
<p><strong>Preview:-</strong><br />
<img decoding="async" style="border: 3px solid #ff5722;" alt="Stories Slide Example" src="https://codeplaners.com/wp-content/uploads/2023/06/Stories-Slide-Example.jpg"></p>
<h3 class="step_code">Index.html</h3>
<pre class="brush: xml; title: ; notranslate">

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;

&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot; /&gt;
  &lt;title&gt;codeplaners Slider&lt;/title&gt;
  &lt;script type=&quot;module&quot; crossorigin src=&quot;js/index.js&quot;&gt;&lt;/script&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;div id=&quot;app&quot;&gt;
    &lt;!-- Demo app --&gt;
    &lt;div class=&quot;demo-app&quot;&gt;
      &lt;!-- Demo content --&gt;
      &lt;div class=&quot;demo-title&quot;&gt;
        &lt;h2&gt;Code Planers Stories&lt;/h2&gt;
      &lt;/div&gt;
      &lt;div class=&quot;demo-codeplaners&quot;&gt;
        &lt;a href=&quot;#&quot;&gt;
          &lt;span class=&quot;demo-codeplaners-avatar&quot;&gt;
            &lt;img src=&quot;img/mark.jpg&quot; alt=&quot;&quot;&gt;
          &lt;/span&gt;
          &lt;span class=&quot;demo-codeplaners-name&quot;&gt;mark_johnson&lt;/span&gt;
        &lt;/a&gt;
        &lt;a href=&quot;#&quot;&gt;
          &lt;span class=&quot;demo-codeplaners-avatar&quot;&gt;
            &lt;img src=&quot;img/malenia.jpg&quot; alt=&quot;&quot;&gt;
          &lt;/span&gt;
          &lt;span class=&quot;demo-codeplaners-name&quot;&gt;malenia&lt;/span&gt;
        &lt;/a&gt;
        &lt;a href=&quot;#&quot;&gt;
          &lt;span class=&quot;demo-codeplaners-avatar&quot;&gt;
            &lt;img src=&quot;img/john.jpg&quot; alt=&quot;&quot;&gt;
          &lt;/span&gt;
          &lt;span class=&quot;demo-codeplaners-name&quot;&gt;john1986&lt;/span&gt;
        &lt;/a&gt;
      &lt;/div&gt;
      
    &lt;/div&gt;


    &lt;!-- codeplaners Slider --&gt;
    &lt;div class=&quot;codeplaners-slider&quot;&gt;
      &lt;div class=&quot;swiper&quot;&gt;
        &lt;div class=&quot;swiper-wrapper&quot;&gt;
          &lt;!-- specific user codeplaners --&gt;
          &lt;div class=&quot;swiper-slide&quot;&gt;
            &lt;div class=&quot;swiper&quot;&gt;
              &lt;div class=&quot;swiper-wrapper&quot;&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/mark.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;mark_johnson&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;21h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/food-1.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/mark.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;mark_johnson&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;12h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/food-2.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/mark.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;mark_johnson&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;2h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;video src=&quot;img/video.mp4&quot; playsinline preload=&quot;metadata&quot;&gt;&lt;/video&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/mark.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;mark_johnson&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;30m&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/food-3.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/mark.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;mark_johnson&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;15m&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/food-4.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;
          &lt;!-- specific user codeplaners --&gt;
          &lt;div class=&quot;swiper-slide&quot;&gt;
            &lt;div class=&quot;swiper&quot;&gt;
              &lt;div class=&quot;swiper-wrapper&quot;&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/malenia.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;malenia&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;5h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/elden-1.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/malenia.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;malenia&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;45m&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/elden-2.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/malenia.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;malenia&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;5m&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/elden-3.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;
          &lt;!-- specific user codeplaners --&gt;
          &lt;div class=&quot;swiper-slide&quot;&gt;
            &lt;div class=&quot;swiper&quot;&gt;
              &lt;div class=&quot;swiper-wrapper&quot;&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/john.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;john1986&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;15h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/vacation-1.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/john.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;john1986&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;10h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/vacation-2.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/john.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;john1986&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;10h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/vacation-3.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/john.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;john1986&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;8h&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/vacation-4.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
                &lt;!-- user's single story --&gt;
                &lt;div class=&quot;swiper-slide&quot;&gt;
                  &lt;a href=&quot;#&quot; class=&quot;codeplaners-slider-user&quot;&gt;
                    &lt;div class=&quot;codeplaners-slider-user-avatar&quot;&gt;
                      &lt;img src=&quot;img/john.jpg&quot; /&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-name&quot;&gt;john1986&lt;/div&gt;
                    &lt;div class=&quot;codeplaners-slider-user-date&quot;&gt;47m&lt;/div&gt;
                  &lt;/a&gt;
                  &lt;div class=&quot;codeplaners-slider-actions&quot;&gt;
                    &lt;button class=&quot;codeplaners-slider-close-button&quot;&gt;&lt;/button&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;codeplaners-slider-content&quot;&gt;
                    &lt;img src=&quot;img/vacation-5.jpg&quot; /&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  
&lt;/body&gt;

&lt;/html&gt;

</pre>
<h3 class="step_code">style.css</h3>
<pre class="brush: css; title: ; notranslate">
:root {
    --codeplaners-slider-z-shadows: 999;
    --codeplaners-slider-z-pagination: 50;
    --codeplaners-slider-z-navigation: 200;
    --codeplaners-slider-z-user: 300;
    --codeplaners-slider-z-actions: 300;
    --codeplaners-slider-z-content: 100;
    --codeplaners-slider-slide-bg-color: #000
}

.codeplaners-slider {
    padding-top: 44px;
    padding-bottom: 44px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.codeplaners-slider&gt;.swiper&gt;.swiper-wrapper&gt;.swiper-slide:not(.swiper-slide-next, .swiper-slide-prev, .swiper-slide-active) {
    opacity: 0
}

.codeplaners-slider&gt;.swiper&gt;.swiper-wrapper&gt;.swiper-slide-next+.swiper-slide {
    opacity: 1
}

.codeplaners-slider .swiper {
    height: 100%;
    width: 100%
}

.codeplaners-slider .swiper .swiper .swiper-slide {
    border-radius: 8px;
    overflow: hidden;
    background-color: var(--codeplaners-slider-slide-bg-color)
}

.codeplaners-slider .swiper .swiper-slide-shadow-left,
.codeplaners-slider .swiper .swiper-slide-shadow-right {
    z-index: var(--codeplaners-slider-z-shadows) !important
}

.codeplaners-slider .swiper .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgb(0, 0, 0), rgba(0, 0, 0, .5))
}

.codeplaners-slider .swiper .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgb(0, 0, 0), rgba(0, 0, 0, .5))
}

.codeplaners-slider.codeplaners-slider-perspective .swiper .swiper,
.codeplaners-slider.codeplaners-slider-perspective .swiper-slide-shadow-left,
.codeplaners-slider.codeplaners-slider-perspective .swiper-slide-shadow-right {
    transform: translateZ(calc(-1 * var(--swiper-cube-translate-z)));
    transform-origin: 0% 0% calc(-1 * var(--swiper-cube-translate-z))
}

.codeplaners-slider-button {
    position: absolute;
    z-index: var(--codeplaners-slider-z-navigation);
    top: 0;
    height: 100%;
    user-select: none;
    -webkit-user-select: none
}

.codeplaners-slider-button:before {
    content: &quot;&quot;;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition-duration: .2s
}

.codeplaners-slider-button:active:before {
    opacity: .25
}

.codeplaners-slider-button-prev {
    left: 0;
    width: 30%
}

.codeplaners-slider-button-prev:before {
    background-image: linear-gradient(to right, #000, rgba(0, 0, 0, 0))
}

.codeplaners-slider-button-next {
    right: 0;
    width: 70%
}

.codeplaners-slider-button-next:before {
    background-image: linear-gradient(to left, #000, rgba(0, 0, 0, 0))
}

.codeplaners-slider-pagination {
    position: absolute;
    left: 8px;
    right: 8px;
    top: 8px;
    display: flex;
    justify-content: space-between;
    z-index: var(--codeplaners-slider-z-pagination);
    pointer-events: none;
    transform: translateZ(0)
}

.codeplaners-slider-pagination-bullet {
    width: 100%;
    flex-shrink: 10;
    border-radius: 999px;
    height: 2px;
    background: rgba(255, 255, 255, .35);
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 1px #00000059
}

.codeplaners-slider-pagination-bullet span {
    position: absolute;
    background: #fff;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 999px;
    transform: translate(-100%);
    transition-timing-function: linear
}

.codeplaners-slider-pagination-bullet-viewed span {
    transform: translate(0);
    transition-duration: 0ms !important
}

.codeplaners-slider-pagination-bullet+.codeplaners-slider-pagination-bullet {
    margin-left: 2px
}

a.codeplaners-slider-user,
.codeplaners-slider-user a {
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    transition-duration: .2s
}

a.codeplaners-slider-user:active,
.codeplaners-slider-user a:active {
    opacity: .55
}

.codeplaners-slider-user {
    display: flex;
    align-items: center;
    position: absolute;
    top: 18px;
    left: 12px;
    height: 32px;
    z-index: var(--codeplaners-slider-z-user);
    color: #fff;
    text-decoration: none;
    user-select: none;
    -webkit-user-select: none
}

.codeplaners-slider-user-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    margin-right: 12px
}

.codeplaners-slider-user-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center
}

.codeplaners-slider-user-name {
    font-size: 14px;
    font-weight: 700;
    margin-right: 12px;
    text-shadow: 0px 0px 2px rgba(0, 0, 0, .35)
}

.codeplaners-slider-user-date {
    font-size: 14px;
    font-weight: 400;
    opacity: .55;
    text-shadow: 0px 0px 2px rgba(0, 0, 0, .35)
}

.codeplaners-slider-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: absolute;
    right: 10px;
    top: 18px;
    height: 32px;
    z-index: var(--codeplaners-slider-z-actions);
    transition-duration: .2s;
    user-select: none;
    -webkit-user-select: none
}

.codeplaners-slider-close-button {
    margin-left: 18px;
    width: 22px;
    height: 22px;
    appearance: none;
    border: none;
    outline: none;
    box-shadow: none;
    display: block;
    position: relative;
    cursor: pointer;
    padding: 0;
    background: transparent;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    user-select: none;
    -webkit-user-select: none
}

.codeplaners-slider-close-button:before,
.codeplaners-slider-close-button:after {
    content: &quot;&quot;;
    width: 125%;
    height: 2px;
    background: #fff;
    border-radius: 999px;
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    box-shadow: 0 0 1px #00000059
}

.codeplaners-slider-close-button:before {
    transform: translate(-50%, -50%) rotate(45deg)
}

.codeplaners-slider-close-button:after {
    transform: translate(-50%, -50%) rotate(-45deg)
}

.codeplaners-slider-close-button:active {
    opacity: .55
}

.codeplaners-slider-content {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: var(--codeplaners-slider-z-content);
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    -webkit-user-select: none
}

.codeplaners-slider-content&gt;img,
.codeplaners-slider-content&gt;video {
    width: 100%;
    height: 100%;
    object-position: center;
    display: block;
    border: none;
    outline: none;
    background: none;
    background-color: transparent
}

.codeplaners-slider-content&gt;img {
    object-fit: cover
}

.codeplaners-slider-content&gt;video {
    object-fit: contain
}

@font-face {
    font-family: swiper-icons;
    src: url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA) format(&quot;woff&quot;);
    font-weight: 400;
    font-style: normal
}

:root {
    --swiper-theme-color: #007aff
}

.swiper,
swiper-container {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block
}

.swiper-vertical&gt;.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    box-sizing: content-box
}

.swiper-android .swiper-slide,
.swiper-wrapper {
    transform: translateZ(0)
}

.swiper-horizontal {
    touch-action: pan-y
}

.swiper-vertical {
    touch-action: pan-x
}

.swiper-slide,
swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    display: block
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-autoheight,
.swiper-autoheight .swiper-slide {
    height: auto
}

.swiper-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform, height
}

.swiper-backface-hidden .swiper-slide {
    transform: translateZ(0);
    backface-visibility: hidden
}

.swiper-3d.swiper-css-mode .swiper-wrapper {
    perspective: 1200px
}

.swiper-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-3d {
    perspective: 1200px
}

.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-cube-shadow {
    transform-style: preserve-3d
}

.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10
}

.swiper-3d .swiper-slide-shadow {
    background: rgba(0, 0, 0, .15)
}

.swiper-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-css-mode&gt;.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-css-mode&gt;.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-css-mode&gt;.swiper-wrapper&gt;.swiper-slide {
    scroll-snap-align: start start
}

.swiper-horizontal.swiper-css-mode&gt;.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-vertical.swiper-css-mode&gt;.swiper-wrapper {
    scroll-snap-type: y mandatory
}

.swiper-centered&gt;.swiper-wrapper:before {
    content: &quot;&quot;;
    flex-shrink: 0;
    order: 9999
}

.swiper-centered&gt;.swiper-wrapper&gt;.swiper-slide {
    scroll-snap-align: center center;
    scroll-snap-stop: always
}

.swiper-centered.swiper-horizontal&gt;.swiper-wrapper&gt;.swiper-slide:first-child {
    margin-inline-start: var(--swiper-centered-offset-before)
}

.swiper-centered.swiper-horizontal&gt;.swiper-wrapper:before {
    height: 100%;
    min-height: 1px;
    width: var(--swiper-centered-offset-after)
}

.swiper-centered.swiper-vertical&gt;.swiper-wrapper&gt;.swiper-slide:first-child {
    margin-block-start: var(--swiper-centered-offset-before)
}

.swiper-centered.swiper-vertical&gt;.swiper-wrapper:before {
    width: 100%;
    min-width: 1px;
    height: var(--swiper-centered-offset-after)
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent
}

.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader,
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    0% {
        transform: rotate(0)
    }

    to {
        transform: rotate(360deg)
    }
}

.swiper-cube {
    overflow: visible
}

.swiper-cube .swiper-slide {
    pointer-events: none;
    backface-visibility: hidden;
    z-index: 1;
    visibility: hidden;
    transform-origin: 0 0;
    width: 100%;
    height: 100%
}

.swiper-cube .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-cube.swiper-rtl .swiper-slide {
    transform-origin: 100% 0
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-next,
.swiper-cube .swiper-slide-prev,
.swiper-cube .swiper-slide-next+.swiper-slide {
    pointer-events: auto;
    visibility: visible
}

.swiper-cube .swiper-slide-shadow-top,
.swiper-cube .swiper-slide-shadow-bottom,
.swiper-cube .swiper-slide-shadow-left,
.swiper-cube .swiper-slide-shadow-right {
    z-index: 0;
    backface-visibility: hidden
}

.swiper-cube .swiper-cube-shadow {
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 100%;
    height: 100%;
    opacity: .6;
    z-index: 0
}

.swiper-cube .swiper-cube-shadow:before {
    content: &quot;&quot;;
    background: #000;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    -webkit-filter: blur(50px);
    filter: blur(50px)
}

* {
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
}

html,
body {
    position: relative;
    margin: 0;
    padding: 0;
    background: #000;
    overflow: hidden;
    height: 100%
}

body {
    color: #fff;
    line-height: 1.5;
    font-family: -apple-system, system-ui, Helvetica Neue, Helvetica, Arial, Segoe UI, Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

#app {
    height: 100%
}

.demo-app {
    overflow: auto;
    height: 100%
}

.demo-title {
    padding: 24px 12px 12px
}

.demo-codeplaners {
    display: flex;
    align-items: center;
    padding: 12px;
    overflow: auto;
    scrollbar-width: none;
    border-bottom: 1px solid #262626
}

.demo-codeplaners::-webkit-scrollbar {
    display: none;
    opacity: 0
}

.demo-codeplaners a+a {
    margin-left: 12px
}

.demo-codeplaners a {
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition-duration: .3s;
    transition-property: opacity
}

.demo-codeplaners a:active {
    opacity: .55;
    transition-duration: 50ms
}

.demo-codeplaners-avatar {
    position: relative;
    border-radius: 50%;
    padding: 4px;
    background-image: linear-gradient(to right top, #ffc600 20%, #ff0040, #e600cc 80%)
}

.demo-codeplaners-avatar:before {
    content: &quot;&quot;;
    position: absolute;
    left: 2px;
    top: 2px;
    right: 2px;
    bottom: 2px;
    background: #000;
    border-radius: 50%;
    z-index: 1
}

.demo-codeplaners-avatar img {
    position: relative;
    z-index: 2;
    display: block;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center
}

.demo-codeplaners-name {
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    margin-top: 10px
}

.demo-post-header {
    display: flex;
    align-items: center;
    padding: 8px
}

.demo-post-header-actions {
    appearance: none;
    padding: 0;
    border: none;
    outline: 0;
    position: relative;
    box-shadow: none;
    border-radius: 0;
    background: none;
    margin: 0 0 0 auto;
    display: flex;
    align-items: center;
    cursor: pointer;
    transition-duration: .3s;
    transition-property: opacity
}

.demo-post-header-actions:active {
    opacity: .55;
    transition-duration: 50ms
}

.demo-post-header-actions span {
    width: 3px;
    height: 3px;
    background: #fff;
    border-radius: 50%
}

.demo-post-header-actions span+span {
    margin-left: 3px
}

.demo-post-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin-right: 8px;
    padding: 2px;
    box-sizing: border-box;
    position: relative;
    cursor: pointer;
    background-image: linear-gradient(to right top, #ffc600 20%, #ff0040, #e600cc 80%);
    transition-property: opacity;
    transition-duration: .2s
}

.demo-post-avatar:active {
    opacity: .55;
    transition-duration: 0
}

.demo-post-avatar:before {
    content: &quot;&quot;;
    left: 1px;
    top: 1px;
    right: 1px;
    bottom: 1px;
    background: #000;
    position: absolute;
    border-radius: 50%;
    z-index: 0
}

.demo-post-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
    position: relative;
    z-index: 1
}

.demo-post-name {
    font-size: 14px;
    font-weight: 600
}

.demo-post-image {
    height: 320px
}

.demo-post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

.demo-post-footer {
    padding: 16px
}

.demo-post-footer-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 16px
}

.demo-post-footer-actions-left,
.demo-post-footer-actions-right {
    display: flex;
    align-items: center
}

.demo-post-footer-actions button {
    appearance: none;
    border: none;
    outline: 0;
    position: relative;
    box-shadow: none;
    border-radius: 0;
    background: none;
    display: flex;
    align-items: center;
    cursor: pointer;
    transition-duration: .3s;
    transition-property: opacity;
    padding: 0;
    margin: 0
}

.demo-post-footer-actions button:active {
    opacity: .55;
    transition-duration: 50ms
}

.demo-post-footer-actions button img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    object-position: center
}

.demo-post-footer-actions button+button {
    margin-left: 16px
}

.demo-post-likes {
    font-size: 14px;
    font-weight: 600
}

.demo-post-content {
    font-size: 14px;
    margin-top: 4px;
    line-height: 1.25
}

.demo-post-content-name {
    font-weight: 600
}

.demo-post-content-text {
    opacity: .85
}

.demo-post-date {
    margin-top: 4px;
    font-size: 12px;
    opacity: .5;
    font-weight: 500
}

.codeplaners-slider {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    transform: scale(0);
    transform: translateZ(0) scale(.5);
    opacity: 0;
    background: #000
}

@media (min-width: 415px),
(min-height: 897px) {
    .codeplaners-slider {
        background: rgb(41, 40, 49)
    }
}

.codeplaners-slider&gt;.swiper {
    z-index: 2;
    max-width: 414px;
    max-height: 896px
}

.codeplaners-slider:not(.codeplaners-slider-in) {
    pointer-events: none
}

.codeplaners-slider:not(.codeplaners-slider-in) * {
    pointer-events: none !important
}

.codeplaners-slider-in {
    animation: codeplaners-slider-in .4s forwards;
    pointer-events: auto;
    transform: translateZ(0) scale(1);
    opacity: 1
}

.codeplaners-slider-out {
    pointer-events: none;
    animation: codeplaners-slider-out .4s forwards !important
}

@keyframes codeplaners-slider-in {
    0% {
        transform: translateZ(0) scale(.5);
        opacity: 0
    }

    50% {
        transform: translateZ(0) scale(1.05);
        opacity: 1
    }

    to {
        transform: translateZ(0) scale(1);
        opacity: 1
    }
}

@keyframes codeplaners-slider-out {
    0% {
        transform: translateZ(0) scale(1);
        opacity: 1
    }

    50% {
        transform: translateZ(0) scale(.5);
        opacity: 0
    }

    to {
        transform: translateZ(0) scale(.5);
        opacity: 0
    }
}
</pre>
<h3 class="step_code">index.js</h3>
<pre class="brush: jscript; title: ; notranslate">
const Me = function () {
    const e = document.createElement(&quot;link&quot;).relList;
    if (e &amp;&amp; e.supports &amp;&amp; e.supports(&quot;modulepreload&quot;)) return;
    for (const n of document.querySelectorAll('link&#x5B;rel=&quot;modulepreload&quot;]')) i(n);
    new MutationObserver(n =&gt; {
       for (const r of n)
          if (r.type === &quot;childList&quot;)
             for (const o of r.addedNodes) o.tagName === &quot;LINK&quot; &amp;&amp; o.rel === &quot;modulepreload&quot; &amp;&amp; i(o)
    }).observe(document, {
       childList: !0,
       subtree: !0
    });
 
    function s(n) {
       const r = {};
       return n.integrity &amp;&amp; (r.integrity = n.integrity), n.referrerpolicy &amp;&amp; (r.referrerPolicy = n.referrerpolicy), n.crossorigin === &quot;use-credentials&quot; ? r.credentials = &quot;include&quot; : n.crossorigin === &quot;anonymous&quot; ? r.credentials = &quot;omit&quot; : r.credentials = &quot;same-origin&quot;, r
    }
 
    function i(n) {
       if (n.ep) return;
       n.ep = !0;
       const r = s(n);
       fetch(n.href, r)
    }
 };
 Me();
 
 function pe(t) {
    return t !== null &amp;&amp; typeof t == &quot;object&quot; &amp;&amp; &quot;constructor&quot; in t &amp;&amp; t.constructor === Object
 }
 
 function ce(t = {}, e = {}) {
    Object.keys(e).forEach(s =&gt; {
       typeof t&#x5B;s] == &quot;undefined&quot; ? t&#x5B;s] = e&#x5B;s] : pe(e&#x5B;s]) &amp;&amp; pe(t&#x5B;s]) &amp;&amp; Object.keys(e&#x5B;s]).length &gt; 0 &amp;&amp; ce(t&#x5B;s], e&#x5B;s])
    })
 }
 const Te = {
    body: {},
    addEventListener() {},
    removeEventListener() {},
    activeElement: {
       blur() {},
       nodeName: &quot;&quot;
    },
    querySelector() {
       return null
    },
    querySelectorAll() {
       return &#x5B;]
    },
    getElementById() {
       return null
    },
    createEvent() {
       return {
          initEvent() {}
       }
    },
    createElement() {
       return {
          children: &#x5B;],
          childNodes: &#x5B;],
          style: {},
          setAttribute() {},
          getElementsByTagName() {
             return &#x5B;]
          }
       }
    },
    createElementNS() {
       return {}
    },
    importNode() {
       return null
    },
    location: {
       hash: &quot;&quot;,
       host: &quot;&quot;,
       hostname: &quot;&quot;,
       href: &quot;&quot;,
       origin: &quot;&quot;,
       pathname: &quot;&quot;,
       protocol: &quot;&quot;,
       search: &quot;&quot;
    }
 };
 
 function W() {
    const t = typeof document != &quot;undefined&quot; ? document : {};
    return ce(t, Te), t
 }
 const Pe = {
    document: Te,
    navigator: {
       userAgent: &quot;&quot;
    },
    location: {
       hash: &quot;&quot;,
       host: &quot;&quot;,
       hostname: &quot;&quot;,
       href: &quot;&quot;,
       origin: &quot;&quot;,
       pathname: &quot;&quot;,
       protocol: &quot;&quot;,
       search: &quot;&quot;
    },
    history: {
       replaceState() {},
       pushState() {},
       go() {},
       back() {}
    },
    CustomEvent: function () {
       return this
    },
    addEventListener() {},
    removeEventListener() {},
    getComputedStyle() {
       return {
          getPropertyValue() {
             return &quot;&quot;
          }
       }
    },
    Image() {},
    Date() {},
    screen: {},
    setTimeout() {},
    clearTimeout() {},
    matchMedia() {
       return {}
    },
    requestAnimationFrame(t) {
       return typeof setTimeout == &quot;undefined&quot; ? (t(), null) : setTimeout(t, 0)
    },
    cancelAnimationFrame(t) {
       typeof setTimeout != &quot;undefined&quot; &amp;&amp; clearTimeout(t)
    }
 };
 
 function B() {
    const t = typeof window != &quot;undefined&quot; ? window : {};
    return ce(t, Pe), t
 }
 
 function Ce(t) {
    const e = t;
    Object.keys(e).forEach(s =&gt; {
       try {
          e&#x5B;s] = null
       } catch {}
       try {
          delete e&#x5B;s]
       } catch {}
    })
 }
 
 function de(t, e = 0) {
    return setTimeout(t, e)
 }
 
 function U() {
    return Date.now()
 }
 
 function Le(t) {
    const e = B();
    let s;
    return e.getComputedStyle &amp;&amp; (s = e.getComputedStyle(t, null)), !s &amp;&amp; t.currentStyle &amp;&amp; (s = t.currentStyle), s || (s = t.style), s
 }
 
 function Ae(t, e = &quot;x&quot;) {
    const s = B();
    let i, n, r;
    const o = Le(t);
    return s.WebKitCSSMatrix ? (n = o.transform || o.webkitTransform, n.split(&quot;,&quot;).length &gt; 6 &amp;&amp; (n = n.split(&quot;, &quot;).map(a =&gt; a.replace(&quot;,&quot;, &quot;.&quot;)).join(&quot;, &quot;)), r = new s.WebKitCSSMatrix(n === &quot;none&quot; ? &quot;&quot; : n)) : (r = o.MozTransform || o.OTransform || o.MsTransform || o.msTransform || o.transform || o.getPropertyValue(&quot;transform&quot;).replace(&quot;translate(&quot;, &quot;matrix(1, 0, 0, 1,&quot;), i = r.toString().split(&quot;,&quot;)), e === &quot;x&quot; &amp;&amp; (s.WebKitCSSMatrix ? n = r.m41 : i.length === 16 ? n = parseFloat(i&#x5B;12]) : n = parseFloat(i&#x5B;4])), e === &quot;y&quot; &amp;&amp; (s.WebKitCSSMatrix ? n = r.m42 : i.length === 16 ? n = parseFloat(i&#x5B;13]) : n = parseFloat(i&#x5B;5])), n || 0
 }
 
 function J(t) {
    return typeof t == &quot;object&quot; &amp;&amp; t !== null &amp;&amp; t.constructor &amp;&amp; Object.prototype.toString.call(t).slice(8, -1) === &quot;Object&quot;
 }
 
 function Ie(t) {
    return typeof window != &quot;undefined&quot; &amp;&amp; typeof window.HTMLElement != &quot;undefined&quot; ? t instanceof HTMLElement : t &amp;&amp; (t.nodeType === 1 || t.nodeType === 11)
 }
 
 function N(...t) {
    const e = Object(t&#x5B;0]),
       s = &#x5B;&quot;__proto__&quot;, &quot;constructor&quot;, &quot;prototype&quot;];
    for (let i = 1; i &lt; t.length; i += 1) {
       const n = t&#x5B;i];
       if (n != null &amp;&amp; !Ie(n)) {
          const r = Object.keys(Object(n)).filter(o =&gt; s.indexOf(o) &lt; 0);
          for (let o = 0, a = r.length; o &lt; a; o += 1) {
             const l = r&#x5B;o],
                d = Object.getOwnPropertyDescriptor(n, l);
             d !== void 0 &amp;&amp; d.enumerable &amp;&amp; (J(e&#x5B;l]) &amp;&amp; J(n&#x5B;l]) ? n&#x5B;l].__swiper__ ? e&#x5B;l] = n&#x5B;l] : N(e&#x5B;l], n&#x5B;l]) : !J(e&#x5B;l]) &amp;&amp; J(n&#x5B;l]) ? (e&#x5B;l] = {}, n&#x5B;l].__swiper__ ? e&#x5B;l] = n&#x5B;l] : N(e&#x5B;l], n&#x5B;l])) : e&#x5B;l] = n&#x5B;l])
          }
       }
    }
    return e
 }
 
 function Q(t, e, s) {
    t.style.setProperty(e, s)
 }
 
 function be({
    swiper: t,
    targetPosition: e,
    side: s
 }) {
    const i = B(),
       n = -t.translate;
    let r = null,
       o;
    const a = t.params.speed;
    t.wrapperEl.style.scrollSnapType = &quot;none&quot;, i.cancelAnimationFrame(t.cssModeFrameID);
    const l = e &gt; n ? &quot;next&quot; : &quot;prev&quot;,
       d = (c, p) =&gt; l === &quot;next&quot; &amp;&amp; c &gt;= p || l === &quot;prev&quot; &amp;&amp; c &lt;= p,
       u = () =&gt; {
          o = new Date().getTime(), r === null &amp;&amp; (r = o);
          const c = Math.max(Math.min((o - r) / a, 1), 0),
             p = .5 - Math.cos(c * Math.PI) / 2;
          let f = n + p * (e - n);
          if (d(f, e) &amp;&amp; (f = e), t.wrapperEl.scrollTo({
                &#x5B;s]: f
             }), d(f, e)) {
             t.wrapperEl.style.overflow = &quot;hidden&quot;, t.wrapperEl.style.scrollSnapType = &quot;&quot;, setTimeout(() =&gt; {
                t.wrapperEl.style.overflow = &quot;&quot;, t.wrapperEl.scrollTo({
                   &#x5B;s]: f
                })
             }), i.cancelAnimationFrame(t.cssModeFrameID);
             return
          }
          t.cssModeFrameID = i.requestAnimationFrame(u)
       };
    u()
 }
 
 function R(t, e = &quot;&quot;) {
    return &#x5B;...t.children].filter(s =&gt; s.matches(e))
 }
 
 function Y(t, e = &#x5B;]) {
    const s = document.createElement(t);
    return s.classList.add(...Array.isArray(e) ? e : &#x5B;e]), s
 }
 
 function ze(t, e) {
    const s = &#x5B;];
    for (; t.previousElementSibling;) {
       const i = t.previousElementSibling;
       e ? i.matches(e) &amp;&amp; s.push(i) : s.push(i), t = i
    }
    return s
 }
 
 function Oe(t, e) {
    const s = &#x5B;];
    for (; t.nextElementSibling;) {
       const i = t.nextElementSibling;
       e ? i.matches(e) &amp;&amp; s.push(i) : s.push(i), t = i
    }
    return s
 }
 
 function _(t, e) {
    return B().getComputedStyle(t, null).getPropertyValue(e)
 }
 
 function j(t) {
    let e = t,
       s;
    if (e) {
       for (s = 0;
          (e = e.previousSibling) !== null;) e.nodeType === 1 &amp;&amp; (s += 1);
       return s
    }
 }
 
 function ke(t, e) {
    const s = &#x5B;];
    let i = t.parentElement;
    for (; i;) e ? i.matches(e) &amp;&amp; s.push(i) : s.push(i), i = i.parentElement;
    return s
 }
 
 function he(t, e, s) {
    const i = B();
    return s ? t&#x5B;e === &quot;width&quot; ? &quot;offsetWidth&quot; : &quot;offsetHeight&quot;] + parseFloat(i.getComputedStyle(t, null).getPropertyValue(e === &quot;width&quot; ? &quot;margin-right&quot; : &quot;margin-top&quot;)) + parseFloat(i.getComputedStyle(t, null).getPropertyValue(e === &quot;width&quot; ? &quot;margin-left&quot; : &quot;margin-bottom&quot;)) : t.offsetWidth
 }
 let re;
 
 function Ge() {
    const t = B(),
       e = W();
    return {
       smoothScroll: e.documentElement &amp;&amp; &quot;scrollBehavior&quot; in e.documentElement.style,
       touch: !!(&quot;ontouchstart&quot; in t || t.DocumentTouch &amp;&amp; e instanceof t.DocumentTouch)
    }
 }
 
 function ye() {
    return re || (re = Ge()), re
 }
 let ne;
 
 function $e({
    userAgent: t
 } = {}) {
    const e = ye(),
       s = B(),
       i = s.navigator.platform,
       n = t || s.navigator.userAgent,
       r = {
          ios: !1,
          android: !1
       },
       o = s.screen.width,
       a = s.screen.height,
       l = n.match(/(Android);?&#x5B;\s\/]+(&#x5B;\d.]+)?/);
    let d = n.match(/(iPad).*OS\s(&#x5B;\d_]+)/);
    const u = n.match(/(iPod)(.*OS\s(&#x5B;\d_]+))?/),
       c = !d &amp;&amp; n.match(/(iPhone\sOS|iOS)\s(&#x5B;\d_]+)/),
       p = i === &quot;Win32&quot;;
    let f = i === &quot;MacIntel&quot;;
    const w = &#x5B;&quot;1024x1366&quot;, &quot;1366x1024&quot;, &quot;834x1194&quot;, &quot;1194x834&quot;, &quot;834x1112&quot;, &quot;1112x834&quot;, &quot;768x1024&quot;, &quot;1024x768&quot;, &quot;820x1180&quot;, &quot;1180x820&quot;, &quot;810x1080&quot;, &quot;1080x810&quot;];
    return !d &amp;&amp; f &amp;&amp; e.touch &amp;&amp; w.indexOf(`${o}x${a}`) &gt;= 0 &amp;&amp; (d = n.match(/(Version)\/(&#x5B;\d.]+)/), d || (d = &#x5B;0, 1, &quot;13_0_0&quot;]), f = !1), l &amp;&amp; !p &amp;&amp; (r.os = &quot;android&quot;, r.android = !0), (d || c || u) &amp;&amp; (r.os = &quot;ios&quot;, r.ios = !0), r
 }
 
 function De(t = {}) {
    return ne || (ne = $e(t)), ne
 }
 let ae;
 
 function Ve() {
    const t = B();
    let e = !1;
 
    function s() {
       const i = t.navigator.userAgent.toLowerCase();
       return i.indexOf(&quot;safari&quot;) &gt;= 0 &amp;&amp; i.indexOf(&quot;chrome&quot;) &lt; 0 &amp;&amp; i.indexOf(&quot;android&quot;) &lt; 0
    }
    if (s()) {
       const i = String(t.navigator.userAgent);
       if (i.includes(&quot;Version/&quot;)) {
          const &#x5B;n, r] = i.split(&quot;Version/&quot;)&#x5B;1].split(&quot; &quot;)&#x5B;0].split(&quot;.&quot;).map(o =&gt; Number(o));
          e = n &lt; 16 || n === 16 &amp;&amp; r &lt; 2
       }
    }
    return {
       isSafari: e || s(),
       needPerspectiveFix: e,
       isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)
    }
 }
 
 function Ne() {
    return ae || (ae = Ve()), ae
 }
 
 function Be({
    swiper: t,
    on: e,
    emit: s
 }) {
    const i = B();
    let n = null,
       r = null;
    const o = () =&gt; {
          !t || t.destroyed || !t.initialized || (s(&quot;beforeResize&quot;), s(&quot;resize&quot;))
       },
       a = () =&gt; {
          !t || t.destroyed || !t.initialized || (n = new ResizeObserver(u =&gt; {
             r = i.requestAnimationFrame(() =&gt; {
                const {
                   width: c,
                   height: p
                } = t;
                let f = c,
                   w = p;
                u.forEach(({
                   contentBoxSize: m,
                   contentRect: T,
                   target: S
                }) =&gt; {
                   S &amp;&amp; S !== t.el || (f = T ? T.width : (m&#x5B;0] || m).inlineSize, w = T ? T.height : (m&#x5B;0] || m).blockSize)
                }), (f !== c || w !== p) &amp;&amp; o()
             })
          }), n.observe(t.el))
       },
       l = () =&gt; {
          r &amp;&amp; i.cancelAnimationFrame(r), n &amp;&amp; n.unobserve &amp;&amp; t.el &amp;&amp; (n.unobserve(t.el), n = null)
       },
       d = () =&gt; {
          !t || t.destroyed || !t.initialized || s(&quot;orientationchange&quot;)
       };
    e(&quot;init&quot;, () =&gt; {
       if (t.params.resizeObserver &amp;&amp; typeof i.ResizeObserver != &quot;undefined&quot;) {
          a();
          return
       }
       i.addEventListener(&quot;resize&quot;, o), i.addEventListener(&quot;orientationchange&quot;, d)
    }), e(&quot;destroy&quot;, () =&gt; {
       l(), i.removeEventListener(&quot;resize&quot;, o), i.removeEventListener(&quot;orientationchange&quot;, d)
    })
 }
 
 function Fe({
    swiper: t,
    extendParams: e,
    on: s,
    emit: i
 }) {
    const n = &#x5B;],
       r = B(),
       o = (d, u = {}) =&gt; {
          const c = r.MutationObserver || r.WebkitMutationObserver,
             p = new c(f =&gt; {
                if (f.length === 1) {
                   i(&quot;observerUpdate&quot;, f&#x5B;0]);
                   return
                }
                const w = function () {
                   i(&quot;observerUpdate&quot;, f&#x5B;0])
                };
                r.requestAnimationFrame ? r.requestAnimationFrame(w) : r.setTimeout(w, 0)
             });
          p.observe(d, {
             attributes: typeof u.attributes == &quot;undefined&quot; ? !0 : u.attributes,
             childList: typeof u.childList == &quot;undefined&quot; ? !0 : u.childList,
             characterData: typeof u.characterData == &quot;undefined&quot; ? !0 : u.characterData
          }), n.push(p)
       },
       a = () =&gt; {
          if (!!t.params.observer) {
             if (t.params.observeParents) {
                const d = ke(t.el);
                for (let u = 0; u &lt; d.length; u += 1) o(d&#x5B;u])
             }
             o(t.el, {
                childList: t.params.observeSlideChildren
             }), o(t.wrapperEl, {
                attributes: !1
             })
          }
       },
       l = () =&gt; {
          n.forEach(d =&gt; {
             d.disconnect()
          }), n.splice(0, n.length)
       };
    e({
       observer: !1,
       observeParents: !1,
       observeSlideChildren: !1
    }), s(&quot;init&quot;, a), s(&quot;destroy&quot;, l)
 }
 var He = {
    on(t, e, s) {
       const i = this;
       if (!i.eventsListeners || i.destroyed || typeof e != &quot;function&quot;) return i;
       const n = s ? &quot;unshift&quot; : &quot;push&quot;;
       return t.split(&quot; &quot;).forEach(r =&gt; {
          i.eventsListeners&#x5B;r] || (i.eventsListeners&#x5B;r] = &#x5B;]), i.eventsListeners&#x5B;r]&#x5B;n](e)
       }), i
    },
    once(t, e, s) {
       const i = this;
       if (!i.eventsListeners || i.destroyed || typeof e != &quot;function&quot;) return i;
 
       function n(...r) {
          i.off(t, n), n.__emitterProxy &amp;&amp; delete n.__emitterProxy, e.apply(i, r)
       }
       return n.__emitterProxy = e, i.on(t, n, s)
    },
    onAny(t, e) {
       const s = this;
       if (!s.eventsListeners || s.destroyed || typeof t != &quot;function&quot;) return s;
       const i = e ? &quot;unshift&quot; : &quot;push&quot;;
       return s.eventsAnyListeners.indexOf(t) &lt; 0 &amp;&amp; s.eventsAnyListeners&#x5B;i](t), s
    },
    offAny(t) {
       const e = this;
       if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e;
       const s = e.eventsAnyListeners.indexOf(t);
       return s &gt;= 0 &amp;&amp; e.eventsAnyListeners.splice(s, 1), e
    },
    off(t, e) {
       const s = this;
       return !s.eventsListeners || s.destroyed || !s.eventsListeners || t.split(&quot; &quot;).forEach(i =&gt; {
          typeof e == &quot;undefined&quot; ? s.eventsListeners&#x5B;i] = &#x5B;] : s.eventsListeners&#x5B;i] &amp;&amp; s.eventsListeners&#x5B;i].forEach((n, r) =&gt; {
             (n === e || n.__emitterProxy &amp;&amp; n.__emitterProxy === e) &amp;&amp; s.eventsListeners&#x5B;i].splice(r, 1)
          })
       }), s
    },
    emit(...t) {
       const e = this;
       if (!e.eventsListeners || e.destroyed || !e.eventsListeners) return e;
       let s, i, n;
       return typeof t&#x5B;0] == &quot;string&quot; || Array.isArray(t&#x5B;0]) ? (s = t&#x5B;0], i = t.slice(1, t.length), n = e) : (s = t&#x5B;0].events, i = t&#x5B;0].data, n = t&#x5B;0].context || e), i.unshift(n), (Array.isArray(s) ? s : s.split(&quot; &quot;)).forEach(o =&gt; {
          e.eventsAnyListeners &amp;&amp; e.eventsAnyListeners.length &amp;&amp; e.eventsAnyListeners.forEach(a =&gt; {
             a.apply(n, &#x5B;o, ...i])
          }), e.eventsListeners &amp;&amp; e.eventsListeners&#x5B;o] &amp;&amp; e.eventsListeners&#x5B;o].forEach(a =&gt; {
             a.apply(n, i)
          })
       }), e
    }
 };
 
 function qe() {
    const t = this;
    let e, s;
    const i = t.el;
    typeof t.params.width != &quot;undefined&quot; &amp;&amp; t.params.width !== null ? e = t.params.width : e = i.clientWidth, typeof t.params.height != &quot;undefined&quot; &amp;&amp; t.params.height !== null ? s = t.params.height : s = i.clientHeight, !(e === 0 &amp;&amp; t.isHorizontal() || s === 0 &amp;&amp; t.isVertical()) &amp;&amp; (e = e - parseInt(_(i, &quot;padding-left&quot;) || 0, 10) - parseInt(_(i, &quot;padding-right&quot;) || 0, 10), s = s - parseInt(_(i, &quot;padding-top&quot;) || 0, 10) - parseInt(_(i, &quot;padding-bottom&quot;) || 0, 10), Number.isNaN(e) &amp;&amp; (e = 0), Number.isNaN(s) &amp;&amp; (s = 0), Object.assign(t, {
       width: e,
       height: s,
       size: t.isHorizontal() ? e : s
    }))
 }
 
 function _e() {
    const t = this;
 
    function e(v) {
       return t.isHorizontal() ? v : {
          width: &quot;height&quot;,
          &quot;margin-top&quot;: &quot;margin-left&quot;,
          &quot;margin-bottom &quot;: &quot;margin-right&quot;,
          &quot;margin-left&quot;: &quot;margin-top&quot;,
          &quot;margin-right&quot;: &quot;margin-bottom&quot;,
          &quot;padding-left&quot;: &quot;padding-top&quot;,
          &quot;padding-right&quot;: &quot;padding-bottom&quot;,
          marginRight: &quot;marginBottom&quot;
       } &#x5B;v]
    }
 
    function s(v, E) {
       return parseFloat(v.getPropertyValue(e(E)) || 0)
    }
    const i = t.params,
       {
          wrapperEl: n,
          slidesEl: r,
          size: o,
          rtlTranslate: a,
          wrongRTL: l
       } = t,
       d = t.virtual &amp;&amp; i.virtual.enabled,
       u = d ? t.virtual.slides.length : t.slides.length,
       c = R(r, `.${t.params.slideClass}, swiper-slide`),
       p = d ? t.virtual.slides.length : c.length;
    let f = &#x5B;];
    const w = &#x5B;],
       m = &#x5B;];
    let T = i.slidesOffsetBefore;
    typeof T == &quot;function&quot; &amp;&amp; (T = i.slidesOffsetBefore.call(t));
    let S = i.slidesOffsetAfter;
    typeof S == &quot;function&quot; &amp;&amp; (S = i.slidesOffsetAfter.call(t));
    const P = t.snapGrid.length,
       g = t.slidesGrid.length;
    let b = i.spaceBetween,
       y = -T,
       x = 0,
       I = 0;
    if (typeof o == &quot;undefined&quot;) return;
    typeof b == &quot;string&quot; &amp;&amp; b.indexOf(&quot;%&quot;) &gt;= 0 &amp;&amp; (b = parseFloat(b.replace(&quot;%&quot;, &quot;&quot;)) / 100 * o), t.virtualSize = -b, c.forEach(v =&gt; {
       a ? v.style.marginLeft = &quot;&quot; : v.style.marginRight = &quot;&quot;, v.style.marginBottom = &quot;&quot;, v.style.marginTop = &quot;&quot;
    }), i.centeredSlides &amp;&amp; i.cssMode &amp;&amp; (Q(n, &quot;--swiper-centered-offset-before&quot;, &quot;&quot;), Q(n, &quot;--swiper-centered-offset-after&quot;, &quot;&quot;));
    const O = i.grid &amp;&amp; i.grid.rows &gt; 1 &amp;&amp; t.grid;
    O &amp;&amp; t.grid.initSlides(p);
    let z;
    const V = i.slidesPerView === &quot;auto&quot; &amp;&amp; i.breakpoints &amp;&amp; Object.keys(i.breakpoints).filter(v =&gt; typeof i.breakpoints&#x5B;v].slidesPerView != &quot;undefined&quot;).length &gt; 0;
    for (let v = 0; v &lt; p; v += 1) {
       z = 0;
       let E;
       if (c&#x5B;v] &amp;&amp; (E = c&#x5B;v]), O &amp;&amp; t.grid.updateSlide(v, E, p, e), !(c&#x5B;v] &amp;&amp; _(E, &quot;display&quot;) === &quot;none&quot;)) {
          if (i.slidesPerView === &quot;auto&quot;) {
             V &amp;&amp; (c&#x5B;v].style&#x5B;e(&quot;width&quot;)] = &quot;&quot;);
             const L = getComputedStyle(E),
                D = E.style.transform,
                X = E.style.webkitTransform;
             if (D &amp;&amp; (E.style.transform = &quot;none&quot;), X &amp;&amp; (E.style.webkitTransform = &quot;none&quot;), i.roundLengths) z = t.isHorizontal() ? he(E, &quot;width&quot;, !0) : he(E, &quot;height&quot;, !0);
             else {
                const Z = s(L, &quot;width&quot;),
                   fe = s(L, &quot;padding-left&quot;),
                   ue = s(L, &quot;padding-right&quot;),
                   te = s(L, &quot;margin-left&quot;),
                   se = s(L, &quot;margin-right&quot;),
                   h = L.getPropertyValue(&quot;box-sizing&quot;);
                if (h &amp;&amp; h === &quot;border-box&quot;) z = Z + te + se;
                else {
                   const {
                      clientWidth: M,
                      offsetWidth: C
                   } = E;
                   z = Z + fe + ue + te + se + (C - M)
                }
             }
             D &amp;&amp; (E.style.transform = D), X &amp;&amp; (E.style.webkitTransform = X), i.roundLengths &amp;&amp; (z = Math.floor(z))
          } else z = (o - (i.slidesPerView - 1) * b) / i.slidesPerView, i.roundLengths &amp;&amp; (z = Math.floor(z)), c&#x5B;v] &amp;&amp; (c&#x5B;v].style&#x5B;e(&quot;width&quot;)] = `${z}px`);
          c&#x5B;v] &amp;&amp; (c&#x5B;v].swiperSlideSize = z), m.push(z), i.centeredSlides ? (y = y + z / 2 + x / 2 + b, x === 0 &amp;&amp; v !== 0 &amp;&amp; (y = y - o / 2 - b), v === 0 &amp;&amp; (y = y - o / 2 - b), Math.abs(y) &lt; 1 / 1e3 &amp;&amp; (y = 0), i.roundLengths &amp;&amp; (y = Math.floor(y)), I % i.slidesPerGroup === 0 &amp;&amp; f.push(y), w.push(y)) : (i.roundLengths &amp;&amp; (y = Math.floor(y)), (I - Math.min(t.params.slidesPerGroupSkip, I)) % t.params.slidesPerGroup === 0 &amp;&amp; f.push(y), w.push(y), y = y + z + b), t.virtualSize += z + b, x = z, I += 1
       }
    }
    if (t.virtualSize = Math.max(t.virtualSize, o) + S, a &amp;&amp; l &amp;&amp; (i.effect === &quot;slide&quot; || i.effect === &quot;coverflow&quot;) &amp;&amp; (n.style.width = `${t.virtualSize+i.spaceBetween}px`), i.setWrapperSize &amp;&amp; (n.style&#x5B;e(&quot;width&quot;)] = `${t.virtualSize+i.spaceBetween}px`), O &amp;&amp; t.grid.updateWrapperSize(z, f, e), !i.centeredSlides) {
       const v = &#x5B;];
       for (let E = 0; E &lt; f.length; E += 1) {
          let L = f&#x5B;E];
          i.roundLengths &amp;&amp; (L = Math.floor(L)), f&#x5B;E] &lt;= t.virtualSize - o &amp;&amp; v.push(L)
       }
       f = v, Math.floor(t.virtualSize - o) - Math.floor(f&#x5B;f.length - 1]) &gt; 1 &amp;&amp; f.push(t.virtualSize - o)
    }
    if (d &amp;&amp; i.loop) {
       const v = m&#x5B;0] + b;
       if (i.slidesPerGroup &gt; 1) {
          const E = Math.ceil((t.virtual.slidesBefore + t.virtual.slidesAfter) / i.slidesPerGroup),
             L = v * i.slidesPerGroup;
          for (let D = 0; D &lt; E; D += 1) f.push(f&#x5B;f.length - 1] + L)
       }
       for (let E = 0; E &lt; t.virtual.slidesBefore + t.virtual.slidesAfter; E += 1) i.slidesPerGroup === 1 &amp;&amp; f.push(f&#x5B;f.length - 1] + v), w.push(w&#x5B;w.length - 1] + v), t.virtualSize += v
    }
    if (f.length === 0 &amp;&amp; (f = &#x5B;0]), i.spaceBetween !== 0) {
       const v = t.isHorizontal() &amp;&amp; a ? &quot;marginLeft&quot; : e(&quot;marginRight&quot;);
       c.filter((E, L) =&gt; !i.cssMode || i.loop ? !0 : L !== c.length - 1).forEach(E =&gt; {
          E.style&#x5B;v] = `${b}px`
       })
    }
    if (i.centeredSlides &amp;&amp; i.centeredSlidesBounds) {
       let v = 0;
       m.forEach(L =&gt; {
          v += L + (i.spaceBetween ? i.spaceBetween : 0)
       }), v -= i.spaceBetween;
       const E = v - o;
       f = f.map(L =&gt; L &lt; 0 ? -T : L &gt; E ? E + S : L)
    }
    if (i.centerInsufficientSlides) {
       let v = 0;
       if (m.forEach(E =&gt; {
             v += E + (i.spaceBetween ? i.spaceBetween : 0)
          }), v -= i.spaceBetween, v &lt; o) {
          const E = (o - v) / 2;
          f.forEach((L, D) =&gt; {
             f&#x5B;D] = L - E
          }), w.forEach((L, D) =&gt; {
             w&#x5B;D] = L + E
          })
       }
    }
    if (Object.assign(t, {
          slides: c,
          snapGrid: f,
          slidesGrid: w,
          slidesSizesGrid: m
       }), i.centeredSlides &amp;&amp; i.cssMode &amp;&amp; !i.centeredSlidesBounds) {
       Q(n, &quot;--swiper-centered-offset-before&quot;, `${-f&#x5B;0]}px`), Q(n, &quot;--swiper-centered-offset-after&quot;, `${t.size/2-m&#x5B;m.length-1]/2}px`);
       const v = -t.snapGrid&#x5B;0],
          E = -t.slidesGrid&#x5B;0];
       t.snapGrid = t.snapGrid.map(L =&gt; L + v), t.slidesGrid = t.slidesGrid.map(L =&gt; L + E)
    }
    if (p !== u &amp;&amp; t.emit(&quot;slidesLengthChange&quot;), f.length !== P &amp;&amp; (t.params.watchOverflow &amp;&amp; t.checkOverflow(), t.emit(&quot;snapGridLengthChange&quot;)), w.length !== g &amp;&amp; t.emit(&quot;slidesGridLengthChange&quot;), i.watchSlidesProgress &amp;&amp; t.updateSlidesOffset(), !d &amp;&amp; !i.cssMode &amp;&amp; (i.effect === &quot;slide&quot; || i.effect === &quot;fade&quot;)) {
       const v = `${i.containerModifierClass}backface-hidden`,
          E = t.el.classList.contains(v);
       p &lt;= i.maxBackfaceHiddenSlides ? E || t.el.classList.add(v) : E &amp;&amp; t.el.classList.remove(v)
    }
 }
 
 function Re(t) {
    const e = this,
       s = &#x5B;],
       i = e.virtual &amp;&amp; e.params.virtual.enabled;
    let n = 0,
       r;
    typeof t == &quot;number&quot; ? e.setTransition(t) : t === !0 &amp;&amp; e.setTransition(e.params.speed);
    const o = a =&gt; i ? e.slides.filter(l =&gt; parseInt(l.getAttribute(&quot;data-swiper-slide-index&quot;), 10) === a)&#x5B;0] : e.slides&#x5B;a];
    if (e.params.slidesPerView !== &quot;auto&quot; &amp;&amp; e.params.slidesPerView &gt; 1)
       if (e.params.centeredSlides)(e.visibleSlides || &#x5B;]).forEach(a =&gt; {
          s.push(a)
       });
       else
          for (r = 0; r &lt; Math.ceil(e.params.slidesPerView); r += 1) {
             const a = e.activeIndex + r;
             if (a &gt; e.slides.length &amp;&amp; !i) break;
             s.push(o(a))
          } else s.push(o(e.activeIndex));
    for (r = 0; r &lt; s.length; r += 1)
       if (typeof s&#x5B;r] != &quot;undefined&quot;) {
          const a = s&#x5B;r].offsetHeight;
          n = a &gt; n ? a : n
       }(n || n === 0) &amp;&amp; (e.wrapperEl.style.height = `${n}px`)
 }
 
 function We() {
    const t = this,
       e = t.slides,
       s = t.isElement ? t.isHorizontal() ? t.wrapperEl.offsetLeft : t.wrapperEl.offsetTop : 0;
    for (let i = 0; i &lt; e.length; i += 1) e&#x5B;i].swiperSlideOffset = (t.isHorizontal() ? e&#x5B;i].offsetLeft : e&#x5B;i].offsetTop) - s
 }
 
 function je(t = this &amp;&amp; this.translate || 0) {
    const e = this,
       s = e.params,
       {
          slides: i,
          rtlTranslate: n,
          snapGrid: r
       } = e;
    if (i.length === 0) return;
    typeof i&#x5B;0].swiperSlideOffset == &quot;undefined&quot; &amp;&amp; e.updateSlidesOffset();
    let o = -t;
    n &amp;&amp; (o = t), i.forEach(a =&gt; {
       a.classList.remove(s.slideVisibleClass)
    }), e.visibleSlidesIndexes = &#x5B;], e.visibleSlides = &#x5B;];
    for (let a = 0; a &lt; i.length; a += 1) {
       const l = i&#x5B;a];
       let d = l.swiperSlideOffset;
       s.cssMode &amp;&amp; s.centeredSlides &amp;&amp; (d -= i&#x5B;0].swiperSlideOffset);
       const u = (o + (s.centeredSlides ? e.minTranslate() : 0) - d) / (l.swiperSlideSize + s.spaceBetween),
          c = (o - r&#x5B;0] + (s.centeredSlides ? e.minTranslate() : 0) - d) / (l.swiperSlideSize + s.spaceBetween),
          p = -(o - d),
          f = p + e.slidesSizesGrid&#x5B;a];
       (p &gt;= 0 &amp;&amp; p &lt; e.size - 1 || f &gt; 1 &amp;&amp; f &lt;= e.size || p &lt;= 0 &amp;&amp; f &gt;= e.size) &amp;&amp; (e.visibleSlides.push(l), e.visibleSlidesIndexes.push(a), i&#x5B;a].classList.add(s.slideVisibleClass)), l.progress = n ? -u : u, l.originalProgress = n ? -c : c
    }
 }
 
 function Xe(t) {
    const e = this;
    if (typeof t == &quot;undefined&quot;) {
       const u = e.rtlTranslate ? -1 : 1;
       t = e &amp;&amp; e.translate &amp;&amp; e.translate * u || 0
    }
    const s = e.params,
       i = e.maxTranslate() - e.minTranslate();
    let {
       progress: n,
       isBeginning: r,
       isEnd: o,
       progressLoop: a
    } = e;
    const l = r,
       d = o;
    if (i === 0) n = 0, r = !0, o = !0;
    else {
       n = (t - e.minTranslate()) / i;
       const u = Math.abs(t - e.minTranslate()) &lt; 1,
          c = Math.abs(t - e.maxTranslate()) &lt; 1;
       r = u || n &lt;= 0, o = c || n &gt;= 1, u &amp;&amp; (n = 0), c &amp;&amp; (n = 1)
    }
    if (s.loop) {
       const u = j(e.slides.filter(T =&gt; T.getAttribute(&quot;data-swiper-slide-index&quot;) === &quot;0&quot;)&#x5B;0]),
          c = j(e.slides.filter(T =&gt; T.getAttribute(&quot;data-swiper-slide-index&quot;) * 1 === e.slides.length - 1)&#x5B;0]),
          p = e.slidesGrid&#x5B;u],
          f = e.slidesGrid&#x5B;c],
          w = e.slidesGrid&#x5B;e.slidesGrid.length - 1],
          m = Math.abs(t);
       m &gt;= p ? a = (m - p) / w : a = (m + w - f) / w, a &gt; 1 &amp;&amp; (a -= 1)
    }
    Object.assign(e, {
       progress: n,
       progressLoop: a,
       isBeginning: r,
       isEnd: o
    }), (s.watchSlidesProgress || s.centeredSlides &amp;&amp; s.autoHeight) &amp;&amp; e.updateSlidesProgress(t), r &amp;&amp; !l &amp;&amp; e.emit(&quot;reachBeginning toEdge&quot;), o &amp;&amp; !d &amp;&amp; e.emit(&quot;reachEnd toEdge&quot;), (l &amp;&amp; !r || d &amp;&amp; !o) &amp;&amp; e.emit(&quot;fromEdge&quot;), e.emit(&quot;progress&quot;, n)
 }
 
 function Ye() {
    const t = this,
       {
          slides: e,
          params: s,
          slidesEl: i,
          activeIndex: n
       } = t,
       r = t.virtual &amp;&amp; s.virtual.enabled,
       o = l =&gt; R(i, `.${s.slideClass}${l}, swiper-slide${l}`)&#x5B;0];
    e.forEach(l =&gt; {
       l.classList.remove(s.slideActiveClass, s.slideNextClass, s.slidePrevClass)
    });
    let a;
    if (r)
       if (s.loop) {
          let l = n - t.virtual.slidesBefore;
          l &lt; 0 &amp;&amp; (l = t.virtual.slides.length + l), l &gt;= t.virtual.slides.length &amp;&amp; (l -= t.virtual.slides.length), a = o(`&#x5B;data-swiper-slide-index=&quot;${l}&quot;]`)
       } else a = o(`&#x5B;data-swiper-slide-index=&quot;${n}&quot;]`);
    else a = e&#x5B;n];
    if (a) {
       a.classList.add(s.slideActiveClass);
       let l = Oe(a, `.${s.slideClass}, swiper-slide`)&#x5B;0];
       s.loop &amp;&amp; !l &amp;&amp; (l = e&#x5B;0]), l &amp;&amp; l.classList.add(s.slideNextClass);
       let d = ze(a, `.${s.slideClass}, swiper-slide`)&#x5B;0];
       s.loop &amp;&amp; !d === 0 &amp;&amp; (d = e&#x5B;e.length - 1]), d &amp;&amp; d.classList.add(s.slidePrevClass)
    }
    t.emitSlidesClasses()
 }
 
 function Ue(t) {
    const {
       slidesGrid: e,
       params: s
    } = t, i = t.rtlTranslate ? t.translate : -t.translate;
    let n;
    for (let r = 0; r &lt; e.length; r += 1) typeof e&#x5B;r + 1] != &quot;undefined&quot; ? i &gt;= e&#x5B;r] &amp;&amp; i &lt; e&#x5B;r + 1] - (e&#x5B;r + 1] - e&#x5B;r]) / 2 ? n = r : i &gt;= e&#x5B;r] &amp;&amp; i &lt; e&#x5B;r + 1] &amp;&amp; (n = r + 1) : i &gt;= e&#x5B;r] &amp;&amp; (n = r);
    return s.normalizeSlideIndex &amp;&amp; (n &lt; 0 || typeof n == &quot;undefined&quot;) &amp;&amp; (n = 0), n
 }
 
 function Ke(t) {
    const e = this,
       s = e.rtlTranslate ? e.translate : -e.translate,
       {
          snapGrid: i,
          params: n,
          activeIndex: r,
          realIndex: o,
          snapIndex: a
       } = e;
    let l = t,
       d;
    const u = p =&gt; {
       let f = p - e.virtual.slidesBefore;
       return f &lt; 0 &amp;&amp; (f = e.virtual.slides.length + f), f &gt;= e.virtual.slides.length &amp;&amp; (f -= e.virtual.slides.length), f
    };
    if (typeof l == &quot;undefined&quot; &amp;&amp; (l = Ue(e)), i.indexOf(s) &gt;= 0) d = i.indexOf(s);
    else {
       const p = Math.min(n.slidesPerGroupSkip, l);
       d = p + Math.floor((l - p) / n.slidesPerGroup)
    }
    if (d &gt;= i.length &amp;&amp; (d = i.length - 1), l === r) {
       d !== a &amp;&amp; (e.snapIndex = d, e.emit(&quot;snapIndexChange&quot;)), e.params.loop &amp;&amp; e.virtual &amp;&amp; e.params.virtual.enabled &amp;&amp; (e.realIndex = u(l));
       return
    }
    let c;
    e.virtual &amp;&amp; n.virtual.enabled &amp;&amp; n.loop ? c = u(l) : e.slides&#x5B;l] ? c = parseInt(e.slides&#x5B;l].getAttribute(&quot;data-swiper-slide-index&quot;) || l, 10) : c = l, Object.assign(e, {
       snapIndex: d,
       realIndex: c,
       previousIndex: r,
       activeIndex: l
    }), e.emit(&quot;activeIndexChange&quot;), e.emit(&quot;snapIndexChange&quot;), o !== c &amp;&amp; e.emit(&quot;realIndexChange&quot;), (e.initialized || e.params.runCallbacksOnInit) &amp;&amp; e.emit(&quot;slideChange&quot;)
 }
 
 function Ze(t) {
    const e = this,
       s = e.params,
       i = t.closest(`.${s.slideClass}, swiper-slide`);
    let n = !1,
       r;
    if (i) {
       for (let o = 0; o &lt; e.slides.length; o += 1)
          if (e.slides&#x5B;o] === i) {
             n = !0, r = o;
             break
          }
    }
    if (i &amp;&amp; n) e.clickedSlide = i, e.virtual &amp;&amp; e.params.virtual.enabled ? e.clickedIndex = parseInt(i.getAttribute(&quot;data-swiper-slide-index&quot;), 10) : e.clickedIndex = r;
    else {
       e.clickedSlide = void 0, e.clickedIndex = void 0;
       return
    }
    s.slideToClickedSlide &amp;&amp; e.clickedIndex !== void 0 &amp;&amp; e.clickedIndex !== e.activeIndex &amp;&amp; e.slideToClickedSlide()
 }
 var Je = {
    updateSize: qe,
    updateSlides: _e,
    updateAutoHeight: Re,
    updateSlidesOffset: We,
    updateSlidesProgress: je,
    updateProgress: Xe,
    updateSlidesClasses: Ye,
    updateActiveIndex: Ke,
    updateClickedSlide: Ze
 };
 
 function Qe(t = this.isHorizontal() ? &quot;x&quot; : &quot;y&quot;) {
    const e = this,
       {
          params: s,
          rtlTranslate: i,
          translate: n,
          wrapperEl: r
       } = e;
    if (s.virtualTranslate) return i ? -n : n;
    if (s.cssMode) return n;
    let o = Ae(r, t);
    return i &amp;&amp; (o = -o), o || 0
 }
 
 function et(t, e) {
    const s = this,
       {
          rtlTranslate: i,
          params: n,
          wrapperEl: r,
          progress: o
       } = s;
    let a = 0,
       l = 0;
    const d = 0;
    s.isHorizontal() ? a = i ? -t : t : l = t, n.roundLengths &amp;&amp; (a = Math.floor(a), l = Math.floor(l)), n.cssMode ? r&#x5B;s.isHorizontal() ? &quot;scrollLeft&quot; : &quot;scrollTop&quot;] = s.isHorizontal() ? -a : -l : n.virtualTranslate || (r.style.transform = `translate3d(${a}px, ${l}px, ${d}px)`), s.previousTranslate = s.translate, s.translate = s.isHorizontal() ? a : l;
    let u;
    const c = s.maxTranslate() - s.minTranslate();
    c === 0 ? u = 0 : u = (t - s.minTranslate()) / c, u !== o &amp;&amp; s.updateProgress(t), s.emit(&quot;setTranslate&quot;, s.translate, e)
 }
 
 function tt() {
    return -this.snapGrid&#x5B;0]
 }
 
 function st() {
    return -this.snapGrid&#x5B;this.snapGrid.length - 1]
 }
 
 function it(t = 0, e = this.params.speed, s = !0, i = !0, n) {
    const r = this,
       {
          params: o,
          wrapperEl: a
       } = r;
    if (r.animating &amp;&amp; o.preventInteractionOnTransition) return !1;
    const l = r.minTranslate(),
       d = r.maxTranslate();
    let u;
    if (i &amp;&amp; t &gt; l ? u = l : i &amp;&amp; t &lt; d ? u = d : u = t, r.updateProgress(u), o.cssMode) {
       const c = r.isHorizontal();
       if (e === 0) a&#x5B;c ? &quot;scrollLeft&quot; : &quot;scrollTop&quot;] = -u;
       else {
          if (!r.support.smoothScroll) return be({
             swiper: r,
             targetPosition: -u,
             side: c ? &quot;left&quot; : &quot;top&quot;
          }), !0;
          a.scrollTo({
             &#x5B;c ? &quot;left&quot; : &quot;top&quot;]: -u,
             behavior: &quot;smooth&quot;
          })
       }
       return !0
    }
    return e === 0 ? (r.setTransition(0), r.setTranslate(u), s &amp;&amp; (r.emit(&quot;beforeTransitionStart&quot;, e, n), r.emit(&quot;transitionEnd&quot;))) : (r.setTransition(e), r.setTranslate(u), s &amp;&amp; (r.emit(&quot;beforeTransitionStart&quot;, e, n), r.emit(&quot;transitionStart&quot;)), r.animating || (r.animating = !0, r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function (p) {
       !r || r.destroyed || p.target === this &amp;&amp; (r.wrapperEl.removeEventListener(&quot;transitionend&quot;, r.onTranslateToWrapperTransitionEnd), r.onTranslateToWrapperTransitionEnd = null, delete r.onTranslateToWrapperTransitionEnd, s &amp;&amp; r.emit(&quot;transitionEnd&quot;))
    }), r.wrapperEl.addEventListener(&quot;transitionend&quot;, r.onTranslateToWrapperTransitionEnd))), !0
 }
 var rt = {
    getTranslate: Qe,
    setTranslate: et,
    minTranslate: tt,
    maxTranslate: st,
    translateTo: it
 };
 
 function nt(t, e) {
    const s = this;
    s.params.cssMode || (s.wrapperEl.style.transitionDuration = `${t}ms`), s.emit(&quot;setTransition&quot;, t, e)
 }
 
 function xe({
    swiper: t,
    runCallbacks: e,
    direction: s,
    step: i
 }) {
    const {
       activeIndex: n,
       previousIndex: r
    } = t;
    let o = s;
    if (o || (n &gt; r ? o = &quot;next&quot; : n &lt; r ? o = &quot;prev&quot; : o = &quot;reset&quot;), t.emit(`transition${i}`), e &amp;&amp; n !== r) {
       if (o === &quot;reset&quot;) {
          t.emit(`slideResetTransition${i}`);
          return
       }
       t.emit(`slideChangeTransition${i}`), o === &quot;next&quot; ? t.emit(`slideNextTransition${i}`) : t.emit(`slidePrevTransition${i}`)
    }
 }
 
 function at(t = !0, e) {
    const s = this,
       {
          params: i
       } = s;
    i.cssMode || (i.autoHeight &amp;&amp; s.updateAutoHeight(), xe({
       swiper: s,
       runCallbacks: t,
       direction: e,
       step: &quot;Start&quot;
    }))
 }
 
 function lt(t = !0, e) {
    const s = this,
       {
          params: i
       } = s;
    s.animating = !1, !i.cssMode &amp;&amp; (s.setTransition(0), xe({
       swiper: s,
       runCallbacks: t,
       direction: e,
       step: &quot;End&quot;
    }))
 }
 var ot = {
    setTransition: nt,
    transitionStart: at,
    transitionEnd: lt
 };
 
 function dt(t = 0, e = this.params.speed, s = !0, i, n) {
    typeof t == &quot;string&quot; &amp;&amp; (t = parseInt(t, 10));
    const r = this;
    let o = t;
    o &lt; 0 &amp;&amp; (o = 0);
    const {
       params: a,
       snapGrid: l,
       slidesGrid: d,
       previousIndex: u,
       activeIndex: c,
       rtlTranslate: p,
       wrapperEl: f,
       enabled: w
    } = r;
    if (r.animating &amp;&amp; a.preventInteractionOnTransition || !w &amp;&amp; !i &amp;&amp; !n) return !1;
    const m = Math.min(r.params.slidesPerGroupSkip, o);
    let T = m + Math.floor((o - m) / r.params.slidesPerGroup);
    T &gt;= l.length &amp;&amp; (T = l.length - 1);
    const S = -l&#x5B;T];
    if (a.normalizeSlideIndex)
       for (let g = 0; g &lt; d.length; g += 1) {
          const b = -Math.floor(S * 100),
             y = Math.floor(d&#x5B;g] * 100),
             x = Math.floor(d&#x5B;g + 1] * 100);
          typeof d&#x5B;g + 1] != &quot;undefined&quot; ? b &gt;= y &amp;&amp; b &lt; x - (x - y) / 2 ? o = g : b &gt;= y &amp;&amp; b &lt; x &amp;&amp; (o = g + 1) : b &gt;= y &amp;&amp; (o = g)
       }
    if (r.initialized &amp;&amp; o !== c &amp;&amp; (!r.allowSlideNext &amp;&amp; S &lt; r.translate &amp;&amp; S &lt; r.minTranslate() || !r.allowSlidePrev &amp;&amp; S &gt; r.translate &amp;&amp; S &gt; r.maxTranslate() &amp;&amp; (c || 0) !== o)) return !1;
    o !== (u || 0) &amp;&amp; s &amp;&amp; r.emit(&quot;beforeSlideChangeStart&quot;), r.updateProgress(S);
    let P;
    if (o &gt; c ? P = &quot;next&quot; : o &lt; c ? P = &quot;prev&quot; : P = &quot;reset&quot;, p &amp;&amp; -S === r.translate || !p &amp;&amp; S === r.translate) return r.updateActiveIndex(o), a.autoHeight &amp;&amp; r.updateAutoHeight(), r.updateSlidesClasses(), a.effect !== &quot;slide&quot; &amp;&amp; r.setTranslate(S), P !== &quot;reset&quot; &amp;&amp; (r.transitionStart(s, P), r.transitionEnd(s, P)), !1;
    if (a.cssMode) {
       const g = r.isHorizontal(),
          b = p ? S : -S;
       if (e === 0) {
          const y = r.virtual &amp;&amp; r.params.virtual.enabled;
          y &amp;&amp; (r.wrapperEl.style.scrollSnapType = &quot;none&quot;, r._immediateVirtual = !0), y &amp;&amp; !r._cssModeVirtualInitialSet &amp;&amp; r.params.initialSlide &gt; 0 ? (r._cssModeVirtualInitialSet = !0, requestAnimationFrame(() =&gt; {
             f&#x5B;g ? &quot;scrollLeft&quot; : &quot;scrollTop&quot;] = b
          })) : f&#x5B;g ? &quot;scrollLeft&quot; : &quot;scrollTop&quot;] = b, y &amp;&amp; requestAnimationFrame(() =&gt; {
             r.wrapperEl.style.scrollSnapType = &quot;&quot;, r._immediateVirtual = !1
          })
       } else {
          if (!r.support.smoothScroll) return be({
             swiper: r,
             targetPosition: b,
             side: g ? &quot;left&quot; : &quot;top&quot;
          }), !0;
          f.scrollTo({
             &#x5B;g ? &quot;left&quot; : &quot;top&quot;]: b,
             behavior: &quot;smooth&quot;
          })
       }
       return !0
    }
    return r.setTransition(e), r.setTranslate(S), r.updateActiveIndex(o), r.updateSlidesClasses(), r.emit(&quot;beforeTransitionStart&quot;, e, i), r.transitionStart(s, P), e === 0 ? r.transitionEnd(s, P) : r.animating || (r.animating = !0, r.onSlideToWrapperTransitionEnd || (r.onSlideToWrapperTransitionEnd = function (b) {
       !r || r.destroyed || b.target === this &amp;&amp; (r.wrapperEl.removeEventListener(&quot;transitionend&quot;, r.onSlideToWrapperTransitionEnd), r.onSlideToWrapperTransitionEnd = null, delete r.onSlideToWrapperTransitionEnd, r.transitionEnd(s, P))
    }), r.wrapperEl.addEventListener(&quot;transitionend&quot;, r.onSlideToWrapperTransitionEnd)), !0
 }
 
 function ct(t = 0, e = this.params.speed, s = !0, i) {
    typeof t == &quot;string&quot; &amp;&amp; (t = parseInt(t, 10));
    const n = this;
    let r = t;
    return n.params.loop &amp;&amp; (n.virtual &amp;&amp; n.params.virtual.enabled ? r = r + n.virtual.slidesBefore : r = j(n.slides.filter(o =&gt; o.getAttribute(&quot;data-swiper-slide-index&quot;) * 1 === r)&#x5B;0])), n.slideTo(r, e, s, i)
 }
 
 function ft(t = this.params.speed, e = !0, s) {
    const i = this,
       {
          enabled: n,
          params: r,
          animating: o
       } = i;
    if (!n) return i;
    let a = r.slidesPerGroup;
    r.slidesPerView === &quot;auto&quot; &amp;&amp; r.slidesPerGroup === 1 &amp;&amp; r.slidesPerGroupAuto &amp;&amp; (a = Math.max(i.slidesPerViewDynamic(&quot;current&quot;, !0), 1));
    const l = i.activeIndex &lt; r.slidesPerGroupSkip ? 1 : a,
       d = i.virtual &amp;&amp; r.virtual.enabled;
    if (r.loop) {
       if (o &amp;&amp; !d &amp;&amp; r.loopPreventsSliding) return !1;
       i.loopFix({
          direction: &quot;next&quot;
       }), i._clientLeft = i.wrapperEl.clientLeft
    }
    return r.rewind &amp;&amp; i.isEnd ? i.slideTo(0, t, e, s) : i.slideTo(i.activeIndex + l, t, e, s)
 }
 
 function ut(t = this.params.speed, e = !0, s) {
    const i = this,
       {
          params: n,
          snapGrid: r,
          slidesGrid: o,
          rtlTranslate: a,
          enabled: l,
          animating: d
       } = i;
    if (!l) return i;
    const u = i.virtual &amp;&amp; n.virtual.enabled;
    if (n.loop) {
       if (d &amp;&amp; !u &amp;&amp; n.loopPreventsSliding) return !1;
       i.loopFix({
          direction: &quot;prev&quot;
       }), i._clientLeft = i.wrapperEl.clientLeft
    }
    const c = a ? i.translate : -i.translate;
 
    function p(S) {
       return S &lt; 0 ? -Math.floor(Math.abs(S)) : Math.floor(S)
    }
    const f = p(c),
       w = r.map(S =&gt; p(S));
    let m = r&#x5B;w.indexOf(f) - 1];
    if (typeof m == &quot;undefined&quot; &amp;&amp; n.cssMode) {
       let S;
       r.forEach((P, g) =&gt; {
          f &gt;= P &amp;&amp; (S = g)
       }), typeof S != &quot;undefined&quot; &amp;&amp; (m = r&#x5B;S &gt; 0 ? S - 1 : S])
    }
    let T = 0;
    if (typeof m != &quot;undefined&quot; &amp;&amp; (T = o.indexOf(m), T &lt; 0 &amp;&amp; (T = i.activeIndex - 1), n.slidesPerView === &quot;auto&quot; &amp;&amp; n.slidesPerGroup === 1 &amp;&amp; n.slidesPerGroupAuto &amp;&amp; (T = T - i.slidesPerViewDynamic(&quot;previous&quot;, !0) + 1, T = Math.max(T, 0))), n.rewind &amp;&amp; i.isBeginning) {
       const S = i.params.virtual &amp;&amp; i.params.virtual.enabled &amp;&amp; i.virtual ? i.virtual.slides.length - 1 : i.slides.length - 1;
       return i.slideTo(S, t, e, s)
    }
    return i.slideTo(T, t, e, s)
 }
 
 function pt(t = this.params.speed, e = !0, s) {
    const i = this;
    return i.slideTo(i.activeIndex, t, e, s)
 }
 
 function ht(t = this.params.speed, e = !0, s, i = .5) {
    const n = this;
    let r = n.activeIndex;
    const o = Math.min(n.params.slidesPerGroupSkip, r),
       a = o + Math.floor((r - o) / n.params.slidesPerGroup),
       l = n.rtlTranslate ? n.translate : -n.translate;
    if (l &gt;= n.snapGrid&#x5B;a]) {
       const d = n.snapGrid&#x5B;a],
          u = n.snapGrid&#x5B;a + 1];
       l - d &gt; (u - d) * i &amp;&amp; (r += n.params.slidesPerGroup)
    } else {
       const d = n.snapGrid&#x5B;a - 1],
          u = n.snapGrid&#x5B;a];
       l - d &lt;= (u - d) * i &amp;&amp; (r -= n.params.slidesPerGroup)
    }
    return r = Math.max(r, 0), r = Math.min(r, n.slidesGrid.length - 1), n.slideTo(r, t, e, s)
 }
 
 function mt() {
    const t = this,
       {
          params: e,
          slidesEl: s
       } = t,
       i = e.slidesPerView === &quot;auto&quot; ? t.slidesPerViewDynamic() : e.slidesPerView;
    let n = t.clickedIndex,
       r;
    const o = t.isElement ? &quot;swiper-slide&quot; : `.${e.slideClass}`;
    if (e.loop) {
       if (t.animating) return;
       r = parseInt(t.clickedSlide.getAttribute(&quot;data-swiper-slide-index&quot;), 10), e.centeredSlides ? n &lt; t.loopedSlides - i / 2 || n &gt; t.slides.length - t.loopedSlides + i / 2 ? (t.loopFix(), n = j(R(s, `${o}&#x5B;data-swiper-slide-index=&quot;${r}&quot;]`)&#x5B;0]), de(() =&gt; {
          t.slideTo(n)
       })) : t.slideTo(n) : n &gt; t.slides.length - i ? (t.loopFix(), n = j(R(s, `${o}&#x5B;data-swiper-slide-index=&quot;${r}&quot;]`)&#x5B;0]), de(() =&gt; {
          t.slideTo(n)
       })) : t.slideTo(n)
    } else t.slideTo(n)
 }
 var gt = {
    slideTo: dt,
    slideToLoop: ct,
    slideNext: ft,
    slidePrev: ut,
    slideReset: pt,
    slideToClosest: ht,
    slideToClickedSlide: mt
 };
 
 function vt(t) {
    const e = this,
       {
          params: s,
          slidesEl: i
       } = e;
    if (!s.loop || e.virtual &amp;&amp; e.params.virtual.enabled) return;
    R(i, `.${s.slideClass}, swiper-slide`).forEach((r, o) =&gt; {
       r.setAttribute(&quot;data-swiper-slide-index&quot;, o)
    }), e.loopFix({
       slideRealIndex: t,
       direction: s.centeredSlides ? void 0 : &quot;next&quot;
    })
 }
 
 function wt({
    slideRealIndex: t,
    slideTo: e = !0,
    direction: s,
    setTranslate: i,
    activeSlideIndex: n,
    byController: r,
    byMousewheel: o
 } = {}) {
    const a = this;
    if (!a.params.loop) return;
    a.emit(&quot;beforeLoopFix&quot;);
    const {
       slides: l,
       allowSlidePrev: d,
       allowSlideNext: u,
       slidesEl: c,
       params: p
    } = a;
    if (a.allowSlidePrev = !0, a.allowSlideNext = !0, a.virtual &amp;&amp; p.virtual.enabled) {
       e &amp;&amp; (!p.centeredSlides &amp;&amp; a.snapIndex === 0 ? a.slideTo(a.virtual.slides.length, 0, !1, !0) : p.centeredSlides &amp;&amp; a.snapIndex &lt; p.slidesPerView ? a.slideTo(a.virtual.slides.length + a.snapIndex, 0, !1, !0) : a.snapIndex === a.snapGrid.length - 1 &amp;&amp; a.slideTo(a.virtual.slidesBefore, 0, !1, !0)), a.allowSlidePrev = d, a.allowSlideNext = u, a.emit(&quot;loopFix&quot;);
       return
    }
    const f = p.slidesPerView === &quot;auto&quot; ? a.slidesPerViewDynamic() : Math.ceil(parseFloat(p.slidesPerView, 10));
    let w = p.loopedSlides || f;
    w % p.slidesPerGroup !== 0 &amp;&amp; (w += p.slidesPerGroup - w % p.slidesPerGroup), a.loopedSlides = w;
    const m = &#x5B;],
       T = &#x5B;];
    let S = a.activeIndex;
    typeof n == &quot;undefined&quot; ? n = j(a.slides.filter(x =&gt; x.classList.contains(&quot;swiper-slide-active&quot;))&#x5B;0]) : S = n;
    const P = s === &quot;next&quot; || !s,
       g = s === &quot;prev&quot; || !s;
    let b = 0,
       y = 0;
    if (n &lt; w) {
       b = w - n;
       for (let x = 0; x &lt; w - n; x += 1) {
          const I = x - Math.floor(x / l.length) * l.length;
          m.push(l.length - I - 1)
       }
    } else if (n &gt; a.slides.length - w * 2) {
       y = n - (a.slides.length - w * 2);
       for (let x = 0; x &lt; y; x += 1) {
          const I = x - Math.floor(x / l.length) * l.length;
          T.push(I)
       }
    }
    if (g &amp;&amp; m.forEach(x =&gt; {
          c.prepend(a.slides&#x5B;x])
       }), P &amp;&amp; T.forEach(x =&gt; {
          c.append(a.slides&#x5B;x])
       }), a.recalcSlides(), p.watchSlidesProgress &amp;&amp; a.updateSlidesOffset(), e) {
       if (m.length &gt; 0 &amp;&amp; g)
          if (typeof t == &quot;undefined&quot;) {
             const x = a.slidesGrid&#x5B;S],
                O = a.slidesGrid&#x5B;S + b] - x;
             o ? a.setTranslate(a.translate - O) : (a.slideTo(S + b, 0, !1, !0), i &amp;&amp; (a.touches&#x5B;a.isHorizontal() ? &quot;startX&quot; : &quot;startY&quot;] += O))
          } else i &amp;&amp; a.slideToLoop(t, 0, !1, !0);
       else if (T.length &gt; 0 &amp;&amp; P)
          if (typeof t == &quot;undefined&quot;) {
             const x = a.slidesGrid&#x5B;S],
                O = a.slidesGrid&#x5B;S - y] - x;
             o ? a.setTranslate(a.translate - O) : (a.slideTo(S - y, 0, !1, !0), i &amp;&amp; (a.touches&#x5B;a.isHorizontal() ? &quot;startX&quot; : &quot;startY&quot;] += O))
          } else a.slideToLoop(t, 0, !1, !0)
    }
    if (a.allowSlidePrev = d, a.allowSlideNext = u, a.controller &amp;&amp; a.controller.control &amp;&amp; !r) {
       const x = {
          slideRealIndex: t,
          slideTo: !1,
          direction: s,
          setTranslate: i,
          activeSlideIndex: n,
          byController: !0
       };
       Array.isArray(a.controller.control) ? a.controller.control.forEach(I =&gt; {
          I.params.loop &amp;&amp; I.loopFix(x)
       }) : a.controller.control instanceof a.constructor &amp;&amp; a.controller.control.params.loop &amp;&amp; a.controller.control.loopFix(x)
    }
    a.emit(&quot;loopFix&quot;)
 }
 
 function St() {
    const t = this,
       {
          slides: e,
          params: s,
          slidesEl: i
       } = t;
    if (!s.loop || t.virtual &amp;&amp; t.params.virtual.enabled) return;
    t.recalcSlides();
    const n = &#x5B;];
    e.forEach(r =&gt; {
       const o = typeof r.swiperSlideIndex == &quot;undefined&quot; ? r.getAttribute(&quot;data-swiper-slide-index&quot;) * 1 : r.swiperSlideIndex;
       n&#x5B;o] = r
    }), e.forEach(r =&gt; {
       r.removeAttribute(&quot;data-swiper-slide-index&quot;)
    }), n.forEach(r =&gt; {
       i.append(r)
    }), t.recalcSlides(), t.slideTo(t.realIndex, 0)
 }
 var Tt = {
    loopCreate: vt,
    loopFix: wt,
    loopDestroy: St
 };
 
 function bt(t) {
    const e = this;
    if (!e.params.simulateTouch || e.params.watchOverflow &amp;&amp; e.isLocked || e.params.cssMode) return;
    const s = e.params.touchEventsTarget === &quot;container&quot; ? e.el : e.wrapperEl;
    s.style.cursor = &quot;move&quot;, s.style.cursor = t ? &quot;grabbing&quot; : &quot;grab&quot;
 }
 
 function yt() {
    const t = this;
    t.params.watchOverflow &amp;&amp; t.isLocked || t.params.cssMode || (t&#x5B;t.params.touchEventsTarget === &quot;container&quot; ? &quot;el&quot; : &quot;wrapperEl&quot;].style.cursor = &quot;&quot;)
 }
 var xt = {
    setGrabCursor: bt,
    unsetGrabCursor: yt
 };
 
 function Et(t, e = this) {
    function s(i) {
       if (!i || i === W() || i === B()) return null;
       i.assignedSlot &amp;&amp; (i = i.assignedSlot);
       const n = i.closest(t);
       return !n &amp;&amp; !i.getRootNode ? null : n || s(i.getRootNode().host)
    }
    return s(e)
 }
 
 function Mt(t) {
    const e = this,
       s = W(),
       i = B(),
       n = e.touchEventsData;
    n.evCache.push(t);
    const {
       params: r,
       touches: o,
       enabled: a
    } = e;
    if (!a || !r.simulateTouch &amp;&amp; t.pointerType === &quot;mouse&quot; || e.animating &amp;&amp; r.preventInteractionOnTransition) return;
    !e.animating &amp;&amp; r.cssMode &amp;&amp; r.loop &amp;&amp; e.loopFix();
    let l = t;
    l.originalEvent &amp;&amp; (l = l.originalEvent);
    let d = l.target;
    if (r.touchEventsTarget === &quot;wrapper&quot; &amp;&amp; !e.wrapperEl.contains(d) || &quot;which&quot; in l &amp;&amp; l.which === 3 || &quot;button&quot; in l &amp;&amp; l.button &gt; 0 || n.isTouched &amp;&amp; n.isMoved) return;
    const u = !!r.noSwipingClass &amp;&amp; r.noSwipingClass !== &quot;&quot;,
       c = t.composedPath ? t.composedPath() : t.path;
    u &amp;&amp; l.target &amp;&amp; l.target.shadowRoot &amp;&amp; c &amp;&amp; (d = c&#x5B;0]);
    const p = r.noSwipingSelector ? r.noSwipingSelector : `.${r.noSwipingClass}`,
       f = !!(l.target &amp;&amp; l.target.shadowRoot);
    if (r.noSwiping &amp;&amp; (f ? Et(p, d) : d.closest(p))) {
       e.allowClick = !0;
       return
    }
    if (r.swipeHandler &amp;&amp; !d.closest(r.swipeHandler)) return;
    o.currentX = l.pageX, o.currentY = l.pageY;
    const w = o.currentX,
       m = o.currentY,
       T = r.edgeSwipeDetection || r.iOSEdgeSwipeDetection,
       S = r.edgeSwipeThreshold || r.iOSEdgeSwipeThreshold;
    if (T &amp;&amp; (w &lt;= S || w &gt;= i.innerWidth - S))
       if (T === &quot;prevent&quot;) t.preventDefault();
       else return;
    Object.assign(n, {
       isTouched: !0,
       isMoved: !1,
       allowTouchCallbacks: !0,
       isScrolling: void 0,
       startMoving: void 0
    }), o.startX = w, o.startY = m, n.touchStartTime = U(), e.allowClick = !0, e.updateSize(), e.swipeDirection = void 0, r.threshold &gt; 0 &amp;&amp; (n.allowThresholdMove = !1);
    let P = !0;
    d.matches(n.focusableElements) &amp;&amp; (P = !1, d.nodeName === &quot;SELECT&quot; &amp;&amp; (n.isTouched = !1)), s.activeElement &amp;&amp; s.activeElement.matches(n.focusableElements) &amp;&amp; s.activeElement !== d &amp;&amp; s.activeElement.blur();
    const g = P &amp;&amp; e.allowTouchMove &amp;&amp; r.touchStartPreventDefault;
    (r.touchStartForcePreventDefault || g) &amp;&amp; !d.isContentEditable &amp;&amp; l.preventDefault(), e.params.freeMode &amp;&amp; e.params.freeMode.enabled &amp;&amp; e.freeMode &amp;&amp; e.animating &amp;&amp; !r.cssMode &amp;&amp; e.freeMode.onTouchStart(), e.emit(&quot;touchStart&quot;, l)
 }
 
 function Pt(t) {
    const e = W(),
       s = this,
       i = s.touchEventsData,
       {
          params: n,
          touches: r,
          rtlTranslate: o,
          enabled: a
       } = s;
    if (!a || !n.simulateTouch &amp;&amp; t.pointerType === &quot;mouse&quot;) return;
    let l = t;
    if (l.originalEvent &amp;&amp; (l = l.originalEvent), !i.isTouched) {
       i.startMoving &amp;&amp; i.isScrolling &amp;&amp; s.emit(&quot;touchMoveOpposite&quot;, l);
       return
    }
    const d = i.evCache.findIndex(x =&gt; x.pointerId === l.pointerId);
    d &gt;= 0 &amp;&amp; (i.evCache&#x5B;d] = l);
    const u = i.evCache.length &gt; 1 ? i.evCache&#x5B;0] : l,
       c = u.pageX,
       p = u.pageY;
    if (l.preventedByNestedSwiper) {
       r.startX = c, r.startY = p;
       return
    }
    if (!s.allowTouchMove) {
       l.target.matches(i.focusableElements) || (s.allowClick = !1), i.isTouched &amp;&amp; (Object.assign(r, {
          startX: c,
          startY: p,
          prevX: s.touches.currentX,
          prevY: s.touches.currentY,
          currentX: c,
          currentY: p
       }), i.touchStartTime = U());
       return
    }
    if (n.touchReleaseOnEdges &amp;&amp; !n.loop) {
       if (s.isVertical()) {
          if (p &lt; r.startY &amp;&amp; s.translate &lt;= s.maxTranslate() || p &gt; r.startY &amp;&amp; s.translate &gt;= s.minTranslate()) {
             i.isTouched = !1, i.isMoved = !1;
             return
          }
       } else if (c &lt; r.startX &amp;&amp; s.translate &lt;= s.maxTranslate() || c &gt; r.startX &amp;&amp; s.translate &gt;= s.minTranslate()) return
    }
    if (e.activeElement &amp;&amp; l.target === e.activeElement &amp;&amp; l.target.matches(i.focusableElements)) {
       i.isMoved = !0, s.allowClick = !1;
       return
    }
    if (i.allowTouchCallbacks &amp;&amp; s.emit(&quot;touchMove&quot;, l), l.targetTouches &amp;&amp; l.targetTouches.length &gt; 1) return;
    r.currentX = c, r.currentY = p;
    const f = r.currentX - r.startX,
       w = r.currentY - r.startY;
    if (s.params.threshold &amp;&amp; Math.sqrt(f ** 2 + w ** 2) &lt; s.params.threshold) return;
    if (typeof i.isScrolling == &quot;undefined&quot;) {
       let x;
       s.isHorizontal() &amp;&amp; r.currentY === r.startY || s.isVertical() &amp;&amp; r.currentX === r.startX ? i.isScrolling = !1 : f * f + w * w &gt;= 25 &amp;&amp; (x = Math.atan2(Math.abs(w), Math.abs(f)) * 180 / Math.PI, i.isScrolling = s.isHorizontal() ? x &gt; n.touchAngle : 90 - x &gt; n.touchAngle)
    }
    if (i.isScrolling &amp;&amp; s.emit(&quot;touchMoveOpposite&quot;, l), typeof i.startMoving == &quot;undefined&quot; &amp;&amp; (r.currentX !== r.startX || r.currentY !== r.startY) &amp;&amp; (i.startMoving = !0), i.isScrolling || s.zoom &amp;&amp; s.params.zoom &amp;&amp; s.params.zoom.enabled &amp;&amp; i.evCache.length &gt; 1) {
       i.isTouched = !1;
       return
    }
    if (!i.startMoving) return;
    s.allowClick = !1, !n.cssMode &amp;&amp; l.cancelable &amp;&amp; l.preventDefault(), n.touchMoveStopPropagation &amp;&amp; !n.nested &amp;&amp; l.stopPropagation();
    let m = s.isHorizontal() ? f : w,
       T = s.isHorizontal() ? r.currentX - r.previousX : r.currentY - r.previousY;
    n.oneWayMovement &amp;&amp; (m = Math.abs(m) * (o ? 1 : -1), T = Math.abs(T) * (o ? 1 : -1)), r.diff = m, m *= n.touchRatio, o &amp;&amp; (m = -m, T = -T);
    const S = s.touchesDirection;
    s.swipeDirection = m &gt; 0 ? &quot;prev&quot; : &quot;next&quot;, s.touchesDirection = T &gt; 0 ? &quot;prev&quot; : &quot;next&quot;;
    const P = s.params.loop &amp;&amp; !n.cssMode;
    if (!i.isMoved) {
       if (P &amp;&amp; s.loopFix({
             direction: s.swipeDirection
          }), i.startTranslate = s.getTranslate(), s.setTransition(0), s.animating) {
          const x = new window.CustomEvent(&quot;transitionend&quot;, {
             bubbles: !0,
             cancelable: !0
          });
          s.wrapperEl.dispatchEvent(x)
       }
       i.allowMomentumBounce = !1, n.grabCursor &amp;&amp; (s.allowSlideNext === !0 || s.allowSlidePrev === !0) &amp;&amp; s.setGrabCursor(!0), s.emit(&quot;sliderFirstMove&quot;, l)
    }
    let g;
    i.isMoved &amp;&amp; S !== s.touchesDirection &amp;&amp; P &amp;&amp; Math.abs(m) &gt;= 1 &amp;&amp; (s.loopFix({
       direction: s.swipeDirection,
       setTranslate: !0
    }), g = !0), s.emit(&quot;sliderMove&quot;, l), i.isMoved = !0, i.currentTranslate = m + i.startTranslate;
    let b = !0,
       y = n.resistanceRatio;
    if (n.touchReleaseOnEdges &amp;&amp; (y = 0), m &gt; 0 ? (P &amp;&amp; !g &amp;&amp; i.currentTranslate &gt; (n.centeredSlides ? s.minTranslate() - s.size / 2 : s.minTranslate()) &amp;&amp; s.loopFix({
          direction: &quot;prev&quot;,
          setTranslate: !0,
          activeSlideIndex: 0
       }), i.currentTranslate &gt; s.minTranslate() &amp;&amp; (b = !1, n.resistance &amp;&amp; (i.currentTranslate = s.minTranslate() - 1 + (-s.minTranslate() + i.startTranslate + m) ** y))) : m &lt; 0 &amp;&amp; (P &amp;&amp; !g &amp;&amp; i.currentTranslate &lt; (n.centeredSlides ? s.maxTranslate() + s.size / 2 : s.maxTranslate()) &amp;&amp; s.loopFix({
          direction: &quot;next&quot;,
          setTranslate: !0,
          activeSlideIndex: s.slides.length - (n.slidesPerView === &quot;auto&quot; ? s.slidesPerViewDynamic() : Math.ceil(parseFloat(n.slidesPerView, 10)))
       }), i.currentTranslate &lt; s.maxTranslate() &amp;&amp; (b = !1, n.resistance &amp;&amp; (i.currentTranslate = s.maxTranslate() + 1 - (s.maxTranslate() - i.startTranslate - m) ** y))), b &amp;&amp; (l.preventedByNestedSwiper = !0), !s.allowSlideNext &amp;&amp; s.swipeDirection === &quot;next&quot; &amp;&amp; i.currentTranslate &lt; i.startTranslate &amp;&amp; (i.currentTranslate = i.startTranslate), !s.allowSlidePrev &amp;&amp; s.swipeDirection === &quot;prev&quot; &amp;&amp; i.currentTranslate &gt; i.startTranslate &amp;&amp; (i.currentTranslate = i.startTranslate), !s.allowSlidePrev &amp;&amp; !s.allowSlideNext &amp;&amp; (i.currentTranslate = i.startTranslate), n.threshold &gt; 0)
       if (Math.abs(m) &gt; n.threshold || i.allowThresholdMove) {
          if (!i.allowThresholdMove) {
             i.allowThresholdMove = !0, r.startX = r.currentX, r.startY = r.currentY, i.currentTranslate = i.startTranslate, r.diff = s.isHorizontal() ? r.currentX - r.startX : r.currentY - r.startY;
             return
          }
       } else {
          i.currentTranslate = i.startTranslate;
          return
       }! n.followFinger || n.cssMode || ((n.freeMode &amp;&amp; n.freeMode.enabled &amp;&amp; s.freeMode || n.watchSlidesProgress) &amp;&amp; (s.updateActiveIndex(), s.updateSlidesClasses()), s.params.freeMode &amp;&amp; n.freeMode.enabled &amp;&amp; s.freeMode &amp;&amp; s.freeMode.onTouchMove(), s.updateProgress(i.currentTranslate), s.setTranslate(i.currentTranslate))
 }
 
 function Ct(t) {
    const e = this,
       s = e.touchEventsData,
       i = s.evCache.findIndex(g =&gt; g.pointerId === t.pointerId);
    if (i &gt;= 0 &amp;&amp; s.evCache.splice(i, 1), &#x5B;&quot;pointercancel&quot;, &quot;pointerout&quot;, &quot;pointerleave&quot;].includes(t.type)) return;
    const {
       params: n,
       touches: r,
       rtlTranslate: o,
       slidesGrid: a,
       enabled: l
    } = e;
    if (!l || !n.simulateTouch &amp;&amp; t.pointerType === &quot;mouse&quot;) return;
    let d = t;
    if (d.originalEvent &amp;&amp; (d = d.originalEvent), s.allowTouchCallbacks &amp;&amp; e.emit(&quot;touchEnd&quot;, d), s.allowTouchCallbacks = !1, !s.isTouched) {
       s.isMoved &amp;&amp; n.grabCursor &amp;&amp; e.setGrabCursor(!1), s.isMoved = !1, s.startMoving = !1;
       return
    }
    n.grabCursor &amp;&amp; s.isMoved &amp;&amp; s.isTouched &amp;&amp; (e.allowSlideNext === !0 || e.allowSlidePrev === !0) &amp;&amp; e.setGrabCursor(!1);
    const u = U(),
       c = u - s.touchStartTime;
    if (e.allowClick) {
       const g = d.path || d.composedPath &amp;&amp; d.composedPath();
       e.updateClickedSlide(g &amp;&amp; g&#x5B;0] || d.target), e.emit(&quot;tap click&quot;, d), c &lt; 300 &amp;&amp; u - s.lastClickTime &lt; 300 &amp;&amp; e.emit(&quot;doubleTap doubleClick&quot;, d)
    }
    if (s.lastClickTime = U(), de(() =&gt; {
          e.destroyed || (e.allowClick = !0)
       }), !s.isTouched || !s.isMoved || !e.swipeDirection || r.diff === 0 || s.currentTranslate === s.startTranslate) {
       s.isTouched = !1, s.isMoved = !1, s.startMoving = !1;
       return
    }
    s.isTouched = !1, s.isMoved = !1, s.startMoving = !1;
    let p;
    if (n.followFinger ? p = o ? e.translate : -e.translate : p = -s.currentTranslate, n.cssMode) return;
    if (e.params.freeMode &amp;&amp; n.freeMode.enabled) {
       e.freeMode.onTouchEnd({
          currentPos: p
       });
       return
    }
    let f = 0,
       w = e.slidesSizesGrid&#x5B;0];
    for (let g = 0; g &lt; a.length; g += g &lt; n.slidesPerGroupSkip ? 1 : n.slidesPerGroup) {
       const b = g &lt; n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup;
       typeof a&#x5B;g + b] != &quot;undefined&quot; ? p &gt;= a&#x5B;g] &amp;&amp; p &lt; a&#x5B;g + b] &amp;&amp; (f = g, w = a&#x5B;g + b] - a&#x5B;g]) : p &gt;= a&#x5B;g] &amp;&amp; (f = g, w = a&#x5B;a.length - 1] - a&#x5B;a.length - 2])
    }
    let m = null,
       T = null;
    n.rewind &amp;&amp; (e.isBeginning ? T = e.params.virtual &amp;&amp; e.params.virtual.enabled &amp;&amp; e.virtual ? e.virtual.slides.length - 1 : e.slides.length - 1 : e.isEnd &amp;&amp; (m = 0));
    const S = (p - a&#x5B;f]) / w,
       P = f &lt; n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup;
    if (c &gt; n.longSwipesMs) {
       if (!n.longSwipes) {
          e.slideTo(e.activeIndex);
          return
       }
       e.swipeDirection === &quot;next&quot; &amp;&amp; (S &gt;= n.longSwipesRatio ? e.slideTo(n.rewind &amp;&amp; e.isEnd ? m : f + P) : e.slideTo(f)), e.swipeDirection === &quot;prev&quot; &amp;&amp; (S &gt; 1 - n.longSwipesRatio ? e.slideTo(f + P) : T !== null &amp;&amp; S &lt; 0 &amp;&amp; Math.abs(S) &gt; n.longSwipesRatio ? e.slideTo(T) : e.slideTo(f))
    } else {
       if (!n.shortSwipes) {
          e.slideTo(e.activeIndex);
          return
       }
       e.navigation &amp;&amp; (d.target === e.navigation.nextEl || d.target === e.navigation.prevEl) ? d.target === e.navigation.nextEl ? e.slideTo(f + P) : e.slideTo(f) : (e.swipeDirection === &quot;next&quot; &amp;&amp; e.slideTo(m !== null ? m : f + P), e.swipeDirection === &quot;prev&quot; &amp;&amp; e.slideTo(T !== null ? T : f))
    }
 }
 let me;
 
 function ge() {
    const t = this,
       {
          params: e,
          el: s
       } = t;
    if (s &amp;&amp; s.offsetWidth === 0) return;
    e.breakpoints &amp;&amp; t.setBreakpoint();
    const {
       allowSlideNext: i,
       allowSlidePrev: n,
       snapGrid: r
    } = t, o = t.virtual &amp;&amp; t.params.virtual.enabled;
    t.allowSlideNext = !0, t.allowSlidePrev = !0, t.updateSize(), t.updateSlides(), t.updateSlidesClasses();
    const a = o &amp;&amp; e.loop;
    (e.slidesPerView === &quot;auto&quot; || e.slidesPerView &gt; 1) &amp;&amp; t.isEnd &amp;&amp; !t.isBeginning &amp;&amp; !t.params.centeredSlides &amp;&amp; !a ? t.slideTo(t.slides.length - 1, 0, !1, !0) : t.params.loop &amp;&amp; !o ? t.slideToLoop(t.realIndex, 0, !1, !0) : t.slideTo(t.activeIndex, 0, !1, !0), t.autoplay &amp;&amp; t.autoplay.running &amp;&amp; t.autoplay.paused &amp;&amp; (clearTimeout(me), me = setTimeout(() =&gt; {
       t.autoplay.resume()
    }, 500)), t.allowSlidePrev = n, t.allowSlideNext = i, t.params.watchOverflow &amp;&amp; r !== t.snapGrid &amp;&amp; t.checkOverflow()
 }
 
 function Lt(t) {
    const e = this;
    !e.enabled || e.allowClick || (e.params.preventClicks &amp;&amp; t.preventDefault(), e.params.preventClicksPropagation &amp;&amp; e.animating &amp;&amp; (t.stopPropagation(), t.stopImmediatePropagation()))
 }
 
 function At() {
    const t = this,
       {
          wrapperEl: e,
          rtlTranslate: s,
          enabled: i
       } = t;
    if (!i) return;
    t.previousTranslate = t.translate, t.isHorizontal() ? t.translate = -e.scrollLeft : t.translate = -e.scrollTop, t.translate === 0 &amp;&amp; (t.translate = 0), t.updateActiveIndex(), t.updateSlidesClasses();
    let n;
    const r = t.maxTranslate() - t.minTranslate();
    r === 0 ? n = 0 : n = (t.translate - t.minTranslate()) / r, n !== t.progress &amp;&amp; t.updateProgress(s ? -t.translate : t.translate), t.emit(&quot;setTranslate&quot;, t.translate, !1)
 }
 const ee = (t, e) =&gt; {
    if (!t || t.destroyed || !t.params) return;
    const s = () =&gt; t.isElement ? &quot;swiper-slide&quot; : `.${t.params.slideClass}`,
       i = e.closest(s());
    if (i) {
       const n = i.querySelector(`.${t.params.lazyPreloaderClass}`);
       n &amp;&amp; n.remove()
    }
 };
 
 function It(t) {
    const e = this;
    ee(e, t.target), e.update()
 }
 let ve = !1;
 
 function zt() {}
 const Ee = (t, e) =&gt; {
    const s = W(),
       {
          params: i,
          el: n,
          wrapperEl: r,
          device: o
       } = t,
       a = !!i.nested,
       l = e === &quot;on&quot; ? &quot;addEventListener&quot; : &quot;removeEventListener&quot;,
       d = e;
    n&#x5B;l](&quot;pointerdown&quot;, t.onTouchStart, {
       passive: !1
    }), s&#x5B;l](&quot;pointermove&quot;, t.onTouchMove, {
       passive: !1,
       capture: a
    }), s&#x5B;l](&quot;pointerup&quot;, t.onTouchEnd, {
       passive: !0
    }), s&#x5B;l](&quot;pointercancel&quot;, t.onTouchEnd, {
       passive: !0
    }), s&#x5B;l](&quot;pointerout&quot;, t.onTouchEnd, {
       passive: !0
    }), s&#x5B;l](&quot;pointerleave&quot;, t.onTouchEnd, {
       passive: !0
    }), (i.preventClicks || i.preventClicksPropagation) &amp;&amp; n&#x5B;l](&quot;click&quot;, t.onClick, !0), i.cssMode &amp;&amp; r&#x5B;l](&quot;scroll&quot;, t.onScroll), i.updateOnWindowResize ? t&#x5B;d](o.ios || o.android ? &quot;resize orientationchange observerUpdate&quot; : &quot;resize observerUpdate&quot;, ge, !0) : t&#x5B;d](&quot;observerUpdate&quot;, ge, !0), n&#x5B;l](&quot;load&quot;, t.onLoad, {
       capture: !0
    })
 };
 
 function Ot() {
    const t = this,
       e = W(),
       {
          params: s
       } = t;
    t.onTouchStart = Mt.bind(t), t.onTouchMove = Pt.bind(t), t.onTouchEnd = Ct.bind(t), s.cssMode &amp;&amp; (t.onScroll = At.bind(t)), t.onClick = Lt.bind(t), t.onLoad = It.bind(t), ve || (e.addEventListener(&quot;touchstart&quot;, zt), ve = !0), Ee(t, &quot;on&quot;)
 }
 
 function kt() {
    Ee(this, &quot;off&quot;)
 }
 var Gt = {
    attachEvents: Ot,
    detachEvents: kt
 };
 const we = (t, e) =&gt; t.grid &amp;&amp; e.grid &amp;&amp; e.grid.rows &gt; 1;
 
 function $t() {
    const t = this,
       {
          realIndex: e,
          initialized: s,
          params: i,
          el: n
       } = t,
       r = i.breakpoints;
    if (!r || r &amp;&amp; Object.keys(r).length === 0) return;
    const o = t.getBreakpoint(r, t.params.breakpointsBase, t.el);
    if (!o || t.currentBreakpoint === o) return;
    const l = (o in r ? r&#x5B;o] : void 0) || t.originalParams,
       d = we(t, i),
       u = we(t, l),
       c = i.enabled;
    d &amp;&amp; !u ? (n.classList.remove(`${i.containerModifierClass}grid`, `${i.containerModifierClass}grid-column`), t.emitContainerClasses()) : !d &amp;&amp; u &amp;&amp; (n.classList.add(`${i.containerModifierClass}grid`), (l.grid.fill &amp;&amp; l.grid.fill === &quot;column&quot; || !l.grid.fill &amp;&amp; i.grid.fill === &quot;column&quot;) &amp;&amp; n.classList.add(`${i.containerModifierClass}grid-column`), t.emitContainerClasses()), &#x5B;&quot;navigation&quot;, &quot;pagination&quot;, &quot;scrollbar&quot;].forEach(m =&gt; {
       const T = i&#x5B;m] &amp;&amp; i&#x5B;m].enabled,
          S = l&#x5B;m] &amp;&amp; l&#x5B;m].enabled;
       T &amp;&amp; !S &amp;&amp; t&#x5B;m].disable(), !T &amp;&amp; S &amp;&amp; t&#x5B;m].enable()
    });
    const p = l.direction &amp;&amp; l.direction !== i.direction,
       f = i.loop &amp;&amp; (l.slidesPerView !== i.slidesPerView || p);
    p &amp;&amp; s &amp;&amp; t.changeDirection(), N(t.params, l);
    const w = t.params.enabled;
    Object.assign(t, {
       allowTouchMove: t.params.allowTouchMove,
       allowSlideNext: t.params.allowSlideNext,
       allowSlidePrev: t.params.allowSlidePrev
    }), c &amp;&amp; !w ? t.disable() : !c &amp;&amp; w &amp;&amp; t.enable(), t.currentBreakpoint = o, t.emit(&quot;_beforeBreakpoint&quot;, l), f &amp;&amp; s &amp;&amp; (t.loopDestroy(), t.loopCreate(e), t.updateSlides()), t.emit(&quot;breakpoint&quot;, l)
 }
 
 function Dt(t, e = &quot;window&quot;, s) {
    if (!t || e === &quot;container&quot; &amp;&amp; !s) return;
    let i = !1;
    const n = B(),
       r = e === &quot;window&quot; ? n.innerHeight : s.clientHeight,
       o = Object.keys(t).map(a =&gt; {
          if (typeof a == &quot;string&quot; &amp;&amp; a.indexOf(&quot;@&quot;) === 0) {
             const l = parseFloat(a.substr(1));
             return {
                value: r * l,
                point: a
             }
          }
          return {
             value: a,
             point: a
          }
       });
    o.sort((a, l) =&gt; parseInt(a.value, 10) - parseInt(l.value, 10));
    for (let a = 0; a &lt; o.length; a += 1) {
       const {
          point: l,
          value: d
       } = o&#x5B;a];
       e === &quot;window&quot; ? n.matchMedia(`(min-width: ${d}px)`).matches &amp;&amp; (i = l) : d &lt;= s.clientWidth &amp;&amp; (i = l)
    }
    return i || &quot;max&quot;
 }
 var Vt = {
    setBreakpoint: $t,
    getBreakpoint: Dt
 };
 
 function Nt(t, e) {
    const s = &#x5B;];
    return t.forEach(i =&gt; {
       typeof i == &quot;object&quot; ? Object.keys(i).forEach(n =&gt; {
          i&#x5B;n] &amp;&amp; s.push(e + n)
       }) : typeof i == &quot;string&quot; &amp;&amp; s.push(e + i)
    }), s
 }
 
 function Bt() {
    const t = this,
       {
          classNames: e,
          params: s,
          rtl: i,
          el: n,
          device: r
       } = t,
       o = Nt(&#x5B;&quot;initialized&quot;, s.direction, {
          &quot;free-mode&quot;: t.params.freeMode &amp;&amp; s.freeMode.enabled
       }, {
          autoheight: s.autoHeight
       }, {
          rtl: i
       }, {
          grid: s.grid &amp;&amp; s.grid.rows &gt; 1
       }, {
          &quot;grid-column&quot;: s.grid &amp;&amp; s.grid.rows &gt; 1 &amp;&amp; s.grid.fill === &quot;column&quot;
       }, {
          android: r.android
       }, {
          ios: r.ios
       }, {
          &quot;css-mode&quot;: s.cssMode
       }, {
          centered: s.cssMode &amp;&amp; s.centeredSlides
       }, {
          &quot;watch-progress&quot;: s.watchSlidesProgress
       }], s.containerModifierClass);
    e.push(...o), n.classList.add(...e), t.emitContainerClasses()
 }
 
 function Ft() {
    const t = this,
       {
          el: e,
          classNames: s
       } = t;
    e.classList.remove(...s), t.emitContainerClasses()
 }
 var Ht = {
    addClasses: Bt,
    removeClasses: Ft
 };
 
 function qt() {
    const t = this,
       {
          isLocked: e,
          params: s
       } = t,
       {
          slidesOffsetBefore: i
       } = s;
    if (i) {
       const n = t.slides.length - 1,
          r = t.slidesGrid&#x5B;n] + t.slidesSizesGrid&#x5B;n] + i * 2;
       t.isLocked = t.size &gt; r
    } else t.isLocked = t.snapGrid.length === 1;
    s.allowSlideNext === !0 &amp;&amp; (t.allowSlideNext = !t.isLocked), s.allowSlidePrev === !0 &amp;&amp; (t.allowSlidePrev = !t.isLocked), e &amp;&amp; e !== t.isLocked &amp;&amp; (t.isEnd = !1), e !== t.isLocked &amp;&amp; t.emit(t.isLocked ? &quot;lock&quot; : &quot;unlock&quot;)
 }
 var _t = {
       checkOverflow: qt
    },
    Se = {
       init: !0,
       direction: &quot;horizontal&quot;,
       oneWayMovement: !1,
       touchEventsTarget: &quot;wrapper&quot;,
       initialSlide: 0,
       speed: 300,
       cssMode: !1,
       updateOnWindowResize: !0,
       resizeObserver: !0,
       nested: !1,
       createElements: !1,
       enabled: !0,
       focusableElements: &quot;input, select, option, textarea, button, video, label&quot;,
       width: null,
       height: null,
       preventInteractionOnTransition: !1,
       userAgent: null,
       url: null,
       edgeSwipeDetection: !1,
       edgeSwipeThreshold: 20,
       autoHeight: !1,
       setWrapperSize: !1,
       virtualTranslate: !1,
       effect: &quot;slide&quot;,
       breakpoints: void 0,
       breakpointsBase: &quot;window&quot;,
       spaceBetween: 0,
       slidesPerView: 1,
       slidesPerGroup: 1,
       slidesPerGroupSkip: 0,
       slidesPerGroupAuto: !1,
       centeredSlides: !1,
       centeredSlidesBounds: !1,
       slidesOffsetBefore: 0,
       slidesOffsetAfter: 0,
       normalizeSlideIndex: !0,
       centerInsufficientSlides: !1,
       watchOverflow: !0,
       roundLengths: !1,
       touchRatio: 1,
       touchAngle: 45,
       simulateTouch: !0,
       shortSwipes: !0,
       longSwipes: !0,
       longSwipesRatio: .5,
       longSwipesMs: 300,
       followFinger: !0,
       allowTouchMove: !0,
       threshold: 5,
       touchMoveStopPropagation: !1,
       touchStartPreventDefault: !0,
       touchStartForcePreventDefault: !1,
       touchReleaseOnEdges: !1,
       uniqueNavElements: !0,
       resistance: !0,
       resistanceRatio: .85,
       watchSlidesProgress: !1,
       grabCursor: !1,
       preventClicks: !0,
       preventClicksPropagation: !0,
       slideToClickedSlide: !1,
       loop: !1,
       loopedSlides: null,
       loopPreventsSliding: !0,
       rewind: !1,
       allowSlidePrev: !0,
       allowSlideNext: !0,
       swipeHandler: null,
       noSwiping: !0,
       noSwipingClass: &quot;swiper-no-swiping&quot;,
       noSwipingSelector: null,
       passiveListeners: !0,
       maxBackfaceHiddenSlides: 10,
       containerModifierClass: &quot;swiper-&quot;,
       slideClass: &quot;swiper-slide&quot;,
       slideActiveClass: &quot;swiper-slide-active&quot;,
       slideVisibleClass: &quot;swiper-slide-visible&quot;,
       slideNextClass: &quot;swiper-slide-next&quot;,
       slidePrevClass: &quot;swiper-slide-prev&quot;,
       wrapperClass: &quot;swiper-wrapper&quot;,
       lazyPreloaderClass: &quot;swiper-lazy-preloader&quot;,
       runCallbacksOnInit: !0,
       _emitClasses: !1
    };
 
 function Rt(t, e) {
    return function (i = {}) {
       const n = Object.keys(i)&#x5B;0],
          r = i&#x5B;n];
       if (typeof r != &quot;object&quot; || r === null) {
          N(e, i);
          return
       }
       if (&#x5B;&quot;navigation&quot;, &quot;pagination&quot;, &quot;scrollbar&quot;].indexOf(n) &gt;= 0 &amp;&amp; t&#x5B;n] === !0 &amp;&amp; (t&#x5B;n] = {
             auto: !0
          }), !(n in t &amp;&amp; &quot;enabled&quot; in r)) {
          N(e, i);
          return
       }
       t&#x5B;n] === !0 &amp;&amp; (t&#x5B;n] = {
          enabled: !0
       }), typeof t&#x5B;n] == &quot;object&quot; &amp;&amp; !(&quot;enabled&quot; in t&#x5B;n]) &amp;&amp; (t&#x5B;n].enabled = !0), t&#x5B;n] || (t&#x5B;n] = {
          enabled: !1
       }), N(e, i)
    }
 }
 const le = {
       eventsEmitter: He,
       update: Je,
       translate: rt,
       transition: ot,
       slide: gt,
       loop: Tt,
       grabCursor: xt,
       events: Gt,
       breakpoints: Vt,
       checkOverflow: _t,
       classes: Ht
    },
    oe = {};
 class F {
    constructor(...e) {
       let s, i;
       e.length === 1 &amp;&amp; e&#x5B;0].constructor &amp;&amp; Object.prototype.toString.call(e&#x5B;0]).slice(8, -1) === &quot;Object&quot; ? i = e&#x5B;0] : &#x5B;s, i] = e, i || (i = {}), i = N({}, i), s &amp;&amp; !i.el &amp;&amp; (i.el = s);
       const n = W();
       if (i.el &amp;&amp; typeof i.el == &quot;string&quot; &amp;&amp; n.querySelectorAll(i.el).length &gt; 1) {
          const l = &#x5B;];
          return n.querySelectorAll(i.el).forEach(d =&gt; {
             const u = N({}, i, {
                el: d
             });
             l.push(new F(u))
          }), l
       }
       const r = this;
       r.__swiper__ = !0, r.support = ye(), r.device = De({
          userAgent: i.userAgent
       }), r.browser = Ne(), r.eventsListeners = {}, r.eventsAnyListeners = &#x5B;], r.modules = &#x5B;...r.__modules__], i.modules &amp;&amp; Array.isArray(i.modules) &amp;&amp; r.modules.push(...i.modules);
       const o = {};
       r.modules.forEach(l =&gt; {
          l({
             params: i,
             swiper: r,
             extendParams: Rt(i, o),
             on: r.on.bind(r),
             once: r.once.bind(r),
             off: r.off.bind(r),
             emit: r.emit.bind(r)
          })
       });
       const a = N({}, Se, o);
       return r.params = N({}, a, oe, i), r.originalParams = N({}, r.params), r.passedParams = N({}, i), r.params &amp;&amp; r.params.on &amp;&amp; Object.keys(r.params.on).forEach(l =&gt; {
          r.on(l, r.params.on&#x5B;l])
       }), r.params &amp;&amp; r.params.onAny &amp;&amp; r.onAny(r.params.onAny), Object.assign(r, {
          enabled: r.params.enabled,
          el: s,
          classNames: &#x5B;],
          slides: &#x5B;],
          slidesGrid: &#x5B;],
          snapGrid: &#x5B;],
          slidesSizesGrid: &#x5B;],
          isHorizontal() {
             return r.params.direction === &quot;horizontal&quot;
          },
          isVertical() {
             return r.params.direction === &quot;vertical&quot;
          },
          activeIndex: 0,
          realIndex: 0,
          isBeginning: !0,
          isEnd: !1,
          translate: 0,
          previousTranslate: 0,
          progress: 0,
          velocity: 0,
          animating: !1,
          allowSlideNext: r.params.allowSlideNext,
          allowSlidePrev: r.params.allowSlidePrev,
          touchEventsData: {
             isTouched: void 0,
             isMoved: void 0,
             allowTouchCallbacks: void 0,
             touchStartTime: void 0,
             isScrolling: void 0,
             currentTranslate: void 0,
             startTranslate: void 0,
             allowThresholdMove: void 0,
             focusableElements: r.params.focusableElements,
             lastClickTime: U(),
             clickTimeout: void 0,
             velocities: &#x5B;],
             allowMomentumBounce: void 0,
             startMoving: void 0,
             evCache: &#x5B;]
          },
          allowClick: !0,
          allowTouchMove: r.params.allowTouchMove,
          touches: {
             startX: 0,
             startY: 0,
             currentX: 0,
             currentY: 0,
             diff: 0
          },
          imagesToLoad: &#x5B;],
          imagesLoaded: 0
       }), r.emit(&quot;_swiper&quot;), r.params.init &amp;&amp; r.init(), r
    }
    recalcSlides() {
       const e = this,
          {
             slidesEl: s,
             params: i
          } = e;
       e.slides = R(s, `.${i.slideClass}, swiper-slide`)
    }
    enable() {
       const e = this;
       e.enabled || (e.enabled = !0, e.params.grabCursor &amp;&amp; e.setGrabCursor(), e.emit(&quot;enable&quot;))
    }
    disable() {
       const e = this;
       !e.enabled || (e.enabled = !1, e.params.grabCursor &amp;&amp; e.unsetGrabCursor(), e.emit(&quot;disable&quot;))
    }
    setProgress(e, s) {
       const i = this;
       e = Math.min(Math.max(e, 0), 1);
       const n = i.minTranslate(),
          o = (i.maxTranslate() - n) * e + n;
       i.translateTo(o, typeof s == &quot;undefined&quot; ? 0 : s), i.updateActiveIndex(), i.updateSlidesClasses()
    }
    emitContainerClasses() {
       const e = this;
       if (!e.params._emitClasses || !e.el) return;
       const s = e.el.className.split(&quot; &quot;).filter(i =&gt; i.indexOf(&quot;swiper&quot;) === 0 || i.indexOf(e.params.containerModifierClass) === 0);
       e.emit(&quot;_containerClasses&quot;, s.join(&quot; &quot;))
    }
    getSlideClasses(e) {
       const s = this;
       return s.destroyed ? &quot;&quot; : e.className.split(&quot; &quot;).filter(i =&gt; i.indexOf(&quot;swiper-slide&quot;) === 0 || i.indexOf(s.params.slideClass) === 0).join(&quot; &quot;)
    }
    emitSlidesClasses() {
       const e = this;
       if (!e.params._emitClasses || !e.el) return;
       const s = &#x5B;];
       e.slides.forEach(i =&gt; {
          const n = e.getSlideClasses(i);
          s.push({
             slideEl: i,
             classNames: n
          }), e.emit(&quot;_slideClass&quot;, i, n)
       }), e.emit(&quot;_slideClasses&quot;, s)
    }
    slidesPerViewDynamic(e = &quot;current&quot;, s = !1) {
       const i = this,
          {
             params: n,
             slides: r,
             slidesGrid: o,
             slidesSizesGrid: a,
             size: l,
             activeIndex: d
          } = i;
       let u = 1;
       if (n.centeredSlides) {
          let c = r&#x5B;d].swiperSlideSize,
             p;
          for (let f = d + 1; f &lt; r.length; f += 1) r&#x5B;f] &amp;&amp; !p &amp;&amp; (c += r&#x5B;f].swiperSlideSize, u += 1, c &gt; l &amp;&amp; (p = !0));
          for (let f = d - 1; f &gt;= 0; f -= 1) r&#x5B;f] &amp;&amp; !p &amp;&amp; (c += r&#x5B;f].swiperSlideSize, u += 1, c &gt; l &amp;&amp; (p = !0))
       } else if (e === &quot;current&quot;)
          for (let c = d + 1; c &lt; r.length; c += 1)(s ? o&#x5B;c] + a&#x5B;c] - o&#x5B;d] &lt; l : o&#x5B;c] - o&#x5B;d] &lt; l) &amp;&amp; (u += 1);
       else
          for (let c = d - 1; c &gt;= 0; c -= 1) o&#x5B;d] - o&#x5B;c] &lt; l &amp;&amp; (u += 1);
       return u
    }
    update() {
       const e = this;
       if (!e || e.destroyed) return;
       const {
          snapGrid: s,
          params: i
       } = e;
       i.breakpoints &amp;&amp; e.setBreakpoint(), &#x5B;...e.el.querySelectorAll('&#x5B;loading=&quot;lazy&quot;]')].forEach(o =&gt; {
          o.complete &amp;&amp; ee(e, o)
       }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses();
 
       function n() {
          const o = e.rtlTranslate ? e.translate * -1 : e.translate,
             a = Math.min(Math.max(o, e.maxTranslate()), e.minTranslate());
          e.setTranslate(a), e.updateActiveIndex(), e.updateSlidesClasses()
       }
       let r;
       e.params.freeMode &amp;&amp; e.params.freeMode.enabled ? (n(), e.params.autoHeight &amp;&amp; e.updateAutoHeight()) : ((e.params.slidesPerView === &quot;auto&quot; || e.params.slidesPerView &gt; 1) &amp;&amp; e.isEnd &amp;&amp; !e.params.centeredSlides ? r = e.slideTo(e.slides.length - 1, 0, !1, !0) : r = e.slideTo(e.activeIndex, 0, !1, !0), r || n()), i.watchOverflow &amp;&amp; s !== e.snapGrid &amp;&amp; e.checkOverflow(), e.emit(&quot;update&quot;)
    }
    changeDirection(e, s = !0) {
       const i = this,
          n = i.params.direction;
       return e || (e = n === &quot;horizontal&quot; ? &quot;vertical&quot; : &quot;horizontal&quot;), e === n || e !== &quot;horizontal&quot; &amp;&amp; e !== &quot;vertical&quot; || (i.el.classList.remove(`${i.params.containerModifierClass}${n}`), i.el.classList.add(`${i.params.containerModifierClass}${e}`), i.emitContainerClasses(), i.params.direction = e, i.slides.forEach(r =&gt; {
          e === &quot;vertical&quot; ? r.style.width = &quot;&quot; : r.style.height = &quot;&quot;
       }), i.emit(&quot;changeDirection&quot;), s &amp;&amp; i.update()), i
    }
    changeLanguageDirection(e) {
       const s = this;
       s.rtl &amp;&amp; e === &quot;rtl&quot; || !s.rtl &amp;&amp; e === &quot;ltr&quot; || (s.rtl = e === &quot;rtl&quot;, s.rtlTranslate = s.params.direction === &quot;horizontal&quot; &amp;&amp; s.rtl, s.rtl ? (s.el.classList.add(`${s.params.containerModifierClass}rtl`), s.el.dir = &quot;rtl&quot;) : (s.el.classList.remove(`${s.params.containerModifierClass}rtl`), s.el.dir = &quot;ltr&quot;), s.update())
    }
    mount(e) {
       const s = this;
       if (s.mounted) return !0;
       let i = e || s.params.el;
       if (typeof i == &quot;string&quot; &amp;&amp; (i = document.querySelector(i)), !i) return !1;
       i.swiper = s, i.shadowEl &amp;&amp; (s.isElement = !0);
       const n = () =&gt; `.${(s.params.wrapperClass||&quot;&quot;).trim().split(&quot; &quot;).join(&quot;.&quot;)}`;
       let o = (() =&gt; i &amp;&amp; i.shadowRoot &amp;&amp; i.shadowRoot.querySelector ? i.shadowRoot.querySelector(n()) : R(i, n())&#x5B;0])();
       return !o &amp;&amp; s.params.createElements &amp;&amp; (o = Y(&quot;div&quot;, s.params.wrapperClass), i.append(o), R(i, `.${s.params.slideClass}`).forEach(a =&gt; {
          o.append(a)
       })), Object.assign(s, {
          el: i,
          wrapperEl: o,
          slidesEl: s.isElement ? i : o,
          mounted: !0,
          rtl: i.dir.toLowerCase() === &quot;rtl&quot; || _(i, &quot;direction&quot;) === &quot;rtl&quot;,
          rtlTranslate: s.params.direction === &quot;horizontal&quot; &amp;&amp; (i.dir.toLowerCase() === &quot;rtl&quot; || _(i, &quot;direction&quot;) === &quot;rtl&quot;),
          wrongRTL: _(o, &quot;display&quot;) === &quot;-webkit-box&quot;
       }), !0
    }
    init(e) {
       const s = this;
       return s.initialized || s.mount(e) === !1 || (s.emit(&quot;beforeInit&quot;), s.params.breakpoints &amp;&amp; s.setBreakpoint(), s.addClasses(), s.updateSize(), s.updateSlides(), s.params.watchOverflow &amp;&amp; s.checkOverflow(), s.params.grabCursor &amp;&amp; s.enabled &amp;&amp; s.setGrabCursor(), s.params.loop &amp;&amp; s.virtual &amp;&amp; s.params.virtual.enabled ? s.slideTo(s.params.initialSlide + s.virtual.slidesBefore, 0, s.params.runCallbacksOnInit, !1, !0) : s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit, !1, !0), s.params.loop &amp;&amp; s.loopCreate(), s.attachEvents(), &#x5B;...s.el.querySelectorAll('&#x5B;loading=&quot;lazy&quot;]')].forEach(n =&gt; {
          n.complete ? ee(s, n) : n.addEventListener(&quot;load&quot;, r =&gt; {
             ee(s, r.target)
          })
       }), s.initialized = !0, s.emit(&quot;init&quot;), s.emit(&quot;afterInit&quot;)), s
    }
    destroy(e = !0, s = !0) {
       const i = this,
          {
             params: n,
             el: r,
             wrapperEl: o,
             slides: a
          } = i;
       return typeof i.params == &quot;undefined&quot; || i.destroyed || (i.emit(&quot;beforeDestroy&quot;), i.initialized = !1, i.detachEvents(), n.loop &amp;&amp; i.loopDestroy(), s &amp;&amp; (i.removeClasses(), r.removeAttribute(&quot;style&quot;), o.removeAttribute(&quot;style&quot;), a &amp;&amp; a.length &amp;&amp; a.forEach(l =&gt; {
          l.classList.remove(n.slideVisibleClass, n.slideActiveClass, n.slideNextClass, n.slidePrevClass), l.removeAttribute(&quot;style&quot;), l.removeAttribute(&quot;data-swiper-slide-index&quot;)
       })), i.emit(&quot;destroy&quot;), Object.keys(i.eventsListeners).forEach(l =&gt; {
          i.off(l)
       }), e !== !1 &amp;&amp; (i.el.swiper = null, Ce(i)), i.destroyed = !0), null
    }
    static extendDefaults(e) {
       N(oe, e)
    }
    static get extendedDefaults() {
       return oe
    }
    static get defaults() {
       return Se
    }
    static installModule(e) {
       F.prototype.__modules__ || (F.prototype.__modules__ = &#x5B;]);
       const s = F.prototype.__modules__;
       typeof e == &quot;function&quot; &amp;&amp; s.indexOf(e) &lt; 0 &amp;&amp; s.push(e)
    }
    static use(e) {
       return Array.isArray(e) ? (e.forEach(s =&gt; F.installModule(s)), F) : (F.installModule(e), F)
    }
 }
 Object.keys(le).forEach(t =&gt; {
    Object.keys(le&#x5B;t]).forEach(e =&gt; {
       F.prototype&#x5B;e] = le&#x5B;t]&#x5B;e]
    })
 });
 F.use(&#x5B;Be, Fe]);
 
 function Wt(t) {
    const {
       effect: e,
       swiper: s,
       on: i,
       setTranslate: n,
       setTransition: r,
       overwriteParams: o,
       perspective: a,
       recreateShadows: l,
       getEffectParams: d
    } = t;
    i(&quot;beforeInit&quot;, () =&gt; {
       if (s.params.effect !== e) return;
       s.classNames.push(`${s.params.containerModifierClass}${e}`), a &amp;&amp; a() &amp;&amp; s.classNames.push(`${s.params.containerModifierClass}3d`);
       const c = o ? o() : {};
       Object.assign(s.params, c), Object.assign(s.originalParams, c)
    }), i(&quot;setTranslate&quot;, () =&gt; {
       s.params.effect === e &amp;&amp; n()
    }), i(&quot;setTransition&quot;, (c, p) =&gt; {
       s.params.effect === e &amp;&amp; r(p)
    }), i(&quot;transitionEnd&quot;, () =&gt; {
       if (s.params.effect === e &amp;&amp; l) {
          if (!d || !d().slideShadows) return;
          s.slides.forEach(c =&gt; {
             c.querySelectorAll(&quot;.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left&quot;).forEach(p =&gt; p.remove())
          }), l()
       }
    });
    let u;
    i(&quot;virtualUpdate&quot;, () =&gt; {
       s.params.effect === e &amp;&amp; (s.slides.length || (u = !0), requestAnimationFrame(() =&gt; {
          u &amp;&amp; s.slides &amp;&amp; s.slides.length &amp;&amp; (n(), u = !1)
       }))
    })
 }
 
 function jt({
    swiper: t,
    extendParams: e,
    on: s
 }) {
    e({
       cubeEffect: {
          slideShadows: !0,
          shadow: !0,
          shadowOffset: 20,
          shadowScale: .94
       }
    });
    const i = (a, l, d) =&gt; {
       let u = d ? a.querySelector(&quot;.swiper-slide-shadow-left&quot;) : a.querySelector(&quot;.swiper-slide-shadow-top&quot;),
          c = d ? a.querySelector(&quot;.swiper-slide-shadow-right&quot;) : a.querySelector(&quot;.swiper-slide-shadow-bottom&quot;);
       u || (u = Y(&quot;div&quot;, `swiper-slide-shadow-${d?&quot;left&quot;:&quot;top&quot;}`), a.append(u)), c || (c = Y(&quot;div&quot;, `swiper-slide-shadow-${d?&quot;right&quot;:&quot;bottom&quot;}`), a.append(c)), u &amp;&amp; (u.style.opacity = Math.max(-l, 0)), c &amp;&amp; (c.style.opacity = Math.max(l, 0))
    };
    Wt({
       effect: &quot;cube&quot;,
       swiper: t,
       on: s,
       setTranslate: () =&gt; {
          const {
             el: a,
             wrapperEl: l,
             slides: d,
             width: u,
             height: c,
             rtlTranslate: p,
             size: f,
             browser: w
          } = t, m = t.params.cubeEffect, T = t.isHorizontal(), S = t.virtual &amp;&amp; t.params.virtual.enabled;
          let P = 0,
             g;
          m.shadow &amp;&amp; (T ? (g = t.slidesEl.querySelector(&quot;.swiper-cube-shadow&quot;), g || (g = Y(&quot;div&quot;, &quot;swiper-cube-shadow&quot;), t.slidesEl.append(g)), g.style.height = `${u}px`) : (g = a.querySelector(&quot;.swiper-cube-shadow&quot;), g || (g = Y(&quot;div&quot;, &quot;swiper-cube-shadow&quot;), a.append(g))));
          for (let y = 0; y &lt; d.length; y += 1) {
             const x = d&#x5B;y];
             let I = y;
             S &amp;&amp; (I = parseInt(x.getAttribute(&quot;data-swiper-slide-index&quot;), 10));
             let O = I * 90,
                z = Math.floor(O / 360);
             p &amp;&amp; (O = -O, z = Math.floor(-O / 360));
             const V = Math.max(Math.min(x.progress, 1), -1);
             let v = 0,
                E = 0,
                L = 0;
             I % 4 === 0 ? (v = -z * 4 * f, L = 0) : (I - 1) % 4 === 0 ? (v = 0, L = -z * 4 * f) : (I - 2) % 4 === 0 ? (v = f + z * 4 * f, L = f) : (I - 3) % 4 === 0 &amp;&amp; (v = -f, L = 3 * f + f * 4 * z), p &amp;&amp; (v = -v), T || (E = v, v = 0);
             const D = `rotateX(${T?0:-O}deg) rotateY(${T?O:0}deg) translate3d(${v}px, ${E}px, ${L}px)`;
             V &lt;= 1 &amp;&amp; V &gt; -1 &amp;&amp; (P = I * 90 + V * 90, p &amp;&amp; (P = -I * 90 - V * 90)), x.style.transform = D, m.slideShadows &amp;&amp; i(x, V, T)
          }
          if (l.style.transformOrigin = `50% 50% -${f/2}px`, l.style&#x5B;&quot;-webkit-transform-origin&quot;] = `50% 50% -${f/2}px`, m.shadow)
             if (T) g.style.transform = `translate3d(0px, ${u/2+m.shadowOffset}px, ${-u/2}px) rotateX(90deg) rotateZ(0deg) scale(${m.shadowScale})`;
             else {
                const y = Math.abs(P) - Math.floor(Math.abs(P) / 90) * 90,
                   x = 1.5 - (Math.sin(y * 2 * Math.PI / 360) / 2 + Math.cos(y * 2 * Math.PI / 360) / 2),
                   I = m.shadowScale,
                   O = m.shadowScale / x,
                   z = m.shadowOffset;
                g.style.transform = `scale3d(${I}, 1, ${O}) translate3d(0px, ${c/2+z}px, ${-c/2/O}px) rotateX(-90deg)`
             } const b = (w.isSafari || w.isWebView) &amp;&amp; w.needPerspectiveFix ? -f / 2 : 0;
          l.style.transform = `translate3d(0px,0,${b}px) rotateX(${t.isHorizontal()?0:P}deg) rotateY(${t.isHorizontal()?-P:0}deg)`, l.style.setProperty(&quot;--swiper-cube-translate-z&quot;, `${b}px`)
       },
       setTransition: a =&gt; {
          const {
             el: l,
             slides: d
          } = t;
          if (d.forEach(u =&gt; {
                u.style.transitionDuration = `${a}ms`, u.querySelectorAll(&quot;.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left&quot;).forEach(c =&gt; {
                   c.style.transitionDuration = `${a}ms`
                })
             }), t.params.cubeEffect.shadow &amp;&amp; !t.isHorizontal()) {
             const u = l.querySelector(&quot;.swiper-cube-shadow&quot;);
             u &amp;&amp; (u.style.transitionDuration = `${a}ms`)
          }
       },
       recreateShadows: () =&gt; {
          const a = t.isHorizontal();
          t.slides.forEach(l =&gt; {
             const d = Math.max(Math.min(l.progress, 1), -1);
             i(l, d, a)
          })
       },
       getEffectParams: () =&gt; t.params.cubeEffect,
       perspective: () =&gt; !0,
       overwriteParams: () =&gt; ({
          slidesPerView: 1,
          slidesPerGroup: 1,
          watchSlidesProgress: !0,
          resistanceRatio: 0,
          spaceBetween: 0,
          centeredSlides: !1,
          virtualTranslate: !0
       })
    })
 }
 
 function Xt(t, e = {}) {
    const s = t.querySelector(&quot;.swiper&quot;),
       {
          autoplayDuration: i = 5e3,
          Swiper: n,
          EffectCube: r,
          onSlidesIndexesChange: o,
          onAutoplayStart: a,
          onAutoplayStop: l
       } = e;
    let {
       enabled: d = !0
    } = e, u = 0, c, p;
    const f = &#x5B;];
    let w, m, T, S, P, g, b, y;
    const x = (h, M) =&gt; {
          const C = f.indexOf(h);
          let A = typeof M == &quot;undefined&quot; ? i : M,
             k = parseInt(h.slides&#x5B;h.activeIndex].getAttribute(&quot;data-duration&quot;), 10);
          const H = h.slides&#x5B;h.activeIndex].querySelector(&quot;video&quot;);
          return Number.isNaN(k) &amp;&amp; H &amp;&amp; (k = H.duration * 1e3), !Number.isNaN(k) &amp;&amp; k &gt; 0 &amp;&amp; typeof M == &quot;undefined&quot; &amp;&amp; (A = k), b = A, h.codeplanersSliderAutoplayTimeout = setTimeout(() =&gt; {
             if (!h.isEnd) h.slideNext();
             else {
                if (u !== C) return;
                c.isEnd || c.slideNext()
             }
          }, A), a &amp;&amp; a(h), A
       },
       I = h =&gt; {
          clearTimeout(h.codeplanersSliderAutoplayTimeout), l &amp;&amp; l(h)
       },
       O = h =&gt; {
          I(h);
          const M = h.slides&#x5B;h.activeIndex].querySelector(&quot;video&quot;);
          M &amp;&amp; (cancelAnimationFrame(p), M.pause());
          const C = b || i;
          let A = parseInt(h.slides&#x5B;h.activeIndex].getAttribute(&quot;data-duration&quot;), 10);
          if (Number.isNaN(A) &amp;&amp; (A = void 0), !A &amp;&amp; M &amp;&amp; (A = M.duration * 1e3), b = C - (new Date().getTime() - g), h.isEnd &amp;&amp; b &lt; 0) return;
          b &lt; 0 &amp;&amp; (b = 0);
          const k = 1 - b / (A || i),
             H = h.el.querySelector(`.codeplaners-slider-pagination-bullet:nth-child(${h.activeIndex+1})`);
          H.querySelector(&quot;span&quot;).remove(), H.insertAdjacentHTML(&quot;beforeend&quot;, `&lt;span style=&quot;transform:translateX(${-100+k*100}%)&quot;&gt;&lt;/span&gt;`)
       },
       z = h =&gt; {
          if (h.isEnd &amp;&amp; b &lt; 0) return;
          g = new Date().getTime(), x(h, b);
          const M = h.slides&#x5B;h.activeIndex].querySelector(&quot;video&quot;);
          if (M) try {
             p = requestAnimationFrame(() =&gt; {
                M.play()
             })
          } catch {}
          const C = h.el.querySelector(`.codeplaners-slider-pagination-bullet:nth-child(${h.activeIndex+1}) &gt; span`);
          C.style.transform = &quot;translateX(0%)&quot;, C.style.transitionDuration = `${b}ms`
       },
       V = h =&gt; {
          I(h), x(h), g = new Date().getTime();
          const M = h.el.querySelector(&quot;.codeplaners-slider-pagination-bullet-current&quot;);
          M &amp;&amp; M.classList.remove(&quot;codeplaners-slider-pagination-bullet-current&quot;);
          const C = h.el.querySelector(`.codeplaners-slider-pagination-bullet:nth-child(${h.activeIndex+1})`),
             A = h.slides&#x5B;h.activeIndex].querySelector(&quot;video&quot;);
          if (A) {
             A.currentTime = 0;
             try {
                p = requestAnimationFrame(() =&gt; {
                   A.play()
                })
             } catch {}
          }
          h.slides.forEach(G =&gt; {
             G.querySelectorAll(&quot;video&quot;).forEach($ =&gt; {
                $ !== A &amp;&amp; ($.currentTime = 0, A || cancelAnimationFrame(p), $.pause())
             })
          }), f.filter((G, $) =&gt; $ !== u).forEach(G =&gt; {
             G.el.querySelectorAll(&quot;video&quot;).forEach($ =&gt; {
                A || cancelAnimationFrame(p), $.pause()
             })
          });
          const k = &#x5B;...C.parentElement.children],
             H = &#x5B;...k].filter((G, $) =&gt; $ &lt; k.indexOf(C)),
             ie = &#x5B;...k].filter((G, $) =&gt; $ &gt; k.indexOf(C));
          H.forEach(G =&gt; {
             G.classList.add(&quot;codeplaners-slider-pagination-bullet-viewed&quot;), G.querySelectorAll(&quot;span&quot;).forEach($ =&gt; $.remove()), G.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;span&gt;&lt;/span&gt;&quot;)
          }), ie.forEach(G =&gt; {
             G.classList.remove(&quot;codeplaners-slider-pagination-bullet-viewed&quot;, &quot;codeplaners-slider-pagination-bullet-current&quot;), G.querySelectorAll(&quot;span&quot;).forEach($ =&gt; $.remove()), G.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;span&gt;&lt;/span&gt;&quot;)
          }), C.classList.remove(&quot;codeplaners-slider-pagination-bullet-viewed&quot;), C.classList.add(&quot;codeplaners-slider-pagination-bullet-current&quot;), &#x5B;...C.children].forEach(G =&gt; G.remove()), C.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;span&gt;&lt;/span&gt;&quot;), C.clientWidth, C.querySelector(&quot;span&quot;).style.transform = &quot;translateX(0%)&quot;, C.querySelector(&quot;span&quot;).style.transitionDuration = `${b}ms`, o &amp;&amp; (cancelAnimationFrame(w), w = requestAnimationFrame(() =&gt; {
             o(u, h.activeIndex)
          }))
       },
       v = () =&gt; {
          const h = () =&gt; {
                t.classList.add(&quot;codeplaners-slider-perspective&quot;)
             },
             M = () =&gt; {
                t.classList.remove(&quot;codeplaners-slider-perspective&quot;)
             };
          c = new n(s, {
             modules: typeof r != &quot;undefined&quot; ? &#x5B;r] : &#x5B;],
             effect: &quot;cube&quot;,
             speed: 500,
             threshold: 5,
             cubeEffect: {
                shadow: !1
             },
             observer: !0,
             on: {
                transitionStart() {
                   M()
                },
                sliderFirstMove() {
                   M()
                },
                transitionEnd() {
                   h()
                },
                init(C) {
                   C.params.resistanceRatio = .5, h()
                },
                slideChange() {
                   const C = f&#x5B;u];
                   u = c.activeIndex;
                   const A = f&#x5B;u];
                   I(C), x(A), V(A)
                }
             }
          })
       },
       E = h =&gt; {
          const M = h.querySelectorAll(&quot;.swiper-slide&quot;),
             C = document.createElement(&quot;div&quot;);
          C.classList.add(&quot;codeplaners-slider-pagination&quot;);
          for (let A = 0; A &lt; M.length; A += 1) {
             const k = document.createElement(&quot;div&quot;);
             k.classList.add(&quot;codeplaners-slider-pagination-bullet&quot;), k.appendChild(document.createElement(&quot;span&quot;)), C.appendChild(k)
          }
          h.appendChild(C)
       },
       L = h =&gt; {
          h.el.querySelectorAll(&quot;.codeplaners-slider-pagination, .codeplaners-slider-pagination-bullet&quot;).forEach(M =&gt; M.remove())
       },
       D = (h, M) =&gt; {
          h.querySelectorAll(&quot;.swiper-slide&quot;).forEach(A =&gt; {
             const k = document.createElement(&quot;div&quot;),
                H = document.createElement(&quot;div&quot;);
             k.classList.add(&quot;codeplaners-slider-button&quot;, &quot;codeplaners-slider-button-prev&quot;), H.classList.add(&quot;codeplaners-slider-button&quot;, &quot;codeplaners-slider-button-next&quot;), A.appendChild(k), A.appendChild(H);
             const ie = () =&gt; {
                   if (!(P &gt; 200)) {
                      if (M.isBeginning) {
                         c.slidePrev();
                         return
                      }
                      M.slidePrev()
                   }
                },
                G = () =&gt; {
                   if (!(P &gt; 200)) {
                      if (M.isEnd) {
                         c.slideNext();
                         return
                      }
                      M.slideNext()
                   }
                };
             k.addEventListener(&quot;click&quot;, ie), H.addEventListener(&quot;click&quot;, G)
          })
       },
       X = h =&gt; {
          h.el.querySelectorAll(&quot;.codeplaners-slider-button&quot;).forEach(M =&gt; M.remove())
       },
       Z = () =&gt; {
          t.querySelectorAll(&quot;.swiper .swiper&quot;).forEach((h, M) =&gt; {
             const C = new n(h, {
                speed: 1,
                nested: !0,
                allowTouchMove: !1,
                observer: !0,
                on: {
                   touchStart(A) {
                      m = !0, y = !1, T = new Date().getTime(), S = setTimeout(() =&gt; {
                         y = !0, O(A)
                      }, 200)
                   },
                   touchEnd(A) {
                      clearTimeout(S), u === M &amp;&amp; (!m || (P = new Date().getTime() - T, y &amp;&amp; z(A), y = !1, m = !1))
                   },
                   init(A) {
                      !d || (u !== M ? I(A) : requestAnimationFrame(() =&gt; {
                         V(A)
                      }))
                   },
                   slideChange(A) {
                      V(A)
                   }
                }
             });
             E(h), D(h, C), f.push(C)
          })
       };
    return v(), Z(), {
       el: t,
       mainSwiper: c,
       subSwipers: f,
       destroy: () =&gt; {
          c &amp;&amp; c.destroy &amp;&amp; c.destroy(), f.forEach(h =&gt; {
             I(h), L(h), X(h), h.destroy &amp;&amp; h.destroy()
          })
       },
       slideTo: (h, M) =&gt; {
          if (c &amp;&amp; c.slideTo &amp;&amp; !c.destroyed &amp;&amp; c.slideTo(h, 0), typeof M != &quot;undefined&quot;) {
             const C = f&#x5B;h];
             C.slideTo &amp;&amp; !C.destroyed &amp;&amp; (C.activeIndex === M ? V(C) : C.slideTo(M, 0))
          }
       },
       enable: () =&gt; {
          d || f.forEach((h, M) =&gt; {
             M === u &amp;&amp; V(h)
          })
       },
       disable: () =&gt; {
          d = !1, f.forEach((h, M) =&gt; {
             h.el.querySelectorAll(&quot;video&quot;).forEach(C =&gt; {
                cancelAnimationFrame(p), C.pause()
             }), M === u ? O(h) : I(h)
          })
       }
    }
 }
 const q = document.querySelector(&quot;.codeplaners-slider&quot;),
    K = Xt(q, {
       Swiper: F,
       EffectCube: jt,
       autoplayDuration: 5e3,
       enabled: !1,
       onSlidesIndexesChange(t, e) {
          console.log({
             mainIndex: t,
             subIndex: e
          })
       }
    });
 document.querySelectorAll(&quot;.demo-codeplaners a&quot;).forEach((t, e) =&gt; {
    t.addEventListener(&quot;click&quot;, s =&gt; {
       s.preventDefault(), q.classList.add(&quot;codeplaners-slider-in&quot;), K.enable(), K.slideTo(e, 0)
    })
 });
 document.querySelectorAll(&quot;.demo-post-avatar&quot;).forEach(t =&gt; {
    const e = parseInt(t.getAttribute(&quot;data-user-index&quot;), 10);
    t.addEventListener(&quot;click&quot;, s =&gt; {
       s.preventDefault(), q.classList.add(&quot;codeplaners-slider-in&quot;), K.enable(), K.slideTo(e, 0)
    })
 });
 q.addEventListener(&quot;click&quot;, t =&gt; {
    t.target.matches(&quot;.codeplaners-slider-close-button&quot;) &amp;&amp; (K.disable(), q.classList.add(&quot;codeplaners-slider-out&quot;))
 });
 q.addEventListener(&quot;animationend&quot;, () =&gt; {
    q.classList.contains(&quot;codeplaners-slider-out&quot;) &amp;&amp; (q.classList.remove(&quot;codeplaners-slider-in&quot;), q.classList.remove(&quot;codeplaners-slider-out&quot;))
 });
</pre>
<h3 class="step_code">Downoload File</h3>
<p><a href="https://github.com/codeplaners/Stories-Slide-Example">Stories-Slide-Example</a></p>
<p><strong>I hope it will assist you…</strong></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/stories-slide-example/">Stories Slide Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/stories-slide-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Social Media Icon With pop-up Effect Example</title>
		<link>https://codeplaners.com/social-media-icon-with-pop-up-effect-example/</link>
					<comments>https://codeplaners.com/social-media-icon-with-pop-up-effect-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 25 Mar 2023 08:53:15 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[pop-up effect]]></category>
		<category><![CDATA[social media]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1475</guid>

					<description><![CDATA[<p>This post was last updated on May 13th, 2023 at 01:16 amHi Dev, Today, i will show you social media icon with pop-up effect example. This article will give you simple example of social media icon with pop-up effect example. you will social media icon with pop-up effect example. In this article, we will implement &#8230; <a href="https://codeplaners.com/social-media-icon-with-pop-up-effect-example/" class="more-link">Continue reading<span class="screen-reader-text"> "Social Media Icon With pop-up Effect Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/social-media-icon-with-pop-up-effect-example/">Social Media Icon With pop-up Effect Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="last-modified">This post was last updated on May 13th, 2023 at 01:16 am</p><p>Hi Dev,</p>
<p>Today, i will show you social media icon with pop-up effect example. This article will give you simple example of social media icon with pop-up effect example. you will social media icon with pop-up effect example. In this article, we will implement a social media icon with pop-up effect example. </p>
<p>So, let’s follow few steps to create example of social media icon with pop-up effect example.</p>
<h3 class="step_code">Example</h3>
<p><strong>index.html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;social media icon with pop-up effect example - codeplaners&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css&quot;&gt;
    &lt;style&gt;
        /*
    Auther: Abdelrhman Said
*/

@import url(&quot;https://fonts.googleapis.com/css2?family=Poppins&amp;display=swap&quot;);

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

*:focus,
*:active {
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  display: grid;
  height: 100%;
  width: 100%;
  font-family: &quot;Poppins&quot;, sans-serif;
  place-items: center;
  background: linear-gradient(315deg, #ffffff, #d7e1ec);
}

.wrapper {
  display: inline-flex;
  list-style: none;
}

.wrapper .icon {
  position: relative;
  background: #ffffff;
  border-radius: 50%;
  padding: 15px;
  margin: 10px;
  width: 50px;
  height: 50px;
  font-size: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.wrapper .tooltip {
  position: absolute;
  top: 0;
  font-size: 14px;
  background: #ffffff;
  color: #ffffff;
  padding: 5px 8px;
  border-radius: 5px;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.wrapper .tooltip::before {
  position: absolute;
  content: &quot;&quot;;
  height: 8px;
  width: 8px;
  background: #ffffff;
  bottom: -3px;
  left: 50%;
  transform: translate(-50%) rotate(45deg);
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.wrapper .icon:hover .tooltip {
  top: -45px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.wrapper .icon:hover span,
.wrapper .icon:hover .tooltip {
  text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.1);
}

.wrapper .facebook:hover,
.wrapper .facebook:hover .tooltip,
.wrapper .facebook:hover .tooltip::before {
  background: #1877f2;
  color: #ffffff;
}

.wrapper .twitter:hover,
.wrapper .twitter:hover .tooltip,
.wrapper .twitter:hover .tooltip::before {
  background: #1da1f2;
  color: #ffffff;
}

.wrapper .instagram:hover,
.wrapper .instagram:hover .tooltip,
.wrapper .instagram:hover .tooltip::before {
  background: #e4405f;
  color: #ffffff;
}

.wrapper .github:hover,
.wrapper .github:hover .tooltip,
.wrapper .github:hover .tooltip::before {
  background: #333333;
  color: #ffffff;
}

.wrapper .youtube:hover,
.wrapper .youtube:hover .tooltip,
.wrapper .youtube:hover .tooltip::before {
  background: #cd201f;
  color: #ffffff;
}

    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
   


    &lt;ul class=&quot;wrapper&quot;&gt;
        &lt;li class=&quot;icon facebook&quot;&gt;
          &lt;span class=&quot;tooltip&quot;&gt;Facebook&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa fa-facebook&quot;&gt;&lt;/i&gt;&lt;/span&gt;
        &lt;/li&gt;
        &lt;li class=&quot;icon twitter&quot;&gt;
          &lt;span class=&quot;tooltip&quot;&gt;Twitter&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa fa-twitter&quot;&gt;&lt;/i&gt;&lt;/span&gt;
        &lt;/li&gt;
        &lt;li class=&quot;icon instagram&quot;&gt;
          &lt;span class=&quot;tooltip&quot;&gt;Instagram&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa fa-instagram&quot;&gt;&lt;/i&gt;&lt;/span&gt;
        &lt;/li&gt;
        &lt;li class=&quot;icon github&quot;&gt;
          &lt;span class=&quot;tooltip&quot;&gt;Github&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa fa-github&quot;&gt;&lt;/i&gt;&lt;/span&gt;
        &lt;/li&gt;
        &lt;li class=&quot;icon youtube&quot;&gt;
          &lt;span class=&quot;tooltip&quot;&gt;Youtube&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa fa-youtube&quot;&gt;&lt;/i&gt;&lt;/span&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/social-media-icon-with-pop-up-effect-example/">Social Media Icon With pop-up Effect Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/social-media-icon-with-pop-up-effect-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mouse Move Text Animation Effect Example</title>
		<link>https://codeplaners.com/mouse-move-text-animation-effect-example/</link>
					<comments>https://codeplaners.com/mouse-move-text-animation-effect-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 25 Mar 2023 08:04:26 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[animation effect]]></category>
		<category><![CDATA[CSS and Html]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[mouse move]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1472</guid>

					<description><![CDATA[<p>Hi Dev, Today, i will show you mouse move text animation effect example. This article will give you simple example of mouse move text animation effect example. you will mouse move text animation effect example. In this article, we will implement a mouse move text animation effect example. So, let’s follow few steps to create &#8230; <a href="https://codeplaners.com/mouse-move-text-animation-effect-example/" class="more-link">Continue reading<span class="screen-reader-text"> "Mouse Move Text Animation Effect Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/mouse-move-text-animation-effect-example/">Mouse Move Text Animation Effect Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i will show you mouse move text animation effect example. This article will give you simple example of mouse move text animation effect example. you will mouse move text animation effect example. In this article, we will implement a mouse move text animation effect example. </p>
<p>So, let’s follow few steps to create example of mouse move text animation effect example.</p>
<h3 class="step_code">Example</h3>
<p><strong>index.html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Mouse Move Text Animation Effects Example - codeplaners&lt;/title&gt;
    &lt;style&gt;
        
main {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background-color: #d3f6db;
}

.animated-text {
  font-family: &quot;Arial Black&quot;, Arial, sans-serif;
  font-weight: 900;
  font-size: 24vh;
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-image: radial-gradient(#772d8b, #d3f6db 90%);
  background-repeat: no-repeat;
  background-size: 600% 600%;
  background-position: 50% 50%;
}
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
   &lt;div class=&quot;main&quot;&gt;
     &lt;div class=&quot;animated-text&quot;&gt;
    CODE&lt;br/&gt;PLANERS
    &lt;/div&gt;
   &lt;/div&gt;

   &lt;script&gt;
    let textEl;

document.addEventListener('DOMContentLoaded', (e) =&gt; {
  textEl = document.querySelector('.animated-text');
});

//  ----

function onMouseMove(e) {
  const xRatio = e.x/window.innerWidth;
  const yRatio = e.y/window.innerHeight;
  
  const xPerc = 100 - (xRatio * 100);
  const yPerc = 100 - (yRatio * 100);
  
  textEl.style.backgroundPosition = `${xPerc}% ${yPerc}%`;
}

// If copying, throttle onMouseMove
window.addEventListener('mousemove', onMouseMove);

   &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/mouse-move-text-animation-effect-example/">Mouse Move Text Animation Effect Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/mouse-move-text-animation-effect-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Login Form CSS and Html Example</title>
		<link>https://codeplaners.com/login-form-css-and-html-example/</link>
					<comments>https://codeplaners.com/login-form-css-and-html-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 09:30:36 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[animated CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS and Html]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Login Form]]></category>
		<category><![CDATA[Login Form CSS and Html]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1468</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you Login Form CSS and Html example. This article will give you simple example of Login Form CSS and Html example. you will Login Form CSS and Html example. In this article, we will implement a Login Form CSS and Html example. So, let’s follow few steps to &#8230; <a href="https://codeplaners.com/login-form-css-and-html-example/" class="more-link">Continue reading<span class="screen-reader-text"> "Login Form CSS and Html Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/login-form-css-and-html-example/">Login Form CSS and Html Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you Login Form CSS and Html example. This article will give you simple example of Login Form CSS and Html example. you will Login Form CSS and Html example. In this article, we will implement a Login Form CSS and Html example. </p>
<p>So, let’s follow few steps to create example of Login Form CSS and Html example.</p>
<h3 class="step_code">Example</h3>
<p><strong>index.html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Login Form CSS and Html example - codeplaners&lt;/title&gt;
&lt;style&gt;
    html {
  height: 100%;
}
body {
  margin:0;
  padding:0;
  font-family: sans-serif;
  background: linear-gradient(#141e30, #243b55);
}

.login-box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  padding: 40px;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,.5);
  box-sizing: border-box;
  box-shadow: 0 15px 25px rgba(0,0,0,.6);
  border-radius: 10px;
}

.login-box h2 {
  margin: 0 0 30px;
  padding: 0;
  color: #fff;
  text-align: center;
}

.login-box .user-box {
  position: relative;
}

.login-box .user-box input {
  width: 100%;
  padding: 10px 0;
  font-size: 16px;
  color: #fff;
  margin-bottom: 30px;
  border: none;
  border-bottom: 1px solid #fff;
  outline: none;
  background: transparent;
}
.login-box .user-box label {
  position: absolute;
  top:0;
  left: 0;
  padding: 10px 0;
  font-size: 16px;
  color: #fff;
  pointer-events: none;
  transition: .5s;
}

.login-box .user-box input:focus ~ label,
.login-box .user-box input:valid ~ label {
  top: -20px;
  left: 0;
  color: #f49003;
  font-size: 12px;
}

.login-box form a {
  position: relative;
  display: inline-block;
  padding: 10px 20px;
  color: #f49003;
  font-size: 16px;
  text-decoration: none;
  text-transform: uppercase;
  overflow: hidden;
  transition: .5s;
  margin-top: 40px;
  letter-spacing: 4px
}

.login-box a:hover {
  background: #f49003;
  color: #fff;
  border-radius: 5px;
  box-shadow: 0 0 5px #f49003,
              0 0 25px #f49003,
              0 0 50px #f49003,
              0 0 100px #f49003;
}

.login-box a span {
  position: absolute;
  display: block;
}

.login-box a span:nth-child(1) {
  top: 0;
  left: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f49003);
  animation: btn-anim1 1s linear infinite;
}

@keyframes btn-anim1 {
  0% {
    left: -100%;
  }
  50%,100% {
    left: 100%;
  }
}

.login-box a span:nth-child(2) {
  top: -100%;
  right: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg, transparent, #f49003);
  animation: btn-anim2 1s linear infinite;
  animation-delay: .25s
}

@keyframes btn-anim2 {
  0% {
    top: -100%;
  }
  50%,100% {
    top: 100%;
  }
}

.login-box a span:nth-child(3) {
  bottom: 0;
  right: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(270deg, transparent, #f49003);
  animation: btn-anim3 1s linear infinite;
  animation-delay: .5s
}

@keyframes btn-anim3 {
  0% {
    right: -100%;
  }
  50%,100% {
    right: 100%;
  }
}

.login-box a span:nth-child(4) {
  bottom: -100%;
  left: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(360deg, transparent, #f49003);
  animation: btn-anim4 1s linear infinite;
  animation-delay: .75s
}

@keyframes btn-anim4 {
  0% {
    bottom: -100%;
  }
  50%,100% {
    bottom: 100%;
  }
}

&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;div class=&quot;login-box&quot;&gt;
  &lt;h2&gt;Login&lt;/h2&gt;
  &lt;form&gt;
    &lt;div class=&quot;user-box&quot;&gt;
      &lt;input type=&quot;text&quot; name=&quot;&quot; required=&quot;&quot;&gt;
      &lt;label&gt;Username&lt;/label&gt;
    &lt;/div&gt;
    &lt;div class=&quot;user-box&quot;&gt;
      &lt;input type=&quot;password&quot; name=&quot;&quot; required=&quot;&quot;&gt;
      &lt;label&gt;Password&lt;/label&gt;
    &lt;/div&gt;
    &lt;a href=&quot;#&quot;&gt;
      &lt;span&gt;&lt;/span&gt;
      &lt;span&gt;&lt;/span&gt;
      &lt;span&gt;&lt;/span&gt;
      &lt;span&gt;&lt;/span&gt;
      Submit
    &lt;/a&gt;
  &lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/login-form-css-and-html-example/">Login Form CSS and Html Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/login-form-css-and-html-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Clock In Javascript Example</title>
		<link>https://codeplaners.com/clock-in-javascript-example/</link>
					<comments>https://codeplaners.com/clock-in-javascript-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 09:17:15 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1465</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you Clock In Javascript Example. This article will give you simple example of Clock In Javascript Example. you will Clock In Javascript Example. In this article, we will implement a Clock In Javascript Example. So, let’s follow few steps to create example of Clock In Javascript Example. Example &#8230; <a href="https://codeplaners.com/clock-in-javascript-example/" class="more-link">Continue reading<span class="screen-reader-text"> "Clock In Javascript Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/clock-in-javascript-example/">Clock In Javascript Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you Clock In Javascript Example. This article will give you simple example of Clock In Javascript Example. you will Clock In Javascript Example. In this article, we will implement a Clock In Javascript Example. </p>
<p>So, let’s follow few steps to create example of Clock In Javascript Example.</p>
<h3 class="step_code">Example</h3>
<p><strong>index.html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot; &gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Clock In Javascript Example - codeplaners&lt;/title&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, viewport-fit=cover&quot;&gt;
  &lt;link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=DM+Sans&amp;amp;display=swap'&gt;
 &lt;style&gt;
    * {
	border: 0;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
:root {
	--hue: 223;
	--bg: hsl(var(--hue),90%,90%);
	--fg: hsl(var(--hue),10%,10%);
	--primary: hsl(var(--hue),90%,55%);
	--trans-dur: 0.3s;
	font-size: calc(16px + (20 - 16) * (100vw - 320px) / (1280 - 320));
}
body {
	background-color: var(--bg);
	color: var(--fg);
	font: 1em/1.5 &quot;DM Sans&quot;, sans-serif;
	height: 100vh;
	display: grid;
	place-items: center;
	transition:
		background-color var(--trans-dur),
		color var(--trans-dur);
}

.clock {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: center;
}
.clock__block {
	background-color: hsl(var(--hue),10%,90%);
	border-radius: 0.5rem;
	box-shadow: 0 1rem 2rem hsla(var(--hue),90%,50%,0.3);
	font-size: 3em;
	line-height: 2;
	margin: 0.75rem;
	overflow: hidden;
	text-align: center;
	width: 6rem;
	height: 6rem;
	transition:
		background-color var(--trans-dur),
		box-shadow var(--trans-dur);
}
.clock__block--small {
	border-radius: 0.25rem;
	box-shadow: 0 0.5rem 2rem hsla(var(--hue),90%,50%,0.3);
	font-size: 1em;
	line-height: 3;
	width: 3rem;
	height: 3rem;
}
.clock__colon {
	display: none;
	font-size: 2em;
	opacity: 0.5;
	position: relative;
}
.clock__colon:before,
.clock__colon:after {
	background-color: currentColor;
	border-radius: 50%;
	content: &quot;&quot;;
	display: block;
	position: absolute;
	top: -0.05em;
	left: -0.05em;
	width: 0.1em;
	height: 0.1em;
	transition: background-color var(--trans-dur);
}
.clock__colon:before {
	transform: translateY(-200%);
}
.clock__colon:after {
	transform: translateY(200%);	
}
.clock__digit-group {
	display: flex;
	flex-direction: column-reverse;
}
.clock__digits {
	width: 100%;
	height: 100%;
}
.clock__block--bounce {
	animation: bounce 0.75s; 
}
.clock__block--bounce .clock__digit-group {
	animation: roll 0.75s ease-in-out forwards; 
	transform: translateY(-50%);
}
.clock__block--delay1,
.clock__block--delay1 .clock__digit-group {
	animation-delay: 0.1s;
}
.clock__block--delay2,
.clock__block--delay2 .clock__digit-group {
	animation-delay: 0.2s;
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
	:root {
		--bg: hsl(var(--hue),10%,10%);
		--fg: hsl(var(--hue),10%,90%);
	}
	.clock__block {
		background-color: hsl(var(--hue),90%,40%);
		box-shadow: 0 1rem 2rem hsla(var(--hue),90%,60%,0.4);
	}
	.clock__block--small {
		box-shadow: 0 0.5rem 2rem hsla(var(--hue),90%,60%,0.4);
	}
}

/* Beyond mobile */
@media (min-width: 768px) {
	.clock {
		flex-direction: row;
	}
	.clock__colon {
		display: inherit;
	}
}

/* Animations */
@keyframes bounce {
	from,
	to {
		animation-timing-function: ease-in;
		transform: translateY(0);
	}
	50% {
		animation-timing-function: ease-out;
		transform: translateY(15%);
	}
}
@keyframes roll {
	from {
		transform: translateY(-50%);
	}
	to {
		transform: translateY(0);
	}
}
 &lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;!-- partial:index.partial.html --&gt;
&lt;div class=&quot;clock&quot; aria-label=&quot;00:00:00 AM&quot;&gt;
	&lt;div class=&quot;clock__block clock__block--delay2&quot; aria-hidden=&quot;true&quot; data-time-group&gt;
		&lt;div class=&quot;clock__digit-group&quot;&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;a&quot;&gt;00&lt;/div&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;b&quot;&gt;00&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;clock__colon&quot;&gt;&lt;/div&gt;
	&lt;div class=&quot;clock__block clock__block--delay1&quot; aria-hidden=&quot;true&quot; data-time-group&gt;
		&lt;div class=&quot;clock__digit-group&quot;&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;a&quot;&gt;00&lt;/div&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;b&quot;&gt;00&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;clock__colon&quot;&gt;&lt;/div&gt;
	&lt;div class=&quot;clock__block&quot; aria-hidden=&quot;true&quot; data-time-group&gt;
		&lt;div class=&quot;clock__digit-group&quot;&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;a&quot;&gt;00&lt;/div&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;b&quot;&gt;00&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;clock__block clock__block--delay2 clock__block--small&quot; aria-hidden=&quot;true&quot; data-time-group&gt;
		&lt;div class=&quot;clock__digit-group&quot;&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;a&quot;&gt;PM&lt;/div&gt;
			&lt;div class=&quot;clock__digits&quot; data-time=&quot;b&quot;&gt;AM&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;!-- partial --&gt;
 &lt;script&gt;
    window.addEventListener(&quot;DOMContentLoaded&quot;,() =&gt; {
	const clock = new BouncyBlockClock(&quot;.clock&quot;);
});

class BouncyBlockClock {
	constructor(qs) {
		this.el = document.querySelector(qs);
		this.time = { a: &#x5B;], b: &#x5B;] };
		this.rollClass = &quot;clock__block--bounce&quot;;
		this.digitsTimeout = null;
		this.rollTimeout = null;
		this.mod = 0 * 60 * 1000;

		this.loop();
	}
	animateDigits() {
		const groups = this.el.querySelectorAll(&quot;&#x5B;data-time-group]&quot;);

		Array.from(groups).forEach((group,i) =&gt; {
			const { a, b } = this.time;

			if (a&#x5B;i] !== b&#x5B;i]) group.classList.add(this.rollClass);
		});

		clearTimeout(this.rollTimeout);
		this.rollTimeout = setTimeout(this.removeAnimations.bind(this),900);
	}
	displayTime() {
		// screen reader time
		const timeDigits = &#x5B;...this.time.b];
		const ap = timeDigits.pop();

		this.el.ariaLabel = `${timeDigits.join(&quot;:&quot;)} ${ap}`;

		// displayed time
		Object.keys(this.time).forEach(letter =&gt; {
			const letterEls = this.el.querySelectorAll(`&#x5B;data-time=&quot;${letter}&quot;]`);

			Array.from(letterEls).forEach((el,i) =&gt; {
				el.textContent = this.time&#x5B;letter]&#x5B;i];
			});
		});
	}
	loop() {
		this.updateTime();
		this.displayTime();
		this.animateDigits();
		this.tick();
	}
	removeAnimations() {
		const groups = this.el.querySelectorAll(&quot;&#x5B;data-time-group]&quot;);
	
		Array.from(groups).forEach(group =&gt; {
			group.classList.remove(this.rollClass);
		});
	}
	tick() {
		clearTimeout(this.digitsTimeout);
		this.digitsTimeout = setTimeout(this.loop.bind(this),1e3);	
	}
	updateTime() {
		const rawDate = new Date();
		const date = new Date(Math.ceil(rawDate.getTime() / 1e3) * 1e3 + this.mod);
		let h = date.getHours();
		const m = date.getMinutes();
		const s = date.getSeconds();
		const ap = h &lt; 12 ? &quot;AM&quot; : &quot;PM&quot;;

		if (h === 0) h = 12;
		if (h &gt; 12) h -= 12;

		this.time.a = &#x5B;...this.time.b];
		this.time.b = &#x5B;
			(h &lt; 10 ? `0${h}` : `${h}`),
			(m &lt; 10 ? `0${m}` : `${m}`),
			(s &lt; 10 ? `0${s}` : `${s}`),
			ap
		];

		if (!this.time.a.length) this.time.a = &#x5B;...this.time.b];
	}
}
 &lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;

</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/clock-in-javascript-example/">Clock In Javascript Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/clock-in-javascript-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to create JavaScript Quiz Example</title>
		<link>https://codeplaners.com/how-to-create-javascript-quiz-example/</link>
					<comments>https://codeplaners.com/how-to-create-javascript-quiz-example/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 10 Feb 2023 03:40:06 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript Quiz]]></category>
		<category><![CDATA[Source Code]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1459</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you How to create JavaScript Quiz Example. This article will give you simple example of How to create JavaScript Quiz Example. you will How to create JavaScript Quiz Example. In this article, we will implement a How to create JavaScript Quiz Example. So, let’s follow few steps to &#8230; <a href="https://codeplaners.com/how-to-create-javascript-quiz-example/" class="more-link">Continue reading<span class="screen-reader-text"> "How to create JavaScript Quiz Example"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-create-javascript-quiz-example/">How to create JavaScript Quiz Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you How to create JavaScript Quiz Example. This article will give you simple example of How to create JavaScript Quiz Example. you will How to create JavaScript Quiz Example. In this article, we will implement a How to create JavaScript Quiz Example. </p>
<p>So, let’s follow few steps to create example of How to create JavaScript Quiz Example.</p>
<h3 class="step_code">Example</h3>
<p><strong>index.html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Codeplaners Quiz&lt;/title&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot;&gt;

&lt;/head&gt;
&lt;body&gt;
	&lt;div class=&quot;wrapper&quot;&gt;
           &lt;div class=&quot;question&quot; id=&quot;questionBox&quot;&gt;
           	
           &lt;/div&gt;
           
           &lt;div class=&quot;options&quot;&gt;
           	  &lt;ul id=&quot;ul&quot;&gt;
           	  	  &lt;li id=&quot;op1&quot; onclick=&quot;button(this)&quot;&gt;&lt;/li&gt;
           	  	  &lt;li id=&quot;op2&quot; onclick=&quot;button(this)&quot;&gt;&lt;/li&gt;
           	  	  &lt;li id=&quot;op3&quot; onclick=&quot;button(this)&quot;&gt;&lt;/li&gt;
           	  	  &lt;li id=&quot;op4&quot; onclick=&quot;button(this)&quot;&gt;&lt;/li&gt;
           	  &lt;/ul&gt;
           &lt;/div&gt;
           &lt;div class=&quot;score&quot;&gt;
           	   &lt;div class=&quot;next&quot;&gt;
           	   	  &lt;button type=&quot;button&quot; onclick=&quot;next()&quot; id=&quot;button&quot;&gt;Next&lt;/button&gt;
           	   &lt;/div&gt;
           	   &lt;div class=&quot;score-card&quot;&gt;
           	   	  Score : &lt;span id=&quot;scoreCard&quot;&gt;0&lt;/span&gt;
           	   &lt;/div&gt;
               &lt;div class=&quot;back&quot;&gt;
                  &lt;button type=&quot;button&quot; onclick=&quot;back()&quot; id=&quot;button&quot;&gt;Back&lt;/button&gt;
               &lt;/div&gt;
                &lt;div class=&quot;restart&quot;&gt;
                  &lt;button type=&quot;button&quot; onclick=&quot;restart()&quot; id=&quot;button&quot;&gt;Restart&lt;/button&gt;
               &lt;/div&gt;
           &lt;/div&gt;


	&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  function restart(){
    location.reload();
  }
&lt;/script&gt;


&lt;script type=&quot;text/javascript&quot;&gt;
     
   var ul=document.getElementById('ul');
   var btn=document.getElementById('button');
   var scoreCard=document.getElementById('scoreCard');
   var quizBox=document.getElementById('questionBox');
  var op1=document.getElementById('op1');
  var op2=document.getElementById('op2');
  var op3=document.getElementById('op3');
  var op4=document.getElementById('op4');

  

      var app={
                questions:&#x5B;
                          {q:'What does the abbreviation HTML stand for?', options:&#x5B;'Hyper Text Markup Language','High Text Markup Language','Hyper Tabular Markup Language','None of these'],answer:1},
                          {q:'Correct HTML tag for the largest heading is ?',options:&#x5B;'h4','h1','h8','h9'],answer:2},

                          {q:'How many sizes of headers are available in HTML by default?',options:&#x5B;'5','1','3','6'],answer:4},

                          {q:'What is the smallest header in HTML by default?',options:&#x5B;'h1','h6','h3','h4'],answer:2},

                          {q:'How do you select an element with id &quot;demo&quot;?', options:&#x5B;'*demo','#demo','demo','.demo'],answer:2},
                         
                          ],
                index:0,
                load:function(){
                     if(this.index&lt;=this.questions.length-1){
                        quizBox.innerHTML=this.index+1+&quot;. &quot;+this.questions&#x5B;this.index].q;      
                        op1.innerHTML=this.questions&#x5B;this.index].options&#x5B;0];
                        op2.innerHTML=this.questions&#x5B;this.index].options&#x5B;1];
                        op3.innerHTML=this.questions&#x5B;this.index].options&#x5B;2];
                        op4.innerHTML=this.questions&#x5B;this.index].options&#x5B;3];
                           this.scoreCard();
                        }
                        else{

                        quizBox.innerHTML=&quot;Quiz Over......!!!&quot;      
                        op1.style.display=&quot;none&quot;;
                        op2.style.display=&quot;none&quot;;
                        op3.style.display=&quot;none&quot;;
                        op4.style.display=&quot;none&quot;;
                        btn.style.display=&quot;none&quot;;
                        }
                },
                 next:function(){
                    this.index++;
                    this.load();
                 },

                  back:function(){
                    this.index--;
                    this.load();
                 },
                check:function(ele){
                   
                         var id=ele.id.split('');
                         
                         if(id&#x5B;id.length-1]==this.questions&#x5B;this.index].answer){
                          this.score++;
                          ele.className=&quot;correct&quot;;
                          ele.innerHTML=&quot;Correct&quot;;
                          this.scoreCard();
                         }
                         else{
                          ele.className=&quot;wrong&quot;;
                          ele.innerHTML=&quot;Wrong&quot;;
                         }
                },
                notClickAble:function(){
                       for(let i=0;i&lt;ul.children.length;i++){
                            ul.children&#x5B;i].style.pointerEvents=&quot;none&quot;;
                       }
                },

                clickAble:function(){
                       for(let i=0;i&lt;ul.children.length;i++){
                            ul.children&#x5B;i].style.pointerEvents=&quot;auto&quot;;
                            ul.children&#x5B;i].className=''

                       }
                },
                score:0,
                scoreCard:function(){
                  scoreCard.innerHTML=this.questions.length+&quot;/&quot;+this.score;
                }
 
           }


           window.onload=app.load();

           function button(ele){
                 app.check(ele);
                 app.notClickAble();
           }

         function  next(){
              app.next();
              app.clickAble();
         } 

             function  back(){
              app.back();
              app.clickAble();
         } 

&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>style.css</strong></p>
<pre class="brush: css; title: ; notranslate">
 body{
  background-color: #fff;
  margin:0;
  padding:0;
}
*{
  box-sizing: border-box;
  font-family: sans-serif;
}

.wrapper{
  height: 450px;
  width: 650px;
  background-color: white;
  margin:50px auto;
  border-radius: 8px;
  margin-top: 150px;

}

.wrapper .question{
  padding: 15px;
  background-color:#673ab7;
  border-radius: 8px;
  color:#ffffff;
  font-size:20px;
  float: left;
  width: 100%;

}
.wrapper .options{
  float: left;
  width: 100%;
}

.wrapper .options ul{
  list-style: none;
  padding: 0px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.wrapper .options ul li{
  display: inline-block;
  background-color:#000;
  width: 47%;
  padding: 15px;
  border-radius:8px;
  margin-top: 25px;
  font-size: 15px;
  color:#ffffff;
  box-shadow: 0px 3px 0px grey;
  cursor: pointer;
  outline: none;
  text-align: center;
}
.wrapper .options ul li:active{
  box-shadow: 0px 3px 0px transparent;  

}
.wrapper .options ul li.correct{
  background-color: #0fd40f;
  box-shadow: 0px 3px 0px #03a503;
}

.wrapper .options ul li.wrong{
  background-color: #e91e1e;
  box-shadow: 0px 3px 0px #cb0b0b;
}

.wrapper .score{
  float: left;
  width: 100%;
  padding:25px 0px;
}

.wrapper .score .next{
  width: 35%;
  float: right;
}
.wrapper .score .next button{
  padding: 15px 80px;
  color:white;
  background-color:#00b0ff;
  border:none;
  border-radius:8px;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0px 3px 0px #00b0ff;
  outline: none;
}
.wrapper .score .next button:active{
box-shadow: 0px 3px 0px transparent;  
}



.wrapper .score .back{
  width: 35%;
  float: center;
}
.wrapper .score .back button{
  padding: 15px 80px;
  color:white;
  background-color:#00b0ff;
  border:none;
  border-radius:8px;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0px 3px 0px #00b0ff;
  outline: none;
}
.wrapper .score .back button:active{
box-shadow: 0px 3px 0px transparent;  
}


.wrapper .score .restart{
  width: 1%;
  float: right;
  margin-top: 30px;
}
.wrapper .score .restart button{
  padding: 15px 64px;
  color:white;
  background-color:red;
  border:none;
  border-radius:8px;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0px 3px 0px #c97a06;
  outline: none;

}
.wrapper .score .restart button:active{
box-shadow: 0px 3px 0px transparent;  
}



.wrapper .score .score-card{
  width: 30%;
  float: right;
}
.wrapper .score .score-card{
  font-size: 20px;
  color:black;
  line-height: 50px;
  text-transform: uppercase;

}
.wrapper .score .score-card span{
  background-color: #4caf50;
  padding: 5px 15px;
  border-radius: 8px;
  color:#ffffff;

}
</pre>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-create-javascript-quiz-example/">How to create JavaScript Quiz Example</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/how-to-create-javascript-quiz-example/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to auto submit the form by the select option</title>
		<link>https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/</link>
					<comments>https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 14 Jul 2022 05:15:46 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ja]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1435</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you How to auto submit the form by the select option. This article will give you simple example of How to auto submit the form by the select option. you will How to auto submit the form by the select option. In this article, we will implement a &#8230; <a href="https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/" class="more-link">Continue reading<span class="screen-reader-text"> "How to auto submit the form by the select option"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/">How to auto submit the form by the select option</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you How to auto submit the form by the select option. This article will give you simple example of How to auto submit the form by the select option. you will How to auto submit the form by the select option. In this article, we will implement a How to auto submit the form by the select option. </p>
<p>So let’s follow few step to create example of How to auto submit the form by the select option.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;form action=&quot;https://codeplaners.com/&quot; method=&quot;POST&quot;&gt;
  &lt;select name=&quot;myselect&quot; id=&quot;myselect&quot; onchange=&quot;this.form.submit()&quot;&gt;
      &lt;option value=&quot;1&quot;&gt;One&lt;/option&gt;
      &lt;option value=&quot;2&quot;&gt;Two&lt;/option&gt;
      &lt;option value=&quot;3&quot;&gt;Three&lt;/option&gt;
      &lt;option value=&quot;4&quot;&gt;Four&lt;/option&gt;
  &lt;/select&gt;
&lt;/form&gt;
</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/">How to auto submit the form by the select option</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/how-to-auto-submit-the-form-by-the-select-option/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Disable Resizable Property Of Textarea Using CSS</title>
		<link>https://codeplaners.com/disable-resizable-property-of-textarea-using-css/</link>
					<comments>https://codeplaners.com/disable-resizable-property-of-textarea-using-css/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 09 Apr 2022 06:08:55 +0000</pubDate>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1431</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you disable resizable property of textarea using CSS. This article will give you simple example of disable resizable property of textarea using CSS. you will disable resizable property of textarea using CSS. In this article, we will implement a disable resizable property of textarea using CSS. So let’s &#8230; <a href="https://codeplaners.com/disable-resizable-property-of-textarea-using-css/" class="more-link">Continue reading<span class="screen-reader-text"> "Disable Resizable Property Of Textarea Using CSS"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/disable-resizable-property-of-textarea-using-css/">Disable Resizable Property Of Textarea Using CSS</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you disable resizable property of textarea using CSS. This article will give you simple example of disable resizable property of textarea using CSS. you will disable resizable property of textarea using CSS. In this article, we will implement a disable resizable property of textarea using CSS. </p>
<p>So let’s follow few step to create example of disable resizable property of textarea using CSS.</p>
<h3 class="step_code">Example 1</h3>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;title&gt;Remove Textarea Resizing&lt;/title&gt;
&lt;style&gt;
    textarea {
        resize: none;
    }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;textarea&gt;&lt;/textarea&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/disable-resizable-property-of-textarea-using-css/">Disable Resizable Property Of Textarea Using CSS</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/disable-resizable-property-of-textarea-using-css/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How To Create DataTable In Bootstrap</title>
		<link>https://codeplaners.com/how-to-create-datatable-in-bootstrap/</link>
					<comments>https://codeplaners.com/how-to-create-datatable-in-bootstrap/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 10 Feb 2022 12:03:23 +0000</pubDate>
				<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[DataTable]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://codeplaners.com/?p=1399</guid>

					<description><![CDATA[<p>Hi Dev, Today, i we will show you how to create DataTable in bootstrap. This article will give you simple example of how to create DataTable in bootstrap. you will how to create DataTable in bootstrap. In this article, we will implement a how to create DataTable in bootstrap. So let’s follow few step to &#8230; <a href="https://codeplaners.com/how-to-create-datatable-in-bootstrap/" class="more-link">Continue reading<span class="screen-reader-text"> "How To Create DataTable In Bootstrap"</span></a></p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-create-datatable-in-bootstrap/">How To Create DataTable In Bootstrap</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>Today, i we will show you how to create DataTable in bootstrap. This article will give you simple example of how to create DataTable in bootstrap. you will how to create DataTable in bootstrap. In this article, we will implement a how to create DataTable in bootstrap. </p>
<p>So let’s follow few step to create example of how to create DataTable in bootstrap.</p>
<p><img decoding="async" style="border: 3px solid #ff5722;" src="https://codeplaners.com/wp-content/uploads/2022/02/datatable.png" alt="How To Create DataTable In Bootstrap" ></p>
<h3 class="step_code">Example</h3>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
	&lt;title&gt; How To Create DataTable In Bootstrap&lt;/title&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.css&quot; &gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap4.min.css&quot; &gt;
	
&lt;/head&gt;

&lt;body&gt;
   
	
    &lt;div class=&quot;container&quot; style=&quot;padding: 20px 0 0;&quot;&gt;
        &lt;table id=&quot;example&quot; class=&quot;table table-striped table-bordered&quot; style=&quot;width:100%&quot;&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th&gt;Name&lt;/th&gt;
                    &lt;th&gt;Position&lt;/th&gt;
                    &lt;th&gt;Office&lt;/th&gt;
                    &lt;th&gt;Age&lt;/th&gt;
                    &lt;th&gt;Start date&lt;/th&gt;
                    &lt;th&gt;Salary&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td&gt;Tiger Nixon&lt;/td&gt;
                    &lt;td&gt;System Architect&lt;/td&gt;
                    &lt;td&gt;Edinburgh&lt;/td&gt;
                    &lt;td&gt;61&lt;/td&gt;
                    &lt;td&gt;2011/04/25&lt;/td&gt;
                    &lt;td&gt;$320,800&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;Garrett Winters&lt;/td&gt;
                    &lt;td&gt;Accountant&lt;/td&gt;
                    &lt;td&gt;Tokyo&lt;/td&gt;
                    &lt;td&gt;63&lt;/td&gt;
                    &lt;td&gt;2011/07/25&lt;/td&gt;
                    &lt;td&gt;$170,750&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;Ashton Cox&lt;/td&gt;
                    &lt;td&gt;Junior Technical Author&lt;/td&gt;
                    &lt;td&gt;San Francisco&lt;/td&gt;
                    &lt;td&gt;66&lt;/td&gt;
                    &lt;td&gt;2009/01/12&lt;/td&gt;
                    &lt;td&gt;$86,000&lt;/td&gt;
                &lt;/tr&gt;
               
            &lt;/tbody&gt;
            &lt;tfoot&gt;
                &lt;tr&gt;
                    &lt;th&gt;Name&lt;/th&gt;
                    &lt;th&gt;Position&lt;/th&gt;
                    &lt;th&gt;Office&lt;/th&gt;
                    &lt;th&gt;Age&lt;/th&gt;
                    &lt;th&gt;Start date&lt;/th&gt;
                    &lt;th&gt;Salary&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/tfoot&gt;
        &lt;/table&gt;
    &lt;/div&gt;
    
	&lt;script src=&quot;https://code.jquery.com/jquery-3.5.1.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;https://cdn.datatables.net/1.11.3/js/dataTables.bootstrap4.min.js&quot;&gt;&lt;/script&gt;

	&lt;script&gt;

		$(document).ready(function() {
			$('#example').DataTable();
		} );
	&lt;/script&gt;

&lt;/body&gt;

&lt;/html&gt;


</pre>
<p>I hope it will assist you…</p>
<p>The post <a rel="nofollow" href="https://codeplaners.com/how-to-create-datatable-in-bootstrap/">How To Create DataTable In Bootstrap</a> appeared first on <a rel="nofollow" href="https://codeplaners.com">Codeplaners</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codeplaners.com/how-to-create-datatable-in-bootstrap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
