<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82%D1%8B_Tailwind</id>
	<title>Сниппеты Tailwind - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82%D1%8B_Tailwind"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82%D1%8B_Tailwind&amp;action=history"/>
	<updated>2026-10-12T09:34:35Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82%D1%8B_Tailwind&amp;diff=881&amp;oldid=prev</id>
		<title>&gt;Zina: /* Виджет */</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82%D1%8B_Tailwind&amp;diff=881&amp;oldid=prev"/>
		<updated>2022-10-16T19:21:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Виджет&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;← [[Tailwind]]&lt;br /&gt;
&lt;br /&gt;
== Hamburger Menu ==&lt;br /&gt;
&lt;br /&gt;
=== SVG ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;flex items-center&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;button class=&amp;quot;outline-none&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;svg&lt;br /&gt;
      class=&amp;quot;w-10 h-10 text-gray-500&amp;quot;&lt;br /&gt;
      x-show=&amp;quot;!showMenu&amp;quot;&lt;br /&gt;
      fill=&amp;quot;none&amp;quot;&lt;br /&gt;
      stroke-linecap=&amp;quot;round&amp;quot;&lt;br /&gt;
      stroke-linejoin=&amp;quot;round&amp;quot;&lt;br /&gt;
      stroke-width=&amp;quot;2&amp;quot;&lt;br /&gt;
      viewBox=&amp;quot;0 0 24 24&amp;quot;&lt;br /&gt;
      stroke=&amp;quot;currentColor&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
      &amp;lt;path d=&amp;quot;M4 6h16M4 12h16M4 18h16&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;/svg&amp;gt;&lt;br /&gt;
  &amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Источник: [https://www.section.io/engineering-education/creating-a-responsive-navigation-bar-using-tailwind-css-and-javascript/ Creating a Responsive Navigation bar Using Tailwind CSS and Javascript]&lt;br /&gt;
&lt;br /&gt;
=== CSS классами Tailwind ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Анимация 1 --&amp;gt;&lt;br /&gt;
  &amp;lt;button class=&amp;quot;hover:border-gray-500 hover:text-gray-500 w-14 h-12 text-gray-500 duration-200 border-2 border-white rounded&amp;quot; click.prevent=&amp;quot;toggle&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded transform duration-300&amp;quot; :class=&amp;quot;{ &amp;#039;rotate-45 translate-y-2.5&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded duration-200&amp;quot; :class=&amp;quot;{ &amp;#039;opacity-0&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded transform duration-300&amp;quot; :class=&amp;quot;{ &amp;#039;-rotate-45 -translate-y-2.5&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Анимация 2 --&amp;gt;&lt;br /&gt;
  &amp;lt;button &lt;br /&gt;
    class=&amp;quot;w-12 h-12 text-gray-500 transition-all duration-300 ease-in-out border-4 border-solid&amp;quot;&lt;br /&gt;
    :class=&amp;quot;[ isBurgerActive ? &amp;#039;transform rotate-45 border-gray-500 rounded-full&amp;#039; : &amp;#039;rounded border-opacity-0&amp;#039; ]&amp;quot;&lt;br /&gt;
    @click.prevent=&amp;quot;toggle&amp;quot;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded transform duration-300 ease-in-out&amp;quot; :class=&amp;quot;{ &amp;#039;w-6 transform translate-y-2.5&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded duration-300&amp;quot; :class=&amp;quot;{ &amp;#039;w-6 opacity-0&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;block w-8 h-1 mx-auto my-1.5 bg-current rounded transform duration-300 ease-in-out&amp;quot; :class=&amp;quot;{ &amp;#039;w-6 -translate-y-2.5 rotate-90&amp;#039; : isBurgerActive }&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
export default {&lt;br /&gt;
  data() {&lt;br /&gt;
    return {&lt;br /&gt;
      isBurgerActive: false,&lt;br /&gt;
    };&lt;br /&gt;
  },&lt;br /&gt;
  methods: {&lt;br /&gt;
    toggle() {&lt;br /&gt;
      this.isBurgerActive = ! this.isBurgerActive;&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример анимаций отсюда: https://codepen.io/RRoberts/pen/ZBYaJr&lt;br /&gt;
&lt;br /&gt;
== Breakpoints ==&lt;br /&gt;
&lt;br /&gt;
* https://tailwindcss.com/docs/breakpoints&lt;br /&gt;
* https://tailwindcss.com/docs/responsive-design&lt;br /&gt;
&lt;br /&gt;
=== Виджет ===&lt;br /&gt;
&lt;br /&gt;
Блок в левом нижнем углу, который показывает активный breakpoint:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Breakpoints Widget --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sm:bg-red-700 md:bg-yellow-700 lg:bg-green-700 xl:bg-blue-700 2xl:bg-purple-700 rounded-tr-md fixed bottom-0 left-0 px-3 py-1 text-sm text-white bg-gray-600&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;sm:hidden&amp;quot;&amp;gt;&amp;amp;lt; 640px&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;sm:inline md:hidden hidden&amp;quot;&amp;gt;SM ≥ 640px&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;md:inline lg:hidden hidden&amp;quot;&amp;gt;MD ≥ 768px&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;lg:inline xl:hidden hidden&amp;quot;&amp;gt;LG ≥ 1024px&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;xl:inline 2xl:hidden hidden&amp;quot;&amp;gt;XL ≥ 1280px&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;2xl:inline hidden&amp;quot;&amp;gt;XL ≥ 1536px&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он же средствами CSS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
body:after {&lt;br /&gt;
  @apply fixed right-0 bottom-0 h-6 px-3 flex justify-center items-center&lt;br /&gt;
  content-[&amp;#039;&amp;lt;_640px&amp;#039;] bg-pink-500&lt;br /&gt;
  sm:content-[&amp;#039;SM&amp;#039;] sm:bg-red-700&lt;br /&gt;
  md:content-[&amp;#039;MD&amp;#039;] md:bg-yellow-700&lt;br /&gt;
  lg:content-[&amp;#039;LG&amp;#039;] lg:bg-green-700&lt;br /&gt;
  xl:content-[&amp;#039;XL&amp;#039;] xl:bg-sky-700&lt;br /&gt;
  2xl:content-[&amp;#039;2XL&amp;#039;] 2xl:bg-purple-700;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Split by Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
* См. также: [https://csswizardry.com/2018/11/css-and-network-performance/ CSS and Network Performance – CSS Wizardry]&lt;br /&gt;
&lt;br /&gt;
Предположительной лучший вариант подключения стилей ([https://github.com/tailwindlabs/tailwindcss/issues/653 обсуждение]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Only load relevant stylesheets when the current screen size requires them --&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;xs.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;sm.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; media=&amp;quot;@media (min-width: 576px)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;md.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; media=&amp;quot;@media (min-width: 768px)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;lg.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; media=&amp;quot;@media (min-width: 992px)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link href=&amp;quot;xl.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; media=&amp;quot;@media (min-width: 1200px)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Решение ([https://github.com/tailwindlabs/discuss/issues/210#issuecomment-464099001 отсюда]):&lt;br /&gt;
&lt;br /&gt;
Updated screens values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
screens: {&lt;br /&gt;
  /* ✅ */ sm: &amp;#039;576px&amp;#039;,&lt;br /&gt;
  /* ✅ */ md: [ { min: &amp;#039;668px&amp;#039;, max: &amp;#039;767px&amp;#039; }, { min: &amp;#039;868px&amp;#039; } ],&lt;br /&gt;
  /* ✅ */ lg: { min: &amp;#039;992px&amp;#039;, max: &amp;#039;1199px&amp;#039; },&lt;br /&gt;
  /* ✅ */ xl: { min: &amp;#039;1200px&amp;#039; },&lt;br /&gt;
  /* ✅ */ xxl: { max: &amp;#039;1920px&amp;#039; },&lt;br /&gt;
  /* ✅ */ print: { raw: &amp;#039;print&amp;#039; },&lt;br /&gt;
  /* ✅ */ dark: { raw: &amp;#039;(prefers-color-scheme: dark)&amp;#039; },&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [https://github.com/SassNinja/postcss-extract-media-query postcss-extract-media-query]:&lt;br /&gt;
&lt;br /&gt;
 npm install postcss-extract-media-query --save-dev&lt;br /&gt;
&lt;br /&gt;
Updated plugin config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
require(&amp;#039;postcss-extract-media-query&amp;#039;)({&lt;br /&gt;
  output: { path: paths.dist, name: &amp;#039;[name]-[query].css&amp;#039; },&lt;br /&gt;
  queries: tailwindScreenQueries(),&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
const tailwindScreenQueries = () =&amp;gt; {&lt;br /&gt;
  const buildQuery = (value) =&amp;gt; {&lt;br /&gt;
    const getMinMaxQuery = (value) =&amp;gt; {&lt;br /&gt;
      return [&lt;br /&gt;
        value.min ? `(min-width: ${value.min})` : null,&lt;br /&gt;
        value.max ? `(max-width: ${value.max})` : null,&lt;br /&gt;
      ].filter(Boolean).join(&amp;#039; and &amp;#039;)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const query = typeof value === &amp;#039;string&amp;#039;&lt;br /&gt;
      ? `(min-width: ${value})`&lt;br /&gt;
      : Array.isArray(value)&lt;br /&gt;
        ? value.map((_value) =&amp;gt; buildQuery(_value)).join(&amp;#039;, &amp;#039;)&lt;br /&gt;
        : value.min || value.max&lt;br /&gt;
          ? getMinMaxQuery(value)&lt;br /&gt;
          : value.raw&lt;br /&gt;
&lt;br /&gt;
    return query&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return Object&lt;br /&gt;
    .entries(require(&amp;#039;../../../tailwind.config.js&amp;#039;).screens)&lt;br /&gt;
    .map(([name, value]) =&amp;gt; ({ [buildQuery(value)]: name }))&lt;br /&gt;
    .reduce((accumulator, value) =&amp;gt; Object.assign(accumulator, value))&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Columns ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/hacknug/tailwindcss-multi-column Multi-column utilities for Tailwind CSS]&lt;/div&gt;</summary>
		<author><name>&gt;Zina</name></author>
	</entry>
</feed>