<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Михаил Юдин</title><link>https://mikhail-yudin.ru/</link><description/><generator>Hugo -- gohugo.io</generator><language>ru</language><lastBuildDate>Mon, 18 Nov 2024 00:00:00 +0000</lastBuildDate><image><url>https://mikhail-yudin.ru//images/brand/favicon.png</url><title>Михаил Юдин</title><link>https://mikhail-yudin.ru/</link></image><atom:link href="https://mikhail-yudin.ru/index.xml" rel="self" type="application/rss+xml"/><item turbo="true"><title>Антидаблклик</title><link>https://mikhail-yudin.ru/notes/antidoubleclick/</link><pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/antidoubleclick/</guid><description>Array.prototype.forEach.call(document.querySelectorAll(&amp;#34;a[href^=&amp;#39;/&amp;#39;],a[href^=&amp;#39;http&amp;#39;],button:not(.allow-dblclick)&amp;#34;), function(el) { el.addEventListener(&amp;#39;click&amp;#39;, function(e) { const a = this; if (a.dataset.dblclick_timer) { console.log(&amp;#39;prevent dblclick&amp;#39;); e.preventDefault(); return; } a.dataset.dblclick_timer = window.setTimeout(function() { delete(a.dataset.dblclick_timer); }, 500); }); });</description><turbo:content><![CDATA[
                    <header>
                        <h1>Антидаблклик</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-javascript" data-lang="javascript"><span style="color:#8be9fd;font-style:italic">Array</span>.prototype.forEach.call(<span style="color:#8be9fd;font-style:italic">document</span>.querySelectorAll(<span style="color:#f1fa8c">&#34;a[href^=&#39;/&#39;],a[href^=&#39;http&#39;],button:not(.allow-dblclick)&#34;</span>), <span style="color:#8be9fd;font-style:italic">function</span>(el) {
  el.addEventListener(<span style="color:#f1fa8c">&#39;click&#39;</span>, <span style="color:#8be9fd;font-style:italic">function</span>(e) {
      <span style="color:#ff79c6">const</span> a <span style="color:#ff79c6">=</span> <span style="color:#ff79c6">this</span>;
      <span style="color:#ff79c6">if</span> (a.dataset.dblclick_timer) {
          console.log(<span style="color:#f1fa8c">&#39;prevent dblclick&#39;</span>);
          e.preventDefault();
          <span style="color:#ff79c6">return</span>;
      }
      a.dataset.dblclick_timer <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">window</span>.setTimeout(<span style="color:#8be9fd;font-style:italic">function</span>() {
          <span style="color:#ff79c6">delete</span>(a.dataset.dblclick_timer);
      }, <span style="color:#bd93f9">500</span>);
  });
});
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Сигналы для калибровки приёмников</title><link>https://mikhail-yudin.ru/notes/signaly-dlya-kalibrovki-priemnika/</link><pubDate>Sat, 24 Aug 2024 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/signaly-dlya-kalibrovki-priemnika/</guid><description> 4 996, 9 996, 14 996 кГц - когда идёт ровная несущая в авиа диапазоне АТИС в АМ вещает. частоты кратны 12.5 кГц грубая калибровка возможна по вещательным FM станциям в диапазоне 88-108 МГц. Частота у станций кратна 100 кГц</description><turbo:content><![CDATA[
                    <header>
                        <h1>Сигналы для калибровки приёмников</h1></header>
                    <div class='entry-content'>
                            <ul>
<li>4 996, 9 996, 14 996 кГц - когда идёт ровная несущая</li>
<li>в авиа диапазоне АТИС в АМ вещает. частоты кратны 12.5 кГц</li>
<li>грубая калибровка возможна по вещательным FM станциям в диапазоне 88-108 МГц. Частота у станций кратна 100 кГц</li>
</ul>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Внутренности плеера Explay L88</title><link>https://mikhail-yudin.ru/blog/hardware/explay-l88-internals/</link><pubDate>Tue, 23 Jul 2024 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/hardware/explay-l88-internals/</guid><description>Разобрал плеер, вдруг кому нужно.
Разборка Лицевая сторона держится на двустороннем скотче и четырёх защёлках.
Далее откручиваем крестовой отвёрткой 6 винтов и откидываем основную часть корпуса.
Аккуратно отодвигаем у платы защёлки и освобождаем плату.
Внутренности Аккумулятор промаркирован: REC 301945P, 11YG2803. Размеры: 45мм x 19мм x 3мм.
Аккум успешно заменён на:
Аккумуляторная батарея универсальный 502035p 3,7v Li-Pol 40 Akfis https://wildberries.ru/catalog/199010373/detail.aspx
Основной чип Rockchip RKnano-8 AD1M391 1121.
Приёмник RDA 5807P.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Внутренности плеера Explay L88</h1></header>
                    <div class='entry-content'>
                            <p>Разобрал плеер, вдруг кому нужно.</p>
<h2 id="разборка">Разборка</h2>
<p>Лицевая сторона держится на двустороннем скотче и четырёх защёлках.</p>
<p><img src="IMG_20240723_191523_835.jpg" alt="Корпус плеера Explay L88"></p>
<p>Далее откручиваем крестовой отвёрткой 6 винтов и откидываем основную часть корпуса.</p>
<p>Аккуратно отодвигаем у платы защёлки и освобождаем плату.</p>
<h2 id="внутренности">Внутренности</h2>
<p><img src="IMG_20240723_191249_591.jpg" alt="Аккумулятор плеера Explay L88">
<img src="IMG_20240723_191254_725.jpg" alt="Лицевая сторона платы плеера Explay L88">
<img src="IMG_20240723_191255_458.jpg" alt="Обратная сторона платы плеера Explay L88"></p>
<p>Аккумулятор промаркирован: REC 301945P, 11YG2803. Размеры: 45мм x 19мм x 3мм.</p>
<p>Аккум успешно заменён на:</p>
<blockquote>
<p>Аккумуляторная батарея универсальный 502035p 3,7v Li-Pol 40 Akfis
<a href="https://wildberries.ru/catalog/199010373/detail.aspx">https://wildberries.ru/catalog/199010373/detail.aspx</a></p>
</blockquote>
<p>Основной чип Rockchip RKnano-8 AD1M391 1121.</p>
<p>Приёмник RDA 5807P.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Как прошить uv-k5 с андроида</title><link>https://mikhail-yudin.ru/notes/kak-proshit-uv-k5-s-andoid/</link><pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/kak-proshit-uv-k5-s-andoid/</guid><description>в термуксе ставим pkg install proot-distro ставим линупс через proot-distro install ubuntu логинимся proot-distro login ubuntu ставим apt install socat, make, binutils, gcc-arm-none-eabi, git запускаем uart tcp bridge в режиме сервера, скорость 38400, порт 8080
выполняем
socat -d -d pty,b38400,raw,echo=0 TCP:127.0.0.1:8080 запускаем ещё сессию в термуксе и запускаем ubuntu (логинимся) как на шаге 3
клонируем k5prog
git clone https://github.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Как прошить uv-k5 с андроида</h1></header>
                    <div class='entry-content'>
                            <ol>
<li>в термуксе ставим</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">pkg install proot-distro
</code></pre></div><ol start="2">
<li>ставим линупс через</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">proot-distro install ubuntu
</code></pre></div><ol start="3">
<li>логинимся</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">proot-distro login ubuntu
</code></pre></div><ol start="4">
<li>ставим</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">apt install socat, make, binutils, gcc-arm-none-eabi, git
</code></pre></div><ol start="5">
<li>
<p>запускаем uart tcp bridge в режиме сервера, скорость 38400, порт 8080</p>
</li>
<li>
<p>выполняем</p>
</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">socat -d -d pty,b38400,raw,echo<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span> TCP:127.0.0.1:8080
</code></pre></div><ol start="7">
<li>
<p>запускаем ещё сессию в термуксе и запускаем ubuntu (логинимся) как на шаге 3</p>
</li>
<li>
<p>клонируем k5prog</p>
</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">git clone https://github.com/sq5bpf/k5prog
</code></pre></div><ol start="9">
<li>
<p>заходим в папку, делаем make</p>
</li>
<li>
<p>шъём чёнить</p>
</li>
</ol>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">./k5prog -F -YYY -b ~/uvk5-fagci-reborn/bin/firmware.bin -p /dev/pts/0
</code></pre></div><p>Отсюда начинается обсуждение (если будет): https://t.me/uvk5_spectrum_talk/8080/62001</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>TUI: обозначения в текстовом интерфейсе</title><link>https://mikhail-yudin.ru/notes/tui-oboznacheniya-v-tekstovom-interfeise/</link><pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/tui-oboznacheniya-v-tekstovom-interfeise/</guid><description>Прогресс выполнения [~] - запущена задача
[*] - ход выполнения одной задачи
События [+] - что-то найдено в процессе выполнения задачи, положительный результат
[-] - что-то НЕ найдено в процессе выполнения задачи, отрицательный результат
[i], [I] - информационное сообщение
[!], [W] - на что-то стоит обратить внимание
[X], [E] - ошибка
WiFi * - скрытая / закрытая сеть</description><turbo:content><![CDATA[
                    <header>
                        <h1>TUI: обозначения в текстовом интерфейсе</h1></header>
                    <div class='entry-content'>
                            <h2 id="прогресс-выполнения">Прогресс выполнения</h2>
<p><code>[~]</code> - запущена задача<br>
<code>[*]</code> - ход выполнения одной задачи</p>
<h2 id="события">События</h2>
<p><code>[+]</code> - что-то найдено в процессе выполнения задачи, положительный результат<br>
<code>[-]</code> - что-то НЕ найдено в процессе выполнения задачи, отрицательный результат<br>
<code>[i]</code>, <code>[I]</code> - информационное сообщение<br>
<code>[!]</code>, <code>[W]</code> - на что-то стоит обратить внимание<br>
<code>[X]</code>, <code>[E]</code> - ошибка</p>
<h2 id="wifi">WiFi</h2>
<p><code>*</code> - скрытая / закрытая сеть</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Baofeng UV-10R+, опыт работы</title><link>https://mikhail-yudin.ru/notes/baofeng-uv-10r-plus-opyt-raboty/</link><pubDate>Mon, 24 Jul 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/baofeng-uv-10r-plus-opyt-raboty/</guid><description>Про раскрытие Раскрывается на приём при помощи Chirp, модель выбирайте Baofeng BF-F8HP. На передачу может зависать, проверяйте.
Про приём Спутники Satcom принимает в селе и на диполь из линеек и на телескоп и на Nagoya NA-771.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Baofeng UV-10R+, опыт работы</h1></header>
                    <div class='entry-content'>
                            <h2 id="про-раскрытие">Про раскрытие</h2>
<p>Раскрывается на приём при помощи Chirp, модель выбирайте Baofeng BF-F8HP. На передачу может зависать, проверяйте.</p>
<h2 id="про-приём">Про приём</h2>
<p>Спутники Satcom принимает в селе и <a href="https://youtube.com/shorts/rDTyzyahngs" target=_blank rel="noopener noreferrer">на диполь из линеек</a> и на телескоп и на Nagoya NA-771.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Общие заметки по GNURadio</title><link>https://mikhail-yudin.ru/notes/gnuradio-obschee/</link><pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/gnuradio-obschee/</guid><description>Вики по GNURadio
Sample rate Sample rate (частота дискретизации) должна совпадать на выходе и на входе следующего блока. Меняется через decimation.
Так же для точной децимации (прореживания) стоит использовать блок Rational Resampler. Interpolation это кратность частоты семплирования на выходе, децимация это кратность на входе.
Например, если нужно понизить частоту семплирования с 200 кГц до 48 кГц, нужно выставить interpolation в 48, а decimation в 200. Ну или 12 и 50 соответственно, если упростить отношение (но так сложнее для понимания, ИМХО).</description><turbo:content><![CDATA[
                    <header>
                        <h1>Общие заметки по GNURadio</h1></header>
                    <div class='entry-content'>
                            <p><a href="https://wiki.gnuradio.org/index.php?title=Main_Page" target=_blank rel="noopener noreferrer">Вики по GNURadio</a></p>
<h2 id="sample-rate">Sample rate</h2>
<p>Sample rate (частота дискретизации) должна совпадать на выходе и на входе следующего блока. Меняется через decimation.</p>
<p>Так же для точной децимации (прореживания) стоит использовать блок Rational Resampler. Interpolation это кратность частоты семплирования на выходе, децимация это кратность на входе.</p>
<p>Например, если нужно понизить частоту семплирования с 200 кГц до 48 кГц, нужно выставить interpolation в 48, а decimation в 200. Ну или 12 и 50 соответственно, если упростить отношение (но так сложнее для понимания, ИМХО).</p>
<h2 id="throttle">Throttle</h2>
<p>Блок Throttle или &ldquo;дроссель&rdquo; нужен для ограничения обработки сигнала только в рамках заданной частоты дискретизации. 99% используется только с софтовыми генераторами, <a href="https://wiki.gnuradio.org/index.php/Throttle" target=_blank rel="noopener noreferrer">по информации с оф. сайта</a>.</p>
<h2 id="low-pass-filter">Low pass filter</h2>
<p>Cutoff Freq задаётся половиной от ширины полосы пропускания, если срезаем IQ сигнал.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Опыт работы с радиостанцией Quansheng UV-K5</title><link>https://mikhail-yudin.ru/notes/quansheng-uv-k5-opyt-raboty/</link><pubDate>Mon, 24 Apr 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/quansheng-uv-k5-opyt-raboty/</guid><description>Общее Вся известная информация доступна на гуглодиске.
Там вы найдёте инструкцию, фото внутренностей, фото разобранной антенны, спецификации на чипы, софт для прошивки, разные версии прошивок, мою утилиту для быстрого забития каналов и что-нибудь ещё. =)
Фичи Если отключить звук кнопок (BEEP), отклик становится в разы быстрее Сканировать можно удерживая стрелки Удобно использовать скан-листы: один для топ-каналов, второй для остальных не вещающих постоянно.
Например
1: PMR + службы + 2 м;</description><enclosure url="https://mikhail-yudin.ru/notes/quansheng-uv-k5-opyt-raboty/quansheng-uv-k5.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Опыт работы с радиостанцией Quansheng UV-K5</h1></header>
                    <div class='entry-content'>
                            <h2 id="общее">Общее</h2>
<p>Вся известная информация доступна на <a href="https://drive.google.com/drive/folders/1NmcPb5yl5jnz7uWBO-c4B89XYL5AZeHw?usp=sharing" target=_blank rel="noopener noreferrer">гуглодиске</a>.</p>
<p>Там вы найдёте <strong>инструкцию</strong>, фото внутренностей, фото разобранной антенны, спецификации на чипы, софт для прошивки, разные версии прошивок, мою утилиту для быстрого забития каналов и что-нибудь ещё. =)</p>
<h2 id="фичи">Фичи</h2>
<ul>
<li>Если отключить звук кнопок (BEEP), отклик становится в разы быстрее</li>
<li>Сканировать можно удерживая стрелки</li>
<li>Удобно использовать скан-листы: один для топ-каналов, второй для остальных не вещающих постоянно.<br>
Например<br>
1: PMR + службы + 2 м;<br>
2: LPD + PMR + службы + 2 м + неподтверждённые частоты сигналов</li>
<li>Чтобы подсветка не гасла и чтобы остановить сканирование, жмите кнопку EXIT</li>
<li>Чтобы вызывать быстро нужное меню, запомните его номер и вводите в режиме меню</li>
<li>Буква S в верхнем-левом углу это вход в режим энергосбережения SAVE</li>
<li>Чтобы запретить передачу на каком-то из каналов, вбейте частоту передачи заранее где передача невозможна</li>
<li>Чтобы подсмотреть частоту выбранного канала, нажмите F+*</li>
<li>Каналы диапазонов удобнее записывать так, чтобы первый из диапазона находился на XX1 номере канала. Например LPD + PMR: 1-69, 71-78</li>
<li>Часто используемый канал можно поставить на 1-CALL (30). Тогда нажимая F+9 выпопадёте на этот нанал.</li>
<li>Станция заряжается корректно от USB только в выключенном состоянии.</li>
<li>Если не работает скремблер, выключите рацию, зажмите PTT и верхнюю функциональную кнопку, включите удерживая их. В меню появится последний пункт меню SCREN (scrambler enable), выставьте на ON.</li>
<li>Пока при сканировании каналов скорость небольшая. Для сканирования например LPD диапазона в <a href="https://github.com/amnemonic/Quansheng_UV-K5_Firmware/tree/main/uvmod_kitchen" target=_blank rel="noopener noreferrer">uvmod_kitchen</a> можно прописать один из диапазонов как 433.075 - 434.775 МГц и перейдя на этот диапазон через F+1, зажать кнопку сканирования, предварительно выставив шаг в 25 кГц.</li>
</ul>
<h2 id="про-приём-на-стандартную-антенну">Про приём на стандартную антенну</h2>
<ul>
<li><strong>Авиа</strong> диапазон принимает получше чем <a href="https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/" target=_blank rel="noopener noreferrer">HRD-747</a></li>
<li><strong>Спутники Satcom</strong> принять на стандартную резинку не удалось в Новосибирске, только на уровне шума с самодельной недоантенной =) Вне города принимал на 29 частотах и на 3-4 частотах открывал репитер даже удалось провести связь <a href="https://t.me/uv_k5/12432" target=_blank rel="noopener noreferrer">с г.Ломоносов через UFO 11</a>.</li>
<li><strong>Речной (300МГц)</strong> диапазон <a href="https://youtube.com/shorts/MVB3M6o8QsY?feature=share" target=_blank rel="noopener noreferrer">принимает</a> на 4/5. Шумодав правда в квартире плохо открывается.</li>
<li><strong>VHF (2м)</strong> принимает на уровне Baofeng uv-5r, т.е. вполне нормально</li>
<li><strong>UHF</strong> принимает на ура, лучше всех антенн-резинок. Связь на 4/5 на расстоянии 7.5 км в городе, при наличии нескольких зданий, перекрывающих распространение сигнала.</li>
<li><strong>FM вещалки</strong> принимает хорошо, но качество приёма зависит от положения антенны. HRD-747 принимает даже со сложенной антенной в любом положении</li>
<li>Для <strong>звука аналогового ТВ</strong> не хватает ширины полосы. Но что-то <a href="https://youtube.com/shorts/TzMfXkmCJ_o" target=_blank rel="noopener noreferrer">разобрать можно</a></li>
<li><strong>NOAA</strong> (137.915 МГц) <a href="https://youtube.com/shorts/iIID1w0m0Ig?feature=share" target=_blank rel="noopener noreferrer">принимает, но слабо</a>, на уровне шума</li>
</ul>
<p>Штатная антенна меняет резонанс в зависимости от приближения тела человека к утолщению антенны (где расположен конденсатор). Поэтому пользоваться гарнитурой на диапазоне 70см не лучшая идея.</p>
<h2 id="про-приём-на-другие-антенны">Про приём на другие антенны</h2>
<ul>
<li>На диполь из линеек ВНЕ города <a href="https://youtube.com/shorts/fDgTj5hMPz0?feature=share" target=_blank rel="noopener noreferrer">принимает</a> Сатком на 4,5/5</li>
<li>На телескоп принимает Сатком значительно хуже, около 3/5</li>
</ul>
<h2 id="про-каналы">Про каналы</h2>
<p>Файл с частотами LPD, PMR каналов: <a href="https://drive.google.com/file/d/1pnyE4b5BiiNmy6Ux4HsXdKQbGMPeZw1V/view?usp=sharing" target=_blank rel="noopener noreferrer">GoogleDrive</a> или <a href="https://gist.github.com/fagci/03e8afe8b67cf3b5d2a7052cb48f8009" target=_blank rel="noopener noreferrer">GitHub</a>.</p>
<p>Как видно, файл XML формата, можно при желании создать программно.</p>
<h2 id="про-сканирование">Про сканирование</h2>
<p>Сканирует быстро (по сравнению с другими бюджетными портативками): 8 выборок в секунду. Для сканирования каналов их надо добавить в скан-лист.</p>
<p>Можно сканировать удерживая стрелки вверх или вниз. Так будет слышно сигнал в момент прохода по частотам и можно будет вернуться назад, а не как по умолчанию на предыдущий сигнал, открывавший шумодав.</p>
<p>Чтобы не пропустить широкополосные сигналы, из-за <a href="https://youtube.com/shorts/lTkRaF8atkc?feature=share" target=_blank rel="noopener noreferrer">особенности шумодава</a>, лучше сканировать с широкой полосой пропускания.</p>
<h2 id="про-шумодав">Про шумодав</h2>
<p>Всё что выходит за пределы полосы пропускания, считается шумом. Поэтому например при приёме звука аналогового ТВ на громких звуках звук пропадает.</p>
<h2 id="про-чувствительность-и-избирательность">Про чувствительность и избирательность</h2>
<p>Чувствительность и избирательность лучше, чем у р/с на RDA чипах.</p>
<p>Сравнивая с супергетеродином (Quansheng TG-UV2+), UV-K5 с помехой на частоте (что-то вроде несущей) открывается реже, чем супергетеродин.</p>
<h2 id="про-мощность-передачи-на-разных-диапазонах">Про мощность передачи на разных диапазонах</h2>
<p><img src="photo_2023-05-26_14-17-42.jpg" alt=""></p>
<p><a href="/notes/quansheng-uv-k5-opyt-raboty/photo_2023-05-26_14-17-42.jpg">Открыть полный размер</a></p>
<p><img src="IMG_20230605_033704_040.jpg" alt=""></p>
<p>За информацию и труд спасибо <a href="https://t.me/uv_k5/1619" target=_blank rel="noopener noreferrer">Al</a>, <a href="https://t.me/quansheng_uvk5_en/991" target=_blank rel="noopener noreferrer">Marcos</a></p>
<h2 id="про-чувствительность">Про чувствительность</h2>
<p><img src="IMG_20230705_232055_209.jpg" alt=""></p>
<h2 id="про-разлочку-передачи-на-других-диапазонах">Про разлочку передачи на других диапазонах</h2>
<p>Передача на других заблокированных диапазонах возможна, но неоправдана из-за низкой мощности. Для разлочки при включении зажмите первую функциональную кнопку (под PTT) и PTT. Появятся новые пункты меню, где можно так же запретить передачу на ненужных частотах. Я выбрал для себя стандарт FCC, т.к. есть возможность передавать на PMR частотах и не залезать выше 148 и 450 МГц ;).</p>
<p>Варианты стандартов разрешённой передачи:</p>
<ul>
<li>FCC: 144-148; 420-450 МГц</li>
<li>CE: 144-146; 430-440 МГц</li>
<li>NORMAL(по умолчанию): 136-174; 350-400; 400-470 МГц</li>
</ul>
<h2 id="про-внутренности">Про внутренности</h2>
<p>Основной приёмопередающий чип Beken <a href="http://www.bekencorp.com/en/goods/detail/cid/50.html" target=_blank rel="noopener noreferrer">BK4819</a>.</p>
<p>Чип с прошивкой, процессор <a href="https://zhuanlan.zhihu.com/p/540665288?utm_id=0" target=_blank rel="noopener noreferrer">DP32G030</a>.</p>
<details>
  <summary>Подробнее про чип DP32G030</summary>
  <p>Это аналог STM32F030.</p>
  <ul>
  <li>32-битное ядро процессора ARM Cortex M0</li>
  <li>Максимальная рабочая частота 72МГц</li>
  <li>24-битный системный таймер</li>
  <li>Встроенный вложенный векторный контроллер прерываний (NVIC), поддерживающий до 32 прерываний</li>
  <li>Записать программу через интерфейс SWD</li>
  <li>Встроенная 64 Кбайт FLASH-памяти в качестве области хранения программ</li>
  <li>Встроенная оперативная память 16 КБ в качестве области хранения данных</li>
  <li>Напряжение питания 2,0 В ~ 3,6 В</li>
  <li>Сброс при включении/выключении питания (POR/PDR), сброс сторожевого таймера, сброс выделенного внешнего контакта (EXTRST)</li>
  <li>Встроенный драйвер высокочастотного кварцевого генератора 4 ~ 32 МГц</li>
  <li>Встроенный драйвер низкочастотного кварцевого генератора 32768 Гц</li>
  <li>Поддержка режима SLEEP, режима DEEPSLEEP и режима STOP, всего три режима низкого энергопотребления системы.</li>
  </ul>
</details>
<p>Приёмник FM 88—108 (64—108) МГц Beken <a href="http://www.bekencorp.com/en/goods/detail/cid/34.html" target=_blank rel="noopener noreferrer">BK1080</a>.</p>
<p>Усилитель мощности звука 1W <a href="http://www.natlinear.com/uploadfiles/2014/ln/LN4898_C.pdf" target=_blank rel="noopener noreferrer">LN4898</a>.</p>
<p>Дисплей <a href="http://www.hpinfotech.ro/ST7565.pdf" target=_blank rel="noopener noreferrer">ST7565</a>.</p>
<p>Two-wire Serial EEPROM <a href="https://datasheetspdf.com/pdf-file/930413/BELLING/BL24C64/1" target=_blank rel="noopener noreferrer">BL24C64</a>.</p>
<p>Фото внутренностей смотрите на <a href="https://drive.google.com/drive/folders/1n0qRF9z8spM7yQSQsRcOieUbm9mtQx8k?usp=sharing" target=_blank rel="noopener noreferrer">GoogleDrive</a>.</p>
<p>Чип BK4819 <strong>прямого преобразования, не супергетеродин</strong>, но лучше чем RDA.</p>
<h2 id="про-прошивки">Про прошивки</h2>
<p>Готовые сборки можно скачать в <a href="https://github.com/Tunas1337/UV-K5-Modded-Firmwares" target=_blank rel="noopener noreferrer">репозитории Tunas1337</a>.</p>
<p><a href="https://github.com/amnemonic/Quansheng_UV-K5_Firmware/tree/main/uvmod_kitchen" target=_blank rel="noopener noreferrer">Кухня модов</a> для сборки своих модов. <a href="https://drive.google.com/file/d/1m0e8G_vmJtjEIihw_H58qOLIKpf47pSn/view?usp=drive_link" target=_blank rel="noopener noreferrer">Инструкция по работе с кухней</a> от Megajolt.</p>
<p><a href="https://github.com/piotr022/UV_K5_playground/releases" target=_blank rel="noopener noreferrer">Прошивки со встроенным S-метром, спектром</a>.</p>
<p>Прошивки от энтузиастов в <a href="https://t.me/uv_k5/34434" target=_blank rel="noopener noreferrer">Телеграм группе</a>.</p>
<p>Официальные прошивки (см. Uvk5 firmware): <a href="http://en.qsfj.com/support/downloads/3002" target=_blank rel="noopener noreferrer">оф. сайт Quansheng</a>.</p>
<p><strong>Кабель</strong> для прошивки используется такой же, как для Baofeng UV-5R. То есть, <strong>с чипом</strong>.</p>
<p>В режим прошивки при подключенном кабеле вводится через выключение, включение при нажатой PTT.</p>
<p><a href="https://t.me/quansheng_uvk5_en_dev/229" target=_blank rel="noopener noreferrer">Началась работа</a> над <a href="https://openrtx.org/" target=_blank rel="noopener noreferrer">OpenRTX</a> под UV-K5.</p>
<p>Сам тоже начал ковырять прошивку: <a href="https://github.com/fagci/qs-uvk5-firmware-modder" target=_blank rel="noopener noreferrer">утилита для раскодирования/закодирования</a>.</p>
<p>Так же работаю над <a href="https://t.me/quansheng_uvk5_spectrum" target=_blank rel="noopener noreferrer">спектром</a>, публичная версия <a href="https://github.com/piotr022/UV_K5_playground/releases" target=_blank rel="noopener noreferrer">в релизах</a> (uv_k5_26_spectrum_fagci).</p>
<p><img src="uv-k5-spectrum-fagci.jpg" alt="image"></p>
<p>Новые версии спектра на базе <a href="https://github.com/DualTachyon/uv-k5-firmware" target=_blank rel="noopener noreferrer">опенсорсной прошивки</a> в открытом доступе: <a href="https://github.com/fagci/uv-k5-firmware-fagci-mod" target=_blank rel="noopener noreferrer">uv-k5-firmware-fagci-mod</a>.</p>
<p><a href="https://t.me/uvk5_spectrum_talk/10046" target=_blank rel="noopener noreferrer">Галерея с демонстрацией возможностей прошивки</a></p>
<p>Если родной прошивальщик ругается на большой размер файла, шить через <a href="https://whosmatt.github.io/uvmod/index.html" target=_blank rel="noopener noreferrer">UVMOD веб кухню</a></p>
<p>Инструкция от <code>Павел Тимофеевич</code>:</p>
<pre><code>1. Открыть сайт UVMOD
2. Справа убрать галку &quot;Using stock v26 firmware&quot;
3. Выбрать заранее скачанную прошивку кнопкой &quot;Browse&quot;
4. Нажать кнопку &quot;Patch firmware&quot;
5. Нажать кнопку &quot;Flash directly&quot;
6. В открывшемся окне выбрать COM-порт кабеля для программирования и нажать кнопку &quot;Подключение&quot;

❕Если прошивка не началась, повторить пункты 5, 6
</code></pre><h3 id="разбор-прошивки">Разбор прошивки</h3>
<p>Архив расшифрованной прошивки и оригинала: <a href="https://drive.google.com/file/d/1oi8gINesTaT1gWwA4IMkb9AKFzLEvRMO/view?usp=sharing" target=_blank rel="noopener noreferrer">v2.01.23</a>.</p>
<p>Файл прошивки зашифрован 128 байтовым xor.</p>
<p>Из твиттера по заливке модифицированной версии прошивки:</p>
<blockquote>
<p>Все, что вам нужно сделать, чтобы отправить произвольный код, — это вставить действительную 16-байтовую версию по смещению 8192 и добавить странную 16-битную «контрольную сумму» в конце данных, чтобы все было хорошо.</p>
</blockquote>
<h2 id="устройства-на-том-же-чипе">Устройства на том же чипе</h2>
<p>QuanSheng / Anysecu / Wurui / Lseng UV-K5 (Наш аппарат) <a href="https://t.me/uv_k5" target=_blank rel="noopener noreferrer">Telegram RU</a>, <a href="https://t.me/quansheng_uvk5_en" target=_blank rel="noopener noreferrer">Telegram EN</a>, <a href="https://youtube.com/playlist?list=PL67vBSofOrHO3ed664qJpkXeP2doMP_rx" target=_blank rel="noopener noreferrer">Мой плейлист на YouTube</a>.</p>
<p>Radtel RT-890 <a href="https://t.me/radtel_rt890" target=_blank rel="noopener noreferrer">Telegram</a>.</p>
<h2 id="бренды-данной-радиостанции">Бренды данной радиостанции</h2>
<ul>
<li>Quansheng UV-K5</li>
<li>Anysecu UV-K5</li>
<li>Wurui UV-K5</li>
<li>Lseng UV-K5</li>
<li>Alafone UV-K5</li>
<li>Ruyage uv3d</li>
<li>TodoRadio.cl multiband 2023</li>
<li>Radtel RT-590</li>
</ul>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>DSD on Android</title><link>https://mikhail-yudin.ru/notes/dsd-decode-on-android/</link><pubDate>Sat, 11 Mar 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/dsd-decode-on-android/</guid><description>Prerequisites mplayer netcat sdr&amp;#43;&amp;#43; termux-sdr-dsd-installer.sh Decoding Disable andriod battery saving features for sdr++.
Run sdr++ and enable TCP server as audio sink.
Decoding and play:
nc 127.0.0.1 7355 | dsd -fr -i - -o - | mplayer -rawaudio channels=1:rate=8000 -demuxer rawaudio -</description><turbo:content><![CDATA[
                    <header>
                        <h1>DSD on Android</h1></header>
                    <div class='entry-content'>
                            <h2 id="prerequisites">Prerequisites</h2>
<ul>
<li>mplayer</li>
<li>netcat</li>
<li><a href="https://github.com/AlexandreRouma/SDRPlusPlus/releases/tag/nightly" target=_blank rel="noopener noreferrer">sdr&#43;&#43;</a></li>
<li><a href="https://gist.githubusercontent.com/fagci/3abb0bdbeb69e13a51c86b082c59e1dd/raw/888b5a44f80f5d70074dafbb17b0a860493a11d8/termux-sdr-dsd-installer.sh" target=_blank rel="noopener noreferrer">termux-sdr-dsd-installer.sh</a></li>
</ul>
<h2 id="decoding">Decoding</h2>
<p>Disable andriod battery saving features for sdr++.</p>
<p>Run sdr++ and enable TCP server as audio sink.</p>
<p>Decoding and play:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">nc 127.0.0.1 <span style="color:#bd93f9">7355</span> | dsd -fr -i - -o - | mplayer -rawaudio <span style="color:#8be9fd;font-style:italic">channels</span><span style="color:#ff79c6">=</span>1:rate<span style="color:#ff79c6">=</span><span style="color:#bd93f9">8000</span> -demuxer rawaudio -
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Следим за логами</title><link>https://mikhail-yudin.ru/notes/sledim-za-logami/</link><pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/sledim-za-logami/</guid><description>on_new_record() { while read value; do echo &amp;#34;$value&amp;#34; # здесь подписываемся на событие done } tail -f /var/log/mysql/mysql.log \ | grep --line-buffered -oP &amp;#39;INSERT INTO some_table.+\D\K\d+&amp;#39; \ | on_new_record --line-buffered не даёт застаиваться буферу до его наполнения, выводит каждую строку (при условии что запись логов не буферизуется).
Бонус Можно на cron повешать следилку за процессом, чтоб не убежал.
ps -ef | grep -q &amp;#39;[b]ash /home/user/watch-something.sh&amp;#39; || /home/user/watch-something.sh</description><turbo:content><![CDATA[
                    <header>
                        <h1>Следим за логами</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">on_new_record<span style="color:#ff79c6">()</span> <span style="color:#ff79c6">{</span>
    <span style="color:#ff79c6">while</span> <span style="color:#8be9fd;font-style:italic">read</span> value; <span style="color:#ff79c6">do</span>
        <span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$value</span><span style="color:#f1fa8c">&#34;</span> <span style="color:#6272a4"># здесь подписываемся на событие</span>
    <span style="color:#ff79c6">done</span>
<span style="color:#ff79c6">}</span>

tail -f /var/log/mysql/mysql.log <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    | grep --line-buffered -oP <span style="color:#f1fa8c">&#39;INSERT INTO some_table.+\D\K\d+&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    | on_new_record
</code></pre></div><p><code>--line-buffered</code> не даёт застаиваться буферу до его наполнения, выводит каждую строку (при условии что запись логов не буферизуется).</p>
<h2 id="бонус">Бонус</h2>
<p>Можно на <code>cron</code> повешать следилку за процессом, чтоб не убежал.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">ps -ef | grep -q <span style="color:#f1fa8c">&#39;[b]ash /home/user/watch-something.sh&#39;</span> <span style="color:#ff79c6">||</span> /home/user/watch-something.sh
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Two way sound in Termux with proot-distro</title><link>https://mikhail-yudin.ru/notes/termux-proot-distro-two-way-sound/</link><pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/termux-proot-distro-two-way-sound/</guid><description>At first Allow access to microphone for TermuxApi app.
In Termux, setup proot-distro:
pkg install proot-distro sox proot-distro install ubuntu Environment setup In proot, make user, install vnc server:
proot-distro login ubuntu useradd user mkdir /home/user/ chown user:user /home/user/ apt install tightvncserver xfce4 exit Audio setup In Termux:
nano $PREFIX/etc/pulse/default.pa Add this lines into this file (in static load section):
load-module module-sles-sink load-module module-sles-source load-module module-null-sink sink_name=virtspk sink_properties=device.description=Virtual_Speaker load-module module-native-protocol-tcp auth-ip-acl=127.</description><enclosure url="https://mikhail-yudin.ru/notes/termux-proot-distro-two-way-sound/IMG_20230111_102804.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Two way sound in Termux with proot-distro</h1></header>
                    <div class='entry-content'>
                            <h2 id="at-first">At first</h2>
<p>Allow access to microphone for TermuxApi app.</p>
<p>In Termux, setup proot-distro:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">pkg install proot-distro sox
proot-distro install ubuntu
</code></pre></div><h2 id="environment-setup">Environment setup</h2>
<p>In proot, make user, install vnc server:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">proot-distro login ubuntu

useradd user
mkdir /home/user/
chown user:user /home/user/

apt install tightvncserver xfce4

<span style="color:#8be9fd;font-style:italic">exit</span>
</code></pre></div><h2 id="audio-setup">Audio setup</h2>
<p>In Termux:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">nano <span style="color:#8be9fd;font-style:italic">$PREFIX</span>/etc/pulse/default.pa
</code></pre></div><p>Add this lines into this file (in static load section):</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">load-module module-sles-sink
load-module module-sles-source
load-module module-null-sink <span style="color:#8be9fd;font-style:italic">sink_name</span><span style="color:#ff79c6">=</span>virtspk <span style="color:#8be9fd;font-style:italic">sink_properties</span><span style="color:#ff79c6">=</span>device.description<span style="color:#ff79c6">=</span>Virtual_Speaker
load-module module-native-protocol-tcp auth-ip-acl<span style="color:#ff79c6">=</span>127.0.0.1 auth-anonymous<span style="color:#ff79c6">=</span><span style="color:#bd93f9">1</span>
</code></pre></div><p>Run pulseaudio in Termux:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">pulseaudio --start
</code></pre></div><h2 id="starting-desktop">Starting desktop</h2>
<p>Login as new user and edit vnc xstartup file to run xfce4 by default:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">proot-distro login --user user ubuntu
nano ~/.vnc/xstartup
</code></pre></div><p>Replace <code>/etc/X11/Xsession</code> with <code>xfce4-session &amp;</code>, press <code>Ctrl-X</code>, <code>y</code>, <code>enter</code>.</p>
<p>Then run vnc server:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">vncserver
</code></pre></div><p>Make OpenSL ES input as default input device to use mic as input in most of apps.</p>
<p>If there is questions, ask me. Will improve this manual.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Опыт работы с приёмником HRD-747</title><link>https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/</link><pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/</guid><description>Общее Про сканирование Сканирование частот учитывает ширину полосы пропускания. Чем уже полоса, тем выше мощность сигнала и больше вероятность поймать слабый сигнал сканированием.
Скорость сканирования быстрее в 2 раза по сравнению с Quansheng TG-UV2+, Baofeng UV-5R. Это 10 выборок в секунду по сравнению с 5 выборками в секунду. Замерял проходом 1 МГц по 25 КГц.
Про антенны На диапазонах длинных и средних волн (LW, SW) работает магнитная антенна, телескопическая только вне города поможет.</description><enclosure url="https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/HRD-747.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Опыт работы с приёмником HRD-747</h1></header>
                    <div class='entry-content'>
                            <h2 id="общее">Общее</h2>
<h3 id="про-сканирование">Про сканирование</h3>
<p>Сканирование частот учитывает ширину полосы пропускания. Чем уже полоса, тем выше мощность сигнала и больше вероятность поймать слабый сигнал сканированием.</p>
<p>Скорость сканирования быстрее в 2 раза по сравнению с Quansheng TG-UV2+, Baofeng UV-5R. Это 10 выборок в секунду по сравнению с 5 выборками в секунду. Замерял проходом 1 МГц по 25 КГц.</p>
<h3 id="про-антенны">Про антенны</h3>
<p>На диапазонах длинных и средних волн (LW, SW) работает магнитная антенна, телескопическая только вне города поможет.</p>
<p>Внешняя магнитная антенна собирает городские помехи даже на окраине города.</p>
<h3 id="про-аттенюатор">Про аттенюатор</h3>
<p>В городе использовать режим аттенюатора DX/Normal можно только при полностью задвинутой антенне, т.к. она соберёт все помехи и приёмник заглушится ими.</p>
<h3 id="про-сканирование-1">Про сканирование</h3>
<p>Режим User Defined Band (UBD / UDB) удобно использовать для сканирования. Например выставляем нижнюю границу в 433 МГц, верхнюю в 435 МГц, зажимаем стрелку и сканирование происходит циклично в этом диапазоне.</p>
<h2 id="наилучший-приём">Наилучший приём</h2>
<p>[!] Длина антенны указана с учётом части внутри приёмника.</p>
<h3 id="городские-условия">Городские условия</h3>
<table>
<thead>
<tr>
<th align="left">Диапазон</th>
<th align="left">Телескоп</th>
<th align="left">Магнитная</th>
<th align="left">Att</th>
<th align="right">BW</th>
<th align="left">Видео</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">LW</td>
<td align="left">-</td>
<td align="left">внешняя</td>
<td align="left">DX</td>
<td align="right">2.5</td>
<td align="left"><a href="https://youtube.com/shorts/T1VEj7zkMCI" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">MW</td>
<td align="left">-</td>
<td align="left">любая</td>
<td align="left">DX</td>
<td align="right">2.5</td>
<td align="left"><a href="https://youtube.com/shorts/68hlLWrxKz0" target=_blank rel="noopener noreferrer">1</a>, <a href="https://youtu.be/Y3taGedBo3I" target=_blank rel="noopener noreferrer">2</a></td>
</tr>
<tr>
<td align="left">CB</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">?</td>
<td align="right">?</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">AIR</td>
<td align="left">-</td>
<td align="left">-</td>
<td align="left">Normal</td>
<td align="right">3.75</td>
<td align="left"><a href="https://youtube.com/shorts/jaTXgTf4lF4" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">AIR</td>
<td align="left">(5)</td>
<td align="left">-</td>
<td align="left">Normal</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF 2m</td>
<td align="left">(6)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF 153.4MHz</td>
<td align="left">49см (6)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">-</td>
<td align="left">-</td>
<td align="left">Normal</td>
<td align="right">3.75</td>
<td align="left"><a href="https://youtu.be/7hEVzhv1NXk" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">UHF 70cm</td>
<td align="left">(3;7💯)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">2.5</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">UHF</td>
<td align="left">28 см (3)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">UHF 471.26MHz</td>
<td align="left">(2.8;7)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3.75</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">UHF 503.25Mhz</td>
<td align="left">(6)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">2.5</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">UHF/VHF</td>
<td align="left">Baofeng UV-5R</td>
<td align="left">-</td>
<td align="left">Normal</td>
<td align="right">3.75</td>
<td align="left"><a href="https://youtube.com/shorts/m8aSBj_r0oE?feature=share" target=_blank rel="noopener noreferrer">145.625 MHz</a>, <a href="https://youtube.com/shorts/N3diRUPncZI?feature=share" target=_blank rel="noopener noreferrer">168.075 MHz</a>, <a href="https://youtube.com/shorts/-n4JZXqaqZQ?feature=share" target=_blank rel="noopener noreferrer">PMR</a></td>
</tr>
</tbody>
</table>
<h3 id="окраина-города">Окраина города</h3>
<table>
<thead>
<tr>
<th align="left">Диапазон</th>
<th align="left">Телескоп</th>
<th align="left">Магнитная</th>
<th align="left">Att</th>
<th align="right">BW</th>
<th align="left">Видео</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">LW</td>
<td align="left">-</td>
<td align="left">внешняя</td>
<td align="left">DX</td>
<td align="right">2</td>
<td align="left"><a href="https://youtube.com/shorts/lNTJ0UF2-70" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">MW</td>
<td align="left">-</td>
<td align="left">любая</td>
<td align="left">DX</td>
<td align="right">2</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">MW 3;7 МГц</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">DX</td>
<td align="right">2</td>
<td align="left"><a href="https://youtu.be/vcYCV-pe3j4" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">CB</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">?</td>
<td align="right">?</td>
<td align="left"><a href="https://youtube.com/shorts/9b_fzGmzY3Y" target=_blank rel="noopener noreferrer">1</a></td>
</tr>
<tr>
<td align="left">AIR</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">?</td>
<td align="right">3</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">+</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">-</td>
<td align="left">-</td>
<td align="left">Normal</td>
<td align="right">3</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">UHF</td>
<td align="left">28 см (3)</td>
<td align="left">-</td>
<td align="left">Local</td>
<td align="right">3</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<p>Интересные частоты, диапазоны для сканирования смотрите <a href="https://mikhail-yudin.ru/notes/interesnye-radio-chastoty/" target=_blank rel="noopener noreferrer">тут</a>.</p>
<h2 id="тестирую-резинку-от-baofeng">Тестирую &ldquo;резинку&rdquo; от Baofeng</h2>
<ul>
<li><a href="https://youtu.be/bAa4JFdORFs" target=_blank rel="noopener noreferrer">Радиолюбители 2 м</a></li>
<li><a href="https://youtube.com/shorts/N3diRUPncZI" target=_blank rel="noopener noreferrer">168.075 MHz, телеметрия</a></li>
<li><a href="https://youtube.com/shorts/-n4JZXqaqZQ" target=_blank rel="noopener noreferrer">PMR</a></li>
</ul>
<p><img src="20221222_144517.png" alt=""></p>
<ul>
<li>Сканируя диапазон 70 см останавливается на сигналах, ловит лучше, чем со встроенной антенной. Направление антенны играет большую роль, вертикальное положение не идеальное для приёма.</li>
<li>С аттенюатором в режиме Normal принимает лучше, чем в Local, не забивается помехами.</li>
<li>С родной антенной от UV-5R диапазон уверенного приёма шире, чем на антеннах от Quansheng TG-UV2+ (нигде не ловит чёт), Baofeng UV-9R (чуйка почти на всех диапазонах VHF, UHF слабее немного).</li>
</ul>
<p>В итоге, такая конструкция стала незаменимой на VHF, UHF диапазонах.</p>
<h2 id="итого-по-приёмнику">Итого по приёмнику</h2>
<h3 id="достоинства">Достоинства</h3>
<ul>
<li>мобильность (зимой в перчатках в темноте спокойно тыкается)</li>
<li>достойный приём при малом количестве помех в локации</li>
<li>есть возможность подключения внешней антенны</li>
<li>много диапазонов, в поездке/прогулке (с доп антеннами желательно) на приём заменяет р/с и SDR</li>
<li>хорошо держит заряд, в дороге 7ч спокойно хватает помониторить диапазоны кроме авиа (жор больше)</li>
<li>есть UBD диапазон, его можно настроить на сканирование определённого диапазона</li>
<li>есть показометр, можно не только на слух определять качество приёма</li>
<li>есть часы, будильник и датчик температуры</li>
</ul>
<h3 id="недостатки">Недостатки</h3>
<ul>
<li>непонятное поведение выбора полосы пропускания</li>
<li>нельзя задать имя ячейкам памяти</li>
<li>нет сканирования по ячейкам памяти</li>
<li>на PMR каналы настраивается не точно</li>
<li>в диапазоне MW подстроить SSB почти невозможно</li>
</ul>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Размытый фон по краям при изменении размера изображения</title><link>https://mikhail-yudin.ru/notes/blurred-bg-resize/</link><pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/blurred-bg-resize/</guid><description>for f in **/*.jpg; do convert &amp;#34;$f&amp;#34; \ \( -clone 0 -blur 0x32 -resize 768x512\! \) \ \( -clone 0 -resize 768x512 \) \ -delete 0 -gravity center -compose over -composite &amp;#34;$f.s.jpg&amp;#34; done</description><enclosure url="https://mikhail-yudin.ru/notes/blurred-bg-resize/example.jpg.s.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Размытый фон по краям при изменении размера изображения</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh"><span style="color:#ff79c6">for</span> f in **/*.jpg; <span style="color:#ff79c6">do</span>
  convert <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$f</span><span style="color:#f1fa8c">&#34;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    <span style="color:#f1fa8c">\(</span> -clone <span style="color:#bd93f9">0</span> -blur 0x32 -resize 768x512<span style="color:#f1fa8c">\!</span> <span style="color:#f1fa8c">\)</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    <span style="color:#f1fa8c">\(</span> -clone <span style="color:#bd93f9">0</span> -resize 768x512 <span style="color:#f1fa8c">\)</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -delete <span style="color:#bd93f9">0</span> -gravity center -compose over -composite <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$f</span><span style="color:#f1fa8c">.s.jpg&#34;</span>
<span style="color:#ff79c6">done</span>
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Убираем двойные клики по ссылкам и кнопкам</title><link>https://mikhail-yudin.ru/notes/ustranyaem-dvoinoi-klik-po-ssylkam/</link><pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/ustranyaem-dvoinoi-klik-po-ssylkam/</guid><description>$(&amp;#34;a[href^=&amp;#39;/&amp;#39;],a[href^=&amp;#39;http&amp;#39;],button&amp;#34;).on(&amp;#39;click&amp;#39;, function(e) { const a = this; if (a.dataset.dblclick_timer) { e.preventDefault(); } a.dataset.dblclick_timer = window.setTimeout(function() { a.dataset.dblclick_timer = null; }, 5000) });</description><turbo:content><![CDATA[
                    <header>
                        <h1>Убираем двойные клики по ссылкам и кнопкам</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-js" data-lang="js">$(<span style="color:#f1fa8c">&#34;a[href^=&#39;/&#39;],a[href^=&#39;http&#39;],button&#34;</span>).on(<span style="color:#f1fa8c">&#39;click&#39;</span>, <span style="color:#8be9fd;font-style:italic">function</span>(e) {
    <span style="color:#ff79c6">const</span> a <span style="color:#ff79c6">=</span> <span style="color:#ff79c6">this</span>;
    <span style="color:#ff79c6">if</span> (a.dataset.dblclick_timer) {
        e.preventDefault();
    }
    a.dataset.dblclick_timer <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">window</span>.setTimeout(<span style="color:#8be9fd;font-style:italic">function</span>() {
        a.dataset.dblclick_timer <span style="color:#ff79c6">=</span> <span style="color:#ff79c6">null</span>;
    }, <span style="color:#bd93f9">5000</span>)
});
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Интересные радиочастоты</title><link>https://mikhail-yudin.ru/notes/interesnye-radio-chastoty/</link><pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/interesnye-radio-chastoty/</guid><description>Ниже представлены частоты радиолюбительских, гражданских и вещательных диапазонов. А так же частоты потенциально возможного приёма сигналов в различной модуляции. В самом низу страницы приводится справочная информация по названиям диапазонов.
По диапазонам Радиолюбительский КВ диап., м от, кГц до, кГц LW 2 200 135,7 137,8 MW 160 1 810 2 000 SW 80 3 500 3 650 SW 80 3 650 3 800 SW 40 7 000 7 200 SW 30 10 100 10 150 SW 20 14 000 14 350 SW 17 18 068 18 168 SW 15 21 000 21 450 SW 12 24 890 24 990 SW 10 28 000 29 700 Проводят связи голосом LSB (где принимал на HRD-747)</description><enclosure url="https://mikhail-yudin.ru/notes/interesnye-radio-chastoty/interesnye-radio-chastoty.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Интересные радиочастоты</h1></header>
                    <div class='entry-content'>
                            <p>Ниже представлены частоты радиолюбительских, гражданских и вещательных диапазонов.
А так же частоты потенциально возможного приёма сигналов в различной модуляции.
В самом низу страницы приводится справочная информация по названиям диапазонов.</p>
<h2 id="по-диапазонам">По диапазонам</h2>
<h3 id="радиолюбительский">Радиолюбительский</h3>
<h4 id="кв">КВ</h4>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="right">диап., м</th>
<th align="right">от, кГц</th>
<th align="right">до, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">LW</td>
<td align="right">2 200</td>
<td align="right">135,7</td>
<td align="right">137,8</td>
</tr>
<tr>
<td align="left">MW</td>
<td align="right">160</td>
<td align="right">1 810</td>
<td align="right">2 000</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">80</td>
<td align="right">3 500</td>
<td align="right">3 650</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">80</td>
<td align="right">3 650</td>
<td align="right">3 800</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">40</td>
<td align="right">7 000</td>
<td align="right">7 200</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">30</td>
<td align="right">10 100</td>
<td align="right">10 150</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">20</td>
<td align="right">14 000</td>
<td align="right">14 350</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">17</td>
<td align="right">18 068</td>
<td align="right">18 168</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">15</td>
<td align="right">21 000</td>
<td align="right">21 450</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">12</td>
<td align="right">24 890</td>
<td align="right">24 990</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">10</td>
<td align="right">28 000</td>
<td align="right">29 700</td>
</tr>
</tbody>
</table>
<p><strong>Проводят связи голосом LSB (где <a href="https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/" target=_blank rel="noopener noreferrer">принимал на HRD-747</a>)</strong></p>
<ul>
<li>80м: 3.648, 3.653, 3.68, 3.712, 3.764 МГц.</li>
<li>40м: 7.085, 7.086, 7.098, 7.1, 7.105, 7.108, 7.114, 7.117, 7.118, 7.13, 7.132, 7.135, 7.163, 7.169 МГц.</li>
</ul>
<h4 id="укв">УКВ</h4>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="right">диап., см</th>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">VHF</td>
<td align="right">200</td>
<td align="right">144</td>
<td align="right">146</td>
</tr>
<tr>
<td align="left">UHF</td>
<td align="right">70</td>
<td align="right">430</td>
<td align="right">440</td>
</tr>
<tr>
<td align="left">UHF</td>
<td align="right">23</td>
<td align="right">1 260</td>
<td align="right">1 300</td>
</tr>
<tr>
<td align="left">UHF</td>
<td align="right">13</td>
<td align="right">2 320</td>
<td align="right">2 320,15</td>
</tr>
<tr>
<td align="left">SHF</td>
<td align="right">6</td>
<td align="right">5 650</td>
<td align="right">5 850</td>
</tr>
<tr>
<td align="left">SHF</td>
<td align="right">3</td>
<td align="right">10 000</td>
<td align="right">10 500</td>
</tr>
<tr>
<td align="left">SHF</td>
<td align="right"></td>
<td align="right">24 000</td>
<td align="right">24 050</td>
</tr>
<tr>
<td align="left">SHF</td>
<td align="right"></td>
<td align="right">24 050</td>
<td align="right">24 250</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">47 000</td>
<td align="right">47 200</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">76 000</td>
<td align="right">77 500</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">77 500</td>
<td align="right">78 000</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">122 250</td>
<td align="right">123 000</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">134 000</td>
<td align="right">136 000</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">136 000</td>
<td align="right">141 000</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">241 000</td>
<td align="right">248 000</td>
</tr>
<tr>
<td align="left">EHF</td>
<td align="right"></td>
<td align="right">248 000</td>
<td align="right">250 000</td>
</tr>
</tbody>
</table>
<h3 id="вещательный">Вещательный</h3>
<h4 id="кв-1">КВ</h4>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="right"></th>
<th align="right">от, кГц</th>
<th align="right">до, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">LW</td>
<td align="right"></td>
<td align="right">148,5</td>
<td align="right">283,5</td>
</tr>
<tr>
<td align="left">MW</td>
<td align="right"></td>
<td align="right">526,5</td>
<td align="right">1 606,5</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">120</td>
<td align="right">2 300</td>
<td align="right">2 495</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">90</td>
<td align="right">3 200</td>
<td align="right">3 400</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">75</td>
<td align="right">3 900</td>
<td align="right">4 000</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">60</td>
<td align="right">4 750</td>
<td align="right">5 060</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">49</td>
<td align="right">5 900</td>
<td align="right">6 200</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">41</td>
<td align="right">7 200</td>
<td align="right">7 450</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">31</td>
<td align="right">9 400</td>
<td align="right">9 900</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">25</td>
<td align="right">11 600</td>
<td align="right">12 100</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">22</td>
<td align="right">13 570</td>
<td align="right">13 870</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">19</td>
<td align="right">15 100</td>
<td align="right">15 800</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">16</td>
<td align="right">17 480</td>
<td align="right">17 900</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">15</td>
<td align="right">18 900</td>
<td align="right">19 020</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">13</td>
<td align="right">21 450</td>
<td align="right">21 850</td>
</tr>
<tr>
<td align="left">SW</td>
<td align="right">11</td>
<td align="right">25 600</td>
<td align="right">26 100</td>
</tr>
</tbody>
</table>
<h4 id="укв-1">УКВ</h4>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="left">Назв.</th>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">VHF</td>
<td align="left">УКВ1</td>
<td align="right">65,9</td>
<td align="right">74</td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">УКВ2</td>
<td align="right">87,5</td>
<td align="right">100</td>
</tr>
<tr>
<td align="left">VHF</td>
<td align="left">УКВ3</td>
<td align="right">100</td>
<td align="right">108</td>
</tr>
</tbody>
</table>
<h3 id="cb-citizen-band">CB (Citizen Band)</h3>
<table>
<thead>
<tr>
<th align="right">от, КГц</th>
<th align="right">до, КГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">25 000</td>
<td align="right">30 000</td>
</tr>
</tbody>
</table>
<h4 id="официально-разрешённые-для-использования-в-российской-федерации">Официально разрешённые для использования в Российской Федерации</h4>
<table>
<thead>
<tr>
<th>Канал</th>
<th align="right">C, КГц</th>
<th align="right">D, КГц</th>
<th>Канал</th>
<th align="right">C, КГц</th>
<th align="right">D, КГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td align="right"></td>
<td align="right">27415</td>
<td>24</td>
<td align="right">27235</td>
<td align="right">27685</td>
</tr>
<tr>
<td>2</td>
<td align="right">26975</td>
<td align="right">27425</td>
<td>25</td>
<td align="right">27245</td>
<td align="right">27695</td>
</tr>
<tr>
<td>3</td>
<td align="right">26985</td>
<td align="right">27435</td>
<td>26</td>
<td align="right">27265</td>
<td align="right">27715</td>
</tr>
<tr>
<td>4</td>
<td align="right">27005</td>
<td align="right">27455</td>
<td>27</td>
<td align="right">27275</td>
<td align="right">27725</td>
</tr>
<tr>
<td>5</td>
<td align="right">27015</td>
<td align="right">27465</td>
<td>28</td>
<td align="right">27285</td>
<td align="right">27735</td>
</tr>
<tr>
<td>6</td>
<td align="right">27025</td>
<td align="right">27475</td>
<td>29</td>
<td align="right">27295</td>
<td align="right">27745</td>
</tr>
<tr>
<td>7</td>
<td align="right">27035</td>
<td align="right">27485</td>
<td>30</td>
<td align="right">27305</td>
<td align="right">27755</td>
</tr>
<tr>
<td>8</td>
<td align="right">27055</td>
<td align="right">27505</td>
<td>31</td>
<td align="right">27315</td>
<td align="right">27765</td>
</tr>
<tr>
<td>9</td>
<td align="right">27065</td>
<td align="right">27515</td>
<td>32</td>
<td align="right">27325</td>
<td align="right">27775</td>
</tr>
<tr>
<td>10</td>
<td align="right">27075</td>
<td align="right">27525</td>
<td>33</td>
<td align="right">27335</td>
<td align="right">27785</td>
</tr>
<tr>
<td>11</td>
<td align="right">27085</td>
<td align="right">27535</td>
<td>34</td>
<td align="right">27345</td>
<td align="right">27795</td>
</tr>
<tr>
<td>12</td>
<td align="right">27105</td>
<td align="right">27555</td>
<td>35</td>
<td align="right">27355</td>
<td align="right">27805</td>
</tr>
<tr>
<td>13</td>
<td align="right">27115</td>
<td align="right">27565</td>
<td>36</td>
<td align="right">27365</td>
<td align="right">27815</td>
</tr>
<tr>
<td>14</td>
<td align="right">27125</td>
<td align="right">27575</td>
<td>37</td>
<td align="right">27375</td>
<td align="right">27825</td>
</tr>
<tr>
<td>15</td>
<td align="right">27135</td>
<td align="right">27585</td>
<td>38</td>
<td align="right">27385</td>
<td align="right">27835</td>
</tr>
<tr>
<td>16</td>
<td align="right">27155</td>
<td align="right">27605</td>
<td>39</td>
<td align="right">27395</td>
<td align="right">27845</td>
</tr>
<tr>
<td>17</td>
<td align="right">27165</td>
<td align="right">27615</td>
<td>40</td>
<td align="right">27405</td>
<td align="right">27855</td>
</tr>
<tr>
<td>18</td>
<td align="right">27175</td>
<td align="right">27625</td>
<td>41</td>
<td align="right">26995</td>
<td align="right"></td>
</tr>
<tr>
<td>19</td>
<td align="right">27185</td>
<td align="right">27635</td>
<td>42</td>
<td align="right">27045</td>
<td align="right"></td>
</tr>
<tr>
<td>20</td>
<td align="right">27205</td>
<td align="right">27655</td>
<td>43</td>
<td align="right">27095</td>
<td align="right"></td>
</tr>
<tr>
<td>21</td>
<td align="right">27215</td>
<td align="right">27665</td>
<td>44</td>
<td align="right">27145</td>
<td align="right"></td>
</tr>
<tr>
<td>22</td>
<td align="right">27225</td>
<td align="right">27675</td>
<td>45</td>
<td align="right">27195</td>
<td align="right"></td>
</tr>
<tr>
<td>23</td>
<td align="right">27255</td>
<td align="right">27705</td>
<td></td>
<td align="right"></td>
<td align="right"></td>
</tr>
</tbody>
</table>
<h4 id="основные-частоты-в-рф">Основные частоты в РФ</h4>
<table>
<thead>
<tr>
<th align="right">Част., МГц</th>
<th align="left">Мод.</th>
<th align="left">Назначение</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">27.065</td>
<td align="left">FM</td>
<td align="left">вызывной канал службы спасения</td>
</tr>
<tr>
<td align="right">27.135</td>
<td align="left">AM</td>
<td align="left">вызывной автомобильный канал</td>
</tr>
<tr>
<td align="right">27.185</td>
<td align="left">FM</td>
<td align="left">информационный канал</td>
</tr>
<tr>
<td align="right">27.190</td>
<td align="left">SSB</td>
<td align="left">вызывная DX</td>
</tr>
<tr>
<td align="right">27.200</td>
<td align="left">FM</td>
<td align="left">вызывной DX</td>
</tr>
<tr>
<td align="right">27.270</td>
<td align="left">AM</td>
<td align="left">QRP вызывной DX</td>
</tr>
</tbody>
</table>
<h3 id="авиа">Авиа</h3>
<table>
<thead>
<tr>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
<th align="left">Мод.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">118</td>
<td align="right">137</td>
<td align="left">AM</td>
</tr>
</tbody>
</table>
<h3 id="2-х-метровый">2-х метровый</h3>
<table>
<thead>
<tr>
<th>Название</th>
<th>f, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td>144.525000</td>
</tr>
<tr>
<td></td>
<td>144.550000</td>
</tr>
<tr>
<td></td>
<td>144.575000</td>
</tr>
<tr>
<td></td>
<td>144.600000</td>
</tr>
<tr>
<td>2MDIG1</td>
<td>144.625000</td>
</tr>
<tr>
<td>2MDIG2</td>
<td>144.650000</td>
</tr>
<tr>
<td>2MDIG3</td>
<td>144.675000</td>
</tr>
<tr>
<td></td>
<td>144.700000</td>
</tr>
<tr>
<td></td>
<td>144.725000</td>
</tr>
<tr>
<td></td>
<td>144.750000</td>
</tr>
<tr>
<td></td>
<td>144.775000</td>
</tr>
<tr>
<td></td>
<td>144.800000</td>
</tr>
<tr>
<td></td>
<td>144.825000</td>
</tr>
<tr>
<td></td>
<td>144.850000</td>
</tr>
<tr>
<td></td>
<td>144.875000</td>
</tr>
<tr>
<td></td>
<td>144.900000</td>
</tr>
<tr>
<td></td>
<td>144.925000</td>
</tr>
<tr>
<td></td>
<td>144.950000</td>
</tr>
<tr>
<td></td>
<td>144.975000</td>
</tr>
<tr>
<td>2MREP0</td>
<td>145.000000</td>
</tr>
<tr>
<td>2MREP1</td>
<td>145.025000</td>
</tr>
<tr>
<td>2MREP2</td>
<td>145.050000</td>
</tr>
<tr>
<td>2MREP3</td>
<td>145.075000</td>
</tr>
<tr>
<td>2MREP4</td>
<td>145.100000</td>
</tr>
<tr>
<td>2MREP5</td>
<td>145.125000</td>
</tr>
<tr>
<td>2MREP6</td>
<td>145.150000</td>
</tr>
<tr>
<td>2MREP7</td>
<td>145.175000</td>
</tr>
<tr>
<td>2MREP8</td>
<td>145.200000</td>
</tr>
<tr>
<td></td>
<td>145.225000</td>
</tr>
<tr>
<td></td>
<td>145.250000</td>
</tr>
<tr>
<td></td>
<td>145.275000</td>
</tr>
<tr>
<td></td>
<td>145.300000</td>
</tr>
<tr>
<td></td>
<td>145.325000</td>
</tr>
<tr>
<td></td>
<td>145.350000</td>
</tr>
<tr>
<td></td>
<td>145.375000</td>
</tr>
<tr>
<td></td>
<td>145.400000</td>
</tr>
<tr>
<td></td>
<td>145.425000</td>
</tr>
<tr>
<td></td>
<td>145.450000</td>
</tr>
<tr>
<td></td>
<td>145.475000</td>
</tr>
<tr>
<td></td>
<td>145.500000</td>
</tr>
<tr>
<td></td>
<td>145.525000</td>
</tr>
<tr>
<td>2MCALL</td>
<td>145.550000</td>
</tr>
<tr>
<td></td>
<td>145.575000</td>
</tr>
<tr>
<td>2MREP9</td>
<td>145.600000</td>
</tr>
<tr>
<td>2MRP10</td>
<td>145.625000</td>
</tr>
<tr>
<td>2MRP11</td>
<td>145.650000</td>
</tr>
<tr>
<td>2MRP12</td>
<td>145.675000</td>
</tr>
<tr>
<td>2MRP13</td>
<td>145.700000</td>
</tr>
<tr>
<td>2MRP14</td>
<td>145.725000</td>
</tr>
<tr>
<td>2MRP15</td>
<td>145.750000</td>
</tr>
<tr>
<td>2MRP16</td>
<td>145.775000</td>
</tr>
<tr>
<td>2MRP17</td>
<td>145.800000</td>
</tr>
</tbody>
</table>
<p>RP, REP — репитерные частоты<br>
CALL — вызвыная частота 145.550 МГц</p>
<h3 id="жд">ЖД</h3>
<table>
<thead>
<tr>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
<th align="left">Мод.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">151,7125</td>
<td align="right">154,0125</td>
<td align="left">FM</td>
</tr>
<tr>
<td align="right">154,9875</td>
<td align="right">156,0125</td>
<td align="left">FM</td>
</tr>
<tr>
<td align="right">307,0000</td>
<td align="right">307,4635</td>
<td align="left">FM*</td>
</tr>
<tr>
<td align="right">343,0000</td>
<td align="right">343,4625</td>
<td align="left">FM*</td>
</tr>
<tr>
<td align="right">865,9</td>
<td align="right">869,0</td>
<td align="left">FM**</td>
</tr>
</tbody>
</table>
<p>* — ремонтные работы<br>
** — цифра, Система автоматической идентификации (САИ) «Пальма»</p>
<h3 id="морской">Морской</h3>
<table>
<thead>
<tr>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
<th align="left">Мод.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">156,000</td>
<td align="right">163,275</td>
<td align="left">FM</td>
</tr>
</tbody>
</table>
<p>Сетка частот поделена на 2 диапазона с каналами 0-28 и 60-88. Шаг сетки внутри диапазона 50кГц. Модуляция NFM.</p>
<p>Диапазон 1:</p>
<table>
<thead>
<tr>
<th align="right">Канал</th>
<th align="right">Частота судовой р/с, МГц</th>
<th align="right">Частота береговой р/с, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">0</td>
<td align="right">156,000</td>
<td align="right">160,600</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">156,050</td>
<td align="right">160,650</td>
</tr>
<tr>
<td align="right">2</td>
<td align="right">156,100</td>
<td align="right">160,700</td>
</tr>
<tr>
<td align="right">3</td>
<td align="right">156,150</td>
<td align="right">160,750</td>
</tr>
<tr>
<td align="right">4</td>
<td align="right">156,200</td>
<td align="right">160,800</td>
</tr>
<tr>
<td align="right">5</td>
<td align="right">156,250</td>
<td align="right">160,850</td>
</tr>
<tr>
<td align="right">6</td>
<td align="right">156,300</td>
<td align="right">156,300</td>
</tr>
<tr>
<td align="right">7</td>
<td align="right">156,350</td>
<td align="right">160,950</td>
</tr>
<tr>
<td align="right">8</td>
<td align="right">156,400</td>
<td align="right">156,400</td>
</tr>
<tr>
<td align="right">9</td>
<td align="right">156,450</td>
<td align="right">156,450</td>
</tr>
<tr>
<td align="right">10</td>
<td align="right">156,500</td>
<td align="right">156,500</td>
</tr>
<tr>
<td align="right">11</td>
<td align="right">156,550</td>
<td align="right">156,550</td>
</tr>
<tr>
<td align="right">12</td>
<td align="right">156,600</td>
<td align="right">156,600</td>
</tr>
<tr>
<td align="right">13</td>
<td align="right">156,650</td>
<td align="right">156,650</td>
</tr>
<tr>
<td align="right">14</td>
<td align="right">156,700</td>
<td align="right">156,700</td>
</tr>
<tr>
<td align="right">15</td>
<td align="right">156,750</td>
<td align="right">156,750</td>
</tr>
<tr>
<td align="right">*16</td>
<td align="right">156,800</td>
<td align="right">156,800</td>
</tr>
<tr>
<td align="right">17</td>
<td align="right">156,850</td>
<td align="right">156,825</td>
</tr>
<tr>
<td align="right">18</td>
<td align="right">156,900</td>
<td align="right">161,500</td>
</tr>
<tr>
<td align="right">19</td>
<td align="right">156,950</td>
<td align="right">161,550</td>
</tr>
<tr>
<td align="right">20</td>
<td align="right">157,000</td>
<td align="right">161,600</td>
</tr>
<tr>
<td align="right">21</td>
<td align="right">157,050</td>
<td align="right">161,650</td>
</tr>
<tr>
<td align="right">22</td>
<td align="right">157,100</td>
<td align="right">161,700</td>
</tr>
<tr>
<td align="right">23</td>
<td align="right">157,150</td>
<td align="right">161,750</td>
</tr>
<tr>
<td align="right">24</td>
<td align="right">157,200</td>
<td align="right">161,800</td>
</tr>
<tr>
<td align="right">25</td>
<td align="right">157,250</td>
<td align="right">161,850</td>
</tr>
<tr>
<td align="right">26</td>
<td align="right">157,300</td>
<td align="right">161,900</td>
</tr>
<tr>
<td align="right">27</td>
<td align="right">157,350</td>
<td align="right">161,950</td>
</tr>
<tr>
<td align="right">28</td>
<td align="right">157,400</td>
<td align="right">162,000</td>
</tr>
</tbody>
</table>
<p>Диапазон 2:</p>
<table>
<thead>
<tr>
<th align="right">Канал</th>
<th align="right">Частота судовой р/с, МГц</th>
<th align="right">Частота береговой р/с, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">60</td>
<td align="right">156,025</td>
<td align="right">160,625</td>
</tr>
<tr>
<td align="right">61</td>
<td align="right">156,075</td>
<td align="right">160,675</td>
</tr>
<tr>
<td align="right">62</td>
<td align="right">156,125</td>
<td align="right">160,725</td>
</tr>
<tr>
<td align="right">63</td>
<td align="right">156,175</td>
<td align="right">160,775</td>
</tr>
<tr>
<td align="right">64</td>
<td align="right">156,225</td>
<td align="right">160,825</td>
</tr>
<tr>
<td align="right">65</td>
<td align="right">156,275</td>
<td align="right">160,875</td>
</tr>
<tr>
<td align="right">66</td>
<td align="right">156,325</td>
<td align="right">160,925</td>
</tr>
<tr>
<td align="right">67</td>
<td align="right">156,375</td>
<td align="right">156,375</td>
</tr>
<tr>
<td align="right">68</td>
<td align="right">156,425</td>
<td align="right">156,425</td>
</tr>
<tr>
<td align="right">69</td>
<td align="right">156,475</td>
<td align="right">156,475</td>
</tr>
<tr>
<td align="right">70</td>
<td align="right">156,525</td>
<td align="right">156,525</td>
</tr>
<tr>
<td align="right">71</td>
<td align="right">156,575</td>
<td align="right">156,575</td>
</tr>
<tr>
<td align="right">72</td>
<td align="right">156,625</td>
<td align="right">156,625</td>
</tr>
<tr>
<td align="right">73</td>
<td align="right">156,675</td>
<td align="right">156,675</td>
</tr>
<tr>
<td align="right">74</td>
<td align="right">156,725</td>
<td align="right">156,725</td>
</tr>
<tr>
<td align="right">75</td>
<td align="right">156,775</td>
<td align="right">156,775</td>
</tr>
<tr>
<td align="right">76</td>
<td align="right">156,825</td>
<td align="right">156,825</td>
</tr>
<tr>
<td align="right">77</td>
<td align="right">156,875</td>
<td align="right">156,875</td>
</tr>
<tr>
<td align="right">78</td>
<td align="right">156,925</td>
<td align="right">161,525</td>
</tr>
<tr>
<td align="right">79</td>
<td align="right">156,975</td>
<td align="right">161,575</td>
</tr>
<tr>
<td align="right">80</td>
<td align="right">157,025</td>
<td align="right">161,625</td>
</tr>
<tr>
<td align="right">81</td>
<td align="right">157,075</td>
<td align="right">161,675</td>
</tr>
<tr>
<td align="right">82</td>
<td align="right">157,125</td>
<td align="right">161,725</td>
</tr>
<tr>
<td align="right">83</td>
<td align="right">157,175</td>
<td align="right">161,775</td>
</tr>
<tr>
<td align="right">84</td>
<td align="right">157,225</td>
<td align="right">161,825</td>
</tr>
<tr>
<td align="right">85</td>
<td align="right">157,275</td>
<td align="right">161,875</td>
</tr>
<tr>
<td align="right">86</td>
<td align="right">157,325</td>
<td align="right">161,925</td>
</tr>
<tr>
<td align="right">87B</td>
<td align="right">161,975</td>
<td align="right">161,975</td>
</tr>
<tr>
<td align="right">88B</td>
<td align="right">162,025</td>
<td align="right">162,025</td>
</tr>
</tbody>
</table>
<ul>
<li><em>Канал 16: международный, используется для вызова судов и подачи сигналов бедствия.</em>;</li>
<li>Каналы 12, 14: связь Судно-Порт;</li>
<li>Канал 13: используется для связи между судами, касающейся безопасности судовождения;</li>
<li>Каналы 24-28: связь Судно-Береговая радиостанция;</li>
<li>Канал 70: цифровой избирательный вызов при бедствии, автоматическая подача сигнала бедствия.</li>
</ul>
<h3 id="satcom-сатком-спутниковая-связь">SatCom (Сатком, спутниковая связь)</h3>
<table>
<thead>
<tr>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
<th align="left">Мод.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">243</td>
<td align="right">270</td>
<td align="left">FM</td>
</tr>
</tbody>
</table>
<p>Список &ldquo;активных&rdquo; частот и про изготовление антенн: <a href="https://uhf-satcom.com/satellite-reception/uhf" target=_blank rel="noopener noreferrer">uhf-satcom.com</a></p>
<p>Мониторинг стволов satcom через сеть интернет:</p>
<ul>
<li><a href="https://rikmotik.ru" target=_blank rel="noopener noreferrer">Крым</a></li>
<li><a href="http://satcomdv.chickenkiller.com/" target=_blank rel="noopener noreferrer">Дальневосточный SDR</a></li>
<li>Красноярский край <a href="http://webradio.sytes.net:8080/" target=_blank rel="noopener noreferrer">242-258 Мгц</a> <a href="http://webradio.sytes.net:8081/" target=_blank rel="noopener noreferrer">258-280 Мгц</a></li>
<li><a href="https://sdr.gudynas.lt/#freq=255260" target=_blank rel="noopener noreferrer">Латвийский</a></li>
<li><a href="http://109.120.246.103:8073/#freq=255550000,mod=nfm,sql=-55" target=_blank rel="noopener noreferrer">Богарский</a></li>
</ul>
<h3 id="речной">Речной</h3>
<table>
<thead>
<tr>
<th align="right">от, МГц</th>
<th align="right">до, МГц</th>
<th align="left">Мод.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">300,0125</td>
<td align="right">300,5125</td>
<td align="left">FM</td>
</tr>
<tr>
<td align="right">336,0125</td>
<td align="right">336,5125</td>
<td align="left">FM</td>
</tr>
</tbody>
</table>
<p><em>Частоты, утверждённые Службой Речного флота Министерства транспорта РФ:</em></p>
<table>
<thead>
<tr>
<th align="left">Канал</th>
<th align="right">f, МГц</th>
<th align="left">Назначение</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">2</td>
<td align="right">300,050</td>
<td align="left">связь между судами</td>
</tr>
<tr>
<td align="left">3</td>
<td align="right">300,100</td>
<td align="left">связь с диспетчерами шлюзов</td>
</tr>
<tr>
<td align="left">4</td>
<td align="right">300,150</td>
<td align="left">связь с другими службами речфлота</td>
</tr>
<tr>
<td align="left">5</td>
<td align="right">300,200</td>
<td align="left">вызов судов, согласование маневриров</td>
</tr>
<tr>
<td align="left">25</td>
<td align="right">336,200</td>
<td align="left">связь между яхтами</td>
</tr>
<tr>
<td align="left">43</td>
<td align="right">300,125</td>
<td align="left">связь между яхтами</td>
</tr>
</tbody>
</table>
<h3 id="lpd-low-power-device">LPD (Low Power Device)</h3>
<p>Шаг: 25 кГц.<br>
Допустимая мощность: 10 мВт.<br>
Вызывной канал: 18.</p>
<p><em>Канал - CH, частота (МГц) - f</em></p>
<table>
<thead>
<tr>
<th align="right">CH</th>
<th align="right">f</th>
<th align="right">CH</th>
<th align="right">f</th>
<th align="right">CH</th>
<th align="right">f</th>
<th align="right">CH</th>
<th align="right">f</th>
<th align="right">CH</th>
<th align="right">f</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td align="right">433,075</td>
<td align="right">17</td>
<td align="right">433,475</td>
<td align="right">33</td>
<td align="right">433,875</td>
<td align="right">49</td>
<td align="right">434,275</td>
<td align="right">65</td>
<td align="right">434,675</td>
</tr>
<tr>
<td align="right">2</td>
<td align="right">433,100</td>
<td align="right">18</td>
<td align="right">433,500</td>
<td align="right">34</td>
<td align="right">433,900</td>
<td align="right">50</td>
<td align="right">434,300</td>
<td align="right">66</td>
<td align="right">434,700</td>
</tr>
<tr>
<td align="right">3</td>
<td align="right">433,125</td>
<td align="right">19</td>
<td align="right">433,525</td>
<td align="right">35</td>
<td align="right">433,925</td>
<td align="right">51</td>
<td align="right">434,325</td>
<td align="right">67</td>
<td align="right">434,725</td>
</tr>
<tr>
<td align="right">4</td>
<td align="right">433,150</td>
<td align="right">20</td>
<td align="right">433,550</td>
<td align="right">36</td>
<td align="right">433,950</td>
<td align="right">52</td>
<td align="right">434,350</td>
<td align="right">68</td>
<td align="right">434,750</td>
</tr>
<tr>
<td align="right">5</td>
<td align="right">433,175</td>
<td align="right">21</td>
<td align="right">433,575</td>
<td align="right">37</td>
<td align="right">433,975</td>
<td align="right">53</td>
<td align="right">434,375</td>
<td align="right">69</td>
<td align="right">434,775</td>
</tr>
<tr>
<td align="right">6</td>
<td align="right">433,200</td>
<td align="right">22</td>
<td align="right">433,600</td>
<td align="right">38</td>
<td align="right">434,000</td>
<td align="right">54</td>
<td align="right">434,400</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">7</td>
<td align="right">433,225</td>
<td align="right">23</td>
<td align="right">433,625</td>
<td align="right">39</td>
<td align="right">434,025</td>
<td align="right">55</td>
<td align="right">434,425</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">8</td>
<td align="right">433,250</td>
<td align="right">24</td>
<td align="right">433,650</td>
<td align="right">40</td>
<td align="right">434,050</td>
<td align="right">56</td>
<td align="right">434,450</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">9</td>
<td align="right">433,275</td>
<td align="right">25</td>
<td align="right">433,675</td>
<td align="right">41</td>
<td align="right">434,075</td>
<td align="right">57</td>
<td align="right">434,475</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">10</td>
<td align="right">433,300</td>
<td align="right">26</td>
<td align="right">433,700</td>
<td align="right">42</td>
<td align="right">434,100</td>
<td align="right">58</td>
<td align="right">434,500</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">11</td>
<td align="right">433,325</td>
<td align="right">27</td>
<td align="right">433,725</td>
<td align="right">43</td>
<td align="right">434,125</td>
<td align="right">59</td>
<td align="right">434,525</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">12</td>
<td align="right">433,350</td>
<td align="right">28</td>
<td align="right">433,750</td>
<td align="right">44</td>
<td align="right">434,150</td>
<td align="right">60</td>
<td align="right">434,550</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">13</td>
<td align="right">433,375</td>
<td align="right">29</td>
<td align="right">433,775</td>
<td align="right">45</td>
<td align="right">434,175</td>
<td align="right">61</td>
<td align="right">434,575</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">14</td>
<td align="right">433,400</td>
<td align="right">30</td>
<td align="right">433,800</td>
<td align="right">46</td>
<td align="right">434,200</td>
<td align="right">62</td>
<td align="right">434,600</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">15</td>
<td align="right">433,425</td>
<td align="right">31</td>
<td align="right">433,825</td>
<td align="right">47</td>
<td align="right">434,225</td>
<td align="right">63</td>
<td align="right">434,625</td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">16</td>
<td align="right">433,450</td>
<td align="right">32</td>
<td align="right">433,850</td>
<td align="right">48</td>
<td align="right">434,250</td>
<td align="right">64</td>
<td align="right">434,650</td>
<td align="right"></td>
<td align="right"></td>
</tr>
</tbody>
</table>
<h3 id="pmr-private-mobile-radio">PMR (Private Mobile Radio)</h3>
<p>Шаг: 12,5 кГц.<br>
Допустимая мощность: 0,5 Вт.<br>
Вызывной канал: 8.</p>
<p><em>Канал - CH, частота (МГц) - f</em></p>
<table>
<thead>
<tr>
<th>CH</th>
<th>f</th>
<th>CH</th>
<th>f</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>446,00625</td>
<td>9*</td>
<td>446,10625</td>
</tr>
<tr>
<td>2</td>
<td>446,01875</td>
<td>10*</td>
<td>446,11875</td>
</tr>
<tr>
<td>3</td>
<td>446,03125</td>
<td>11*</td>
<td>446,13125</td>
</tr>
<tr>
<td>4</td>
<td>446,04375</td>
<td>12*</td>
<td>446,14375</td>
</tr>
<tr>
<td>5</td>
<td>446,05625</td>
<td>13*</td>
<td>446,15625</td>
</tr>
<tr>
<td>6</td>
<td>446,06875</td>
<td>14*</td>
<td>446,16875</td>
</tr>
<tr>
<td>7</td>
<td>446,08125</td>
<td>15*</td>
<td>446,18125</td>
</tr>
<tr>
<td>8</td>
<td>446,09375</td>
<td>16*</td>
<td>446,19375</td>
</tr>
</tbody>
</table>
<p>* С февраля 2021 года в РФ разрешено использование только частот 446,0000—446,1000 МГц.<br>
Решение действует до 1 ноября 2025 года.</p>
<h3 id="gsm900">GSM900</h3>
<ul>
<li>uplink: 890-915 МГц</li>
<li>downlink: 935-960 МГц</li>
</ul>
<table>
<thead>
<tr>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
<th align="right">CH</th>
<th align="right">uplink</th>
<th align="right">downlink</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td align="right">890,2</td>
<td align="right">935,2</td>
<td align="right">21</td>
<td align="right">894,2</td>
<td align="right">939,2</td>
<td align="right">41</td>
<td align="right">898,2</td>
<td align="right">943,2</td>
<td align="right">61</td>
<td align="right">902,2</td>
<td align="right">947,2</td>
<td align="right">81</td>
<td align="right">906,2</td>
<td align="right">951,2</td>
<td align="right">101</td>
<td align="right">910,2</td>
<td align="right">955,2</td>
<td align="right">121</td>
<td align="right">914,2</td>
<td align="right">959,2</td>
</tr>
<tr>
<td align="right">2</td>
<td align="right">890,4</td>
<td align="right">935,4</td>
<td align="right">22</td>
<td align="right">894,4</td>
<td align="right">939,4</td>
<td align="right">42</td>
<td align="right">898,4</td>
<td align="right">943,4</td>
<td align="right">62</td>
<td align="right">902,4</td>
<td align="right">947,4</td>
<td align="right">82</td>
<td align="right">906,4</td>
<td align="right">951,4</td>
<td align="right">102</td>
<td align="right">910,4</td>
<td align="right">955,4</td>
<td align="right">122</td>
<td align="right">914,4</td>
<td align="right">959,4</td>
</tr>
<tr>
<td align="right">3</td>
<td align="right">890,6</td>
<td align="right">935,6</td>
<td align="right">23</td>
<td align="right">894,6</td>
<td align="right">939,6</td>
<td align="right">43</td>
<td align="right">898,6</td>
<td align="right">943,6</td>
<td align="right">63</td>
<td align="right">902,6</td>
<td align="right">947,6</td>
<td align="right">83</td>
<td align="right">906,6</td>
<td align="right">951,6</td>
<td align="right">103</td>
<td align="right">910,6</td>
<td align="right">955,6</td>
<td align="right">123</td>
<td align="right">914,6</td>
<td align="right">959,6</td>
</tr>
<tr>
<td align="right">4</td>
<td align="right">890,8</td>
<td align="right">935,8</td>
<td align="right">24</td>
<td align="right">894,8</td>
<td align="right">939,8</td>
<td align="right">44</td>
<td align="right">898,8</td>
<td align="right">943,8</td>
<td align="right">64</td>
<td align="right">902,8</td>
<td align="right">947,8</td>
<td align="right">84</td>
<td align="right">906,8</td>
<td align="right">951,8</td>
<td align="right">104</td>
<td align="right">910,8</td>
<td align="right">955,8</td>
<td align="right">124</td>
<td align="right">914,8</td>
<td align="right">959,8</td>
</tr>
<tr>
<td align="right">5</td>
<td align="right">891,0</td>
<td align="right">936,0</td>
<td align="right">25</td>
<td align="right">895,0</td>
<td align="right">940,0</td>
<td align="right">45</td>
<td align="right">899,0</td>
<td align="right">944,0</td>
<td align="right">65</td>
<td align="right">903,0</td>
<td align="right">948,0</td>
<td align="right">85</td>
<td align="right">907,0</td>
<td align="right">952,0</td>
<td align="right">105</td>
<td align="right">911,0</td>
<td align="right">956,0</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">6</td>
<td align="right">891,2</td>
<td align="right">936,2</td>
<td align="right">26</td>
<td align="right">895,2</td>
<td align="right">940,2</td>
<td align="right">46</td>
<td align="right">899,2</td>
<td align="right">944,2</td>
<td align="right">66</td>
<td align="right">903,2</td>
<td align="right">948,2</td>
<td align="right">86</td>
<td align="right">907,2</td>
<td align="right">952,2</td>
<td align="right">106</td>
<td align="right">911,2</td>
<td align="right">956,2</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">7</td>
<td align="right">891,4</td>
<td align="right">936,4</td>
<td align="right">27</td>
<td align="right">895,4</td>
<td align="right">940,4</td>
<td align="right">47</td>
<td align="right">899,4</td>
<td align="right">944,4</td>
<td align="right">67</td>
<td align="right">903,4</td>
<td align="right">948,4</td>
<td align="right">87</td>
<td align="right">907,4</td>
<td align="right">952,4</td>
<td align="right">107</td>
<td align="right">911,4</td>
<td align="right">956,4</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">8</td>
<td align="right">891,6</td>
<td align="right">936,6</td>
<td align="right">28</td>
<td align="right">895,6</td>
<td align="right">940,6</td>
<td align="right">48</td>
<td align="right">899,6</td>
<td align="right">944,6</td>
<td align="right">68</td>
<td align="right">903,6</td>
<td align="right">948,6</td>
<td align="right">88</td>
<td align="right">907,6</td>
<td align="right">952,6</td>
<td align="right">108</td>
<td align="right">911,6</td>
<td align="right">956,6</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">9</td>
<td align="right">891,8</td>
<td align="right">936,8</td>
<td align="right">29</td>
<td align="right">895,8</td>
<td align="right">940,8</td>
<td align="right">49</td>
<td align="right">899,8</td>
<td align="right">944,8</td>
<td align="right">69</td>
<td align="right">903,8</td>
<td align="right">948,8</td>
<td align="right">89</td>
<td align="right">907,8</td>
<td align="right">952,8</td>
<td align="right">109</td>
<td align="right">911,8</td>
<td align="right">956,8</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">10</td>
<td align="right">892,0</td>
<td align="right">937,0</td>
<td align="right">30</td>
<td align="right">896,0</td>
<td align="right">941,0</td>
<td align="right">50</td>
<td align="right">900,0</td>
<td align="right">945,0</td>
<td align="right">70</td>
<td align="right">904,0</td>
<td align="right">949,0</td>
<td align="right">90</td>
<td align="right">908,0</td>
<td align="right">953,0</td>
<td align="right">110</td>
<td align="right">912,0</td>
<td align="right">957,0</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">11</td>
<td align="right">892,2</td>
<td align="right">937,2</td>
<td align="right">31</td>
<td align="right">896,2</td>
<td align="right">941,2</td>
<td align="right">51</td>
<td align="right">900,2</td>
<td align="right">945,2</td>
<td align="right">71</td>
<td align="right">904,2</td>
<td align="right">949,2</td>
<td align="right">91</td>
<td align="right">908,2</td>
<td align="right">953,2</td>
<td align="right">111</td>
<td align="right">912,2</td>
<td align="right">957,2</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">12</td>
<td align="right">892,4</td>
<td align="right">937,4</td>
<td align="right">32</td>
<td align="right">896,4</td>
<td align="right">941,4</td>
<td align="right">52</td>
<td align="right">900,4</td>
<td align="right">945,4</td>
<td align="right">72</td>
<td align="right">904,4</td>
<td align="right">949,4</td>
<td align="right">92</td>
<td align="right">908,4</td>
<td align="right">953,4</td>
<td align="right">112</td>
<td align="right">912,4</td>
<td align="right">957,4</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">13</td>
<td align="right">892,6</td>
<td align="right">937,6</td>
<td align="right">33</td>
<td align="right">896,6</td>
<td align="right">941,6</td>
<td align="right">53</td>
<td align="right">900,6</td>
<td align="right">945,6</td>
<td align="right">73</td>
<td align="right">904,6</td>
<td align="right">949,6</td>
<td align="right">93</td>
<td align="right">908,6</td>
<td align="right">953,6</td>
<td align="right">113</td>
<td align="right">912,6</td>
<td align="right">957,6</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">14</td>
<td align="right">892,8</td>
<td align="right">937,8</td>
<td align="right">34</td>
<td align="right">896,8</td>
<td align="right">941,8</td>
<td align="right">54</td>
<td align="right">900,8</td>
<td align="right">945,8</td>
<td align="right">74</td>
<td align="right">904,8</td>
<td align="right">949,8</td>
<td align="right">94</td>
<td align="right">908,8</td>
<td align="right">953,8</td>
<td align="right">114</td>
<td align="right">912,8</td>
<td align="right">957,8</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">15</td>
<td align="right">893,0</td>
<td align="right">938,0</td>
<td align="right">35</td>
<td align="right">897,0</td>
<td align="right">942,0</td>
<td align="right">55</td>
<td align="right">901,0</td>
<td align="right">946,0</td>
<td align="right">75</td>
<td align="right">905,0</td>
<td align="right">950,0</td>
<td align="right">95</td>
<td align="right">909,0</td>
<td align="right">954,0</td>
<td align="right">115</td>
<td align="right">913,0</td>
<td align="right">958,0</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">16</td>
<td align="right">893,2</td>
<td align="right">938,2</td>
<td align="right">36</td>
<td align="right">897,2</td>
<td align="right">942,2</td>
<td align="right">56</td>
<td align="right">901,2</td>
<td align="right">946,2</td>
<td align="right">76</td>
<td align="right">905,2</td>
<td align="right">950,2</td>
<td align="right">96</td>
<td align="right">909,2</td>
<td align="right">954,2</td>
<td align="right">116</td>
<td align="right">913,2</td>
<td align="right">958,2</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">17</td>
<td align="right">893,4</td>
<td align="right">938,4</td>
<td align="right">37</td>
<td align="right">897,4</td>
<td align="right">942,4</td>
<td align="right">57</td>
<td align="right">901,4</td>
<td align="right">946,4</td>
<td align="right">77</td>
<td align="right">905,4</td>
<td align="right">950,4</td>
<td align="right">97</td>
<td align="right">909,4</td>
<td align="right">954,4</td>
<td align="right">117</td>
<td align="right">913,4</td>
<td align="right">958,4</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">18</td>
<td align="right">893,6</td>
<td align="right">938,6</td>
<td align="right">38</td>
<td align="right">897,6</td>
<td align="right">942,6</td>
<td align="right">58</td>
<td align="right">901,6</td>
<td align="right">946,6</td>
<td align="right">78</td>
<td align="right">905,6</td>
<td align="right">950,6</td>
<td align="right">98</td>
<td align="right">909,6</td>
<td align="right">954,6</td>
<td align="right">118</td>
<td align="right">913,6</td>
<td align="right">958,6</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">19</td>
<td align="right">893,8</td>
<td align="right">938,8</td>
<td align="right">39</td>
<td align="right">897,8</td>
<td align="right">942,8</td>
<td align="right">59</td>
<td align="right">901,8</td>
<td align="right">946,8</td>
<td align="right">79</td>
<td align="right">905,8</td>
<td align="right">950,8</td>
<td align="right">99</td>
<td align="right">909,8</td>
<td align="right">954,8</td>
<td align="right">119</td>
<td align="right">913,8</td>
<td align="right">958,8</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
<tr>
<td align="right">20</td>
<td align="right">894,0</td>
<td align="right">939,0</td>
<td align="right">40</td>
<td align="right">898,0</td>
<td align="right">943,0</td>
<td align="right">60</td>
<td align="right">902,0</td>
<td align="right">947,0</td>
<td align="right">80</td>
<td align="right">906,0</td>
<td align="right">951,0</td>
<td align="right">100</td>
<td align="right">910,0</td>
<td align="right">955,0</td>
<td align="right">120</td>
<td align="right">914,0</td>
<td align="right">959,0</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
</tr>
</tbody>
</table>
<h3 id="gsm-1800-dcs1800">GSM 1800 (DCS1800)</h3>
<ul>
<li>uplink: 1710-1785 МГц</li>
<li>downlink: 1805-1880 МГц</li>
</ul>
<h2 id="по-видам-модуляции">По видам модуляции</h2>
<h3 id="ssb">SSB</h3>
<table>
<thead>
<tr>
<th align="left">Полоса</th>
<th align="right">диап., м</th>
<th align="right">от, кГц</th>
<th align="right">до, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">LSB</td>
<td align="right">150</td>
<td align="right">1 800</td>
<td align="right">2 000</td>
</tr>
<tr>
<td align="left">LSB</td>
<td align="right">80</td>
<td align="right">3 600</td>
<td align="right">3 800</td>
</tr>
<tr>
<td align="left">LSB</td>
<td align="right">40</td>
<td align="right">7 000</td>
<td align="right">7 100</td>
</tr>
<tr>
<td align="left">USB</td>
<td align="right">20</td>
<td align="right">14 100</td>
<td align="right">14 350</td>
</tr>
</tbody>
</table>
<h3 id="cw">CW</h3>
<table>
<thead>
<tr>
<th align="right">от, кГц</th>
<th align="right">до, кГц</th>
<th align="right">диапазон, м</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">135,7</td>
<td align="right">137,4</td>
<td align="right">2200</td>
</tr>
<tr>
<td align="right">137,6</td>
<td align="right">137,8</td>
<td align="right">2200</td>
</tr>
<tr>
<td align="right">1 810</td>
<td align="right">2 000</td>
<td align="right">150</td>
</tr>
<tr>
<td align="right">3 500</td>
<td align="right">3 800</td>
<td align="right">90</td>
</tr>
<tr>
<td align="right">7 000</td>
<td align="right">7 200</td>
<td align="right">40</td>
</tr>
<tr>
<td align="right">10 100</td>
<td align="right">10 150</td>
<td align="right">30</td>
</tr>
<tr>
<td align="right">14 000</td>
<td align="right">14 099</td>
<td align="right">20</td>
</tr>
<tr>
<td align="right">14 101</td>
<td align="right">14 350</td>
<td align="right">20</td>
</tr>
<tr>
<td align="right">18 068</td>
<td align="right">18 109</td>
<td align="right">17</td>
</tr>
<tr>
<td align="right">18 111</td>
<td align="right">18 168</td>
<td align="right">17</td>
</tr>
<tr>
<td align="right">21 000</td>
<td align="right">21 149</td>
<td align="right">15</td>
</tr>
<tr>
<td align="right">21 151</td>
<td align="right">21 450</td>
<td align="right">15</td>
</tr>
<tr>
<td align="right">24 890</td>
<td align="right">24 929</td>
<td align="right">12</td>
</tr>
<tr>
<td align="right">24 931</td>
<td align="right">24 990</td>
<td align="right">12</td>
</tr>
<tr>
<td align="right">28 000</td>
<td align="right">28 199</td>
<td align="right">10</td>
</tr>
<tr>
<td align="right">28 201</td>
<td align="right">29 300</td>
<td align="right">10</td>
</tr>
<tr>
<td align="right">29 520</td>
<td align="right">29 700</td>
<td align="right">10</td>
</tr>
<tr>
<td align="right">144 000</td>
<td align="right">145 000</td>
<td align="right">2</td>
</tr>
<tr>
<td align="right">145 194</td>
<td align="right">145 594</td>
<td align="right">2</td>
</tr>
<tr>
<td align="right">145 794</td>
<td align="right">145 806</td>
<td align="right">2</td>
</tr>
<tr>
<td align="right">430 000</td>
<td align="right">433 000</td>
<td align="right">0,7</td>
</tr>
</tbody>
</table>
<h3 id="psk">PSK</h3>
<table>
<thead>
<tr>
<th align="right">частота, кГц</th>
<th align="right">диап., м</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1 838</td>
<td align="right">160</td>
</tr>
<tr>
<td align="right">3 580</td>
<td align="right">80</td>
</tr>
<tr>
<td align="right">7 035</td>
<td align="right">40</td>
</tr>
<tr>
<td align="right">7 040</td>
<td align="right">40</td>
</tr>
<tr>
<td align="right">10 142</td>
<td align="right">30</td>
</tr>
<tr>
<td align="right">14 070</td>
<td align="right">20</td>
</tr>
<tr>
<td align="right">18 100</td>
<td align="right">17</td>
</tr>
<tr>
<td align="right">21 080</td>
<td align="right">15</td>
</tr>
<tr>
<td align="right">24 920</td>
<td align="right">12</td>
</tr>
<tr>
<td align="right">28 120</td>
<td align="right">10</td>
</tr>
<tr>
<td align="right">50 290</td>
<td align="right">6</td>
</tr>
</tbody>
</table>
<h3 id="ft8-usb">FT8 (USB)</h3>
<table>
<thead>
<tr>
<th align="right">частота, кГц</th>
<th align="right">диап., м</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1 840</td>
<td align="right">160</td>
</tr>
<tr>
<td align="right">3 573</td>
<td align="right">80</td>
</tr>
<tr>
<td align="right">5 357</td>
<td align="right">60</td>
</tr>
<tr>
<td align="right">7 074</td>
<td align="right">40</td>
</tr>
<tr>
<td align="right">10 136</td>
<td align="right">30</td>
</tr>
<tr>
<td align="right">14 074</td>
<td align="right">20</td>
</tr>
<tr>
<td align="right">18 100</td>
<td align="right">17</td>
</tr>
<tr>
<td align="right">21 074</td>
<td align="right">15</td>
</tr>
<tr>
<td align="right">24 915</td>
<td align="right">12</td>
</tr>
<tr>
<td align="right">28 074</td>
<td align="right">10</td>
</tr>
</tbody>
</table>
<h2 id="по-назначению">По назначению</h2>
<h3 id="аварийные-частоты-кв-и-ук">Аварийные частоты КВ и УК</h3>
<p>Частоты, на которых можно предложить помощь или попросить её в случае черезвычайной ситуации:</p>
<p>1.931 SSB – Радиолюбительская Аварийная Служба Сибири<br>
2.182 – международная частота бедствия<br>
3.666 - частота взаимопомощи радиолюбителей Беларуси<br>
3.730 (запасная 3.651) SSB – РАС Сибири<br>
3.760 SSB – рекомендовано ГКРЧ РФ и IARU для РАС<br>
4.150 USB digi - ЦРЦ МЧС<br>
4.182 – международная частота бедствия<br>
7.110 (запасная 7.090) SSB – РАС Сибири<br>
8.364 – международная частота бедствия<br>
12.546 – международная частота бедствия<br>
14.292 SSB – РАС России<br>
14.300 (запасная 14.347) SSB – РАС Сибири<br>
18.160 SSB – рекомендовано ГКРЧ РФ и IARU для РАС<br>
21.360 SSB – рекомендовано ГКРЧ РФ и IARU для РАС<br>
27.065 (9с), 27.185 (19с) AM – аварийные каналы на Си-Би</p>
<p>121.5 AM – международная авиационная аварийная частота<br>
145.450 FM – рекомендовано ГКРЧ РФ и IARU для РАС<br>
156.800 FM – международная морская аварийная<br>
164.425 FM и 164.475 FM – ПСО МЧС
243МГц и 406,025МГц для переносных аварийных авиа радиомаяков<br>
300.200 FM – речной аварийный канал<br>
433.450 FM – рекомендовано ГКРЧ РФ и IARU для РАС<br>
466.09375 FM = 8 канал PMR с субтоном CTCSS 88,5 Гц – общеевропейская (горная) аварийная частота</p>
<p><noindex><strong>Вызов на такой частоте, не связанный с прямой угрозой жизни и здоровью является грубейшим нарушением международных норм связи и этических принципов.</strong></noindex></p>
<p>Стащено с <a href="https://radio23.ru/avarijnye-chastoty-kv-i-ukv" target=_blank rel="noopener noreferrer">radio23.ru</a></p>
<h3 id="радиолюбительские-спутники">Радиолюбительские спутники</h3>
<p>Субтон CTCSS 67 Гц. Работать можно только при наличии позывного.</p>
<table>
<thead>
<tr>
<th align="left">Название</th>
<th align="right">Down, МГц</th>
<th align="right">Up, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">SO-50</td>
<td align="right">436.795</td>
<td align="right">145.850</td>
</tr>
<tr>
<td align="left">AO-91 (Fox-1B)</td>
<td align="right">145.960</td>
<td align="right">435.250</td>
</tr>
<tr>
<td align="left">AO-92 (Fox-1D)</td>
<td align="right">145.880</td>
<td align="right">435.350</td>
</tr>
</tbody>
</table>
<h3 id="сигналы-точного-времени">Сигналы точного времени</h3>
<table>
<thead>
<tr>
<th align="left">место, позывной</th>
<th align="right">частота, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">UZB УЛВ4, Ташкент</td>
<td align="right">2 500</td>
</tr>
<tr>
<td align="left">RUS РВМ, Москва</td>
<td align="right">4 996</td>
</tr>
<tr>
<td align="left">UZB УЛВ4, Ташкент</td>
<td align="right">5 000</td>
</tr>
<tr>
<td align="left">RUS РИД, Иркутск</td>
<td align="right">5 004</td>
</tr>
<tr>
<td align="left">RUS РВМ, Москва</td>
<td align="right">9 996</td>
</tr>
<tr>
<td align="left">RUS РТА, Новосибирск</td>
<td align="right">10 000</td>
</tr>
<tr>
<td align="left">UZB УЛВ4, Ташкент</td>
<td align="right">10 000</td>
</tr>
<tr>
<td align="left">RUS РИД, Иркутск</td>
<td align="right">10 004</td>
</tr>
<tr>
<td align="left">RUS РВМ, Москва</td>
<td align="right">14 996</td>
</tr>
<tr>
<td align="left">RUS РТА, Новосибирск</td>
<td align="right">15 000</td>
</tr>
<tr>
<td align="left">RUS РИД, Иркутск</td>
<td align="right">15 004</td>
</tr>
</tbody>
</table>
<h3 id="sstv">SSTV</h3>
<table>
<thead>
<tr>
<th align="right">частота, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">3,730</td>
</tr>
<tr>
<td align="right">7,040</td>
</tr>
<tr>
<td align="right">14,230</td>
</tr>
<tr>
<td align="right">21,340</td>
</tr>
<tr>
<td align="right">28,680</td>
</tr>
<tr>
<td align="right">50,300</td>
</tr>
<tr>
<td align="right">144,500</td>
</tr>
<tr>
<td align="right">433,700</td>
</tr>
</tbody>
</table>
<h3 id="meteofax">METEOFAX</h3>
<table>
<thead>
<tr>
<th align="left">источник</th>
<th align="right">частота, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">JOMOC</td>
<td align="right">2 618</td>
</tr>
<tr>
<td align="left">DWD</td>
<td align="right">3 855</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">4 610</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">6 834</td>
</tr>
<tr>
<td align="left">DWD</td>
<td align="right">7 880</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">8 040</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">11 086</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">12 390</td>
</tr>
<tr>
<td align="left">DWD</td>
<td align="right">13 882</td>
</tr>
<tr>
<td align="left">JOMOC</td>
<td align="right">18 261</td>
</tr>
</tbody>
</table>
<p>DWD — Deutche Wetterdienst<br>
JOMOC — Joint Operational Meteorology and Oceanography Centre</p>
<h3 id="acars">ACARS</h3>
<p><em>ACARS — Airborne Communications Addressing and Reporting System (Адресно-отчётная система авиационной связи).</em></p>
<table>
<thead>
<tr>
<th align="left">Первичный</th>
<th align="right">f, МГц</th>
<th align="left">Модул.</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Нет</td>
<td align="right">131.525</td>
<td align="left">AM</td>
</tr>
<tr>
<td align="left">Да</td>
<td align="right">131.550</td>
<td align="left">AM</td>
</tr>
<tr>
<td align="left">Нет</td>
<td align="right">131.725</td>
<td align="left">AM</td>
</tr>
<tr>
<td align="left">Нет</td>
<td align="right">131.825</td>
<td align="left">AM</td>
</tr>
<tr>
<td align="left">Нет</td>
<td align="right">136.900</td>
<td align="left">AM</td>
</tr>
<tr>
<td align="left">Нет</td>
<td align="right">136.925</td>
<td align="left">AM</td>
</tr>
</tbody>
</table>
<h3 id="ads-b--азн-в">ADS-B / АЗН-В</h3>
<p><em>АЗН-В — автоматическое зависимое наблюдение-вещание, англ. ADS-B — automatic dependent surveillance-broadcast.</em></p>
<table>
<thead>
<tr>
<th align="left">Направление</th>
<th align="right">частота, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">запрос</td>
<td align="right">1 030</td>
</tr>
<tr>
<td align="left">ответ</td>
<td align="right">1 090</td>
</tr>
</tbody>
</table>
<h3 id="noaa-метеоспутники">NOAA метеоспутники</h3>
<table>
<thead>
<tr>
<th align="left">Спутник</th>
<th align="right">частота, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">NOAA-19</td>
<td align="right">137.1000</td>
</tr>
<tr>
<td align="left">NOAA-17</td>
<td align="right">137.5000</td>
</tr>
<tr>
<td align="left">NOAA-15</td>
<td align="right">137.6200</td>
</tr>
<tr>
<td align="left">NOAA-18</td>
<td align="right">137.9125</td>
</tr>
</tbody>
</table>
<h3 id="lorawan">LoRaWAN</h3>
<ul>
<li>Россия 864-869MHz;</li>
<li>Европейский союз 863-870MHz;</li>
<li>Европейский союз 433MHz;</li>
<li>США 902-928MHz;</li>
<li>Китай 779-787MHz.</li>
</ul>
<p>Частоты для России:</p>
<p>Основные, обязательные каналы</p>
<table>
<thead>
<tr>
<th align="right">CH</th>
<th align="right">f, МГц</th>
<th>Мод.</th>
<th align="right">BW, кГц</th>
<th align="right">Макс., мВт</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">0</td>
<td align="right">868,9</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">100</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">869,1</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">100</td>
</tr>
<tr>
<td align="right">LoraSTD</td>
<td align="right">864,6</td>
<td>SF7</td>
<td align="right">250</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">FSK</td>
<td align="right">864,8</td>
<td>FSK</td>
<td align="right">250</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">RX2</td>
<td align="right">869,1</td>
<td>SF12</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
</tbody>
</table>
<p>Дополнительные каналы</p>
<table>
<thead>
<tr>
<th align="right">CH</th>
<th align="right">f, МГц</th>
<th>Мод.</th>
<th align="right">BW, кГц</th>
<th align="right">Макс., мВт</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">2</td>
<td align="right">864,1</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">3</td>
<td align="right">864,3</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">4</td>
<td align="right">864,5</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">5</td>
<td align="right">864,7</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">6</td>
<td align="right">864,9</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">7</td>
<td align="right">866,1</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">8</td>
<td align="right">866,3</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">9</td>
<td align="right">866,5</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">10</td>
<td align="right">866,7</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">11</td>
<td align="right">866,9</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">12</td>
<td align="right">867,1</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">13</td>
<td align="right">867,3</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">14</td>
<td align="right">867,5</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">15</td>
<td align="right">867,7</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
<tr>
<td align="right">16</td>
<td align="right">867,9</td>
<td>MultiSF</td>
<td align="right">125</td>
<td align="right">25</td>
</tr>
</tbody>
</table>
<h3 id="тв">ТВ</h3>
<h4 id="метровые-волны-мв">Метровые волны (МВ)</h4>
<p>ТВ-диапазон I (МВ, каналы 1—2)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>49,75</td>
<td>56,25</td>
</tr>
<tr>
<td>2</td>
<td>59,25</td>
<td>65,75</td>
</tr>
</tbody>
</table>
<p>ТВ-диапазон II (МВ, каналы 3—5)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>3</td>
<td>77,25</td>
<td>83,75</td>
</tr>
<tr>
<td>4</td>
<td>85,25</td>
<td>91,75</td>
</tr>
<tr>
<td>5</td>
<td>93,25</td>
<td>99,75</td>
</tr>
</tbody>
</table>
<p>1-я кабельная полоса (каналы СК-1…8 или S1…8)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>S1</td>
<td>111,25</td>
<td>117,75</td>
</tr>
<tr>
<td>S2</td>
<td>119,25</td>
<td>125,75</td>
</tr>
<tr>
<td>S3</td>
<td>127,25</td>
<td>133,75</td>
</tr>
<tr>
<td>S4</td>
<td>135,25</td>
<td>141,75</td>
</tr>
<tr>
<td>S5</td>
<td>143,25</td>
<td>149,75</td>
</tr>
<tr>
<td>S6</td>
<td>151,25</td>
<td>157,75</td>
</tr>
<tr>
<td>S7</td>
<td>159,25</td>
<td>165,75</td>
</tr>
<tr>
<td>S8</td>
<td>167,25</td>
<td>173,75</td>
</tr>
</tbody>
</table>
<p>ТВ-диапазон III (МВ, каналы 6—12)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>6</td>
<td>175,25</td>
<td>181,75</td>
</tr>
<tr>
<td>7</td>
<td>183,25</td>
<td>189,75</td>
</tr>
<tr>
<td>8</td>
<td>191,25</td>
<td>197,75</td>
</tr>
<tr>
<td>9</td>
<td>199,25</td>
<td>205,75</td>
</tr>
<tr>
<td>10</td>
<td>207,25</td>
<td>213,75</td>
</tr>
<tr>
<td>11</td>
<td>215,25</td>
<td>221,75</td>
</tr>
<tr>
<td>12</td>
<td>223,25</td>
<td>229,75</td>
</tr>
</tbody>
</table>
<p>2-я кабельная полоса (каналы СК-11…19 или S11…19)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>S11</td>
<td>231,25</td>
<td>237,75</td>
</tr>
<tr>
<td>S12</td>
<td>239,25</td>
<td>245,75</td>
</tr>
<tr>
<td>S13</td>
<td>247,25</td>
<td>253,75</td>
</tr>
<tr>
<td>S14</td>
<td>255,25</td>
<td>261,75</td>
</tr>
<tr>
<td>S15</td>
<td>263,25</td>
<td>269,75</td>
</tr>
<tr>
<td>S16</td>
<td>271,25</td>
<td>277,75</td>
</tr>
<tr>
<td>S17</td>
<td>279,25</td>
<td>285,75</td>
</tr>
<tr>
<td>S18</td>
<td>287,25</td>
<td>293,75</td>
</tr>
<tr>
<td>S19</td>
<td>295,25</td>
<td>301,75</td>
</tr>
</tbody>
</table>
<h4 id="дециметровые-волны-дмв">Дециметровые волны (ДМВ)</h4>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>S20</td>
<td>303,25</td>
<td>309,75</td>
</tr>
<tr>
<td>S21</td>
<td>311,25</td>
<td>317,75</td>
</tr>
<tr>
<td>S22</td>
<td>319,25</td>
<td>325,75</td>
</tr>
<tr>
<td>S23</td>
<td>327,25</td>
<td>333,75</td>
</tr>
<tr>
<td>S24</td>
<td>335,25</td>
<td>341,75</td>
</tr>
<tr>
<td>S25</td>
<td>343,25</td>
<td>349,75</td>
</tr>
<tr>
<td>S26</td>
<td>351,25</td>
<td>357,75</td>
</tr>
<tr>
<td>S27</td>
<td>359,25</td>
<td>365,75</td>
</tr>
<tr>
<td>S28</td>
<td>367,25</td>
<td>373,75</td>
</tr>
<tr>
<td>S29</td>
<td>375,25</td>
<td>381,75</td>
</tr>
<tr>
<td>S30</td>
<td>383,25</td>
<td>389,75</td>
</tr>
<tr>
<td>S31</td>
<td>391,25</td>
<td>397,75</td>
</tr>
<tr>
<td>S32</td>
<td>399,25</td>
<td>405,75</td>
</tr>
<tr>
<td>S33</td>
<td>407,25</td>
<td>413,75</td>
</tr>
<tr>
<td>S34</td>
<td>415,25</td>
<td>421,75</td>
</tr>
<tr>
<td>S35</td>
<td>423,25</td>
<td>429,75</td>
</tr>
<tr>
<td>S36</td>
<td>431,25</td>
<td>437,75</td>
</tr>
<tr>
<td>S37</td>
<td>439,25</td>
<td>445,75</td>
</tr>
<tr>
<td>S38</td>
<td>447,25</td>
<td>453,75</td>
</tr>
<tr>
<td>S39</td>
<td>455,25</td>
<td>461,75</td>
</tr>
<tr>
<td>S40</td>
<td>463,25</td>
<td>469,75</td>
</tr>
</tbody>
</table>
<p>ТВ-диапазон IV (ДМВ, каналы 21—34)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>21</td>
<td>471,25</td>
<td>477,75</td>
</tr>
<tr>
<td>22</td>
<td>479,25</td>
<td>485,75</td>
</tr>
<tr>
<td>23</td>
<td>487,25</td>
<td>493,75</td>
</tr>
<tr>
<td>24</td>
<td>495,25</td>
<td>501,75</td>
</tr>
<tr>
<td>25</td>
<td>503,25</td>
<td>509,75</td>
</tr>
<tr>
<td>26</td>
<td>511,25</td>
<td>517,75</td>
</tr>
<tr>
<td>27</td>
<td>519,25</td>
<td>525,75</td>
</tr>
<tr>
<td>28</td>
<td>527,25</td>
<td>533,75</td>
</tr>
<tr>
<td>29</td>
<td>535,25</td>
<td>541,75</td>
</tr>
<tr>
<td>30</td>
<td>543,25</td>
<td>549,75</td>
</tr>
<tr>
<td>31</td>
<td>551,25</td>
<td>557,75</td>
</tr>
<tr>
<td>32</td>
<td>559,25</td>
<td>565,75</td>
</tr>
<tr>
<td>33</td>
<td>567,25</td>
<td>573,75</td>
</tr>
<tr>
<td>34</td>
<td>575,25</td>
<td>581,75</td>
</tr>
</tbody>
</table>
<p>ТВ-диапазон V (ДМВ, каналы 35—60)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>35</td>
<td>583,25</td>
<td>589,75</td>
</tr>
<tr>
<td>36</td>
<td>591,25</td>
<td>597,75</td>
</tr>
<tr>
<td>37</td>
<td>599,25</td>
<td>605,75</td>
</tr>
<tr>
<td>38</td>
<td>607,25</td>
<td>613,75</td>
</tr>
<tr>
<td>39</td>
<td>615,25</td>
<td>621,75</td>
</tr>
<tr>
<td>40</td>
<td>623,25</td>
<td>629,75</td>
</tr>
<tr>
<td>41</td>
<td>631,25</td>
<td>637,75</td>
</tr>
<tr>
<td>42</td>
<td>639,25</td>
<td>645,75</td>
</tr>
<tr>
<td>43</td>
<td>647,25</td>
<td>653,75</td>
</tr>
<tr>
<td>44</td>
<td>655,25</td>
<td>661,75</td>
</tr>
<tr>
<td>45</td>
<td>663,25</td>
<td>669,75</td>
</tr>
<tr>
<td>46</td>
<td>671,25</td>
<td>677,75</td>
</tr>
<tr>
<td>47</td>
<td>679,25</td>
<td>685,75</td>
</tr>
<tr>
<td>48</td>
<td>687,25</td>
<td>693,75</td>
</tr>
<tr>
<td>49</td>
<td>695,25</td>
<td>701,75</td>
</tr>
<tr>
<td>50</td>
<td>703,25</td>
<td>709,75</td>
</tr>
<tr>
<td>51</td>
<td>711,25</td>
<td>717,75</td>
</tr>
<tr>
<td>52</td>
<td>719,25</td>
<td>725,75</td>
</tr>
<tr>
<td>53</td>
<td>727,25</td>
<td>733,75</td>
</tr>
<tr>
<td>54</td>
<td>735,25</td>
<td>741,75</td>
</tr>
<tr>
<td>55</td>
<td>743,25</td>
<td>749,75</td>
</tr>
<tr>
<td>56</td>
<td>751,25</td>
<td>757,75</td>
</tr>
<tr>
<td>57</td>
<td>759,25</td>
<td>765,75</td>
</tr>
<tr>
<td>58</td>
<td>767,25</td>
<td>773,75</td>
</tr>
<tr>
<td>59</td>
<td>775,25</td>
<td>781,75</td>
</tr>
<tr>
<td>60</td>
<td>783,25</td>
<td>789,75</td>
</tr>
</tbody>
</table>
<p>Дополнительный кабельный диапазон (ДМВ, каналы 61—69)</p>
<table>
<thead>
<tr>
<th>Номер ТВ канала</th>
<th>Видео, МГц</th>
<th>Звук, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td>61</td>
<td>791,25</td>
<td>797,75</td>
</tr>
<tr>
<td>62</td>
<td>799,25</td>
<td>805,75</td>
</tr>
<tr>
<td>63</td>
<td>807,25</td>
<td>813,75</td>
</tr>
<tr>
<td>64</td>
<td>815,25</td>
<td>821,75</td>
</tr>
<tr>
<td>65</td>
<td>823,25</td>
<td>829,75</td>
</tr>
<tr>
<td>66</td>
<td>831,25</td>
<td>837,75</td>
</tr>
<tr>
<td>67</td>
<td>839,25</td>
<td>845,75</td>
</tr>
<tr>
<td>68</td>
<td>847,25</td>
<td>853,75</td>
</tr>
<tr>
<td>69</td>
<td>855,25</td>
<td>861,75</td>
</tr>
</tbody>
</table>
<h2 id="частные-случаи">Частные случаи</h2>
<h3 id="мкс-частоты">МКС частоты</h3>
<table>
<thead>
<tr>
<th align="left">Назначение</th>
<th align="left">Линк</th>
<th align="right">частота, МГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Голос и SSTV</td>
<td align="left">down</td>
<td align="right">145.80</td>
</tr>
<tr>
<td align="left">Голос</td>
<td align="left">up</td>
<td align="right">* 144.49</td>
</tr>
<tr>
<td align="left">Голос</td>
<td align="left">up</td>
<td align="right">** 145.20</td>
</tr>
<tr>
<td align="left">Packet</td>
<td align="left">оба</td>
<td align="right">145.825</td>
</tr>
<tr>
<td align="left">Packet</td>
<td align="left">оба</td>
<td align="right">437.550</td>
</tr>
<tr>
<td align="left">Репитер, субтон 67 Hz</td>
<td align="left">up</td>
<td align="right">145.99</td>
</tr>
<tr>
<td align="left">Репитер</td>
<td align="left">down</td>
<td align="right">437.80</td>
</tr>
</tbody>
</table>
<p>* - ITU регионы 2, 3 (Америка, Тихий океан и Южная Азия)<br>
** - ITU регион 1 (Европа, Россия и Африка)</p>
<p>Позывные:</p>
<ul>
<li>Russian: <code>RS0ISS</code></li>
<li>USA: <code>NA1SS</code></li>
<li>European: <code>DP0ISS</code>, <code>OR4ISS</code>, <code>IR0ISS</code></li>
</ul>
<h2 id="по-времени-суток-dx">По времени суток (DX)</h2>
<table>
<thead>
<tr>
<th align="left">время</th>
<th align="left">диап., м</th>
<th align="left">частота, кГц</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">день</td>
<td align="left">10–25</td>
<td align="left">12 000–30 000</td>
</tr>
<tr>
<td align="left">ночь</td>
<td align="left">30–100</td>
<td align="left">3 000–10 000</td>
</tr>
</tbody>
</table>
<center>
<a href="https://www.hamqsl.com/solar.html" title="Click to add Solar-Terrestrial Data to your website!"><img src="https://www.hamqsl.com/solarbc.php"></a>
</center>
<h2 id="по-длине-волны">По длине волны</h2>
<table>
<thead>
<tr>
<th align="left">Диапазон</th>
<th align="left">Рус</th>
<th align="left">Англ</th>
<th align="left">Длина волны</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">3–30 кГц</td>
<td align="left">ОНЧ (Очень низкие частоты)</td>
<td align="left">VLF</td>
<td align="left">10-100 км</td>
</tr>
<tr>
<td align="left">30–300 кГц</td>
<td align="left">НЧ (Низкие частоты)</td>
<td align="left">LF</td>
<td align="left">1-10 км</td>
</tr>
<tr>
<td align="left">300–3000 кГц</td>
<td align="left">СЧ (Средние частоты)</td>
<td align="left">MF</td>
<td align="left">0,1-1 км</td>
</tr>
<tr>
<td align="left">3–30 МГц</td>
<td align="left">ВЧ (Высокие частоты)</td>
<td align="left">HF</td>
<td align="left">10-100 м</td>
</tr>
<tr>
<td align="left">30–300 МГц</td>
<td align="left">ОВЧ (Очень высокие частоты)</td>
<td align="left">VHF</td>
<td align="left">1-10 м</td>
</tr>
<tr>
<td align="left">300–3000 МГц</td>
<td align="left">УВЧ (Ультра высокие частоты)</td>
<td align="left">UHF</td>
<td align="left">0,1-1 м</td>
</tr>
<tr>
<td align="left">30–3000 МГц</td>
<td align="left">УКВ (Ультра короткие волны)</td>
<td align="left"></td>
<td align="left">0,1-10 м</td>
</tr>
<tr>
<td align="left">3–30 ГГц</td>
<td align="left">СВЧ (Сверхвысокие частоты)</td>
<td align="left">SHF</td>
<td align="left">1-10 см</td>
</tr>
<tr>
<td align="left">30–300 ГГц</td>
<td align="left">КВЧ (Крайне высокие частоты)</td>
<td align="left">EHF</td>
<td align="left">1-10 мм</td>
</tr>
<tr>
<td align="left">300–3000 ГГц</td>
<td align="left">ГВЫ (Гипервысокие частоты)</td>
<td align="left">THF</td>
<td align="left">0,1-1 мм</td>
</tr>
</tbody>
</table>
<h2 id="названия-диапазонов">Названия диапазонов</h2>
<table>
<thead>
<tr>
<th align="left">Диапазон, МГц</th>
<th align="left">Рус</th>
<th align="left">Англ</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">2-30</td>
<td align="left">КВ</td>
<td align="left">SW</td>
</tr>
<tr>
<td align="left">25-30</td>
<td align="left">Си-Би</td>
<td align="left">CB</td>
</tr>
<tr>
<td align="left">33-50</td>
<td align="left">Лоу Бэнд</td>
<td align="left">LB</td>
</tr>
<tr>
<td align="left">108-136</td>
<td align="left">Авиационный</td>
<td align="left">Air Band</td>
</tr>
<tr>
<td align="left">136-174</td>
<td align="left">ОВЧ</td>
<td align="left">VHF</td>
</tr>
<tr>
<td align="left">300-337</td>
<td align="left">Речной</td>
<td align="left">River Band</td>
</tr>
<tr>
<td align="left">400-512</td>
<td align="left">ДМВ, УВЧ</td>
<td align="left">UHF</td>
</tr>
</tbody>
</table>
<h2 id="чем-я-это-всё-слушаю">Чем я это всё слушаю</h2>
<ul>
<li><a href="https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/" target=_blank rel="noopener noreferrer">HRD-747</a></li>
<li><a href="https://mikhail-yudin.ru/notes/quansheng-uv-k5-opyt-raboty/" target=_blank rel="noopener noreferrer">Quansheng UV-K5</a></li>
<li>RTL-SDR v3</li>
<li>rsp1 (msi sdr), китайский клон</li>
</ul>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Суточная норма витаминов и минералов</title><link>https://mikhail-yudin.ru/notes/sutochnaya-norma-vitaminov-i-mineralov/</link><pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/sutochnaya-norma-vitaminov-i-mineralov/</guid><description>Внимание: информация взята с открытых источников. Только для ознакомления.
Витамины Витамин Норма, мг А 0,9 B1 1,2 B2 1,7 B3 20 B4 500 B5 6 B6 2 B7 0,028 B8 1000 B9 0,2 B12 0,0024 B15 250 C 90 D 0,21 E 15 K 0,11 P 25 Минералы Минерал Норма, мг Железо 8 Йод 0,15 Кальций 1150 Магний 420 Марганец 2 Медь 0,9 Молибден 0,25 Селен 0,04 Фосфор 700 Хром 0,025 Цинк 15</description><turbo:content><![CDATA[
                    <header>
                        <h1>Суточная норма витаминов и минералов</h1></header>
                    <div class='entry-content'>
                            <p><strong>Внимание:</strong> информация взята с открытых источников. Только для ознакомления.</p>
<h2 id="витамины">Витамины</h2>
<table>
<thead>
<tr>
<th align="left">Витамин</th>
<th align="right">Норма, мг</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">А</td>
<td align="right">0,9</td>
</tr>
<tr>
<td align="left">B1</td>
<td align="right">1,2</td>
</tr>
<tr>
<td align="left">B2</td>
<td align="right">1,7</td>
</tr>
<tr>
<td align="left">B3</td>
<td align="right">20</td>
</tr>
<tr>
<td align="left">B4</td>
<td align="right">500</td>
</tr>
<tr>
<td align="left">B5</td>
<td align="right">6</td>
</tr>
<tr>
<td align="left">B6</td>
<td align="right">2</td>
</tr>
<tr>
<td align="left">B7</td>
<td align="right">0,028</td>
</tr>
<tr>
<td align="left">B8</td>
<td align="right">1000</td>
</tr>
<tr>
<td align="left">B9</td>
<td align="right">0,2</td>
</tr>
<tr>
<td align="left">B12</td>
<td align="right">0,0024</td>
</tr>
<tr>
<td align="left">B15</td>
<td align="right">250</td>
</tr>
<tr>
<td align="left">C</td>
<td align="right">90</td>
</tr>
<tr>
<td align="left">D</td>
<td align="right">0,21</td>
</tr>
<tr>
<td align="left">E</td>
<td align="right">15</td>
</tr>
<tr>
<td align="left">K</td>
<td align="right">0,11</td>
</tr>
<tr>
<td align="left">P</td>
<td align="right">25</td>
</tr>
</tbody>
</table>
<h2 id="минералы">Минералы</h2>
<table>
<thead>
<tr>
<th align="left">Минерал</th>
<th align="right">Норма, мг</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Железо</td>
<td align="right">8</td>
</tr>
<tr>
<td align="left">Йод</td>
<td align="right">0,15</td>
</tr>
<tr>
<td align="left">Кальций</td>
<td align="right">1150</td>
</tr>
<tr>
<td align="left">Магний</td>
<td align="right">420</td>
</tr>
<tr>
<td align="left">Марганец</td>
<td align="right">2</td>
</tr>
<tr>
<td align="left">Медь</td>
<td align="right">0,9</td>
</tr>
<tr>
<td align="left">Молибден</td>
<td align="right">0,25</td>
</tr>
<tr>
<td align="left">Селен</td>
<td align="right">0,04</td>
</tr>
<tr>
<td align="left">Фосфор</td>
<td align="right">700</td>
</tr>
<tr>
<td align="left">Хром</td>
<td align="right">0,025</td>
</tr>
<tr>
<td align="left">Цинк</td>
<td align="right">15</td>
</tr>
</tbody>
</table>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Как сбилдить статически бинарник в Go</title><link>https://mikhail-yudin.ru/notes/go-build-static-binary/</link><pubDate>Tue, 09 Aug 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/go-build-static-binary/</guid><description>go build -ldflags &amp;#39;-linkmode external -extldflags &amp;#34;-fno-PIC -static&amp;#34;&amp;#39;</description><turbo:content><![CDATA[
                    <header>
                        <h1>Как сбилдить статически бинарник в Go</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">go build -ldflags <span style="color:#f1fa8c">&#39;-linkmode external -extldflags &#34;-fno-PIC -static&#34;&#39;</span>
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Шьём recovery без ПК</title><link>https://mikhail-yudin.ru/notes/kak-proshit-recovery-bez-kompyutera-i-vtorogo-ustroistva-ispolzuya-adb-i-termux/</link><pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/kak-proshit-recovery-bez-kompyutera-i-vtorogo-ustroistva-ispolzuya-adb-i-termux/</guid><description>Случайным образом после неоднократногй установки DFE патча recovery перестало загружаться. Висит на логотипе и через долгое время перезагружается в систему. В итоге нашёл способ добраться до раздела recovery и прошить туда образ.
ВНИМАНИЕ: нижеследующие операции вы делаете на свой страх и риск. Вы сами ответственны за последствия.
Включаем всё связанное с ADB, главное ADB через WiFi в настройках разработчика, тапаем на пункт меню и копируем IP:порт для подключения Устанавливаем Termux, далее всё в нём делаем Обновляем репозитории pkg update Ставим adb pkg install android-tools Пишем adb connect 192.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Шьём recovery без ПК</h1></header>
                    <div class='entry-content'>
                            <p>Случайным образом после неоднократногй установки DFE патча recovery перестало загружаться. Висит на логотипе и через долгое время перезагружается в систему. В итоге нашёл способ добраться до раздела recovery и прошить туда образ.</p>
<blockquote>
<p>ВНИМАНИЕ: нижеследующие операции вы делаете на свой страх и риск. Вы сами ответственны за последствия.</p>
</blockquote>
<ol>
<li>Включаем всё связанное с ADB, главное <code>ADB через WiFi</code> в настройках разработчика, тапаем на пункт меню и копируем <code>IP:порт</code> для подключения</li>
<li>Устанавливаем Termux, далее всё в нём делаем</li>
<li>Обновляем репозитории <code>pkg update</code></li>
<li>Ставим adb <code>pkg install android-tools</code></li>
<li>Пишем <code>adb connect 192.168.0.2:43210</code> (заменить IP и порт на те, что получили на шаге 1), должно быть в результате &ldquo;connected&rdquo;. Если не получилось соединиться, проверьте шаг 1.</li>
<li>Выполняем <code>adb root</code> (тут интересный момент, у меня root доступа не было, но команда сработала)</li>
<li>Далее <code>adb shell</code>, должно появиться приглашение для ввода команд через adb</li>
<li>Выполняем последнюю команду <code>dd if=/sdcard/recovery.img of=/dev/block/by-name/recovery</code> и ждём некоторое время.</li>
</ol>
<p>После выполнения последней команды recovery у меня прошилось и я смог установить root и всё остальное. Желаю удачи =)</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Исправляем метаданные видео</title><link>https://mikhail-yudin.ru/notes/video-v-podderzhivaemom-formate-i-mime-tipe-ne-najdeno/</link><pubDate>Mon, 28 Feb 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/video-v-podderzhivaemom-formate-i-mime-tipe-ne-najdeno/</guid><description>Если в браузере выскакивает ошибка «видео в поддерживаемом формате и mime-типе не найдено» при проигрывании видео в теге video, вероятно видео в формате mp4 содержит кривые метаданные.
Исправляется следующим образом:
ffmpeg -i input.mp4 -c copy output.mp4</description><turbo:content><![CDATA[
                    <header>
                        <h1>Исправляем метаданные видео</h1></header>
                    <div class='entry-content'>
                            <p>Если в браузере выскакивает ошибка «видео в поддерживаемом формате и mime-типе не найдено» при проигрывании видео в теге video, вероятно видео в формате mp4 содержит кривые метаданные.</p>
<p>Исправляется следующим образом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-bash" data-lang="bash">ffmpeg -i input.mp4 -c copy output.mp4
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Пакетное удаление DNS записей Cloudflare</title><link>https://mikhail-yudin.ru/notes/paketnoye-udalenie-dns-zapisei-s-cloudflare/</link><pubDate>Wed, 09 Feb 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/paketnoye-udalenie-dns-zapisei-s-cloudflare/</guid><description>Сначала делаете бекап записей через кнопку advanced на странице управления DNS записями.
curl -s -X GET \ -H &amp;#34;Content-Type:application/json&amp;#34; -H &amp;#34;Authorization: Bearer &amp;lt;TOKEN&amp;gt;&amp;#34; \ &amp;#34;https://api.cloudflare.com/client/v4/zones/&amp;lt;ZONE&amp;gt;/dns_records&amp;#34;\ | awk -vRS=&amp;#39;},{&amp;#39; &amp;#39;{print}&amp;#39; \ | cut -d&amp;#39;&amp;#34;&amp;#39; -f 4 \ | xargs -I@ bash -c &amp;#39;curl -X DELETE &amp;#34;https://api.cloudflare.com/client/v4/zones/&amp;lt;ZONE&amp;gt;/dns_records/@&amp;#34; -H &amp;#34;Content-Type:application/json&amp;#34; -H &amp;#34;Authorization: Bearer &amp;lt;TOKEN&amp;gt;&amp;#34;&amp;#39; Подставьить вместо
&amp;lt;TOKEN&amp;gt; — API токен для управления DNS,
&amp;lt;ZONE&amp;gt; — идентификатор домена.
Затем импортируем только нужное из бекапа (правим бекап и заливаем через advanced).</description><turbo:content><![CDATA[
                    <header>
                        <h1>Пакетное удаление DNS записей Cloudflare</h1></header>
                    <div class='entry-content'>
                            <p>Сначала делаете бекап записей через кнопку advanced на странице управления DNS записями.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">curl -s -X GET <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  -H <span style="color:#f1fa8c">&#34;Content-Type:application/json&#34;</span> -H <span style="color:#f1fa8c">&#34;Authorization: Bearer &lt;TOKEN&gt;&#34;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  <span style="color:#f1fa8c">&#34;https://api.cloudflare.com/client/v4/zones/&lt;ZONE&gt;/dns_records&#34;</span><span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | awk -vRS<span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#39;},{&#39;</span> <span style="color:#f1fa8c">&#39;{print}&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | cut -d<span style="color:#f1fa8c">&#39;&#34;&#39;</span> -f <span style="color:#bd93f9">4</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | xargs -I@ bash -c <span style="color:#f1fa8c">&#39;curl -X DELETE &#34;https://api.cloudflare.com/client/v4/zones/&lt;ZONE&gt;/dns_records/@&#34; -H &#34;Content-Type:application/json&#34; -H &#34;Authorization: Bearer &lt;TOKEN&gt;&#34;&#39;</span>
</code></pre></div><p>Подставьить вместо<br>
<code>&lt;TOKEN&gt;</code> — API токен для управления DNS,<br>
<code>&lt;ZONE&gt;</code> — идентификатор домена.</p>
<p>Затем импортируем только нужное из бекапа (правим бекап и заливаем через advanced).</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Bash urlencode</title><link>https://mikhail-yudin.ru/notes/bash-urlencode/</link><pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/bash-urlencode/</guid><description>printf &amp;#34;some string&amp;#34; | od -An -tx1 | tr &amp;#39; \n&amp;#39; &amp;#39;%\0&amp;#39; Output: %73%6f%6d%65%20%73%74%72%69%6e%67</description><turbo:content><![CDATA[
                    <header>
                        <h1>Bash urlencode</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh"><span style="color:#8be9fd;font-style:italic">printf</span> <span style="color:#f1fa8c">&#34;some string&#34;</span> | od -An -tx1 | tr <span style="color:#f1fa8c">&#39; \n&#39;</span> <span style="color:#f1fa8c">&#39;%\0&#39;</span>
</code></pre></div><p>Output: <code>%73%6f%6d%65%20%73%74%72%69%6e%67</code></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Быстрый подсчёт частоты слов в коде</title><link>https://mikhail-yudin.ru/notes/bystriy-podschet-chastoty-slov-v-kode/</link><pubDate>Sat, 11 Dec 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/bystriy-podschet-chastoty-slov-v-kode/</guid><description>find -name &amp;#39;*.php&amp;#39; -type f -exec cat {} \; \ | gawk -vRS=&amp;#39;\\W+&amp;#39; &amp;#39;{w[$0]++}END{for(i in w) print w[i], i}&amp;#39; \ | sort -n</description><turbo:content><![CDATA[
                    <header>
                        <h1>Быстрый подсчёт частоты слов в коде</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">find -name <span style="color:#f1fa8c">&#39;*.php&#39;</span> -type f -exec cat <span style="color:#ff79c6">{}</span> <span style="color:#f1fa8c">\;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | gawk -vRS<span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#39;\\W+&#39;</span> <span style="color:#f1fa8c">&#39;{w[$0]++}END{for(i in w) print w[i], i}&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sort -n
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Чистка swap</title><link>https://mikhail-yudin.ru/notes/chistka-svopa-bez-perezagruzki/</link><pubDate>Sat, 11 Dec 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/chistka-svopa-bez-perezagruzki/</guid><description>Чтобы перенести содержимое свопа в оперативку достаточно выполнить две команды:
swapoff -a На этом шаге будет перенос, он займёт некоторое время. После выполнения команды нужно подождать несколько секунд. Затем включаем своп обратно:
swapon -a</description><turbo:content><![CDATA[
                    <header>
                        <h1>Чистка swap</h1></header>
                    <div class='entry-content'>
                            <p>Чтобы перенести содержимое свопа в оперативку достаточно выполнить две команды:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">swapoff -a
</code></pre></div><p>На этом шаге будет перенос, он займёт некоторое время. После выполнения команды нужно подождать несколько секунд.
Затем включаем своп обратно:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">swapon -a
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Экстрактор биграмм</title><link>https://mikhail-yudin.ru/notes/bigram-extractor/</link><pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/bigram-extractor/</guid><description>Скрипт для генерации биграмм по произвольному тексту. Исходный текст передаётся скрипту первым параметром. Если нужны триграммы или N-граммы, просто замените &amp;ldquo;2&amp;rdquo; в параметре функции main.
#!/usr/bin/env python3 from collections import Counter from re import findall from sys import argv def main(text, top, n=2): ngrams = [] for word in findall(r&amp;#39;\w+&amp;#39;, text.lower()): wlen = len(word) if wlen &amp;gt;= n: ngrams.extend({word[i:i + n] for i in range(wlen - n + 1)}) print([k for k, _ in Counter(ngrams).</description><turbo:content><![CDATA[
                    <header>
                        <h1>Экстрактор биграмм</h1></header>
                    <div class='entry-content'>
                            <p>Скрипт для генерации биграмм по произвольному тексту. Исходный текст передаётся скрипту первым параметром. Если нужны триграммы или N-граммы, просто замените &ldquo;2&rdquo; в параметре функции main.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-py" data-lang="py"><span style="color:#6272a4">#!/usr/bin/env python3</span>
<span style="color:#ff79c6">from</span> collections <span style="color:#ff79c6">import</span> Counter
<span style="color:#ff79c6">from</span> re <span style="color:#ff79c6">import</span> findall
<span style="color:#ff79c6">from</span> sys <span style="color:#ff79c6">import</span> argv


<span style="color:#ff79c6">def</span> <span style="color:#50fa7b">main</span>(text, top, n<span style="color:#ff79c6">=</span><span style="color:#bd93f9">2</span>):
    ngrams <span style="color:#ff79c6">=</span> []
    <span style="color:#ff79c6">for</span> word <span style="color:#ff79c6">in</span> findall(<span style="color:#f1fa8c">r</span><span style="color:#f1fa8c">&#39;\w+&#39;</span>, text<span style="color:#ff79c6">.</span>lower()):
        wlen <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">len</span>(word)
        <span style="color:#ff79c6">if</span> wlen <span style="color:#ff79c6">&gt;=</span> n:
            ngrams<span style="color:#ff79c6">.</span>extend({word[i:i <span style="color:#ff79c6">+</span> n] <span style="color:#ff79c6">for</span> i <span style="color:#ff79c6">in</span> <span style="color:#8be9fd;font-style:italic">range</span>(wlen <span style="color:#ff79c6">-</span> n <span style="color:#ff79c6">+</span> <span style="color:#bd93f9">1</span>)})
    <span style="color:#ff79c6">print</span>([k <span style="color:#ff79c6">for</span> k, _ <span style="color:#ff79c6">in</span> Counter(ngrams)<span style="color:#ff79c6">.</span>most_common(top)])


<span style="color:#ff79c6">if</span> __name__ <span style="color:#ff79c6">==</span> <span style="color:#f1fa8c">&#39;__main__&#39;</span>:
    main(argv[<span style="color:#bd93f9">1</span>], argv[<span style="color:#bd93f9">2</span>] <span style="color:#ff79c6">if</span> <span style="color:#8be9fd;font-style:italic">len</span>(argv) <span style="color:#ff79c6">==</span> <span style="color:#bd93f9">3</span> <span style="color:#ff79c6">else</span> <span style="color:#bd93f9">300</span>)
</code></pre></div><p>Примеры использования:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">./bigram_extractor.py <span style="color:#8be9fd;font-style:italic">test</span>
<span style="color:#ff79c6">[</span><span style="color:#f1fa8c">&#39;te&#39;</span>, <span style="color:#f1fa8c">&#39;es&#39;</span>, <span style="color:#f1fa8c">&#39;st&#39;</span><span style="color:#ff79c6">]</span>
</code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">curl -s https://raw.githubusercontent.com/davisp/couchdb/b0420f9006915149e81607615720f32f21c76725/share/www/script/test/lorem.txt | xargs | xargs -I <span style="color:#ff79c6">{}</span> ./bigram_extractor.py <span style="color:#ff79c6">{}</span>
</code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-py" data-lang="py">[<span style="color:#f1fa8c">&#39;is&#39;</span>, <span style="color:#f1fa8c">&#39;us&#39;</span>, <span style="color:#f1fa8c">&#39;et&#39;</span>, <span style="color:#f1fa8c">&#39;en&#39;</span>, <span style="color:#f1fa8c">&#39;it&#39;</span>, <span style="color:#f1fa8c">&#39;li&#39;</span>, <span style="color:#f1fa8c">&#39;qu&#39;</span>, <span style="color:#f1fa8c">&#39;or&#39;</span>, <span style="color:#f1fa8c">&#39;el&#39;</span>, <span style="color:#f1fa8c">&#39;er&#39;</span>, <span style="color:#f1fa8c">&#39;es&#39;</span>, <span style="color:#f1fa8c">&#39;in&#39;</span>, <span style="color:#f1fa8c">&#39;ll&#39;</span>, <span style="color:#f1fa8c">&#39;ti&#39;</span>, <span style="color:#f1fa8c">&#39;tu&#39;</span>, <span style="color:#f1fa8c">&#39;ul&#39;</span>, <span style="color:#f1fa8c">&#39;um&#39;</span>, <span style="color:#f1fa8c">&#39;la&#39;</span>, <span style="color:#f1fa8c">&#39;at&#39;</span>, <span style="color:#f1fa8c">&#39;am&#39;</span>, <span style="color:#f1fa8c">&#39;te&#39;</span>, <span style="color:#f1fa8c">&#39;nt&#39;</span>, <span style="color:#f1fa8c">&#39;di&#39;</span>, <span style="color:#f1fa8c">&#39;se&#39;</span>, <span style="color:#f1fa8c">&#39;ue&#39;</span>, <span style="color:#f1fa8c">&#39;ri&#39;</span>, <span style="color:#f1fa8c">&#39;on&#39;</span>, <span style="color:#f1fa8c">&#39;ci&#39;</span>, <span style="color:#f1fa8c">&#39;le&#39;</span>, <span style="color:#f1fa8c">&#39;ac&#39;</span>, <span style="color:#f1fa8c">&#39;ur&#39;</span>, <span style="color:#f1fa8c">&#39;cu&#39;</span>, <span style="color:#f1fa8c">&#39;st&#39;</span>, <span style="color:#f1fa8c">&#39;ve&#39;</span>, <span style="color:#f1fa8c">&#39;ra&#39;</span>, <span style="color:#f1fa8c">&#39;ec&#39;</span>, <span style="color:#f1fa8c">&#39;ne&#39;</span>, <span style="color:#f1fa8c">&#39;su&#39;</span>, <span style="color:#f1fa8c">&#39;ma&#39;</span>, <span style="color:#f1fa8c">&#39;ni&#39;</span>, <span style="color:#f1fa8c">&#39;ib&#39;</span>, <span style="color:#f1fa8c">&#39;re&#39;</span>, <span style="color:#f1fa8c">&#39;me&#39;</span>, <span style="color:#f1fa8c">&#39;na&#39;</span>, <span style="color:#f1fa8c">&#39;ui&#39;</span>, <span style="color:#f1fa8c">&#39;co&#39;</span>, <span style="color:#f1fa8c">&#39;em&#39;</span>, <span style="color:#f1fa8c">&#39;lu&#39;</span>, <span style="color:#f1fa8c">&#39;si&#39;</span>, <span style="color:#f1fa8c">&#39;al&#39;</span>, <span style="color:#f1fa8c">&#39;ta&#39;</span>, <span style="color:#f1fa8c">&#39;pi&#39;</span>, <span style="color:#f1fa8c">&#39;ut&#39;</span>, <span style="color:#f1fa8c">&#39;du&#39;</span>, <span style="color:#f1fa8c">&#39;pe&#39;</span>, <span style="color:#f1fa8c">&#39;as&#39;</span>, <span style="color:#f1fa8c">&#39;tr&#39;</span>, <span style="color:#f1fa8c">&#39;ia&#39;</span>, <span style="color:#f1fa8c">&#39;vi&#39;</span>, <span style="color:#f1fa8c">&#39;ct&#39;</span>, <span style="color:#f1fa8c">&#39;ua&#39;</span>, <span style="color:#f1fa8c">&#39;to&#39;</span>, <span style="color:#f1fa8c">&#39;nd&#39;</span>, <span style="color:#f1fa8c">&#39;id&#39;</span>, <span style="color:#f1fa8c">&#39;ar&#39;</span>, <span style="color:#f1fa8c">&#39;ic&#39;</span>, <span style="color:#f1fa8c">&#39;nu&#39;</span>, <span style="color:#f1fa8c">&#39;au&#39;</span>, <span style="color:#f1fa8c">&#39;ce&#39;</span>, <span style="color:#f1fa8c">&#39;ol&#39;</span>, <span style="color:#f1fa8c">&#39;ae&#39;</span>, <span style="color:#f1fa8c">&#39;nc&#39;</span>, <span style="color:#f1fa8c">&#39;mo&#39;</span>, <span style="color:#f1fa8c">&#39;sa&#39;</span>, <span style="color:#f1fa8c">&#39;eu&#39;</span>, <span style="color:#f1fa8c">&#39;rt&#39;</span>, <span style="color:#f1fa8c">&#39;iq&#39;</span>, <span style="color:#f1fa8c">&#39;od&#39;</span>, <span style="color:#f1fa8c">&#39;bi&#39;</span>, <span style="color:#f1fa8c">&#39;ie&#39;</span>, <span style="color:#f1fa8c">&#39;po&#39;</span>, <span style="color:#f1fa8c">&#39;sq&#39;</span>, <span style="color:#f1fa8c">&#39;eg&#39;</span>, <span style="color:#f1fa8c">&#39;ge&#39;</span>, <span style="color:#f1fa8c">&#39;an&#39;</span>, <span style="color:#f1fa8c">&#39;pu&#39;</span>, <span style="color:#f1fa8c">&#39;im&#39;</span>, <span style="color:#f1fa8c">&#39;fe&#39;</span>, <span style="color:#f1fa8c">&#39;lo&#39;</span>, <span style="color:#f1fa8c">&#39;ed&#39;</span>, <span style="color:#f1fa8c">&#39;ip&#39;</span>, <span style="color:#f1fa8c">&#39;ss&#39;</span>, <span style="color:#f1fa8c">&#39;bu&#39;</span>, <span style="color:#f1fa8c">&#39;do&#39;</span>, <span style="color:#f1fa8c">&#39;un&#39;</span>, <span style="color:#f1fa8c">&#39;da&#39;</span>, <span style="color:#f1fa8c">&#39;sc&#39;</span>, <span style="color:#f1fa8c">&#39;ro&#39;</span>, <span style="color:#f1fa8c">&#39;va&#39;</span>, <span style="color:#f1fa8c">&#39;ng&#39;</span>, <span style="color:#f1fa8c">&#39;tt&#39;</span>, <span style="color:#f1fa8c">&#39;gi&#39;</span>, <span style="color:#f1fa8c">&#39;mp&#39;</span>, <span style="color:#f1fa8c">&#39;no&#39;</span>, <span style="color:#f1fa8c">&#39;ha&#39;</span>, <span style="color:#f1fa8c">&#39;gu&#39;</span>, <span style="color:#f1fa8c">&#39;uc&#39;</span>, <span style="color:#f1fa8c">&#39;os&#39;</span>, <span style="color:#f1fa8c">&#39;ad&#39;</span>, <span style="color:#f1fa8c">&#39;ap&#39;</span>, <span style="color:#f1fa8c">&#39;rc&#39;</span>, <span style="color:#f1fa8c">&#39;pr&#39;</span>, <span style="color:#f1fa8c">&#39;ug&#39;</span>, <span style="color:#f1fa8c">&#39;rp&#39;</span>, <span style="color:#f1fa8c">&#39;il&#39;</span>, <span style="color:#f1fa8c">&#39;eq&#39;</span>, <span style="color:#f1fa8c">&#39;be&#39;</span>, <span style="color:#f1fa8c">&#39;ru&#39;</span>, <span style="color:#f1fa8c">&#39;gn&#39;</span>, <span style="color:#f1fa8c">&#39;fa&#39;</span>, <span style="color:#f1fa8c">&#39;lt&#39;</span>, <span style="color:#f1fa8c">&#39;ag&#39;</span>, <span style="color:#f1fa8c">&#39;so&#39;</span>, <span style="color:#f1fa8c">&#39;iu&#39;</span>, <span style="color:#f1fa8c">&#39;ns&#39;</span>, <span style="color:#f1fa8c">&#39;ph&#39;</span>, <span style="color:#f1fa8c">&#39;io&#39;</span>, <span style="color:#f1fa8c">&#39;rn&#39;</span>, <span style="color:#f1fa8c">&#39;iv&#39;</span>, <span style="color:#f1fa8c">&#39;ps&#39;</span>, <span style="color:#f1fa8c">&#39;ju&#39;</span>, <span style="color:#f1fa8c">&#39;eo&#39;</span>, <span style="color:#f1fa8c">&#39;ab&#39;</span>, <span style="color:#f1fa8c">&#39;ig&#39;</span>, <span style="color:#f1fa8c">&#39;mi&#39;</span>, <span style="color:#f1fa8c">&#39;pl&#39;</span>, <span style="color:#f1fa8c">&#39;bh&#39;</span>, <span style="color:#f1fa8c">&#39;sl&#39;</span>, <span style="color:#f1fa8c">&#39;rd&#39;</span>, <span style="color:#f1fa8c">&#39;nv&#39;</span>, <span style="color:#f1fa8c">&#39;rb&#39;</span>, <span style="color:#f1fa8c">&#39;pa&#39;</span>, <span style="color:#f1fa8c">&#39;ee&#39;</span>, <span style="color:#f1fa8c">&#39;ao&#39;</span>, <span style="color:#f1fa8c">&#39;fr&#39;</span>, <span style="color:#f1fa8c">&#39;ms&#39;</span>, <span style="color:#f1fa8c">&#39;rh&#39;</span>, <span style="color:#f1fa8c">&#39;ho&#39;</span>, <span style="color:#f1fa8c">&#39;ob&#39;</span>, <span style="color:#f1fa8c">&#39;bo&#39;</span>, <span style="color:#f1fa8c">&#39;tp&#39;</span>, <span style="color:#f1fa8c">&#39;vo&#39;</span>, <span style="color:#f1fa8c">&#39;vu&#39;</span>, <span style="color:#f1fa8c">&#39;lp&#39;</span>, <span style="color:#f1fa8c">&#39;sp&#39;</span>, <span style="color:#f1fa8c">&#39;mu&#39;</span>, <span style="color:#f1fa8c">&#39;mc&#39;</span>, <span style="color:#f1fa8c">&#39;bl&#39;</span>, <span style="color:#f1fa8c">&#39;rr&#39;</span>, <span style="color:#f1fa8c">&#39;ud&#39;</span>, <span style="color:#f1fa8c">&#39;lv&#39;</span>, <span style="color:#f1fa8c">&#39;cc&#39;</span>, <span style="color:#f1fa8c">&#39;sm&#39;</span>, <span style="color:#f1fa8c">&#39;rm&#39;</span>, <span style="color:#f1fa8c">&#39;om&#39;</span>, <span style="color:#f1fa8c">&#39;mm&#39;</span>, <span style="color:#f1fa8c">&#39;if&#39;</span>, <span style="color:#f1fa8c">&#39;ei&#39;</span>, <span style="color:#f1fa8c">&#39;rs&#39;</span>, <span style="color:#f1fa8c">&#39;he&#39;</span>, <span style="color:#f1fa8c">&#39;dr&#39;</span>, <span style="color:#f1fa8c">&#39;oi&#39;</span>, <span style="color:#f1fa8c">&#39;hi&#39;</span>, <span style="color:#f1fa8c">&#39;ea&#39;</span>, <span style="color:#f1fa8c">&#39;av&#39;</span>, <span style="color:#f1fa8c">&#39;gr&#39;</span>, <span style="color:#f1fa8c">&#39;cr&#39;</span>, <span style="color:#f1fa8c">&#39;eh&#39;</span>, <span style="color:#f1fa8c">&#39;fu&#39;</span>, <span style="color:#f1fa8c">&#39;ub&#39;</span>, <span style="color:#f1fa8c">&#39;pt&#39;</span>, <span style="color:#f1fa8c">&#39;oc&#39;</span>, <span style="color:#f1fa8c">&#39;ot&#39;</span>, <span style="color:#f1fa8c">&#39;cl&#39;</span>, <span style="color:#f1fa8c">&#39;rq&#39;</span>, <span style="color:#f1fa8c">&#39;ep&#39;</span>, <span style="color:#f1fa8c">&#39;ii&#39;</span>, <span style="color:#f1fa8c">&#39;oq&#39;</span>]
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Вывод списка классов и функций Python</title><link>https://mikhail-yudin.ru/notes/vivod-klassov-i-funkciy-python/</link><pubDate>Tue, 14 Sep 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/vivod-klassov-i-funkciy-python/</guid><description>grep -P &amp;#39;^(class|def)&amp;#39; -r . \ | sed -E &amp;#39;s#.*/(\w+\.py):(\S+) ([a-zA-Z0-9_]+).*#\1 \2 \3#;s#def#[F]#;s#class#[C]#&amp;#39; \ | sort \ | column -t</description><turbo:content><![CDATA[
                    <header>
                        <h1>Вывод списка классов и функций Python</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">grep -P <span style="color:#f1fa8c">&#39;^(class|def)&#39;</span> -r . <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sed -E <span style="color:#f1fa8c">&#39;s#.*/(\w+\.py):(\S+) ([a-zA-Z0-9_]+).*#\1 \2 \3#;s#def#[F]#;s#class#[C]#&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sort <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | column -t
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Генератор глобальных IP адресов</title><link>https://mikhail-yudin.ru/notes/bystryi-generator-globalnih-ip-adresov/</link><pubDate>Sat, 11 Sep 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/bystryi-generator-globalnih-ip-adresov/</guid><description>&amp;#34;&amp;#34;&amp;#34;Global (WAN) IP generator&amp;#34;&amp;#34;&amp;#34; from random import randint from socket import inet_ntoa from struct import pack __author__ = &amp;#39;Mikhail Yudin aka fagci&amp;#39; def global_ip_generator(count=10): while count: intip = randint(0x1000000, 0xE0000000) if (0xa000000 &amp;lt;= intip &amp;lt;= 0xaffffff or 0x64400000 &amp;lt;= intip &amp;lt;= 0x647fffff or 0x7f000000 &amp;lt;= intip &amp;lt;= 0x7fffffff or 0xa9fe0000 &amp;lt;= intip &amp;lt;= 0xa9feffff or 0xac100000 &amp;lt;= intip &amp;lt;= 0xac1fffff or 0xc0000000 &amp;lt;= intip &amp;lt;= 0xc0000007 or 0xc00000aa &amp;lt;= intip &amp;lt;= 0xc00000ab or 0xc0000200 &amp;lt;= intip &amp;lt;= 0xc00002ff or 0xc0a80000 &amp;lt;= intip &amp;lt;= 0xc0a8ffff or 0xc6120000 &amp;lt;= intip &amp;lt;= 0xc613ffff or 0xc6336400 &amp;lt;= intip &amp;lt;= 0xc63364ff or 0xcb007100 &amp;lt;= intip &amp;lt;= 0xcb0071ff or 0xf0000000 &amp;lt;= intip &amp;lt;= 0xffffffff): continue count -= 1 yield inet_ntoa(pack(&amp;#39;&amp;gt;I&amp;#39;, intip)) Актуальная версия gist</description><turbo:content><![CDATA[
                    <header>
                        <h1>Генератор глобальных IP адресов</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-python" data-lang="python"><span style="color:#f1fa8c">&#34;&#34;&#34;Global (WAN) IP generator&#34;&#34;&#34;</span>
<span style="color:#ff79c6">from</span> random <span style="color:#ff79c6">import</span> randint
<span style="color:#ff79c6">from</span> socket <span style="color:#ff79c6">import</span> inet_ntoa
<span style="color:#ff79c6">from</span> struct <span style="color:#ff79c6">import</span> pack

__author__ <span style="color:#ff79c6">=</span> <span style="color:#f1fa8c">&#39;Mikhail Yudin aka fagci&#39;</span>


<span style="color:#ff79c6">def</span> <span style="color:#50fa7b">global_ip_generator</span>(count<span style="color:#ff79c6">=</span><span style="color:#bd93f9">10</span>):
    <span style="color:#ff79c6">while</span> count:
        intip <span style="color:#ff79c6">=</span> randint(<span style="color:#bd93f9">0x1000000</span>, <span style="color:#bd93f9">0xE0000000</span>)
        <span style="color:#ff79c6">if</span> (<span style="color:#bd93f9">0xa000000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xaffffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0x64400000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0x647fffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0x7f000000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0x7fffffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xa9fe0000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xa9feffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xac100000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xac1fffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc0000000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc0000007</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc00000aa</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc00000ab</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc0000200</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc00002ff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc0a80000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc0a8ffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc6120000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc613ffff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xc6336400</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xc63364ff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xcb007100</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xcb0071ff</span>
                <span style="color:#ff79c6">or</span> <span style="color:#bd93f9">0xf0000000</span> <span style="color:#ff79c6">&lt;=</span> intip <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0xffffffff</span>):
            <span style="color:#ff79c6">continue</span>
        count <span style="color:#ff79c6">-=</span> <span style="color:#bd93f9">1</span>
        <span style="color:#ff79c6">yield</span> inet_ntoa(pack(<span style="color:#f1fa8c">&#39;&gt;I&#39;</span>, intip))
</code></pre></div><p>Актуальная версия <a href="https://gist.github.com/fagci/74045f280991312592068a34c8a13224" target=_blank rel="noopener noreferrer">gist</a></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Поиск длинных слов в коде</title><link>https://mikhail-yudin.ru/notes/poisk-dlinnyh-slov-v-proekte/</link><pubDate>Tue, 31 Aug 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/poisk-dlinnyh-slov-v-proekte/</guid><description>find -type f -exec sed -E &amp;#39;s/\W/ /g; s/ +/\n/g&amp;#39; {} + \ | sort -u \ | awk &amp;#39;{print length, $0}&amp;#39; \ | sort -nr \ | head -n 10</description><turbo:content><![CDATA[
                    <header>
                        <h1>Поиск длинных слов в коде</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">find -type f -exec sed -E <span style="color:#f1fa8c">&#39;s/\W/ /g; s/ +/\n/g&#39;</span> <span style="color:#ff79c6">{}</span> + <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sort -u <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | awk <span style="color:#f1fa8c">&#39;{print length, $0}&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sort -nr <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | head -n <span style="color:#bd93f9">10</span>
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>NMAP получить список IP в локальной сети</title><link>https://mikhail-yudin.ru/notes/nmap-poluchit-spisok-ip-v-lokalnoi-seti/</link><pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/nmap-poluchit-spisok-ip-v-lokalnoi-seti/</guid><description>nmap -sP -n 192.168.0.1/24 -T4 -oG - \ | sed -nE &amp;#39;/Up/s#.* (\S+) .*#\1#p&amp;#39; \ | sort -u</description><turbo:content><![CDATA[
                    <header>
                        <h1>NMAP получить список IP в локальной сети</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">nmap -sP -n 192.168.0.1/24 -T4 -oG - <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sed -nE <span style="color:#f1fa8c">&#39;/Up/s#.* (\S+) .*#\1#p&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sort -u
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Поиск уязвимого кода в php (пример)</title><link>https://mikhail-yudin.ru/notes/poisk-potencialno-uyazvimogo-k-sql-injection-php-koda/</link><pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/poisk-potencialno-uyazvimogo-k-sql-injection-php-koda/</guid><description>grep -nP &amp;#39;\b(id|iid).+(in|=)\W+\.\s*(?!\(int\))\s*\$&amp;#39; -r ./src \ | cut -d &amp;#39;:&amp;#39; -f 1,2 \ | sed -E &amp;#39;s/(.+):(.+)/:e \1|:\2|/&amp;#39; \ | xargs \ | sed &amp;#39;s/|$//&amp;#39; \ | xargs -I {} vim -c &amp;#34;{}&amp;#34;</description><turbo:content><![CDATA[
                    <header>
                        <h1>Поиск уязвимого кода в php (пример)</h1></header>
                    <div class='entry-content'>
                            <div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">grep -nP <span style="color:#f1fa8c">&#39;\b(id|iid).+(in|=)\W+\.\s*(?!\(int\))\s*\$&#39;</span> -r ./src <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | cut -d <span style="color:#f1fa8c">&#39;:&#39;</span> -f 1,2 <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sed -E <span style="color:#f1fa8c">&#39;s/(.+):(.+)/:e \1|:\2|/&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | xargs <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | sed <span style="color:#f1fa8c">&#39;s/|$//&#39;</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>  | xargs -I <span style="color:#ff79c6">{}</span> vim -c <span style="color:#f1fa8c">&#34;{}&#34;</span>
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Parsee - простой вкусный парсер сайтов</title><link>https://mikhail-yudin.ru/blog/frontend/parsee_prostoi_vkusniy_parser_saitov/</link><pubDate>Tue, 01 Jun 2021 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/parsee_prostoi_vkusniy_parser_saitov/</guid><description>Если лень писать кучу кода, разбираться в написании парсеров, а нужно лишь получить например фото и заголовки страниц, пользуйте Parsee!
Что такое Parsee Parsee это в первую очередь парсер страниц. Пишешь ему путь к нужному контенту, он его достаёт.
Предпосылки создания Многие наверное пользуются Scrapy, Selenium и другими библиотеками или фреймворками для парсинга сайтов. Я пошёл сразу этим путём, когда встала задача найти где-нибудь логотипов.
В Scrapy например создаёшь проект, потом паучка (всё в 2 шага на автомате), потом пишешь логику парсинга.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Parsee - простой вкусный парсер сайтов</h1></header>
                    <div class='entry-content'>
                            <p>Если лень писать кучу кода, разбираться в написании парсеров, а нужно лишь получить например фото и заголовки страниц, пользуйте <a href="https://github.com/fagci/parsee" target=_blank rel="noopener noreferrer">Parsee</a>!</p>
<h2 id="что-такое-parsee">Что такое Parsee</h2>
<p>Parsee это в первую очередь парсер страниц. Пишешь ему путь к нужному контенту, он его достаёт.</p>
<h2 id="предпосылки-создания">Предпосылки создания</h2>
<p>Многие наверное пользуются Scrapy, Selenium и другими библиотеками или фреймворками для парсинга сайтов. Я пошёл сразу этим путём, когда встала задача найти где-нибудь логотипов.</p>
<p>В Scrapy например создаёшь проект, потом паучка (всё в 2 шага на автомате), потом пишешь логику парсинга. Один паучок, второй, третий&hellip; А ещё разбираться как парсить разнородные куски, понимать как это всё сливается в единое целое&hellip; Как-то долго и непродуктивно получалось.</p>
<p>Перешёл на чистый requests + beautifulsoup4. Почти то же самое, только лишаемся многопоточности (писать каждый раз тоже время). Ещё эти повторяющиеся куски кода для обхода дерева&hellip;</p>
<p>И тут я подумал: есть же селекторы, неужели нельзя просто сказать &ldquo;найди это там-то&rdquo; и всё. Так заложилось начало проекта Parsee.</p>
<h2 id="этапы-создания">Этапы создания</h2>
<p>Сперва шёл по пути упрощения реализации простых действий, например обход узлов.</p>
<p>Получилось такое (собачка появилась позже):</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-python" data-lang="python"><span style="color:#ff79c6">for</span> page <span style="color:#ff79c6">in</span> parser <span style="color:#ff79c6">/</span> <span style="color:#f1fa8c">&#39;.links a@&#39;</span>:
    <span style="color:#ff79c6">for</span> p <span style="color:#ff79c6">in</span> page <span style="color:#ff79c6">/</span> <span style="color:#f1fa8c">&#39;h3:-soup-contains(&#34;Some title&#34;)+p&#39;</span>:
        <span style="color:#ff79c6">print</span>(p<span style="color:#ff79c6">.</span>text)
</code></pre></div><p>Потом понял, что и переход по страницам можно делать проще. И тут решил пойти по пути расширения синтаксиса селекторов.</p>
<p>Значок собачки &ldquo;@&rdquo; был выбран потому что в селекторах beautifulsoup4 этого нет, а сам значок чем-то напоминает портал =)</p>
<p>Затем понял, что можно весь обход записать в одну строку. Получилось следующее:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">./parser.py http://site.org <span style="color:#f1fa8c">&#39;a@a@title&#39;</span>
</code></pre></div><p>Было неплохо, но на этом этапе произошло 2 плохие вещи:</p>
<ul>
<li>потерял возможность получать несколько элементов</li>
<li>для получения содержимого нужно было продолжать кодить =)</li>
</ul>
<p>В голову пришла идея, как сделать форматирование вывода. За пример взял утилиту jq. Она позволяет трансформировать JSON в разные форматы. Для Parsee в качестве разделителя выбрал знак процента.
Его логический смысл с натяжкой: взять часть, преобразовать.</p>
<p>И тут понеслось: после процента творил что хотел. В итоге получилась поддержка python кода для конечных узлов.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">./parser.py http://site.org <span style="color:#f1fa8c">&#39;a@a@title%.text.strip()&#39;</span>
</code></pre></div><p>Точка это конечный узел DOM дерева.</p>
<h2 id="итоги">Итоги</h2>
<p>Проект <a href="https://github.com/fagci/parsee" target=_blank rel="noopener noreferrer">Parsee на GitHub</a>.</p>
<p>Пока на будущее стоят такие задачи:</p>
<ul>
<li>многопоточный обход страниц</li>
<li>обращение к узлам предыдущих страниц для их вывода</li>
<li>поддержка JavaScript</li>
</ul>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Динамическая иконка сайта (favicon)</title><link>https://mikhail-yudin.ru/notes/dinamicheskaya-ikonka-sayta/</link><pubDate>Sat, 10 Oct 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/dinamicheskaya-ikonka-sayta/</guid><description>Добавляем саму иконку в &amp;lt;head&amp;gt;:
&amp;lt;link id=&amp;#34;favicon&amp;#34; rel=&amp;#34;icon&amp;#34; href=&amp;#34;favicon.png&amp;#34; type=&amp;#34;image/png&amp;#34; sizes=&amp;#34;16x16&amp;#34;&amp;gt; Скрипт для рисования иконки. В примере в качестве иконки рисуется кружок.
const favicon = document.getElementById(&amp;#39;favicon&amp;#39;); const cv = document.createElement(&amp;#39;canvas&amp;#39;); const ct = cv.getContext(&amp;#39;2d&amp;#39;); cv.width = 16; cv.height = 16; function changeFav(color = &amp;#39;#f00&amp;#39;) { ct.fillStyle = color; ct.beginPath(); ct.arc(8,8,7,0,Math.PI * 2); ct.fill(); favicon.href = cv.toDataURL(&amp;#39;image/png&amp;#39;); } changeFav();</description><turbo:content><![CDATA[
                    <header>
                        <h1>Динамическая иконка сайта (favicon)</h1></header>
                    <div class='entry-content'>
                            <p>Добавляем саму иконку в <code>&lt;head&gt;</code>:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;favicon&#34;</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;icon&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;favicon.png&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/png&#34;</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;16x16&#34;</span>&gt;
</code></pre></div><p>Скрипт для рисования иконки. В примере в качестве иконки рисуется кружок.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-javascript" data-lang="javascript"><span style="color:#ff79c6">const</span> favicon <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">document</span>.getElementById(<span style="color:#f1fa8c">&#39;favicon&#39;</span>);
<span style="color:#ff79c6">const</span> cv <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">document</span>.createElement(<span style="color:#f1fa8c">&#39;canvas&#39;</span>);
<span style="color:#ff79c6">const</span> ct <span style="color:#ff79c6">=</span> cv.getContext(<span style="color:#f1fa8c">&#39;2d&#39;</span>);

cv.width <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">16</span>;
cv.height <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">16</span>;

<span style="color:#8be9fd;font-style:italic">function</span> changeFav(color <span style="color:#ff79c6">=</span> <span style="color:#f1fa8c">&#39;#f00&#39;</span>) {
    ct.fillStyle <span style="color:#ff79c6">=</span> color; 
    ct.beginPath();
    ct.arc(<span style="color:#bd93f9">8</span>,<span style="color:#bd93f9">8</span>,<span style="color:#bd93f9">7</span>,<span style="color:#bd93f9">0</span>,<span style="color:#8be9fd;font-style:italic">Math</span>.PI <span style="color:#ff79c6">*</span> <span style="color:#bd93f9">2</span>);
    ct.fill();

    favicon.href <span style="color:#ff79c6">=</span> cv.toDataURL(<span style="color:#f1fa8c">&#39;image/png&#39;</span>);
}

changeFav();
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Микроразметка для сайта</title><link>https://mikhail-yudin.ru/notes/mikrorazmetka-dlya-sayta/</link><pubDate>Fri, 02 Oct 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/mikrorazmetka-dlya-sayta/</guid><description>Результаты применения микроразмети в виде сниппетов видны на скриншотах.
Хлебные крошки &amp;lt;ol class=&amp;#34;breadcrumb&amp;#34; itemscope itemtype=&amp;#34;https://schema.org/BreadcrumbList&amp;#34;&amp;gt; &amp;lt;li itemprop=&amp;#34;itemListElement&amp;#34; itemscope itemtype=&amp;#34;https://schema.org/ListItem&amp;#34;&amp;gt; &amp;lt;a itemprop=&amp;#34;item&amp;#34; href=&amp;#34;https://mikhail-yudin.ru/&amp;#34; title=&amp;#34;Главная&amp;#34;&amp;gt; &amp;lt;span itemprop=&amp;#34;name&amp;#34;&amp;gt;Главная&amp;lt;/span&amp;gt; &amp;lt;/a&amp;gt; &amp;lt;meta itemprop=&amp;#34;position&amp;#34; content=&amp;#34;1&amp;#34;&amp;gt; &amp;lt;/li&amp;gt; &amp;lt;li itemprop=&amp;#34;itemListElement&amp;#34; itemscope itemtype=&amp;#34;https://schema.org/ListItem&amp;#34;&amp;gt; &amp;lt;a itemprop=&amp;#34;item&amp;#34; href=&amp;#34;https://mikhail-yudin.ru/blog/&amp;#34; title=&amp;#34;Блог&amp;#34;&amp;gt; &amp;lt;span itemprop=&amp;#34;name&amp;#34;&amp;gt;Блог&amp;lt;/span&amp;gt; &amp;lt;/a&amp;gt; &amp;lt;meta itemprop=&amp;#34;position&amp;#34; content=&amp;#34;2&amp;#34;&amp;gt; &amp;lt;/li&amp;gt; &amp;lt;li itemprop=&amp;#34;itemListElement&amp;#34; itemscope itemtype=&amp;#34;https://schema.org/ListItem&amp;#34; class=&amp;#34;active&amp;#34;&amp;gt; &amp;lt;span itemprop=&amp;#34;name&amp;#34;&amp;gt;Фронтенд&amp;lt;/span&amp;gt; &amp;lt;meta itemprop=&amp;#34;position&amp;#34; content=&amp;#34;3&amp;#34;&amp;gt; &amp;lt;/li&amp;gt; &amp;lt;/ol&amp;gt; Главное навигационное меню &amp;lt;ul class=&amp;#34;main-nav&amp;#34; itemscope itemtype=&amp;#34;http://schema.org/SiteNavigationElement&amp;#34; role=&amp;#34;menu&amp;#34;&amp;gt; &amp;lt;li class=&amp;#34;menu-item&amp;#34; role=&amp;#34;menuitem&amp;#34;&amp;gt; &amp;lt;a class=&amp;#34;nav-link&amp;#34; itemprop=&amp;#34;url&amp;#34; href=&amp;#34;https://mikhail-yudin.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Микроразметка для сайта</h1></header>
                    <div class='entry-content'>
                            <p>Результаты применения микроразмети в виде сниппетов видны на скриншотах.</p>
<h2 id="хлебные-крошки">Хлебные крошки</h2>
<p><img src="hlebniye-kroshki.png" alt="Пример сниппета хлебных крошек в Google"></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ol</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;breadcrumb&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://schema.org/BreadcrumbList&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;itemListElement&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://schema.org/ListItem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Главная&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span>&gt;Главная&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;position&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;1&#34;</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;itemListElement&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://schema.org/ListItem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Блог&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span>&gt;Блог&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;position&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;2&#34;</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;itemListElement&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://schema.org/ListItem&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;active&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span>&gt;Фронтенд&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;position&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;3&#34;</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ol</span>&gt;
</code></pre></div><h2 id="главное-навигационное-меню">Главное навигационное меню</h2>
<p><img src="navigacionnoye-menu.png" alt="Пример сниппета навигационного меню в Yandex"></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;main-nav&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://schema.org/SiteNavigationElement&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/about/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Обо мне как о фронтенд веб-разработчике&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Обо мне&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link active&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Блог фронтенд веб-разработчика&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Блог&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
    &lt;<span style="color:#ff79c6">ul</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;main-nav__sub&#34;</span> <span style="color:#50fa7b">itemscope</span> <span style="color:#50fa7b">itemtype</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://schema.org/SiteNavigationElement&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link active&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/frontend/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Фронтенд: всё, что нужно для лучшего опыта&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Фронтенд&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/hardware/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Железо: основа девайсов&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Железо&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/linux/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Linux: свобода&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Linux&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/backend/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Бэкэнд: задний конец&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Бэкэнд&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/android/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Андроид: незаменимые, мощные приложения&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Андроид&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
        &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/blog/lifehacks/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Лайфхаки: всё, что нужно для лёгкой жизни&#34;</span>&gt;
          &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Лайфхаки&lt;/<span style="color:#ff79c6">span</span>&gt;
        &lt;/<span style="color:#ff79c6">a</span>&gt;
      &lt;/<span style="color:#ff79c6">li</span>&gt;
    &lt;/<span style="color:#ff79c6">ul</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/notes/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Заметки веб-разработчика&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Заметки&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/projects/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Мои проекты&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Проекты&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-item&#34;</span> <span style="color:#50fa7b">role</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menuitem&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;nav-link&#34;</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;https://mikhail-yudin.ru/contact/&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Контакты для связи со мной&#34;</span>&gt;
      &lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">itemprop</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;name&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;menu-title&#34;</span>&gt;Контакты&lt;/<span style="color:#ff79c6">span</span>&gt;
    &lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>VIM поиск по тексту и замена</title><link>https://mikhail-yudin.ru/notes/vim-poisk-po-tekstu-i-zamena/</link><pubDate>Mon, 14 Sep 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/vim-poisk-po-tekstu-i-zamena/</guid><description>Для поиска в VIM по тексту есть несколько способов.
Сделаю сразу несколько замечаний:
для подсветки при поиске желательно включить подсветку вхождений текста set hlsearch incsearch по умолчанию поиск регистрозависимый set ignorecase smartcase Это всё желательно прописать в vimrc или init.vim (если пользуетесь neovim).
Обычный поиск по тексту Первый и частоиспользуемый способ поиска в тексте это слеш (/).
Пример: /пример.
Поиск с выполнением команд Поиск с заменой текста или выполнением других команд начинается с двоеточия (:).</description><turbo:content><![CDATA[
                    <header>
                        <h1>VIM поиск по тексту и замена</h1></header>
                    <div class='entry-content'>
                            <p>Для поиска в VIM по тексту есть несколько способов.</p>
<p>Сделаю сразу несколько замечаний:</p>
<ul>
<li>для подсветки при поиске желательно включить подсветку вхождений текста <code>set hlsearch incsearch</code></li>
<li>по умолчанию поиск регистрозависимый <code>set ignorecase smartcase</code></li>
</ul>
<p>Это всё желательно прописать в vimrc или init.vim (если пользуетесь neovim).</p>
<h2 id="обычный-поиск-по-тексту">Обычный поиск по тексту</h2>
<p>Первый и частоиспользуемый способ поиска в тексте это слеш (<code>/</code>).</p>
<p>Пример: <code>/пример</code>.</p>
<h2 id="поиск-с-выполнением-команд">Поиск с выполнением команд</h2>
<p>Поиск с заменой текста или выполнением других команд начинается с двоеточия (<code>:</code>).</p>
<p>После двоеточия идёт указание диапазона применимости команды. Это может быть:</p>
<ul>
<li><code>%</code> - применение ко всему документу</li>
<li><code>$</code> - применение к концу файла</li>
<li><code>15:32</code> - применение к диапазону строк с 15-ой по 32-ю</li>
<li><code>.</code> - применение к текущей строке (можно опустить)</li>
</ul>
<p>Далее идёт команда, например <code>s</code> - сокр. substitute. Затем её параметры, например слеши для разделения искомого от заменяемого.</p>
<p>Так же вместо слешей-разделителей можно использовать другие символы, см. <a href="https://vim.fandom.com/wiki/Alternate_delimiters_for_the_replace_command" target=_blank rel="noopener noreferrer">Alternate delimiters for the replace command</a></p>
<p>В конце разделителей для замены могут быть использованы следующие модификаторы:</p>
<ul>
<li><code>g</code> - поиск и заменаа других вхождений в диапазоне</li>
<li><code>i</code> - не учитывать регистр, т.е. на /text/ сматчится <code>text</code> и <code>tExT</code></li>
<li><code>c</code> - перед каждой заменой будет спрашивать, заменить или нет + другие варианты =)</li>
</ul>
<p>Полный пример: <code>:15:$s/зачем/затем/gic</code>.</p>
<p>Более подробно про регулярки VIM можно поизучать например тут: <a href="http://vimregex.com/" target=_blank rel="noopener noreferrer">http://vimregex.com/</a> или <code>:h [regexp](regexp)</code>.</p>
<h3 id="поиск-с-заменой">Поиск с заменой</h3>
<p>Примеры:</p>
<p>Замена первого вхождения текста в текущей строке (точка <code>.</code> опущена, можно было написать <code>:.s/текст/новый текст/</code>): <code>:s/текст/новый текст/</code>.</p>
<p>Для поиска и замены ПОЛНОГО вхождения текста используются операторы <code>&lt;</code> и <code>&gt;</code>: <code>:s/\&lt;текст\&gt;/новый текст/</code>.</p>
<p>Различие в том, что первый вариант заменит <code>этоттекствот</code> на <code>этотновый текствот</code>. Тогда как второй найдёт только слово (слова) &ldquo;текст&rdquo; и заменит.</p>
<h3 id="та-самая-точка-g">Та самая точка G</h3>
<p>Часто встречается задача найти и удалить строки текста по какому-нибудь критерию.</p>
<p>Наипростейшее решение для строк включающих символ решётки: <code>:g/#/d</code>.<br>
Каждая строка (<code>g</code> - global), содержащая решётку, будет удалена (<code>d</code> - сокр. delete).</p>
<p>Подобное я испоьзую для удаления комментариев в json: <code>:g#//#d</code></p>
<p>Ещё забавный пример для изменения порядка строк на обратный: <code>:g/^/m0</code>.<br>
Здесь для каждой строки у которой есть начало выполняем команду <code>move</code> на первую (нулевую) строку.
Так как команда выполняется для каждой строки текста начиная с первой, перемещение каждой последующей строки включая последнюю будет происходить на первую строку и порядок строк поменяется.</p>
<p>Если решили перейти с какой-либо IDE на VIM, скорее всего заинтересует:</p>
<ul>
<li><a href="/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim/">Переход с PHPStorm или Intellij IDEA на VIM</a></li>
<li><a href="/blog/linux/optimizaciya-i-uskorenie-vim/">Оптимизация и ускорение редактора VIM</a></li>
<li><a href="/blog/linux/statusnaya-stroka-vim-bez-plaginov/">Статусная строка VIM без плагинов в 5 строк</a></li>
</ul>
<p><small>А вообще, чаще смотрите в справку VIM: <code>:h :</code>, <code>:h substitute</code> например.</small></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Устраняем дребезг контактов клавиатуры [Linux]</title><link>https://mikhail-yudin.ru/notes/drebezg-kontaktov-klaviatury/</link><pubDate>Sat, 12 Sep 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/drebezg-kontaktov-klaviatury/</guid><description>Если например на ноутбуке напечатанные символы дублируются, либо при нажатии на стрелки курсор перемещается на несколько позиций, а клавиатуру менять не хочется, тогда мы идём к вам!
Нерабочий способ Решение искал долго, по запросу «linux дублируются клавиши» ничего не находил. Был вариант увеличить задержку перед началом повторений, но это не то.
xset r rate 320 25 Думал, помогло. А нет, показалось.
Рабочий способ избавиться от повтора клавиш Сегодня решил всерьёз разобраться.</description><enclosure url="https://mikhail-yudin.ru/notes/drebezg-kontaktov-klaviatury/drebezg-kontaktov-klaviatury.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Устраняем дребезг контактов клавиатуры [Linux]</h1></header>
                    <div class='entry-content'>
                            <p>Если например на ноутбуке напечатанные символы дублируются, либо при нажатии на стрелки курсор перемещается на несколько позиций, а клавиатуру менять не хочется, тогда мы идём к вам!</p>
<h2 id="нерабочий-способ">Нерабочий способ</h2>
<p>Решение искал долго, по запросу «linux дублируются клавиши» ничего не находил. Был вариант увеличить задержку перед началом повторений, но это не то.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">xset r rate <span style="color:#bd93f9">320</span> <span style="color:#bd93f9">25</span>
</code></pre></div><p>Думал, помогло. А нет, показалось.</p>
<h2 id="рабочий-способ-избавиться-от-повтора-клавиш">Рабочий способ избавиться от повтора клавиш</h2>
<p>Сегодня решил всерьёз разобраться. Пропылесосил клаву, полез искать решение по запросу «linux keyboard contact bounce» и нашёл:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">kbdrate -r <span style="color:#bd93f9">9</span> -d <span style="color:#bd93f9">500</span>
</code></pre></div><p>Первым параметром указываем максимальное количество возможных нажатых клавиш в секунду, второй определяет задержку повтора. Значение рекомендую подбирать экспериментально.</p>
<p>Конечно когда уже совсем всё плохо, стоит воспользоваться железным решением. Но сейчас дребезг контактов устранён и набор на клавиатуре, переход по истории команд не вызывает дискомфорта.</p>
<p><small>Последний описанный вариант решения проблемы нашёл тут: <a href="https://unix.stackexchange.com/questions/70916/fix-keyboard-chattering-bouncing-on-the-software-side" target=_blank rel="noopener noreferrer">Fix keyboard chattering/bouncing on the software side</a></small></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Адаптивная веб типографика для разработчиков</title><link>https://mikhail-yudin.ru/notes/web-tipografika-dlya-razrabotchikov/</link><pubDate>Wed, 09 Sep 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/web-tipografika-dlya-razrabotchikov/</guid><description>Веб-типографика — как я до такого докатился Сколько ни верстал макет страницы записи блога, всё получалась какая-то каша: списки зажаты, заголовки неразличимы, текст читать не хотелось. И тут решил серьёзно задаться вопросом: как создать простую адаптивную типографику для своего сайта.
Прошерстил некоторое количество ресурсов на тему веб-типорафики, в основном писалось про то, чего стоит придерживаться. Хотелось конкретики.
И вот наткнулся на несколько материалов для разработчиков, не дизайнеров. Были конкретные цифры, ссылки на инструменты.</description><enclosure url="https://mikhail-yudin.ru/notes/web-tipografika-dlya-razrabotchikov/web-tipografika-dlya-razrabotchikov.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Адаптивная веб типографика для разработчиков</h1></header>
                    <div class='entry-content'>
                            <h2 id="веб-типографика-mdash-как-я-до-такого-докатился">Веб-типографика — как я до такого докатился</h2>
<p>Сколько ни верстал макет страницы записи блога, всё получалась какая-то каша: списки зажаты, заголовки неразличимы, текст читать не хотелось.
И тут решил серьёзно задаться вопросом: как создать простую адаптивную типографику для своего сайта.</p>
<p>Прошерстил некоторое количество ресурсов на тему веб-типорафики, в основном писалось про то, чего стоит придерживаться. Хотелось конкретики.</p>
<p>И вот наткнулся на несколько материалов для разработчиков, не дизайнеров. Были конкретные цифры, ссылки на инструменты.</p>
<p>Краткая выжимка о том, как сверстать красивую типографику:</p>
<ul>
<li>используем минимальное количество шрифтов (1-2)</li>
<li>заголовки должны контрастировать с текстом (капс, жирность, цвет, гарнитура шрифта)</li>
<li>отступы у всех текстов должны быть больше высоты строки</li>
<li>размеры заголовков должны подчиняться одному коэффициенту (см. <a href="https://www.creativebloq.com/how-to/the-rules-of-responsive-web-typography#typesetting-other-elements" target=_blank rel="noopener noreferrer">The rules of responsive web typography</a>, <a href="http://www.modularscale.com/" target=_blank rel="noopener noreferrer">Инструмент для подбора</a>)</li>
<li>для мобилки используется стандартный размер шрифта, на десктопе немного больше</li>
<li>длина строки текста 60 символов (плюс/минус)</li>
<li>высота строки 1.6 (плюс/минус)</li>
</ul>
<h2 id="рецепт-создания-адаптивной-веб-типографики">Рецепт создания адаптивной веб-типографики</h2>
<ul>
<li>указываем для десктопа размер шрифта 112.5% (это 18px из стандартных 16px)</li>
<li>определяем размер шрифта тела документа и высоту строки (все элементы кроме заголовков)</li>
<li>заходим в <a href="http://www.modularscale.com/" target=_blank rel="noopener noreferrer">инструмент для подбора</a> коэффициента для размеров заголовков</li>
<li>выбираем понравившийся коэффициент</li>
<li>находим размер в 1em, берём значение больше для заголовка последнего уровня (в примере это h5)</li>
<li>проставляем остальные размеры заголовков поднимаясь выше</li>
<li>проставляем отступы (margin сверху и снизу) у текстовых элементов по вкусу</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">html</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">100</span><span style="color:#8be9fd">%</span>;
}

@<span style="color:#ff79c6">media</span> <span style="color:#ff79c6">(</span><span style="color:#ff79c6">min-width</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">40em</span><span style="color:#ff79c6">)</span> {
  <span style="color:#ff79c6">html</span> {
    <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">112.5</span><span style="color:#8be9fd">%</span>;
  }
}

<span style="color:#ff79c6">body</span> {
  <span style="color:#ff79c6">font</span>: <span style="color:#bd93f9">1</span><span style="color:#8be9fd">em</span><span style="color:#ff79c6">/</span><span style="color:#bd93f9">1.6</span> <span style="color:#ff79c6">sans-serif</span>;
}

<span style="color:#ff79c6">ul</span> {
  <span style="color:#ff79c6">padding</span>: <span style="color:#bd93f9">0</span> <span style="color:#bd93f9">0</span> <span style="color:#bd93f9">0</span> <span style="color:#bd93f9">0.75</span><span style="color:#8be9fd">em</span>;
}

<span style="color:#ff79c6">p</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">ul</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">ol</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">table</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">small</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">hr</span> {
  <span style="color:#ff79c6">margin-top</span>: <span style="color:#bd93f9">0.75</span><span style="color:#8be9fd">em</span>;
  <span style="color:#ff79c6">margin-bottom</span>: <span style="color:#bd93f9">0.75</span><span style="color:#8be9fd">em</span>;
  <span style="color:#ff79c6">max-width</span>: <span style="color:#bd93f9">66</span><span style="color:#8be9fd">ch</span>;
}

<span style="color:#ff79c6">li</span> {
  <span style="color:#ff79c6">margin-bottom</span>: <span style="color:#bd93f9">0.75</span><span style="color:#8be9fd">em</span>;
}

<span style="color:#ff79c6">small</span> {
  <span style="color:#ff79c6">display</span>: <span style="color:#ff79c6">inline</span><span style="color:#ff79c6">-</span><span style="color:#ff79c6">block</span>;
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">80</span><span style="color:#8be9fd">%</span>;
  <span style="color:#ff79c6">line-height</span>: <span style="color:#bd93f9">1.25</span><span style="color:#8be9fd">em</span>;
  <span style="color:#ff79c6">color</span>: <span style="color:#bd93f9">#666</span>;
}

<span style="color:#ff79c6">hr</span> {
  <span style="color:#ff79c6">border</span>: <span style="color:#ff79c6">none</span>;
  <span style="color:#ff79c6">background-color</span>: <span style="color:#bd93f9">#e0e0e0</span>;
  <span style="color:#ff79c6">height</span>: <span style="color:#bd93f9">1</span><span style="color:#8be9fd">px</span>;
  <span style="color:#ff79c6">margin-left</span>: <span style="color:#bd93f9">0</span>;
  <span style="color:#ff79c6">margin-right</span>: <span style="color:#bd93f9">0</span>;
}

<span style="color:#ff79c6">h1</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">h2</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">h3</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">h4</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">h5</span><span style="color:#ff79c6">,</span>
<span style="color:#ff79c6">header</span> {
  <span style="color:#ff79c6">margin</span>: <span style="color:#bd93f9">1.25</span><span style="color:#8be9fd">em</span> <span style="color:#bd93f9">0</span> <span style="color:#bd93f9">0.25</span><span style="color:#8be9fd">em</span>;
  <span style="color:#ff79c6">line-height</span>: <span style="color:#bd93f9">1.2</span>;
  <span style="color:#ff79c6">max-width</span>: <span style="color:#bd93f9">60</span><span style="color:#8be9fd">ch</span>;
}

<span style="color:#ff79c6">header</span> <span style="color:#ff79c6">&gt;</span> <span style="color:#ff79c6">h1</span> {
  <span style="color:#ff79c6">margin-top</span>: <span style="color:#bd93f9">0</span>;
}

<span style="color:#ff79c6">h1</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">2.074</span><span style="color:#8be9fd">em</span>;
}
  
<span style="color:#ff79c6">h2</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">1.728</span><span style="color:#8be9fd">em</span>;
}
  
<span style="color:#ff79c6">h3</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">1.44</span><span style="color:#8be9fd">em</span>;
}

<span style="color:#ff79c6">h4</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">1.2</span><span style="color:#8be9fd">em</span>;
}

<span style="color:#ff79c6">h5</span> {
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">1</span><span style="color:#8be9fd">em</span>;
}
</code></pre></div><p>Итого у нас получилась адаптивная веб-типографика, которая будет хорошо смотреться как на мобилке, так и на десктопе.</p>
<p>Обновляемую версию смотрите на <a href="https://github.com/fagci/minimalistic-site-snippets/blob/main/css/typography.css" target=_blank rel="noopener noreferrer">https://github.com/fagci/minimalistic-site-snippets/blob/main/css/typography.css</a></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Символы для проверки шрифтов</title><link>https://mikhail-yudin.ru/notes/symbols-font-check/</link><pubDate>Sat, 05 Sep 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/symbols-font-check/</guid><description>Здесь представлены наборы панграмм (символов) для проверки шрифтов. Используются для проверки отображения шрифтов в различных приложерниях. Имеются лигатуры для проверки шрифтов с их поддержкой.
Также здесь найдёте unicode символы, смайлы, символы для рисования границ, математические символы, надстрочные и подстрочные.
На сайте используются системные шрифты, поэтому некоторые символы могут не отображаться если у вас не установлены подходящие шрифты.
Текст Различные часто употребляемые символы алфавитов, символы для рисования окон, математические символы
。·ˉˇ¨〃々—～‖…‘’“”〔〕〈 〉《》「」『』〖〗【】±+-×÷∧∨∑∏∪∩∈√⊥∥∠⌒⊙∫∮ ≡≌≈∽∝≠≮≯≤≥∞∶∵∴∷♂♀°′″℃$¤￠￡‰§№☆★〇○●◎◇◆ 回□■△▽⊿▲▼◣◤◢◥ ▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓※→←↑↓↖↗↘↙〓 ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ①②③④⑤⑥⑦⑧⑨⑩ ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇ ㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ !</description><enclosure url="https://mikhail-yudin.ru/notes/symbols-font-check/symbols-font-check.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Символы для проверки шрифтов</h1></header>
                    <div class='entry-content'>
                            <p>Здесь представлены наборы панграмм (символов) для проверки шрифтов.
Используются для проверки отображения шрифтов в различных приложерниях.
Имеются лигатуры для проверки шрифтов с их поддержкой.</p>
<p>Также здесь найдёте unicode символы, смайлы, символы для рисования границ, математические символы, надстрочные и подстрочные.</p>
<p>На сайте используются системные шрифты, поэтому некоторые символы могут
не отображаться если у вас не установлены подходящие шрифты.</p>
<h2 id="текст">Текст</h2>
<p>Различные часто употребляемые символы алфавитов, символы для рисования окон, математические символы</p>
<p>。·ˉˇ¨〃々—～‖…‘’“”〔〕〈 〉《》「」『』〖〗【】±+-×÷∧∨∑∏∪∩∈√⊥∥∠⌒⊙∫∮
≡≌≈∽∝≠≮≯≤≥∞∶∵∴∷♂♀°′″℃$¤￠￡‰§№☆★〇○●◎◇◆ 回□■△▽⊿▲▼◣◤◢◥
▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓※→←↑↓↖↗↘↙〓 ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ①②③④⑤⑥⑦⑧⑨⑩
⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇ ㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
!&quot;#￥%&amp;'()*+，-./0123456789：;&lt;=&gt;？
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz
{|｝ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθ
ικλμνξοπρστυφχψ
ω︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдеёжзийклмнопрстуфхцчшщъыь эюāáǎàēéěèī íǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ︱︳︴﹏﹋﹌─━│┃┄┅
┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮ ┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄
╅╆╇╈╉╊╋？㊣㈱曱甴囍∟┅﹊﹍╭ ╮╰ ╯ _ ^︵^﹕﹗/\ &quot; &lt; &gt; `,·。{}~～() -√
$ @ * &amp; # 卐℡
ぁ〝〞ミ灬№*ㄨ≮≯﹢﹣/∝≌∽≦≧≒﹤﹥じぷ┗┛￥￡§я-―‥…‰′″℅℉№℡∕∝∣═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╱
╲╳▔▕〆〒〡〢〣〤〥〦〧〨〩㎎ ㎏ ㎜ ㎝ ㎞ ㎡ ㏄ ㏎㏑㏒㏕兀︰﹍﹎</p>
<h2 id="надстрочные-и-подстрочные-символы">Надстрочные и подстрочные символы</h2>
<p>Надстрочные и подстрочные символы. Используются для указания степени числа, для порядкового номера переменных, в химических формулах например.</p>
<p>Надстрочные:<br>
<code>⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾   ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ   ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ</code></p>
<p>Подстрочные:<br>
<code>₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎   ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ</code></p>
<h2 id="devicons">Devicons</h2>
<p>Иконки для типов файлов.</p>
<p>styl: , sass: , scss: , htm: , html: , slim: , haml: , ejs: ,
css: , less: , md: , mdx: , markdown: , rmd: , json: ,
webmanifest: , js: , mjs: , jsx: , rb: , gemspec: , rake: ,
php: , py: , pyc: , pyo: , pyd: , coffee: , mustache: ,
hbs: , conf: , ini: , yml: , yaml: , toml: , bat: ,
jpg: , jpeg: , bmp: , png: , webp: , gif: , ico: , twig: ,
cpp: , c++: , cxx: , cc: , cp: , c: , cs: , h: , hh: ,
hpp: , hxx: , hs: , lhs: , nix: , lua: , java: , sh: ,
fish: , bash: , zsh: , ksh: , csh: , awk: , ps1: , ml: λ, mli: λ,
diff: , db: , sql: , dump: , clj: , cljc: , cljs: , edn: ,
scala: , go: , dart: , xul: , sln: , suo: , pl: , pm: , t: ,
rss: , f#: , fsscript: , fsx: , fs: , fsi: , rs: , rlib: ,
d: , erl: , hrl: , ex: , exs: , eex: , leex: , vim: ,
ai: , psd: , psb: , ts: , tsx: , jl: , pp: , vue: ﵂,
elm: , swift: , xcplayground: , tex: ﭨ, r: ﳒ, rproj: 鉶</p>
<h2 id="fontawesome">FontAwesome</h2>
<p>Иконки из набора FontAwesome.</p>
<p>fa_glass: , fa_music: , fa_search: , fa_envelope_o: , fa_heart: , fa_star: , fa_star_o: , fa_user: , fa_film: , fa_th_large: , fa_th: , fa_th_list: , fa_check: , fa_times: ,
fa_search_plus: , fa_search_minus: , fa_power_off: , fa_signal: , fa_cog: ,
fa_trash_o: , fa_home: , fa_file_o: , fa_clock_o: , fa_road: , fa_download: , fa_arrow_circle_o_down: , fa_arrow_circle_o_up: , fa_inbox: , fa_play_circle_o: , fa_repeat: ,
fa_refresh: , fa_list_alt: , fa_lock: , fa_flag: , fa_headphones: , fa_volume_off: , fa_volume_down: , fa_volume_up: , fa_qrcode: , fa_barcode: , fa_tag: , fa_tags: , fa_book: , fa_bookmark: , fa_print: , fa_camera: , fa_font: , fa_bold: , fa_italic: , fa_text_height: , fa_text_width: , fa_align_left: , fa_align_center: , fa_align_right: , fa_align_justify: , fa_list: , fa_outdent: ,
fa_indent: , fa_video_camera: , fa_picture_o: ,
fa_pencil: , fa_map_marker: , fa_adjust: , fa_tint: , fa_pencil_square_o: ,
fa_share_square_o: , fa_check_square_o: , fa_arrows: , fa_step_backward: , fa_fast_backward: , fa_backward: , fa_play: , fa_pause: , fa_stop: , fa_forward: , fa_fast_forward: , fa_step_forward: , fa_eject: , fa_chevron_left: , fa_chevron_right: , fa_plus_circle: , fa_minus_circle: , fa_times_circle: , fa_check_circle: , fa_question_circle: , fa_info_circle: , fa_crosshairs: , fa_times_circle_o: , fa_check_circle_o: , fa_ban: , fa_arrow_left: , fa_arrow_right: , fa_arrow_up: , fa_arrow_down: , fa_share: ,
fa_expand: , fa_compress: , fa_plus: , fa_minus: , fa_asterisk: , fa_exclamation_circle: , fa_gift: , fa_leaf: , fa_fire: , fa_eye: , fa_eye_slash: , fa_exclamation_triangle: ,
fa_plane: , fa_calendar: , fa_random: , fa_comment: , fa_magnet: , fa_chevron_up: , fa_chevron_down: , fa_retweet: , fa_shopping_cart: , fa_folder: , fa_folder_open: , fa_arrows_v: , fa_arrows_h: , fa_bar_chart: ,
fa_twitter_square: , fa_facebook_square: , fa_camera_retro: , fa_key: , fa_cogs: ,
fa_comments: , fa_thumbs_o_up: , fa_thumbs_o_down: , fa_star_half: , fa_heart_o: , fa_sign_out: , fa_linkedin_square: , fa_thumb_tack: , fa_external_link: , fa_sign_in: , fa_trophy: , fa_github_square: , fa_upload: , fa_lemon_o: , fa_phone: , fa_square_o: , fa_bookmark_o: , fa_phone_square: , fa_twitter: , fa_facebook: ,
fa_github: , fa_unlock: , fa_credit_card: , fa_rss: ,
fa_hdd_o: , fa_bullhorn: , fa_bell_o: , fa_certificate: , fa_hand_o_right: , fa_hand_o_left: , fa_hand_o_up: , fa_hand_o_down: , fa_arrow_circle_left: , fa_arrow_circle_right: , fa_arrow_circle_up: , fa_arrow_circle_down: , fa_globe: , fa_wrench: , fa_tasks: , fa_filter: , fa_briefcase: , fa_arrows_alt: , fa_users: ,
fa_link: ,
fa_cloud: , fa_flask: , fa_scissors: ,
fa_files_o: ,
fa_paperclip: , fa_floppy_o: ,
fa_square: , fa_bars: ,
fa_list_ul: , fa_list_ol: , fa_strikethrough: , fa_underline: , fa_table: , fa_magic: , fa_truck: , fa_pinterest: , fa_pinterest_square: , fa_google_plus_square: , fa_google_plus: , fa_money: , fa_caret_down: , fa_caret_up: , fa_caret_left: , fa_caret_right: , fa_columns: , fa_sort: ,
fa_sort_desc: ,
fa_sort_asc: ,
fa_envelope: , fa_linkedin: , fa_undo: ,
fa_gavel: ,
fa_tachometer: ,
fa_comment_o: , fa_comments_o: , fa_bolt: ,
fa_sitemap: , fa_umbrella: , fa_clipboard: ,
fa_lightbulb_o: , fa_exchange: , fa_cloud_download: , fa_cloud_upload: , fa_user_md: , fa_stethoscope: , fa_suitcase: , fa_bell: , fa_coffee: , fa_cutlery: , fa_file_text_o: , fa_building_o: , fa_hospital_o: , fa_ambulance: , fa_medkit: , fa_fighter_jet: , fa_beer: , fa_h_square: , fa_plus_square: , fa_angle_double_left: , fa_angle_double_right: , fa_angle_double_up: , fa_angle_double_down: , fa_angle_left: , fa_angle_right: , fa_angle_up: , fa_angle_down: , fa_desktop: , fa_laptop: , fa_tablet: , fa_mobile: ,
fa_circle_o: , fa_quote_left: , fa_quote_right: , fa_spinner: , fa_circle: , fa_reply: ,
fa_github_alt: , fa_folder_o: , fa_folder_open_o: , fa_smile_o: , fa_frown_o: , fa_meh_o: , fa_gamepad: , fa_keyboard_o: , fa_flag_o: , fa_flag_checkered: , fa_terminal: , fa_code: , fa_reply_all: ,
fa_star_half_o: ,
fa_location_arrow: , fa_crop: , fa_code_fork: , fa_chain_broken: ,
fa_question: , fa_info: , fa_exclamation: , fa_superscript: , fa_subscript: , fa_eraser: , fa_puzzle_piece: , fa_microphone: , fa_microphone_slash: , fa_shield: , fa_calendar_o: , fa_fire_extinguisher: , fa_rocket: , fa_maxcdn: , fa_chevron_circle_left: , fa_chevron_circle_right: , fa_chevron_circle_up: , fa_chevron_circle_down: , fa_html5: , fa_css3: , fa_anchor: , fa_unlock_alt: , fa_bullseye: , fa_ellipsis_h: , fa_ellipsis_v: , fa_rss_square: , fa_play_circle: , fa_ticket: , fa_minus_square: , fa_minus_square_o: , fa_level_up: , fa_level_down: , fa_check_square: , fa_pencil_square: , fa_external_link_square: , fa_share_square: , fa_compass: , fa_caret_square_o_down: ,
fa_caret_square_o_up: ,
fa_caret_square_o_right: ,
fa_eur: ,
fa_gbp: , fa_usd: ,
fa_inr: ,
fa_jpy: ,
fa_rub: ,
fa_krw: ,
fa_btc: ,
fa_file: , fa_file_text: , fa_sort_alpha_asc: , fa_sort_alpha_desc: , fa_sort_amount_asc: , fa_sort_amount_desc: , fa_sort_numeric_asc: , fa_sort_numeric_desc: , fa_thumbs_up: , fa_thumbs_down: , fa_youtube_square: , fa_youtube: , fa_xing: , fa_xing_square: , fa_youtube_play: , fa_dropbox: , fa_stack_overflow: , fa_instagram: , fa_flickr: , fa_adn: , fa_bitbucket: , fa_bitbucket_square: , fa_tumblr: , fa_tumblr_square: , fa_long_arrow_down: , fa_long_arrow_up: , fa_long_arrow_left: , fa_long_arrow_right: , fa_apple: , fa_windows: , fa_android: , fa_linux: , fa_dribbble: , fa_skype: , fa_foursquare: , fa_trello: , fa_female: , fa_male: , fa_gratipay: ,
fa_sun_o: , fa_moon_o: , fa_archive: , fa_bug: , fa_vk: , fa_weibo: , fa_renren: , fa_pagelines: , fa_stack_exchange: , fa_arrow_circle_o_right: , fa_arrow_circle_o_left: , fa_caret_square_o_left: ,
fa_dot_circle_o: , fa_wheelchair: , fa_vimeo_square: , fa_try: ,
fa_plus_square_o: , fa_space_shuttle: , fa_slack: , fa_envelope_square: , fa_wordpress: , fa_openid: , fa_university: ,
fa_graduation_cap: ,
fa_yahoo: , fa_google: , fa_reddit: , fa_reddit_square: , fa_stumbleupon_circle: , fa_stumbleupon: , fa_delicious: , fa_digg: , fa_pied_piper_pp: , fa_pied_piper_alt: , fa_drupal: , fa_joomla: , fa_language: , fa_fax: , fa_building: , fa_child: , fa_paw: , fa_spoon: , fa_cube: , fa_cubes: , fa_behance: , fa_behance_square: , fa_steam: , fa_steam_square: , fa_recycle: , fa_car: ,
fa_taxi: ,
fa_tree: , fa_spotify: , fa_deviantart: , fa_soundcloud: , fa_database: , fa_file_pdf_o: , fa_file_word_o: , fa_file_excel_o: , fa_file_powerpoint_o: , fa_file_image_o: ,
fa_file_archive_o: ,
fa_file_audio_o: ,
fa_file_video_o: ,
fa_file_code_o: , fa_vine: , fa_codepen: , fa_jsfiddle: , fa_life_ring: ,
fa_circle_o_notch: , fa_rebel: ,
fa_empire: ,
fa_git_square: , fa_git: , fa_hacker_news: ,
fa_tencent_weibo: , fa_qq: , fa_weixin: ,
fa_paper_plane: ,
fa_paper_plane_o: ,
fa_history: , fa_circle_thin: , fa_header: , fa_paragraph: , fa_sliders: , fa_share_alt: , fa_share_alt_square: , fa_bomb: , fa_futbol_o: ,
fa_tty: , fa_binoculars: , fa_plug: , fa_slideshare: , fa_twitch: , fa_yelp: , fa_newspaper_o: , fa_wifi: , fa_calculator: , fa_paypal: , fa_google_wallet: , fa_cc_visa: , fa_cc_mastercard: , fa_cc_discover: , fa_cc_amex: , fa_cc_paypal: , fa_cc_stripe: , fa_bell_slash: , fa_bell_slash_o: , fa_trash: , fa_copyright: , fa_at: , fa_eyedropper: , fa_paint_brush: , fa_birthday_cake: , fa_area_chart: , fa_pie_chart: , fa_line_chart: , fa_lastfm: , fa_lastfm_square: , fa_toggle_off: , fa_toggle_on: , fa_bicycle: , fa_bus: , fa_ioxhost: , fa_angellist: , fa_cc: , fa_ils: ,
fa_meanpath: , fa_buysellads: , fa_connectdevelop: , fa_dashcube: , fa_forumbee: , fa_leanpub: , fa_sellsy: , fa_shirtsinbulk: , fa_simplybuilt: , fa_skyatlas: , fa_cart_plus: , fa_cart_arrow_down: , fa_diamond: , fa_ship: , fa_user_secret: , fa_motorcycle: , fa_street_view: , fa_heartbeat: , fa_venus: , fa_mars: , fa_mercury: , fa_transgender: ,
fa_transgender_alt: , fa_venus_double: , fa_mars_double: , fa_venus_mars: , fa_mars_stroke: , fa_mars_stroke_v: , fa_mars_stroke_h: , fa_neuter: , fa_genderless: , fa_facebook_official: , fa_pinterest_p: , fa_whatsapp: , fa_server: , fa_user_plus: , fa_user_times: , fa_bed: ,
fa_viacoin: , fa_train: , fa_subway: , fa_medium: , fa_y_combinator: ,
fa_optin_monster: , fa_opencart: , fa_expeditedssl: , fa_battery_full: ,
fa_battery_three_quarters: ,
fa_battery_half: ,
fa_battery_quarter: ,
fa_battery_empty: ,
fa_mouse_pointer: , fa_i_cursor: , fa_object_group: , fa_object_ungroup: , fa_sticky_note: , fa_sticky_note_o: , fa_cc_jcb: , fa_cc_diners_club: , fa_clone: , fa_balance_scale: , fa_hourglass_o: , fa_hourglass_start: ,
fa_hourglass_half: ,
fa_hourglass_end: ,
fa_hourglass: , fa_hand_rock_o: ,
fa_hand_paper_o: ,
fa_hand_scissors_o: , fa_hand_lizard_o: , fa_hand_spock_o: , fa_hand_pointer_o: , fa_hand_peace_o: , fa_trademark: , fa_registered: , fa_creative_commons: , fa_gg: , fa_gg_circle: , fa_tripadvisor: , fa_odnoklassniki: , fa_odnoklassniki_square: , fa_get_pocket: , fa_wikipedia_w: , fa_safari: , fa_chrome: , fa_firefox: , fa_opera: , fa_internet_explorer: , fa_television: ,
fa_contao: , fa_500px: , fa_amazon: , fa_calendar_plus_o: , fa_calendar_minus_o: , fa_calendar_times_o: , fa_calendar_check_o: , fa_industry: , fa_map_pin: , fa_map_signs: , fa_map_o: , fa_map: , fa_commenting: , fa_commenting_o: , fa_houzz: , fa_vimeo: , fa_black_tie: , fa_fonticons: , fa_reddit_alien: , fa_edge: , fa_credit_card_alt: , fa_codiepie: , fa_modx: , fa_fort_awesome: , fa_usb: , fa_product_hunt: , fa_mixcloud: , fa_scribd: , fa_pause_circle: , fa_pause_circle_o: , fa_stop_circle: , fa_stop_circle_o: , fa_shopping_bag: , fa_shopping_basket: , fa_hashtag: , fa_bluetooth: , fa_bluetooth_b: , fa_percent: , fa_gitlab: , fa_wpbeginner: , fa_wpforms: , fa_envira: , fa_universal_access: , fa_wheelchair_alt: , fa_question_circle_o: , fa_blind: , fa_audio_description: , fa_volume_control_phone: , fa_braille: , fa_assistive_listening_systems: , fa_american_sign_language_interpreting: ,
fa_deaf: ,
fa_glide: , fa_glide_g: , fa_sign_language: ,
fa_low_vision: , fa_viadeo: , fa_viadeo_square: , fa_snapchat: , fa_snapchat_ghost: , fa_snapchat_square: , fa_pied_piper: , fa_first_order: , fa_yoast: , fa_themeisle: , fa_google_plus_official: ,
fa_font_awesome: ,
fa_handshake_o: , fa_envelope_open: , fa_envelope_open_o: , fa_linode: , fa_address_book: , fa_address_book_o: , fa_address_card: ,
fa_address_card_o: ,
fa_user_circle: , fa_user_circle_o: , fa_user_o: , fa_id_badge: , fa_id_card: ,
fa_id_card_o: ,
fa_quora: , fa_free_code_camp: , fa_telegram: , fa_thermometer_full: ,
fa_thermometer_three_quarters: ,
fa_thermometer_half: ,
fa_thermometer_quarter: ,
fa_thermometer_empty: ,
fa_shower: , fa_bath: ,
fa_podcast: , fa_window_maximize: , fa_window_minimize: , fa_window_restore: , fa_window_close: ,
fa_window_close_o: ,
fa_bandcamp: , fa_grav: , fa_etsy: , fa_imdb: , fa_ravelry: , fa_eercast: , fa_microchip: , fa_snowflake_o: , fa_superpowers: , fa_wpexplorer: , fa_meetup: </p>
<h2 id="material-design-icons">Material Design Icons</h2>
<p>Иконки и набора материального дизайна.</p>
<p>mdi_vector_square: ,
mdi_access_point: ,
mdi_access_point_network: ,
mdi_account: ,
mdi_account_alert: ,
mdi_account_box: ,
mdi_account_box_outline: ,
mdi_account_check: ,
mdi_account_circle: ,
mdi_account_convert: ,
mdi_account_key: ,
mdi_account_location: ,
mdi_account_minus: ,
mdi_account_multiple: ,
mdi_account_multiple_outline: ,
mdi_account_multiple_plus: ,
mdi_account_network: ,
mdi_account_off: ,
mdi_account_outline: ,
mdi_account_plus: ,
mdi_account_remove: ,
mdi_account_search: ,
mdi_account_star: ,
mdi_orbit: ,
mdi_account_switch: ,
mdi_adjust: ,
mdi_air_conditioner: ,
mdi_airballoon: ,
mdi_airplane: ,
mdi_airplane_off: ,
mdi_airplay: ,
mdi_alarm: ,
mdi_alarm_check: ,
mdi_alarm_multiple: ,
mdi_alarm_off: ,
mdi_alarm_plus: ,
mdi_album: ,
mdi_alert: ,
mdi_alert_box: ,
mdi_alert_circle: ,
mdi_alert_octagon: ,
mdi_alert_outline: ,
mdi_alpha: ,
mdi_alphabetical: ,
mdi_amazon: ,
mdi_amazon_clouddrive: ,
mdi_ambulance: ,
mdi_amplifier: ,
mdi_anchor: ,
mdi_android: ,
mdi_android_debug_bridge: ,
mdi_android_studio: ,
mdi_apple: ,
mdi_apple_finder: ,
mdi_apple_ios: ,
mdi_apple_mobileme: ,
mdi_apple_safari: ,
mdi_font_awesome: ,
mdi_apps: ,
mdi_archive: ,
mdi_arrange_bring_forward: ,
mdi_arrange_bring_to_front: ,
mdi_arrange_send_backward: ,
mdi_arrange_send_to_back: ,
mdi_arrow_all: ,
mdi_arrow_bottom_left: ,
mdi_arrow_bottom_right: ,
mdi_arrow_collapse_all: ,
mdi_arrow_down: ,
mdi_arrow_down_thick: ,
mdi_arrow_down_bold_circle: ,
mdi_arrow_down_bold_circle_outline: ,
mdi_arrow_down_bold_hexagon_outline: ,
mdi_arrow_down_drop_circle: ,
mdi_arrow_down_drop_circle_outline: ,
mdi_arrow_expand_all: ,
mdi_arrow_left: ,
mdi_arrow_left_thick: ,
mdi_arrow_left_bold_circle: ,
mdi_arrow_left_bold_circle_outline: ,
mdi_arrow_left_bold_hexagon_outline: ,
mdi_arrow_left_drop_circle: ,
mdi_arrow_left_drop_circle_outline: ,
mdi_arrow_right: ,
mdi_arrow_right_thick: ,
mdi_arrow_right_bold_circle: ,
mdi_arrow_right_bold_circle_outline: ,
mdi_arrow_right_bold_hexagon_outline: ,
mdi_arrow_right_drop_circle: ,
mdi_arrow_right_drop_circle_outline: ,
mdi_arrow_top_left: ,
mdi_arrow_top_right: ,
mdi_arrow_up: ,
mdi_arrow_up_thick: ,
mdi_arrow_up_bold_circle: ,
mdi_arrow_up_bold_circle_outline: ,
mdi_arrow_up_bold_hexagon_outline: ,
mdi_arrow_up_drop_circle: ,
mdi_arrow_up_drop_circle_outline: ,
mdi_assistant: ,
mdi_at: ,
mdi_attachment: ,
mdi_audiobook: ,
mdi_auto_fix: ,
mdi_auto_upload: ,
mdi_autorenew: ,
mdi_av_timer: ,
mdi_baby: ,
mdi_backburger: ,
mdi_backspace: ,
mdi_backup_restore: ,
mdi_bank: ,
mdi_barcode: ,
mdi_barcode_scan: ,
mdi_barley: ,
mdi_barrel: ,
mdi_basecamp: ,
mdi_basket: ,
mdi_basket_fill: ,
mdi_basket_unfill: ,
mdi_battery: ,
mdi_battery_10: ,
mdi_battery_20: ,
mdi_battery_30: ,
mdi_battery_40: ,
mdi_battery_50: ,
mdi_battery_60: ,
mdi_battery_70: ,
mdi_battery_80: ,
mdi_battery_90: ,
mdi_battery_alert: ,
mdi_battery_charging: ,
mdi_battery_charging_100: ,
mdi_battery_charging_20: ,
mdi_battery_charging_30: ,
mdi_battery_charging_40: ,
mdi_battery_charging_60: ,
mdi_battery_charging_80: ,
mdi_battery_charging_90: ,
mdi_battery_minus: ,
mdi_battery_negative: ,
mdi_battery_outline: ,
mdi_battery_plus: ,
mdi_battery_positive: ,
mdi_battery_unknown: ,
mdi_beach: ,
mdi_flask: ,
mdi_flask_empty: ,
mdi_flask_empty_outline: ,
mdi_flask_outline: ,
mdi_beats: ,
mdi_beer: ,
mdi_behance: ,
mdi_bell: ,
mdi_bell_off: ,
mdi_bell_outline: ,
mdi_bell_plus: ,
mdi_bell_ring: ,
mdi_bell_ring_outline: ,
mdi_bell_sleep: ,
mdi_beta: ,
mdi_bible: ,
mdi_bike: ,
mdi_bing: ,
mdi_binoculars: ,
mdi_bio: ,
mdi_biohazard: ,
mdi_bitbucket: ,
mdi_black_mesa: ,
mdi_blackberry: ,
mdi_blender: ,
mdi_blinds: ,
mdi_block_helper: ,
mdi_blogger: ,
mdi_bluetooth: ,
mdi_bluetooth_audio: ,
mdi_bluetooth_connect: ,
mdi_bluetooth_off: ,
mdi_bluetooth_settings: ,
mdi_bluetooth_transfer: ,
mdi_blur: ,
mdi_blur_linear: ,
mdi_blur_off: ,
mdi_blur_radial: ,
mdi_bone: ,
mdi_book: ,
mdi_book_multiple: ,
mdi_book_multiple_variant: ,
mdi_book_open: ,
mdi_book_open_variant: ,
mdi_book_variant: ,
mdi_bookmark: ,
mdi_bookmark_check: ,
mdi_bookmark_music: ,
mdi_bookmark_outline: ,
mdi_bookmark_plus_outline: ,
mdi_bookmark_plus: ,
mdi_bookmark_remove: ,
mdi_border_all: ,
mdi_border_bottom: ,
mdi_border_color: ,
mdi_border_horizontal: ,
mdi_border_inside: ,
mdi_border_left: ,
mdi_border_none: ,
mdi_border_outside: ,
mdi_border_right: ,
mdi_border_style: ,
mdi_border_top: ,
mdi_border_vertical: ,
mdi_bowling: ,
mdi_box: ,
mdi_box_cutter: ,
mdi_briefcase: ,
mdi_briefcase_check: ,
mdi_briefcase_download: ,
mdi_briefcase_upload: ,
mdi_brightness_1: ,
mdi_brightness_2: ,
mdi_brightness_3: ,
mdi_brightness_4: ,
mdi_brightness_5: ,
mdi_brightness_6: ,
mdi_brightness_7: ,
mdi_brightness_auto: ,
mdi_broom: ,
mdi_brush: ,
mdi_bug: ,
mdi_bulletin_board: ,
mdi_bullhorn: ,
mdi_bus: ,
mdi_cached: ,
mdi_cake: ,
mdi_cake_layered: ,
mdi_cake_variant: ,
mdi_calculator: ,
mdi_calendar: ,
mdi_calendar_blank: ,
mdi_calendar_check: ,
mdi_calendar_clock: ,
mdi_calendar_multiple: ,
mdi_calendar_multiple_check: ,
mdi_calendar_plus: ,
mdi_calendar_remove: ,
mdi_calendar_text: ,
mdi_calendar_today: ,
mdi_call_made: ,
mdi_call_merge: ,
mdi_call_missed: ,
mdi_call_received: ,
mdi_call_split: ,
mdi_camcorder: ,
mdi_camcorder_box: ,
mdi_camcorder_box_off: ,
mdi_camcorder_off: ,
mdi_camera: ,
mdi_camera_enhance: ,
mdi_camera_front: ,
mdi_camera_front_variant: ,
mdi_camera_iris: ,
mdi_camera_party_mode: ,
mdi_camera_rear: ,
mdi_camera_rear_variant: ,
mdi_camera_switch: ,
mdi_camera_timer: ,
mdi_candycane: ,
mdi_car: ,
mdi_car_battery: ,
mdi_car_connected: ,
mdi_car_wash: ,
mdi_carrot: ,
mdi_cart: ,
mdi_cart_outline: ,
mdi_cart_plus: ,
mdi_case_sensitive_alt: ,
mdi_cash: ,
mdi_cash_100: ,
mdi_cash_multiple: ,
mdi_cash_usd: ,
mdi_cast: ,
mdi_cast_connected: ,
mdi_castle: ,
mdi_cat: ,
mdi_cellphone: ,
mdi_cellphone_android: ,
mdi_cellphone_basic: ,
mdi_cellphone_dock: ,
mdi_cellphone_iphone: ,
mdi_cellphone_link: ,
mdi_cellphone_link_off: ,
mdi_cellphone_settings: ,
mdi_certificate: ,
mdi_chair_school: ,
mdi_chart_arc: ,
mdi_chart_areaspline: ,
mdi_chart_bar: ,
mdi_chart_histogram: ,
mdi_chart_line: ,
mdi_chart_pie: ,
mdi_check: ,
mdi_check_all: ,
mdi_checkbox_blank: ,
mdi_checkbox_blank_circle: ,
mdi_checkbox_blank_circle_outline: ,
mdi_checkbox_blank_outline: ,
mdi_checkbox_marked: ,
mdi_checkbox_marked_circle: ,
mdi_checkbox_marked_circle_outline: ,
mdi_checkbox_marked_outline: ,
mdi_checkbox_multiple_blank: ,
mdi_checkbox_multiple_blank_outline: ,
mdi_checkbox_multiple_marked: ,
mdi_checkbox_multiple_marked_outline: ,
mdi_checkerboard: ,
mdi_chemical_weapon: ,
mdi_chevron_double_down: ,
mdi_chevron_double_left: ,
mdi_chevron_double_right: ,
mdi_chevron_double_up: ,
mdi_chevron_down: ,
mdi_chevron_left: ,
mdi_chevron_right: ,
mdi_chevron_up: ,
mdi_church: ,
mdi_cisco_webex: ,
mdi_city: ,
mdi_clipboard: ,
mdi_clipboard_account: ,
mdi_clipboard_alert: ,
mdi_clipboard_arrow_down: ,
mdi_clipboard_arrow_left: ,
mdi_clipboard_check: ,
mdi_clipboard_outline: ,
mdi_clipboard_text: ,
mdi_clippy: ,
mdi_clock: ,
mdi_clock_end: ,
mdi_clock_fast: ,
mdi_clock_in: ,
mdi_clock_out: ,
mdi_clock_start: ,
mdi_close: ,
mdi_close_box: ,
mdi_close_box_outline: ,
mdi_close_circle: ,
mdi_close_circle_outline: ,
mdi_close_network: ,
mdi_close_octagon: ,
mdi_close_octagon_outline: ,
mdi_closed_caption: ,
mdi_cloud: ,
mdi_cloud_check: ,
mdi_cloud_circle: ,
mdi_cloud_download: ,
mdi_cloud_outline: ,
mdi_cloud_off_outline: ,
mdi_cloud_print: ,
mdi_cloud_print_outline: ,
mdi_cloud_upload: ,
mdi_code_array: ,
mdi_code_braces: ,
mdi_code_brackets: ,
mdi_code_equal: ,
mdi_code_greater_than: ,
mdi_code_greater_than_or_equal: ,
mdi_code_less_than: ,
mdi_code_less_than_or_equal: ,
mdi_code_not_equal: ,
mdi_code_not_equal_variant: ,
mdi_code_parentheses: ,
mdi_code_string: ,
mdi_code_tags: ,
mdi_codepen: ,
mdi_coffee: ,
mdi_coffee_to_go: ,
mdi_coin: ,
mdi_color_helper: ,
mdi_comment: ,
mdi_comment_account: ,
mdi_comment_account_outline: ,
mdi_comment_alert: ,
mdi_comment_alert_outline: ,
mdi_comment_check: ,
mdi_comment_check_outline: ,
mdi_comment_multiple_outline: ,
mdi_comment_outline: ,
mdi_comment_plus_outline: ,
mdi_comment_processing: ,
mdi_comment_processing_outline: ,
mdi_comment_question_outline: ,
mdi_comment_remove_outline: ,
mdi_comment_text: ,
mdi_comment_text_outline: ,
mdi_compare: ,
mdi_compass: ,
mdi_compass_outline: ,
mdi_console: ,
mdi_contact_mail: ,
mdi_content_copy: ,
mdi_content_cut: ,
mdi_content_duplicate: ,
mdi_content_paste: ,
mdi_content_save: ,
mdi_content_save_all: ,
mdi_contrast: ,
mdi_contrast_box: ,
mdi_contrast_circle: ,
mdi_cookie: ,
mdi_counter: ,
mdi_cow: ,
mdi_credit_card: ,
mdi_credit_card_multiple: ,
mdi_credit_card_scan: ,
mdi_crop: ,
mdi_crop_free: ,
mdi_crop_landscape: ,
mdi_crop_portrait: ,
mdi_crop_square: ,
mdi_crosshairs: ,
mdi_crosshairs_gps: ,
mdi_crown: ,
mdi_cube: ,
mdi_cube_outline: ,
mdi_cube_send: ,
mdi_cube_unfolded: ,
mdi_cup: ,
mdi_cup_water: ,
mdi_currency_btc: ,
mdi_currency_eur: ,
mdi_currency_gbp: ,
mdi_currency_inr: ,
mdi_currency_ngn: ,
mdi_currency_rub: ,
mdi_currency_try: ,
mdi_currency_usd: ,
mdi_cursor_default: ,
mdi_cursor_default_outline: ,
mdi_cursor_move: ,
mdi_cursor_pointer: ,
mdi_database: ,
mdi_database_minus: ,
mdi_database_plus: ,
mdi_debug_step_into: ,
mdi_debug_step_out: ,
mdi_debug_step_over: ,
mdi_decimal_decrease: ,
mdi_decimal_increase: ,
mdi_delete: ,
mdi_delete_variant: ,
mdi_delta: ,
mdi_deskphone: ,
mdi_desktop_mac: ,
mdi_desktop_tower: ,
mdi_details: ,
mdi_deviantart: ,
mdi_diamond: ,
mdi_creation: ,
mdi_dice_1: ,
mdi_dice_2: ,
mdi_dice_3: ,
mdi_dice_4: ,
mdi_dice_5: ,
mdi_dice_6: ,
mdi_directions: ,
mdi_disk_alert: ,
mdi_disqus: ,
mdi_disqus_outline: ,
mdi_division: ,
mdi_division_box: ,
mdi_dns: ,
mdi_domain: ,
mdi_dots_horizontal: ,
mdi_dots_vertical: ,
mdi_download: ,
mdi_drag: ,
mdi_drag_horizontal: ,
mdi_drag_vertical: ,
mdi_drawing: ,
mdi_drawing_box: ,
mdi_dribbble: ,
mdi_dribbble_box: ,
mdi_drone: ,
mdi_dropbox: ,
mdi_drupal: ,
mdi_duck: ,
mdi_dumbbell: ,
mdi_earth: ,
mdi_earth_off: ,
mdi_edge: ,
mdi_eject: ,
mdi_elevation_decline: ,
mdi_elevation_rise: ,
mdi_elevator: ,
mdi_email: ,
mdi_email_open: ,
mdi_email_outline: ,
mdi_email_secure: ,
mdi_emoticon: ,
mdi_emoticon_cool: ,
mdi_emoticon_devil: ,
mdi_emoticon_happy: ,
mdi_emoticon_neutral: ,
mdi_emoticon_poop: ,
mdi_emoticon_sad: ,
mdi_emoticon_tongue: ,
mdi_engine: ,
mdi_engine_outline: ,
mdi_equal: ,
mdi_equal_box: ,
mdi_eraser: ,
mdi_escalator: ,
mdi_ethernet: ,
mdi_ethernet_cable: ,
mdi_ethernet_cable_off: ,
mdi_etsy: ,
mdi_evernote: ,
mdi_exclamation: ,
mdi_exit_to_app: ,
mdi_export: ,
mdi_eye: ,
mdi_eye_off: ,
mdi_eyedropper: ,
mdi_eyedropper_variant: ,
mdi_facebook: ,
mdi_facebook_box: ,
mdi_facebook_messenger: ,
mdi_factory: ,
mdi_fan: ,
mdi_fast_forward: ,
mdi_fax: ,
mdi_ferry: ,
mdi_file: ,
mdi_file_chart: ,
mdi_file_check: ,
mdi_file_cloud: ,
mdi_file_delimited: ,
mdi_file_document: ,
mdi_file_document_box: ,
mdi_file_excel: ,
mdi_file_excel_box: ,
mdi_file_export: ,
mdi_file_find: ,
mdi_file_image: ,
mdi_file_import: ,
mdi_file_lock: ,
mdi_file_multiple: ,
mdi_file_music: ,
mdi_file_outline: ,
mdi_file_pdf: ,
mdi_file_pdf_box: ,
mdi_file_powerpoint: ,
mdi_file_powerpoint_box: ,
mdi_file_presentation_box: ,
mdi_file_send: ,
mdi_file_video: ,
mdi_file_word: ,
mdi_file_word_box: ,
mdi_file_xml: ,
mdi_film: ,
mdi_filmstrip: ,
mdi_filmstrip_off: ,
mdi_filter: ,
mdi_filter_outline: ,
mdi_filter_remove: ,
mdi_filter_remove_outline: ,
mdi_filter_variant: ,
mdi_fingerprint: ,
mdi_fire: ,
mdi_firefox: ,
mdi_fish: ,
mdi_flag: ,
mdi_flag_checkered: ,
mdi_flag_outline: ,
mdi_flag_variant_outline: ,
mdi_flag_triangle: ,
mdi_flag_variant: ,
mdi_flash: ,
mdi_flash_auto: ,
mdi_flash_off: ,
mdi_flashlight: ,
mdi_flashlight_off: ,
mdi_flattr: ,
mdi_flip_to_back: ,
mdi_flip_to_front: ,
mdi_floppy: ,
mdi_flower: ,
mdi_folder: ,
mdi_folder_account: ,
mdi_folder_download: ,
mdi_folder_google_drive: ,
mdi_folder_image: ,
mdi_folder_lock: ,
mdi_folder_lock_open: ,
mdi_folder_move: ,
mdi_folder_multiple: ,
mdi_folder_multiple_image: ,
mdi_folder_multiple_outline: ,
mdi_folder_outline: ,
mdi_folder_plus: ,
mdi_folder_remove: ,
mdi_folder_upload: ,
mdi_food: ,
mdi_food_apple: ,
mdi_food_variant: ,
mdi_football: ,
mdi_football_australian: ,
mdi_football_helmet: ,
mdi_format_align_center: ,
mdi_format_align_justify: ,
mdi_format_align_left: ,
mdi_format_align_right: ,
mdi_format_bold: ,
mdi_format_clear: ,
mdi_format_color_fill: ,
mdi_format_float_center: ,
mdi_format_float_left: ,
mdi_format_float_none: ,
mdi_format_float_right: ,
mdi_format_header_1: ,
mdi_format_header_2: ,
mdi_format_header_3: ,
mdi_format_header_4: ,
mdi_format_header_5: ,
mdi_format_header_6: ,
mdi_format_header_decrease: ,
mdi_format_header_equal: ,
mdi_format_header_increase: ,
mdi_format_header_pound: ,
mdi_format_indent_decrease: ,
mdi_format_indent_increase: ,
mdi_format_italic: ,
mdi_format_line_spacing: ,
mdi_format_list_bulleted: ,
mdi_format_list_bulleted_type: ,
mdi_format_list_numbers: ,
mdi_format_paint: ,
mdi_format_paragraph: ,
mdi_format_quote_close: ,
mdi_format_size: ,
mdi_format_strikethrough: ,
mdi_format_strikethrough_variant: ,
mdi_format_subscript: ,
mdi_format_superscript: ,
mdi_format_text: ,
mdi_format_textdirection_l_to_r: ,
mdi_format_textdirection_r_to_l: ,
mdi_format_underline: ,
mdi_format_wrap_inline: ,
mdi_format_wrap_square: ,
mdi_format_wrap_tight: ,
mdi_format_wrap_top_bottom: ,
mdi_forum: ,
mdi_forward: ,
mdi_foursquare: ,
mdi_fridge: ,
mdi_fridge_filled: ,
mdi_fridge_filled_bottom: ,
mdi_fridge_filled_top: ,
mdi_fullscreen: ,
mdi_fullscreen_exit: ,
mdi_function: ,
mdi_gamepad: ,
mdi_gamepad_variant: ,
mdi_gas_station: ,
mdi_gate: ,
mdi_gauge: ,
mdi_gavel: ,
mdi_gender_female: ,
mdi_gender_male: ,
mdi_gender_male_female: ,
mdi_gender_transgender: ,
mdi_ghost: ,
mdi_gift: ,
mdi_git: ,
mdi_github_box: ,
mdi_github_circle: ,
mdi_glass_flute: ,
mdi_glass_mug: ,
mdi_glass_stange: ,
mdi_glass_tulip: ,
mdi_glassdoor: ,
mdi_glasses: ,
mdi_gmail: ,
mdi_gnome: ,
mdi_google: ,
mdi_google_cardboard: ,
mdi_google_chrome: ,
mdi_google_circles: ,
mdi_google_circles_communities: ,
mdi_google_circles_extended: ,
mdi_google_circles_group: ,
mdi_google_controller: ,
mdi_google_controller_off: ,
mdi_google_drive: ,
mdi_google_earth: ,
mdi_google_glass: ,
mdi_google_nearby: ,
mdi_google_pages: ,
mdi_google_physical_web: ,
mdi_google_play: ,
mdi_google_plus: ,
mdi_google_plus_box: ,
mdi_google_translate: ,
mdi_google_wallet: ,
mdi_grid: ,
mdi_grid_off: ,
mdi_group: ,
mdi_guitar_electric: ,
mdi_guitar_pick: ,
mdi_guitar_pick_outline: ,
mdi_hand_pointing_right: ,
mdi_hanger: ,
mdi_hangouts: ,
mdi_harddisk: ,
mdi_headphones: ,
mdi_headphones_box: ,
mdi_headphones_settings: ,
mdi_headset: ,
mdi_headset_dock: ,
mdi_headset_off: ,
mdi_heart: ,
mdi_heart_box: ,
mdi_heart_box_outline: ,
mdi_heart_broken: ,
mdi_heart_outline: ,
mdi_help: ,
mdi_help_circle: ,
mdi_hexagon: ,
mdi_hexagon_outline: ,
mdi_history: ,
mdi_hololens: ,
mdi_home: ,
mdi_home_modern: ,
mdi_home_variant: ,
mdi_hops: ,
mdi_hospital: ,
mdi_hospital_building: ,
mdi_hospital_marker: ,
mdi_hotel: ,
mdi_houzz: ,
mdi_houzz_box: ,
mdi_human: ,
mdi_human_child: ,
mdi_human_male_female: ,
mdi_image: ,
mdi_image_album: ,
mdi_image_area: ,
mdi_image_area_close: ,
mdi_image_broken: ,
mdi_image_broken_variant: ,
mdi_image_filter: ,
mdi_image_filter_black_white: ,
mdi_image_filter_center_focus: ,
mdi_image_filter_center_focus_weak: ,
mdi_image_filter_drama: ,
mdi_image_filter_frames: ,
mdi_image_filter_hdr: ,
mdi_image_filter_none: ,
mdi_image_filter_tilt_shift: ,
mdi_image_filter_vintage: ,
mdi_image_multiple: ,
mdi_import: ,
mdi_inbox_arrow_down: ,
mdi_information: ,
mdi_information_outline: ,
mdi_instagram: ,
mdi_instapaper: ,
mdi_internet_explorer: ,
mdi_invert_colors: ,
mdi_jeepney: ,
mdi_jira: ,
mdi_jsfiddle: ,
mdi_keg: ,
mdi_key: ,
mdi_key_change: ,
mdi_key_minus: ,
mdi_key_plus: ,
mdi_key_remove: ,
mdi_key_variant: ,
mdi_keyboard: ,
mdi_keyboard_backspace: ,
mdi_keyboard_caps: ,
mdi_keyboard_close: ,
mdi_keyboard_off: ,
mdi_keyboard_return: ,
mdi_keyboard_tab: ,
mdi_keyboard_variant: ,
mdi_kodi: ,
mdi_label: ,
mdi_label_outline: ,
mdi_lan: ,
mdi_lan_connect: ,
mdi_lan_disconnect: ,
mdi_lan_pending: ,
mdi_language_csharp: ,
mdi_language_css3: ,
mdi_language_html5: ,
mdi_language_javascript: ,
mdi_language_php: ,
mdi_language_python: ,
mdi_language_python_text: ,
mdi_laptop: ,
mdi_laptop_chromebook: ,
mdi_laptop_mac: ,
mdi_laptop_windows: ,
mdi_lastfm: ,
mdi_launch: ,
mdi_layers: ,
mdi_layers_off: ,
mdi_leaf: ,
mdi_led_off: ,
mdi_led_on: ,
mdi_led_outline: ,
mdi_led_variant_off: ,
mdi_led_variant_on: ,
mdi_led_variant_outline: ,
mdi_library: ,
mdi_library_books: ,
mdi_library_music: ,
mdi_library_plus: ,
mdi_lightbulb: ,
mdi_lightbulb_outline: ,
mdi_link: ,
mdi_link_off: ,
mdi_link_variant: ,
mdi_link_variant_off: ,
mdi_linkedin: ,
mdi_linkedin_box: ,
mdi_linux: ,
mdi_lock: ,
mdi_lock_open: ,
mdi_lock_open_outline: ,
mdi_lock_outline: ,
mdi_login: ,
mdi_logout: ,
mdi_looks: ,
mdi_loupe: ,
mdi_lumx: ,
mdi_magnet: ,
mdi_magnet_on: ,
mdi_magnify: ,
mdi_magnify_minus: ,
mdi_magnify_plus: ,
mdi_mail_ru: ,
mdi_map: ,
mdi_map_marker: ,
mdi_map_marker_circle: ,
mdi_map_marker_multiple: ,
mdi_map_marker_off: ,
mdi_map_marker_radius: ,
mdi_margin: ,
mdi_markdown: ,
mdi_marker_check: ,
mdi_martini: ,
mdi_material_ui: ,
mdi_math_compass: ,
mdi_maxcdn: ,
mdi_medium: ,
mdi_memory: ,
mdi_menu: ,
mdi_menu_down: ,
mdi_menu_left: ,
mdi_menu_right: ,
mdi_menu_up: ,
mdi_message: ,
mdi_message_alert: ,
mdi_message_draw: ,
mdi_message_image: ,
mdi_message_outline: ,
mdi_message_processing: ,
mdi_message_reply: ,
mdi_message_reply_text: ,
mdi_message_text: ,
mdi_message_text_outline: ,
mdi_message_video: ,
mdi_microphone: ,
mdi_microphone_off: ,
mdi_microphone_outline: ,
mdi_microphone_settings: ,
mdi_microphone_variant: ,
mdi_microphone_variant_off: ,
mdi_microsoft: ,
mdi_minecraft: ,
mdi_minus: ,
mdi_minus_box: ,
mdi_minus_circle: ,
mdi_minus_circle_outline: ,
mdi_minus_network: ,
mdi_monitor: ,
mdi_monitor_multiple: ,
mdi_more: ,
mdi_motorbike: ,
mdi_mouse: ,
mdi_mouse_off: ,
mdi_mouse_variant: ,
mdi_mouse_variant_off: ,
mdi_movie: ,
mdi_multiplication: ,
mdi_multiplication_box: ,
mdi_music_box: ,
mdi_music_box_outline: ,
mdi_music_circle: ,
mdi_music_note: ,
mdi_music_note_eighth: ,
mdi_music_note_half: ,
mdi_music_note_off: ,
mdi_music_note_quarter: ,
mdi_music_note_sixteenth: ,
mdi_music_note_whole: ,
mdi_nature: ,
mdi_nature_people: ,
mdi_navigation: ,
mdi_needle: ,
mdi_nest_protect: ,
mdi_nest_thermostat: ,
mdi_new_box: ,
mdi_newspaper: ,
mdi_nfc: ,
mdi_nfc_tap: ,
mdi_nfc_variant: ,
mdi_nodejs: ,
mdi_note: ,
mdi_note_outline: ,
mdi_note_plus: ,
mdi_note_plus_outline: ,
mdi_note_text: ,
mdi_notification_clear_all: ,
mdi_numeric: ,
mdi_numeric_0_box: ,
mdi_numeric_0_box_multiple_outline: ,
mdi_numeric_0_box_outline: ,
mdi_numeric_1_box: ,
mdi_numeric_1_box_multiple_outline: ,
mdi_numeric_1_box_outline: ,
mdi_numeric_2_box: ,
mdi_numeric_2_box_multiple_outline: ,
mdi_numeric_2_box_outline: ,
mdi_numeric_3_box: ,
mdi_numeric_3_box_multiple_outline: ,
mdi_numeric_3_box_outline: ,
mdi_numeric_4_box: ,
mdi_numeric_4_box_multiple_outline: ,
mdi_numeric_4_box_outline: ,
mdi_numeric_5_box: ,
mdi_numeric_5_box_multiple_outline: ,
mdi_numeric_5_box_outline: ,
mdi_numeric_6_box: ,
mdi_numeric_6_box_multiple_outline: ,
mdi_numeric_6_box_outline: ,
mdi_numeric_7_box: ,
mdi_numeric_7_box_multiple_outline: ,
mdi_numeric_7_box_outline: ,
mdi_numeric_8_box: ,
mdi_numeric_8_box_multiple_outline: ,
mdi_numeric_8_box_outline: ,
mdi_numeric_9_box: ,
mdi_numeric_9_box_multiple_outline: ,
mdi_numeric_9_box_outline: ,
mdi_numeric_9_plus_box: ,
mdi_numeric_9_plus_box_multiple_outline: ,
mdi_numeric_9_plus_box_outline: ,
mdi_nutrition: ,
mdi_octagon: ,
mdi_octagon_outline: ,
mdi_odnoklassniki: ,
mdi_office: ,
mdi_oil: ,
mdi_oil_temperature: ,
mdi_omega: ,
mdi_onedrive: ,
mdi_open_in_app: ,
mdi_open_in_new: ,
mdi_openid: ,
mdi_opera: ,
mdi_ornament: ,
mdi_ornament_variant: ,
mdi_inbox_arrow_up: ,
mdi_owl: ,
mdi_package: ,
mdi_package_down: ,
mdi_package_up: ,
mdi_package_variant: ,
mdi_package_variant_closed: ,
mdi_palette: ,
mdi_palette_advanced: ,
mdi_panda: ,
mdi_pandora: ,
mdi_panorama: ,
mdi_panorama_fisheye: ,
mdi_panorama_horizontal: ,
mdi_panorama_vertical: ,
mdi_panorama_wide_angle: ,
mdi_paper_cut_vertical: ,
mdi_paperclip: ,
mdi_parking: ,
mdi_pause: ,
mdi_pause_circle: ,
mdi_pause_circle_outline: ,
mdi_pause_octagon: ,
mdi_pause_octagon_outline: ,
mdi_paw: ,
mdi_pen: ,
mdi_pencil: ,
mdi_pencil_box: ,
mdi_pencil_box_outline: ,
mdi_pencil_lock: ,
mdi_pencil_off: ,
mdi_percent: ,
mdi_pharmacy: ,
mdi_phone: ,
mdi_phone_bluetooth: ,
mdi_phone_forward: ,
mdi_phone_hangup: ,
mdi_phone_in_talk: ,
mdi_phone_incoming: ,
mdi_phone_locked: ,
mdi_phone_log: ,
mdi_phone_missed: ,
mdi_phone_outgoing: ,
mdi_phone_paused: ,
mdi_phone_settings: ,
mdi_phone_voip: ,
mdi_pi: ,
mdi_pi_box: ,
mdi_pig: 豈,
mdi_pill: 更,
mdi_pin: 車,
mdi_pin_off: 賈,
mdi_pine_tree: 滑,
mdi_pine_tree_box: 串,
mdi_pinterest: 句,
mdi_pinterest_box: 龜,
mdi_pizza: 龜,
mdi_play: 契,
mdi_play_box_outline: 金,
mdi_play_circle: 喇,
mdi_play_circle_outline: 奈,
mdi_play_pause: 懶,
mdi_play_protected_content: 癩,
mdi_playlist_minus: 羅,
mdi_playlist_play: 蘿,
mdi_playlist_plus: 螺,
mdi_playlist_remove: 裸,
mdi_playstation: 邏,
mdi_plus: 樂,
mdi_plus_box: 洛,
mdi_plus_circle: 烙,
mdi_plus_circle_multiple_outline: 珞,
mdi_plus_circle_outline: 落,
mdi_plus_network: 酪,
mdi_plus_one: 駱,
mdi_pocket: 亂,
mdi_pokeball: 卵,
mdi_polaroid: 欄,
mdi_poll: 爛,
mdi_poll_box: 蘭,
mdi_polymer: 鸞,
mdi_popcorn: 嵐,
mdi_pound: 濫,
mdi_pound_box: 藍,
mdi_power: 襤,
mdi_power_settings: 拉,
mdi_power_socket: 臘,
mdi_presentation: 蠟,
mdi_presentation_play: 廊,
mdi_printer: 朗,
mdi_printer_3d: 浪,
mdi_printer_alert: 狼,
mdi_professional_hexagon: 郎,
mdi_projector: 來,
mdi_projector_screen: 冷,
mdi_pulse: 勞,
mdi_puzzle: 擄,
mdi_qrcode: 櫓,
mdi_qrcode_scan: 爐,
mdi_quadcopter: 盧,
mdi_quality_high: 老,
mdi_quicktime: 蘆,
mdi_radar: 虜,
mdi_radiator: 路,
mdi_radio: 露,
mdi_radio_handheld: 魯,
mdi_radio_tower: 鷺,
mdi_radioactive: 碌,
mdi_radiobox_blank: 祿,
mdi_radiobox_marked: 綠,
mdi_raspberrypi: 菉,
mdi_ray_end: 錄,
mdi_ray_end_arrow: 鹿,
mdi_ray_start: 論,
mdi_ray_start_arrow: 壟,
mdi_ray_start_end: 弄,
mdi_ray_vertex: 籠,
mdi_lastpass: 聾,
mdi_read: 牢,
mdi_youtube_tv: 磊,
mdi_receipt: 賂,
mdi_record: 雷,
mdi_record_rec: 壘,
mdi_recycle: 屢,
mdi_reddit: 樓,
mdi_redo: 淚,
mdi_redo_variant: 漏,
mdi_refresh: 累,
mdi_regex: 縷,
mdi_relative_scale: 陋,
mdi_reload: 勒,
mdi_remote: 肋,
mdi_rename_box: 凜,
mdi_repeat: 凌,
mdi_repeat_off: 稜,
mdi_repeat_once: 綾,
mdi_replay: 菱,
mdi_reply: 陵,
mdi_reply_all: 讀,
mdi_reproduction: 拏,
mdi_resize_bottom_right: 樂,
mdi_responsive: 諾,
mdi_rewind: 丹,
mdi_ribbon: 寧,
mdi_road: 怒,
mdi_road_variant: 率,
mdi_rocket: 異,
mdi_rotate_3d: 北,
mdi_rotate_left: 磻,
mdi_rotate_left_variant: 便,
mdi_rotate_right: 復,
mdi_rotate_right_variant: 不,
mdi_router_wireless: 泌,
mdi_routes: 數,
mdi_rss: 索,
mdi_rss_box: 參,
mdi_ruler: 塞,
mdi_run_fast: 省,
mdi_sale: 葉,
mdi_satellite: 說,
mdi_satellite_variant: 殺,
mdi_scale: 辰,
mdi_scale_bathroom: 沈,
mdi_school: 拾,
mdi_screen_rotation: 若,
mdi_screen_rotation_lock: 掠,
mdi_screwdriver: 略,
mdi_script: 亮,
mdi_sd: 兩,
mdi_seal: 凉,
mdi_seat_flat: 梁,
mdi_seat_flat_angled: 糧,
mdi_seat_individual_suite: 良,
mdi_seat_legroom_extra: 諒,
mdi_seat_legroom_normal: 量,
mdi_seat_legroom_reduced: 勵,
mdi_seat_recline_extra: 呂,
mdi_seat_recline_normal: 女,
mdi_security: 廬,
mdi_security_network: 旅,
mdi_select: 濾,
mdi_select_all: 礪,
mdi_select_inverse: 閭,
mdi_select_off: 驪,
mdi_selection: 麗,
mdi_send: 黎,
mdi_server: 力,
mdi_server_minus: 曆,
mdi_server_network: 歷,
mdi_server_network_off: 轢,
mdi_server_off: 年,
mdi_server_plus: 憐,
mdi_server_remove: 戀,
mdi_server_security: 撚,
mdi_settings: 漣,
mdi_settings_box: 煉,
mdi_shape_plus: 璉,
mdi_share: 秊,
mdi_share_variant: 練,
mdi_shield: 聯,
mdi_shield_outline: 輦,
mdi_shopping: 蓮,
mdi_shopping_music: 連,
mdi_shredder: 鍊,
mdi_shuffle: 列,
mdi_shuffle_disabled: 劣,
mdi_shuffle_variant: 咽,
mdi_sigma: 烈,
mdi_sign_caution: 裂,
mdi_signal: 說,
mdi_silverware: 廉,
mdi_silverware_fork: 念,
mdi_silverware_spoon: 捻,
mdi_silverware_variant: 殮,
mdi_sim: 簾,
mdi_sim_alert: 獵,
mdi_sim_off: 令,
mdi_sitemap: 囹,
mdi_skip_backward: 寧,
mdi_skip_forward: 嶺,
mdi_skip_next: 怜,
mdi_skip_previous: 玲,
mdi_skype: 瑩,
mdi_skype_business: 羚,
mdi_slack: 聆,
mdi_sleep: 鈴,
mdi_sleep_off: 零,
mdi_smoking: 靈,
mdi_smoking_off: 領,
mdi_snapchat: 例,
mdi_snowman: 禮,
mdi_soccer: 醴,
mdi_sofa: 隸,
mdi_sort: 惡,
mdi_sort_alphabetical: 了,
mdi_sort_ascending: 僚,
mdi_sort_descending: 寮,
mdi_sort_numeric: 尿,
mdi_sort_variant: 料,
mdi_soundcloud: 樂,
mdi_source_fork: 燎,
mdi_source_pull: 療,
mdi_speaker: 蓼,
mdi_speaker_off: 遼,
mdi_speedometer: 龍,
mdi_spellcheck: 暈,
mdi_spotify: 阮,
mdi_spotlight: 劉,
mdi_spotlight_beam: 杻,
mdi_square_inc: 柳,
mdi_square_inc_cash: 流,
mdi_stack_overflow: 溜,
mdi_stairs: 琉,
mdi_star: 留,
mdi_star_circle: 硫,
mdi_star_half: 紐,
mdi_star_off: 類,
mdi_star_outline: 六,
mdi_steam: 戮,
mdi_steering: 陸,
mdi_step_backward: 倫,
mdi_step_backward_2: 崙,
mdi_step_forward: 淪,
mdi_step_forward_2: 輪,
mdi_stethoscope: 律,
mdi_stocking: 慄,
mdi_stop: 栗,
mdi_store: 率,
mdi_store_24_hour: 隆,
mdi_stove: 利,
mdi_subway_variant: 吏,
mdi_sunglasses: 履,
mdi_swap_horizontal: 易,
mdi_swap_vertical: 李,
mdi_swim: 梨,
mdi_switch: 泥,
mdi_sword: 理,
mdi_sync: 痢,
mdi_sync_alert: 罹,
mdi_sync_off: 裏,
mdi_tab: 裡,
mdi_tab_unselected: 里,
mdi_table: 離,
mdi_table_column_plus_after: 匿,
mdi_table_column_plus_before: 溺,
mdi_table_column_remove: 吝,
mdi_table_column_width: 燐,
mdi_table_edit: 璘,
mdi_table_large: 藺,
mdi_table_row_height: 隣,
mdi_table_row_plus_after: 鱗,
mdi_table_row_plus_before: 麟,
mdi_table_row_remove: 林,
mdi_tablet: 淋,
mdi_tablet_android: 臨,
mdi_tablet_ipad: 立,
mdi_tag: 笠,
mdi_tag_faces: 粒,
mdi_tag_multiple: 狀,
mdi_tag_outline: 炙,
mdi_tag_text_outline: 識,
mdi_target: 什,
mdi_taxi: 茶,
mdi_teamviewer: 刺,
mdi_telegram: 切,
mdi_television: 度,
mdi_television_guide: 拓,
mdi_temperature_celsius: 糖,
mdi_temperature_fahrenheit: 宅,
mdi_temperature_kelvin: 洞,
mdi_tennis: 暴,
mdi_tent: 輻,
mdi_terrain: 行,
mdi_text_to_speech: 降,
mdi_text_to_speech_off: 見,
mdi_texture: 廓,
mdi_theater: 兀,
mdi_theme_light_dark: 嗀,
mdi_thermometer: 﨎,
mdi_thermometer_lines: 﨏,
mdi_thumb_down: 塚,
mdi_thumb_down_outline: 﨑,
mdi_thumb_up: 晴,
mdi_thumb_up_outline: 﨓,
mdi_thumbs_up_down: 﨔,
mdi_ticket: 凞,
mdi_ticket_account: 猪,
mdi_ticket_confirmation: 益,
mdi_tie: 礼,
mdi_timelapse: 神,
mdi_timer: 祥,
mdi_timer_10: 福,
mdi_timer_3: 靖,
mdi_timer_off: 精,
mdi_timer_sand: 羽,
mdi_timetable: 﨟,
mdi_toggle_switch: 蘒,
mdi_toggle_switch_off: 﨡,
mdi_tooltip: 諸,
mdi_tooltip_edit: 﨣,
mdi_tooltip_image: 﨤,
mdi_tooltip_outline: 逸,
mdi_tooltip_outline_plus: 都,
mdi_tooltip_text: 﨧,
mdi_tooth: 﨨,
mdi_tor: 﨩,
mdi_traffic_light: 飯,
mdi_train: 飼,
mdi_tram: 館,
mdi_transcribe: 鶴,
mdi_transcribe_close: 郞,
mdi_transfer: 隷,
mdi_tree: 侮,
mdi_trello: 僧,
mdi_trending_down: 免,
mdi_trending_neutral: 勉,
mdi_trending_up: 勤,
mdi_triangle: 卑,
mdi_triangle_outline: 喝,
mdi_trophy: 嘆,
mdi_trophy_award: 器,
mdi_trophy_outline: 塀,
mdi_trophy_variant: 墨,
mdi_trophy_variant_outline: 層,
mdi_truck: 屮,
mdi_truck_delivery: 悔,
mdi_tshirt_crew: 慨,
mdi_tshirt_v: 憎,
mdi_tumblr: 懲,
mdi_tumblr_reblog: 敏,
mdi_twitch: 既,
mdi_twitter: 暑,
mdi_twitter_box: 梅,
mdi_twitter_circle: 海,
mdi_twitter_retweet: 渚,
mdi_ubuntu: 漢,
mdi_umbraco: 煮,
mdi_umbrella: 爫,
mdi_umbrella_outline: 琢,
mdi_undo: 碑,
mdi_undo_variant: 社,
mdi_unfold_less_horizontal: 祉,
mdi_unfold_more_horizontal: 祈,
mdi_ungroup: 祐,
mdi_untappd: 祖,
mdi_upload: 祝,
mdi_usb: 禍,
mdi_vector_arrange_above: 禎,
mdi_vector_arrange_below: 穀,
mdi_vector_circle: 突,
mdi_vector_circle_variant: 節,
mdi_vector_combine: 練,
mdi_vector_curve: 縉,
mdi_vector_difference: 繁,
mdi_vector_difference_ab: 署,
mdi_vector_difference_ba: 者,
mdi_vector_intersection: 臭,
mdi_vector_line: 艹,
mdi_vector_point: 艹,
mdi_vector_polygon: 著,
mdi_vector_polyline: 褐,
mdi_vector_selection: 視,
mdi_vector_triangle: 謁,
mdi_vector_union: 謹,
mdi_verified: 賓,
mdi_vibrate: 贈,
mdi_video: 辶,
mdi_video_off: 逸,
mdi_video_switch: 難,
mdi_view_agenda: 響,
mdi_view_array: 頻,
mdi_view_carousel: 恵,
mdi_view_column: 𤋮,
mdi_view_dashboard: 舘,
mdi_view_day: 﩮,
mdi_view_grid: 﩯,
mdi_view_headline: 並,
mdi_view_list: 况,
mdi_view_module: 全,
mdi_view_quilt: 侀,
mdi_view_stream: 充,
mdi_view_week: 冀,
mdi_vimeo: 勇,
mdi_venmo: 勺,
mdi_vk: 喝,
mdi_vk_box: 啕,
mdi_vk_circle: 喙,
mdi_vlc: 嗢,
mdi_voicemail: 塚,
mdi_volume_high: 墳,
mdi_volume_low: 奄,
mdi_volume_medium: 奔,
mdi_volume_off: 婢,
mdi_vpn: 嬨,
mdi_walk: 廒,
mdi_wallet: 廙,
mdi_wallet_giftcard: 彩,
mdi_wallet_membership: 徭,
mdi_wallet_travel: 惘,
mdi_wan: 慎,
mdi_watch: 愈,
mdi_watch_export: 憎,
mdi_watch_import: 慠,
mdi_water: 懲,
mdi_water_off: 戴,
mdi_water_percent: 揄,
mdi_water_pump: 搜,
mdi_weather_cloudy: 摒,
mdi_weather_fog: 敖,
mdi_weather_hail: 晴,
mdi_weather_lightning: 朗,
mdi_weather_night: 望,
mdi_weather_partlycloudy: 杖,
mdi_weather_pouring: 歹,
mdi_weather_rainy: 殺,
mdi_weather_snowy: 流,
mdi_weather_sunny: 滛,
mdi_weather_sunset: 滋,
mdi_weather_sunset_down: 漢,
mdi_weather_sunset_up: 瀞,
mdi_weather_windy: 煮,
mdi_weather_windy_variant: 瞧,
mdi_web: 爵,
mdi_webcam: 犯,
mdi_weight: 猪,
mdi_weight_kilogram: 瑱,
mdi_whatsapp: 甆,
mdi_wheelchair_accessibility: 画,
mdi_white_balance_auto: 瘝,
mdi_white_balance_incandescent: 瘟,
mdi_white_balance_iridescent: 益,
mdi_white_balance_sunny: 盛,
mdi_wifi: 直,
mdi_wifi_off: 睊,
mdi_wii: 着,
mdi_wikipedia: 磌,
mdi_window_close: 窱,
mdi_window_closed: 節,
mdi_window_maximize: 类,
mdi_window_minimize: 絛,
mdi_window_open: 練,
mdi_window_restore: 缾,
mdi_windows: 者,
mdi_wordpress: 荒,
mdi_worker: 華,
mdi_wrap: 蝹,
mdi_wrench: 襁,
mdi_wunderlist: 覆,
mdi_xbox: 視,
mdi_xbox_controller: 調,
mdi_xbox_controller_off: 諸,
mdi_xda: 請,
mdi_xing: 謁,
mdi_xing_box: 諾,
mdi_xing_circle: 諭,
mdi_xml: 謹,
mdi_yeast: 變,
mdi_yelp: 贈,
mdi_youtube_play: 輸,
mdi_zip_box: 遲,
mdi_surround_sound: 醙,
mdi_vector_rectangle: 鉶,
mdi_playlist_check: 陼,
mdi_format_line_style: 難,
mdi_format_line_weight: 靖,
mdi_translate: 韛,
mdi_voice: 響,
mdi_opacity: 頋,
mdi_near_me: 頻,
mdi_clock_alert: 鬒,
mdi_human_pregnant: 龜,
mdi_sticker: 𢡊,
mdi_scale_balance: 𢡄,
mdi_account_card_details: 𣏕,
mdi_account_multiple_minus: 㮝,
mdi_airplane_landing: 䀘,
mdi_airplane_takeoff: 䀹,
mdi_alert_circle_outline: 𥉉,
mdi_altimeter: 𥳐,
mdi_animation: 𧻓,
mdi_book_minus: 齃,
mdi_book_open_page_variant: 龎,
mdi_book_plus: 﫚,
mdi_boombox: 﫛,
mdi_bullseye: 﫜,
mdi_comment_remove: 﫝,
mdi_camera_off: 﫞,
mdi_check_circle: 﫟,
mdi_check_circle_outline: 﫠,
mdi_candle: 﫡,
mdi_chart_bubble: 﫢,
mdi_credit_card_off: 﫣,
mdi_cup_off: 﫤,
mdi_copyright: 﫥,
mdi_cursor_text: 﫦,
mdi_delete_forever: 﫧,
mdi_delete_sweep: 﫨,
mdi_dice_d20: 﫩,
mdi_dice_d4: 﫪,
mdi_dice_d6: 﫫,
mdi_dice_d8: 﫬,
mdi_disk: 﫭,
mdi_email_open_outline: 﫮,
mdi_email_variant: 﫯,
mdi_ev_station: 﫰,
mdi_food_fork_drink: 﫱,
mdi_food_off: 﫲,
mdi_format_title: 﫳,
mdi_google_maps: 﫴,
mdi_heart_pulse: 﫵,
mdi_highway: 﫶,
mdi_home_map_marker: 﫷,
mdi_incognito: 﫸,
mdi_kettle: 﫹,
mdi_lock_plus: 﫺,
mdi_login_variant: 﫻,
mdi_logout_variant: 﫼,
mdi_music_note_bluetooth: 﫽,
mdi_music_note_bluetooth_off: 﫾,
mdi_page_first: 﫿,
mdi_page_last: ﬀ,
mdi_phone_classic: ﬁ,
mdi_priority_high: ﬂ,
mdi_priority_low: ﬃ,
mdi_qqchat: ﬄ,
mdi_pool: ﬅ,
mdi_rounded_corner: ﬆ,
mdi_rowing: ﬇,
mdi_saxophone: ﬈,
mdi_signal_variant: ﬉,
mdi_stackexchange: ﬊,
mdi_subdirectory_arrow_left: ﬋,
mdi_subdirectory_arrow_right: ﬌,
mdi_textbox: ﬍,
mdi_violin: ﬎,
mdi_visualstudio: ﬏,
mdi_wechat: ﬐,
mdi_watermark: ﬑,
mdi_file_hidden: ﬒,
mdi_application: ﬓ,
mdi_arrow_collapse: ﬔ,
mdi_arrow_expand: ﬕ,
mdi_bowl: ﬖ,
mdi_bridge: ﬗ,
mdi_buffer: ﬘,
mdi_chip: ﬙,
mdi_content_save_settings: ﬚,
mdi_dialpad: ﬛,
mdi_dictionary: ﬜,
mdi_format_horizontal_align_center: יִ,
i='ﬞ&rsquo; i_mdi_format_horizontal_align_left=$i
mdi_format_horizontal_align_right: ײַ,
mdi_format_vertical_align_bottom: ﬠ,
mdi_format_vertical_align_center: ﬡ,
mdi_format_vertical_align_top: ﬢ,
mdi_hackernews: ﬣ,
mdi_help_circle_outline: ﬤ,
mdi_json: ﬥ,
mdi_lambda: ﬦ,
mdi_matrix: ﬧ,
mdi_meteor: ﬨ,
mdi_mixcloud: ﬩,
mdi_sigma_lower: שׁ,
mdi_source_branch: שׂ,
mdi_source_merge: שּׁ,
mdi_tune: שּׂ,
mdi_webhook: אַ,
mdi_account_settings: אָ,
mdi_account_settings_variant: אּ,
mdi_apple_keyboard_caps: בּ,
mdi_apple_keyboard_command: גּ,
mdi_apple_keyboard_control: דּ,
mdi_apple_keyboard_option: הּ,
mdi_apple_keyboard_shift: וּ,
mdi_box_shadow: זּ,
mdi_cards: ﬷,
mdi_cards_outline: טּ,
mdi_cards_playing_outline: יּ,
mdi_checkbox_multiple_blank_circle: ךּ,
mdi_checkbox_multiple_blank_circle_outline: כּ,
mdi_checkbox_multiple_marked_circle: לּ,
mdi_checkbox_multiple_marked_circle_outline: ﬽,
mdi_cloud_sync: מּ,
mdi_collage: ﬿,
mdi_directions_fork: נּ,
mdi_eraser_variant: סּ,
mdi_face: ﭂,
mdi_face_profile: ףּ,
mdi_file_tree: פּ,
mdi_format_annotation_plus: ﭅,
mdi_gas_cylinder: צּ,
mdi_grease_pencil: קּ,
mdi_human_female: רּ,
mdi_human_greeting: שּ,
mdi_human_handsdown: תּ,
mdi_human_handsup: וֹ,
mdi_human_male: בֿ,
mdi_information_variant: כֿ,
mdi_lead_pencil: פֿ,
mdi_map_marker_minus: ﭏ,
mdi_map_marker_plus: ﭐ,
mdi_marker: ﭑ,
mdi_message_plus: ﭒ,
mdi_microscope: ﭓ,
mdi_move_resize: ﭔ,
mdi_move_resize_variant: ﭕ,
mdi_paw_off: ﭖ,
mdi_phone_minus: ﭗ,
mdi_phone_plus: ﭘ,
mdi_pot: ﭙ,
mdi_pot_mix: ﭚ,
mdi_serial_port: ﭛ,
mdi_shape_circle_plus: ﭜ,
mdi_shape_polygon_plus: ﭝ,
mdi_shape_rectangle_plus: ﭞ,
mdi_shape_square_plus: ﭟ,
mdi_skip_next_circle: ﭠ,
mdi_skip_next_circle_outline: ﭡ,
mdi_skip_previous_circle: ﭢ,
mdi_skip_previous_circle_outline: ﭣ,
mdi_spray: ﭤ,
mdi_stop_circle: ﭥ,
mdi_stop_circle_outline: ﭦ,
mdi_test_tube: ﭧ,
mdi_text_shadow: ﭨ,
mdi_tune_vertical: ﭩ,
mdi_cart_off: ﭪ,
mdi_chart_gantt: ﭫ,
mdi_chart_scatterplot_hexbin: ﭬ,
mdi_chart_timeline: ﭭ,
mdi_discord: ﭮ,
mdi_file_restore: ﭯ,
mdi_language_c: ﭰ,
mdi_language_cpp: ﭱ,
mdi_xaml: ﭲ,
mdi_bandcamp: ﭳ,
mdi_credit_card_plus: ﭴ,
mdi_itunes: ﭵ,
mdi_bow_tie: ﭶ,
mdi_calendar_range: ﭷ,
mdi_currency_usd_off: ﭸ,
mdi_flash_red_eye: ﭹ,
mdi_oar: ﭺ,
mdi_piano: ﭻ,
mdi_weather_lightning_rainy: ﭼ,
mdi_weather_snowy_rainy: ﭽ,
mdi_yin_yang: ﭾ,
mdi_tower_beach: ﭿ,
mdi_tower_fire: ﮀ,
mdi_delete_circle: ﮁ,
mdi_dna: ﮂ,
mdi_hamburger: ﮃ,
mdi_gondola: ﮄ,
mdi_inbox: ﮅ,
mdi_reorder_horizontal: ﮆ,
mdi_reorder_vertical: ﮇ,
mdi_security_home: ﮈ,
mdi_tag_heart: ﮉ,
mdi_skull: ﮊ,
mdi_solid: ﮋ,
mdi_alarm_snooze: ﮌ,
mdi_baby_buggy: ﮍ,
mdi_beaker: ﮎ,
mdi_bomb: ﮏ,
mdi_calendar_question: ﮐ,
mdi_camera_burst: ﮑ,
mdi_code_tags_check: ﮒ,
mdi_coins: ﮓ,
mdi_crop_rotate: ﮔ,
mdi_developer_board: ﮕ,
mdi_do_not_disturb: ﮖ,
mdi_do_not_disturb_off: ﮗ,
mdi_douban: ﮘ,
mdi_emoticon_dead: ﮙ,
mdi_emoticon_excited: ﮚ,
mdi_folder_star: ﮛ,
mdi_format_color_text: ﮜ,
mdi_format_section: ﮝ,
mdi_gradient: ﮞ,
mdi_home_outline: ﮟ,
mdi_message_bulleted: ﮠ,
mdi_message_bulleted_off: ﮡ,
mdi_nuke: ﮢ,
mdi_power_plug: ﮣ,
mdi_power_plug_off: ﮤ,
mdi_publish: ﮥ,
mdi_restore: ﮦ,
mdi_robot: ﮧ,
mdi_format_rotate_90: ﮨ,
mdi_scanner: ﮩ,
mdi_subway: ﮪ,
mdi_timer_sand_empty: ﮫ,
mdi_transit_transfer: ﮬ,
mdi_unity: ﮭ,
mdi_update: ﮮ,
mdi_watch_vibrate: ﮯ,
mdi_angular: ﮰ,
mdi_dolby: ﮱ,
mdi_emby: ﮲,
mdi_lamp: ﮳,
mdi_menu_down_outline: ﮴,
mdi_menu_up_outline: ﮵,
mdi_note_multiple: ﮶,
mdi_note_multiple_outline: ﮷,
mdi_plex: ﮸,
mdi_plane_shield: ﮹,
mdi_account_edit: ﮺,
mdi_alert_decagram: ﮻,
mdi_all_inclusive: ﮼,
mdi_angularjs: ﮽,
mdi_arrow_down_box: ﮾,
mdi_arrow_left_box: ﮿,
mdi_arrow_right_box: ﯀,
mdi_arrow_up_box: ﯁,
mdi_asterisk: ﯂,
mdi_bomb_off: ﯃,
mdi_bootstrap: ﯄,
mdi_cards_variant: ﯅,
mdi_clipboard_flow: ﯆,
mdi_close_outline: ﯇,
mdi_coffee_outline: ﯈,
mdi_contacts: ﯉,
mdi_delete_empty: ﯊,
mdi_earth_box: ﯋,
mdi_earth_box_off: ﯌,
mdi_email_alert: ﯍,
mdi_eye_outline: ﯎,
mdi_eye_off_outline: ﯏,
mdi_fast_forward_outline: ﯐,
mdi_feather: ﯑,
mdi_find_replace: ﯒,
mdi_flash_outline: ﯓ,
mdi_format_font: ﯔ,
mdi_format_page_break: ﯕ,
mdi_format_pilcrow: ﯖ,
mdi_garage: ﯗ,
mdi_garage_open: ﯘ,
mdi_github_face: ﯙ,
mdi_google_keep: ﯚ,
mdi_google_photos: ﯛ,
mdi_heart_half_full: ﯜ,
mdi_heart_half: ﯝ,
mdi_heart_half_outline: ﯞ,
mdi_hexagon_multiple: ﯟ,
mdi_hook: ﯠ,
mdi_hook_off: ﯡ,
mdi_infinity: ﯢ,
mdi_language_swift: ﯣ,
mdi_language_typescript: ﯤ,
mdi_laptop_off: ﯥ,
mdi_lightbulb_on: ﯦ,
mdi_lightbulb_on_outline: ﯧ,
mdi_lock_pattern: ﯨ,
mdi_loop: ﯩ,
mdi_magnify_minus_outline: ﯪ,
mdi_magnify_plus_outline: ﯫ,
mdi_mailbox: ﯬ,
mdi_medical_bag: ﯭ,
mdi_message_settings: ﯮ,
mdi_message_settings_variant: ﯯ,
mdi_minus_box_outline: ﯰ,
mdi_network: ﯱ,
mdi_download_network: ﯲ,
mdi_help_network: ﯳ,
mdi_upload_network: ﯴ,
mdi_npm: ﯵ,
mdi_nut: ﯶ,
mdi_octagram: ﯷ,
mdi_page_layout_body: ﯸ,
mdi_page_layout_footer: ﯹ,
mdi_page_layout_header: ﯺ,
mdi_page_layout_sidebar_left: ﯻ,
mdi_page_layout_sidebar_right: ﯼ,
mdi_pencil_circle: ﯽ,
mdi_pentagon: ﯾ,
mdi_pentagon_outline: ﯿ,
mdi_pillar: ﰀ,
mdi_pistol: ﰁ,
mdi_plus_box_outline: ﰂ,
mdi_plus_outline: ﰃ,
mdi_prescription: ﰄ,
mdi_printer_settings: ﰅ,
mdi_react: ﰆ,
mdi_restart: ﰇ,
mdi_rewind_outline: ﰈ,
mdi_rhombus: ﰉ,
mdi_rhombus_outline: ﰊ,
mdi_roomba: ﰋ,
mdi_run: ﰌ,
mdi_search_web: ﰍ,
mdi_shovel: ﰎ,
mdi_shovel_off: ﰏ,
mdi_signal_2g: ﰐ,
mdi_signal_3g: ﰑ,
mdi_signal_4g: ﰒ,
mdi_signal_hspa: ﰓ,
mdi_signal_hspa_plus: ﰔ,
mdi_snowflake: ﰕ,
mdi_source_commit: ﰖ,
mdi_source_commit_end: ﰗ,
mdi_source_commit_end_local: ﰘ,
mdi_source_commit_local: ﰙ,
mdi_source_commit_next_local: ﰚ,
mdi_source_commit_start: ﰛ,
mdi_source_commit_start_next_local: ﰜ,
mdi_speaker_wireless: ﰝ,
mdi_stadium: ﰞ,
mdi_svg: ﰟ,
mdi_tag_plus: ﰠ,
mdi_tag_remove: ﰡ,
mdi_ticket_percent: ﰢ,
mdi_tilde: ﰣ,
mdi_treasure_chest: ﰤ,
mdi_truck_trailer: ﰥ,
mdi_view_parallel: ﰦ,
mdi_view_sequential: ﰧ,
mdi_washing_machine: ﰨ,
mdi_webpack: ﰩ,
mdi_widgets: ﰪ,
mdi_wiiu: ﰫ,
mdi_arrow_down_bold: ﰬ,
mdi_arrow_down_bold_box: ﰭ,
mdi_arrow_down_bold_box_outline: ﰮ,
mdi_arrow_left_bold: ﰯ,
mdi_arrow_left_bold_box: ﰰ,
mdi_arrow_left_bold_box_outline: ﰱ,
mdi_arrow_right_bold: ﰲ,
mdi_arrow_right_bold_box: ﰳ,
mdi_arrow_right_bold_box_outline: ﰴ,
mdi_arrow_up_bold: ﰵ,
mdi_arrow_up_bold_box: ﰶ,
mdi_arrow_up_bold_box_outline: ﰷ,
mdi_cancel: ﰸ,
mdi_file_account: ﰹ,
mdi_gesture_double_tap: ﰺ,
mdi_gesture_swipe_down: ﰻ,
mdi_gesture_swipe_left: ﰼ,
mdi_gesture_swipe_right: ﰽ,
mdi_gesture_swipe_up: ﰾ,
mdi_gesture_tap: ﰿ,
mdi_gesture_two_double_tap: ﱀ,
mdi_gesture_two_tap: ﱁ,
mdi_humble_bundle: ﱂ,
mdi_kickstarter: ﱃ,
mdi_netflix: ﱄ,
mdi_onenote: ﱅ,
mdi_periscope: ﱆ,
mdi_uber: ﱇ,
mdi_vector_radius: ﱈ,
mdi_xbox_controller_battery_alert: ﱉ,
mdi_xbox_controller_battery_empty: ﱊ,
mdi_xbox_controller_battery_full: ﱋ,
mdi_xbox_controller_battery_low: ﱌ,
mdi_xbox_controller_battery_medium: ﱍ,
mdi_xbox_controller_battery_unknown: ﱎ,
mdi_clipboard_plus: ﱏ,
mdi_file_plus: ﱐ,
mdi_format_align_bottom: ﱑ,
mdi_format_align_middle: ﱒ,
mdi_format_align_top: ﱓ,
mdi_format_list_checks: ﱔ,
mdi_format_quote_open: ﱕ,
mdi_grid_large: ﱖ,
mdi_heart_off: ﱗ,
mdi_music: ﱘ,
mdi_music_off: ﱙ,
mdi_tab_plus: ﱚ,
mdi_volume_plus: ﱛ,
mdi_volume_minus: ﱜ,
mdi_volume_mute: ﱝ,
mdi_unfold_less_vertical: ﱞ,
mdi_unfold_more_vertical: ﱟ,
mdi_taco: ﱠ,
mdi_square_outline: ﱡ,
mdi_square: ﱢ,
mdi_circle: ﱣ,
mdi_circle_outline: ﱤ,
mdi_alert_octagram: ﱥ,
mdi_atom: ﱦ,
mdi_ceiling_light: ﱧ,
mdi_chart_bar_stacked: ﱨ,
mdi_chart_line_stacked: ﱩ,
mdi_decagram: ﱪ,
mdi_decagram_outline: ﱫ,
mdi_dice_multiple: ﱬ,
mdi_dice_d10: ﱭ,
mdi_folder_open: ﱮ,
mdi_guitar_acoustic: ﱯ,
mdi_loading: ﱰ,
mdi_lock_reset: ﱱ,
mdi_ninja: ﱲ,
mdi_octagram_outline: ﱳ,
mdi_pencil_circle_outline: ﱴ,
mdi_selection_off: ﱵ,
mdi_set_all: ﱶ,
mdi_set_center: ﱷ,
mdi_set_center_right: ﱸ,
mdi_set_left: ﱹ,
mdi_set_left_center: ﱺ,
mdi_set_left_right: ﱻ,
mdi_set_none: ﱼ,
mdi_set_right: ﱽ,
mdi_shield_half_full: ﱾ,
mdi_sign_direction: ﱿ,
mdi_sign_text: ﲀ,
mdi_signal_off: ﲁ,
mdi_square_root: ﲂ,
mdi_sticker_emoji: ﲃ,
mdi_summit: ﲄ,
mdi_sword_cross: ﲅ,
mdi_truck_fast: ﲆ,
mdi_yammer: ﲇ,
mdi_cast_off: ﲈ,
mdi_help_box: ﲉ,
mdi_timer_sand_full: ﲊ,
mdi_waves: ﲋ,
mdi_alarm_bell: ﲌ,
mdi_alarm_light: ﲍ,
mdi_android_head: ﲎ,
mdi_approval: ﲏ,
mdi_arrow_collapse_down: ﲐ,
mdi_arrow_collapse_left: ﲑ,
mdi_arrow_collapse_right: ﲒ,
mdi_arrow_collapse_up: ﲓ,
mdi_arrow_expand_down: ﲔ,
mdi_arrow_expand_left: ﲕ,
mdi_arrow_expand_right: ﲖ,
mdi_arrow_expand_up: ﲗ,
mdi_book_secure: ﲘ,
mdi_book_unsecure: ﲙ,
mdi_bus_articulated_end: ﲚ,
mdi_bus_articulated_front: ﲛ,
mdi_bus_double_decker: ﲜ,
mdi_bus_school: ﲝ,
mdi_bus_side: ﲞ,
mdi_camera_gopro: ﲟ,
mdi_camera_metering_center: ﲠ,
mdi_camera_metering_matrix: ﲡ,
mdi_camera_metering_partial: ﲢ,
mdi_camera_metering_spot: ﲣ,
mdi_cannabis: ﲤ,
mdi_car_convertible: ﲥ,
mdi_car_estate: ﲦ,
mdi_car_hatchback: ﲧ,
mdi_car_pickup: ﲨ,
mdi_car_side: ﲩ,
mdi_car_sports: ﲪ,
mdi_caravan: ﲫ,
mdi_cctv: ﲬ,
mdi_chart_donut: ﲭ,
mdi_chart_donut_variant: ﲮ,
mdi_chart_line_variant: ﲯ,
mdi_chili_hot: ﲰ,
mdi_chili_medium: ﲱ,
mdi_chili_mild: ﲲ,
mdi_cloud_braces: ﲳ,
mdi_cloud_tags: ﲴ,
mdi_console_line: ﲵ,
mdi_corn: ﲶ,
mdi_currency_chf: ﲷ,
mdi_currency_cny: ﲸ,
mdi_currency_eth: ﲹ,
mdi_currency_jpy: ﲺ,
mdi_currency_krw: ﲻ,
mdi_currency_sign: ﲼ,
mdi_currency_twd: ﲽ,
mdi_desktop_classic: ﲾ,
mdi_dip_switch: ﲿ,
mdi_donkey: ﳀ,
mdi_dots_horizontal_circle: ﳁ,
mdi_dots_vertical_circle: ﳂ,
mdi_ear_hearing: ﳃ,
mdi_elephant: ﳄ,
mdi_eventbrite: ﳅ,
mdi_food_croissant: ﳆ,
mdi_forklift: ﳇ,
mdi_fuel: ﳈ,
mdi_gesture: ﳉ,
mdi_google_analytics: ﳊ,
mdi_google_assistant: ﳋ,
mdi_headphones_off: ﳌ,
mdi_high_definition: ﳍ,
mdi_home_assistant: ﳎ,
mdi_home_automation: ﳏ,
mdi_home_circle: ﳐ,
mdi_language_go: ﳑ,
mdi_language_r: ﳒ,
mdi_lava_lamp: ﳓ,
mdi_led_strip: ﳔ,
mdi_locker: ﳕ,
mdi_locker_multiple: ﳖ,
mdi_map_marker_outline: ﳗ,
mdi_metronome: ﳘ,
mdi_metronome_tick: ﳙ,
mdi_micro_sd: ﳚ,
mdi_mixer: ﳛ,
mdi_movie_roll: ﳜ,
mdi_mushroom: ﳝ,
mdi_mushroom_outline: ﳞ,
mdi_nintendo_switch: ﳟ,
mdi_null: ﳠ,
mdi_passport: ﳡ,
mdi_periodic_table_co2: ﳢ,
mdi_pipe: ﳣ,
mdi_pipe_disconnected: ﳤ,
mdi_power_socket_eu: ﳥ,
mdi_power_socket_uk: ﳦ,
mdi_power_socket_us: ﳧ,
mdi_rice: ﳨ,
mdi_ring: ﳩ,
mdi_sass: ﳪ,
mdi_send_secure: ﳫ,
mdi_soy_sauce: ﳬ,
mdi_standard_definition: ﳭ,
mdi_surround_sound_2_0: ﳮ,
mdi_surround_sound_3_1: ﳯ,
mdi_surround_sound_5_1: ﳰ,
mdi_surround_sound_7_1: ﳱ,
mdi_television_classic: ﳲ,
mdi_textbox_password: ﳳ,
mdi_thought_bubble: ﳴ,
mdi_thought_bubble_outline: ﳵ,
mdi_trackpad: ﳶ,
mdi_ultra_high_definition: ﳷ,
mdi_van_passenger: ﳸ,
mdi_van_utility: ﳹ,
mdi_vanish: ﳺ,
mdi_video_3d: ﳻ,
mdi_wall: ﳼ,
mdi_xmpp: ﳽ,
mdi_account_multiple_plus_outline: ﳾ,
mdi_account_plus_outline: ﳿ,
mdi_allo: ﴀ,
mdi_artist: ﴁ,
mdi_atlassian: ﴂ,
mdi_azure: ﴃ,
mdi_basketball: ﴄ,
mdi_battery_charging_wireless: ﴅ,
mdi_battery_charging_wireless_10: ﴆ,
mdi_battery_charging_wireless_20: ﴇ,
mdi_battery_charging_wireless_30: ﴈ,
mdi_battery_charging_wireless_40: ﴉ,
mdi_battery_charging_wireless_50: ﴊ,
mdi_battery_charging_wireless_60: ﴋ,
mdi_battery_charging_wireless_70: ﴌ,
mdi_battery_charging_wireless_80: ﴍ,
mdi_battery_charging_wireless_90: ﴎ,
mdi_battery_charging_wireless_alert: ﴏ,
mdi_battery_charging_wireless_outline: ﴐ,
mdi_bitcoin: ﴑ,
mdi_briefcase_outline: ﴒ,
mdi_cellphone_wireless: ﴓ,
mdi_clover: ﴔ,
mdi_comment_question: ﴕ,
mdi_content_save_outline: ﴖ,
mdi_delete_restore: ﴗ,
mdi_door: ﴘ,
mdi_door_closed: ﴙ,
mdi_door_open: ﴚ,
mdi_fan_off: ﴛ,
mdi_file_percent: ﴜ,
mdi_finance: ﴝ,
mdi_flash_circle: ﴞ,
mdi_floor_plan: ﴟ,
mdi_forum_outline: ﴠ,
mdi_golf: ﴡ,
mdi_google_home: ﴢ,
mdi_guy_fawkes_mask: ﴣ,
mdi_home_account: ﴤ,
mdi_home_heart: ﴥ,
mdi_hot_tub: ﴦ,
mdi_hulu: ﴧ,
mdi_ice_cream: ﴨ,
mdi_image_off: ﴩ,
mdi_karate: ﴪ,
mdi_ladybug: ﴫ,
mdi_notebook: ﴬ,
mdi_phone_return: ﴭ,
mdi_poker_chip: ﴮ,
mdi_shape: ﴯ,
mdi_shape_outline: ﴰ,
mdi_ship_wheel: ﴱ,
mdi_soccer_field: ﴲ,
mdi_table_column: ﴳ,
mdi_table_of_contents: ﴴ,
mdi_table_row: ﴵ,
mdi_table_settings: ﴶ,
mdi_television_box: ﴷ,
mdi_television_classic_off: ﴸ,
mdi_television_off: ﴹ,
mdi_towing: ﴺ,
mdi_upload_multiple: ﴻ,
mdi_video_4k_box: ﴼ,
mdi_video_input_antenna: ﴽ,
mdi_video_input_component: ﴾,
mdi_video_input_hdmi: ﴿,
mdi_video_input_svideo: ﵀,
mdi_view_dashboard_variant: ﵁,
mdi_vuejs: ﵂,
mdi_xamarin: ﵃,
mdi_xamarin_outline: ﵄,
mdi_youtube_creator_studio: ﵅,
mdi_youtube_gaming: ﵆</p>
<h2 id="лигатуры">Лигатуры</h2>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-text" data-lang="text">.= .- := =:=
== != === !== =/=

&lt;&lt;- &lt;-- &lt;- &lt;-&gt; -&gt; --&gt; -&gt;&gt;
&lt;=&lt; &lt;&lt;= &lt;== &lt;=&gt; =&gt; ==&gt; =&gt;&gt; &gt;=&gt;
&gt;&gt;= &gt;&gt;- &gt;- -&lt; -&lt;&lt; =&lt;&lt;
&lt;~~ &lt;~ ~~~ ~~ ~&gt; ~~&gt;

&lt;&lt;&lt; &lt;&lt; &lt;= &lt;&gt; &gt;= &gt;&gt; &gt;&gt;&gt;
&lt;| &lt;|&gt; |&gt;

&lt;$ &lt;$&gt; $&gt;
&lt;+ &lt;+&gt; +&gt;
&lt;* &lt;*&gt; *&gt;

\\ \\\ {- -} // ///
/* /** **/ */
&lt;/ &lt;!-- www --&gt; /&gt;
0xF 9:45 m-X *ptr

;; ;;; :: ::: !! !!!
?? ??? %% %%% &amp;&amp; &amp;&amp;&amp;
|| ||| .. ... ..&lt; []
-- --- ++ +++ ** ***

~= ~- -~ =~ ~@
^= ?= /= /== /= ||=
## ### ####
#{ #[ #( #? #_ #_(
</code></pre></div><h2 id="эмоджи-смайлики">Эмоджи, смайлики</h2>
<p>Различные символы emoji, смайлы.</p>
<h3 id="people-emojis">People Emojis</h3>
<p>😀 😃 😄 😁 😆 🤩 😅 😂 🤣 ☺️ 😊 😇 🙂 🙃 😉 😌 😍 😘 😗 😙 😚 😋 🤪 😜 😝 😛 🤑 🤗 🤓 😎 🤡 🤠 😏 😒 😞 😔 😟 😕 🙁 ☹️ 😣 😖 😫 😩 😤 😠 😡 🤬 😶 😐 😑 😯 😦 😧 😮 😲 😵 🤯 😳 😱 😨 😰 😢 😥 🤤 😭 😓 😪 😴 🥱 🙄 🤨 🧐 🤔 🤫 🤭 🤥 😬 🤐 🤢 🤮 🤧 😷 🤒 🤕 😈 👿 👹 👺 💩 👻 💀 ☠️ 👽 👾 🤖 🎃 😺 😸 😹 😻 😼 😽 🙀 😿 😾 👐 🙌 👏 🙏 🤲 🤝 👍 👎 👊 ✊ 🤛 🤜 🤞 ✌️ 🤘 🤏 👌 👈 👉 👆 👇 ☝️ ✋ 🤚 🖐 🖖 👋 🤙 💪 🖕 🤟 ✍️ 🤳 💅 🖖 💄 💋 👄 👅 👂 🦻 👃 🦵 🦶 🦾 🦿 👣 👁 👀 🗣 👤 👥 👶 👦 👧 🧒 👨 👩 🧑 👱‍♀️ 👱 🧔 👴 👵 🧓 👲 👳‍♀️ 👳 🧕 👮‍♀️ 👮 👷‍♀️ 👷 💂‍♀️ 💂 🕵️‍♀️ 🕵️ 👩‍⚕️ 👨‍⚕️ 👩‍🌾 👨‍🌾 👩‍🍳 👨‍🍳 👩‍🎓 👨‍🎓 👩‍🎤 👨‍🎤 👩‍🏫 👨‍🏫 👩‍🏭 👨‍🏭 👩‍💻 👨‍💻 👩‍💼 👨‍💼 👩‍🔧 👨‍🔧 👩‍🔬 👨‍🔬 👩‍🎨 👨‍🎨 👩‍🚒 👨‍🚒 👩‍✈️ 👨‍✈️ 👩‍🚀 👨‍🚀 👩‍⚖️ 👨‍⚖️ 🤶 🎅 👸 🤴 👰 🤵 👼 🤰 🤱 🙇‍♀️ 🙇 💁 💁‍♂️ 🙅 🙅‍♂️ 🙆 🙆‍♂️ 🙋 🙋‍♂️ 🤦‍♀️ 🤦‍♂️ 🤷‍♀️ 🤷‍♂️ 🙎 🙎‍♂️ 🙍 🙍‍♂️ 💇 💇‍♂️ 💆 💆‍♂️ 🧖‍♀️ 🧖‍♂️ 🧏 🧏‍♂️ 🧏‍♀️ 🧙‍♀️ 🧙‍♂️ 🧛‍♀️ 🧛‍♂️ 🧟‍♀️ 🧟‍♂️ 🧚‍♀️ 🧚‍♂️ 🧜‍♀️ 🧜‍♂️ 🧝‍♀️ 🧝‍♂️ 🧞‍♀️ 🧞‍♂️ 🕴 💃 🕺 👯 👯‍♂️ 🚶‍♀️ 🚶 🏃‍♀️ 🏃 🧍 🧍‍♂️ 🧍‍♀️ 🧎 🧎‍♂️ 🧎‍♀️ 👨‍🦯 👩‍🦯 👨‍🦼 👩‍🦼 👨‍🦽 👩‍🦽 🧑‍🤝‍🧑 👫 👭 👬 💑 👩‍❤️‍👩 👨‍❤️‍👨 💏 👩‍❤️‍💋‍👩 👨‍❤️‍💋‍👨 👪 👨‍👩‍👧 👨‍👩‍👧‍👦 👨‍👩‍👦‍👦 👨‍👩‍👧‍👧 👩‍👩‍👦 👩‍👩‍👧 👩‍👩‍👧‍👦 👩‍👩‍👦‍👦 👩‍👩‍👧‍👧 👨‍👨‍👦 👨‍👨‍👧 👨‍👨‍👧‍👦 👨‍👨‍👦‍👦 👨‍👨‍👧‍👧 👩‍👦 👩‍👧 👩‍👧‍👦 👩‍👦‍👦 👩‍👧‍👧 👨‍👦 👨‍👧 👨‍👧‍👦 👨‍👦‍👦 👨‍👧‍👧 👚 👕 👖 👔 👗 👙 👘 👠 👡 👢 👞 👟 👒 🎩 🎓 👑 ⛑ 🎒 👝 👛 👜 💼 👓 🕶 🤿 🌂 ☂️ 🧣 🧤 🧥 🦺 🥻 🩱 🩲 🩳 🩰 🧦 🧢 ⛷ 🏂 🏋️‍♀️ 🏋️ 🤺 🤼‍♀️ 🤼‍♂️ 🤸‍♀️ 🤸‍♂️ ⛹️‍♀️ ⛹️ 🤾‍♀️ 🤾‍♂️ 🏌️‍♀️ 🏌️ 🏄‍♀️ 🏄 🏊‍♀️ 🏊 🤽‍♀️ 🤽‍♂️ 🚣‍♀️ 🚣 🏇 🚴‍♀️ 🚴 🚵‍♀️ 🚵 🤹‍♀️ 🤹‍♂️ 🧗‍♀️ 🧗‍♂️ 🧘‍♀️ 🧘‍♂️ 🥰 🥵 🥶 🥳 🥴 🥺 🦸 🦹 🧑‍🦰 🧑‍🦱 🧑‍🦳 🧑‍🦲 🧑‍⚕️ 🧑‍🎓 🧑‍🏫 🧑‍⚖️ 🧑‍🌾 🧑‍🍳 🧑‍🔧 🧑‍🏭 🧑‍💼 🧑‍🔬 🧑‍💻 🧑‍🎤 🧑‍🎨 🧑‍✈️ 🧑‍🚀 🧑‍🚒 🧑‍🦯 🧑‍🦼 🧑‍🦽 🦰 🦱 🦲 🦳</p>
<h3 id="pale-emojis">Pale Emojis</h3>
<p>👐🏻 🙌🏻 👏🏻 🙏🏻 👍🏻 👎🏻 👊🏻 ✊🏻 🤛🏻 🤜🏻 🤞🏻 ✌🏻 🤘🏻 👌🏻 👈🏻 👉🏻 👆🏻 👇🏻 ☝🏻 ✋🏻 🤚🏻 🖐🏻 🖖🏻 👋🏻 🤙🏻 💪🏻 🖕🏻 ✍🏻 🤳🏻 💅🏻 👂🏻 👃🏻 👶🏻 👦🏻 👧🏻 👨🏻 👩🏻 👱🏻‍♀️ 👱🏻 👴🏻 👵🏻 👲🏻 👳🏻‍♀️ 👳🏻 👮🏻‍♀️ 👮🏻 👷🏻‍♀️ 👷🏻 💂🏻‍♀️ 💂🏻 🕵🏻‍♀️ 🕵🏻 👩🏻‍⚕️ 👨🏻‍⚕️ 👩🏻‍🌾 👨🏻‍🌾 👩🏻‍🍳 👨🏻‍🍳 👩🏻‍🎓 👨🏻‍🎓 👩🏻‍🎤 👨🏻‍🎤 👩🏻‍🏫 👨🏻‍🏫 👩🏻‍🏭 👨🏻‍🏭 👩🏻‍💻 👨🏻‍💻 👩🏻‍💼 👨🏻‍💼 👩🏻‍🔧 👨🏻‍🔧 👩🏻‍🔬 👨🏻‍🔬 👩🏻‍🎨 👨🏻‍🎨 👩🏻‍🚒 👨🏻‍🚒 👩🏻‍✈️ 👨🏻‍✈️ 👩🏻‍🚀 👨🏻‍🚀 👩🏻‍⚖️ 👨🏻‍⚖️ 🤶🏻 🎅🏻 👸🏻 🤴🏻 👰🏻 🤵🏻 👼🏻 🤰🏻 🙇🏻‍♀️ 🙇🏻 💁🏻 💁🏻‍♂️ 🙅🏻 🙅🏻‍♂️ 🙆🏻 🙆🏻‍♂️ 🙋🏻 🙋🏻‍♂️ 🤦🏻‍♀️ 🤦🏻‍♂️ 🤷🏻‍♀️ 🤷🏻‍♂️ 🙎🏻 🙎🏻‍♂️ 🙍🏻 🙍🏻‍♂️ 💇🏻 💇🏻‍♂️ 💆🏻 💆🏻‍♂️ 🕴🏻 💃🏻 🕺🏻 🚶🏻‍♀️ 🚶🏻 🏃🏻‍♀️ 🏃🏻 🏋🏻‍♀️ 🏋🏻 🤸🏻‍♀️ 🤸🏻‍♂️ ⛹🏻‍♀️ ⛹🏻 🤾🏻‍♀️ 🤾🏻‍♂️ 🏌🏻‍♀️ 🏌🏻 🏄🏻‍♀️ 🏄🏻 🏊🏻‍♀️ 🏊🏻 🤽🏻‍♀️ 🤽🏻‍♂️ 🚣🏻‍♀️ 🚣🏻 🏇🏻 🚴🏻‍♀️ 🚴🏻 🚵🏻‍♀️ 🚵🏻 🤹🏻‍♀️ 🤹🏻‍♂️ 🛀🏻 🧒🏻 🧑🏻 🧕🏻 🧔🏻 🤱🏻 🧙🏻‍♀️ 🧙🏻‍♂️ 🧚🏻‍♀️ 🧚🏻‍♂️ 🧛🏻‍♀️ 🧛🏻‍♂️ 🧜🏻‍♀️ 🧜🏻‍♂️ 🧝🏻‍♀️ 🧝🏻‍♂️ 🧖🏻‍♀️ 🧖🏻‍♂️ 🧗🏻‍♀️ 🧗🏻‍♂️ 🧘🏻‍♀️ 🧘🏻‍♂️ 🤟🏻 🤲🏻 💏🏻 💑🏻 🤏🏻 🦻🏻 🧏🏻 🧏🏻‍♂️ 🧏🏻‍♀️ 🧍🏻 🧍🏻‍♂️ 🧍🏻‍♀️ 🧎🏻 🧎🏻‍♂️ 🧎🏻‍♀️ 👨🏻‍🦯 👩🏻‍🦯 👨🏻‍🦼 👩🏻‍🦼 👨🏻‍🦽 👩🏻‍🦽 🧑🏻‍🤝‍🧑🏻 🧑🏻‍🦰 🧑🏻‍🦱 🧑🏻‍🦳 🧑🏻‍🦲 🧑🏻‍⚕️ 🧑🏻‍🎓 🧑🏻‍🏫 🧑🏻‍⚖️ 🧑🏻‍🌾 🧑🏻‍🍳 🧑🏻‍🔧 🧑🏻‍🏭 🧑🏻‍💼 🧑🏻‍🔬 🧑🏻‍💻 🧑🏻‍🎤 🧑🏻‍🎨 🧑🏻‍✈️ 🧑🏻‍🚀 🧑🏻‍🚒 🧑🏻‍🦯 🧑🏻‍🦼 🧑🏻‍🦽</p>
<h3 id="cream-white-emojis">Cream White Emojis</h3>
<p>👐🏼 🙌🏼 👏🏼 🙏🏼 👍🏼 👎🏼 👊🏼 ✊🏼 🤛🏼 🤜🏼 🤞🏼 ✌🏼 🤘🏼 👌🏼 👈🏼 👉🏼 👆🏼 👇🏼 ☝🏼 ✋🏼 🤚🏼 🖐🏼 🖖🏼 👋🏼 🤙🏼 💪🏼 🖕🏼 ✍🏼 🤳🏼 💅🏼 👂🏼 👃🏼 👶🏼 👦🏼 👧🏼 👨🏼 👩🏼 👱🏼‍♀️</p>
<p>👱🏼 👴🏼 👵🏼 👲🏼 👳🏼‍♀️ 👳🏼 👮🏼‍♀️ 👮🏼 👷🏼‍♀️ 👷🏼 💂🏼‍♀️ 💂🏼 🕵🏼‍♀️ 🕵🏼 👩🏼‍⚕️ 👨🏼‍⚕️ 👩🏼‍🌾 👨🏼‍🌾 👩🏼‍🍳 👨🏼‍🍳 👩🏼‍🎓 👨🏼‍🎓 👩🏼‍🎤 👨🏼‍🎤 👩🏼‍🏫 👨🏼‍🏫 👩🏼‍🏭 👨🏼‍🏭 👩🏼‍💻 👨🏼‍💻 👩🏼‍💼 👨🏼‍💼 👩🏼‍🔧 👨🏼‍🔧 👩🏼‍🔬 👨🏼‍🔬 👩🏼‍🎨 👨🏼‍🎨</p>
<p>👩🏼‍🚒 👨🏼‍🚒 👩🏼‍✈️ 👨🏼‍✈️ 👩🏼‍🚀 👨🏼‍🚀 👩🏼‍⚖️ 👨🏼‍⚖️ 🤶🏼 🎅🏼 👸🏼 🤴🏼 👰🏼 🤵🏼 👼🏼 🤰🏼 🙇🏼‍♀️ 🙇🏼 💁🏼 💁🏼‍♂️ 🙅🏼 🙅🏼‍♂️ 🙆🏼 🙆🏼‍♂️ 🙋🏼 🙋🏼‍♂️ 🤦🏼‍♀️ 🤦🏼‍♂️ 🤷🏼‍♀️ 🤷🏼‍♂️ 🙎🏼 🙎🏼‍♂️ 🙍🏼 🙍🏼‍♂️ 💇🏼 💇🏼‍♂️ 💆🏼 💆🏼‍♂️</p>
<p>🕴🏼 💃🏼 🕺🏼 🚶🏼‍♀️ 🚶🏼 🏃🏼‍♀️ 🏃🏼 🏋🏼‍♀️ 🏋🏼 🤸🏼‍♀️ 🤸🏼‍♂️ ⛹🏼‍♀️ ⛹🏼 🤾🏼‍♀️ 🤾🏼‍♂️ 🏌🏼‍♀️ 🏌🏼 🏄🏼‍♀️ 🏄🏼 🏊🏼‍♀️ 🏊🏼 🤽🏼‍♀️ 🤽🏼‍♂️ 🚣🏼‍♀️ 🚣🏼 🏇🏼 🚴🏼‍♀️ 🚴🏼 🚵🏼‍♀️ 🚵🏻 🤹🏼‍♀️ 🤹🏼‍♂️ 🛀🏼 🧒🏼 🧑🏼 🧓🏼 🧕🏼 🧔🏼 🤱🏼 🧙🏼‍♀️ 🧙🏼‍♂️ 🧚🏼‍♀️ 🧚🏼‍♂️ 🧛🏼‍♀️ 🧛🏼‍♂️ 🧜🏼‍♀️ 🧜🏼‍♂️ 🧝🏼‍♀️ 🧝🏼‍♂️ 🧖🏼‍♀️ 🧖🏼‍♂️ 🧗🏼‍♀️ 🧗🏼‍♂️ 🧘🏼‍♂️ 🤟🏼 🤲🏼 💏🏼 💑🏼 🤏🏼 🦻🏼 🧏🏼 🧏🏼‍♂️ 🧏🏼‍♀️ 🧍🏼 🧍🏼‍♂️ 🧍🏼‍♀️ 🧎🏼 🧎🏼‍♂️ 🧎🏼‍♀️ 👨🏼‍🦯 👩🏼‍🦯 👨🏼‍🦼 👩🏼‍🦼 👨🏼‍🦽 👩🏼‍🦽 🧑🏼‍🤝‍🧑🏼 🧑🏼‍🦰 🧑🏼‍🦱 🧑🏼‍🦳 🧑🏼‍🦲 🧑🏼‍⚕️ 🧑🏼‍🎓 🧑🏼‍🏫 🧑🏼‍⚖️ 🧑🏼‍🌾 🧑🏼‍🍳 🧑🏼‍🔧 🧑🏼‍🏭 🧑🏼‍💼 🧑🏼‍🔬 🧑🏼‍💻 🧑🏼‍🎤 🧑🏼‍🎨 🧑🏼‍✈️ 🧑🏼‍🚀 🧑🏼‍🚒 🧑🏼‍🦯 🧑🏼‍🦼 🧑🏼‍🦽</p>
<h3 id="moderate-brown-emojis">Moderate Brown Emojis</h3>
<p>👐🏽 🙌🏽 👏🏽 🙏🏽 👍🏽 👎🏽 👊🏽 ✊🏽 🤛🏽 🤜🏽 🤞🏽 ✌🏽 🤘🏽 👌🏽 👈🏽 👉🏽 👆🏽 👇🏽 ☝🏽 ✋🏽 🤚🏽 🖐🏽 🖖🏽 👋🏽 🤙🏽 💪🏽 🖕🏽 ✍🏽 🤳🏽 💅🏽 👂🏽 👃🏽 👶🏽 👦🏽 👧🏽 👨🏽 👩🏽 👱🏽‍♀️ 👱🏽 👴🏽 👵🏽 👲🏽 👳🏽‍♀️ 👳🏽 👮🏽‍♀️ 👮🏽 👷🏽‍♀️ 👷🏽 💂🏽‍♀️ 💂🏽 🕵🏽‍♀️ 🕵🏽 👩🏽‍⚕️ 👨🏽‍⚕️ 👩🏽‍🌾 👨🏽‍🌾 👩🏽‍🍳 👨🏽‍🍳 👩🏽‍🎓 👨🏽‍🎓 👩🏽‍🎤 👨🏽‍🎤 👩🏽‍🏫 👨🏽‍🏫 👩🏽‍🏭 👨🏽‍🏭 👩🏽‍💻 👨🏽‍💻 👩🏽‍💼 👨🏽‍💼 👩🏽‍🔧 👨🏽‍🔧 👩🏽‍🔬 👨🏽‍🔬 👩🏽‍🎨 👨🏽‍🎨 👩🏽‍🚒 👨🏽‍🚒 👩🏽‍✈️ 👨🏽‍✈️ 👩🏽‍🚀 👨🏽‍🚀 👩🏽‍⚖️ 👨🏽‍⚖️ 🤶🏽 🎅🏽 👸🏽 🤴🏽 👰🏽 🤵🏽 👼🏽 🤰🏽 🙇🏽‍♀️ 🙇🏽 💁🏽 💁🏽‍♂️ 🙅🏽 🙅🏽‍♂️ 🙆🏽 🙆🏽‍♂️ 🙋🏽 🙋🏽‍♂️ 🤦🏽‍♀️ 🤦🏽‍♂️ 🤷🏽‍♀️ 🤷🏽‍♂️ 🙎🏽 🙎🏽‍♂️ 🙍🏽 🙍🏽‍♂️ 💇🏽 💇🏽‍♂️ 💆🏽 💆🏽‍♂️ 🕴🏼 💃🏽 🕺🏽 🚶🏽‍♀️ 🚶🏽 🏃🏽‍♀️ 🏃🏽 🏋🏽‍♀️ 🏋🏽 🤸🏽‍♀️ 🤸🏽‍♂️ ⛹🏽‍♀️ ⛹🏽 🤾🏽‍♀️ 🤾🏽‍♂️ 🏌🏽‍♀️ 🏌🏽 🏄🏽‍♀️ 🏄🏽 🏊🏽‍♀️ 🏊🏽 🤽🏽‍♀️ 🤽🏽‍♂️ 🚣🏽‍♀️ 🚣🏽 🏇🏽 🚴🏽‍♀️ 🚴🏽 🚵🏽‍♀️ 🚵🏽 🤹🏽‍♀️ 🤹🏽‍♂️ 🛀🏽 🧒🏽 🧑🏽 🧓🏽 🧕🏽 🧔🏽 🤱🏽 🧙🏽‍♀️ 🧙🏽‍♂️ 🧚🏽‍♀️ 🧚🏽‍♂️ 🧛🏽‍♀️ 🧛🏽‍♂️ 🧜🏽‍♀️ 🧜🏽‍♂️ 🧝🏽‍♀️ 🧝🏽‍♂️ 🧖🏽‍♀️ 🧖🏽‍♂️ 🧗🏽‍♀️ 🧗🏽‍♂️ 🧘🏽‍♀️ 🧘🏽‍♂️ 🤟🏽 🤲🏽 💏🏽 💑🏽 🤏🏽 🦻🏽 🧏🏽 🧏🏽‍♂️ 🧏🏽‍♀️ 🧍🏽 🧍🏽‍♂️ 🧍🏽‍♀️ 🧎🏽 🧎🏽‍♂️ 🧎🏽‍♀️ 👨🏽‍🦯 👩🏽‍🦯 👨🏽‍🦼 👩🏽‍🦼 👨🏽‍🦽 👩🏽‍🦽 🧑🏽‍🤝‍🧑🏽 🧑🏽‍🦰 🧑🏽‍🦱 🧑🏽‍🦳 🧑🏽‍🦲 🧑🏽‍⚕️ 🧑🏽‍🎓 🧑🏽‍🏫 🧑🏽‍⚖️ 🧑🏽‍🌾 🧑🏽‍🍳 🧑🏽‍🔧 🧑🏽‍🏭 🧑🏽‍💼 🧑🏽‍🔬 🧑🏽‍💻 🧑🏽‍🎤 🧑🏽‍🎨 🧑🏽‍✈️ 🧑🏽‍🚀 🧑🏽‍🚒 🧑🏽‍🦯 🧑🏽‍🦼 🧑🏽‍🦽</p>
<h3 id="dark-brown-emojis">Dark Brown Emojis</h3>
<p>👐🏾 🙌🏾 👏🏾 🙏🏾 👍🏾 👎🏾 👊🏾 ✊🏾 🤛🏾 🤜🏾 🤞🏾 ✌🏾 🤘🏾 👌🏾 👈🏾 👉🏾 👆🏾 👇🏾 ☝🏾 ✋🏾 🤚🏾 🖐🏾 🖖🏾 👋🏾 🤙🏾 💪🏾 🖕🏾 ✍🏾 🤳🏾 💅🏾 👂🏾 👃🏾 👶🏾 👦🏾 👧🏾 👨🏾 👩🏾 👱🏾‍♀️ 👱🏾 👴🏾 👵🏾 👲🏾 👳🏾‍♀️ 👳🏾 👮🏾‍♀️ 👮🏾 👷🏾‍♀️ 👷🏾 💂🏾‍♀️ 💂🏾 🕵🏾‍♀️ 🕵🏾 👩🏾‍⚕️ 👨🏾‍⚕️ 👩🏾‍🌾 👨🏾‍🌾 👩🏾‍🍳 👨🏾‍🍳 👩🏾‍🎓 👨🏾‍🎓 👩🏾‍🎤 👨🏾‍🎤 👩🏾‍🏫 👨🏾‍🏫 👩🏾‍🏭 👨🏾‍🏭 👩🏾‍💻 👨🏾‍💻 👩🏾‍💼 👨🏾‍💼 👩🏾‍🔧 👨🏾‍🔧 👩🏾‍🔬 👨🏾‍🔬 👩🏾‍🎨 👨🏾‍🎨 👩🏾‍🚒 👨🏾‍🚒 👩🏾‍✈️ 👨🏾‍✈️ 👩🏾‍🚀 👨🏾‍🚀 👩🏾‍⚖️ 👨🏾‍⚖️ 🤶🏾 🎅🏾 👸🏾 🤴🏾 👰🏾 🤵🏾 👼🏾 🤰🏾 🙇🏾‍♀️ 🙇🏾 💁🏾 💁🏾‍♂️ 🙅🏾 🙅🏾‍♂️ 🙆🏾 🙆🏾‍♂️ 🙋🏾 🙋🏾‍♂️ 🤦🏾‍♀️ 🤦🏾‍♂️ 🤷🏾‍♀️ 🤷🏾‍♂️ 🙎🏾 🙎🏾‍♂️ 🙍🏾 🙍🏾‍♂️ 💇🏾 💇🏾‍♂️ 💆🏾 💆🏾‍♂️ 🕴🏾 💃🏾 🕺🏾 🚶🏾‍♀️ 🚶🏾 🏃🏾‍♀️ 🏃🏾 🏋🏾‍♀️ 🏋🏾 🤸🏾‍♀️ 🤸🏾‍♂️ ⛹🏾‍♀️ ⛹🏾 🤾🏾‍♀️ 🤾🏾‍♂️ 🏌🏾‍♀️ 🏌🏾 🏄🏾‍♀️ 🏄🏾 🏊🏾‍♀️ 🏊🏾 🤽🏾‍♀️ 🤽🏾‍♂️ 🚣🏾‍♀️ 🚣🏾 🏇🏾 🚴🏾‍♀️ 🚴🏾 🚵🏾‍♀️ 🚵🏾 🤹🏾‍♀️ 🤹🏾‍♂️ 🛀🏾 🧒🏾 🧑🏾 🧓🏾 🧕🏾 🧔🏾 🤱🏾 🧙🏾‍♀️ 🧙🏾‍♂️ 🧚🏾‍♀️ 🧚🏾‍♂️ 🧛🏾‍♀️ 🧛🏾‍♂️ 🧜🏾‍♀️ 🧜🏾‍♂️ 🧝🏾‍♀️ 🧝🏾‍♂️ 🧖🏾‍♀️ 🧖🏾‍♂️ 🧗🏾‍♀️ 🧗🏾‍♂️ 🧘🏾‍♀️ 🧘🏾‍♂️ 🤟🏾 🤲🏾 💏🏾 💑🏾 🧑🏾‍🦰 🧑🏾‍🦱 🧑🏾‍🦳 🧑🏾‍🦲 🧑🏾‍⚕️ 🧑🏾‍🎓 🧑🏾‍🏫 🧑🏾‍⚖️ 🧑🏾‍🌾 🧑🏾‍🍳 🧑🏾‍🔧 🧑🏾‍🏭 🧑🏾‍💼 🧑🏾‍🔬 🧑🏾‍💻 🧑🏾‍🎤 🧑🏾‍🎨 🧑🏾‍✈️ 🧑🏾‍🚀 🧑🏾‍🚒 🧑🏾‍🦯 🧑🏾‍🦼 🧑🏾‍🦽</p>
<h3 id="black-emojis">Black Emojis</h3>
<p>👐🏿 🙌🏿 👏🏿 🙏🏿 👍🏿 👎🏿 👊🏿 ✊🏿 🤛🏿 🤜🏿 🤞🏿 ✌🏿 🤘🏿 👌🏿 👈🏿 👉🏿 👆🏿 👇🏿 ☝🏿 ✋🏿 🤚🏿 🖐🏿 🖖🏿 👋🏿 🤙🏿 💪🏿 🖕🏿 ✍🏿 🤳🏿 💅🏿 👂🏿 👃🏿 👶🏿 👦🏿 👧🏿 👨🏿 👩🏿 👱🏿‍♀️ 👱🏿 👴🏿 👵🏿 👲🏿 👳🏿‍♀️ 👳🏿 👮🏿‍♀️ 👮🏿 👷🏿‍♀️ 👷🏿 💂🏿‍♀️ 💂🏿 🕵🏿‍♀️ 🕵🏿 👩🏿‍⚕️ 👨🏿‍⚕️ 👩🏿‍🌾 👨🏿‍🌾 👩🏿‍🍳 👨🏿‍🍳 👩🏿‍🎓 👨🏿‍🎓 👩🏿‍🎤 👨🏿‍🎤 👩🏿‍🏫 👨🏿‍🏫 👩🏿‍🏭 👨🏿‍🏭 👩🏿‍💻 👨🏿‍💻 👩🏿‍💼 👨🏿‍💼 👩🏿‍🔧 👨🏿‍🔧 👩🏿‍🔬 👨🏿‍🔬 👩🏿‍🎨 👨🏿‍🎨 👩🏿‍🚒 👨🏿‍🚒 👩🏿‍✈️ 👨🏿‍✈️ 👩🏿‍🚀 👨🏿‍🚀 👩🏿‍⚖️ 👨🏿‍⚖️ 🤶🏿 🎅🏿 👸🏿 🤴🏿 👰🏿 🤵🏿 👼🏿 🤰🏿 🙇🏿‍♀️ 🙇🏿 💁🏿 💁🏿‍♂️ 🙅🏿 🙅🏿‍♂️ 🙆🏿 🙆🏿‍♂️ 🙋🏿 🙋🏿‍♂️ 🤦🏿‍♀️ 🤦🏿‍♂️ 🤷🏿‍♀️ 🤷🏿‍♂️ 🙎🏿 🙎🏿‍♂️ 🙍🏿 🙍🏿‍♂️ 💇🏿 💇🏿‍♂️ 💆🏿 💆🏿‍♂️ 🕴🏿 💃🏿 🕺🏿 🚶🏿‍♀️ 🚶🏿 🏃🏿‍♀️ 🏃🏿 🏋🏿‍♀️ 🏋🏿 🤸🏿‍♀️ 🤸🏿‍♂️ ⛹🏿‍♀️ ⛹🏿 🤾🏿‍♀️ 🤾🏿‍♂️ 🏌🏿‍♀️ 🏌🏿 🏄🏿‍♀️ 🏄🏿 🏊🏿‍♀️ 🏊🏿 🤽🏿‍♀️ 🤽🏿‍♂️ 🚣🏿‍♀️ 🚣🏿 🏇🏿 🚴🏿‍♀️ 🚴🏿 🚵🏿‍♀️ 🚵🏿 🤹🏿‍♀️ 🤹🏿‍♂️ 🛀🏿 🧒🏿 🧑🏿 🧓🏿 🧕🏿 🧔🏿 🤱🏿 🧙🏿‍♀️ 🧙🏿‍♂️ 🧚🏿‍♀️ 🧚🏿‍♂️ 🧛🏿‍♀️ 🧛🏿‍♂️ 🧜🏿‍♀️ 🧜🏿‍♂️ 🧝🏿‍♀️ 🧝🏿‍♂️ 🧖🏿‍♀️ 🧖🏿‍♂️ 🧗🏿‍♀️ 🧗🏿‍♂️ 🧘🏿‍♀️ 🧘🏿‍♂️ 🤟🏿 🤲🏿 💏🏿 💑🏿 🤏🏿 🦻🏿 🧏🏿 🧏🏿‍♂️ 🧏🏿‍♀️ 🧍🏿 🧍🏿‍♂️ 🧍🏿‍♀️ 🧎🏿 🧎🏿‍♂️ 🧎🏿‍♀️ 👨🏿‍🦯 👩🏿‍🦯 👨🏿‍🦼 👩🏿‍🦼 👨🏿‍🦽 👩🏿‍🦽 🧑🏿‍🤝‍🧑🏿 🧑🏿‍🦰 🧑🏿‍🦱 🧑🏿‍🦳 🧑🏿‍🦲 🧑🏿‍⚕️ 🧑🏿‍🎓 🧑🏿‍🏫 🧑🏿‍⚖️ 🧑🏿‍🌾 🧑🏿‍🍳 🧑🏿‍🔧 🧑🏿‍🏭 🧑🏿‍💼 🧑🏿‍🔬 🧑🏿‍💻 🧑🏿‍🎤 🧑🏿‍🎨 🧑🏿‍✈️ 🧑🏿‍🚀 🧑🏿‍🚒 🧑🏿‍🦯 🧑🏿‍🦼 🧑🏿‍🦽</p>
<h3 id="animals--nature-emojis">Animals &amp; Nature Emojis</h3>
<p>🐶 🐱 🐭 🐹 🐰 🦊 🐻 🐼 🐨 🐯 🦁 🐮 🐷 🐽 🐸 🐵 🙊 🙉 🙊 🐒 🐔 🐧 🐦 🐤 🐣 🐥 🦆 🦩 🦅 🦉 🦇 🐺 🐗 🐴 🦄 🐝 🐛 🦋 🐌 🐚 🦗 🐞 🐜 🕷 🕸 🐢 🐍 🦎 🦂 🦀 🦑 🐙 🦐 🐠 🐟 🐡 🐬 🦈 🐳 🐋 🐊 🐆 🐅 🐃 🐂 🐄 🦌 🐪 🐫 🐘 🦏 🦍 🐎 🐖 🐐 🐏 🐑 🐕 🐩 🦮 🐕‍🦺 🐈 🐓 🦃 🕊 🐇 🐁 🐀 🐿 🦓 🦒 🦔 🦧 🦥 🦦 🦨 🦕 🦖 🦪 🐾 🐉 🐲 🌵 🎄 🌲 🌳 🌴 🌱 🌿 ☘️ 🍀 🎍 🎋 🍃 🍂 🍁 🍄 🌾 💐 🌷 🌹 🥀 🌻 🌼 🌸 🌺 🌎 🌍 🌏 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 🌚 🌝 🌞 🌛 🌜 🌙 🪐 💫 ⭐️ 🌟 ✨ ⚡️ 🔥 💥 ☄️ ☀️ 🌤 ⛅️ 🌥 🌦 🌈 ☁️ 🌧 ⛈ 🌩 🌨 ☃️ ⛄️ ❄️ 🌬 💨 🌪 🌫 🌊 💧 💦 ☔️</p>
<h3 id="food-emojis">Food Emojis</h3>
<p>🍏 🍎 🍐 🍊 🍋 🍌 🍉 🍇 🍓 🍈 🍒 🍑 🍍 🥝 🥑 🍅 🍆 🥒 🥕 🌽 🌶 🧄 🧅 🥔 🍠 🌰 🥜 🍯 🥐 🍞 🥖 🧀 🥚 🍳 🥓 🥞 🍤 🍗 🍖 🍕 🌭 🍔 🍟 🥙 🌮 🌯 🥗 🥘 🍝 🍜 🍲 🍥 🍣 🍱 🍛 🍚 🍙 🍘 🍢 🍡 🍧 🍨 🍦 🍰 🎂 🍮 🍭 🍬 🍫 🍿 🍩 🍪 🥛 🍼 ☕️ 🍵 🍶 🍺 🍻 🥂 🍷 🥃 🍸 🍹 🍾 🧃 🧉 🧊 🥄 🍴 🍽 🥥 🥨 🥩 🥪 🥣 🥫 🧇 🧆 🧈 🥟 🥠 🥡 🥧 🥤 🥢</p>
<h3 id="activity--sports-emojis">Activity &amp; Sports Emojis</h3>
<p>⚽️ 🏀 🏈 ⚾️ 🎾 🏐 🏉 🎱 🏓 🏸 🥅 🏒 🏑 🏏 ⛳️ 🏹 🎣 🥊 🥋 ⛸ 🎿 ⛷ 🏂 🏋️‍♀️ 🏋️ 🤺 🤼‍♀️ 🤼‍♂️ 🤸‍♀️ 🤸‍♂️ ⛹️‍♀️ ⛹️ 🤾‍♀️ 🤾‍♂️ 🏌️‍♀️ 🏌️ 🏄‍♀️ 🏄 🏊‍♀️ 🏊 🤽‍♀️ 🤽‍♂️ 🚣‍♀️ 🚣 🏇 🚴‍♀️ 🚴 🚵‍♀️ 🚵 🪂 🎽 🏅 🎖 🥇 🥈 🥉 🏆 🏵 🎗 🎫 🎟 🎪 🤹‍♀️ 🤹‍♂️ 🎭 🎨 🎬 🎤 🎧 🎼 🎹 🥁 🎷 🎺 🎸 🎻 🪕 🎲 🎯 🎳 🎮 🎰 🛷 🥌 🪀 🪁</p>
<h3 id="vehiclestravel--places">Vehicles/Travel &amp; Places</h3>
<p>🚗 🚕 🚙 🚌 🚎 🏎 🚓 🚑 🚒 🚐 🚚 🚛 🚜 🛴 🚲 🛵 🛺 🏍 🦽 🦼 🚨 🚔 🚍 🚘 🚖 🚡 🚠 🚟 🚃 🚋 🚞 🚝 🚄 🚅 🚈 🚂 🚆 🚇 🚊 🚉 🚁 🛩 ✈️ 🛫 🛬 🚀 🛰 💺 🛶 ⛵️ 🛥 🚤 🛳 ⛴ 🚢 ⚓️ 🚧 ⛽️ 🚏 🚦 🚥 🗺 🗿 🗽 ⛲️ 🗼 🏰 🏯 🏟 🎡 🎢 🎠 ⛱ 🏖 🏝 ⛰ 🏔 🗻 🌋 🏜 🏕 ⛺️ 🛤 🛣 🏗 🏭 🏠 🏡 🏘 🏚 🏢 🏬 🏣 🏤 🏥 🏦 🏨 🏪 🏫 🏩 💒 🏛 ⛪️ 🕌 🕍 🕋 🛕 ⛩ 🗾 🎑 🏞 🌅 🌄 🌠 🎇 🎆 🌇 🌆 🏙 🌃 🌌 🌉 🌁 🛸</p>
<h3 id="object-emojis">Object Emojis</h3>
<p>⌚️ 📱 📲 💻 ⌨️ 🖥 🖨 🖱 🖲 🕹 🗜 💽 💾 💿 📀 📼 📷 📸 📹 🎥 📽 🎞 📞 ☎️ 📟 📠 📺 📻 🎙 🎚 🎛 ⏱ ⏲ ⏰ 🕰 ⌛️ ⏳ 📡 🔋 🔌 💡 🔦 🕯 🗑 🛢 💸 💵 💴 💶 💷 💰 💳 💎 ⚖️ 🔧 🔨 ⚒ 🛠 ⛏ 🔩 ⚙️ ⛓ 🔫 💣 🔪 🗡 ⚔️ 🪓 🦯 🛡 🚬 ⚰️ ⚱️ 🏺 🔮 📿 💈 ⚗️ 🔭 🔬 🕳 💊 💉 🩸 🩹 🩺 🌡 🪒 🚽 🚰 🚿 🛁 🛀 🛎 🔑 🗝 🚪 🪑 🛋 🛏 🛌 🖼 🛍 🛒 🎁 🎈 🎏 🎀 🎊 🎉 🎎 🏮 🎐 ✉️ 📩 📨 📧 💌 📥 📤 📦 🏷 📪 📫 📬 📭 📮 📯 📜 📃 📄 📑 📊 📈 📉 🗒 🗓 📆 📅 📇 🗃 🗳 🗄 📋 📁 📂 🗂 🗞 📰 📓 📔 📒 📕 📗 📘 📙 📚 📖 🔖 🔗 📎 🖇 📐 📏 📌 📍 📌 🎌 🏳️ 🏴 🏁 🪔 ✂️ 🖊 🖋 ✒️ 🖌 🖍 📝 ✏️ 🔍 🔎 🔏 🔐 🔒 🔓</p>
<h3 id="symbols">Symbols</h3>
<p>❤️ 🧡 💛 💚 💙 💜 🖤 🤍 🤎 💔 ❣️ 💕 💞 💓 💗 💖 💘 💝 💟 ☮️ ✝️ ☪️ 🕉 ☸️ ✡️ 🔯 🕎 ☯️ ☦️ 🛐 ⛎ ♈️ ♉️ ♊️ ♋️ ♌️ ♍️ ♎️ ♏️ ♐️ ♑️ ♒️ ♓️ 🆔 ⚛️ 🉑 ☢️ ☣️ 📴 📳 🈶 🈚️ 🈸 🈺 🈷️ ✴️ 🆚 💮 🉐 ㊙️ ㊗️ 🈴 🈵 🈹 🈲 🅰️ 🅱️ 🆎 🆑 🅾️ 🆘 ❌ ⭕️ 🛑 ⛔️ 📛 🚫 💯 💢 ♨️ 🚷 🚯 🚳 🚱 🔞 📵 🚭 ❗️ ❕ ❓ ❔ ‼️ ⁉️ 🔅 🔆 〽️ ⚠️ 🚸 🔱 ⚜️ 🔰 ♻️ ✅ 🈯️ 💹 ❇️ ✳️ ❎ 🌐 💠 Ⓜ️ 🌀 💤 🏧 🚾 ♿️ 🅿️ 🈳 🈂️ 🛂 🛃 🛄 🛅 🚹 🚺 🚼 🚻 🚮 🎦 📶 🈁 🔣 ℹ️ 🔤 🔡 🔠 🆖 🆗 🆙 🆒 🆕 🆓 0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟 🔢 #️⃣ *️⃣ ▶️ ⏸ ⏯ ⏹ ⏺ ⏭ ⏮ ⏩ ⏪ ⏫ ⏬ ◀️ 🔼 🔽 ➡️ ⬅️ ⬆️ ⬇️ ↗️ ↘️ ↙️ ↖️ ↕️ ↔️ ↪️ ↩️ ⤴️ ⤵️ 🔀 🔁 🔂 🔄 🔃 🎵 🎶 ➕ ➖ ➗ ✖️ 💲 💱 ™️ ©️ ®️ 〰️ ➰ ➿ 🔚 🔙 🔛 🔝 ✔️ ☑️ 🔘 🔴 🟠 🟡 🟢 🔵 🟣 ⚫️ ⚪️ 🟤 🔺 🔻 🔸 🔹 🔶 🔷 🔳 🔲 ▪️ ▫️ ◾️ ◽️ ◼️ ◻️ ⬛️ ⬜️ 🟥 🟧 🟨 🟩 🟦 🟪 🟫 🔈 🔇 🔉 🔊 🔔 🔕 📣 📢 👁‍🗨 💬 💭 🗯 ♠️ ♣️ ♥️ ♦️ 🃏 🎴 🀄️ 🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛 🕜 🕝 🕞 🕟 🕠 🕡 🕢 🕣 🕤 🕥 🕦 🕧 ⏏ ♀ ♂ ⚕ ♾️</p>
<h3 id="mixed-color-emojis">Mixed Color Emojis</h3>
<p>🧑‍🤝‍🧑 🧑🏻‍🤝‍🧑🏻 🧑🏼‍🤝‍🧑🏻 🧑🏼‍🤝‍🧑🏼 🧑🏽‍🤝‍🧑🏻 🧑🏽‍🤝‍🧑🏼 🧑🏽‍🤝‍🧑🏽 🧑🏾‍🤝‍🧑🏻 🧑🏾‍🤝‍🧑🏼 🧑🏾‍🤝‍🧑🏽 🧑🏾‍🤝‍🧑🏾 🧑🏿‍🤝‍🧑🏻 🧑🏿‍🤝‍🧑🏼 🧑🏿‍🤝‍🧑🏽 🧑🏿‍🤝‍🧑🏾 🧑🏿‍🤝‍🧑🏿 👭🏻 👩🏼‍🤝‍👩🏻 👭🏼 👩🏽‍🤝‍👩🏻 👩🏽‍🤝‍👩🏼 👭🏽 👩🏾‍🤝‍👩🏻 👩🏾‍🤝‍👩🏼 👩🏾‍🤝‍👩🏽 👭🏾 👩🏿‍🤝‍👩🏻 👩🏿‍🤝‍👩🏼 👩🏿‍🤝‍👩🏽 👩🏿‍🤝‍👩🏾 👭🏿 👫🏻 👩🏻‍🤝‍👨🏼 👩🏻‍🤝‍👨🏽 👩🏻‍🤝‍👨🏾 👩🏻‍🤝‍👨🏿 👩🏼‍🤝‍👨🏻 👫🏼 👩🏼‍🤝‍👨🏽 👩🏼‍🤝‍👨🏾 👩🏼‍🤝‍👨🏿 👩🏽‍🤝‍👨🏻 👩🏽‍🤝‍👨🏼 👫🏽 👩🏽‍🤝‍👨🏾 👩🏽‍🤝‍👨🏿 👩🏾‍🤝‍👨🏻 👩🏾‍🤝‍👨🏼 👩🏾‍🤝‍👨🏽 👫🏾 👩🏾‍🤝‍👨🏿 👩🏿‍🤝‍👨🏻 👩🏿‍🤝‍👨🏼 👩🏿‍🤝‍👨🏽 👩🏿‍🤝‍👨🏾 👫🏿 👬🏻 👨🏼‍🤝‍👨🏻 👬🏼 👨🏽‍🤝‍👨🏻 👨🏽‍🤝‍👨🏼 👬🏽 👨🏾‍🤝‍👨🏻 👨🏾‍🤝‍👨🏼 👨🏾‍🤝‍👨🏽 👬🏾 👨🏿‍🤝‍👨🏻 👨🏿‍🤝‍👨🏼 👨🏿‍🤝‍👨🏽 👨🏿‍🤝‍👨🏾 👬🏿</p>
<h3 id="flag-emojis">Flag Emojis</h3>
<p>🏴 🇦🇫 🇦🇽 🇦🇱 🇩🇿 🇦🇸 🇦🇩 🇦🇴 🇦🇮 🇦🇶 🇦🇬 🇦🇷 🇦🇲 🇦🇼 🇦🇨 🇦🇺 🇦🇹 🇦🇿 🇧🇸 🇧🇭 🇧🇩 🇧🇧 🇧🇾 🇧🇪 🇧🇿 🇧🇯 🇧🇲 🇧🇹 🇧🇴 🇧🇦 🇧🇼 🇧🇻 🇧🇷 🇮🇴 🇻🇬 🇧🇳 🇧🇬 🇧🇫 🇧🇮 🇰🇭 🇨🇲 🇨🇦 🇮🇨 🇨🇻 🇧🇶 🇰🇾 🇨🇫 🇪🇦 🇹🇩 🇨🇱 🇨🇳 🇨🇽 🇨🇵 🇨🇨 🇨🇴 🇰🇲 🇨🇬 🇨🇩 🇨🇰 🇨🇷 🇨🇮 🇭🇷 🇨🇺 🇨🇼 🇨🇾 🇨🇿 🇩🇰 🇩🇬 🇩🇯 🇩🇲 🇩🇴 🇪🇨 🇪🇬 🇸🇻 🇬🇶 🇪🇷 🇪🇪 🇪🇹 🇪🇺 🇫🇰 🇫🇴 🇫🇯 🇫🇮 🇫🇷 🇬🇫 🇵🇫 🇹🇫 🇬🇦 🇬🇲 🇬🇪 🇩🇪 🇬🇭 🇬🇮 🇬🇷 🇬🇱 🇬🇩 🇬🇵 🇬🇺 🇬🇹 🇬🇬 🇬🇳 🇬🇼 🇬🇾 🇭🇹 🇭🇲 🇭🇳 🇭🇰 🇭🇺 🇮🇸 🇮🇳 🇮🇩 🇮🇷 🇮🇶 🇮🇪 🇮🇲 🇮🇱 🇮🇹 🇯🇲 🇯🇵 🇯🇪 🇯🇴 🇰🇿 🇰🇪 🇰🇮 🇽🇰 🇰🇼 🇰🇬 🇱🇦 🇱🇻 🇱🇧 🇱🇸 🇱🇷 🇱🇾 🇱🇮 🇱🇹 🇱🇺 🇲🇴 🇲🇰 🇲🇬 🇲🇼 🇲🇾 🇲🇻 🇲🇱 🇲🇹 🇲🇭 🇲🇶 🇲🇷 🇲🇺 🇾🇹 🇲🇽 🇫🇲 🇲🇩 🇲🇨 🇲🇳 🇲🇪 🇲🇸 🇲🇦 🇲🇿 🇲🇲 🇳🇦 🇳🇷 🇳🇵 🇳🇱 🇳🇨 🇳🇿 🇳🇮 🇳🇪 🇳🇬 🇳🇺 🇳🇫 🇲🇵 🇰🇵 🇳🇴 🇴🇲 🇵🇰 🇵🇼 🇵🇸 🇵🇦 🇵🇬 🇵🇾 🇵🇪 🇵🇭 🇵🇳 🇵🇱 🇵🇹 🇵🇷 🇶🇦 🇷🇪 🇷🇴 🇷🇺 🇷🇼 🇼🇸 🇸🇲 🇸🇹 🇸🇦 🇸🇳 🇷🇸 🇸🇨 🇸🇱 🇸🇬 🇸🇽 🇸🇰 🇸🇮 🇸🇧 🇸🇴 🇿🇦 🇬🇸 🇰🇷 🇸🇸 🇪🇸 🇱🇰 🇧🇱 🇸🇭 🇰🇳 🇱🇨 🇲🇫 🇵🇲 🇻🇨 🇸🇩 🇸🇷 🇸🇯 🇸🇿 🇸🇪 🇨🇭 🇸🇾 🇹🇼 🇹🇯 🇹🇿 🇹🇭 🇹🇱 🇹🇬 🇹🇰 🇹🇴 🇹🇹 🇹🇦 🇹🇳 🇹🇷 🇹🇲 🇹🇨 🇹🇻 🇺🇬 🇺🇦 🇦🇪 🇬🇧 🇺🇸 🇺🇾 🇺🇲 🇺🇳 🇻🇮 🇺🇿 🇻🇺 🇻🇦 🇻🇪</p>
<p>🇻🇳 🇼🇫 🇪🇭 🇾🇪 🇿🇲 🇿🇼 🏴󠁧󠁢󠁥󠁮󠁧󠁿 🏴󠁧󠁢󠁳󠁣󠁴󠁿 🏴󠁧󠁢󠁷󠁬󠁳󠁿 🏳️‍🌈 🏴‍☠️</p>
<h3 id="special-emojis">Special Emojis</h3>
<p>◯‍◯‍◯‍◯‍◯ 🐱‍👓 🐱‍👤 🐱‍🚀 🐱‍🐉 🐱‍💻 🐱‍🏍</p>
<h3 id="unofficial-flags">Unofficial Flags</h3>
<p>🏴󠁢󠁳󠁡󠁫󠁿 🏴󠁢󠁳󠁢󠁹󠁿 🏴󠁢󠁳󠁢󠁩󠁿 🏴󠁢󠁳󠁢󠁰󠁿 🏴󠁢󠁳󠁣󠁯󠁿 🏴󠁢󠁳󠁣󠁳󠁿 🏴󠁢󠁳󠁣󠁥󠁿 🏴󠁢󠁳󠁣󠁫󠁿 🏴󠁢󠁳󠁥󠁧󠁿 🏴󠁢󠁳󠁥󠁸󠁿 🏴󠁢󠁳󠁦󠁰󠁿 🏴󠁢󠁳󠁧󠁣󠁿 🏴󠁢󠁳󠁨󠁩󠁿 🏴󠁢󠁳󠁨󠁴󠁿 🏴󠁢󠁳󠁩󠁮󠁿 🏴󠁢󠁳󠁬󠁩󠁿 🏴󠁢󠁳󠁭󠁣󠁿 🏴󠁢󠁳󠁭󠁧󠁿 🏴󠁢󠁳󠁭󠁩󠁿 🏴󠁢󠁳󠁮󠁯󠁿 🏴󠁢󠁳󠁮󠁳󠁿 🏴󠁢󠁳󠁮󠁥󠁿 🏴󠁢󠁳󠁲󠁩󠁿 🏴󠁢󠁳󠁲󠁣󠁿 🏴󠁢󠁳󠁳󠁳󠁿 🏴󠁢󠁳󠁳󠁯󠁿 🏴󠁢󠁳󠁳󠁡󠁿 🏴󠁢󠁳󠁳󠁥󠁿 🏴󠁢󠁳󠁳󠁷󠁿 🏴󠁢󠁳󠁷󠁧󠁿</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Emmet &amp;mdash; Вёрстка на максималках</title><link>https://mikhail-yudin.ru/notes/emmet/</link><pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/notes/emmet/</guid><description>Большой набор сокращений emmet. Пока черновик, позже доработаю для более удобной навигации.
Базовый синтаксис emmet сокращений Дочерний элемент: &amp;gt; nav&amp;gt;ul&amp;gt;li
&amp;lt;nav&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;/nav&amp;gt; Соседний элемент: + div+p+bq
&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt; Выше уровнем: ^ div+div&amp;gt;p&amp;gt;span+em^bq
&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;lt;p&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;em&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt; &amp;lt;/div&amp;gt; div+div&amp;gt;p&amp;gt;span+em^^bq
&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;lt;p&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;em&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt; Группировка: () div&amp;gt;(header&amp;gt;ul&amp;gt;li*2&amp;gt;a)+footer&amp;gt;p
&amp;lt;div&amp;gt; &amp;lt;header&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&amp;#34;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&amp;#34;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;/header&amp;gt; &amp;lt;footer&amp;gt; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;/footer&amp;gt; &amp;lt;/div&amp;gt; (div&amp;gt;dl&amp;gt;(dt+dd)*3)+footer&amp;gt;p
&amp;lt;div&amp;gt; &amp;lt;dl&amp;gt; &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt; &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt; &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt; &amp;lt;/dl&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;footer&amp;gt; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;/footer&amp;gt; Повторение: * ul&amp;gt;li*5</description><turbo:content><![CDATA[
                    <header>
                        <h1>Emmet &mdash; Вёрстка на максималках</h1></header>
                    <div class='entry-content'>
                            <p>Большой набор сокращений emmet.
Пока черновик, позже доработаю для более удобной навигации.</p>
<h2 id="базовый-синтаксис-emmet-сокращений">Базовый синтаксис emmet сокращений</h2>
<h3 id="дочерний-элемент-">Дочерний элемент: &gt;</h3>
<p>nav&gt;ul&gt;li</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">nav</span>&gt;
  &lt;<span style="color:#ff79c6">ul</span>&gt;
    &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;/<span style="color:#ff79c6">ul</span>&gt;
&lt;/<span style="color:#ff79c6">nav</span>&gt;
</code></pre></div><h3 id="соседний-элемент-">Соседний элемент: +</h3>
<p>div+p+bq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">p</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
&lt;<span style="color:#ff79c6">blockquote</span>&gt;&lt;/<span style="color:#ff79c6">blockquote</span>&gt;
</code></pre></div><h3 id="выше-уровнем-">Выше уровнем: ^</h3>
<p>div+div&gt;p&gt;span+em^bq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">div</span>&gt;
  &lt;<span style="color:#ff79c6">p</span>&gt;&lt;<span style="color:#ff79c6">span</span>&gt;&lt;/<span style="color:#ff79c6">span</span>&gt;&lt;<span style="color:#ff79c6">em</span>&gt;&lt;/<span style="color:#ff79c6">em</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
  &lt;<span style="color:#ff79c6">blockquote</span>&gt;&lt;/<span style="color:#ff79c6">blockquote</span>&gt;
&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><p>div+div&gt;p&gt;span+em^^bq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">div</span>&gt;
  &lt;<span style="color:#ff79c6">p</span>&gt;&lt;<span style="color:#ff79c6">span</span>&gt;&lt;/<span style="color:#ff79c6">span</span>&gt;&lt;<span style="color:#ff79c6">em</span>&gt;&lt;/<span style="color:#ff79c6">em</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">blockquote</span>&gt;&lt;/<span style="color:#ff79c6">blockquote</span>&gt;
</code></pre></div><h3 id="группировка-">Группировка: ()</h3>
<p>div&gt;(header&gt;ul&gt;li*2&gt;a)+footer&gt;p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span>&gt;
  &lt;<span style="color:#ff79c6">header</span>&gt;
    &lt;<span style="color:#ff79c6">ul</span>&gt;
      &lt;<span style="color:#ff79c6">li</span>&gt;&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">a</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
      &lt;<span style="color:#ff79c6">li</span>&gt;&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">a</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
    &lt;/<span style="color:#ff79c6">ul</span>&gt;
  &lt;/<span style="color:#ff79c6">header</span>&gt;
  &lt;<span style="color:#ff79c6">footer</span>&gt;
    &lt;<span style="color:#ff79c6">p</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
  &lt;/<span style="color:#ff79c6">footer</span>&gt;
&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><p>(div&gt;dl&gt;(dt+dd)*3)+footer&gt;p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span>&gt;
  &lt;<span style="color:#ff79c6">dl</span>&gt;
    &lt;<span style="color:#ff79c6">dt</span>&gt;&lt;/<span style="color:#ff79c6">dt</span>&gt;
    &lt;<span style="color:#ff79c6">dd</span>&gt;&lt;/<span style="color:#ff79c6">dd</span>&gt;
    &lt;<span style="color:#ff79c6">dt</span>&gt;&lt;/<span style="color:#ff79c6">dt</span>&gt;
    &lt;<span style="color:#ff79c6">dd</span>&gt;&lt;/<span style="color:#ff79c6">dd</span>&gt;
    &lt;<span style="color:#ff79c6">dt</span>&gt;&lt;/<span style="color:#ff79c6">dt</span>&gt;
    &lt;<span style="color:#ff79c6">dd</span>&gt;&lt;/<span style="color:#ff79c6">dd</span>&gt;
  &lt;/<span style="color:#ff79c6">dl</span>&gt;
&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">footer</span>&gt;
  &lt;<span style="color:#ff79c6">p</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
&lt;/<span style="color:#ff79c6">footer</span>&gt;
</code></pre></div><h3 id="повторение-">Повторение: *</h3>
<p>ul&gt;li*5</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><h3 id="нумерация-">Нумерация: $</h3>
<p>ul&gt;li.item$*5</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item1&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item2&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item3&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item4&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item5&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><p>h$[title=item$]{Header $}*3</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">h1</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item1&#34;</span>&gt;Header 1&lt;/<span style="color:#ff79c6">h1</span>&gt;
&lt;<span style="color:#ff79c6">h2</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item2&#34;</span>&gt;Header 2&lt;/<span style="color:#ff79c6">h2</span>&gt;
&lt;<span style="color:#ff79c6">h3</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item3&#34;</span>&gt;Header 3&lt;/<span style="color:#ff79c6">h3</span>&gt;
</code></pre></div><p>ul&gt;li.item$$$*5</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item001&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item002&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item003&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item004&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item005&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><p>ul&gt;li.item$@-*5</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item5&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item4&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item3&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item2&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item1&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><p>ul&gt;li.item$@3*5</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item3&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item4&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item5&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item6&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;item7&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><h3 id="атрибуты-id-и-class">Атрибуты ID и CLASS</h3>
<p>#header</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;header&#34;</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><p>.title</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;title&#34;</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><p>form#search.wide</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">form</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;search&#34;</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;wide&#34;</span>&gt;&lt;/<span style="color:#ff79c6">form</span>&gt;
</code></pre></div><p>p.class1.class2.class3</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">p</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;class1 class2 class3&#34;</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
</code></pre></div><h3 id="пользовательские-атрибуты">Пользовательские атрибуты</h3>
<p>p[title=&quot;Hello world&rdquo;]</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">p</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Hello world&#34;</span>&gt;&lt;/<span style="color:#ff79c6">p</span>&gt;
</code></pre></div><p>td[rowspan=2 colspan=3 title]</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">td</span> <span style="color:#50fa7b">rowspan</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;2&#34;</span> <span style="color:#50fa7b">colspan</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;3&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">td</span>&gt;
</code></pre></div><p>[a='value1&rsquo; b=&quot;value2&rdquo;]</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">a</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;value1&#34;</span> <span style="color:#50fa7b">b</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;value2&#34;</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><h3 id="текстовое-содержимое-">Текстовое содержимое: {}</h3>
<p>a{Click me}</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;Click me&lt;/<span style="color:#ff79c6">a</span>&gt;
</code></pre></div><p>p&gt;{Click }+a{here}+{ to continue}</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">p</span>&gt;Click &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;here&lt;/<span style="color:#ff79c6">a</span>&gt; to continue&lt;/<span style="color:#ff79c6">p</span>&gt;
</code></pre></div><h3 id="пропуск-имён-тегов-ещё-быстрее">Пропуск имён тегов (ещё быстрее)</h3>
<p>.class</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;class&#34;</span>&gt;&lt;/<span style="color:#ff79c6">div</span>&gt;
</code></pre></div><p>em&gt;.class</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">em</span>&gt;&lt;<span style="color:#ff79c6">span</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;class&#34;</span>&gt;&lt;/<span style="color:#ff79c6">span</span>&gt;&lt;/<span style="color:#ff79c6">em</span>&gt;
</code></pre></div><p>ul&gt;.class</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;class&#34;</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><p>table&gt;.row&gt;.col</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">table</span>&gt;
  &lt;<span style="color:#ff79c6">tr</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;row&#34;</span>&gt;
    &lt;<span style="color:#ff79c6">td</span> <span style="color:#50fa7b">class</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;col&#34;</span>&gt;&lt;/<span style="color:#ff79c6">td</span>&gt;
  &lt;/<span style="color:#ff79c6">tr</span>&gt;
&lt;/<span style="color:#ff79c6">table</span>&gt;
</code></pre></div><h2 id="html">HTML</h2>
<p>Все неизвестные аббревиатуры будут преобразованы в теги, например <code>foo</code> → <code>&lt;foo&gt;&lt;/foo&gt;</code>.</p>
<p>!</p>
<p><em>Псевдоним <code>html:5</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">charset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">a</span>&gt;
</code></pre></div><p>a:link</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://&#34;</span>&gt;&lt;/<span style="color:#ff79c6">a</span>&gt;
</code></pre></div><p>a:mail</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;mailto:&#34;</span>&gt;&lt;/<span style="color:#ff79c6">a</span>&gt;
</code></pre></div><p>abbr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">abbr</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">abbr</span>&gt;
</code></pre></div><p>acronym, acr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">acronym</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">acronym</span>&gt;
</code></pre></div><p>base</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">base</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>basefont</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">basefont</span> /&gt;
</code></pre></div><p>br</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">br</span> /&gt;
</code></pre></div><p>frame</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">frame</span> /&gt;
</code></pre></div><p>hr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">hr</span> /&gt;
</code></pre></div><p>bdo</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">bdo</span> <span style="color:#50fa7b">dir</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">bdo</span>&gt;
</code></pre></div><p>bdo:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">bdo</span> <span style="color:#50fa7b">dir</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;rtl&#34;</span>&gt;&lt;/<span style="color:#ff79c6">bdo</span>&gt;
</code></pre></div><p>bdo:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">bdo</span> <span style="color:#50fa7b">dir</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;ltr&#34;</span>&gt;&lt;/<span style="color:#ff79c6">bdo</span>&gt;
</code></pre></div><p>col</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">col</span> /&gt;
</code></pre></div><p>link</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;stylesheet&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>link:css</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;stylesheet&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;style.css&#34;</span> /&gt;
</code></pre></div><p>link:print</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;stylesheet&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;print.css&#34;</span> <span style="color:#50fa7b">media</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;print&#34;</span> /&gt;
</code></pre></div><p>link:favicon</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;shortcut icon&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/x-icon&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;favicon.ico&#34;</span> /&gt;
</code></pre></div><p>link:touch</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;apple-touch-icon&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;favicon.png&#34;</span> /&gt;
</code></pre></div><p>link:rss</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;alternate&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;application/rss+xml&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;RSS&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;rss.xml&#34;</span> /&gt;
</code></pre></div><p>link:atom</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;alternate&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;application/atom+xml&#34;</span> <span style="color:#50fa7b">title</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Atom&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;atom.xml&#34;</span> /&gt;
</code></pre></div><p>link:import, link:im</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">link</span> <span style="color:#50fa7b">rel</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;import&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;component.html&#34;</span> /&gt;
</code></pre></div><p>meta</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">meta</span> /&gt;
</code></pre></div><p>meta:utf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
</code></pre></div><p>meta:win</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=windows-1251&#34;</span> /&gt;
</code></pre></div><p>meta:vp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;viewport&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0&#34;</span> /&gt;
</code></pre></div><p>meta:compat</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;X-UA-Compatible&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;IE=7&#34;</span> /&gt;
</code></pre></div><p>style</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">style</span>&gt;&lt;/<span style="color:#ff79c6">style</span>&gt;
</code></pre></div><p>script</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">script</span>&gt;&lt;/<span style="color:#ff79c6">script</span>&gt;
</code></pre></div><p>script:src</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">script</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">script</span>&gt;
</code></pre></div><p>img</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>img:srcset, img:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>img:sizes, img:z</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>picture</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">picture</span>&gt;&lt;/<span style="color:#ff79c6">picture</span>&gt;
</code></pre></div><p>source, src</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> /&gt;
</code></pre></div><p>source:src, src:sc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>source:srcset, src:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>source:media, src:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">media</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;(min-width: )&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>source:type, src:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/&#34;</span> /&gt;
</code></pre></div><p>source:sizes, src:z</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>source:media:type, src:mt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">media</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;(min-width: )&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/&#34;</span> /&gt;
</code></pre></div><p>source:media:sizes, src:mz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">media</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;(min-width: )&#34;</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>source:sizes:type, src:zt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/&#34;</span> /&gt;
</code></pre></div><p>iframe</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">iframe</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">frameborder</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;0&#34;</span>&gt;&lt;/<span style="color:#ff79c6">iframe</span>&gt;
</code></pre></div><p>embed</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">embed</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>object</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">object</span> <span style="color:#50fa7b">data</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">object</span>&gt;
</code></pre></div><p>param</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">param</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>map</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">map</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">map</span>&gt;
</code></pre></div><p>area</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">coords</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>area:d</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;default&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>area:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;circle&#34;</span> <span style="color:#50fa7b">coords</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>area:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;rect&#34;</span> <span style="color:#50fa7b">coords</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>area:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;poly&#34;</span> <span style="color:#50fa7b">coords</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>form</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">form</span> <span style="color:#50fa7b">action</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">form</span>&gt;
</code></pre></div><p>form:get</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">form</span> <span style="color:#50fa7b">action</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">method</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;get&#34;</span>&gt;&lt;/<span style="color:#ff79c6">form</span>&gt;
</code></pre></div><p>form:post</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">form</span> <span style="color:#50fa7b">action</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">method</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;post&#34;</span>&gt;&lt;/<span style="color:#ff79c6">form</span>&gt;
</code></pre></div><p>label</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">label</span> <span style="color:#50fa7b">for</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">label</span>&gt;
</code></pre></div><p>input</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text&#34;</span> /&gt;
</code></pre></div><p>inp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:hidden, input:h</p>
<p><em>Псевдоним <code>input\[type=hidden name\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;hidden&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:text, input:t</p>
<p><em>Псевдоним <code>inp</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:search</p>
<p><em>Псевдоним <code>inp\[type=search\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;search&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:email</p>
<p><em>Псевдоним <code>inp\[type=email\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;email&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:url</p>
<p><em>Псевдоним <code>inp\[type=url\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;url&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:password, input:p</p>
<p><em>Псевдоним <code>inp\[type=password\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;password&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:datetime</p>
<p><em>Псевдоним <code>inp\[type=datetime\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;datetime&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:date</p>
<p><em>Псевдоним <code>inp\[type=date\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;date&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:datetime-local</p>
<p><em>Псевдоним <code>inp\[type=datetime-local\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;datetime-local&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:month</p>
<p><em>Псевдоним <code>inp\[type=month\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;month&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:week</p>
<p><em>Псевдоним <code>inp\[type=week\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;week&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:time</p>
<p><em>Псевдоним <code>inp\[type=time\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;time&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:tel</p>
<p><em>Псевдоним <code>inp\[type=tel\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;tel&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:number</p>
<p><em>Псевдоним <code>inp\[type=number\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;number&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:color</p>
<p><em>Псевдоним <code>inp\[type=color\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;color&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:checkbox, input:c</p>
<p><em>Псевдоним <code>inp\[type=checkbox\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;checkbox&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:radio, input:r</p>
<p><em>Псевдоним <code>inp\[type=radio\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;radio&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:range</p>
<p><em>Псевдоним <code>inp\[type=range\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;range&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:file, input:f</p>
<p><em>Псевдоним <code>inp\[type=file\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;file&#34;</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:submit, input:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;submit&#34;</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:image, input:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image&#34;</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>input:button, input:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;button&#34;</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>isindex</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">isindex</span> /&gt;
</code></pre></div><p>input:reset</p>
<p><em>Псевдоним <code>input:button\[type=reset\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;reset&#34;</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>select</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">select</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">select</span>&gt;
</code></pre></div><p>select:disabled, select:d</p>
<p><em>Псевдоним <code>select\[disabled.\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">select</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">disabled</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;disabled&#34;</span>&gt;&lt;/<span style="color:#ff79c6">select</span>&gt;
</code></pre></div><p>option, opt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">option</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">option</span>&gt;
</code></pre></div><p>textarea</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">textarea</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">cols</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;30&#34;</span> <span style="color:#50fa7b">rows</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;10&#34;</span>&gt;&lt;/<span style="color:#ff79c6">textarea</span>&gt;
</code></pre></div><p>marquee</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">marquee</span> <span style="color:#50fa7b">behavior</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">direction</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">marquee</span>&gt;
</code></pre></div><p>menu:context, menu:c</p>
<p><em>Псевдоним <code>menu\[type=context\]&gt;</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">menu</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;context&#34;</span>&gt;&lt;/<span style="color:#ff79c6">menu</span>&gt;
</code></pre></div><p>menu:toolbar, menu:t</p>
<p><em>Псевдоним <code>menu\[type=toolbar\]&gt;</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">menu</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;toolbar&#34;</span>&gt;&lt;/<span style="color:#ff79c6">menu</span>&gt;
</code></pre></div><p>video</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">video</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">video</span>&gt;
</code></pre></div><p>audio</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">audio</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">audio</span>&gt;
</code></pre></div><p>html:xml</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">xmlns</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://www.w3.org/1999/xhtml&#34;</span>&gt;&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>keygen</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">keygen</span> /&gt;
</code></pre></div><p>command</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">command</span> /&gt;
</code></pre></div><p>button:submit, button:s, btn:s</p>
<p><em>Псевдоним <code>button\[type=submit\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">button</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;submit&#34;</span>&gt;&lt;/<span style="color:#ff79c6">button</span>&gt;
</code></pre></div><p>button:reset, button:r, btn:r</p>
<p><em>Псевдоним <code>button\[type=reset\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">button</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;reset&#34;</span>&gt;&lt;/<span style="color:#ff79c6">button</span>&gt;
</code></pre></div><p>button:disabled, button:d, btn:d</p>
<p><em>Псевдоним <code>button\[disabled.\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">button</span> <span style="color:#50fa7b">disabled</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;disabled&#34;</span>&gt;&lt;/<span style="color:#ff79c6">button</span>&gt;
</code></pre></div><p>fieldset:disabled, fieldset:d, fset:d, fst:d</p>
<p><em>Псевдоним <code>fieldset\[disabled.\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">fieldset</span> <span style="color:#50fa7b">disabled</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;disabled&#34;</span>&gt;&lt;/<span style="color:#ff79c6">fieldset</span>&gt;
</code></pre></div><p>bq</p>
<p><em>Псевдоним <code>blockquote</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">blockquote</span>&gt;&lt;/<span style="color:#ff79c6">blockquote</span>&gt;
</code></pre></div><p>fig</p>
<p><em>Псевдоним <code>figure</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">figure</span>&gt;&lt;/<span style="color:#ff79c6">figure</span>&gt;
</code></pre></div><p>figc</p>
<p><em>Псевдоним <code>figcaption</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">figcaption</span>&gt;&lt;/<span style="color:#ff79c6">figcaption</span>&gt;
</code></pre></div><p>pic</p>
<p><em>Псевдоним <code>picture</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">picture</span>&gt;&lt;/<span style="color:#ff79c6">picture</span>&gt;
</code></pre></div><p>ifr</p>
<p><em>Псевдоним <code>iframe</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">iframe</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">frameborder</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;0&#34;</span>&gt;&lt;/<span style="color:#ff79c6">iframe</span>&gt;
</code></pre></div><p>emb</p>
<p><em>Псевдоним <code>embed</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">embed</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>obj</p>
<p><em>Псевдоним <code>object</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">object</span> <span style="color:#50fa7b">data</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">object</span>&gt;
</code></pre></div><p>cap</p>
<p><em>Псевдоним <code>caption</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">caption</span>&gt;&lt;/<span style="color:#ff79c6">caption</span>&gt;
</code></pre></div><p>colg</p>
<p><em>Псевдоним <code>colgroup</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">colgroup</span>&gt;&lt;/<span style="color:#ff79c6">colgroup</span>&gt;
</code></pre></div><p>fst, fset</p>
<p><em>Псевдоним <code>fieldset</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">fieldset</span>&gt;&lt;/<span style="color:#ff79c6">fieldset</span>&gt;
</code></pre></div><p>btn</p>
<p><em>Псевдоним <code>button</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">button</span>&gt;&lt;/<span style="color:#ff79c6">button</span>&gt;
</code></pre></div><p>optg</p>
<p><em>Псевдоним <code>optgroup</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">optgroup</span>&gt;&lt;/<span style="color:#ff79c6">optgroup</span>&gt;
</code></pre></div><p>tarea</p>
<p><em>Псевдоним <code>textarea</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">textarea</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">cols</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;30&#34;</span> <span style="color:#50fa7b">rows</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;10&#34;</span>&gt;&lt;/<span style="color:#ff79c6">textarea</span>&gt;
</code></pre></div><p>leg</p>
<p><em>Псевдоним <code>legend</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">legend</span>&gt;&lt;/<span style="color:#ff79c6">legend</span>&gt;
</code></pre></div><p>sect</p>
<p><em>Псевдоним <code>section</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">section</span>&gt;&lt;/<span style="color:#ff79c6">section</span>&gt;
</code></pre></div><p>art</p>
<p><em>Псевдоним <code>article</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">article</span>&gt;&lt;/<span style="color:#ff79c6">article</span>&gt;
</code></pre></div><p>hdr</p>
<p><em>Псевдоним <code>header</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">header</span>&gt;&lt;/<span style="color:#ff79c6">header</span>&gt;
</code></pre></div><p>ftr</p>
<p><em>Псевдоним <code>footer</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">footer</span>&gt;&lt;/<span style="color:#ff79c6">footer</span>&gt;
</code></pre></div><p>adr</p>
<p><em>Псевдоним <code>address</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">address</span>&gt;&lt;/<span style="color:#ff79c6">address</span>&gt;
</code></pre></div><p>dlg</p>
<p><em>Псевдоним <code>dialog</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">dialog</span>&gt;&lt;/<span style="color:#ff79c6">dialog</span>&gt;
</code></pre></div><p>str</p>
<p><em>Псевдоним <code>strong</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">strong</span>&gt;&lt;/<span style="color:#ff79c6">strong</span>&gt;
</code></pre></div><p>prog</p>
<p><em>Псевдоним <code>progress</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">progress</span>&gt;&lt;/<span style="color:#ff79c6">progress</span>&gt;
</code></pre></div><p>mn</p>
<p><em>Псевдоним <code>main</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">main</span>&gt;&lt;/<span style="color:#ff79c6">main</span>&gt;
</code></pre></div><p>tem</p>
<p><em>Псевдоним <code>template</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">template</span>&gt;&lt;/<span style="color:#ff79c6">template</span>&gt;
</code></pre></div><p>datag</p>
<p><em>Псевдоним <code>datagrid</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">datagrid</span>&gt;&lt;/<span style="color:#ff79c6">datagrid</span>&gt;
</code></pre></div><p>datal</p>
<p><em>Псевдоним <code>datalist</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">datalist</span>&gt;&lt;/<span style="color:#ff79c6">datalist</span>&gt;
</code></pre></div><p>kg</p>
<p><em>Псевдоним <code>keygen</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">keygen</span> /&gt;
</code></pre></div><p>out</p>
<p><em>Псевдоним <code>output</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">output</span>&gt;&lt;/<span style="color:#ff79c6">output</span>&gt;
</code></pre></div><p>det</p>
<p><em>Псевдоним <code>details</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">details</span>&gt;&lt;/<span style="color:#ff79c6">details</span>&gt;
</code></pre></div><p>cmd</p>
<p><em>Псевдоним <code>command</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">command</span> /&gt;
</code></pre></div><p>doc</p>
<p><em>Псевдоним <code>html&gt;(head&gt;meta\[charset=${charset}\]+title{${1:Document}})+body</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">html</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">charset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>ri:dpr, ri:d</p>
<p><em>Псевдоним <code>img:s</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>ri:viewport, ri:v</p>
<p><em>Псевдоним <code>img:z</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">sizes</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>ri:art, ri:a</p>
<p><em>Псевдоним <code>pic&gt;src:m+img</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">picture</span>&gt;
  &lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">media</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;(min-width: )&#34;</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
  &lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
&lt;/<span style="color:#ff79c6">picture</span>&gt;
</code></pre></div><p>ri:type, ri:t</p>
<p><em>Псевдоним <code>pic&gt;src:t+img</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">picture</span>&gt;
  &lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;image/&#34;</span> /&gt;
  &lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
&lt;/<span style="color:#ff79c6">picture</span>&gt;
</code></pre></div><p>html:4t</p>
<p><em>Псевдоним <code>!!!4t+doc4\[lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34; &#34;http://www.w3.org/TR/html4/loose.dtd&#34;&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>html:4s</p>
<p><em>Псевдоним <code>!!!4s+doc4\[lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;http://www.w3.org/TR/html4/strict.dtd&#34;&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>html:xt</p>
<p><em>Псевдоним <code>!!!xt+doc4\[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">xmlns</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://www.w3.org/1999/xhtml&#34;</span> <span style="color:#50fa7b">xml:lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>html:xs</p>
<p><em>Псевдоним <code>!!!xs+doc4\[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">xmlns</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://www.w3.org/1999/xhtml&#34;</span> <span style="color:#50fa7b">xml:lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>html:xxs</p>
<p><em>Псевдоним <code>!!!xxs+doc4\[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.1//EN&#34; &#34;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&#34;&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">xmlns</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://www.w3.org/1999/xhtml&#34;</span> <span style="color:#50fa7b">xml:lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">http-equiv</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;Content-Type&#34;</span> <span style="color:#50fa7b">content</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;text/html; charset=UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>html:5</p>
<p><em>Псевдоним <code>!!!+doc\[lang=${lang}\]</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;en&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;
    &lt;<span style="color:#ff79c6">meta</span> <span style="color:#50fa7b">charset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;UTF-8&#34;</span> /&gt;
    &lt;<span style="color:#ff79c6">title</span>&gt;Document&lt;/<span style="color:#ff79c6">title</span>&gt;
  &lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>ol+</p>
<p><em>Псевдоним <code>ol&gt;li</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ol</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ol</span>&gt;
</code></pre></div><p>ul+</p>
<p><em>Псевдоним <code>ul&gt;li</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">ul</span>&gt;
  &lt;<span style="color:#ff79c6">li</span>&gt;&lt;/<span style="color:#ff79c6">li</span>&gt;
&lt;/<span style="color:#ff79c6">ul</span>&gt;
</code></pre></div><p>dl+</p>
<p><em>Псевдоним <code>dl&gt;dt+dd</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">dl</span>&gt;
  &lt;<span style="color:#ff79c6">dt</span>&gt;&lt;/<span style="color:#ff79c6">dt</span>&gt;
  &lt;<span style="color:#ff79c6">dd</span>&gt;&lt;/<span style="color:#ff79c6">dd</span>&gt;
&lt;/<span style="color:#ff79c6">dl</span>&gt;
</code></pre></div><p>map+</p>
<p><em>Псевдоним <code>map&gt;area</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">map</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">area</span> <span style="color:#50fa7b">shape</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">coords</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
&lt;/<span style="color:#ff79c6">map</span>&gt;
</code></pre></div><p>table+</p>
<p><em>Псевдоним <code>table&gt;tr&gt;td</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">table</span>&gt;
  &lt;<span style="color:#ff79c6">tr</span>&gt;
    &lt;<span style="color:#ff79c6">td</span>&gt;&lt;/<span style="color:#ff79c6">td</span>&gt;
  &lt;/<span style="color:#ff79c6">tr</span>&gt;
&lt;/<span style="color:#ff79c6">table</span>&gt;
</code></pre></div><p>colgroup+, colg+</p>
<p><em>Псевдоним <code>colgroup&gt;col</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">colgroup</span>&gt;
  &lt;<span style="color:#ff79c6">col</span> /&gt;
&lt;/<span style="color:#ff79c6">colgroup</span>&gt;
</code></pre></div><p>tr+</p>
<p><em>Псевдоним <code>tr&gt;td</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">tr</span>&gt;
  &lt;<span style="color:#ff79c6">td</span>&gt;&lt;/<span style="color:#ff79c6">td</span>&gt;
&lt;/<span style="color:#ff79c6">tr</span>&gt;
</code></pre></div><p>select+</p>
<p><em>Псевдоним <code>select&gt;option</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">select</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">option</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">option</span>&gt;
&lt;/<span style="color:#ff79c6">select</span>&gt;
</code></pre></div><p>optgroup+, optg+</p>
<p><em>Псевдоним <code>optgroup&gt;option</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">optgroup</span>&gt;
  &lt;<span style="color:#ff79c6">option</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">option</span>&gt;
&lt;/<span style="color:#ff79c6">optgroup</span>&gt;
</code></pre></div><p>pic+</p>
<p><em>Псевдоним <code>picture&gt;source:srcset+img</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">picture</span>&gt;
  &lt;<span style="color:#ff79c6">source</span> <span style="color:#50fa7b">srcset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
  &lt;<span style="color:#ff79c6">img</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">alt</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
&lt;/<span style="color:#ff79c6">picture</span>&gt;
</code></pre></div><p>!!!</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html&gt;</span>
</code></pre></div><p>!!!4t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34; &#34;http://www.w3.org/TR/html4/loose.dtd&#34;&gt;</span>
</code></pre></div><p>!!!4s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.01//EN&#34; &#34;http://www.w3.org/TR/html4/strict.dtd&#34;&gt;</span>
</code></pre></div><p>!!!xt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&gt;</span>
</code></pre></div><p>!!!xs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&gt;</span>
</code></pre></div><p>!!!xxs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.1//EN&#34; &#34;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&#34;&gt;</span>
</code></pre></div><p>c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#6272a4">&lt;!-- ${child} --&gt;</span>
</code></pre></div><p>cc:ie6</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#6272a4">&lt;!--\[if lte IE 6\]&gt; ${child} &lt;!\[endif\]--&gt;</span>
</code></pre></div><p>cc:ie</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#6272a4">&lt;!--\[if IE\]&gt; ${child} &lt;!\[endif\]--&gt;</span>
</code></pre></div><p>cc:noie</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#6272a4">&lt;!--\[if !IE\]&gt;&lt;!--&gt;</span> ${child} <span style="color:#6272a4">&lt;!--&lt;!\[endif\]--&gt;</span>
</code></pre></div><h2 id="css">CSS</h2>
<p>CSS модуль использует нечёткий (fuzzy) поиск для неизвестных сокращений, например: <code>ov:h</code> == <code>ov-h</code> == <code>ovh</code> == <code>oh</code>.</p>
<p>Если сокращение не найдено, оно трансформируется в название свойства: <code>foo-bar</code> → <code>foo-bar: |;</code></p>
<p>Также можете предварить сокращение дефисом для вендор-зависимых свойств: <code>-foo</code></p>
<h3 id="позиционирование-и-отображение">Позиционирование и отображение</h3>
<p>pos</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">position</span>:relative<span style="color:#ff79c6">;</span>
</code></pre></div><p>pos:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">position</span>:static<span style="color:#ff79c6">;</span>
</code></pre></div><p>pos:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">position</span>:absolute<span style="color:#ff79c6">;</span>
</code></pre></div><p>pos:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">position</span>:relative<span style="color:#ff79c6">;</span>
</code></pre></div><p>pos:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">position</span>:fixed<span style="color:#ff79c6">;</span>
</code></pre></div><p>t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">top</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>t:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">top</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">right</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>r:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">right</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">bottom</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>b:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">bottom</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">left</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>l:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">left</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>z</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">z-index</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>z:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">z-index</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>fl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">float</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>fl:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">float</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>fl:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">float</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>fl:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">float</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>cl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clear</span>:both<span style="color:#ff79c6">;</span>
</code></pre></div><p>cl:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clear</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>cl:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clear</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>cl:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clear</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>cl:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clear</span>:both<span style="color:#ff79c6">;</span>
</code></pre></div><p>d</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:block<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:block<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:flex<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:if</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:inline-flex<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:inline<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:ib</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:inline-block<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:li</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:list-item<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:ri</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:run-in<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:cp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:compact<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:itb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:inline-table<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbcp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-caption<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbcl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-column<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbclg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-column-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbhg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-header-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbfg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-footer-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-row<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbrg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-row-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:tbc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:table-cell<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:rb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:ruby<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:rbb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:ruby-base<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:rbbg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:ruby-base-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:rbt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:ruby-text<span style="color:#ff79c6">;</span>
</code></pre></div><p>d:rbtg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span>:ruby-text-group<span style="color:#ff79c6">;</span>
</code></pre></div><p>v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">visibility</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>v:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">visibility</span>:visible<span style="color:#ff79c6">;</span>
</code></pre></div><p>v:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">visibility</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>v:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">visibility</span>:collapse<span style="color:#ff79c6">;</span>
</code></pre></div><p>ov</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ov:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow</span>:visible<span style="color:#ff79c6">;</span>
</code></pre></div><p>ov:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ov:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow</span>:scroll<span style="color:#ff79c6">;</span>
</code></pre></div><p>ov:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-x</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovx:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-x</span>:visible<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovx:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-x</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovx:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-x</span>:scroll<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovx:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-x</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovy</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-y</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovy:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-y</span>:visible<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovy:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-y</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovy:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-y</span>:scroll<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovy:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-y</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:scrollbar<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:scrollbar<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:panner<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:move<span style="color:#ff79c6">;</span>
</code></pre></div><p>ovs:mq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">overflow-style</span>:marquee<span style="color:#ff79c6">;</span>
</code></pre></div><p>zoo, zm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">zoom</span>:1<span style="color:#ff79c6">;</span>
</code></pre></div><p>cp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clip</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>cp:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clip</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>cp:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">clip</span>:rect<span style="color:#ff79c6">(</span><span style="color:#ff79c6">top</span> <span style="color:#ff79c6">right</span> <span style="color:#ff79c6">bottom</span> <span style="color:#ff79c6">left</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>rsz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">resize</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>rsz:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">resize</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>rsz:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">resize</span>:both<span style="color:#ff79c6">;</span>
</code></pre></div><p>rsz:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">resize</span>:horizontal<span style="color:#ff79c6">;</span>
</code></pre></div><p>rsz:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">resize</span>:vertical<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span><span style="color:#ff79c6">:$</span>{pointer}<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:d</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:default<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:crosshair<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:ha</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:hand<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:he</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:help<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:move<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:pointer<span style="color:#ff79c6">;</span>
</code></pre></div><p>cur:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">cursor</span>:text<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="margin-и-padding">Margin и Padding</h3>
<p>m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>m:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>mt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-top</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>mt:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-top</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>mr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-right</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>mr:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-right</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>mb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-bottom</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>mb:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-bottom</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>ml</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-left</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ml:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">margin-left</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">padding</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">padding-top</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">padding-right</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">padding-bottom</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">padding-left</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="box-sizing">Box Sizing</h3>
<p>bxz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-sizing</span>:border-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bxz:cb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-sizing</span>:content-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bxz:bb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-sizing</span>:border-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bxsh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-shadow</span>:inset <span style="color:#ff79c6">hoff</span> <span style="color:#ff79c6">voff</span> <span style="color:#ff79c6">blur</span> <span style="color:#ff79c6">color</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>bxsh:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-shadow</span>:inset <span style="color:#ff79c6">hoff</span> <span style="color:#ff79c6">voff</span> <span style="color:#ff79c6">blur</span> <span style="color:#ff79c6">spread</span> <span style="color:#ff79c6">rgb</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>bxsh:ra</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-shadow</span>:inset <span style="color:#ff79c6">h</span> <span style="color:#ff79c6">v</span> <span style="color:#ff79c6">blur</span> <span style="color:#ff79c6">spread</span> <span style="color:#ff79c6">rgba</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> .<span style="color:#50fa7b">5</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>bxsh:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">box-shadow</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>w</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>w:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">width</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">height</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>h:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">height</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>maw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">max-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>maw:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">max-width</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>mah</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">max-height</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>mah:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">max-height</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>miw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">min-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>mih</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">min-height</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="шрифт">Шрифт</h3>
<p>f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>f+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font</span>:1em <span style="color:#ff79c6">Arial</span><span style="color:#ff79c6">,</span><span style="color:#ff79c6">sans-serif</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>fw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-weight</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fw:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-weight</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>fw:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-weight</span>:bold<span style="color:#ff79c6">;</span>
</code></pre></div><p>fw:br</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-weight</span>:bolder<span style="color:#ff79c6">;</span>
</code></pre></div><p>fw:lr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-weight</span>:lighter<span style="color:#ff79c6">;</span>
</code></pre></div><p>fs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-style</span><span style="color:#ff79c6">:$</span>{italic}<span style="color:#ff79c6">;</span>
</code></pre></div><p>fs:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-style</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>fs:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-style</span>:italic<span style="color:#ff79c6">;</span>
</code></pre></div><p>fs:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-style</span>:oblique<span style="color:#ff79c6">;</span>
</code></pre></div><p>fv</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-variant</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fv:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-variant</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>fv:sc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-variant</span>:small-caps<span style="color:#ff79c6">;</span>
</code></pre></div><p>fz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-size</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fza</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-size-adjust</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fza:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-size-adjust</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ff:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span>:serif<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:ss</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span>:sans-serif<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span>:cursive<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span>:fantasy<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span>:monospace<span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">Arial</span><span style="color:#ff79c6">,</span> <span style="color:#f1fa8c">&#34;Helvetica Neue&#34;</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">Helvetica</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">sans-serif</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:</span> <span style="color:#f1fa8c">&#34;Times New Roman&#34;</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">Times</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">Baskerville</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">Georgia</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">serif</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>ff:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">Verdana</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">Geneva</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">sans-serif</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>fef</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-effect</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fef:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-effect</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>fef:eg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-effect</span>:engrave<span style="color:#ff79c6">;</span>
</code></pre></div><p>fef:eb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-effect</span>:emboss<span style="color:#ff79c6">;</span>
</code></pre></div><p>fef:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-effect</span>:outline<span style="color:#ff79c6">;</span>
</code></pre></div><p>fem</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>femp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-position</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>femp:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-position</span>:before<span style="color:#ff79c6">;</span>
</code></pre></div><p>femp:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-position</span>:after<span style="color:#ff79c6">;</span>
</code></pre></div><p>fems</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fems:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>fems:ac</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span>:accent<span style="color:#ff79c6">;</span>
</code></pre></div><p>fems:dt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span>:dot<span style="color:#ff79c6">;</span>
</code></pre></div><p>fems:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span>:circle<span style="color:#ff79c6">;</span>
</code></pre></div><p>fems:ds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-emphasize-style</span>:disc<span style="color:#ff79c6">;</span>
</code></pre></div><p>fsm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-smooth</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fsm:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-smooth</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>fsm:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-smooth</span>:never<span style="color:#ff79c6">;</span>
</code></pre></div><p>fsm:aw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-smooth</span>:always<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fst:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:uc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:ultra-condensed<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:ec</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:extra-condensed<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:condensed<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:sc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:semi-condensed<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:se</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:semi-expanded<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:e</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:expanded<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:ee</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:extra-expanded<span style="color:#ff79c6">;</span>
</code></pre></div><p>fst:ue</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">font-stretch</span>:ultra-expanded<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="текст">Текст</h3>
<p>va</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:top<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:sup</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:super<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:top<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:tt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:text-top<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:middle<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:bl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:baseline<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:bottom<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:tb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:text-bottom<span style="color:#ff79c6">;</span>
</code></pre></div><p>va:sub</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">vertical-align</span>:sub<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta:j</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align</span>:justify<span style="color:#ff79c6">;</span>
</code></pre></div><p>ta-lst</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align-last</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>tal:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align-last</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>tal:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align-last</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>tal:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align-last</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>tal:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-align-last</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>td</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-decoration</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>td:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-decoration</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>td:u</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-decoration</span>:underline<span style="color:#ff79c6">;</span>
</code></pre></div><p>td:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-decoration</span>:overline<span style="color:#ff79c6">;</span>
</code></pre></div><p>td:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-decoration</span>:line-through<span style="color:#ff79c6">;</span>
</code></pre></div><p>te</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>te:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:ac</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:accent<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:dt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:dot<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:circle<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:ds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:disc<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:before<span style="color:#ff79c6">;</span>
</code></pre></div><p>te:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-emphasis</span>:after<span style="color:#ff79c6">;</span>
</code></pre></div><p>th</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-height</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>th:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-height</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>th:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-height</span>:font-size<span style="color:#ff79c6">;</span>
</code></pre></div><p>th:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-height</span>:text-size<span style="color:#ff79c6">;</span>
</code></pre></div><p>th:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-height</span>:max-size<span style="color:#ff79c6">;</span>
</code></pre></div><p>ti</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-indent</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ti:-</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-indent</span>:-9999px<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>tj:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:iw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:inter-word<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:ii</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:inter-ideograph<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:ic</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:inter-cluster<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:d</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:distribute<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:k</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:kashida<span style="color:#ff79c6">;</span>
</code></pre></div><p>tj:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-justify</span>:tibetan<span style="color:#ff79c6">;</span>
</code></pre></div><p>to</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-outline</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>to+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-outline</span>:0 <span style="color:#ff79c6">0</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>to:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-outline</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>tr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-replace</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>tr:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-replace</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>tt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-transform</span>:uppercase<span style="color:#ff79c6">;</span>
</code></pre></div><p>tt:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-transform</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>tt:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-transform</span>:capitalize<span style="color:#ff79c6">;</span>
</code></pre></div><p>tt:u</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-transform</span>:uppercase<span style="color:#ff79c6">;</span>
</code></pre></div><p>tt:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-transform</span>:lowercase<span style="color:#ff79c6">;</span>
</code></pre></div><p>tw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-wrap</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>tw:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-wrap</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>tw:no</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-wrap</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>tw:u</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-wrap</span>:unrestricted<span style="color:#ff79c6">;</span>
</code></pre></div><p>tw:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-wrap</span>:suppress<span style="color:#ff79c6">;</span>
</code></pre></div><p>tsh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-shadow</span>:hoff <span style="color:#ff79c6">voff</span> <span style="color:#ff79c6">blur</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>tsh:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-shadow</span>:h <span style="color:#ff79c6">v</span> <span style="color:#ff79c6">blur</span> <span style="color:#ff79c6">rgb</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>tsh:ra</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-shadow</span>:h <span style="color:#ff79c6">v</span> <span style="color:#ff79c6">blur</span> <span style="color:#ff79c6">rgba</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> .<span style="color:#50fa7b">5</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>tsh+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-shadow</span>:0 <span style="color:#ff79c6">0</span> <span style="color:#ff79c6">0</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>tsh:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-shadow</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>lh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">line-height</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>lts</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">letter-spacing</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>lts-n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">letter-spacing</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>whs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>whs:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>whs:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span>:pre<span style="color:#ff79c6">;</span>
</code></pre></div><p>whs:nw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span>:nowrap<span style="color:#ff79c6">;</span>
</code></pre></div><p>whs:pw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span>:pre-wrap<span style="color:#ff79c6">;</span>
</code></pre></div><p>whs:pl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space</span>:pre-line<span style="color:#ff79c6">;</span>
</code></pre></div><p>whsc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>whsc:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>whsc:k</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span>:keep-all<span style="color:#ff79c6">;</span>
</code></pre></div><p>whsc:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span>:loose<span style="color:#ff79c6">;</span>
</code></pre></div><p>whsc:bs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span>:break-strict<span style="color:#ff79c6">;</span>
</code></pre></div><p>whsc:ba</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">white-space-collapse</span>:break-all<span style="color:#ff79c6">;</span>
</code></pre></div><p>wob</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-break</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>wob:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-break</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>wob:k</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-break</span>:keep-all<span style="color:#ff79c6">;</span>
</code></pre></div><p>wob:ba</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-break</span>:break-all<span style="color:#ff79c6">;</span>
</code></pre></div><p>wos</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-spacing</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>wow</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>wow:nm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>wow:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>wow:u</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span>:unrestricted<span style="color:#ff79c6">;</span>
</code></pre></div><p>wow:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span>:suppress<span style="color:#ff79c6">;</span>
</code></pre></div><p>wow:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">word-wrap</span>:break-word<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="фон-background">Фон (background)</h3>
<p>bg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bg+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background</span><span style="color:#ff79c6">:</span>#fff <span style="color:#ff79c6">url</span><span style="color:#ff79c6">()</span> <span style="color:#ff79c6">0</span> <span style="color:#ff79c6">0</span> <span style="color:#ff79c6">no-repeat</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>bg:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-color</span><span style="color:#ff79c6">:</span>#fff<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bgi:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgr:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span>:no-repeat<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgr:x</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span>:repeat-x<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgr:y</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span>:repeat-y<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgr:sp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span>:space<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgr:rd</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-repeat</span>:round<span style="color:#ff79c6">;</span>
</code></pre></div><p>bga</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-attachment</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bga:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-attachment</span>:fixed<span style="color:#ff79c6">;</span>
</code></pre></div><p>bga:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-attachment</span>:scroll<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-position</span>:0 <span style="color:#ff79c6">0</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>bgpx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-position-x</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgpy</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-position-y</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgbk</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-break</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgbk:bb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-break</span>:bounding-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgbk:eb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-break</span>:each-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgbk:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-break</span>:continuous<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgcp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-clip</span>:padding-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgcp:bb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-clip</span>:border-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgcp:pb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-clip</span>:padding-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgcp:cb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-clip</span>:content-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgcp:nc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-clip</span>:no-clip<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgo</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-origin</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgo:pb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-origin</span>:padding-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgo:bb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-origin</span>:border-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgo:cb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-origin</span>:content-box<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgsz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-size</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bgsz:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-size</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgsz:ct</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-size</span>:contain<span style="color:#ff79c6">;</span>
</code></pre></div><p>bgsz:cv</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">background-size</span>:cover<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="цвет">Цвет</h3>
<p>c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>c:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">color</span>:rgb<span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>c:ra</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">color</span>:rgba<span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span><span style="color:#ff79c6">,</span> .<span style="color:#50fa7b">5</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>op</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">opacity</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="контент-content">Контент (content)</h3>
<p>cnt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span><span style="color:#ff79c6">:</span><span style="color:#f1fa8c">&#39;&#39;</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:n, ct:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:oq, ct:oq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:open-quote<span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:noq, ct:noq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:no-open-quote<span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:cq, ct:cq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:close-quote<span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:ncq, ct:ncq</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:no-close-quote<span style="color:#ff79c6">;</span>
</code></pre></div><p>cnt:a, ct:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:attr<span style="color:#ff79c6">();</span>
</code></pre></div><p>cnt:c, ct:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:counter<span style="color:#ff79c6">();</span>
</code></pre></div><p>cnt:cs, ct:cs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span>:counters<span style="color:#ff79c6">();</span>
</code></pre></div><p>ct</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">content</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>q</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">quotes</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>q:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">quotes</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>q:ru</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">quotes</span><span style="color:#ff79c6">:</span><span style="color:#f1fa8c">&#39;\\00AB&#39;</span> <span style="color:#f1fa8c">&#39;\\00BB&#39;</span> <span style="color:#f1fa8c">&#39;\\201E&#39;</span> <span style="color:#f1fa8c">&#39;\\201C&#39;</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>q:en</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">quotes</span><span style="color:#ff79c6">:</span><span style="color:#f1fa8c">&#39;\\201C&#39;</span> <span style="color:#f1fa8c">&#39;\\201D&#39;</span> <span style="color:#f1fa8c">&#39;\\2018&#39;</span> <span style="color:#f1fa8c">&#39;\\2019&#39;</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>coi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">counter-increment</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>cor</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">counter-reset</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="окантовка-outline">Окантовка (outline)</h3>
<p>ol</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ol:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>olo</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-offset</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>olw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>olw:tn</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-width</span>:thin<span style="color:#ff79c6">;</span>
</code></pre></div><p>olw:m</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-width</span>:medium<span style="color:#ff79c6">;</span>
</code></pre></div><p>olw:tc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-width</span>:thick<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ols:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:dt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:dotted<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:ds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:dashed<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:solid<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:db</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:double<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:g</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:groove<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:ridge<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:inset<span style="color:#ff79c6">;</span>
</code></pre></div><p>ols:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-style</span>:outset<span style="color:#ff79c6">;</span>
</code></pre></div><p>olc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>olc:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">outline-color</span>:invert<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="таблицы">Таблицы</h3>
<p>tbl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">table-layout</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>tbl:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">table-layout</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>tbl:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">table-layout</span>:fixed<span style="color:#ff79c6">;</span>
</code></pre></div><p>cps</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">caption-side</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>cps:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">caption-side</span>:top<span style="color:#ff79c6">;</span>
</code></pre></div><p>cps:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">caption-side</span>:bottom<span style="color:#ff79c6">;</span>
</code></pre></div><p>ec</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">empty-cells</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ec:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">empty-cells</span>:show<span style="color:#ff79c6">;</span>
</code></pre></div><p>ec:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">empty-cells</span>:hide<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="границы-border">Границы (border)</h3>
<p>bd</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bd+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border</span>:1px <span style="color:#ff79c6">solid</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bd:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbk</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-break</span>:close<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbk:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-break</span>:close<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdcl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-collapse</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdcl:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-collapse</span>:collapse<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdcl:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-collapse</span>:separate<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdi:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdti</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdti:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdri</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdri:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdbi:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdli</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdli:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdci</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-corner-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdci:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-corner-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdci:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-corner-image</span>:continue<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtli</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-left-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdtli:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-left-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtli:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-left-image</span>:continue<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtri</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-right-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdtri:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-right-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtri:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-right-image</span>:continue<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbri</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-right-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdbri:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-right-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbri:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-right-image</span>:continue<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbli</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-left-image</span>:url<span style="color:#ff79c6">();</span>
</code></pre></div><p>bdbli:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-left-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbli:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-left-image</span>:continue<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:repeat<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:clip<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:repeat<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:sc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:scale<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:st</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:stretch<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:ow</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:overwrite<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:of</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:overflow<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdf:sp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-fit</span>:space<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdlen</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-length</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdlen:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-length</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdsp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-spacing</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bds:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:dt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:dotted<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:ds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:dashed<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:solid<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:db</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:double<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:dtds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:dot-dash<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:dtdtds</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:dot-dot-dash<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:w</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:wave<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:g</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:groove<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:ridge<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:inset<span style="color:#ff79c6">;</span>
</code></pre></div><p>bds:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-style</span>:outset<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdt, bt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdt+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top</span>:1px <span style="color:#ff79c6">solid</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdt:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdts</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdts:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdtc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdr, br</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdr+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right</span>:1px <span style="color:#ff79c6">solid</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdr:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdrw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdrst</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdrst:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdrc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdrc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-right-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdb, bb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdb+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom</span>:1px <span style="color:#ff79c6">solid</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdb:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdbs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdbs:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdbc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdl, bl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdl+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left</span>:1px <span style="color:#ff79c6">solid</span> #000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdl:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdlw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdls</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdls:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdlc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-color</span><span style="color:#ff79c6">:</span>#000<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdlc:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-left-color</span>:transparent<span style="color:#ff79c6">;</span>
</code></pre></div><p>bdrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-radius</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdtrrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-right-radius</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdtlrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-top-left-radius</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdbrrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-right-radius</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bdblrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">border-bottom-left-radius</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="списки">Списки</h3>
<p>lis</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>lis:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>lisp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-position</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>lisp:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-position</span>:inside<span style="color:#ff79c6">;</span>
</code></pre></div><p>lisp:o</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-position</span>:outside<span style="color:#ff79c6">;</span>
</code></pre></div><p>list</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>list:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:d</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:disc<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:circle<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:square<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:dc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:decimal<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:dclz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:decimal-leading-zero<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:lr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:lower-roman<span style="color:#ff79c6">;</span>
</code></pre></div><p>list:ur</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-type</span>:upper-roman<span style="color:#ff79c6">;</span>
</code></pre></div><p>lisi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-image</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>lisi:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">list-style-image</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><h3 id="типографика">Типографика</h3>
<p>pgbb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-before</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pgbb:au</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-before</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgbb:al</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-before</span>:always<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgbb:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-before</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgbb:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-before</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgbi</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-inside</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pgbi:au</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-inside</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgbi:av</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-inside</span>:avoid<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgba</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-after</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>pgba:au</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-after</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgba:al</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-after</span>:always<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgba:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-after</span>:left<span style="color:#ff79c6">;</span>
</code></pre></div><p>pgba:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">page-break-after</span>:right<span style="color:#ff79c6">;</span>
</code></pre></div><p>orp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">orphans</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>wid</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">widows</span><span style="color:#ff79c6">:;</span>
</code></pre></div><h3 id="другое">Другое</h3>
<p>!</p>
<p>!important</p>
<p>@f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">@<span style="color:#ff79c6">font-face</span> { <span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:;</span>
``` <span style="color:#ff79c6">src</span>:url<span style="color:#ff79c6">(|);</span> }

@<span style="color:#ff79c6">f</span><span style="color:#ff79c6">+</span>

```<span style="color:#ff79c6">css</span>
@<span style="color:#ff79c6">font-face</span> { <span style="color:#ff79c6">font-family</span><span style="color:#ff79c6">:</span> <span style="color:#f1fa8c">&#39;FontName&#39;</span><span style="color:#ff79c6">;</span>
``` <span style="color:#ff79c6">src</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;FileName.eot&#39;</span><span style="color:#ff79c6">);</span> <span style="color:#ff79c6">src</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;FileName.eot?#iefix&#39;</span><span style="color:#ff79c6">)</span> <span style="color:#ff79c6">format</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;embedded-opentype&#39;</span><span style="color:#ff79c6">),</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;FileName.woff&#39;</span><span style="color:#ff79c6">)</span> <span style="color:#ff79c6">format</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;woff&#39;</span><span style="color:#ff79c6">),</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;FileName.ttf&#39;</span><span style="color:#ff79c6">)</span> <span style="color:#ff79c6">format</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;truetype&#39;</span><span style="color:#ff79c6">),</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;FileName.svg#FontName&#39;</span><span style="color:#ff79c6">)</span> <span style="color:#ff79c6">format</span><span style="color:#ff79c6">(</span><span style="color:#f1fa8c">&#39;svg&#39;</span><span style="color:#ff79c6">);</span> <span style="color:#ff79c6">font-style</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">normal</span><span style="color:#ff79c6">;</span> <span style="color:#ff79c6">font-weight</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">normal</span><span style="color:#ff79c6">;</span> }

@<span style="color:#ff79c6">i</span><span style="color:#ff79c6">,</span> @<span style="color:#ff79c6">import</span>

```<span style="color:#ff79c6">css</span>
@<span style="color:#ff79c6">import</span> <span style="color:#ff79c6">url</span><span style="color:#ff79c6">()</span>;
</code></pre></div><p>@kf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">@<span style="color:#ff79c6">-webkit-keyframes</span> <span style="color:#ff79c6">identifier</span> { <span style="color:#ff79c6">from</span> { } <span style="color:#ff79c6">to</span> { } } @<span style="color:#ff79c6">-o-keyframes</span> <span style="color:#ff79c6">identifier</span> { <span style="color:#ff79c6">from</span> { } <span style="color:#ff79c6">to</span> { } } @<span style="color:#ff79c6">-moz-keyframes</span> <span style="color:#ff79c6">identifier</span> { <span style="color:#ff79c6">from</span> { } <span style="color:#ff79c6">to</span> { } } @<span style="color:#ff79c6">keyframes</span> <span style="color:#ff79c6">identifier</span> { <span style="color:#ff79c6">from</span> { } <span style="color:#ff79c6">to</span> { } }
</code></pre></div><p>@m, @media</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">@<span style="color:#ff79c6">media</span> <span style="color:#ff79c6">screen</span> { }
</code></pre></div><p>ac</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ac:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>ac:fe</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:flex-end<span style="color:#ff79c6">;</span>
</code></pre></div><p>ac:fs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:flex-start<span style="color:#ff79c6">;</span>
</code></pre></div><p>ac:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:stretch<span style="color:#ff79c6">;</span>
</code></pre></div><p>ac:sa</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:space-around<span style="color:#ff79c6">;</span>
</code></pre></div><p>ac:sb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-content</span>:space-between<span style="color:#ff79c6">;</span>
</code></pre></div><p>ai</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ai:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span>:baseline<span style="color:#ff79c6">;</span>
</code></pre></div><p>ai:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>ai:fe</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span>:flex-end<span style="color:#ff79c6">;</span>
</code></pre></div><p>ai:fs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span>:flex-start<span style="color:#ff79c6">;</span>
</code></pre></div><p>ai:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-items</span>:stretch<span style="color:#ff79c6">;</span>
</code></pre></div><p>anim</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>anim-</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation</span>:name <span style="color:#ff79c6">duration</span> <span style="color:#ff79c6">timing-function</span> <span style="color:#ff79c6">delay</span> <span style="color:#ff79c6">iteration-count</span> <span style="color:#ff79c6">direction</span> <span style="color:#ff79c6">fill-mode</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>animdel</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-delay</span>:time<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdir</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-direction</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdir:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-direction</span>:alternate<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdir:ar</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-direction</span>:alternate-reverse<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdir:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-direction</span>:normal<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdir:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-direction</span>:reverse<span style="color:#ff79c6">;</span>
</code></pre></div><p>animdur</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-duration</span>:0s<span style="color:#ff79c6">;</span>
</code></pre></div><p>animfm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-fill-mode</span>:both<span style="color:#ff79c6">;</span>
</code></pre></div><p>animfm:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-fill-mode</span>:backwards<span style="color:#ff79c6">;</span>
</code></pre></div><p>animfm:bt, animfm:bh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-fill-mode</span>:both<span style="color:#ff79c6">;</span>
</code></pre></div><p>animfm:f</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-fill-mode</span>:forwards<span style="color:#ff79c6">;</span>
</code></pre></div><p>animic</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-iteration-count</span>:1<span style="color:#ff79c6">;</span>
</code></pre></div><p>animic:i</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-iteration-count</span>:infinite<span style="color:#ff79c6">;</span>
</code></pre></div><p>animn</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-name</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>animps</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-play-state</span>:running<span style="color:#ff79c6">;</span>
</code></pre></div><p>animps:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-play-state</span>:paused<span style="color:#ff79c6">;</span>
</code></pre></div><p>animps:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-play-state</span>:running<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:linear<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf:cb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:cubic-bezier<span style="color:#ff79c6">(</span><span style="color:#ff79c6">0</span>.<span style="color:#50fa7b">1</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span>.<span style="color:#50fa7b">7</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">1</span>.<span style="color:#50fa7b">0</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">0</span>.<span style="color:#50fa7b">1</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>animtf:e</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:ease<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf:ei</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:ease-in<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf:eio</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:ease-in-out<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf:eo</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:ease-out<span style="color:#ff79c6">;</span>
</code></pre></div><p>animtf:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">animation-timing-function</span>:linear<span style="color:#ff79c6">;</span>
</code></pre></div><p>ap</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">appearance</span><span style="color:#ff79c6">:$</span>{none}<span style="color:#ff79c6">;</span>
</code></pre></div><p>as</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>as:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:auto<span style="color:#ff79c6">;</span>
</code></pre></div><p>as:b</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:baseline<span style="color:#ff79c6">;</span>
</code></pre></div><p>as:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>as:fe</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:flex-end<span style="color:#ff79c6">;</span>
</code></pre></div><p>as:fs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:flex-start<span style="color:#ff79c6">;</span>
</code></pre></div><p>as:s</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">align-self</span>:stretch<span style="color:#ff79c6">;</span>
</code></pre></div><p>bfv</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">backface-visibility</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>bfv:h</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">backface-visibility</span>:hidden<span style="color:#ff79c6">;</span>
</code></pre></div><p>bfv:v</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">backface-visibility</span>:visible<span style="color:#ff79c6">;</span>
</code></pre></div><p>bg:ie</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">filter</span>:progid:DXImageTransform.<span style="color:#50fa7b">Microsoft</span>.<span style="color:#50fa7b">AlphaImageLoader</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#39;x.png&#39;</span><span style="color:#ff79c6">,</span><span style="color:#ff79c6">sizingMethod</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#39;crop&#39;</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>cm</p>
<p>/* ${child} */</p>
<p>colm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">columns</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-count</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-fill</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-gap</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-rule</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmrc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-rule-color</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-rule-style</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmrw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-rule-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colms</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-span</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>colmw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">column-width</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>d:ib+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">display</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">inline-block</span><span style="color:#ff79c6">;</span>
``` \<span style="color:#ff79c6">*</span><span style="color:#ff79c6">display</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">inline</span><span style="color:#ff79c6">;</span> \<span style="color:#ff79c6">*</span><span style="color:#ff79c6">zoom</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">1</span><span style="color:#ff79c6">;</span>

<span style="color:#ff79c6">fx</span>

```<span style="color:#ff79c6">css</span>
<span style="color:#ff79c6">flex</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-basis</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxd</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-direction</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxd:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-direction</span>:column<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxd:cr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-direction</span>:column-reverse<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxd:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-direction</span>:row<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxd:rr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-direction</span>:row-reverse<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-flow</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-grow</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxsh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-shrink</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>fxw</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-wrap</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">;</span>
</code></pre></div><p>fxw:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-wrap</span>:nowrap<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxw:w</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-wrap</span>:wrap<span style="color:#ff79c6">;</span>
</code></pre></div><p>fxw:wr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">flex-wrap</span>:wrap-reverse<span style="color:#ff79c6">;</span>
</code></pre></div><p>jc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>jc:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span>:center<span style="color:#ff79c6">;</span>
</code></pre></div><p>jc:fe</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span>:flex-end<span style="color:#ff79c6">;</span>
</code></pre></div><p>jc:fs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span>:flex-start<span style="color:#ff79c6">;</span>
</code></pre></div><p>jc:sa</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span>:space-around<span style="color:#ff79c6">;</span>
</code></pre></div><p>jc:sb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">justify-content</span>:space-between<span style="color:#ff79c6">;</span>
</code></pre></div><p>mar</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">max-resolution</span>:res<span style="color:#ff79c6">;</span>
</code></pre></div><p>mir</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">min-resolution</span>:res<span style="color:#ff79c6">;</span>
</code></pre></div><p>op+</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">opacity</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">;</span>
``` <span style="color:#ff79c6">filter</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">alpha</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">opacity</span><span style="color:#ff79c6">=);</span>

<span style="color:#ff79c6">op</span>:ie

```<span style="color:#ff79c6">css</span>
<span style="color:#ff79c6">filter</span>:progid:DXImageTransform.<span style="color:#50fa7b">Microsoft</span>.<span style="color:#50fa7b">Alpha</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">Opacity</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">100</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>op:ms</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">\<span style="color:#ff79c6">-ms-filter</span><span style="color:#ff79c6">:</span><span style="color:#f1fa8c">&#39;progid:DXImageTransform.Microsoft.Alpha(Opacity=100)&#39;</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>ord</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">order</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ori</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">orientation</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>ori:l</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">orientation</span>:landscape<span style="color:#ff79c6">;</span>
</code></pre></div><p>ori:p</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">orientation</span>:portrait<span style="color:#ff79c6">;</span>
</code></pre></div><p>tov</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-overflow</span><span style="color:#ff79c6">:$</span>{ellipsis}<span style="color:#ff79c6">;</span>
</code></pre></div><p>tov:c</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-overflow</span>:clip<span style="color:#ff79c6">;</span>
</code></pre></div><p>tov:e</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">text-overflow</span>:ellipsis<span style="color:#ff79c6">;</span>
</code></pre></div><p>trf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>trf:r</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">rotate</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:rx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">rotateX</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:ry</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">rotateY</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:rz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">rotateZ</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:sc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">scale</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">x</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">y</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:sc3</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">scale3d</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">x</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">y</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">z</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:scx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">scaleX</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">x</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:scy</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">scaleY</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">y</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:scz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">scaleZ</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">z</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:skx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">skewX</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:sky</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">skewY</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">angle</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:t</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">translate</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">x</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">y</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:t3</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">translate3d</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">tx</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">ty</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">tz</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:tx</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">translateX</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">x</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:ty</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">translateY</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">y</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trf:tz</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform</span><span style="color:#ff79c6">:</span> <span style="color:#ff79c6">translateZ</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">z</span><span style="color:#ff79c6">);</span>
</code></pre></div><p>trfo</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform-origin</span><span style="color:#ff79c6">:;</span>
</code></pre></div><p>trfs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transform-style</span>:preserve-3d<span style="color:#ff79c6">;</span>
</code></pre></div><p>trs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transition</span>:prop <span style="color:#ff79c6">time</span><span style="color:#ff79c6">;</span>
</code></pre></div><p>trsde</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transition-delay</span>:time<span style="color:#ff79c6">;</span>
</code></pre></div><p>trsdu</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transition-duration</span>:time<span style="color:#ff79c6">;</span>
</code></pre></div><p>trsp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transition-property</span>:prop<span style="color:#ff79c6">;</span>
</code></pre></div><p>trstf</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">transition-timing-function</span>:tfunc<span style="color:#ff79c6">;</span>
</code></pre></div><p>us</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">user-select</span><span style="color:#ff79c6">:$</span>{none}<span style="color:#ff79c6">;</span>
</code></pre></div><p>wfsm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">\<span style="color:#ff79c6">-webkit-font-smoothing</span><span style="color:#ff79c6">:$</span>{antialiased}<span style="color:#ff79c6">;</span>
</code></pre></div><p>wfsm:a</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">\<span style="color:#ff79c6">-webkit-font-smoothing</span>:antialiased<span style="color:#ff79c6">;</span>
</code></pre></div><p>wfsm:n</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">\<span style="color:#ff79c6">-webkit-font-smoothing</span>:none<span style="color:#ff79c6">;</span>
</code></pre></div><p>wfsm:s, wfsm:sa</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">\<span style="color:#ff79c6">-webkit-font-smoothing</span>:subpixel-antialiased<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:lr-tb<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:btl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:bt-lr<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:btr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:bt-rl<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:lrb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:lr-bt<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:lrt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:lr-tb<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:rlb</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:rl-bt<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:rlt</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:rl-tb<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:tbl</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:tb-lr<span style="color:#ff79c6">;</span>
</code></pre></div><p>wm:tbr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">writing-mode</span>:tb-rl<span style="color:#ff79c6">;</span>
</code></pre></div><h2 id="xsl">XSL</h2>
<p>tmatch, tm</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:template</span> <span style="color:#50fa7b">match</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">mode</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:template</span>&gt;
</code></pre></div><p>tname, tn</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:template</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:template</span>&gt;
</code></pre></div><p>call</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:call-template</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>ap</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:apply-templates</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">mode</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>api</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:apply-imports</span> /&gt;
</code></pre></div><p>imp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:import</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>inc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:include</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>ch</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:choose</span>&gt;&lt;/<span style="color:#ff79c6">xsl:choose</span>&gt;
</code></pre></div><p>xsl:when, wh</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:when</span> <span style="color:#50fa7b">test</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:when</span>&gt;
</code></pre></div><p>ot</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:otherwise</span>&gt;&lt;/<span style="color:#ff79c6">xsl:otherwise</span>&gt;
</code></pre></div><p>if</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:if</span> <span style="color:#50fa7b">test</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:if</span>&gt;
</code></pre></div><p>par</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:param</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:param</span>&gt;
</code></pre></div><p>pare</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:param</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>var</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:variable</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:variable</span>&gt;
</code></pre></div><p>vare</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:variable</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>wp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:with-param</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>key</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:key</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">match</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">use</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>elem</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:element</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:element</span>&gt;
</code></pre></div><p>attr</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:attribute</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:attribute</span>&gt;
</code></pre></div><p>attrs</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:attribute-set</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:attribute-set</span>&gt;
</code></pre></div><p>cp</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:copy</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>co</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:copy-of</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>val</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:value-of</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>each, for</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:for-each</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:for-each</span>&gt;
</code></pre></div><p>tex</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:text</span>&gt;&lt;/<span style="color:#ff79c6">xsl:text</span>&gt;
</code></pre></div><p>com</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:comment</span>&gt;&lt;/<span style="color:#ff79c6">xsl:comment</span>&gt;
</code></pre></div><p>msg</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:message</span> <span style="color:#50fa7b">terminate</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;no&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:message</span>&gt;
</code></pre></div><p>fall</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:fallback</span>&gt;&lt;/<span style="color:#ff79c6">xsl:fallback</span>&gt;
</code></pre></div><p>num</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:number</span> <span style="color:#50fa7b">value</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>nam</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">namespace-alias</span> <span style="color:#50fa7b">stylesheet-prefix</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">result-prefix</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>pres</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:preserve-space</span> <span style="color:#50fa7b">elements</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>strip</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:strip-space</span> <span style="color:#50fa7b">elements</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>proc</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:processing-instruction</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:processing-instruction</span>&gt;
</code></pre></div><p>sort</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:sort</span> <span style="color:#50fa7b">select</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> <span style="color:#50fa7b">order</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span> /&gt;
</code></pre></div><p>choose+</p>
<p><em>Псевдоним <code>xsl:choose&gt;xsl:when+xsl:otherwise</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">xsl:choose</span>&gt;
&lt;<span style="color:#ff79c6">xsl:when</span> <span style="color:#50fa7b">test</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:when</span>&gt;
&lt;<span style="color:#ff79c6">xsl:otherwise</span>&gt;&lt;/<span style="color:#ff79c6">xsl:otherwise</span>&gt;
&lt;/<span style="color:#ff79c6">xsl:choose</span>&gt;
</code></pre></div><p>xsl</p>
<p><em>Псевдоним <code>!!!+xsl:stylesheet\[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform\]&gt;{ |}</code></em></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;</span>
&lt;<span style="color:#ff79c6">xsl:stylesheet</span> <span style="color:#50fa7b">version</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;1.0&#34;</span> <span style="color:#50fa7b">xmlns:xsl</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;http://www.w3.org/1999/XSL/Transform&#34;</span>&gt;&lt;/<span style="color:#ff79c6">xsl:stylesheet</span>&gt;
</code></pre></div><p>!!!</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;</span>
</code></pre></div><p><small>Cheatsheet стырен с docs.emmet.io, переведено мной</small></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Чеклист оптимизации скорости загрузки веб-приложения ✓</title><link>https://mikhail-yudin.ru/blog/frontend/checklist-optimizacii-web-prilozheniya/</link><pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/checklist-optimizacii-web-prilozheniya/</guid><description>Оставлю здесь список методов, способов повышения производительности веб-сервисов, веб-приложений и сайтов. Будет полезно мне при выкатывании очередного проекта в продакшен, а также всем заинтересованным в отзывчивых веб-приложениях и веб-интерфейсах.
Серверная часть На серверной стороне и на бэкэнде в целом улучшается параметр Time To First Byte (TTFB). Этот параметр показывает время от начала запроса до получения первого байта данных от сервера.
На начальном этапе время тратится на:
задержку сети; получение IP от DNS сервера; установку соединения.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/checklist-optimizacii-web-prilozheniya/2020-08-06-checklist-optimizacii-web-prilozheniya.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Чеклист оптимизации скорости загрузки веб-приложения ✓</h1></header>
                    <div class='entry-content'>
                            <p>Оставлю здесь список методов, способов повышения производительности веб-сервисов, веб-приложений и сайтов.
Будет полезно мне при выкатывании очередного проекта в продакшен,
а также всем заинтересованным в отзывчивых веб-приложениях и веб-интерфейсах.</p>
<p><img src="/photos/timings_simple.png" alt="Тайминги загрузки страницы"></p>
<h2 id="серверная-часть">Серверная часть</h2>
<p>На серверной стороне и на бэкэнде в целом улучшается параметр <a href="https://developer.mozilla.org/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/time_to_first_byte" target=_blank rel="noopener noreferrer">Time To First Byte (TTFB)</a>.
Этот параметр показывает время от начала запроса до получения первого байта данных от сервера.</p>
<p>На начальном этапе время тратится на:</p>
<ul>
<li>задержку сети;</li>
<li>получение IP от DNS сервера;</li>
<li>установку соединения.</li>
</ul>
<p>TTFB складывается из времени на:</p>
<ul>
<li>передачу пакета данных запроса;</li>
<li>обработку запроса веб-приложением;</li>
<li>генерацию ответа (добавление заголовков, сжатие).</li>
</ul>
<p>Больше всего этот показатель влияет на скорость отклика на действие пользователя.
Как пример — переход на другую страницу, отправка формы, оформление заказа.
Правда некоторые моменты решаются и спиннерами, но это скорее хак (вынужденная мера) =)</p>
<p>Уменьшить это время можно несколькими способами:</p>
<ul>
<li>обеспечить высокую пропускную способность сети;</li>
<li>предусмотреть балансировку нагрузки;</li>
<li>использовать CDN доставки контента от ближайшего сервера или сервера с меньшим пингом;</li>
<li>оптимизировать веб-сервер для обработки большого количества запросов:
<ul>
<li>облегчить правила фаервола;</li>
<li>уменьшить количество прокси;</li>
<li>настроить буферы;</li>
<li>настроить кеширование статики.</li>
</ul>
</li>
<li>настроить сжатие (<a href="https://habr.com/ru/company/ruvds/blog/499278/" target=_blank rel="noopener noreferrer">оптимально brotli</a> со степенью компрессии около 5, значение выше не даёт значительного уменьшения);</li>
<li>уменьшить количество передаваемых заголовков в ответе;</li>
<li>использование протокола http2 для обработки запросов в одном соединении;</li>
<li>улучшить производительность самого веб-приложения.</li>
</ul>
<h2 id="оптимизация-веб-приложения">Оптимизация веб-приложения</h2>
<p>Веб-приложение обычно состоит из бэкэнда и фронтенда.</p>
<h3 id="бэкэнд">Бэкэнд</h3>
<p>Оптимизация бэкэнда (так же влияет на показатель TTFB) сводится к следующему:</p>
<ul>
<li>стараться использовать статику где это возможно;</li>
<li>настроить кеширование и буферизацию запросов к БД;</li>
<li>настроить кеширование страниц;</li>
<li>настроить кеширование скриптов прилжения (opcache, apc(u) cache, &hellip;);</li>
<li>оптимизировать запросы к БД;</li>
<li>минимизировать объём передаваемых данных от api.</li>
</ul>
<h3 id="фронтенд">Фронтенд</h3>
<p><img src="/photos/navigation_resource_timings.png" alt="Тайминги загрузки страницы сайта (источник: developer.mozilla.org)"></p>
<p>На фронтенде показателей больше:</p>
<ul>
<li><a href="https://developer.mozilla.org/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/First_contentful_paint" target=_blank rel="noopener noreferrer">First Contentful Paint (FCP)</a> — время до первой отрисовки;</li>
<li><a href="https://developer.mozilla.org/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/first_meaningful_paint" target=_blank rel="noopener noreferrer">First Meaningful Paint (FMP)</a> — время до отрисовки основной части контента;</li>
<li><a href="https://developer.mozilla.org/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/First_input_delay" target=_blank rel="noopener noreferrer">First Input Delay (FID)</a> — время отклика на событие, генерированное пользователем;</li>
<li><a href="https://web.dev/tbt/" target=_blank rel="noopener noreferrer">Total Blocking Time (TBT)</a> — суммарное время задач длительностью более 50мс;</li>
<li><a href="https://developer.mozilla.org/ru/docs/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/Time_to_interactive" target=_blank rel="noopener noreferrer">Time To Interactive (TTI)</a> — время до начала интерактивности элементов страницы.</li>
</ul>
<p>Оптимизируется всё это на нескольких уровнях.</p>
<h4 id="разметка-html">Разметка HTML</h4>
<ul>
<li>уменьшение вложенности DOM дерева;</li>
<li>минификация, использование табов для отступов.</li>
</ul>
<p><small>Эффект оптимизации: быстрее наступают FCP, FMP.</small></p>
<h4 id="стили-css">Стили CSS</h4>
<ul>
<li>вынесение критичных стилей в head &gt; style;</li>
<li>разделение стилей на куски и их дозагрузка после первого экрана;</li>
<li>упрощение селекторов CSS (по методологии БЭМ);</li>
<li>минификация.</li>
</ul>
<p><small>Эффект оптимизации: быстрее наступают FCP, FMP, отрисовка происходит значительно быстрее на большом количестве узлов DOM дерева.</small></p>
<h4 id="скрипты-javascript">Скрипты JavaScript</h4>
<ul>
<li>перенос, либо отложенная (async, defer) загрузка скриптов JavaScript;</li>
<li>requestAnimationFrame для анимаций;</li>
<li>requestIdleFrame для длительных задач;</li>
<li>WebWorkers для сложных длительных задач;</li>
<li>ServiceWorkers для обеспечения кеширования запросов;</li>
<li>ленивая загрузка данных (Infinite Scrolling);</li>
<li>минификация.</li>
</ul>
<p><small>Эффект оптимизации: значительное улучшение всех показателей при большом объёме JavaScript кода.</small></p>
<h4 id="изображения">Изображения</h4>
<ul>
<li>ленивая загрузка изображений;</li>
<li>правильный выбор формата изображений (jpeg — фото, png — чертежи или логотипы или постеры);</li>
<li><a href="/blog/frontend/imagemagick-convert-optimization-snippets">оптимизация изображений для веб</a>:
<ul>
<li>сжатие изображений по размеру в пикселях;</li>
<li>использование векторной графики или CSS3 где это возможно;</li>
<li>сжатие изображений по качеству;</li>
<li>использование современных способов сжатия (webp).</li>
</ul>
</li>
</ul>
<p><small>Эффект оптимизации: быстрее наступают FCP, FMP, уменьшается TTI (по наблюдениям), бонусом меньше трафика.</small></p>
<h4 id="шрифты">Шрифты</h4>
<ul>
<li>ленивая загрузка веб-шрифтов, в идеале использование <a href="/blog/frontend/most-recent-variant-of-css-system-font-families">системных - Web safe шрифтов</a>;</li>
<li>уменьшение количества шрифтов;</li>
<li>использование шрифтов только нужных языков;</li>
<li>выбор меньшего количества начертаний (font-weight).</li>
</ul>
<p><small>Эффект оптимизации: быстрее наступают FCP, FMP.</small></p>
<p>Список оптимизируемого будет пополняться, пока это всё, что вспомнил. =)</p>
<p>Оптимизируя приложения следите за своим временем. ;) Правило 20%/80% работает и здесь:
за 20% времени можно улучшить производительность приложения на 80%, остальное время
чаще всего тратится на долгое ковыряние за десятки милли- и даже микросекунд.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Стоит ли менять термопасту процессора ноутбука на КПТ-8</title><link>https://mikhail-yudin.ru/blog/hardware/stoit-li-menyat-termopastu-processora-noutbuka/</link><pubDate>Wed, 08 Jul 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/hardware/stoit-li-menyat-termopastu-processora-noutbuka/</guid><description>Решил почистить ноутбук и заменить термопасту на дешёвую КПТ-8, т.к. процессор ноутбука, которому уже 7 лет от роду, раскалился до 90 градусов по Цельсию.
Открутил радиатор, а заводская термопаста ещё влажненькая. Правда серая и совсем жидкая. Несмотря на это, решил заменить-таки купленной до этого КПТ-8. По многочисленным отзывам рекомендуют менять на дорогую.
Правда опыт показал, что температура процессора после очистки системы охлаждения и замены термопасты на недорогую КПТ-8 стала ниже примерно на 5 градусов:</description><turbo:content><![CDATA[
                    <header>
                        <h1>Стоит ли менять термопасту процессора ноутбука на КПТ-8</h1></header>
                    <div class='entry-content'>
                            <p>Решил почистить ноутбук и заменить термопасту на дешёвую КПТ-8,
т.к. процессор ноутбука, которому уже <strong>7 лет</strong> от роду, раскалился до 90
градусов по Цельсию.</p>
<p>Открутил радиатор, а заводская термопаста ещё влажненькая. Правда серая и совсем
жидкая. Несмотря на это, решил заменить-таки купленной до этого КПТ-8.
По многочисленным отзывам рекомендуют менять на дорогую.</p>
<p>Правда <strong>опыт показал, что температура процессора</strong> после очистки системы охлаждения
и <strong>замены термопасты на недорогую КПТ-8</strong> <strong>стала ниже</strong> примерно
<strong>на 5 градусов</strong>:</p>
<ul>
<li>в простое было 63..65C, стало 58-62C;</li>
<li>в рабочем режиме (веб-разработка, браузер) было 65..72C, стало 62..68C;</li>
<li>в режиме просмотра видео на YouTube было 72..82C, стало 70..74C!</li>
</ul>
<p>Так же пришлось избавиться от опасного вздутого аккумулятора. Теперь работаю от
сети.</p>
<p>Так что если термопасте больше 3-4 лет, смело меняйте! Пускай ваша техника живёт
долго.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Переход с PHPStorm или Intellij IDEA на VIM</title><link>https://mikhail-yudin.ru/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim/</link><pubDate>Sat, 27 Jun 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim/</guid><description>Может кому-то показаться странным, зачем переходить с полноценной IDE с кучей возможностей на редактор, из которого даже выйти сложно. А в PHPStorm или IDEA одной мышью программировать можно. В моём случае переход был инициирован двумя вещами: желание использовать инструмент матёрых программистов и желание хоть как-то продолжать работать =D
Преимущества VIM перед IDEA быстрое начало работы с проектом: 200 мс против 2..3 минут на моём железе быстрая работа с текстом: обрамление строк списком HTML за 2,5 с vap&amp;lt;C-y&amp;gt;,ul&amp;gt;li* низкое потребление ресурсов: RAM 500-700 МБ при работающем NodeJS сервере LSP против 4+ ГБ с IDEA конфигурируемость: сами решаете как и что будет работать, используя VIMScript, плагины при отсутствии большого количества ресурсов работай удалённо по SSH, а с tmux вообще сказка работать можно с намного большим количеством проектов одновременно Начало освоения VIM Первые два года изучения VIM прошли безуспешно.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim/perehod-s-phpstorm-ili-idea-na-vim.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Переход с PHPStorm или Intellij IDEA на VIM</h1></header>
                    <div class='entry-content'>
                            <p>Может кому-то показаться странным, зачем переходить с полноценной IDE с кучей возможностей
на редактор, из которого даже выйти сложно. А в PHPStorm или IDEA одной мышью
программировать можно. В моём случае переход был инициирован двумя вещами:
желание использовать инструмент матёрых программистов и желание хоть как-то
продолжать работать =D</p>
<h2 id="преимущества-vim-перед-idea">Преимущества VIM перед IDEA</h2>
<ul>
<li>быстрое начало работы с проектом: 200 мс против 2..3 минут на моём железе</li>
<li>быстрая работа с текстом: обрамление строк списком HTML за 2,5 с <code>vap&lt;C-y&gt;,ul&gt;li*</code></li>
<li>низкое потребление ресурсов: RAM 500-700 МБ при работающем NodeJS сервере <a href="https://docs.microsoft.com/ru-ru/visualstudio/extensibility/language-server-protocol?view=vs-2019" target=_blank rel="noopener noreferrer">LSP</a> против 4+ ГБ с IDEA</li>
<li>конфигурируемость: сами решаете как и что будет работать, используя VIMScript, плагины</li>
<li>при отсутствии большого количества ресурсов работай удалённо по SSH, а с <a href="https://ru.wikipedia.org/wiki/Tmux" target=_blank rel="noopener noreferrer">tmux</a> вообще сказка</li>
<li>работать можно с намного большим количеством проектов одновременно</li>
</ul>
<h2 id="начало-освоения-vim">Начало освоения VIM</h2>
<p>Первые два года изучения VIM прошли безуспешно. Каждый год по месяцу уделял
время на изучение возможностей, но как-то не срослось. То ли функционал казался
скудным, то ли всё время уходило на изучение принципов работы в редакторе.</p>
<p>Сначала не понимал, зачем нужны эти режимы, если можно находясь только в одном
режиме работать с текстом как в обычном редакторе. Пиши и пиши, даже мышь вроде
работала для перемещения курсора =)</p>
<p>На третий год решил взяться изо всех сил изучить возможности VIM и создать свой
vimrc файл, настроить под себя. Как говорится, первый блин комом. Ну поставил
кучу плагинов, понадобавлял всяких полезностей собрав их с разных источников.
Потом сел за редактор на следующий день и понял что ничего не помню. И снова
бросил это дело.</p>
<h2 id="вынужденный-переход-на-vim-с-idea">Вынужденный переход на VIM с IDEA</h2>
<p>IDE Intellij IDEA очень хороша по своему функционалу. Из используемого мной это:</p>
<ul>
<li>поддержка тонны разнообразных плагинов от разработчиков и от сообщества</li>
<li>гибкость настроек</li>
<li>магия рефакторинга: сменив имя поля в таблице происходит автоматическое переименование использования этого поля по всему коду</li>
<li>очень удобная работа с базами данных</li>
<li>умное быстрое автодополнение</li>
<li>поддержка разделения экрана для работы с несколькими файлами одновременно</li>
<li>хранение истории правок
и многое многое другое.</li>
</ul>
<p>Однако однажды <a href="/blog/linux/rabotaem-udalyonno-po-ssh-na-karantine">перейдя на удалённую работу</a>,
работая с ноутбука и имея 4 гигабайта оперативки понял, что работа встаёт колом.
Оперативка съедалась вся при запущенном браузере (45%) и загруженной IDEA.
При этом по окончании рабочего дня своп использовался на 25%, это при условии,
что был включён zRam. Так продолжать работать было невозможно. И тут я решил
провести эксперимент и перейти на VIM полностью.</p>
<p>До очередной попытки чаще всего использовал VIM для правок конфигов на серверах.</p>
<p>Начал всё с чистого листа: создал новый vimrc файл и помаленьку стал добавлять
в него нужное для работы.</p>
<p>Первое и необходимое для работы это плагины. С ними проще и быстрее получить
нужный функционал. Сразу вспомнил, удобно когда менеджер плагинов сам
устанавливается при старте VIM. Для этого у меня уже был кусок конфига.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim"><span style="color:#ff79c6">if</span> empty(glob(<span style="color:#f1fa8c">&#39;~/.vim/autoload/plug.vim&#39;</span>))
  silent !curl -fLo ~<span style="color:#f1fa8c">/.vim/</span>autoload/plug.vim --create-dirs
        \ https:<span style="color:#f1fa8c">//</span>raw.githubusercontent.com<span style="color:#f1fa8c">/junegunn/</span>vim-plug<span style="color:#f1fa8c">/master/</span>plug.vim
  autocmd VimEnter * PlugInstall | source $MYVIMRC
<span style="color:#ff79c6">endif</span>
</code></pre></div><p>Если менеджер плагинов не установлен при запуске редактора, он скачивается
и запускается установка плагинов, указанных в директивах:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">call plug#begin(<span style="color:#f1fa8c">&#39;~/.vim/plugged&#39;</span>)
<span style="color:#6272a4">
</span><span style="color:#6272a4">&#34; здесь плагины</span>

call plug#end()
</code></pre></div><p>Далее пошёл по просторам интернетов искать плагины, которые были нужны
при работе в IDE IDEA (ну или PHPStorm).</p>
<p><strong>Подсветка синтаксиса</strong> есть отдельно для каждого языка, но есть один мультиязыковый
плагин — <code>sheerun/vim-polyglot</code>, объединяющий разные языки.</p>
<p>Для <strong>автодополнения</strong> решил использовать <code>neoclide/coc.nvim</code>, т.к. он позволяет
получить результат как в VSCode.</p>
<p>Для вставки <strong>сниппетов</strong> пользуюсь тем же <code>coc</code> (ссылка на конфиг будет в конце поста),
плюс <code>honza/vim-snippets</code> — набор готовых сниппетов, можно создавать и свои.</p>
<p>Чтобы быстро <strong>переходить по файлам</strong> с помощью fuzzy (нечёткого) поиска воспользовался:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">Plug <span style="color:#f1fa8c">&#39;junegunn/fzf&#39;</span>, { <span style="color:#f1fa8c">&#39;do&#39;</span>: { -&gt; fzf#install() } }
Plug <span style="color:#f1fa8c">&#39;junegunn/fzf.vim&#39;</span>
</code></pre></div><p>оба плагина нужны.</p>
<p>Для <strong>навигации по файлам</strong> использую <code>preservim/nerdtree</code>, как самый популярный.
Конфигурируется отображение иконок типов файлов, добавляются плагином
<code>ryanoasis/vim-devicons</code>, так что красоту навести можно.</p>
<p>Т.к. работаю с html разметкой, удобно написать <strong>emmet</strong> строку <code>ul&gt;li*5</code> и получить список. Это
делает <code>mattn/emmet-vim</code>.</p>
<p>Для работы с <strong>базами данных</strong> есть классный плагин от tpope: <code>tpope/vim-dadbod</code>.
Указываете в переменной <code>g:db</code> строку соединения с базой и спокойно отправляете
запросы на исполнение командой <code>DB</code>. По умолчанию отправляется весь буфер.</p>
<p>Для <strong>рефакторинга</strong> можно использовать разные техники, но для PHP решением
стал <code>adoy/vim-php-refactoring-toolbox</code>. Умеет создавать методы из кусков кода,
переименовывать методы, переменные и многое другое.</p>
<h2 id="итоги-перехода-с-idea-на-vim">Итоги перехода с IDEA на VIM</h2>
<p>Поработав около месяца-двух в редакторе VIM сомневаюсь что что-то заставит меня
сменить его на что-то иное. Теперь работать можно непосредственно на удалённой
машине по SSH. Кстати, поделился опытом <a href="/blog/linux/optimizaciya-i-uskorenie-vim">ускорения работы VIM по SSH</a>.</p>
<p>Кому интересно облегчение VIM,
<a href="/blog/linux/statusnaya-stroka-vim-bez-plaginov">сделал статусную строку без плагинов в 5 строк</a>.</p>
<p>Теперь как говорится, работать могу даже с хлебушка/холодильника/калькулятора. =)</p>
<p>На данный момент неудобно только редактировать множество строк в БД. Для этого
пользуюсь mysql-workbench.</p>
<p>Как и обещал,
<a href="https://github.com/fagci/dotfiles/blob/976c6fbcbeda91382b169d329e3f3a09449f9669/vim/.vimrc" target=_blank rel="noopener noreferrer">конфиг vimrc</a>
на момент написания поста.</p>
<p>Желаю удачи в переходе на редактор VIM!</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Оптимизация и ускорение редактора VIM</title><link>https://mikhail-yudin.ru/blog/linux/optimizaciya-i-uskorenie-vim/</link><pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/linux/optimizaciya-i-uskorenie-vim/</guid><description>Делюсь опытом ускорения редактора VIM при использовании через SSH соединение, в том числе при работе через tmux.
VIM хорошо работает по SSH После перехода на удалёнку по SSH и перехода с IDEA на VIM, стал использовать ресурсы серверов для веб-разработки, ибо сервера обычно мощнее и оперативы больше ;)
Скорость работы VIM по SSH зависит от нескольких факторов:
качество соединения скорость передачи данных используемый протокол передачи данных количество обновлений экрана Увеличиваем скорость при помощи mosh Качество и скорость передачи данных понятный вопрос и он тут обсуждаться не будет.</description><enclosure url="https://mikhail-yudin.ru/blog/linux/optimizaciya-i-uskorenie-vim/optimizaciya-i-uskoreniye-vim.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Оптимизация и ускорение редактора VIM</h1></header>
                    <div class='entry-content'>
                            <p>Делюсь опытом ускорения редактора VIM при использовании через SSH соединение,
в том числе при работе через tmux.</p>
<h2 id="vim-хорошо-работает-по-ssh">VIM хорошо работает по SSH</h2>
<p>После <a href="/blog/linux/rabotaem-udalyonno-po-ssh-na-karantine">перехода на удалёнку по SSH</a>
и <a href="/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim">перехода с IDEA на VIM</a>,
стал использовать ресурсы серверов для веб-разработки, ибо сервера обычно мощнее
и оперативы больше ;)</p>
<p>Скорость работы VIM по SSH зависит от нескольких факторов:</p>
<ul>
<li>качество соединения</li>
<li>скорость передачи данных</li>
<li>используемый протокол передачи данных</li>
<li>количество обновлений экрана</li>
</ul>
<h3 id="увеличиваем-скорость-при-помощи-mosh">Увеличиваем скорость при помощи mosh</h3>
<p>Качество и скорость передачи данных понятный вопрос и он тут обсуждаться не будет.</p>
<p>Используемый протокол влияет на скорость работы VIM. По умолчанию ssh работает
по протоколу TCP, что увеличивает задержки на проверку целостности передаваемых данных.</p>
<p>Существует альтернатива ssh — <strong>mosh</strong>. Программа состоит из сервера и клиента,
что требует установки на обоих машинах. Преимущество использования mosh в обмене
данными по протоколу UDP, что увеличивает скорость работы редактора минимум в 2 раза.
Бонусом в mosh реализованы методики работы с проблемными соединениями вплоть до разрыва.</p>
<h3 id="уменьшаем-количество-обновлений-экрана">Уменьшаем количество обновлений экрана</h3>
<p>Чем больше перерисовок на экране, тем больше данных для этого нужно передать.
Чтобы лишний раз не перерисовывать весь экран, а только его часть и только в
моменты когда это нужно существует опция <code>lazyredraw</code>. Для её использования
пропишите в ваш файл <code>.vimrc</code> директиву: <code>set lazyredraw</code>.</p>
<p>Так же советую отключить относительную нумерацию строк и подсветку текущей
строки.</p>
<p>Делается это при помощи:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set nocursorline nocursorcolumn norelativenumber
</code></pre></div><h2 id="увеличиваем-скорость-переключения-между-буферами">Увеличиваем скорость переключения между буферами</h2>
<p>Примерно неделю или две мучался с тем, что приходилось ждать около двух секунд
пока не переключится буфер на другой. Поисследовав различные конфиги обнаружил
интересную опцию <code>hidden</code>, что даёт возможность хранить открытые буферы в памяти.
Это увеличивает скорость переключения между буферами примерно в 25 раз по
ощущениям.</p>
<p>Использовать эту опцию удобно в паре с опцией подтверждения закрытия буфера
чтобы не потерять несохранённые данные, а так же установить опцию переиспользования
буфера.</p>
<p>Все три опции устанавливаются так же в <code>.vimrc</code>:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set hidden confirm
set switchbuf=useopen
</code></pre></div><h2 id="увеличиваем-скорость-подсветки-синтаксиса">Увеличиваем скорость подсветки синтаксиса</h2>
<p>В vim есть возможность ограничить количество колонок для подсветки синтаксиса.
Задаётся это опцией <code>synmaxcol</code>. Для меня осталось загадкой, почему для кириллицы
значение параметра должно быть увеличено в двое. по предположениям это связано
с использованием кодировки utf-8. Таким образом, для подсветки 128 колонок необходимо:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set synmaxcol=<span style="color:#bd93f9">256</span>
set regexpengine=<span style="color:#bd93f9">1</span>
</code></pre></div><p>Вторая строка бонусом заставляет движок использовать старую версию матчера
регулярных выражений.</p>
<p>Внимание: меленькое значение заставит слететь подсветку синтаксиса для строк ниже
при превышении лимита. Правда отрисовку это ещё больше ускорит =)</p>
<h2 id="в-заключение">В заключение</h2>
<p>Используйте минимум плагинов, включайте фичи при надобности, используйте больше
встроенных возможностей. В соседнем материале кстати рассказал, как создать
<a href="/blog/linux/statusnaya-stroka-vim-bez-plaginov">статусную строку без плагинов в 5 строк</a>.</p>
<p>Всё вышеописанное позволило ускорить работу в редакторе примерно раз в 100 по
сравнению с изначальной конфигурацией.</p>
<p>Приложу что получилось в vimrc:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set nocursorline nocursorcolumn norelativenumber
set ttyfast
set lazyredraw
set updatetime=<span style="color:#bd93f9">300</span>
set synmaxcol=<span style="color:#bd93f9">256</span> <span style="color:#6272a4">&#34; UTF = x2</span>
syntax sync minlines=<span style="color:#bd93f9">256</span>
set regexpengine=<span style="color:#bd93f9">1</span>
set hidden confirm <span style="color:#6272a4">&#34; this speeds up buffer switch x25 I think</span>
set switchbuf=useopen
</code></pre></div><p>Комфортной и быстрой работы в редакторе VIM!</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Статусная строка VIM без плагинов в 5 строк</title><link>https://mikhail-yudin.ru/blog/linux/statusnaya-stroka-vim-bez-plaginov/</link><pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/linux/statusnaya-stroka-vim-bez-plaginov/</guid><description>В VIM статусная строка есть по умолчанию. Можно малейшими усилиями доработать её под свои нужды.
Как создать свою статусную строку для VIM Создать статусную строку очень просто и оказывается плагинов совсем не требуется для того, чтобы получить нечто подобное плагинам airline, lightline и другим.
Всё что требуется — разобраться, что и как мы добавим в статусную строку.
Для модификации статусной строки используется переменная statusline. Подробнее о ней можно ознакомиться во встроенной в VIM справке: :help statusline.</description><enclosure url="https://mikhail-yudin.ru/blog/linux/statusnaya-stroka-vim-bez-plaginov/statusnaya-stroka-vim-bez-plaginov.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Статусная строка VIM без плагинов в 5 строк</h1></header>
                    <div class='entry-content'>
                            <p>В VIM статусная строка есть по умолчанию. Можно малейшими усилиями доработать её под свои нужды.</p>
<h2 id="как-создать-свою-статусную-строку-для-vim">Как создать свою статусную строку для VIM</h2>
<p>Создать статусную строку очень просто и оказывается плагинов совсем не требуется
для того, чтобы получить нечто подобное плагинам airline, lightline и другим.</p>
<p>Всё что требуется — разобраться, что и как мы добавим в статусную строку.</p>
<p>Для модификации статусной строки используется переменная statusline.
Подробнее о ней можно ознакомиться во встроенной в VIM справке: <code>:help statusline</code>.</p>
<p>Как только ознакомились с переменными для отображения разной информации в статусной строке,
приступим к созданию своей.</p>
<p>Начнём с номера текущего буфера и имени файла, который редактируем:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set statusline=%r%t%{(&amp;mod?<span style="color:#f1fa8c">&#39;*&#39;</span>:<span style="color:#f1fa8c">&#39;&#39;</span>)}
</code></pre></div><p>Разберём полученную строку:</p>
<ul>
<li><code>%r</code>: отображение [RO] если файл доступен только для чтения</li>
<li><code>%t</code>: хвост пути к файлу (имя файла с расширением)</li>
<li><code>%{(&amp;mod?'*':'')}</code>: <code>&amp;mod</code> переменная со значением был ли модифицирован файл,
проверяем если был, отображаем звёздочку, иначе ничего.</li>
</ul>
<p>Таким образом мы уже имеем основную информацию о редактируемом файле.</p>
<p>Дальше как обычно, отобразим справа в статусной строке информацию о кодировке файла,
текущей строке, общее количество строк и тип файла. Это достигается следующим:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set statusline+=%=%{&amp;fenc}\ %l/%L\ %y
</code></pre></div><p>Подробнее о содержимом:</p>
<ul>
<li><code>%=</code>: позволяет выровнять следующий контент по правому краю статусной строки</li>
<li><code>%{&amp;fenc}</code>: отобразит кодировку файла</li>
<li><code>%l</code>: текущая строка, на которой находится курсор</li>
<li><code>%L</code>: всего строк в файле</li>
<li><code>%y</code>: тип файла</li>
</ul>
<h2 id="делаем-статусную-строку-красивее-и-удобнее">Делаем статусную строку красивее и удобнее</h2>
<p>При описании содержимого статусной строки VIM можно использовать возвращаемые
значения функций, а так же скрывать блок контента, если в нём нет данных.</p>
<p>Это будет полезно если отображается текущая ветка GIT например. То есть
если редактируемый файл находится вне репозитория, отображаться ничего не будет.</p>
<p>Для этого существуют группы, начало обозначается как <code>%(</code>, конец как <code>%)</code>.</p>
<p>В итоге конфигурация моей статусной строки выглядит следующим образом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-vim" data-lang="vim">set stl=[%n]\ 
set stl+=%(%{WebDevIconsGetFileTypeSymbol()}\ %r%t%{(&amp;mod?<span style="color:#f1fa8c">&#39;*&#39;</span>:<span style="color:#f1fa8c">&#39;&#39;</span>)}%)
set stl+=%(\ \|\ %{FugitiveHead()}%)
set stl+=%(\ \|\ %{coc#status()}%)
set stl+=%=%{&amp;fenc}\ %l/%L\ %y
</code></pre></div><p>В примере <code>stl</code> это принятое сокращение для переменной statusline.</p>
<p>Итого уложился в 5 строк. Эта конфигурация покрывает мои нужды.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Lumen middleware для UNESCAPED_UNICODE и PRETTY_PRINT</title><link>https://mikhail-yudin.ru/blog/backend/json-unescaped-unicode-i-pretty-print-lumen-middleware/</link><pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/backend/json-unescaped-unicode-i-pretty-print-lumen-middleware/</guid><description>Долго искал правильный способ возвращать PRETTY_PRINT и UNESCAPED_UNICODE в ответе от API в фреймворке Lumen.
Хотелка В современных реалиях нет нужды экранировать unicode в ответе от JSON API. Ещё хотелось красивый вывод для отладки. Лазил по интернетам, так и не нашёл решение, наверное не там искал. В голову пришло заюзать middleware для трансформации ответа.
Реализация Решение было простым: берём response - ответ и добавляем к нему нужные опции при помощи setEncodingOptions как к json_encode.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Lumen middleware для UNESCAPED_UNICODE и PRETTY_PRINT</h1></header>
                    <div class='entry-content'>
                            <p>Долго искал правильный способ возвращать <code>PRETTY_PRINT</code> и <code>UNESCAPED_UNICODE</code> в ответе от API в фреймворке Lumen.</p>
<h2 id="хотелка">Хотелка</h2>
<p>В современных реалиях нет нужды экранировать unicode в ответе от JSON API. Ещё хотелось красивый вывод для отладки.
Лазил по интернетам, так и не нашёл решение, наверное не там искал. В голову пришло заюзать middleware для трансформации ответа.</p>
<h2 id="реализация">Реализация</h2>
<p>Решение было простым: берём response - ответ и добавляем к нему нужные опции при помощи <code>setEncodingOptions</code> как к <code>json_encode</code>.
В моей реализации я добавил <code>JSON_PRETTY_PRINT</code>, <code>JSON_UNESCAPED_UNICODE</code>, <code>JSON_UNESCAPED_SLASHES</code>. Последнее может лишнее, но хотелось красивого ответа при отладке.</p>
<p>Вариант &ldquo;в лоб&rdquo; выглядит так:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-php" data-lang="php"><span style="color:#ff79c6">&lt;?php</span>

<span style="color:#ff79c6">namespace</span> App\Http\Middleware;

<span style="color:#ff79c6">use</span> Closure;

<span style="color:#ff79c6">class</span> <span style="color:#50fa7b">UnescapedJsonMiddleware</span>
{
    <span style="color:#ff79c6">public</span> <span style="color:#ff79c6">function</span> <span style="color:#50fa7b">handle</span>(<span style="color:#8be9fd;font-style:italic">$request</span>, Closure <span style="color:#8be9fd;font-style:italic">$next</span>)
    {
        <span style="color:#8be9fd;font-style:italic">$data</span> <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">$next</span>(<span style="color:#8be9fd;font-style:italic">$request</span>);
        <span style="color:#8be9fd;font-style:italic">$data</span><span style="color:#ff79c6">-&gt;</span><span style="color:#50fa7b">setEncodingOptions</span>(JSON_PRETTY_PRINT <span style="color:#ff79c6">|</span> JSON_UNESCAPED_UNICODE <span style="color:#ff79c6">|</span> JSON_UNESCAPED_SLASHES);
        <span style="color:#ff79c6">return</span> <span style="color:#8be9fd;font-style:italic">$data</span>;
    }
}
</code></pre></div><p>Его можно доработать для обработки только JSON ответов, но мне этого было достаточно.</p>
<p>Актуальная версия лежит тут: <a href="https://gist.github.com/fagci/f4df62f39b912f819a0e7205541f551e" target=_blank rel="noopener noreferrer">Laravel / Lumen json options for response using middleware</a>.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Подсветка активных ссылок на чистом JavaScript</title><link>https://mikhail-yudin.ru/blog/frontend/podsvetka-aktivnyh-ssylok-javascript/</link><pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/podsvetka-aktivnyh-ssylok-javascript/</guid><description>Хорошей практикой считается подсвечивать текущую ссылку, чтобы показать пользователю, где он находится в данный момент.
Использовать для этого ресурсы сервера не оправдано. Исключением являются кешируемые на долгое время страницы или статические страницы. В остальных случаях серверу должно быть наплевать на то, какую страницу отправили пользователю. Как минимум в контент лезть ему не надо, чтоб указать класс активной ссылке. Это задача клиента, т.к. он сам запросил нужную страницу.
Решение в несколько строчек нисколько не будет нагружать клиента, отработает быстро.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/podsvetka-aktivnyh-ssylok-javascript/javascript-active-links-highlight.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Подсветка активных ссылок на чистом JavaScript</h1></header>
                    <div class='entry-content'>
                            <p>Хорошей практикой считается подсвечивать текущую ссылку, чтобы показать пользователю, где он находится в данный момент.</p>
<p>Использовать для этого ресурсы сервера не оправдано. Исключением являются кешируемые на долгое время страницы или статические страницы.
В остальных случаях серверу должно быть наплевать на то, какую страницу отправили пользователю. Как минимум в контент лезть ему не надо, чтоб указать класс активной ссылке.
Это задача клиента, т.к. он сам запросил нужную страницу.</p>
<p>Решение в несколько строчек нисколько не будет нагружать клиента, отработает быстро. Скрипт можно вставлять прямо после навигационного меню например, если другие ссылки не нужно подсвечивать.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-javascript" data-lang="javascript"><span style="color:#ff79c6">const</span> doc <span style="color:#ff79c6">=</span> <span style="color:#8be9fd;font-style:italic">window</span>.<span style="color:#8be9fd;font-style:italic">document</span>;
<span style="color:#ff79c6">const</span> links <span style="color:#ff79c6">=</span> doc.querySelectorAll(<span style="color:#f1fa8c">&#34;a&#34;</span>); <span style="color:#6272a4">// любой нужный селектор
</span><span style="color:#6272a4"></span><span style="color:#ff79c6">const</span> linksCount <span style="color:#ff79c6">=</span> links.length;
<span style="color:#ff79c6">const</span> currentURL <span style="color:#ff79c6">=</span> doc.URL;

<span style="color:#ff79c6">for</span> (<span style="color:#8be9fd;font-style:italic">let</span> i <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>; i <span style="color:#ff79c6">&lt;</span> linksCount; i<span style="color:#ff79c6">++</span>) {
  <span style="color:#8be9fd;font-style:italic">let</span> linkURL <span style="color:#ff79c6">=</span> links[i].href;

  <span style="color:#6272a4">// linkURL == currentURL, если не надо светить уровни выше
</span><span style="color:#6272a4"></span>  <span style="color:#ff79c6">if</span> (currentURL.startsWith(linkURL)) {
    links[i].classList.add(<span style="color:#f1fa8c">&#34;active&#34;</span>);
  }
}
</code></pre></div><p>Современное краткое решение:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-javascript" data-lang="javascript">(<span style="color:#8be9fd;font-style:italic">function</span>() {
  [...<span style="color:#ff79c6">this</span>.querySelectorAll(<span style="color:#f1fa8c">&#34;a&#34;</span>)]
    .filter(a =&gt; <span style="color:#ff79c6">this</span>.URL.startsWith(a.href))
    .forEach(a =&gt; a.classList.add(<span style="color:#f1fa8c">&#34;active&#34;</span>));
}.bind(<span style="color:#8be9fd;font-style:italic">window</span>.<span style="color:#8be9fd;font-style:italic">document</span>)());
</code></pre></div><p>Останется только назначить стили активным ссылкам с классом <code>active</code>.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Рендер текстовых шаблонов по данным из массива PHP</title><link>https://mikhail-yudin.ru/blog/frontend/renderim-tekstoviye-shablony-po-dannym-iz-massiva/</link><pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/renderim-tekstoviye-shablony-po-dannym-iz-massiva/</guid><description>Работая с текстовыми шаблонами для SEO например, встаёт задача использовать шаблоны строк, данные которых должны браться из массива.
Задача Задача проста — воспользоваться шаблонами строк для отображения данных из массива. Сделать это можно несколькими способами:
сгенерировать текста в самом PHP воспользоваться готовыми шаблонизаторами например Twig, Blade, Smarty, &amp;hellip; написать небольшую функцию для преобразования определённой подстроки в текст по данным из ассоциативного массива Решение Я предпочёл последний вариант, несмотря на подключенный Twig в проекте.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/renderim-tekstoviye-shablony-po-dannym-iz-massiva/php-render-text-template.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Рендер текстовых шаблонов по данным из массива PHP</h1></header>
                    <div class='entry-content'>
                            <p>Работая с текстовыми шаблонами для SEO например, встаёт задача использовать шаблоны строк, данные которых должны браться из массива.</p>
<h2 id="задача">Задача</h2>
<p>Задача проста — воспользоваться шаблонами строк для отображения данных из массива. Сделать это можно несколькими способами:</p>
<ul>
<li>сгенерировать текста в самом PHP</li>
<li>воспользоваться готовыми шаблонизаторами например Twig, Blade, Smarty, &hellip;</li>
<li>написать небольшую функцию для преобразования определённой подстроки в текст по данным из ассоциативного массива</li>
</ul>
<h2 id="решение">Решение</h2>
<p>Я предпочёл последний вариант, несмотря на подключенный Twig в проекте.</p>
<p>Первый вариант решения задачи выглядит следующим образом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-php" data-lang="php"><span style="color:#ff79c6">&lt;?php</span>

<span style="color:#f1fa8c">/**
</span><span style="color:#f1fa8c"> * PHP function to render string path template using nested array.
</span><span style="color:#f1fa8c"> * Renders template string like &#34;Nested array item value: {data.some.nested.item.value}&#34;
</span><span style="color:#f1fa8c"> * @param string $template
</span><span style="color:#f1fa8c"> * @param array $data
</span><span style="color:#f1fa8c"> * @return string
</span><span style="color:#f1fa8c"> */</span>
<span style="color:#ff79c6">public</span> <span style="color:#ff79c6">static</span> <span style="color:#ff79c6">function</span> <span style="color:#50fa7b">renderDataTemplate</span>(string <span style="color:#8be9fd;font-style:italic">$template</span>, <span style="color:#ff79c6">array</span> <span style="color:#8be9fd;font-style:italic">$data</span>)<span style="color:#ff79c6">:</span> string
{
  <span style="color:#ff79c6">return</span> preg_replace_callback(<span style="color:#f1fa8c">&#39;/{([^{}]+?)}/&#39;</span>, <span style="color:#ff79c6">static</span> <span style="color:#ff79c6">function</span> (<span style="color:#8be9fd;font-style:italic">$v</span>) <span style="color:#ff79c6">use</span> (<span style="color:#8be9fd;font-style:italic">$data</span>) {
    <span style="color:#8be9fd;font-style:italic">$temp</span> <span style="color:#ff79c6">=</span> <span style="color:#ff79c6">&amp;</span><span style="color:#8be9fd;font-style:italic">$data</span>;
    <span style="color:#ff79c6">foreach</span> (explode(<span style="color:#f1fa8c">&#39;.&#39;</span>, <span style="color:#8be9fd;font-style:italic">$v</span>[<span style="color:#bd93f9">1</span>]) <span style="color:#ff79c6">as</span> <span style="color:#8be9fd;font-style:italic">$key</span>) {
      <span style="color:#8be9fd;font-style:italic">$temp</span> <span style="color:#ff79c6">=</span> <span style="color:#ff79c6">&amp;</span><span style="color:#8be9fd;font-style:italic">$temp</span>[<span style="color:#8be9fd;font-style:italic">$key</span>] <span style="color:#ff79c6">??</span> <span style="color:#ff79c6">null</span>;
      <span style="color:#ff79c6">if</span> (<span style="color:#8be9fd;font-style:italic">$temp</span> <span style="color:#ff79c6">===</span> <span style="color:#ff79c6">null</span>) {
        <span style="color:#ff79c6">return</span> <span style="color:#ff79c6">null</span>;
      }
    }
    <span style="color:#ff79c6">return</span> <span style="color:#8be9fd;font-style:italic">$temp</span>;
  }, <span style="color:#8be9fd;font-style:italic">$template</span>);
}
</code></pre></div><p>Данная версия позволяет выполнять множественную замену вложенных шаблонов,
применяя функцию несколько раз для шаблона вида:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-yaml" data-lang="yaml">{variables.{data.item.type}.{id}.name}

</code></pre></div><p>так как разворачивает только ближайшие фигурные скобки.</p>
<p>Актуальная версия функции PHP для рендера шаблона по данным из ассоциативного массива: <a href="https://gist.github.com/fagci/5c189856f00f4e3c4329858db19b5841" target=_blank rel="noopener noreferrer">PHP function to render string path template using nested array</a>.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Работаем удалённо по SSH на карантине</title><link>https://mikhail-yudin.ru/blog/linux/rabotaem-udalyonno-po-ssh-na-karantine/</link><pubDate>Thu, 16 Apr 2020 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/linux/rabotaem-udalyonno-po-ssh-na-karantine/</guid><description>Работать удалённо начнём в последнюю пятницу перед карантином пока ещё никто не готов. Кто-то не желает переводить сотрудников на удалённую работу, кто-то не умеет или боится этого. А дядя Миша уже всё сделал. =)
Первая попытка настроить удалённый доступ К тому времени у меня уже давно имелся домашний сервер с доступом по SSH. Очень удобно проворачивать всякие штуки. Например обеспечивал постоянный доступ к Termux через ssh тоннель.
Начинать всегда стоит с быстрого способа создать и залить SSH ключ на сервер.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Работаем удалённо по SSH на карантине</h1></header>
                    <div class='entry-content'>
                            <p>Работать удалённо начнём в последнюю пятницу перед карантином пока ещё никто не готов.
Кто-то не желает переводить сотрудников на удалённую работу, кто-то не умеет или боится этого.
А дядя Миша уже всё сделал. =)</p>
<h2 id="первая-попытка-настроить-удалённый-доступ">Первая попытка настроить удалённый доступ</h2>
<p>К тому времени у меня уже давно имелся домашний сервер с доступом по SSH. Очень удобно проворачивать всякие штуки.
Например обеспечивал <a href="/blog/android/persistent-termux-access-through-ssh-tunnel">постоянный доступ к Termux через ssh тоннель</a>.</p>
<p>Начинать всегда стоит с <a href="/blog/linux/zalit-ssh-klyuch-na-server">быстрого способа создать и залить SSH ключ на сервер</a>.</p>
<p>Как это сделали, возвращаемся к посту про <a href="/blog/android/persistent-termux-access-through-ssh-tunnel">постоянный доступ к Termux через ssh тоннель</a>, только на этот раз делаем то же самое на рабочей машине.</p>
<p>Чтобы предусмотреть потерю соединения из-за отключения сети или других причин, советую поставить autossh в автозагрузку при старте системы или поднятию сети любым удобным для вас способом.
В своём Arch Linux добавил в systemd сервис:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-ini" data-lang="ini"><span style="color:#ff79c6">[Unit]</span>
<span style="color:#50fa7b">Description</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">AutoSSH service for a reverse tunnel</span>
<span style="color:#50fa7b">After</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">network.target</span>

<span style="color:#ff79c6">[Service]</span>
<span style="color:#50fa7b">ExecStart</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">/usr/bin/autossh -M 0 -q -N -o &#34;ServerAliveInterval 60&#34; -o &#34;ServerAliveCountMax 3&#34; myserver</span>

<span style="color:#ff79c6">[Install]</span>
<span style="color:#50fa7b">WantedBy</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">multi-user.target</span>
</code></pre></div><p>Таким образом, autossh запустится после поднятия сети. Флаг <code>-M 0</code> говорит о том что я не хочу использовать дополнительный порт для проверки живости соединения.
Пускай об этом позаботится ssh (<code>ServerAliveInterval</code>, <code>ServerAliveCountMax</code>). Далее указан алиас <code>myserver</code>, который ранее определяли в <code>~/.ssh/config</code>.</p>
<p>Далее произведём тестовый запуск службы:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sudo systemctl start autossh.service
</code></pre></div><p>Если не было ошибок, добавим службу в автозапуск:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sudo systemctl start autossh.service
</code></pre></div><p>Ещё советую протестировать соединение через наш обратный (reverse) SSH тоннель и поставить на выполнение что-то простое типа: <code>watch ps</code>. Это предотвратит &ldquo;залипание&rdquo; соединения. Такое происходит когда соединение установлено, а пакетов нет. И как понял, такое случается по специфике работы NAT: он убирает связь между хостами, а соединение об этом ничего не знает.</p>
<p>Сделав это, был доволен как слон собственно настроенному удалённому доступу к рабочей машине.</p>
<p>Однако, что-то пошло не так и примерно через неделю соединение отвалилось.
Пришлось доставать админа, чтобы получить доступ к внутренней сети хоть каким-нибудь способом. На помощь опять же пришёл SSH!</p>
<h2 id="настраиваем-проброс-портов-через-промежуточный-сервер">Настраиваем проброс портов через промежуточный сервер</h2>
<p>Самым быстрым способом оказалось использование прямого доступа по SSH к удалённой машине. Только пробросили порт не напрямую к рабочему компу, а к одному из внутренних серверов. Что же делать дальше? Ведь я хочу получить доступ к development серверу, а корячиться через всякие serveo или ngrok не кошерно&hellip;</p>
<p>На помощь пришла одна из возможностей ssh туннелирования. Эта штука называется ProxyJump. Настраивается это там же, в <code>~/.ssh/config</code> и очень просто:</p>
<pre><code class="language-conf" data-lang="conf">### Доступен напрямую
Host betajump
  HostName jumphost1.example.org
 
### Будет доступен через jumphost1.example.org (betajump)
Host behindbeta
  HostName behindbeta.example.org
  ProxyJump  betajump
</code></pre><p>Для behindbeta из примера проброс портов с него настраивается так же, как для обычного хоста.</p>
<p>Всё было круто. Но редактировать файлы по ssh как? Правда, надо. Хотя можно работать через репозиторий, но иногда хочется поковырять файлы на удалённой машине. Можно <code>vim</code>, <code>nano</code> или <code>mcedit</code> накрайняк. Но не так удобно. На помощь приходит утилита sshfs!</p>
<h2 id="получаем-доступ-к-удалённой-файловой-системе-через-sshfs">Получаем доступ к удалённой файловой системе через sshfs</h2>
<p>Сначала ставим утилиту если не установлена. Затем создаём директорию, куда будем монтировать. Например</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sudo mkdir /mnt/remote_work
</code></pre></div><p>ну или как удобнее и привычнее.
Затем монтируем как любую другую файловую систему:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sudo sshfs behindbeta:/var/www /mnt/remote_work
</code></pre></div><p>После двоеточия идёт путь к монтируемой директории на удалённой машине из примера с ProxyJump.</p>
<h2 id="в-заключение">В заключение</h2>
<p>Таким образом я работаю удалённо уже почти месяц на момент написания поста. Немного медленно правда, зато работа идёт.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Битва титанов: normalize.css против reset.css</title><link>https://mikhail-yudin.ru/blog/frontend/normalize-css-protiv-reset-css/</link><pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/normalize-css-protiv-reset-css/</guid><description>Использовать normalize.css практично и менее затратно. Сейчас расскажу почему и что меня подвело к использованию normalize.css вместо reset.css.
Всё-таки normalize.css это не reset.css Как бы это не было очевидно, разница большая между сбросом и нормализацией. Задача reset.css — сбросить все возможные стили для переопределения потом в коде. Почему таки задумался о разнице между двумя способами привести стили к одному виду?
Верстая этот блог понял, что должен снова заморачиваться с типографикой, хотя у браузеров по умолчанию она уже есть какая-то.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/normalize-css-protiv-reset-css/normalize-css-protiv-reset-css.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Битва титанов: normalize.css против reset.css</h1></header>
                    <div class='entry-content'>
                            <p>Использовать normalize.css практично и менее затратно.
Сейчас расскажу почему и что меня подвело к использованию normalize.css вместо reset.css.</p>
<h2 id="всё-таки-normalizecss-это-не-resetcss">Всё-таки normalize.css это не reset.css</h2>
<p>Как бы это не было очевидно, разница большая между сбросом и нормализацией.
Задача reset.css — сбросить все возможные стили для переопределения потом в коде.
Почему таки задумался о разнице между двумя способами привести стили к одному виду?</p>
<p>Верстая этот блог понял, что должен снова <a href="/notes/web-tipografika-dlya-razrabotchikov/">заморачиваться с типографикой</a>, хотя у браузеров по умолчанию она уже есть какая-то.
Правда у каждого браузера она своя.</p>
<p>А normalize.css решает в том числе и эту проблему.
В итоге сделал выбор в сторону normalize.css против reset.css.
Вместе с <a href="/frontend/most-recent-variant-of-css-system-font-families">системными шрифтами</a> это решение позволяет меньшими затратами достичь нужного результата и быстрее предоставить пользователю контент.</p>
<h2 id="где-скачать-normalizecss">Где скачать normalize.css</h2>
<p>Известный источник с самым большим комьюнити — <a href="https://github.com/necolas/normalize.css/" target=_blank rel="noopener noreferrer">normalize.css</a> от <a href="https://github.com/necolas" target=_blank rel="noopener noreferrer">Nicolas Gallagher</a>.
Официальный сайт проекта <a href="https://necolas.github.io/normalize.css/" target=_blank rel="noopener noreferrer">necolas.github.io/normalize.css</a>.</p>
<p>Так же существует <strong>более лёгкая версия normalize.css</strong> для топовых браузеров:
<a href="https://github.com/sindresorhus/modern-normalize" target=_blank rel="noopener noreferrer">sindresorhus/modern-normalize</a>.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Фикс ошибок компиляции библиотек в Termux</title><link>https://mikhail-yudin.ru/blog/android/termux-resolve-compile-troubles/</link><pubDate>Thu, 29 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/termux-resolve-compile-troubles/</guid><description>При компиляции библиотек или утилит порой возникают ошибки, связанные с несовместимостью опций компилятора или их недостаточностью для сборки.
Рабочее решение (проверено на sassc) Компиляция успешна при использовании флага --disable-march-tune-native:
gem install sassc --version=2.2.1 -- --disable-march-tune-native Благодарим @over
!!! Остальная часть статьи остаётся для ознакомления.
Внимание: этот метод не даёт возможность пользоваться результатами компиляции, даже при использовании -mcpu=native. Только для ознакомления. Следим за ситуацией: GitHub issue
Источник проблем Когда собирал этот блог в среде Termux с использованием новой версии Jekyll 4.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Фикс ошибок компиляции библиотек в Termux</h1></header>
                    <div class='entry-content'>
                            <p>При компиляции библиотек или утилит порой возникают ошибки, связанные с несовместимостью опций компилятора или их недостаточностью для сборки.</p>
<h2 id="рабочее-решение-проверено-на-sassc">Рабочее решение (проверено на sassc)</h2>
<p>Компиляция успешна при использовании флага <code>--disable-march-tune-native</code>:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">gem install sassc --version<span style="color:#ff79c6">=</span>2.2.1 -- --disable-march-tune-native
</code></pre></div><p>Благодарим <a href="https://github.com/sass/sassc-ruby/issues/150#issuecomment-769867455" target=_blank rel="noopener noreferrer">@over</a></p>
<blockquote>
<p>!!! Остальная часть статьи остаётся для ознакомления.</p>
</blockquote>
<blockquote>
<p>Внимание: этот метод не даёт возможность пользоваться результатами компиляции, даже при использовании <code>-mcpu=native</code>. Только для ознакомления. Следим за ситуацией: <a href="https://github.com/sass/sassc-ruby/issues/150" target=_blank rel="noopener noreferrer">GitHub issue</a></p>
</blockquote>
<h2 id="источник-проблем">Источник проблем</h2>
<p>Когда собирал этот блог в среде Termux с использованием новой версии Jekyll 4.0, столкнулся с проблемой, что sassc не хочет компилироваться при помощи clang.
Ошибка возникала следующая:</p>
<pre><code>error: the clang compiler does not support '-march=native'
</code></pre><p>Оптимальный вариант конечно сделать issue на GitHub по этому вопросу и ждать у моря погоды, но есть способ быстрее устранить эту проблему.</p>
<h2 id="убираем-опцию">Убираем опцию</h2>
<p>Первый способ решить проблему, который пришёл в голову, — залезть в Makefile и убрать опцию. Но что делать, если компилировать придётся новые версии библиотек? Долго и муторно.
Вторым решением представилось проксировать все вызовы clang через свой скрипт с обрезанием параметра <code>march</code>. Что собственно я и сделал.
Создал файл ~/bin/clang:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#ff79c6">#!/data/data/com.termux/files/usr/bin/env bash
</span><span style="color:#ff79c6"></span>~/../usr/bin/clang <span style="color:#f1fa8c">&#34;</span><span style="color:#f1fa8c">${</span>@/-march=native/<span style="color:#f1fa8c">}</span><span style="color:#f1fa8c">&#34;</span>
</code></pre></div><p>Конечно же нужно сделать файл исполняемым: <code>chmod +x ~/bin/clang</code>.</p>
<h2 id="подменяем-используемый-бинарник">Подменяем используемый бинарник</h2>
<p>Более-менее нормальный способ подмены — дописать в приоритетном порядке к переменной $PATH путь к папке <code>bin</code> в домашней директории.
Создадим файл <code>~/../usr/etc/profile.d/set_path_home_bin.sh</code> с содержанием:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">PATH</span><span style="color:#ff79c6">=</span><span style="color:#8be9fd;font-style:italic">$HOME</span>/bin:<span style="color:#8be9fd;font-style:italic">$PATH</span>
</code></pre></div><p>После чего <code>clang</code> будет искаться сначала в ~/bin.</p>
<p>Этого оказалось недостаточно, пришлось ещё добавить симлинки для архитектурно специфичных clang:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#8be9fd;font-style:italic">cd</span> ~/bin                              
ln -s clang aarch64-linux-android-clang
ln -s clang aarch64-linux-android-clang++
</code></pre></div><p>После чего перезапускаем сессию терминала и пробуем скомпилировать библиотеки снова.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Быстрый способ создать и залить SSH ключ на сервер</title><link>https://mikhail-yudin.ru/blog/linux/zalit-ssh-klyuch-na-server/</link><pubDate>Mon, 26 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/linux/zalit-ssh-klyuch-na-server/</guid><description>Создадим ключ для доступа к серверу SSH чтобы входить на сервер без пароля. Это безопаснее и быстрее.
Создание ключа Ключ с достаточной стойкостью создаём так:
ssh-keygen -t rsa -b 2048 -f ~/.ssh/host_id_rsa Заменить в названии ключа host на имя хоста, для которого ключ предназначен.
Заливка ключа на сервер Залить ключ можно командой:
ssh-copy-id -i ~/.ssh/host_id_rsa.pub user@host Так же заменить host на имя удалённого хоста в названии файла и адреса подключения, user на имя пользователя, под которым производится вход.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Быстрый способ создать и залить SSH ключ на сервер</h1></header>
                    <div class='entry-content'>
                            <p>Создадим ключ для доступа к серверу SSH чтобы входить на сервер без пароля. Это безопаснее и быстрее.</p>
<h2 id="создание-ключа">Создание ключа</h2>
<p>Ключ с достаточной стойкостью создаём так:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">ssh-keygen -t rsa -b <span style="color:#bd93f9">2048</span> -f ~/.ssh/host_id_rsa
</code></pre></div><p>Заменить в названии ключа <code>host</code> на имя хоста, для которого ключ предназначен.</p>
<h2 id="заливка-ключа-на-сервер">Заливка ключа на сервер</h2>
<p>Залить ключ можно командой:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">ssh-copy-id -i ~/.ssh/host_id_rsa.pub user@host
</code></pre></div><p>Так же заменить <code>host</code> на имя удалённого хоста в названии файла и адреса подключения, <code>user</code> на имя пользователя, под которым производится вход.
Если используется порт отличный от стандартного 22, дописать параметр например <code>-p 2222</code> в конец команды.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Постоянный доступ к Termux через ssh тоннель</title><link>https://mikhail-yudin.ru/blog/android/persistent-termux-access-through-ssh-tunnel/</link><pubDate>Sun, 25 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/persistent-termux-access-through-ssh-tunnel/</guid><description>Хочется постоянный доступ к Termux по ssh, но нет прямого доступа к смартфону или планшету по сети? Задачу решим используя домашний сервер или сервис для создания ssh тоннелей.
Пояснение.
На смартфоне запустится сервер на порту 2222. На удалённой машине должен быть открыт порт 22.
На удалённой машине будет занят (проброшен) порт 3022 для доступа к смартфону.
Подготавливаем Termux Если Termux только что установлен, делаем pkg update для обновления утилит и списка пакетов.</description><enclosure url="https://mikhail-yudin.ru/blog/android/persistent-termux-access-through-ssh-tunnel/persistent-termux-access-through-ssh-tunnel.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Постоянный доступ к Termux через ssh тоннель</h1></header>
                    <div class='entry-content'>
                            <p>Хочется постоянный доступ к Termux по ssh, но нет прямого доступа к смартфону или планшету по сети? Задачу решим используя домашний сервер или сервис для создания ssh тоннелей.</p>
<blockquote>
<p><strong>Пояснение.</strong><br>
На смартфоне запустится сервер на порту 2222. <br>
На удалённой машине должен быть открыт порт 22.<br>
На удалённой машине будет занят (проброшен) порт 3022 для доступа к смартфону.</p>
</blockquote>
<h2 id="подготавливаем-termux">Подготавливаем Termux</h2>
<p>Если Termux только что установлен, делаем <code>pkg update</code> для обновления утилит и списка пакетов.</p>
<p>Для разворачивания нужно:</p>
<ul>
<li>openssh — для доступа к Termux (установятся <strong>клиент ssh</strong> и <strong>сервер sshd</strong>);</li>
<li>autossh — для поддержания тоннеля;</li>
<li>termux-services — для автозапуска autossh.</li>
</ul>
<p>Установим пакеты разом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">pkg install openssh autossh termux-services
</code></pre></div><h2 id="создание-и-запуск-сервера-ssh-в-termux">Создание и запуск сервера ssh в Termux</h2>
<p>Сначала зададим пароль для доступа к Termux серверу ssh.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">passwd
</code></pre></div><p>Пропишем порт для сервера в файле <code>~/../usr/etc/ssh/sshd_config</code>:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-apacheconf" data-lang="apacheconf"><span style="color:#8be9fd;font-style:italic">Port</span> <span style="color:#bd93f9">2222</span>
<span style="color:#8be9fd;font-style:italic">PrintMotd</span> no
<span style="color:#8be9fd;font-style:italic">PasswordAuthentication</span> yes
<span style="color:#8be9fd;font-style:italic">PubkeyAcceptedKeyTypes</span> +ssh-dss
<span style="color:#8be9fd;font-style:italic">Subsystem</span> sftp <span style="color:#f1fa8c">/data/data/com.termux/files/usr/libexec/sftp-server</span>
</code></pre></div><p>Перезапустим сервер ssh:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sv down sshd
sv up sshd
</code></pre></div><p>Для запуска сервера при старте устройства делаем:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sv-enable sshd
</code></pre></div><p>Перейдём к настройке соединения.</p>
<h2 id="создание-ssh-тоннеля">Создание ssh тоннеля</h2>
<p>Допустим, что есть сервер ssh например <code>myserver</code>. Это или домашний сервер, или сервис, который предоставляет доступ к ssh серверу. Как пример — <a href="http://bitcoinshell.mooo.com" target=_blank rel="noopener noreferrer">Free Linux shell server</a>.</p>
<h3 id="а-способ-создания-для-ленивых">А. Способ создания для ленивых</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-sh" data-lang="sh">ssh -R 3022:localhost:2222 myserver.ru
</code></pre></div><h3 id="б-способ-для-прагматичных">Б. Способ для прагматичных</h3>
<p>Чтобы не прописывать каждый раз имя хоста, порт и прочее при соединении с ssh сервером для создания тоннеля, пропишем конфиг <code>~/.ssh/config</code>. Пример:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-apacheconf" data-lang="apacheconf"><span style="color:#8be9fd;font-style:italic">Host</span> srv_rev
<span style="color:#8be9fd;font-style:italic">User</span> username
<span style="color:#8be9fd;font-style:italic">Port</span> <span style="color:#bd93f9">22</span>
<span style="color:#8be9fd;font-style:italic">HostName</span> myserver.ru
<span style="color:#8be9fd;font-style:italic">RemoteForward</span> <span style="color:#bd93f9">3022</span> localhost:2222
<span style="color:#8be9fd;font-style:italic">ServerAliveInterval</span> <span style="color:#bd93f9">30</span>
<span style="color:#8be9fd;font-style:italic">ServerAliveCountMax</span> <span style="color:#bd93f9">1</span>
<span style="color:#8be9fd;font-style:italic">ExitOnForwardFailure</span> yes
</code></pre></div><p>Как создавать ключ для беспарольного входа по ssh читаем <a href="/linux/zalit-ssh-klyuch-na-server">в отдельной статье</a>.</p>
<p>Проверим, корректно ли настроили: должно отобразиться приглашение шелла, иначе придётся каждый раз вводить пароль при создании тоннеля. В случае с сервисом ввести пароль будет невозможно.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">ssh srv_rev
</code></pre></div><p>Если просит пароль — создайте ключ для входа.</p>
<h2 id="сервис-подключения-к-тоннелю">Сервис подключения к тоннелю</h2>
<p>Так как на предыдущем шаге в конфиге указали <code>RemoteForward</code>, остаётся только подключиться к серверу, используя параметры конфигурации.</p>
<p>Воспользуемся <code>termux-services</code>, чтобы каждый раз не вводить команду для соединения. Утилита запускает приложения сразу при создании сессии Termux (насколько сам понял).</p>
<p>Сервисы добавлять очень просто: создаём папку с названием сервиса, внутри файл <code>run</code> с правами на запуск и shebang который указывает на шелл <code>/bin/sh</code>.</p>
<p>Итак, по шагам:</p>
<ul>
<li>создаём папку</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">mkdir ~/../usr/var/service/autossh/
</code></pre></div><ul>
<li>создаём файл</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#39;#!/bin/sh&#39;</span> &gt; ~/../usr/var/service/autossh/run
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#39;exec autossh -M 20022 -NT -f srv_rev&#39;</span> &gt;&gt; ~/../usr/var/service/autossh/run
</code></pre></div><ul>
<li>фиксим shebang для Termux</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">termux-fix-shebang ~/../usr/var/service/autossh/run
</code></pre></div><ul>
<li>даём права на исполнение</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">chmod +x ~/../usr/var/service/autossh/run
</code></pre></div><ul>
<li>запускаем сервис</li>
</ul>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">sv up autossh
</code></pre></div><p>После этого установится ssh тоннель для доступа к Termux с удалённого сервера, если настроено верно.</p>
<h2 id="подключаемся-к-termux">Подключаемся к Termux</h2>
<p>Соединяемся с удалённым сервером по ssh. Затем подключаемся к ssh в Termux, который затоннелирован на порт 3022:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">ssh 127.0.0.1 -p <span style="color:#bd93f9">3022</span>
</code></pre></div><h2 id="что-получили-в-итоге">Что получили в итоге</h2>
<p>Теперь после запуска Termux на удалённом сервере появится доступ по тоннелю к терминалу на смартфоне. Так как соединение на смартфоне может обрываться время от времени по разным причинам, autossh поможет переустанавливать соединение к удалённому серверу ssh и восстанавливать тоннель. Желательно, чтобы порт 20022 на удалённой машине был открыт для быстрого реагирования autossh на разрыв соединения.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>CSS ищет баги в SEO: картинки без alt и внешние ссылки</title><link>https://mikhail-yudin.ru/blog/frontend/css-noalt-external-link-counter/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/css-noalt-external-link-counter/</guid><description>В 2015 году писал CSS стиль для stylish, для подсчёта изображений без атрибута alt, чтобы видеть где и сколько забыл проставить.
Да, считать средствами css уже давно можно Посмотрев в доки на mozilla.org, увидим что в спецификации CSS 2.1, а это аж в середине 2011 года, появилась возможность использовать счётчики для их инкрементирования через свойства CSS. Кто не знает, как и что — привожу краткий пример для нумерации заголовков.
article { counter-reset: h; } article h2 { counter-increment: h; } article h2:before { content: counter(h) &amp;#39;.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/css-noalt-external-link-counter/css-noalt-external-link-counter.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>CSS ищет баги в SEO: картинки без alt и внешние ссылки</h1></header>
                    <div class='entry-content'>
                            <p>В 2015 году писал CSS стиль для stylish, для подсчёта изображений без атрибута alt, чтобы видеть где и сколько забыл проставить.</p>
<h2 id="да-считать-средствами-css-уже-давно-можно">Да, считать средствами css уже давно можно</h2>
<p>Посмотрев в доки на mozilla.org, увидим что в <a href="https://www.w3.org/TR/CSS21/generate.html#counters" target=_blank rel="noopener noreferrer">спецификации CSS 2.1</a>, а это аж в <a href="https://ru.wikipedia.org/wiki/CSS" target=_blank rel="noopener noreferrer">середине 2011 года</a>, появилась возможность использовать счётчики для их инкрементирования через свойства CSS.
Кто не знает, как и что — привожу краткий пример для нумерации заголовков.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">article</span> {
  <span style="color:#ff79c6">counter-reset</span>: h;
}
<span style="color:#ff79c6">article</span> <span style="color:#ff79c6">h2</span> {
  <span style="color:#ff79c6">counter-increment</span>: h;
}
<span style="color:#ff79c6">article</span> <span style="color:#ff79c6">h2</span>:before {
  <span style="color:#ff79c6">content</span>: <span style="color:#8be9fd;font-style:italic">counter</span>(h) <span style="color:#f1fa8c">&#39;. &#39;</span>;
}
</code></pre></div><p>В этом примере для каждого материала article сбрасывается счётчик <code>h</code>, который будет хранить количество заголовков второго уровня.
Затем для каждого встречающегося тега h2 увеличиваем значение счётчика и потом приписываем в начало заголовков значение счётчика.</p>
<h2 id="что-я-сделал">Что я сделал</h2>
<p>Реализация старая, оставлю как есть.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css"><span style="color:#ff79c6">body</span> {
	<span style="color:#ff79c6">counter-reset</span>: noalt extLinks;
}

<span style="color:#ff79c6">img</span>:not<span style="color:#ff79c6">([</span><span style="color:#ff79c6">alt</span><span style="color:#ff79c6">])</span> {
  <span style="color:#ff79c6">counter-increment</span>: noalt;
}

<span style="color:#ff79c6">a</span><span style="color:#ff79c6">[</span><span style="color:#ff79c6">href</span> <span style="color:#ff79c6">^=</span> <span style="color:#f1fa8c">&#39;http&#39;</span><span style="color:#ff79c6">]</span> {
	<span style="color:#ff79c6">counter-increment</span>: extLinks;
}

<span style="color:#ff79c6">body</span>:after {
  <span style="color:#ff79c6">content</span>: <span style="color:#f1fa8c">&#39;noalt: &#39;</span> <span style="color:#8be9fd;font-style:italic">counter</span>(noalt) <span style="color:#f1fa8c">&#39;, external links: &#39;</span> <span style="color:#8be9fd;font-style:italic">counter</span>(extLinks);
  <span style="color:#ff79c6">position</span>: <span style="color:#ff79c6">fixed</span>;
  <span style="color:#ff79c6">bottom</span>: <span style="color:#bd93f9">0</span>;
  <span style="color:#ff79c6">right</span>: <span style="color:#bd93f9">0</span>;
  <span style="color:#ff79c6">z-index</span>: <span style="color:#bd93f9">1000000</span>;
  <span style="color:#ff79c6">padding</span>: <span style="color:#bd93f9">2</span><span style="color:#8be9fd">px</span> <span style="color:#bd93f9">16</span><span style="color:#8be9fd">px</span>;
  <span style="color:#ff79c6">background</span>: <span style="color:#8be9fd;font-style:italic">rgba</span>(<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0.75</span>);
  <span style="color:#ff79c6">color</span>: <span style="color:#bd93f9">#0f0</span>;
  <span style="color:#ff79c6">font-size</span>: <span style="color:#bd93f9">11</span><span style="color:#8be9fd">px</span>;
  <span style="color:#ff79c6">line-height</span>: <span style="color:#ff79c6">normal</span>;
}
</code></pre></div><p>В коде выше помимо подсчёта изображений без атрибута alt ещё считал количество внешних ссылок. Критерием было наличие http в начале ссылки, что недостоверно, т.к. отслеживает только абсолютные ссылки. Доработайте сами. Тут показал только пример.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Системные шрифты для веб 2019</title><link>https://mikhail-yudin.ru/blog/frontend/most-recent-variant-of-css-system-font-families/</link><pubDate>Mon, 12 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/most-recent-variant-of-css-system-font-families/</guid><description>Собрал подборку стандартных шрифтов CSS для сайтов. Стандартные веб шрифты ускоряют загрузку страницы и делают шрифты привычными для глаз.
Системные шрифты — что это такое Системные шрифты — это шрифты, предустановленные в операционной системе по умолчанию. Для каждой версии операционной системы свой список системных шрифтов по умолчанию, вот краткий список:
Windows Версия Шрифт 10 Segoe UI1 8.1 Segoe UI1 8 Segoe UI1 7 Segoe UI1 Vista Segoe UI1 XP Tahoma2 Me (Millennium Edition) MS Sans Serif3 2000 Tahoma2 98 Second Edition MS Sans Serif3 98 MS Sans Serif3 NT 4 MS Sans Serif3 95 MS Sans Serif3 NT 3.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/most-recent-variant-of-css-system-font-families/most-recent-variant-of-css-system-font-families.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Системные шрифты для веб 2019</h1></header>
                    <div class='entry-content'>
                            <p>Собрал подборку стандартных шрифтов CSS для сайтов. Стандартные веб шрифты ускоряют загрузку страницы и делают шрифты привычными для глаз.</p>
<h2 id="системные-шрифты-mdash-что-это-такое">Системные шрифты — что это такое</h2>
<p>Системные шрифты — это шрифты, предустановленные в операционной системе по умолчанию. Для каждой версии операционной системы свой список системных шрифтов по умолчанию, вот краткий список:</p>
<h3 id="windows">Windows</h3>
<table>
<thead>
<tr>
<th>Версия</th>
<th>Шрифт</th>
</tr>
</thead>
<tbody>
<tr>
<td>10</td>
<td>Segoe UI1</td>
</tr>
<tr>
<td>8.1</td>
<td>Segoe UI1</td>
</tr>
<tr>
<td>8</td>
<td>Segoe UI1</td>
</tr>
<tr>
<td>7</td>
<td>Segoe UI1</td>
</tr>
<tr>
<td>Vista</td>
<td>Segoe UI1</td>
</tr>
<tr>
<td>XP</td>
<td>Tahoma2</td>
</tr>
<tr>
<td>Me (Millennium Edition)</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>2000</td>
<td>Tahoma2</td>
</tr>
<tr>
<td>98 Second Edition</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>98</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>NT 4</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>95</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>NT 3.5</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>NT 3.1</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>3.1</td>
<td>MS Sans Serif3</td>
</tr>
<tr>
<td>3</td>
<td>Helv3</td>
</tr>
<tr>
<td>2</td>
<td>Helv3</td>
</tr>
<tr>
<td>1</td>
<td>Helv3</td>
</tr>
<tr>
<td>&mdash;</td>
<td>&mdash;</td>
</tr>
</tbody>
</table>
<p><a href="https://www.granneman.com/webdev/coding/css/fonts-and-formatting/default-fonts" target=_blank rel="noopener noreferrer">Источник</a></p>
<h3 id="mac-os">Mac OS</h3>
<table>
<thead>
<tr>
<th>Версия</th>
<th>Шрифт</th>
</tr>
</thead>
<tbody>
<tr>
<td>10.15</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10.14 Mojave</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10.13 High Sierra</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10.12 Sierra</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10.11 El Capitan</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10.10 Yosemite</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>10.9 Mavericks</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.8 Mountain Lion</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.7 Lion</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.6 Snow Leopard</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.5 Leopard</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.4 Tiger</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.3 Panther</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.2 Jaguar</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.1 Puma</td>
<td>Lucida Grande</td>
</tr>
<tr>
<td>10.0 Cheetah</td>
<td>Lucida Grande</td>
</tr>
</tbody>
</table>
<p><a href="https://www.granneman.com/webdev/coding/css/fonts-and-formatting/default-fonts" target=_blank rel="noopener noreferrer">Источник</a></p>
<h3 id="linux">Linux</h3>
<p>&hellip;</p>
<h3 id="ios">iOS</h3>
<table>
<thead>
<tr>
<th>Версия</th>
<th>Шрифт</th>
</tr>
</thead>
<tbody>
<tr>
<td>12</td>
<td>San Francisco</td>
</tr>
<tr>
<td>11</td>
<td>San Francisco</td>
</tr>
<tr>
<td>10</td>
<td>San Francisco</td>
</tr>
<tr>
<td>9</td>
<td>San Francisco</td>
</tr>
<tr>
<td>8</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>7</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>6</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>5</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>4</td>
<td>Helvetica Neue</td>
</tr>
<tr>
<td>iPhone OS 3</td>
<td>Helvetica</td>
</tr>
<tr>
<td>iPhone OS 2</td>
<td>Helvetica</td>
</tr>
<tr>
<td>iPhone OS 1</td>
<td>Helvetica</td>
</tr>
</tbody>
</table>
<p><a href="https://www.granneman.com/webdev/coding/css/fonts-and-formatting/default-fonts" target=_blank rel="noopener noreferrer">Источник</a></p>
<h3 id="android">Android</h3>
<table>
<thead>
<tr>
<th>Версия</th>
<th>Шрифт</th>
</tr>
</thead>
<tbody>
<tr>
<td>4.3 и ниже</td>
<td>Droid</td>
</tr>
<tr>
<td>5.0 Lollipop и выше</td>
<td>Roboto</td>
</tr>
</tbody>
</table>
<p><a href="https://en.wikipedia.org/wiki/Roboto" target=_blank rel="noopener noreferrer">Источник</a></p>
<h2 id="зачем-использовать-вместо-веб-шрифтов">Зачем использовать вместо веб-шрифтов</h2>
<p>Да, используя веб-шрифты, например <a href="https://fonts.google.com/" target=_blank rel="noopener noreferrer">Google Fonts</a>, получится очень красивая типографика. Здесь есть большой простор для фантазии, многообразие шрифтов и их бесплатность порадует каждого. Но не всегда пользователя.</p>
<p>Дело в том, что веб шрифты в любом случае нужно дополнительно загружать по сети, загружать в память, что уже вносит дополнительную задержку в отображение контента.</p>
<p>Помимо этого, прописываются дополнительные атрибуты, чтобы веб-шрифты подгружались как нужно. Другое дело системные семейства шрифтов.</p>
<h2 id="что-такое-эти-системные-семейства-шрифтов">Что такое эти системные семейства шрифтов</h2>
<p>Ещё такие шрифты называют веб-безопасными. Список системных шрифтов на <a href="https://www.w3schools.com/cssref/css_websafe_fonts.asp" target=_blank rel="noopener noreferrer">W3C Schools</a>. Так же смотрите запись в <a href="https://www.granneman.com/webdev/coding/css/fonts-and-formatting/default-fonts" target=_blank rel="noopener noreferrer">блоге Scott Granneman</a>.</p>
<p>Если интересуют надёжные источники — в блоге Scott Granneman перечислены ссылки.</p>
<p>После того, как выявлены шрифты, присутствующие в каждой из операционных систем, выбираются из них те, что похожи друг на друга в семействе.</p>
<p>В посте это опущу, оставлю пару ссылок:</p>
<p><a href="https://www.smashingmagazine.com/2015/11/using-system-ui-fonts-practical-guide/" target=_blank rel="noopener noreferrer">Using UI System Fonts In Web Design: A Quick Practical Guide</a>
<a href="https://furbo.org/2018/03/28/system-fonts-in-css/" target=_blank rel="noopener noreferrer">System Fonts in CSS</a></p>
<h2 id="мой-вариант">Мой вариант</h2>
<p>Полазив по GitHub, Medium и некоторым другим ресурсам, пришёл к такому виду стека системных шрифтов 2019 года:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">:root {
  <span style="color:#8be9fd;font-style:italic">--font-family-sans-serif</span>: <span style="color:#ff79c6">-</span>apple-system, BlinkMacSystemFont, <span style="color:#f1fa8c">&#34;Segoe UI&#34;</span>, <span style="color:#f1fa8c">&#34;Roboto&#34;</span>, <span style="color:#f1fa8c">&#34;Helvetica Neue&#34;</span>, Arial, <span style="color:#ff79c6">sans-serif</span>, <span style="color:#f1fa8c">&#34;Apple Color Emoji&#34;</span>, <span style="color:#f1fa8c">&#34;Segoe UI Emoji&#34;</span>, <span style="color:#f1fa8c">&#34;Segoe UI Symbol&#34;</span>;
  <span style="color:#8be9fd;font-style:italic">--font-family-sans-serif-condensed</span>: <span style="color:#f1fa8c">&#34;DINNextW01-CondensedMed&#34;</span>, <span style="color:#f1fa8c">&#34;AvenirNextCondensed-Bold&#34;</span>, <span style="color:#f1fa8c">&#34;Futura-CondensedExtraBold&#34;</span>, HelveticaNeue-CondensedBold, <span style="color:#f1fa8c">&#34;Ubuntu Condensed&#34;</span>, <span style="color:#f1fa8c">&#34;Liberation Sans Narrow&#34;</span>, <span style="color:#f1fa8c">&#34;Franklin Gothic Demi Cond&#34;</span>, <span style="color:#f1fa8c">&#34;Arial Narrow&#34;</span>, <span style="color:#f1fa8c">&#34;Roboto Condensed&#34;</span>, <span style="color:#ff79c6">sans-serif</span><span style="color:#ff79c6">-</span><span style="color:#ff79c6">condensed</span>, Arial, <span style="color:#f1fa8c">&#34;Trebuchet MS&#34;</span>, <span style="color:#f1fa8c">&#34;Lucida Grande&#34;</span>, Tahoma, <span style="color:#ff79c6">sans-serif</span>;
  <span style="color:#8be9fd;font-style:italic">--font-family-serif</span>: Georgia, Times, Times New Roman, <span style="color:#ff79c6">serif</span>;
  <span style="color:#8be9fd;font-style:italic">--font-family-mono</span>: SFMono-Regular, Consolas, <span style="color:#f1fa8c">&#34;Liberation Mono&#34;</span>, Menlo, Courier, <span style="color:#ff79c6">monospace</span>;
}
.<span style="color:#50fa7b">condensed</span> {
  <span style="color:#ff79c6">font-family</span>: <span style="color:#50fa7b">var</span>(<span style="color:#ff79c6">--</span>font<span style="color:#ff79c6">-</span>family<span style="color:#ff79c6">-</span><span style="color:#ff79c6">sans-serif</span><span style="color:#ff79c6">-</span><span style="color:#ff79c6">condensed</span>);
  <span style="color:#ff79c6">font-stretch</span>: <span style="color:#ff79c6">condensed</span>;
}
</code></pre></div><p><a href="https://gist.github.com/fagci/b4a2409a52551a148405a4b65b20b6c5" target=_blank rel="noopener noreferrer">GitHub Gist</a></p>
<p>Ещё советую проверить, <a href="/notes/symbols-font-check/">какие символы видны</a> при использовании стандартных шрифтов на этом сайте.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Jekyll календарь на чистом Liquid template engine</title><link>https://mikhail-yudin.ru/blog/frontend/jekyll-calendar-css-grid/</link><pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/jekyll-calendar-css-grid/</guid><description>Захотел попробовать сделать для своего блога на Jekyll календарь с использованием Liquid template engine. Не хотелось использовать JS библиотеки, решил написать календарик на чистом Liquid.
Предыстория Делал календарик для отображения даты публикации постов. Решил не заморачиваться с написанием или поиском плагинов, взялся делать самостоятельно. К тому же, изучая CSS grid system понял, что делая минимум телодвижений можно заставить отображаться сквозной &amp;ldquo;список&amp;rdquo; дней с разбивкой на недели.
Jekyll календарь на чистом Liquid Первым делом думал о получении даты начала месяца.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/jekyll-calendar-css-grid/jekyll-calendar-css-grid.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Jekyll календарь на чистом Liquid template engine</h1></header>
                    <div class='entry-content'>
                            <p>Захотел попробовать сделать для своего блога на Jekyll календарь с использованием Liquid template engine. Не хотелось использовать JS библиотеки, решил написать календарик на чистом Liquid.</p>
<h2 id="предыстория">Предыстория</h2>
<p>Делал календарик для отображения даты публикации постов. Решил не заморачиваться с написанием или поиском плагинов, взялся делать самостоятельно. К тому же, изучая CSS grid system понял, что делая минимум телодвижений можно заставить отображаться сквозной &ldquo;список&rdquo; дней с разбивкой на недели.</p>
<h2 id="jekyll-календарь-на-чистом-liquid">Jekyll календарь на чистом Liquid</h2>
<p>Первым делом думал о получении даты начала месяца. Сделать это просто:</p>
<pre><code class="language-liquid" data-lang="liquid">{{ 'now' | date: '%Y-%m-01' }}
</code></pre><p>Следующее что стоило сделать — каким-то образом перебрать все дни. Сделать это можно легко. Благо в сутках 24 часа =)</p>
<pre><code class="language-liquid" data-lang="liquid">{% raw %}{% for i in (0..30) %}
{% assign day = 86400 | times: i | plus: month_starts_ts %}
{% endfor %}{% endraw %}
</code></pre><p>Оставалась ещё проблемка: выводить нужно дни до первого числа месяца, чтобы правильно отобразить календарь средствами CSS grid. Пришлось оглядываться назад на недельку и вставлять заглушки для дней с прошлого месяца. Можно конечно и отображать, но делать цвет шрифта приглушённым.</p>
<pre><code class="language-liquid" data-lang="liquid">{% raw %}
{% for i in (-7..30) %}

{% assign day = 86400 | times: i | plus: month_starts_ts %}
{% assign dow = day | date: '%u' %}
{% assign m = day | date: '%m' %}

{% unless fd %}
{% if dow == '7' %}{% assign fd = true %}{% endif %}
{% continue %}
{% endunless %}

{% if month == m %}

{% case dow %}
{% when '6' %}&lt;span class=&quot;calendar__we {{ has_posts }} &quot;&gt;
  {% when '7' %}&lt;span class=&quot;calendar__we {{ has_posts }}&quot;&gt;
  {% else %}&lt;span class=&quot;{{ has_posts }}&quot;&gt;
{% endcase %}{{ day | date: '%e' }}&lt;/span&gt;

{% else %}&lt;span&gt;&lt;/span&gt;{% endif %}

{% endfor %}
{% endraw %}
</code></pre><p>Таким образом, <code>fd</code> сигнализирует о том, что попали на первый день календарного месяца.</p>
<p>Осталось отобразить наличие опубликованных постов в определённый день. С наскоку заюзать фильтр по дате не удалось, сделал через обычное условие.</p>
<p>Итоговый вид скрипта:</p>
<pre><code class="language-liquid" data-lang="liquid">{% raw %}
{% assign month_starts = 'now' | date: '%Y-%m-01' %}
{% assign month_starts_ts = month_starts | date: &quot;%s&quot; %}
{% assign month = 'now' | date: &quot;%m&quot; %}
{% assign fd = false %}
&lt;div class=&quot;calendar&quot;&gt;
&lt;b&gt;Пн&lt;/b&gt;&lt;b&gt;Вт&lt;/b&gt;&lt;b&gt;Ср&lt;/b&gt;&lt;b&gt;Чт&lt;/b&gt;&lt;b&gt;Пт&lt;/b&gt;
&lt;b class=&quot;calendar__we&quot;&gt;Сб&lt;/b&gt;
&lt;b class=&quot;calendar__we&quot;&gt;Вс&lt;/b&gt;
{%- for i in (-7..30) %}
{%- assign day = 86400 | times: i | plus: month_starts_ts %}
{%- assign dow = day | date: '%u' %}
{%- assign m = day | date: '%m' %}
{%- assign dayf = day | date: &quot;%Y-%m-%d&quot; %}
{%- unless fd %}
{%- if dow == '7' %}{% assign fd = true %}{% endif %}
{%- continue %}
{%- endunless %}

{%- if month == m %}
{%- assign has_posts = '' %}
{%- for post in site.posts %}
    {%- assign d = post.date | date: &quot;%Y-%m-%d&quot; %}
    {%- if d == dayf %}{% assign has_posts = 'calendar__ext' %}{% break %}{% endif %}
{%- endfor %}
{%- case dow %}
{%- when '6' %}&lt;span class=&quot;calendar__we {{ has_posts }} &quot;&gt;
  {%- when '7' %}&lt;span class=&quot;calendar__we {{ has_posts }}&quot;&gt;
  {%- else %}&lt;span class=&quot;{{ has_posts }}&quot;&gt;
{%- endcase %}{{ day | date: '%e' }}&lt;/span&gt;
{%- else %}&lt;span&gt;&lt;/span&gt;{% endif %}
{%- endfor %}
&lt;/div&gt;
{% endraw %}
</code></pre><h2 id="вёрстка-календаря-средствами-css-grid">Вёрстка календаря средствами CSS grid</h2>
<p>С сеткой всё просто, когда знаешь, как пользоваться. Нужно указать ширину и высоту ячеек и их количество в строке.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-scss" data-lang="scss"><span style="color:#50fa7b">.calendar</span> {
  <span style="color:#ff79c6">display</span>: <span style="color:#ff79c6">grid</span>;
  <span style="color:#ff79c6">grid-template-columns</span>: <span style="color:#ff79c6">repeat</span><span style="color:#ff79c6">(</span><span style="color:#ff79c6">7</span><span style="color:#ff79c6">,</span> <span style="color:#ff79c6">2rem</span><span style="color:#ff79c6">)</span>;
  <span style="color:#ff79c6">line-height</span>: <span style="color:#ff79c6">2rem</span>;
  <span style="color:#ff79c6">text-align</span>: <span style="color:#ff79c6">center</span>;
}
<span style="color:#50fa7b">.calendar__we</span> {
  <span style="color:#ff79c6">color</span>: #e22;
}
<span style="color:#50fa7b">.calendar__ext</span> {
  <span style="color:#ff79c6">font-style</span>: <span style="color:#ff79c6">normal</span>;
  <span style="color:#ff79c6">position</span>: <span style="color:#ff79c6">relative</span>;
  <span style="color:#ff79c6">&amp;</span>:after{
    <span style="color:#ff79c6">content</span>: <span style="color:#f1fa8c">&#39;•&#39;</span>;
    <span style="color:#ff79c6">position</span>: <span style="color:#ff79c6">absolute</span>;
    <span style="color:#ff79c6">top</span>: <span style="color:#ff79c6">-</span><span style="color:#50fa7b">.45em</span>;
    <span style="color:#ff79c6">right</span>: <span style="color:#50fa7b">.125em</span>;
  }
}
</code></pre></div><h2 id="заключение">Заключение</h2>
<p>Такой календарь удобно использовать скорее для бо́льших промежутков времени, т.к. всей картины периодичности постинга не видно. Однако, это мой первый опыт доскональной работы с Jekyll Liquid template engine и реализации календаря с использованием модного и удобного CSS grid.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Игра про уничтожение блоков с использованием HTML5 canvas</title><link>https://mikhail-yudin.ru/blog/frontend/html5-canvas-block-destruction-game/</link><pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/html5-canvas-block-destruction-game/</guid><description>В детстве очень любил простую игру, где нужно уничтожать блоки одного цвета, чтобы очистить экран. Как начал заниматься изучением HTML5 canvas, решил реализовать её.
Поиграть можно тут: демка.
Суть игры Смысл игры был прост: есть поле, на котором разбросаны разноцветные блоки. Эти блоки гравитацией тянет вниз. Игрок может уничтожать блоки, выбирая один из группы одноцветных рядом по горизонтали и вертикали. Игра очень похожа &amp;ldquo;на три в ряд&amp;rdquo;, разница только в том, что блоки уничтожаются все по близлежащему цвету, не только в ряд.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/html5-canvas-block-destruction-game/block-destruction-game.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Игра про уничтожение блоков с использованием HTML5 canvas</h1></header>
                    <div class='entry-content'>
                            <p>В детстве очень любил простую игру, где нужно уничтожать блоки одного цвета, чтобы очистить экран. Как начал заниматься изучением HTML5 canvas, решил реализовать её.</p>
<p>Поиграть можно тут: <a href="/projects/block-destruction-game">демка</a>.</p>
<h2 id="суть-игры">Суть игры</h2>
<p>Смысл игры был прост: есть поле, на котором разбросаны разноцветные блоки. Эти блоки гравитацией тянет вниз. Игрок может уничтожать блоки, выбирая один из группы одноцветных рядом по горизонтали и вертикали. Игра очень похожа &ldquo;на три в ряд&rdquo;, разница только в том, что блоки уничтожаются все по близлежащему цвету, не только в ряд.</p>
<p>Задача игрока — убрать все блоки, или оставить как можно меньше. За уничтоженный блок начисляется очко. Всегда максимальное количество возможных очков равно площади поля. Поэтому даже если убраны не все блоки, можно соревноваться набирая большее количество очков.</p>
<h2 id="начало-реализации-игры-знакомство-с-html5-canvas">Начало реализации игры, знакомство с html5 canvas</h2>
<p>Первым делом стал заполнять экран блоками. Создал двумерный массив, рандомно назначил цвета.</p>
<p>Далее нужно было написать логику уничтожения блоков одного цвета. Вроде бы алгоритм простой, но столкнулся с трудностью обхода прилежащих блоков. Некоторое время экспериментируя, решил создать дополнительный массив, в котором хранил информацию об обойдённых блоках. Сама функция рекурсивно обходила их по всем четырём сторонам, назначала блоки, подлежащие уничтожению.</p>
<p>Мало сделать уничтожение блоков, предстояло сымулировать гравитацию. Сделать было легко, просто обходим столбцы и смещаем все блоки вниз. В игре есть ещё момент: когда столбец становится пуст, для уничтожения смежных блоков нужно удалить пустой столбец, или сместить оставшиеся блоки так, чтобы получились новые цветовые группы.</p>
<h2 id="оптимизация-отрисовки-html5-canvas">Оптимизация отрисовки html5 canvas</h2>
<p>Ладно, блоки уничтожаются. Процесс обхода оптимизирован. Но всё же игра на html5 canvas тормозила при уничтожении большого количества блоков. Причина была в том, что на перерисовку html5 canvas нужно время. Если блоков достаточно много (ведь играть на поле маленького размера не интересно), перерисовка занимала порой более 1 секунды.</p>
<p>Нужно было срочно с этим разбираться. Стал искать решения в интернетах.</p>
<p>Самое простое, что можно было сделать — это заливать области только после обозначения зон заливки. Но такое решение не особо помогло, нужно было применять более эффективный способ оптимизации.</p>
<p>В итоге я решил использовать информацию об обновившихся блоках, чтобы рисовать только в тех местах, где действительно произошли изменения. Так же создал CanvasBuffer для рисования в фоне и быстрой перерисовки участков.</p>
<p>После этих оптимизаций, игра по уничтожению блоков на html5 canvas получилась настолько быстрой, что при большом количестве блоков и небольшом количестве цветов было ощущение, будто песок осыпается под собственной тяжестью.</p>
<p>Код первоначальной версии игры можно посмотреть на github: <a href="https://github.com/fagci/block-destruction-game" target=_blank rel="noopener noreferrer">block-destruction-game</a>.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Минимальный файл сброса стилей minireset.css</title><link>https://mikhail-yudin.ru/blog/frontend/minimalniy-reset-css/</link><pubDate>Tue, 30 Jul 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/minimalniy-reset-css/</guid><description>При создании нового веб проекта необходимо правильно начать разработку, чтобы потом не заморачиваться с лишними отступами, непонятно откуда появившимися, либо с тем, что блоки имеют не ту ширину, которую ожидаешь, изображения занимают больше дозволенной ширины и прочее, чего можно избежать при помощи файла сброса стилей.
Тернистый путь Существует много вариантов, версий normalize.css, reset.css, у каждой есть свои достоинства и недостатки. Приходится вносить правки иногда, переопределять уже существующие стили. К тому же, многие решения довольно тяжёлые, ведь зачем всё приводить к нормализованному виду, чтобы затем переопределять многие из свойств?</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/minimalniy-reset-css/minimalniy-reset-css.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Минимальный файл сброса стилей minireset.css</h1></header>
                    <div class='entry-content'>
                            <p>При создании нового веб проекта необходимо правильно начать разработку, чтобы потом не заморачиваться с лишними отступами, непонятно откуда появившимися, либо с тем, что блоки имеют не ту ширину, которую ожидаешь, изображения занимают больше дозволенной ширины и прочее, чего можно избежать при помощи файла сброса стилей.</p>
<h2 id="тернистый-путь">Тернистый путь</h2>
<p>Существует много вариантов, версий normalize.css, reset.css, у каждой есть свои достоинства и недостатки. Приходится вносить правки иногда, переопределять уже существующие стили. К тому же, многие решения довольно тяжёлые, ведь зачем всё приводить к нормализованному виду, чтобы затем переопределять многие из свойств?</p>
<p>До того, как я обнаружил для себя reset.css, приходилось каждый раз указывать своё значение margin, padding и box-sizing, сбрасывать значение list-style для немаркированных списков, потому как при первоначальной вёрстке они чаще всего используются для построения многоуровневых меню, иногда и сами списки перестилизуются.</p>
<p>Чтобы всего этого избежать, можно воспользоваться минимальным файлом сброса стилей.</p>
<h2 id="легковесное-решение">Легковесное решение</h2>
<p>Можно пойти по пути минимализма и сбросить только основные свойства, которые чаще всего требуют сброса. Раньше делал так:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-css" data-lang="css">
<span style="color:#ff79c6">*</span> {
  <span style="color:#ff79c6">margin</span>: <span style="color:#bd93f9">0</span>;
  <span style="color:#ff79c6">padding</span>: <span style="color:#bd93f9">0</span>;
  <span style="color:#ff79c6">box-sizing</span>: <span style="color:#ff79c6">border-box</span>;
}

</code></pre></div><p>И этого было вполне достаточно. Но позже я понял, что так делать не стоит. Селектор так себе, заголовки страдают и ещё кое-какие грабли появляются от такой простоты.</p>
<p>Позже нашёл простое современное решение — минимальный и в то же время более полноценный вариант сброса стилей <a href="https://github.com/jgthms/minireset.css" target=_blank rel="noopener noreferrer">minireset.css</a></p>
<p>В итоге когда начинаю проект, мне хватает только minireset.css для сброса основных стилей и дальше уже приятно вести разработку. Конечно иногда возникает желание дописать что-то в исходник minireset.css, но пока это не дорастает до pull request.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Живая разработка в Epsilon Notes</title><link>https://mikhail-yudin.ru/blog/android/epsilon-notes/</link><pubDate>Sun, 28 Jul 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/epsilon-notes/</guid><description>Думаю, многим удобно делать заметки, записывать идеи или даже реализовывать их со своего смартфона. Ведь правда: достал из кармана мобилу, тык-тык и дело сделано, можно дальше заниматься другими делами. Иногда появляется время в общественном месте, а хочется проверить идею, а под рукой только смартфон. Кажется не удобно на нём программировать. Однако есть решение как для фронтендеров, так и для копирайтеров. И оно называется Epsilon Notes. В нём как раз и пишу этот материал.</description><enclosure url="https://mikhail-yudin.ru/blog/android/epsilon-notes/en.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>Живая разработка в Epsilon Notes</h1></header>
                    <div class='entry-content'>
                            <p>Думаю, многим удобно делать заметки, записывать идеи или даже реализовывать их со своего смартфона. Ведь правда: достал из кармана мобилу, тык-тык и дело сделано, можно дальше заниматься другими делами. Иногда появляется время в общественном месте, а хочется проверить идею, а под рукой только смартфон. Кажется не удобно на нём программировать. Однако есть решение как для фронтендеров, так и для копирайтеров. И оно называется Epsilon Notes. В нём как раз и пишу этот материал.</p>
<h2 id="что-это">Что это?</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.ekartoyev.enotes" target=_blank rel="noopener noreferrer">Epsilon Notes</a> — это полноценный markdown редактор с подсветкой синтаксиса как common markdown, так и html. Помимо основного синтаксиса, Epsilon notes расширяется средствами JavaScript, есть встроенные плюшки с которыми можно ознакомиться в официальной документации.</p>
<p>К тому же, Epsilon Notes может выступать в качестве простого html редактора с поддержкой просмотра результата на лету.</p>
<h2 id="зачем-оно-мне">Зачем оно мне?</h2>
<p>Я веду записи больших объёмов именно в нём, потому что тексты такого плана чаще всего являются материалами типа статей.</p>
<p>Например пока собирал своё резюме, успел побывать в разных местах и позах =). В итоге собрал достаточно информации, чтобы её можно было выложить.</p>
<p>Ещё как веб разработчику, мне интересно пробовать всякие новые штуки касаемо вёрстки, новых возможностей браузеров, иногда делаю всякие хаки или просто рисую при помощи SVG.</p>
<p>Кстати про SVG. Раньше всегда пользовался растровыми картинками, веб-шрифтами с иконками для отображения графики на сайтах-проектах. С давних времён как-то подзабыл совсем о векторной графике. Стоило только зайти в доки по SVG, сразу началось досканальное изучение.</p>
<p>При чём тут это? А дело в том, что все эксперименты я проводил именно в Epsilon Notes. Да, это очень удобно, особенно когда компа рядом нет.</p>
<h2 id="live-разработка">Live разработка</h2>
<p><img src="en.jpg" alt="Двухпанельный режим позволяет видеть результат на лету"></p>
<p>Все наверное уже привыкли к песочницам, например Codepen, JSBin, CodeSandbox и другим. Там можно в реальном времени видеть свёрстанное или реализованный функционал. Впечатляет видео, как делают игру и сразу подгоняют параметры для более динамичного геймплея.</p>
<p>Так вот, в Epsilon Notes тоже можно так делать. Просто включаете режим двух панелей и можете видеть сразу результат своих трудов.</p>
<h2 id="поддержка-диаграмм-классов-flowchart-диаграмм-ганта">Поддержка диаграмм классов, flowchart, диаграмм Ганта</h2>
<p>В EN встроена поддержка вышеназванных диаграмм. Очень удобно для планирования сроков задач проекта, организации структуры классов, иерархии. Примеры можно посмотреть также <a href="http://epsilonexpert.com/e/index.php?i=1" target=_blank rel="noopener noreferrer">в документации</a>.</p>
<h2 id="и-это-всё">И это всё?</h2>
<p>Нет, мне лень описывать всё то, что может Epsilon Notes =). Если ещё не пожелали скачать и попробовать приложение, загляните <a href="http://epsilonexpert.com/e/index.php?i=1" target=_blank rel="noopener noreferrer">в документацию</a>, там много всего интересного описано, на что способен редактор.</p>
<p>Конечно все подумали, что рекламирую это приложение. Для меня лично оно состоит в <a href="/android/polezniye-prilozheniya-android">списке must have</a>, поэтому решил поделиться. Реклама конечно Epsilon Notes не помешает =P</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Прошивка тачскрина ft5316</title><link>https://mikhail-yudin.ru/blog/hardware/proshivka-touchscreen-ft5316/</link><pubDate>Sun, 28 Jul 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/hardware/proshivka-touchscreen-ft5316/</guid><description>Началось всё с того, что мой смартфон ZOPO zp980+ как и у многих его владельцев фантомил при зарядке или перегреве. Фантомы это такие произвольные нажатия на экране, когда сам ничего не делаешь, а на смартфоне что-то делается. Это очень мешает пользоваться устройством. Поэтому полазив на форуме 4PDA решил сменить прошивку в чипе тачскрина FocalTech ft5316.
Несмотря на предостережение красным шрифтом, всё же рискнул. Прошил, перезапустил смартфон и вуаля. Что могло случиться, гарантированно случилось.</description><enclosure url="https://mikhail-yudin.ru/blog/hardware/proshivka-touchscreen-ft5316/ft5316.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Прошивка тачскрина ft5316</h1></header>
                    <div class='entry-content'>
                            <p>Началось всё с того, что мой смартфон ZOPO zp980+ как и у многих его владельцев фантомил при зарядке или перегреве. Фантомы это такие произвольные нажатия на экране, когда сам ничего не делаешь, а на смартфоне что-то делается. Это очень мешает пользоваться устройством. Поэтому полазив на форуме 4PDA решил сменить прошивку в чипе тачскрина FocalTech ft5316.</p>
<p>Несмотря на предостережение красным шрифтом, всё же рискнул. Прошил, перезапустил смартфон и вуаля. Что могло случиться, гарантированно случилось. Фантомы исчезли, а вместе с этим и тачскрин совсем перестал работать.</p>
<h2 id="просьба-о-помощи-или-источник-вдохновения">Просьба о помощи или источник вдохновения</h2>
<p>Нужно было восстанавливать, т.к. цена тачскрина была непозволительно большой: половина стоимости телефона.</p>
<p>Начал пробовать прошить разными приложениями под Android, но ничего не выходило, хоть порой и писалось, что всё ок. Но это разработчик просто не учёл, что могло и не прошиться.</p>
<p>Стоило искать другой путь. Отчаивался, пытался купить у людей, чей смартфон был в нерабочем состоянии, а тачскрин с экраном цел. Но безуспешно.</p>
<p>Обратился за помощью к уважаемому Timmnum, пользователю форума 4PDA:</p>
<blockquote>
<p>Приветствую!
Хотел узнать у Вас, что можно сделать с тачем, у меня ft5316&hellip;
Прошил чужим бинарником, в итоге определяется как 0x0, после прошивки бинарника, который до этого шился - отображает 0x7 в обоих полях.
Тест поинт (контакты 28/30) замыкал на землю как в момент перевтыкания шлейфа, так и в момент прошивки с воткнутым шлейфом. Результата не достиг.
Нашел бинарник под этот чип, тоже не ставится ни в какую.
Само устройство zp980+, видел на china-iphone под другой 980 модифицированное ядро, цианогенмод11, в котором шьется, но объединить сие для 980+ не могу, спецификация другая.
Прошу направить меня на путь истинный=)
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Я бы с радостью&hellip;) Но заполучить убитый 5316 мне не удавалось.
Есть вариант прошивки через COM - UART. Но тут нужен дамп с рабочего&hellip;
<cite>— Timmnum</cite></p>
</blockquote>
<blockquote>
<p>А тот бинарник, который ранее шил, работал, его не удастся поставить через COM?..хотя затруднительно будет подпаяться к ногам..
Спасибо большое за разъяснения, попробую тоже провтыкать=)..
<cite>— fagci</cite></p>
</blockquote>
<p>Был ещё вариант - собрать из исходников CyanogenMod для zp980+, но нужно сначала найти всё нужное, местами подправить, компилить&hellip;Компилилось без остановки на ноуте дня два. В итоге не завелось и забил.</p>
<p>Далее была переписка с ув. Timmnum, оставил только ключевые моменты и вырезал сообщения Timmnum во избежание жалоб, мало ли =)</p>
<blockquote>
<p>А для нас пока и ЦМ нет&hellip; В общем, ковырять-неперековырять=))
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>В преобразователях, которые заказал, стоит чип cp2102, у него есть только DSR\RTS DTR\CTS&hellip;
Я себе заказал Arduino, на нем есть MISO\MOSI и SDA\SCL, как я понял, SDA это аналоговый выход.
Поэтому сдается мне, что лучше приспособить arduino для общения с контроллером.
Видел, как с помощью него можно прошить другой arduino=)
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Тут недавно пришли нужные детали для коннекта к шлейфу, попробовал запитать контроллер прямо от 3.3в от переходника, чип на нем греется, померил в телефоне какое питание подходит - там 2.8в вообще..теперь непонятно, как быть с этим, может питание вообще взять как-то с тела..
А в даташите написано что operating voltage 2.8-3.6 =)
Запитал от пришедшего с breadboard адаптера питания с &ldquo;кренкой&rdquo;, на контроллере около 2.8в
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Читаются только нули пока&hellip; То есть получается, ответа с контроллера нет&hellip;
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>С питанием вообще понять не могу=)&hellip; До этого подключал неверно, полярность попутал&hellip;
Пины шлейфа правильно промаркировал, поэтому в расположении VDDA уверен=)
Подключаю с верной полярностью, напряжение проседает до 1.3в, контроллер греется при этом
Самое странное, что при том же питании с телефона контроллер то не греется=)
<cite>— fagci</cite></p>
</blockquote>
<p>Тут уже было отчаялся совсем, но появилась надежда:</p>
<blockquote>
<p>Я ваще наоборот припаял разъем поэтому пины 1..8 = 8..1 =))
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Теперь пока Device not respond.
Соединил dtr, cts напрямую к sda
Уже и через arduino при помощи такой штуки <a href="http://playground.arduino.cc/Code/I2CEEPROM">http://playground.arduino.cc/Code/I2CEEPROM</a>
читаю, данных нет, одни FF
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Когда замыкал reset на землю, нули не читались, значит контроллер еще жив=))
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Походу что-то не так делаю, ACK же получаю..не сгорел же=(
<cite>— fagci</cite></p>
</blockquote>
<p>Снова руки опускались, но я не сдавался!</p>
<blockquote>
<p>На данный момент имею ардуинку в режиме мастера, которая общается через I2C с контроллером.
Только вчера заюзал кастом драйвер от Paolo (для ft5316 под CM для zp980), модифицировал под arduino и не представляешь, уже читаются НЕ нули=)..и даже не то что отправлял, значит кушает=)
Осталось дело за кропотливым..переписать индусокод более тщательно, чтобы ничего не забыть, подцепить SD карточку и можно уже будет передавать прошивку.
Останется только решить проблему с памятью под прошивку, придется читать побайтово, или маленькими пачечками, а то у ардуинки не хватит места для всей=)
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Питание подаю на ардуинку 3.3в, хотя надо 5..интерфейсы оказались согласованными=)
ACK до этого принимал, значит был контакт уже=)
Уже думал, что спалил тач, а оказалось, что еще надо ввести в нужный режим девайс и не обязательно использовать WAKE. Кстати, у этого контроллера INT на том же пине, что и WAKE=)
<cite>— fagci</cite></p>
</blockquote>
<blockquote>
<p>Кстати, самое странное, что WAKE не теребил вовсе. только ресет и потом чуть иначе команды шлются=)
<cite>— fagci</cite></p>
</blockquote>
<h2 id="что-получилось-в-итоге">Что получилось в итоге</h2>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-cpp" data-lang="cpp"><span style="color:#ff79c6">#include</span> <span style="color:#ff79c6">&lt;Wire.h&gt;</span><span style="color:#ff79c6">
</span><span style="color:#ff79c6">#include</span> <span style="color:#ff79c6">&lt;SD.h&gt;</span><span style="color:#ff79c6">
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define VCC_PIN 3
</span><span style="color:#ff79c6">#define RST_PIN 2
</span><span style="color:#ff79c6">#define DEV_ADDR 0x38
</span><span style="color:#ff79c6">#define FTS_PACKET_LENGTH 2
</span><span style="color:#ff79c6"></span>
File myFile;

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">initSD</span>(){

  Serial.print(<span style="color:#f1fa8c">&#34;Initializing SD card...&#34;</span>);
  <span style="color:#6272a4">// On the Ethernet Shield, CS is pin 4. It&#39;s set as an output by default.
</span><span style="color:#6272a4"></span>  <span style="color:#6272a4">// Note that even if it&#39;s not used as the CS pin, the hardware SS pin 
</span><span style="color:#6272a4"></span>  <span style="color:#6272a4">// (10 on most Arduino boards, 53 on the Mega) must be left as an output 
</span><span style="color:#6272a4"></span>  <span style="color:#6272a4">// or the SD library functions will not work. 
</span><span style="color:#6272a4"></span>   pinMode(<span style="color:#bd93f9">10</span>, OUTPUT);
   
  <span style="color:#ff79c6">if</span> (<span style="color:#ff79c6">!</span>SD.begin(<span style="color:#bd93f9">4</span>)) {Serial.println(<span style="color:#f1fa8c">&#34;initialization failed!&#34;</span>);<span style="color:#ff79c6">return</span>;}
  Serial.println(<span style="color:#f1fa8c">&#34;initialization done.&#34;</span>);

  myFile <span style="color:#ff79c6">=</span> SD.open(<span style="color:#f1fa8c">&#34;fw.bin&#34;</span>);
  <span style="color:#ff79c6">if</span> (myFile) {
  	fts_ctpm_fw_upgrade();
    <span style="color:#6272a4">// read from the file until there&#39;s nothing else in it:
</span><span style="color:#6272a4"></span>    myFile.close();
  } <span style="color:#ff79c6">else</span> {
  	<span style="color:#6272a4">// if the file didn&#39;t open, print an error:
</span><span style="color:#6272a4"></span>    Serial.println(<span style="color:#f1fa8c">&#34;error opening&#34;</span>);
  }


}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">setup</span>(){
	Wire.begin();
  	Serial.begin(<span style="color:#bd93f9">9600</span>);
  	init_device();
  	initSD();
  	
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">loop</span>(){}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">init_device</span>() {
  pinMode(VCC_PIN, OUTPUT);
  pinMode(RST_PIN, OUTPUT);
  digitalWrite(RST_PIN, HIGH);
  digitalWrite(VCC_PIN, HIGH);
}

<span style="color:#8be9fd">int</span> <span style="color:#50fa7b">cmd_write</span>(byte <span style="color:#ff79c6">*</span>a, <span style="color:#8be9fd">int</span> n){
        Wire.beginTransmission(DEV_ADDR);
        Wire.write(a,n);
        assert(Wire.endTransmission(DEV_ADDR));
}
 
<span style="color:#8be9fd">int</span> <span style="color:#50fa7b">byte_read</span>(byte<span style="color:#ff79c6">*</span> pbt_buf, <span style="color:#8be9fd">int</span> bt_len){
        <span style="color:#8be9fd">int</span> r<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;
        byte d<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0xFF</span>;
        Wire.requestFrom(DEV_ADDR, bt_len);
        <span style="color:#ff79c6">while</span>(Wire.available()){
                d<span style="color:#ff79c6">=</span>Wire.read();
                pbt_buf[r]<span style="color:#ff79c6">=</span>d;
                Serial.print(d,HEX);
                r<span style="color:#ff79c6">++</span>;
        }
}

byte <span style="color:#50fa7b">i2c_smbus_read_i2c_block_data</span>(byte command, <span style="color:#8be9fd">int</span> length, byte <span style="color:#ff79c6">*</span>values)
{
	byte r<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>, d<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0xFF</span>;
  Wire.beginTransmission(DEV_ADDR);
  Wire.write(command);
  assert(Wire.endTransmission(DEV_ADDR));
  Wire.requestFrom(DEV_ADDR, length);
  <span style="color:#ff79c6">while</span> (Wire.available()) {
  	d<span style="color:#ff79c6">=</span>Wire.read();
  	values[r]<span style="color:#ff79c6">=</span>d;
    Serial.print(d, HEX);
    r<span style="color:#ff79c6">++</span>;
  }
}
 
<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">assert</span>(<span style="color:#8be9fd">int</span> e){ <span style="color:#ff79c6">if</span>(e){ Serial.print(<span style="color:#f1fa8c">&#34;[E&#34;</span>);Serial.print(e);Serial.print(<span style="color:#f1fa8c">&#34;]&#34;</span>); } }

<span style="color:#6272a4">/*
</span><span style="color:#6272a4">while (myFile.available() &amp;&amp; i++&lt;10) {
</span><span style="color:#6272a4">    	Serial.print(myFile.read(),HEX);Serial.println(&#34; &#34;);
</span><span style="color:#6272a4">    }
</span><span style="color:#6272a4">    // close the file:
</span><span style="color:#6272a4">    
</span><span style="color:#6272a4">*/</span>

boolean  <span style="color:#50fa7b">fts_ctpm_fw_upgrade</span>(<span style="color:#6272a4">/*byte* pbt_buf, unsigned int dw_lenth*/</span>){
	<span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span> dw_lenth <span style="color:#ff79c6">=</span> myFile.size();
    byte reg_val[<span style="color:#bd93f9">2</span>] <span style="color:#ff79c6">=</span> {<span style="color:#bd93f9">0</span>};
    byte tmpData[<span style="color:#bd93f9">4</span>] <span style="color:#ff79c6">=</span> {<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0</span>,<span style="color:#bd93f9">0</span>};
    <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span> i <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
 
    <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span>  packet_number;
    <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span>  j;
    <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span>  temp;
    <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span>  lenght;
    byte  packet_buf[FTS_PACKET_LENGTH <span style="color:#ff79c6">+</span> <span style="color:#bd93f9">6</span>];
    byte  auc_i2c_write_buf[<span style="color:#bd93f9">10</span>];
    byte bt_ecc;
    <span style="color:#8be9fd">int</span> i_ret;
        <span style="color:#8be9fd">int</span> ret;
        <span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">char</span> ver;
 
    <span style="color:#6272a4">/*********Step 1:Reset  CTPM *****/</span>
        pinMode(RST_PIN, OUTPUT);
    digitalWrite(RST_PIN, LOW);  
    delay(<span style="color:#bd93f9">10</span>);  
    pinMode(RST_PIN, OUTPUT);
    digitalWrite(RST_PIN, HIGH);
    Serial.println(<span style="color:#f1fa8c">&#34;[TSP] Step 1: Reset CTPM test&#34;</span>);
   
    delay(<span style="color:#bd93f9">50</span>);  
    <span style="color:#6272a4">/*********Step 2:Enter upgrade mode *****/</span>
    auc_i2c_write_buf[<span style="color:#bd93f9">0</span>] <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0x55</span>;
    auc_i2c_write_buf[<span style="color:#bd93f9">1</span>] <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0xaa</span>;
    <span style="color:#ff79c6">do</span>{
        i <span style="color:#ff79c6">++</span>;
        i_ret <span style="color:#ff79c6">=</span> cmd_write(auc_i2c_write_buf, <span style="color:#bd93f9">2</span>);
        delay(<span style="color:#bd93f9">5</span>);
    }<span style="color:#ff79c6">while</span>(i_ret <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0</span> <span style="color:#ff79c6">&amp;&amp;</span> i <span style="color:#ff79c6">&lt;</span> <span style="color:#bd93f9">5</span> );
    Serial.println(<span style="color:#f1fa8c">&#34;[TSP] Step 2: Enter upgrade mode&#34;</span>);
 
    <span style="color:#6272a4">/*********Step 3:check READ-ID***********************/</span>
    tmpData[<span style="color:#bd93f9">0</span>]<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0x90</span>;
    cmd_write(tmpData,<span style="color:#bd93f9">4</span>);
        i<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;
        i_ret<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;
    <span style="color:#ff79c6">do</span>{
        i <span style="color:#ff79c6">++</span>;
        i_ret <span style="color:#ff79c6">=</span> byte_read(reg_val,<span style="color:#bd93f9">2</span>);
        delay(<span style="color:#bd93f9">10</span>);
    }<span style="color:#ff79c6">while</span>(i_ret <span style="color:#ff79c6">&lt;=</span> <span style="color:#bd93f9">0</span> <span style="color:#ff79c6">&amp;&amp;</span> i <span style="color:#ff79c6">&lt;</span> <span style="color:#bd93f9">5</span> );
    Serial.print(<span style="color:#f1fa8c">&#34;[TSP] Step 3: check ID: &#34;</span>);
    Serial.print(reg_val[<span style="color:#bd93f9">0</span>],HEX);
    Serial.print(<span style="color:#f1fa8c">&#34;, &#34;</span>);
    Serial.print(reg_val[<span style="color:#bd93f9">1</span>],HEX);
        Serial.println(<span style="color:#f1fa8c">&#34; &#34;</span>);
 
    <span style="color:#6272a4">/*********Step 4:erase app*******************************/</span>
    tmpData[<span style="color:#bd93f9">0</span>]<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0x61</span>;
    ret <span style="color:#ff79c6">=</span> cmd_write(tmpData,<span style="color:#bd93f9">1</span>);
   
    delay(<span style="color:#bd93f9">1500</span>);
    Serial.print(<span style="color:#f1fa8c">&#34;[TSP] Step 4: erase.ret=&#34;</span>);
        Serial.print(ret);
        Serial.println(<span style="color:#f1fa8c">&#34; &#34;</span>);
 
    <span style="color:#6272a4">/*********Step 5:write firmware(FW) to ctpm flash*********/</span>
    bt_ecc <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
        Serial.println(<span style="color:#f1fa8c">&#34;[TSP] Step 5: start upgrade.&#34;</span>);
    dw_lenth <span style="color:#ff79c6">=</span> dw_lenth <span style="color:#ff79c6">-</span> <span style="color:#bd93f9">8</span>;
    packet_number <span style="color:#ff79c6">=</span> (dw_lenth) <span style="color:#ff79c6">/</span> FTS_PACKET_LENGTH;
    packet_buf[<span style="color:#bd93f9">0</span>] <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0xbf</span>;
    packet_buf[<span style="color:#bd93f9">1</span>] <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0x00</span>;
    <span style="color:#ff79c6">for</span> (j<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;j<span style="color:#ff79c6">&lt;</span>packet_number;j<span style="color:#ff79c6">++</span>){
        temp <span style="color:#ff79c6">=</span> j <span style="color:#ff79c6">*</span> FTS_PACKET_LENGTH;
        packet_buf[<span style="color:#bd93f9">2</span>] <span style="color:#ff79c6">=</span> (byte)(temp<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">3</span>] <span style="color:#ff79c6">=</span> (byte)temp;
        lenght <span style="color:#ff79c6">=</span> FTS_PACKET_LENGTH;
        packet_buf[<span style="color:#bd93f9">4</span>] <span style="color:#ff79c6">=</span> (byte)(lenght<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">5</span>] <span style="color:#ff79c6">=</span> (byte)lenght;
 
        <span style="color:#ff79c6">for</span> (i<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;i<span style="color:#ff79c6">&lt;</span>FTS_PACKET_LENGTH;i<span style="color:#ff79c6">++</span>){
        	myFile.seek(j<span style="color:#ff79c6">*</span>FTS_PACKET_LENGTH <span style="color:#ff79c6">+</span> i);
            packet_buf[<span style="color:#bd93f9">6</span><span style="color:#ff79c6">+</span>i] <span style="color:#ff79c6">=</span> myFile.read();
            bt_ecc <span style="color:#ff79c6">^=</span> packet_buf[<span style="color:#bd93f9">6</span><span style="color:#ff79c6">+</span>i];
        }
       
        ret<span style="color:#ff79c6">=</span>cmd_write( <span style="color:#ff79c6">&amp;</span>packet_buf[<span style="color:#bd93f9">0</span>],FTS_PACKET_LENGTH <span style="color:#ff79c6">+</span> <span style="color:#bd93f9">6</span>);
        <span style="color:#ff79c6">if</span> ((j <span style="color:#ff79c6">*</span> FTS_PACKET_LENGTH <span style="color:#ff79c6">%</span> <span style="color:#bd93f9">1024</span>) <span style="color:#ff79c6">==</span> <span style="color:#bd93f9">0</span>){
              Serial.print(<span style="color:#f1fa8c">&#34;[TSP] upgrade the 0x&#34;</span>);
              Serial.print(((<span style="color:#8be9fd">unsigned</span> <span style="color:#8be9fd">int</span>)j) <span style="color:#ff79c6">*</span> FTS_PACKET_LENGTH);
              Serial.println(<span style="color:#f1fa8c">&#34; th byte.&#34;</span>);
        }
    }
 
    <span style="color:#ff79c6">if</span> ((dw_lenth) <span style="color:#ff79c6">%</span> FTS_PACKET_LENGTH <span style="color:#ff79c6">&gt;</span> <span style="color:#bd93f9">0</span>){
        temp <span style="color:#ff79c6">=</span> packet_number <span style="color:#ff79c6">*</span> FTS_PACKET_LENGTH;
        packet_buf[<span style="color:#bd93f9">2</span>] <span style="color:#ff79c6">=</span> (byte)(temp<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">3</span>] <span style="color:#ff79c6">=</span> (byte)temp;
 
        temp <span style="color:#ff79c6">=</span> (dw_lenth) <span style="color:#ff79c6">%</span> FTS_PACKET_LENGTH;
        packet_buf[<span style="color:#bd93f9">4</span>] <span style="color:#ff79c6">=</span> (byte)(temp<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">5</span>] <span style="color:#ff79c6">=</span> (byte)temp;
 
        <span style="color:#ff79c6">for</span> (i<span style="color:#ff79c6">=</span><span style="color:#bd93f9">0</span>;i<span style="color:#ff79c6">&lt;</span>temp;i<span style="color:#ff79c6">++</span>){
        	myFile.seek(packet_number<span style="color:#ff79c6">*</span>FTS_PACKET_LENGTH <span style="color:#ff79c6">+</span> i);
            packet_buf[<span style="color:#bd93f9">6</span><span style="color:#ff79c6">+</span>i] <span style="color:#ff79c6">=</span> myFile.read();
            bt_ecc <span style="color:#ff79c6">^=</span> packet_buf[<span style="color:#bd93f9">6</span><span style="color:#ff79c6">+</span>i];
        }
             <span style="color:#6272a4">// printk(&#34;[TSP]temp 0x%x \n&#34;, temp);
</span><span style="color:#6272a4"></span>        ret <span style="color:#ff79c6">=</span> cmd_write( <span style="color:#ff79c6">&amp;</span>packet_buf[<span style="color:#bd93f9">0</span>],temp<span style="color:#ff79c6">+</span><span style="color:#bd93f9">6</span>);    
              <span style="color:#6272a4">//printk(&#34;[TSP] 222 ret 0x%x \n&#34;, ret);
</span><span style="color:#6272a4"></span>        delay(<span style="color:#bd93f9">20</span>);
    }
 
    <span style="color:#6272a4">//send the last six byte
</span><span style="color:#6272a4"></span>    <span style="color:#ff79c6">for</span> (i <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>; i<span style="color:#ff79c6">&lt;</span><span style="color:#bd93f9">6</span>; i<span style="color:#ff79c6">++</span>){
        temp <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0x6ffa</span> <span style="color:#ff79c6">+</span> i;
        packet_buf[<span style="color:#bd93f9">2</span>] <span style="color:#ff79c6">=</span> (byte)(temp<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">3</span>] <span style="color:#ff79c6">=</span> (byte)temp;
        temp <span style="color:#ff79c6">=</span><span style="color:#bd93f9">1</span>;
        packet_buf[<span style="color:#bd93f9">4</span>] <span style="color:#ff79c6">=</span> (byte)(temp<span style="color:#ff79c6">&gt;&gt;</span><span style="color:#bd93f9">8</span>);
        packet_buf[<span style="color:#bd93f9">5</span>] <span style="color:#ff79c6">=</span> (byte)temp;
        myFile.seek(dw_lenth <span style="color:#ff79c6">+</span> i);
        packet_buf[<span style="color:#bd93f9">6</span>] <span style="color:#ff79c6">=</span> myFile.read();

        bt_ecc <span style="color:#ff79c6">^=</span> packet_buf[<span style="color:#bd93f9">6</span>];
 
        cmd_write(<span style="color:#ff79c6">&amp;</span>packet_buf[<span style="color:#bd93f9">0</span>],<span style="color:#bd93f9">7</span>);  
        delay(<span style="color:#bd93f9">20</span>);
    }
 
    <span style="color:#6272a4">/*********Step 6: read out checksum***********************/</span>
 
    i2c_smbus_read_i2c_block_data(<span style="color:#bd93f9">0xcc</span>, <span style="color:#bd93f9">1</span>, <span style="color:#ff79c6">&amp;</span>(reg_val[<span style="color:#bd93f9">0</span>]));
    Serial.print(<span style="color:#f1fa8c">&#34;[TSP] Step 6:  ecc read 0x&#34;</span>);
    Serial.print(reg_val[<span style="color:#bd93f9">0</span>]);
    Serial.print(<span style="color:#f1fa8c">&#34;, new firmware 0x&#34;</span>);
    Serial.print(bt_ecc);
    Serial.println(<span style="color:#f1fa8c">&#34;.&#34;</span>);
    <span style="color:#ff79c6">if</span>(reg_val[<span style="color:#bd93f9">0</span>] <span style="color:#ff79c6">!=</span> bt_ecc){
        <span style="color:#6272a4">//return ERR_ECC;
</span><span style="color:#6272a4"></span>    }
 
    <span style="color:#6272a4">/*********Step 7: reset the new FW***********************/</span>
    pinMode(RST_PIN, OUTPUT);
    digitalWrite(RST_PIN, LOW);  
    delay(<span style="color:#bd93f9">1</span>);  
    pinMode(RST_PIN, OUTPUT);
    digitalWrite(RST_PIN, HIGH);
 
    <span style="color:#ff79c6">return</span> <span style="color:#8be9fd;font-style:italic">true</span>;
}
</code></pre></div><p>Больше так делать не буду. Возможно =)</p>
<p>С этого я получил несколько важных уроков:</p>
<ul>
<li>никогда нельзя опускать руки, особенно когда кажется, что все методы перепробованы;</li>
<li>если хоть кто-нибудь говорит на форумах, что бесполезно искать решение — не поддаваться;</li>
<li>всё можно сделать самому, важно верить в свои силы, даже когда их нет!</li>
</ul>
<p>Всем, кому пригодится данный материал, желаю успехов в восстановлении и чтобы ничего не ломалось, а только улучшалось. А если и ломается, то восстанавливалось! Это бесценный опыт.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Самые полезные приложения для Android</title><link>https://mikhail-yudin.ru/blog/android/polezniye-prilozheniya-android/</link><pubDate>Sat, 06 Jul 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/polezniye-prilozheniya-android/</guid><description>Пополняю арсенал приложений которыми часто пользуюсь. Не просто Must have, а без которых теперь сложно обходиться. Представляю вашему вниманию набор полезных приложений под ОС Android.
FooView PlayMarket 4pda
fooView (Float Viewer) - это волшебная плавающая кнопка. Инструмент, позволяющий Вам получить доступ к вашим любимые веб-сайтам, приложениям, играм, файлам, музыке, фотографиям и видео с помощью одного жеста рукой.
поиск по картинке-скриншоту переводчик копирование текста в труднодоступных местах распознавание текста плавающий браузер файл-менеджер с поддержкой облачек быстрый шаринг куска экрана (+видео/gif) запуск приложений одним взмахом заметки под рукой множественный буфер обмена поиск на устройстве многостраничный автоматический скриншот MiXplorer 4pda</description><enclosure url="https://mikhail-yudin.ru/blog/android/polezniye-prilozheniya-android/useful-android-apps.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Самые полезные приложения для Android</h1></header>
                    <div class='entry-content'>
                            <p>Пополняю арсенал приложений которыми часто пользуюсь. Не просто Must have, а без которых теперь сложно обходиться.
Представляю вашему вниманию набор полезных приложений под ОС Android.</p>
<h2 id="fooview">FooView</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.fooview.android.fooview" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=733773" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>fooView (Float Viewer) - это волшебная плавающая кнопка. Инструмент, позволяющий Вам получить доступ к вашим любимые веб-сайтам, приложениям, играм, файлам, музыке, фотографиям и видео с помощью одного жеста рукой.</p>
<ul>
<li>поиск по картинке-скриншоту</li>
<li>переводчик</li>
<li>копирование текста в труднодоступных местах</li>
<li>распознавание текста</li>
<li>плавающий браузер</li>
<li>файл-менеджер с поддержкой облачек</li>
<li>быстрый шаринг куска экрана (+видео/gif)</li>
<li>запуск приложений одним взмахом</li>
<li>заметки под рукой</li>
<li>множественный буфер обмена</li>
<li>поиск на устройстве</li>
<li>многостраничный автоматический скриншот</li>
</ul>
<div class="video-wrapper">
<iframe width="560" height="315" src="https://www.youtube.com/embed/JrWzmNIW4-Q" frameborder="0" allowfullscreen></iframe>
</div>
<h2 id="mixplorer">MiXplorer</h2>
<p><a href="https://4pda.ru/forum/index.php?s=&amp;showtopic=318294&amp;view=findpost&amp;p=11890407" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>MiXplorer - это быстрый, удобный, красивый и полнофункциональный менеджер файлов с простым пользовательским интерфейсом.</p>
<ul>
<li>пакетное переименование</li>
<li>умное выделение</li>
<li>просмотрщик медиа</li>
<li>работа с архивами</li>
<li>поддержка облачных хранилищ, ftp/sftp/samba, webdav</li>
<li>пакетное удаление приложений</li>
<li>встроенный редактор с подсветкой</li>
<li>root проводник</li>
<li>плагин pdf</li>
<li>плагин редактирования mp3 тегов</li>
<li>поддержка тем</li>
<li>вид списка, миниатюр, превью, детальный список +масштабирование</li>
</ul>
<h2 id="multilingokeyboard">MultilingOKeyboard</h2>
<p><a href="https://play.google.com/store/apps/details?id=kl.ime.oh" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=634293" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Клавиатура для любых языков, многофункциональная и настраиваемая.</p>
<ul>
<li>любой язык, в т.ч. математические символы</li>
<li>стрелки, функциональные клавиши</li>
<li>можно создать свою раскладку</li>
<li>быстрый доступ к смайлам</li>
<li>непрерывный ввод</li>
<li>автокоррекция</li>
<li>предложение слов</li>
<li>настраиваемые темы</li>
<li>умная диактрика</li>
<li>сокращения пт-&gt;привет</li>
<li>калькулятор при наборе текста</li>
<li>буфер обмена</li>
</ul>
<p><a href="http://okbdtheme.appspot.com/e.html?OK_Settings_Begin%0A__K.fs2%3A%3A81%3A%3AI%0A__K.rx%3A%3A0.6%3A%3AF%0A__K.gh%3A%3A30%3A%3AI%0A__V.co14%3A%3Aaaadc4d3%3A%3AX%0A__K.gw%3A%3A5%3A%3AI%0A__V.co13%3A%3Affbfbfbc%3A%3AX%0A__V.co12%3A%3A3d000000%3A%3AX%0A__V.co11%3A%3Affffffff%3A%3AX%0A__V.co10%3A%3A77000000%3A%3AX%0A__V.co18%3A%3A0%3A%3AX%0A__V.co17%3A%3A0%3A%3AX%0A__V.co16%3A%3A3f96b7c4%3A%3AX%0A__V.co15%3A%3A0%3A%3AX%0A__V.co6%3A%3A0%3A%3AX%0A__V.co7%3A%3A2000000%3A%3AX%0A__V.co4%3A%3Affa8a8a8%3A%3AX%0A__V.co5%3A%3Ab299a3ad%3A%3AX%0A__V.co8%3A%3A0%3A%3AX%0A__V.co9%3A%3A0%3A%3AX%0A__K.fs%3A%3A95%3A%3AI%0A__V.FB%3A%3Afalse%3A%3AB%0A__V.co2%3A%3Affffffff%3A%3AX%0A__V.co3%3A%3Affffff%3A%3AX%0A__V.co0%3A%3Aff1e3038%3A%3AX%0A__V.co1%3A%3A0%3A%3AX%0A__K.ra1%3A%3A0%3A%3AI%0A__K.ra0%3A%3A0%3A%3AI%0A__K.ra3%3A%3A0%3A%3AI%0A__K.ra2%3A%3A0%3A%3AI%0AOK_Settings_End&amp;%09%09%09" target=_blank rel="noopener noreferrer">Тёмная тема со скриншота</a></p>
<h2 id="automagic">Automagic</h2>
<p><a href="https://4pda.ru/forum/index.php?showtopic=456523" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Автоматизация андроид с блок-схемами (аналог AutomateIt, Tasker и MacroDroid).</p>
<ul>
<li>автоматизация блок-схемами</li>
<li>поддержка скриптов (аналог javascript)</li>
<li>более удобное и быстрое создание задач в сравнении с аналогами</li>
</ul>
<h2 id="pcradio">PCRADIO</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.maxxt.pcradio&amp;hl=ru" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=311603" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Десятки интернет радио станций разной тематики и направлений.</p>
<ul>
<li>множество жанров</li>
<li>работа при низкой скорости интернета</li>
<li>минимальное потребление трафика</li>
<li>без заиканий</li>
<li>добавление станций в избранное</li>
<li>поддержка записи</li>
<li>эквалайзер</li>
<li>три режима качества звучания</li>
<li>таймер сна (отключение через заданное время)</li>
</ul>
<h2 id="sd-maid">SD Maid</h2>
<p><a href="https://play.google.com/store/apps/details?id=eu.thedarken.sdm&amp;hl=ru" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=230839" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Чистка &ldquo;хвостов&rdquo; за удалёнными приложениями.</p>
<ul>
<li>удаление ненужных файлов</li>
<li>удаление файлов, оставшихся от ранее установленных приложений</li>
<li>оптимизация баз данных приложений</li>
<li>удаление дубликатов файлов</li>
<li>запуск проверки по расписанию</li>
</ul>
<h2 id="dvget">DVGet</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.dv.get&amp;hl=ru" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=280941" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Менеджер загрузок</p>
<ul>
<li>перехват ссылок из браузера и буфера обмена;</li>
<li>ускоренная закачка файлов в несколько потоков;</li>
<li>параллельная закачка нескольких файлов одновременно;</li>
<li>докачка файлов после обрыва соединения или перезапуска программы;</li>
<li>виджет на рабочем столе и окно поверх всех окон со списком запущенных закачек;</li>
<li>отображение значка программы и прогресса закачки в панели уведомления;</li>
<li>автоматический запуск/остановка при включении/выключении Wi-Fi;</li>
<li>автозагрузка сервиса программы при включении телефона;</li>
<li>импорт ссылок из файла, бэкап списка закачек и настроек;</li>
<li>сохранение файлов разных типов в разные папки;</li>
<li>планирование закачки файлов в нужное время;</li>
<li>звук и вибрация по окончании закачки;</li>
<li>настройка интерфейса программы.</li>
</ul>
<h2 id="eweather-hd">eWeather HD</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.Elecont.WeatherClock&amp;hl=ru" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=194110" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Подробный и точный прогноз погоды.</p>
<ul>
<li>прогноз погоды от двух метеоагенств</li>
<li>разные виды виджетов</li>
<li>барометр</li>
<li>загрязнение воздуха</li>
<li>землетрясения</li>
<li>предупреждения Гидрометцентра</li>
<li>геомагнитные бури</li>
<li>температура воды</li>
<li>приливы</li>
<li>затмения</li>
<li>дни солнцестояния и равноденствия</li>
<li>фазы луны</li>
</ul>
<h2 id="progtv">ProgTV</h2>
<p><a href="https://play.google.com/store/apps/details?id=com.progdvb.progtva&amp;hl=ru" target=_blank rel="noopener noreferrer">PlayMarket</a>
<a href="https://4pda.ru/forum/index.php?showtopic=617665" target=_blank rel="noopener noreferrer">4pda</a></p>
<p>Интернет ТВ, архив фильмов, радио и веб камеры всего мира.</p>
<ul>
<li>IPTV (включая udp http proxy, слепой поиск и прочий сервис)</li>
<li>Гид - XMLTV, JTV включая zip, gzip.</li>
<li>OTT провайдеры(Kartina TV, OTT Club, Shura TV, Nasche TV, Rodnoe TV, &hellip;), без VOD но с архивом.</li>
<li>ProgDVB клиент</li>
<li>DVB over IP</li>
<li>300+ Internet TV каналов, 3000+ радио</li>
<li>Favorites, поканальные настройки</li>
<li>Timeshift (включая паузу)</li>
<li>Запись</li>
<li>Планировщик</li>
</ul>
<h2 id="locus-map">Locus map</h2>
<p><a href="https://play.google.com/store/apps/details?id=menion.android.locus&amp;hl=ru" target=_blank rel="noopener noreferrer">Play market</a></p>
<p>Приложение для путешественников на своих двоих, ногах или колесах.</p>
<ul>
<li>онлайн/оффлайн карты;</li>
<li>планирование маршрута автоматическое/ручное;</li>
<li>ведение по треку;</li>
<li>настройка отображения карты;</li>
<li>инструменты для измерений;</li>
<li>геокешинг;</li>
<li>поддержка Android wear;</li>
<li>слои наложения;</li>
<li>POI;</li>
<li>отображение фото из галереи с geo meta;</li>
<li>карты высот, график высот маршрута.</li>
</ul>
<p>Каждого приложения достаточно, чтобы делать им всё, для чего оно предназначено. Пробуйте, пользуйтесь, радуйтесь =)</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Семантическая вёрстка сайта</title><link>https://mikhail-yudin.ru/blog/frontend/semanticheskaya-verstka-sayta/</link><pubDate>Wed, 03 Jul 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/semanticheskaya-verstka-sayta/</guid><description>С приходом HTML5 я стал задаваться вопросом: как правильно использовать семантическую вёрстку используя новые теги? В посте поделюсь опытом вёрстки этого блога с применением семантических тегов.
С чего всё началось Верстая разные проекты, в голову приходили мысли: зачем нужны все эти &amp;lt;main&amp;gt;, &amp;lt;nav&amp;gt;, &amp;lt;section&amp;gt;? Ведь можно и дальше спокойно верстать дивами.
Чем дольше верстаешь сайты, тем больше хочется видеть лаконичный код, структуру которого можно сразу проследить и продолжить вносить правки. Но это ещё не всё&amp;hellip;</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/semanticheskaya-verstka-sayta/semanticheskaya-verstka.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Семантическая вёрстка сайта</h1></header>
                    <div class='entry-content'>
                            <p>С приходом HTML5 я стал задаваться вопросом: как правильно использовать семантическую вёрстку используя новые теги? В посте поделюсь опытом вёрстки этого блога с применением семантических тегов.</p>
<h2 id="с-чего-всё-началось">С чего всё началось</h2>
<p>Верстая разные проекты, в голову приходили мысли: зачем нужны все эти <code>&lt;main&gt;</code>, <code>&lt;nav&gt;</code>, <code>&lt;section&gt;</code>? Ведь можно и дальше спокойно верстать дивами.</p>
<p>Чем дольше верстаешь сайты, тем больше хочется видеть лаконичный код, структуру которого можно сразу проследить и продолжить вносить правки. Но это ещё не всё&hellip;</p>
<h2 id="первое-знакомство-с-семантическими-тегами">Первое знакомство с семантическими тегами</h2>
<p>Первый раз я с ними встретился, когда пошли слухи об HTML5. Шаблон типовой страницы был прост в отличие от XHTML.</p>
<p>Например:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html&gt;</span>
</code></pre></div><p>вместо</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&gt;</span>
</code></pre></div><p>выглядит намного лучше. Да ещё и экономия. К тому же, стало возможным опускать тег <code>&lt;html&gt;</code> в корне документа.</p>
<p>Раньше не обращал внимания на семантические теги, но хотелось везде их использовать. Модно же.</p>
<h2 id="доступность-контента">Доступность контента</h2>
<p>Позже, когда HTML5 стал популярным, я наткнулся на статьи, в которых говорилось о том, что люди с плохим зрением пользуются скрин ридерами, и таки семантическая вёрстка помогает лучше воспринимать контент сайта.</p>
<p>Тогда я познакомился с элементом <code>&lt;nav&gt;</code>, который служит для определения блока навигации. Позже узнал<sup>1</sup>, что использовать связку <code>nav &gt; ul</code> совсем не обязательно и даже вредно, т.к. читалки натыкаются на список и не могут перечислить все названия ссылок за один проход.</p>
<h2 id="seo">SEO</h2>
<p>Немного позже, столкнувшись со статейным контентом стало интересно, что существуют такие теги, как <code>&lt;header&gt;</code>, <code>&lt;article&gt;</code> и <code>&lt;footer&gt;</code>. Тег <code>&lt;article&gt;</code> позволяет определить зону с материалом. Это помогает не только семантически правильно разметить контент сайта, но и помочь сайту лучше выглядеть в поисковой выдаче.</p>
<h2 id="каркас-сайта">Каркас сайта</h2>
<p>Чуть более детально разбираясь в структуре сайта и выделяя семантические блоки, обнаружил, что есть полезный тег <code>&lt;main&gt;</code>. Он определяет основную часть сайта с контентом. При этом использоваться этот тег может только один раз, что позволяет при написании стилей писать селектор <code>main</code> и не использовать классы. Это ещё один шаг к написанию css фреймворков с низким порогом вхождения и лаконичностью.</p>
<h2 id="собственно-блог">Собственно, блог</h2>
<p>Перейдём к практике.</p>
<p>Этот блог я стараюсь верстать, используя минимум телодвижений, без единого фреймворка css/js. Использую максимум семантики, пытаясь обеспечить лучшую доступность и адаптивность для лучшего пользовательского опыта.</p>
<p>Итак, у нас есть основной каркас сайта, который чаще всего приводится к виду:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html"><span style="color:#ff79c6">&lt;!DOCTYPE html&gt;</span>
&lt;<span style="color:#ff79c6">html</span> <span style="color:#50fa7b">lang</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;ru&#34;</span>&gt;
  &lt;<span style="color:#ff79c6">head</span>&gt;&lt;/<span style="color:#ff79c6">head</span>&gt;
  &lt;<span style="color:#ff79c6">body</span>&gt;
    &lt;<span style="color:#ff79c6">header</span>&gt;&lt;/<span style="color:#ff79c6">header</span>&gt;
    &lt;<span style="color:#ff79c6">main</span>&gt;&lt;/<span style="color:#ff79c6">main</span>&gt;
    &lt;<span style="color:#ff79c6">footer</span>&gt;&lt;/<span style="color:#ff79c6">footer</span>&gt;
  &lt;/<span style="color:#ff79c6">body</span>&gt;
&lt;/<span style="color:#ff79c6">html</span>&gt;
</code></pre></div><p>У сайтов обычно есть шапка и подвал, но это не обязательно, и зона с контентом страницы.</p>
<p>В шапке часто можно встретить навигацию. Следуя последним рекомендациям в интернетах, я пришёл к мнению, что оптимальным вариантом реализации <em>одноуровневого</em> меню будет:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">nav</span>&gt;
  &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;Link 1&lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;Link 2&lt;/<span style="color:#ff79c6">a</span>&gt;
  &lt;<span style="color:#ff79c6">a</span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;&#34;</span>&gt;Link 3&lt;/<span style="color:#ff79c6">a</span>&gt;
&lt;/<span style="color:#ff79c6">nav</span>&gt;
</code></pre></div><p>Дальше у нас следует основной контент страницы. В нём могут присутствовать сайдбары с навигацией или чем-то другим, а так же набор материалов, либо один материал. Например:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">main</span>&gt;
  &lt;<span style="color:#ff79c6">aside</span>&gt;&lt;/<span style="color:#ff79c6">aside</span>&gt;
  &lt;<span style="color:#ff79c6">article</span>&gt;&lt;/<span style="color:#ff79c6">article</span>&gt;
&lt;/<span style="color:#ff79c6">main</span>&gt;
</code></pre></div><p>Статья обычно состоит так же, как и страница из заголовка (шапки), footnotes (подвала) и контента. В общем случае, структура такова:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">article</span>&gt;
  &lt;<span style="color:#ff79c6">header</span>&gt;
    &lt;<span style="color:#ff79c6">h1</span>&gt;Article title&lt;/<span style="color:#ff79c6">h1</span>&gt;
    &lt;<span style="color:#ff79c6">p</span>&gt;Author, &lt;<span style="color:#ff79c6">time</span>&gt;2019-07-03&lt;/<span style="color:#ff79c6">time</span>&gt;
  &lt;/<span style="color:#ff79c6">header</span>&gt;
  &lt;<span style="color:#ff79c6">div</span>&gt;Article content&lt;/<span style="color:#ff79c6">div</span>&gt;
  &lt;<span style="color:#ff79c6">footer</span>&gt;
    &lt;<span style="color:#ff79c6">small</span>&gt;viewed 15 times&lt;/<span style="color:#ff79c6">small</span>&gt;
  &lt;/<span style="color:#ff79c6">footer</span>&gt;
&lt;/<span style="color:#ff79c6">article</span>&gt;
</code></pre></div><p>На этом о моей практике вёрстки семантическими тегами всё.</p>
<h2 id="что-дальше">Что дальше?</h2>
<p>Позже планируется раскрыть темы:</p>
<ul>
<li>разметка страниц при помощи микроформата</li>
<li>использование h1 в качестве заголовка статьи и наличие h1 в теле статьи</li>
<li>мой способ адаптивной вёрстки сайтов</li>
<li>рассуждения на тему SEO</li>
</ul>
<h2 id="полезные-материалы">Полезные материалы</h2>
<p><a href="https://www.pluralsight.com/guides/semantic-html" target=_blank rel="noopener noreferrer">Эта статья помогла определиться с вариантом реализацией навигации</a></p>
<ol>
<li><a href="https://css-tricks.com/navigation-in-lists-to-be-or-not-to-be/" target=_blank rel="noopener noreferrer">Пост на тему списков в навигации с большим количеством комментариев</a></li>
</ol>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Оптимизация изображений для Веба при помощи ImageMagick</title><link>https://mikhail-yudin.ru/blog/frontend/imagemagick-convert-optimization-snippets/</link><pubDate>Sun, 30 Jun 2019 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/frontend/imagemagick-convert-optimization-snippets/</guid><description>Часто при работе с изображениями встаёт задача оптимизировать изображения для показа в Веб. Инструментов достаточно много, в том числе и онлайн, однако больше контроля над процессом и более эффективный результат можно получить используя утилиту convert из библиотеки ImageMagick.
Часто нужно сделать так, чтобы изображения подгружались в полном размере, чтобы не плыла вёрстка или не было пустого пространства до полной загрузки изображения. Да и к тому же будет достигнут эффект размытия при загрузке изображения.</description><enclosure url="https://mikhail-yudin.ru/blog/frontend/imagemagick-convert-optimization-snippets/imagemagick-convert-optimization.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>Оптимизация изображений для Веба при помощи ImageMagick</h1></header>
                    <div class='entry-content'>
                            <p>Часто при работе с изображениями встаёт задача оптимизировать изображения для показа в Веб. Инструментов достаточно много, в том числе и онлайн, однако больше контроля над процессом и более эффективный результат можно получить используя утилиту convert из библиотеки ImageMagick.</p>
<p>Часто нужно сделать так, чтобы изображения подгружались в полном размере, чтобы не плыла вёрстка или не было пустого пространства до полной загрузки изображения. Да и к тому же будет достигнут эффект размытия при загрузке изображения.</p>
<p>Реализовать это очень просто:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">convert -strip -interlace Plane -quality <span style="color:#bd93f9">85</span> input-file.jpg output-file.jpg 
</code></pre></div><p>Подробнее про опции:</p>
<p><code>-strip</code> убирает лишнюю метаинформацию<br>
<code>-quality</code> устанаввливает качество результата в процентах; рекомендуется в диапазоне 75..90<br>
<code>-interlace Plane</code> определяет режим подгрузки изображения, в данном случае всё изображение при загрузке в браузере будет отображаться постепенно из размытого состояния к более чёткому.</p>
<p>При работе с PNG изображениями можно достичь меньшего размера, если урезать палитру до минимально необходимого набора цветов:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">convert -colors <span style="color:#bd93f9">8</span> input-file.jpg output-file.jpg 
</code></pre></div><p>Где:</p>
<p><code>-colors 8</code> указывает на количество цветов в выходном файле.</p>
<p>После поисков на просторах интернетов сделал скрипт, который проходит по всем поддиректориям и оптимизирует картинки для веб с оптимальным качеством при этом на выходе получаются файлы с малым весом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#ff79c6">#!/usr/bin/env bash
</span><span style="color:#ff79c6"></span>
find . -name <span style="color:#f1fa8c">&#39;*.jpg&#39;</span> -exec mogrify <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -filter Triangle <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define filter:support<span style="color:#ff79c6">=</span><span style="color:#bd93f9">2</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -unsharp 0.25x0.25+8+0.065 <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -dither None <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -posterize <span style="color:#bd93f9">136</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -quality <span style="color:#bd93f9">82</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define jpeg:fancy-upsampling<span style="color:#ff79c6">=</span>off <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define png:compression-filter<span style="color:#ff79c6">=</span><span style="color:#bd93f9">5</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define png:compression-level<span style="color:#ff79c6">=</span><span style="color:#bd93f9">9</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define png:compression-strategy<span style="color:#ff79c6">=</span><span style="color:#bd93f9">1</span> <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -define png:exclude-chunk<span style="color:#ff79c6">=</span>all <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -interlace Plane -colorspace sRGB <span style="color:#f1fa8c">\
</span><span style="color:#f1fa8c"></span>    -strip <span style="color:#8be9fd;font-style:italic">$1</span> <span style="color:#ff79c6">{}</span> + 
</code></pre></div><p>Для быстрого создания изображений в формате WebP из JPEG можно воспользоваться этим:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#ff79c6">for</span> i in *.jpg; <span style="color:#ff79c6">do</span> cwebp -q <span style="color:#bd93f9">80</span> <span style="color:#8be9fd;font-style:italic">$i</span> -o <span style="color:#8be9fd;font-style:italic">$i</span>.webp;<span style="color:#ff79c6">done</span>
</code></pre></div><p>На выходе получим файлы с расширением .jpg.webp.</p>
<p>Способ с обработкой поддиректорий с изображениями и параллельным выполнением:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">find . -name <span style="color:#f1fa8c">&#34;*.jpg&#34;</span> | parallel -eta cwebp <span style="color:#ff79c6">{}</span> -o <span style="color:#ff79c6">{</span>.<span style="color:#ff79c6">}</span>.webp
</code></pre></div><p>На выходе получим рядом лежащие файлы с расширением <code>.webp</code>.</p>
<p>Бонус для пишущих на PHP — определение поддержки WebP на стороне сервера:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-php" data-lang="php">$has_webp = strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;image/webp&#39;) !== false || strpos($_SERVER[&#39;HTTP_USER_AGENT&#39;], &#39; Chrome/&#39;) !== false;
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>5 причин почему Google Chrome тормозит — советы программиста</title><link>https://mikhail-yudin.ru/blog/lifehacks/google-chrome-tormozit/</link><pubDate>Sun, 14 Oct 2018 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/lifehacks/google-chrome-tormozit/</guid><description>В определённый момент у Вас возникло подозрение, что именно браузер Google Chrome тормозит, а не система? При открытии новых вкладок всё становится ещё хуже и дошло до того, что пользоваться невозможно? Эта статья поможет Вам самим достаточно легко устранить причины.
Причины Работает то, чего Вы не видите В браузерах не так давно появилась возможность делать долгие операции и общение с серверами в фоне. Это помогает ощутить плавность и скорость работы сайта.</description><enclosure url="https://mikhail-yudin.ru/blog/lifehacks/google-chrome-tormozit/google-chrome-tormozit.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>5 причин почему Google Chrome тормозит — советы программиста</h1></header>
                    <div class='entry-content'>
                            <p>В определённый момент у Вас возникло подозрение, что именно браузер Google Chrome тормозит, а не система? При открытии новых вкладок всё становится ещё хуже и дошло до того, что пользоваться невозможно?
Эта статья поможет Вам самим достаточно легко устранить причины.</p>
<h2 id="причины">Причины</h2>
<h3 id="работает-то-чего-вы-не-видите">Работает то, чего Вы не видите</h3>
<p>В браузерах не так давно появилась возможность делать долгие операции и общение с серверами в фоне. Это помогает ощутить плавность и скорость работы сайта.
Однако, с этим увеличивается объём ресурсов, нужных для всей той кухни. И оно висит в активном состоянии даже когда вкладка с сайтом закрыта!</p>
<p>Чтобы избавиться от таких сервисов, нужно нажать f12, перейти на вкладку Application, выбрать Service Workers. Справа увидите раскрывающуюся штуку Service workers from other domains. В ней понажимайте на Unregister для каждого незнакомого сайта. Обратите внимание, что оповещения, на которые Вы были подписаны, перестанут приходить.</p>
<p><img src="https://avatars.mds.yandex.net/get-zen_doc/16074/pub_5bc31ff5575b6b00abbedea7_5bc3200ed1613800aa24b41b/scale_2400" alt="Service Workers"></p>
<h3 id="google-chrome-тормозит-думая-о-будущем">Google Chrome тормозит, думая о будущем</h3>
<p>У браузера есть хорошая особенность: он предугадывает действия пользователя, позволяя получать желаемое быстрее. Правда для этого в фоне приходится начинать загрузку файлов, страниц и ещё много чего.</p>
<p>Чтобы отключить это, перейдите в настройки браузера через кнопку меню сверху-справа, найдите пункт &ldquo;&hellip; для ускорения загрузки страниц&rdquo; и уберите галочку с этого пункта.</p>
<p><img src="https://avatars.mds.yandex.net/get-zen_doc/34175/pub_5bc31ff5575b6b00abbedea7_5bc32047b7a6b100ac906f88/scale_2400" alt="Ускорение загрузки страниц"></p>
<h3 id="до-сих-пор-используете-flash">До сих пор используете flash?</h3>
<p>В последнее время мало где можно встретить flash на сайтах, кроме старых баннеров с рекламой. Они достаточно прожорливы и на некоторых системах остаются висеть в памяти.</p>
<p>Для блокирования flash можно использовать расширение flash block: <a href="https://chrome.google.com/webstore/detail/flash-block-plus/lhjanpmhcanjknkcfjiikkjdecjkmngn">https://chrome.google.com/webstore/detail/flash-block-plus/lhjanpmhcanjknkcfjiikkjdecjkmngn</a></p>
<h3 id="недостаточно-контроля">Недостаточно контроля</h3>
<p>Часто ли Вы следите за количеством свободной оперативной памяти у себя на устройстве?</p>
<p>Чтобы всегда знать, какое приложение в системе и сколько ресурсов потребляет, можно воспользоваться диспетчером задач.</p>
<p>Таким образом можно узнать например, что виновник тормозов не браузер, а приложение висящее в фоне, о наличии которого может и не догадывались.</p>
<p><img src="https://avatars.mds.yandex.net/get-zen_doc/196027/pub_5bc31ff5575b6b00abbedea7_5bc3200e2ac0f700a9c16534/scale_2400" alt="Диспетчером задач"></p>
<h3 id="много-вкладок">Много вкладок</h3>
<p>Банально, но самое простое, что можно сделать, если браузер Google Chrome стал тормозить, это закрыть неиспользуемые вкладки.</p>
<p>Чтобы узнать, какая из вкладок ест больше всего памяти, можно из меню браузера вызвать диспетчер задач.</p>
<p><img src="https://avatars.mds.yandex.net/get-zen_doc/222865/pub_5bc31ff5575b6b00abbedea7_5bc3200e3887bf00ac52530a/scale_2400" alt="Много вкладок"></p>
<h2 id="результат">Результат</h2>
<p>При устранении всех причин и осознанном контроле потребляемых ресурсов можно достичь отзывчивой, плавной работы браузера на протяжении долгого времени.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>STM32f103 ADC with DMA</title><link>https://mikhail-yudin.ru/blog/hardware/stm32f103-adc-with-dma/</link><pubDate>Sun, 13 Mar 2016 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/hardware/stm32f103-adc-with-dma/</guid><description>Having troubles with STM32f103 ADC using DMA, solved by introducing timer for external triggering.
Video:
Here is working source:
#include &amp;#34;adc.h&amp;#34; #define ADC_DATA_SIZE 320 #define ADC_PERIOD (SystemCoreClock / 1000) / 2 #define ADCx ADC1 #define ADC_Channel_n ADC_Channel_7 #define RCC_APBnPeriph_ADCx RCC_APB2Periph_ADC1 #define ADC_RCC_APBnPeriphClockCmd RCC_APB2PeriphClockCmd #define ADC_ExternalTrigConv_Tn_trigger ADC_ExternalTrigConv_T3_TRGO #define GPIOx GPIOA #define GPIO_Pin_n GPIO_Pin_7 #define RCC_APBnPeriph_GPIOx RCC_APB2Periph_GPIOA #define GPIO_RCC_APBnPeriphClockCmd RCC_APB2PeriphClockCmd #define TIMx TIM3 #define TIM_RCC_APBnPeriphClockCmd RCC_APB1PeriphClockCmd #define RCC_APBnPeriph_TIMx RCC_APB1Periph_TIM3 #define DMAn_Channeln_IRQn DMA1_Channel1_IRQn #define DMAn_IT_TCn DMA1_IT_TC1 #define DMAn_Channeln DMA1_Channel1 #define RCC_AHBPeriph_DMAn RCC_AHBPeriph_DMA1 static u16 adcDmaData[ADC_DATA_SIZE]; u16 *ADC_getData() { return adcDmaData; } void timer_config(void) { TIM_TimeBaseInitTypeDef tim; TIM_RCC_APBnPeriphClockCmd(RCC_APBnPeriph_TIMx, ENABLE); /* Time base configuration */ TIM_TimeBaseStructInit(&amp;amp;tim); tim.</description><enclosure url="https://mikhail-yudin.ru/blog/hardware/stm32f103-adc-with-dma/stm32f103-adc-with-dma.png" type="image/png"/><turbo:content><![CDATA[
                    <header>
                        <h1>STM32f103 ADC with DMA</h1></header>
                    <div class='entry-content'>
                            <p>Having troubles with STM32f103 ADC using DMA, solved by introducing timer for external triggering.</p>
<p>Video:</p>
<iframe width="100%" height="315" src="https://www.youtube.com/embed/h16B7YAlttY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>Here is working source:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-cpp" data-lang="cpp"><span style="color:#ff79c6">#include</span> <span style="color:#ff79c6">&#34;adc.h&#34;</span><span style="color:#ff79c6">
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define ADC_DATA_SIZE 320
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define ADC_PERIOD (SystemCoreClock / 1000) / 2
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define ADCx ADC1
</span><span style="color:#ff79c6">#define ADC_Channel_n ADC_Channel_7
</span><span style="color:#ff79c6">#define RCC_APBnPeriph_ADCx RCC_APB2Periph_ADC1
</span><span style="color:#ff79c6">#define ADC_RCC_APBnPeriphClockCmd RCC_APB2PeriphClockCmd
</span><span style="color:#ff79c6">#define ADC_ExternalTrigConv_Tn_trigger ADC_ExternalTrigConv_T3_TRGO
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define GPIOx GPIOA
</span><span style="color:#ff79c6">#define GPIO_Pin_n GPIO_Pin_7
</span><span style="color:#ff79c6">#define RCC_APBnPeriph_GPIOx RCC_APB2Periph_GPIOA
</span><span style="color:#ff79c6">#define GPIO_RCC_APBnPeriphClockCmd RCC_APB2PeriphClockCmd
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define TIMx TIM3
</span><span style="color:#ff79c6">#define TIM_RCC_APBnPeriphClockCmd RCC_APB1PeriphClockCmd
</span><span style="color:#ff79c6">#define RCC_APBnPeriph_TIMx RCC_APB1Periph_TIM3
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">#define DMAn_Channeln_IRQn DMA1_Channel1_IRQn
</span><span style="color:#ff79c6">#define DMAn_IT_TCn DMA1_IT_TC1
</span><span style="color:#ff79c6">#define DMAn_Channeln DMA1_Channel1
</span><span style="color:#ff79c6">#define RCC_AHBPeriph_DMAn RCC_AHBPeriph_DMA1
</span><span style="color:#ff79c6"></span>
<span style="color:#ff79c6">static</span> u16 adcDmaData[ADC_DATA_SIZE];

u16 <span style="color:#ff79c6">*</span><span style="color:#50fa7b">ADC_getData</span>() { <span style="color:#ff79c6">return</span> adcDmaData; }

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">timer_config</span>(<span style="color:#8be9fd">void</span>) {
  TIM_TimeBaseInitTypeDef tim;
  TIM_RCC_APBnPeriphClockCmd(RCC_APBnPeriph_TIMx, ENABLE);

  <span style="color:#6272a4">/* Time base configuration */</span>
  TIM_TimeBaseStructInit(<span style="color:#ff79c6">&amp;</span>tim);
  tim.TIM_Period <span style="color:#ff79c6">=</span> (u16)(ADC_PERIOD <span style="color:#ff79c6">/</span> <span style="color:#bd93f9">125</span> <span style="color:#ff79c6">-</span> <span style="color:#bd93f9">1</span>);  <span style="color:#6272a4">// 875 - 1;
</span><span style="color:#6272a4"></span>  tim.TIM_Prescaler <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
  tim.TIM_ClockDivision <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
  tim.TIM_CounterMode <span style="color:#ff79c6">=</span> TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIMx, <span style="color:#ff79c6">&amp;</span>tim);

  TIM_SelectOutputTrigger(TIMx, TIM_TRGOSource_Update);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">timer_start</span>(<span style="color:#8be9fd">void</span>) { TIM_Cmd(TIMx, ENABLE); }

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">timer_stop</span>(<span style="color:#8be9fd">void</span>) { TIM_Cmd(TIMx, DISABLE); }

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dma_init</span>() {
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMAn, ENABLE);
  <span style="color:#6272a4">// DMA
</span><span style="color:#6272a4"></span>  DMA_InitTypeDef dma;
  DMA_StructInit(<span style="color:#ff79c6">&amp;</span>dma);

  dma.DMA_BufferSize <span style="color:#ff79c6">=</span> ADC_DATA_SIZE;
  dma.DMA_MemoryBaseAddr <span style="color:#ff79c6">=</span> (u32)adcDmaData;
  dma.DMA_PeripheralBaseAddr <span style="color:#ff79c6">=</span> (u32) <span style="color:#ff79c6">&amp;</span> (ADCx<span style="color:#ff79c6">-&gt;</span>DR);
  dma.DMA_Mode <span style="color:#ff79c6">=</span> DMA_Mode_Circular;
  dma.DMA_Priority <span style="color:#ff79c6">=</span> DMA_Priority_High;
  dma.DMA_MemoryInc <span style="color:#ff79c6">=</span> DMA_MemoryInc_Enable;
  dma.DMA_MemoryDataSize <span style="color:#ff79c6">=</span> DMA_MemoryDataSize_HalfWord;
  dma.DMA_PeripheralDataSize <span style="color:#ff79c6">=</span> DMA_PeripheralDataSize_HalfWord;
  DMA_Init(DMAn_Channeln, <span style="color:#ff79c6">&amp;</span>dma);

  NVIC_EnableIRQ(DMAn_Channeln_IRQn);
  DMA_ITConfig(DMAn_Channeln, DMA_IT_TC, ENABLE);
  DMA_Cmd(DMAn_Channeln, ENABLE);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">gpio_init</span>() {
  GPIO_RCC_APBnPeriphClockCmd(RCC_APBnPeriph_GPIOx, ENABLE);

  GPIO_InitTypeDef gpio;
  gpio.GPIO_Speed <span style="color:#ff79c6">=</span> GPIO_Speed_50MHz;
  gpio.GPIO_Pin <span style="color:#ff79c6">=</span> GPIO_Pin_n;
  gpio.GPIO_Mode <span style="color:#ff79c6">=</span> GPIO_Mode_AIN;
  GPIO_Init(GPIOx, <span style="color:#ff79c6">&amp;</span>gpio);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">adc_init</span>() {
  <span style="color:#6272a4">// clock for ADC (max 14MHz --&gt; 72/6=12MHz)
</span><span style="color:#6272a4"></span>  <span style="color:#6272a4">// TODO: check for maximum clock
</span><span style="color:#6272a4"></span>  <span style="color:#6272a4">// RCC_ADCCLKConfig(RCC_PCLK2_Div2);
</span><span style="color:#6272a4"></span>  ADC_RCC_APBnPeriphClockCmd(RCC_APBnPeriph_ADCx, ENABLE);

  <span style="color:#6272a4">// ADC
</span><span style="color:#6272a4"></span>  ADC_InitTypeDef adc;
  adc.ADC_ScanConvMode <span style="color:#ff79c6">=</span> DISABLE;
  adc.ADC_ContinuousConvMode <span style="color:#ff79c6">=</span> DISABLE;
  adc.ADC_ExternalTrigConv <span style="color:#ff79c6">=</span> ADC_ExternalTrigConv_Tn_trigger;
  adc.ADC_DataAlign <span style="color:#ff79c6">=</span> ADC_DataAlign_Right;
  adc.ADC_Mode <span style="color:#ff79c6">=</span> ADC_Mode_Independent;
  adc.ADC_NbrOfChannel <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">1</span>;
  ADC_Init(ADCx, <span style="color:#ff79c6">&amp;</span>adc);

  ADC_RegularChannelConfig(ADCx, ADC_Channel_n, <span style="color:#bd93f9">1</span>, ADC_SampleTime_1Cycles5);

  ADC_Cmd(ADCx, ENABLE);  <span style="color:#6272a4">// enable ADCx
</span><span style="color:#6272a4"></span>
  <span style="color:#6272a4">// Calibration
</span><span style="color:#6272a4"></span>  ADC_ResetCalibration(ADCx);  <span style="color:#6272a4">// Reset previous calibration
</span><span style="color:#6272a4"></span>  <span style="color:#ff79c6">while</span> (ADC_GetResetCalibrationStatus(ADCx))
    ;
  ADC_StartCalibration(
      ADCx);  <span style="color:#6272a4">// Start new calibration (ADC must be off at that time)
</span><span style="color:#6272a4"></span>  <span style="color:#ff79c6">while</span> (ADC_GetCalibrationStatus(ADCx))
    ;

  ADC_ExternalTrigConvCmd(ADCx, ENABLE);
  ADC_DMACmd(ADCx, ENABLE);
  ADC_Cmd(ADCx, ENABLE);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">ADC_init</span>() {
  gpio_init();
  dma_init();
  adc_init();
  timer_config();
  timer_start();
}

<span style="color:#ff79c6">static</span> u8 dataAvailable <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;

<span style="color:#ff79c6">inline</span> u8 <span style="color:#50fa7b">isDataAvailable</span>() { <span style="color:#ff79c6">return</span> dataAvailable; }

<span style="color:#ff79c6">inline</span> <span style="color:#8be9fd">void</span> <span style="color:#50fa7b">markDataUsed</span>() {
  dataAvailable <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
  timer_start();
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">DMA1_Channel1_IRQHandler</span>(<span style="color:#8be9fd">void</span>) {
  <span style="color:#ff79c6">if</span> (DMA_GetITStatus(DMAn_IT_TCn) <span style="color:#ff79c6">==</span> SET) {
    <span style="color:#6272a4">//        DMA_Cmd(DMA1_Channel1, DISABLE);
</span><span style="color:#6272a4"></span>    DMA_ClearITPendingBit(DMAn_IT_TCn);
    timer_stop();
    dataAvailable <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">1</span>;
  }
}
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>STM32 ILI9341 SPI with DMA</title><link>https://mikhail-yudin.ru/blog/hardware/stm32-ili9341-spi-with-dma/</link><pubDate>Mon, 22 Feb 2016 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/hardware/stm32-ili9341-spi-with-dma/</guid><description>Долго возился с подключением DMA на STM32f103, в итоге удалось завести следующим образом:
u8 dmaWorking = 0; DMA_InitTypeDef dma8, dma16; void dmaInit() { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // DMA 8bit DMA_StructInit(&amp;amp;dma8); dma8.DMA_PeripheralBaseAddr = (u32) &amp;amp; (SPI1-&amp;gt;DR); dma8.DMA_DIR = DMA_DIR_PeripheralDST; dma8.DMA_MemoryInc = DMA_MemoryInc_Enable; dma8.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; dma8.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; dma8.DMA_Priority = DMA_Priority_High; // DMA 16bit DMA_StructInit(&amp;amp;dma16); dma16.DMA_PeripheralBaseAddr = (u32) &amp;amp; (SPI1-&amp;gt;DR); dma16.DMA_DIR = DMA_DIR_PeripheralDST; dma16.DMA_MemoryInc = DMA_MemoryInc_Enable; dma16.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; dma16.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; dma16.</description><enclosure url="https://mikhail-yudin.ru/blog/hardware/stm32-ili9341-spi-with-dma/stm32-ili9341-spi-with-dma.jpg" type="image/jpeg"/><turbo:content><![CDATA[
                    <header>
                        <h1>STM32 ILI9341 SPI with DMA</h1></header>
                    <div class='entry-content'>
                            <p>Долго возился с подключением DMA на STM32f103, в итоге удалось завести следующим образом:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-cpp" data-lang="cpp">u8 dmaWorking <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
DMA_InitTypeDef dma8, dma16;

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaInit</span>() {
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

  <span style="color:#6272a4">// DMA 8bit
</span><span style="color:#6272a4"></span>  DMA_StructInit(<span style="color:#ff79c6">&amp;</span>dma8);
  dma8.DMA_PeripheralBaseAddr <span style="color:#ff79c6">=</span> (u32) <span style="color:#ff79c6">&amp;</span> (SPI1<span style="color:#ff79c6">-&gt;</span>DR);
  dma8.DMA_DIR <span style="color:#ff79c6">=</span> DMA_DIR_PeripheralDST;
  dma8.DMA_MemoryInc <span style="color:#ff79c6">=</span> DMA_MemoryInc_Enable;
  dma8.DMA_PeripheralDataSize <span style="color:#ff79c6">=</span> DMA_PeripheralDataSize_Byte;
  dma8.DMA_MemoryDataSize <span style="color:#ff79c6">=</span> DMA_MemoryDataSize_Byte;
  dma8.DMA_Priority <span style="color:#ff79c6">=</span> DMA_Priority_High;

  <span style="color:#6272a4">// DMA 16bit
</span><span style="color:#6272a4"></span>  DMA_StructInit(<span style="color:#ff79c6">&amp;</span>dma16);
  dma16.DMA_PeripheralBaseAddr <span style="color:#ff79c6">=</span> (u32) <span style="color:#ff79c6">&amp;</span> (SPI1<span style="color:#ff79c6">-&gt;</span>DR);
  dma16.DMA_DIR <span style="color:#ff79c6">=</span> DMA_DIR_PeripheralDST;
  dma16.DMA_MemoryInc <span style="color:#ff79c6">=</span> DMA_MemoryInc_Enable;
  dma16.DMA_PeripheralDataSize <span style="color:#ff79c6">=</span> DMA_PeripheralDataSize_HalfWord;
  dma16.DMA_MemoryDataSize <span style="color:#ff79c6">=</span> DMA_MemoryDataSize_HalfWord;
  dma16.DMA_Priority <span style="color:#ff79c6">=</span> DMA_Priority_High;

  <span style="color:#6272a4">// IRQs
</span><span style="color:#6272a4"></span>  NVIC_EnableIRQ(DMA1_Channel3_IRQn);
  DMA_ITConfig(DMA1_Channel3, DMA_IT_TC, ENABLE);
  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaSend</span>(u8 <span style="color:#ff79c6">*</span>data, u32 n) {
  dma8.DMA_MemoryBaseAddr <span style="color:#ff79c6">=</span> (u32)data;
  dma8.DMA_BufferSize <span style="color:#ff79c6">=</span> n;
  DMA_Init(DMA1_Channel3, <span style="color:#ff79c6">&amp;</span>dma8);
  dmaWorking <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">1</span>;
  TFT_CS_RESET;
  DMA_Cmd(DMA1_Channel3, ENABLE);
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaSend16</span>(u16 <span style="color:#ff79c6">*</span>data, u16 n) {
  dma16.DMA_MemoryBaseAddr <span style="color:#ff79c6">=</span> (u32)data;
  dma16.DMA_BufferSize <span style="color:#ff79c6">=</span> n;
  DMA_Init(DMA1_Channel3, <span style="color:#ff79c6">&amp;</span>dma16);
  dmaWorking <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">1</span>;
  TFT_CS_RESET;
  DMA_Cmd(DMA1_Channel3, ENABLE);
}

<span style="color:#ff79c6">#define dmaWait()    \
</span><span style="color:#ff79c6">  while (dmaWorking) \
</span><span style="color:#ff79c6">    ;
</span><span style="color:#ff79c6"></span>
<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaSendData8</span>(u8 <span style="color:#ff79c6">*</span>data, u16 n) {
  TFT_DC_SET;
  dmaSend(data, n);
  dmaWait();
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaSendData16</span>(u16 <span style="color:#ff79c6">*</span>data, u16 n) {
  TFT_DC_SET;
  dmaSend16(data, n);
  dmaWait();
}

<span style="color:#6272a4">// TX
</span><span style="color:#6272a4"></span><span style="color:#8be9fd">void</span> <span style="color:#50fa7b">DMA1_Channel3_IRQHandler</span>(<span style="color:#8be9fd">void</span>) {
  <span style="color:#ff79c6">if</span> (DMA_GetITStatus(DMA1_IT_TC3)) {
    DMA_ClearITPendingBit(DMA1_IT_TC3);
    DMA_Cmd(DMA1_Channel3, DISABLE);
    TFT_CS_SET;
    dmaWorking <span style="color:#ff79c6">=</span> <span style="color:#bd93f9">0</span>;
  }
}

<span style="color:#8be9fd">void</span> <span style="color:#50fa7b">dmaSendCmd</span>(u8 cmd) {
  TFT_DC_RESET;
  dmaSend(<span style="color:#ff79c6">&amp;</span>cmd, <span style="color:#bd93f9">1</span>);
  dmaWait();
}
</code></pre></div><p>Видео примера работы:</p>
<iframe width="100%" height="315" src="https://www.youtube.com/embed/-2-tuqgc90k" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>ссылка на библиотеку: <a href="https://github.com/fagci/stm-ILI9341-spi" target=_blank rel="noopener noreferrer">Github</a></p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Acer Aspire v5 122p alsa, mpd</title><link>https://mikhail-yudin.ru/blog/linux/acer-aspire-v5-122p-alsa-mpd/</link><pubDate>Sat, 26 Dec 2015 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/linux/acer-aspire-v5-122p-alsa-mpd/</guid><description>How to get it work Alsa ~/.asoundrc:
pcm.dsp { type plug slave.pcm &amp;quot;dmix&amp;quot; } /etc/modprobe.d/50-alsa.conf:
options snd-hda-intel index=1 So, HDMI is second device, and sources mixings by dmix
mpd /etc/mpd.conf: music_directory &amp;quot;/home/{username}/Music&amp;quot; playlist_directory &amp;quot;/home/{username}/.mpd/playlists&amp;quot; db_file &amp;quot;/home/{username}/.mpd/mpd.db&amp;quot; log_file &amp;quot;/home/{username}/.mpd/mpd.log&amp;quot; audio_output { type &amp;quot;alsa&amp;quot; name &amp;quot;ALSA Device&amp;quot; } Last steps remove pulseaudio, if exists, and:
mkdir -p ~/.mpd/playlists sudo systemctl enable mpd sudo systemctl start mpd mpc load &amp;lt;playlist_name&amp;gt; mpc play 1</description><turbo:content><![CDATA[
                    <header>
                        <h1>Acer Aspire v5 122p alsa, mpd</h1></header>
                    <div class='entry-content'>
                            <h2 id="how-to-get-it-work">How to get it work</h2>
<h3 id="alsa">Alsa</h3>
<p>~/.asoundrc:</p>
<pre><code class="language-conf" data-lang="conf">pcm.dsp {  
  type plug
  slave.pcm &quot;dmix&quot;
}  
</code></pre><p>/etc/modprobe.d/50-alsa.conf:</p>
<pre><code class="language-conf" data-lang="conf">options snd-hda-intel index=1  
</code></pre><p><em>So, HDMI is second device, and sources mixings by dmix</em></p>
<h3 id="mpd">mpd</h3>
<p>/etc/mpd.conf: </p>
<pre><code class="language-conf" data-lang="conf">music_directory         &quot;/home/{username}/Music&quot;  
playlist_directory      &quot;/home/{username}/.mpd/playlists&quot;  
db_file                 &quot;/home/{username}/.mpd/mpd.db&quot;  
log_file                &quot;/home/{username}/.mpd/mpd.log&quot;  

audio_output {  
        type                    &quot;alsa&quot;  
        name                    &quot;ALSA Device&quot;  
}  
</code></pre><h3 id="last-steps">Last steps</h3>
<p><u>remove pulseaudio</u>, if exists, and:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">mkdir -p ~/.mpd/playlists  
sudo systemctl <span style="color:#8be9fd;font-style:italic">enable</span> mpd
sudo systemctl start mpd

mpc load &lt;playlist_name&gt;

mpc play <span style="color:#bd93f9">1</span>
</code></pre></div>
                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Android shell scripting. Part 2.</title><link>https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-2/</link><pubDate>Wed, 05 Aug 2015 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-2/</guid><description>Если нет желания собирать консольные утилиты из исходников, можно воспользоваться менее болезненным способом.
Для начала нужно найти приложение, в котором реализован необходимый функционал.
Для примера возьмём Terminal IDE.
После установки приложения, утилиты, входящие в его состав, будут распакованы в каталог /data/data в поддиректорию с названием пакета.
В данном случае это com.spartacusrex.spartacuside.
В поддиректории с данными приложения можно увидеть папку files.
Как раз в ней находится директория bin с бинарниками, доступными в среде Terminal IDE.</description><turbo:content><![CDATA[
                    <header>
                        <h1>Android shell scripting. Part 2.</h1></header>
                    <div class='entry-content'>
                            <p>Если нет желания собирать консольные утилиты из исходников, можно воспользоваться менее болезненным способом.</p>
<p>Для начала нужно найти приложение, в котором реализован необходимый функционал.<br>
Для примера возьмём <a href="http://4pda.ru/forum/index.php?showtopic=554287" target=_blank rel="noopener noreferrer">Terminal IDE</a>.</p>
<p>После установки приложения, утилиты, входящие в его состав, будут распакованы в каталог /data/data в поддиректорию с названием пакета.<br>
В данном случае это com.spartacusrex.spartacuside.</p>
<p>В поддиректории с данными приложения можно увидеть папку files.<br>
Как раз в ней находится директория bin с бинарниками, доступными в среде Terminal IDE.</p>
<p>Чтобы иметь при себе, например, редактор vim, необходимо скопировать vim из папки bin с папку с системными утилитами:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">cp vim /system/xbin/  
</code></pre></div><p>При копировании /system должен быть примонтирован в режиме записи.</p>
<p>После этого можно смело удалять Terminal IDE и пользоваться только оболочкой коммандной строки.</p>
<p>Важное замечание:</p>
<p><strong>!</strong> Некоторые утилиты требуют наличия библиотек для запуска (динамическая линковка).<br>
Поэтому, в отдельных случаях придётся либо искать статически собранные бинарники, либо подключать библиотеки.</p>
<p><strong>!</strong> Так же, следует обратить внимание на содержимое утилиты, которую переносите себе в /system/xbin, т.к. это может оказаться либо ссылкой, либо скриптом, использующим другой бинарник в качестве основного.</p>
<p>В следующей части будем настраивать lighttpd сервер для работы с php-fcgi.</p>

                    </div>
                        ]]></turbo:content></item><item turbo="true"><title>Android shell scripting. Part 1.</title><link>https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-1/</link><pubDate>Sat, 18 Apr 2015 00:00:00 +0000</pubDate><guid>https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-1/</guid><description>Если возникло желание развернуть linux shell окружение на Вашем устройстве, можно воспользоваться приёмами, описанными далее.
Подразумеваеется, что root доступ у Вас есть.
Для удобства настройки можно использовать удалённый доступ к устройству по ssh.
По умолчанию в системе используется /system/bin/sh бинарник, являющийся ссылкой на mksh.
Чтобы настроить переменные окружения, которые будут установлены при запуске shell (sh), необходимо внести правки в файл /etc/mkshrc. Но перед этим нужно примонтировать файловую систему для записи:</description><turbo:content><![CDATA[
                    <header>
                        <h1>Android shell scripting. Part 1.</h1></header>
                    <div class='entry-content'>
                            <p>Если возникло желание развернуть linux shell окружение на Вашем устройстве, можно воспользоваться приёмами, описанными далее.</p>
<p>Подразумеваеется, что root доступ у Вас есть.</p>
<p>Для удобства настройки можно использовать удалённый доступ к устройству по ssh.</p>
<p>По умолчанию в системе используется <code>/system/bin/sh</code> бинарник, являющийся ссылкой на mksh.</p>
<p>Чтобы настроить переменные окружения, которые будут установлены при запуске shell (sh), необходимо внести правки в файл /etc/mkshrc. Но перед этим нужно примонтировать файловую систему для записи:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell">mount -o remount,rw /system
</code></pre></div><p>Пример установки путей для midnight commander:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-shell" data-lang="shell"><span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">PATH</span><span style="color:#ff79c6">=</span>/system/xbin:/system/bin
<span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">TERMINFO</span><span style="color:#ff79c6">=</span>/etc/terminfo
<span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">TERM</span><span style="color:#ff79c6">=</span>xterm-256color
<span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">MC_HOME</span><span style="color:#ff79c6">=</span>/system/etc/.mc/
<span style="color:#8be9fd;font-style:italic">export</span> <span style="color:#8be9fd;font-style:italic">TMPDIR</span><span style="color:#ff79c6">=</span>/data/local/tmp/

<span style="color:#ff79c6">if</span> <span style="color:#ff79c6">[</span> ! -e <span style="color:#8be9fd;font-style:italic">$TMPDIR</span> <span style="color:#ff79c6">]</span>; <span style="color:#ff79c6">then</span>
    mkdir <span style="color:#8be9fd;font-style:italic">$TMPDIR</span>
<span style="color:#ff79c6">fi</span>
</code></pre></div><p>Прописав это в наш конфиг, мы:</p>
<ol>
<li>определим пути поиска исполняемых бинарников</li>
<li>укажем пути хранения временных файлов</li>
<li>укажем пути хранения конфигурации midnight commander</li>
<li>установим режим терминала xterm с поддержкой 256 цветов</li>
</ol>
<p>В следующей части будет описана процедура получения и установки различных linux утилит одним из простых способов.</p>

                    </div>
                        ]]></turbo:content></item></channel></rss>