<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / CSS / Хабр]]></title>
    <link>https://habr.com/ru/hubs/css/articles/</link>
    <description><![CDATA[CSS – каскадные таблицы стилей]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Thu, 23 Jul 2026 15:01:03 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Текстовая MMO RPG на движке форума Invision 5 с PWA приложением и кубиками]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1062240/</guid>
      <link>https://habr.com/ru/articles/1062240/?utm_campaign=1062240&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8b6/7ac/0a6/8b67ac0a6c775833664006eca86c3254.jpg" /><p>Привет, Хабр! Текстовые браузерные MMO вроде старой «Тюряги онлайн»&nbsp;— жанр древний, но&nbsp;до&nbsp;сих пор живой, особенно среди фанатов олдскульных вселенных. В&nbsp;сообществах готоманов нашу игру уже смело окрестили «Тюрягой онлайн 2.0», и сходство тут прямое: и там, и там на&nbsp;бэкенде крутится суровый выживач на&nbsp;зоне. Только в&nbsp;Тюряге ты обычный зэк на&nbsp;нарах, а&nbsp;Миненталь&nbsp;— это колония под&nbsp;магическим барьером, где каждый кусок мяса падальщика на&nbsp;счету. Игрок&nbsp;либо ходит на&nbsp;охоту и пашет на&nbsp;фракцию,&nbsp;либо&nbsp;быстро отбросит коньки в&nbsp;канаве от&nbsp;голода или&nbsp;первого&nbsp;же каторжника. </p><p>Когда мы на&nbsp;Бесте с&nbsp;нашими технарями задумали сделать эту тактическую RPG «Путь Героя», пришлось выбирать платформу для&nbsp;серверной части. В&nbsp;итоге мы решили использовать наш старый форум ещё времён 2004&nbsp;года, обновив его с&nbsp;древней версии 3.4.6&nbsp;до&nbsp;свежего каркаса IPS 5. Из&nbsp;коробки у&nbsp;него есть всё, что&nbsp;нужно: нормальная система прав, готовая база пользователей и вменяемое API. Но&nbsp;чтобы превратить обычный форум в&nbsp;нормальную игру, пришлось знатно поковыряться под&nbsp;капотом и в&nbsp;базах. Первым делом нужно&nbsp;было решить две главные проблемы: как&nbsp;упаковать всё это дело в&nbsp;легкое мобильное приложение и раз и навсегда отвадить игроков от&nbsp;читерства с&nbsp;кубиками.</p> <a href="https://habr.com/ru/articles/1062240/?utm_campaign=1062240&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 23 Jul 2026 11:20:17 GMT</pubDate>
      <dc:creator><![CDATA[LithiumBest]]></dc:creator>
      
      <category><![CDATA[Invision Community 5]]></category><category><![CDATA[Progressive Web Application]]></category><category><![CDATA[Web Game Development]]></category><category><![CDATA[мобильная игра в браузере]]></category><category><![CDATA[кроссплатформенная разработка]]></category><category><![CDATA[Миненталь]]></category><category><![CDATA[Готика]]></category><category><![CDATA[Gothic]]></category><category><![CDATA[оптимизация производительности]]></category><category><![CDATA[экономия времени разработки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вы не знаете CSS. Мои вопросы о CSS с ответами. Версия 2026 года]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1057086/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1057086/?utm_campaign=1057086&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/576/5bc/5ae/5765bc5aed9c77cc92f73f4269038b94.png" /><p>Хабр, привет!</p><p>В прошлом месяце я опубликовал <a href="https://habr.com/ru/companies/ruvds/articles/1045072/">статью с вопросами о HTML</a>. Неожиданно для меня, она понравилась многим и стала одной из самых популярных за последнее время. Раз так получилось, то почему бы не сделать то же самое про CSS? Вот я и пришёл со своими вопросами и, конечно, ответами.</p><p>Моя цель — это развлечь вас. Хотя вопросы связаны с практикой, на них не так просто ответить. Если вы не сможете ответить на большинство, то ничего страшного. Но, возможно, они покажутся вам легкотнёй.</p><p>Давайте посмотрим, что я вам подготовил.</p> <a href="https://habr.com/ru/articles/1057086/?utm_campaign=1057086&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Jul 2026 15:02:03 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Создание цветовой темы с помощью light-dark(), contrast-color() и запросов стилей]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1056342/</guid>
      <link>https://habr.com/ru/articles/1056342/?utm_campaign=1056342&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/492/42b/56f/49242b56fde78a791afcdac7e1f786ed.png" /><p>В этом небольшом туториале я покажу вам, как с помощью нескольких новых возможностей CSS можно создать действительно прикольную динамичную систему тематизации (theming). Эта техника позволяет создавать тематизированные компоненты с тенями в светлом режиме и светящимися границами в темном режиме, с текстом, который всегда остается читаемым, независимо от динамичного цвета его фона. Все на CSS. Доступно во всех современных браузерах с мая 2026 года.</p> <a href="https://habr.com/ru/articles/1056342/?utm_campaign=1056342&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Jul 2026 06:36:51 GMT</pubDate>
      <dc:creator><![CDATA[aio350]]></dc:creator>
      
      <category>css</category><category>webdev</category><category>theme</category><category>theming</category><category>color</category><category>тема</category><category>тематизация</category><category>цвет</category><category>new features</category><category>новые возможности</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[backdrop-filter: blur() — как он работает и как его правильно использовать]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1057226/</guid>
      <link>https://habr.com/ru/articles/1057226/?utm_campaign=1057226&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b47/c7c/ee0/b47c7cee0ee7a87e406dbb7375fcd419.png" /><p>Cвойство backdrop-filter: blur() под капотом работает совсем не так, как интуитивно кажется, и это приводит к багам, которые нелегко воспроизвести и довольно сложно объяснить. Потому давайте разбираться.</p> <a href="https://habr.com/ru/articles/1057226/?utm_campaign=1057226&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2026 21:12:07 GMT</pubDate>
      <dc:creator><![CDATA[VolhaIvanova]]></dc:creator>
      
      <category><![CDATA[web development]]></category><category><![CDATA[css]]></category><category><![CDATA[blur]]></category><category><![CDATA[gpu]]></category><category><![CDATA[backdrop]]></category><category><![CDATA[composition]]></category><category><![CDATA[rendering]]></category><category><![CDATA[painting]]></category><category><![CDATA[perfomance]]></category><category><![CDATA[layout]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пожалуйста, используйте эти CSS медиа-фукции]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1054454/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1054454/?utm_campaign=1054454&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/881/358/caf/881358cafeb495bc763b9f25850139c2.png" /><p>Привет, Хабр!</p><p>Я начал использовать медиа-запросы ещё в 2011 году. Помню, как на работе руководитель подарил мне книгу Итана Маркотта «Отзывчивый веб-дизайн». В тот день я даже не работал, а сел читать её. В конце дня я сделал свою первую реализацию адаптивной вёрстки.</p><p>С того времени мне всегда интересно следить за появлением новых возможностей в CSS, которые помогают стилизовать приложение в зависимости от параметров устройства. Это позволяет мне принимать более лучшие решения по адаптации интерфейсов под требования пользователей.</p><p>К моему сожалению, я часто вижу, что большинство из этих возможностей неизвестны фронтендерам. Я хочу это попытаться исправить. Сегодня расскажу вам о пяти медиа-функциях, которые можно очень легко внедрить в существующий проект.</p><p>Давайте посмотрим, что я вам подготовил.</p> <a href="https://habr.com/ru/articles/1054454/?utm_campaign=1054454&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Jul 2026 16:01:56 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Виртуализация адаптивной Grid разметки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1054576/</guid>
      <link>https://habr.com/ru/articles/1054576/?utm_campaign=1054576&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/996/772/220/996772220ef384fec54143584f12f575.gif" /><p>В этой статье я хочу поделиться своим подходом к решению задачи виртуализации списка элементов неизвестной высоты. Популярные библиотеки решают эту задачу с помощью приблизительных оценочных размеров с последующими замерами и корректировкой. Я хочу описать метод, основанный на привязке индексов к положению скроллбара, который позволяет достаточно точно позиционировать видимый диапазон элементов, при этом, не зная даже приблизительных размеров всех предыдущих элементов, используя только простую математику и родные механизмы позиционирования и разметки браузера.</p><p>С примерами работы на TypeScript, React, Vue и Angular можно ознакомиться на домашней странице проекта <a href="https://itihon.github.io/layout-virtual/" rel="noopener noreferrer nofollow">Layout Virtual</a>.</p><p>Репозиторий с проектом <a href="https://github.com/itihon/layout-virtual" rel="noopener noreferrer nofollow">тут</a>.</p> <a href="https://habr.com/ru/articles/1054576/?utm_campaign=1054576&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 02 Jul 2026 13:04:28 GMT</pubDate>
      <dc:creator><![CDATA[itihon]]></dc:creator>
      
      <category><![CDATA[виртуализация]]></category><category><![CDATA[адаптивная разметка]]></category><category><![CDATA[grid]]></category><category><![CDATA[список]]></category><category><![CDATA[библиотека]]></category><category><![CDATA[алгоритм]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Baseline: май 2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1053360/</guid>
      <link>https://habr.com/ru/articles/1053360/?utm_campaign=1053360&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0c2/f9e/7a8/0c2f9e7a815e248cb6d4b80ebd296807.png" /><p>Уже почти июнь подходит к концу, а я так и не выпустил эту статью. Исправляюсь.</p><p>Обзор на браузерные API, которые стали <strong>Widely available</strong> в мае 2026. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.</p><p>Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем. 2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.<br></p> <a href="https://habr.com/ru/articles/1053360/?utm_campaign=1053360&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Узнать, что можно применять в проде</a>]]></description>
      
      <pubDate>Mon, 29 Jun 2026 11:46:40 GMT</pubDate>
      <dc:creator><![CDATA[nikolayshabalin]]></dc:creator>
      
      <category><![CDATA[baseline]]></category><category><![CDATA[widely available]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как построить свою оргмодель, свое хобби-приложение и не потерять месяц жизни]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1053212/</guid>
      <link>https://habr.com/ru/articles/1053212/?utm_campaign=1053212&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/59c/a1f/a64/59ca1fa647a9a3c8370b647b08db861a.png" /><p>Друзья, сегодня отличный день, чтобы сделать свою первую статью на Хабре, который я читаю многие годы. Сегодня я успешно запустил в прод свой первый полноценный хобби (пет) проект. </p><p>Два года назад работая с замечательной командой консультантов института Адизеса, мы столкнулись с проблемой наличия бесплатного гибкого софта для построения орг.моделей. Быстро собрать подразделения и функции, перетащить ветки в новое место, покрасить и так что бы не рисовать линии и квадратики, а только сосредоточиться на самой модели, потому что все это происходит во время страт. сессии, где сидят руководители тех самых подразделений. А подразделений и веток много, сценариев много – кого-то временно скрыть или свернуть, кого-то скопировать как типовую функцию в другие ветки. Все делать нужно быстро и на большом экране и не всегда в логике HR штатной модели (а точнее всегда не в ней). Миро, Фигма и прочие конструкторы не подходят по той или иной причине.</p><p>Так у меня родилась идея приложения <strong>ORGFORMAT</strong>. Но только спустя два года я нашел время, чтобы ее реализовать.</p><p>Но мало сделать приложение, не менее важным было сделать легкий обмен сформированными моделями, возможность их просмотра и доработки участниками. А еще лучше часть рутины по низшим ветвям отдать ИИ на проверку или доработку. Так родилась еще одна идея – создать формат моделей, который говорит и на языке программы (data-to-diagram), и на языке человека, и на языке ИИ, и не зашит никакими лицензиями и нечитаемым кодом. То есть открытый формат. Было важно, чтобы формат работал с иерархическими моделями и не позволял никакие кросс-связи буквально, что бы пользователи не творили хаос между ветвями. Только прямая естественная потоковая иерархия и прямая ответственность. Но и признаки блокам нужны, так как не все способна отразить иерархия - так пришла идея тегов, как гибкая система реквизитов (а во многом и, по сути, мини база данных, при необходимости. Лайфхак!). Так же очень хотелось, что бы модель не только строила связи, но и по ним могла что-то посчитать - конечно же нужна универсальная ценность (value), но не ограничивать ее только одним типом, а дать свободно выбирать, что считать и в каких единицах схмерения – бюджет, время, единицы товара или количество населения страны. И это тоже нам надо! Для всего это отлично подошел хорошо известный ИТ-ишникам формат <strong><a href="https://en.wikipedia.org/wiki/YAML" rel="noopener noreferrer nofollow">YAML</a></strong>, который для людей открыт, как текст, а для машины, по сути, четкая структура данных. Вот и отлично, я собрал на его базе прототип структуры и необходимых атрибутов. И дал короткое название .orgf. Сгенерировал несколько моделей через ИИ и дал проверить результат другой ИИ – результат великолепный. ИИ легко переводила любые данные в этот формат, хоть штатное расписание из Екселя, хоть выгруженные в PDF структуры функций и процессов. Прототип открытого формата ORGF себя полностью оправдал! Так получилось, что модели и формат появились раньше самого редактора моделей (приложения). Ну что же есть понятный запрос, теперь надо было сделать под него софт!</p> <a href="https://habr.com/ru/articles/1053212/?utm_campaign=1053212&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 29 Jun 2026 08:37:53 GMT</pubDate>
      <dc:creator><![CDATA[Pulso]]></dc:creator>
      
      <category><![CDATA[диаграммы]]></category><category><![CDATA[pet-проекты]]></category><category><![CDATA[charts]]></category><category><![CDATA[open-source]]></category><category><![CDATA[hris]]></category><category><![CDATA[miro]]></category><category><![CDATA[figma]]></category><category><![CDATA[yaml]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Представляем MDN MCP-сервер]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1049274/</guid>
      <link>https://habr.com/ru/articles/1049274/?utm_campaign=1049274&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/597/3ca/961/5973ca961240b6ca78c4db9f2f4af0ef.png" /><p>Мы рады объявить о релизе <a href="https://developer.mozilla.org/en-US/mcp" rel="noopener noreferrer nofollow">MDN MCP-сервера</a>. <strong>MCP (Model Context Protocol)</strong> — это открытый стандарт, который позволяет ИИ-инструментам подключаться к внешним источникам данных. MDN MCP-сервер использует этот протокол, чтобы доставлять документацию MDN и данные о совместимости браузеров прямо в твой редактор кода или IDE.</p> <a href="https://habr.com/ru/articles/1049274/?utm_campaign=1049274&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 18 Jun 2026 18:23:07 GMT</pubDate>
      <dc:creator><![CDATA[qmzik]]></dc:creator>
      
      <category>frontend</category><category>codex</category><category>claude-code</category><category>mcp</category><category>mdn</category><category>ai</category><category>веб-разработка</category><category>llm</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Анатомия «живой» кнопки: 5 слоёв, GPU-анимация и трюки с CSS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1047114/</guid>
      <link>https://habr.com/ru/articles/1047114/?utm_campaign=1047114&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f54/d2d/95a/f54d2d95a34df9b83f4383690d99c201.png" /><p>Хочу поделиться кейсом, когда разработка типичного tab-switcher  превращается в настоящее архитектурное решение.</p> <a href="https://habr.com/ru/articles/1047114/?utm_campaign=1047114&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 13 Jun 2026 13:31:57 GMT</pubDate>
      <dc:creator><![CDATA[VolhaIvanova]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[frontend]]></category><category><![CDATA[ui]]></category><category><![CDATA[ui-components]]></category><category><![CDATA[css-animation]]></category><category><![CDATA[gpu-animation]]></category><category><![CDATA[mix-blend-mode]]></category><category><![CDATA[9-slice]]></category><category><![CDATA[pseudo-elements]]></category><category><![CDATA[webdev]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я устал от Electron, Tauri и Neutralino — и случайно сделал… лучше?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1046187/</guid>
      <link>https://habr.com/ru/articles/1046187/?utm_campaign=1046187&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a57/8bc/88b/a578bc88bb41e63f9705f727488b1a09.png" /><p>Webnative - фреймворк для разработки нативных приложений на языках веба с использованием нативных webview компонентов.</p> <a href="https://habr.com/ru/articles/1046187/?utm_campaign=1046187&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 10 Jun 2026 16:10:34 GMT</pubDate>
      <dc:creator><![CDATA[mindw1n]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[native]]></category><category><![CDATA[linux]]></category><category><![CDATA[windows]]></category><category><![CDATA[electron]]></category><category><![CDATA[tauri]]></category><category><![CDATA[neutralinojs]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Шпаргалка BA: как не потеряться на встрече со стейкхолдером и командой]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1045874/</guid>
      <link>https://habr.com/ru/articles/1045874/?utm_campaign=1045874&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/960/534/cc4/960534cc4c78a4aaa60ec3d53eaea5ef.png" /><p>Когда я первый раз пришёл на встречу со стейкхолдером в роли аналитика, я честно не знал с чего начать. Вопросы в голове были — но не в том порядке. Половину забыл по ходу. Вышел с ощущением что поговорили хорошо, но непонятно о чём.</p><p>Я поискал готовые шаблоны. Нашёл Excel-таблицы, PDF-чеклисты и десятки статей с советами. Ни одно из этого не открывалось быстро прямо на встрече и не помогало думать в реальном времени.</p><p>Поэтому я сделал&nbsp;<strong>BA Toolkit</strong>&nbsp;— набор интерактивных инструментов для структурирования BA-встреч. Открываешь в браузере, идёшь по шагам, фиксируешь всё на месте.</p><p>Три месяца спустя — три инструмента в продакшене, открытый код на GitHub и эта статья.</p> <a href="https://habr.com/ru/articles/1045874/?utm_campaign=1045874&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 10 Jun 2026 09:30:26 GMT</pubDate>
      <dc:creator><![CDATA[DenisSadykov]]></dc:creator>
      
      <category><![CDATA[Бизнес-аналитик]]></category><category><![CDATA[управление требованиями]]></category><category><![CDATA[сбор требований]]></category><category><![CDATA[управление проектами]]></category><category><![CDATA[инструменты аналитика]]></category><category><![CDATA[открытый код]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Устаревшие CSS-техники, от которых уже можно отказаться]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1040320/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1040320/?utm_campaign=1040320&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0b2/ebc/e67/0b2ebce67bd467cf22cb94e8347e0002.png" /><p>Привет, Хабр!</p><p>В общении с коллегами я всё чаще замечаю, что многие не знают о последних возможностях CSS. Кто-то настолько занят повседневными задачами, что просто не успевает следить за новинками. Кому-то это не особенно интересно. А кто-то уже много лет использует знакомые подходы и не видит причин что-то менять.</p><p>Как человеку, который является поклонником CSS, мне немного грустно это наблюдать. Столько интересных возможностей остаётся без внимания! А ведь с их помощью код нередко становится короче, надёжнее и проще для понимания. Поэтому я собрал несколько примеров популярных решений прошлого и переписал их, используя новинки CSS, вышедшие за последние несколько лет.</p><p>Давайте посмотрим, что у меня получилось.</p> <a href="https://habr.com/ru/articles/1040320/?utm_campaign=1040320&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 09 Jun 2026 09:01:01 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[вёрстка]]></category><category><![CDATA[создание сайтов]]></category><category><![CDATA[html]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как выжать из HTML/CSS динамику, или создание IRC клиента без JS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1036526/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1036526/?utm_campaign=1036526&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cbe/c85/9b3/cbec859b34b1efbdcb93b53bf2158c51.png" /><p>Когда возникает идея создать браузерный IRC-клиент без JavaScript, приходится сталкиваться с классической проблемой фронтенда: все насколько привыкли гнать динамику через JavaScript, что перестали замечать возможности HTML/CSS с щепоткой серверной магии по реализации многих фич. HTTP Streaming существует с давних времён, а CSS эволюционировал настолько, что может справиться с логикой состояний — но мы упорно продолжаем грузить мегабайты JavaScript (и иногда даже WebAssembly) для решений, которые вполне можно реализовать иначе.</p><p>Идея создать IRC клиент без JavaScript не совсем нова (хоть это и выяснилось уже после создания такого :) ). Ещё в нулевых появился <strong>CGI:IRC</strong> — настоящий IRC клиент, который может работать полностью без JavaScript, позволяя людям общаться в реальном времени через браузер, даже если JavaScript по каким-то причинам не работал. Но это было в эру table-layouts, и когда CSS не был так развит, как сейчас. Сегодня возможностей больше, и мы воспользуемся ими, чтобы навернуть функциональность, которая не видана CGI:IRC.</p><p>Результат можно глянуть (хоть и с дополнительной стилизацией и изменениями, которые не так важны для статьи) <a href="https://cssonlysolutions.sytes.net/">здесь</a>, а ещё на <a href="https://github.com/j4niwzis/web_irc">GitHub</a></p> <a href="https://habr.com/ru/articles/1036526/?utm_campaign=1036526&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 08 Jun 2026 08:05:21 GMT</pubDate>
      <dc:creator><![CDATA[j4niwzis (Timeweb Cloud)]]></dc:creator>
      
      <category><![CDATA[declarative shadow dom]]></category><category><![CDATA[irc]]></category><category><![CDATA[no-js]]></category><category><![CDATA[html]]></category><category><![CDATA[css]]></category><category><![CDATA[http-streaming]]></category><category><![CDATA[css-логика]]></category><category><![CDATA[timeweb_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Lighthouse 100 / 100: как мы повесили GTM, GA4, Яндекс.Метрику и Clarity на статический сайт — и не уронили скорость]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1042228/</guid>
      <link>https://habr.com/ru/articles/1042228/?utm_campaign=1042228&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/951/e8c/c03/951e8cc030cf0b6fd55b385124bc0adc.webp" /><p>Когда маркетологи хотят всё: сырые данные в GA4, запись сессий в Метрике, хитмапы в Clarity и при этом «Lighthouse 100» в PageSpeed Insights — приходится изобретать. Расскажу, как мы это сделали на небольшом проекте и во что это обошлось по времени и нервам.</p><p>Проект — нишевый агрегатор российских хостинг-провайдеров. Более 120 страниц в sitemap, 31 статья, десятки категорий услуг, живые цены, сравнения. Стек: Astro 6 + Strapi 5 + Tailwind 4, плюс Partytown, PostgreSQL, Nginx и обычный VPS на Ubuntu. Сайт собирается в статику во время билда, никакого SSR в рантайме нет.</p><p>На desktop — Lighthouse 100 / 100 / 100 / 100. На mobile с жёстким throttling (4x slow CPU) — 99 / 100 / 100 / 100. В реальных условиях и по Chrome UX Report — 100 везде. LCP на desktop — 0,5 секунды, на mobile throttled — 1,7 секунды. CLS — ноль. TBT — 10 ms на мобильном и 0 ms на десктопе.</p> <a href="https://habr.com/ru/articles/1042228/?utm_campaign=1042228&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 01 Jun 2026 13:18:51 GMT</pubDate>
      <dc:creator><![CDATA[sarutobi4]]></dc:creator>
      
      <category><![CDATA[Astro]]></category><category><![CDATA[Strapi]]></category><category><![CDATA[Tailwind CSS]]></category><category><![CDATA[Partytown]]></category><category><![CDATA[Lighthouse]]></category><category><![CDATA[Core Web Vitals]]></category><category><![CDATA[Web Worker]]></category><category><![CDATA[GTM]]></category><category><![CDATA[performance]]></category><category><![CDATA[SSG]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я сделал Vite-плагин, который сохраняет изменения CSS прямо в исходники]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1041454/</guid>
      <link>https://habr.com/ru/articles/1041454/?utm_campaign=1041454&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ffc/37c/e79/ffc37ce796fa1557dc2ea23a5e40f79a.png" /><p>Каждый раз, когда я хотел поправить отступ или цвет в процессе разработки, я делал одно и то же:</p><p>открыл DevTools → нашёл элемент → поменял значение → понравилось → скопировал → переключился в редактор → нашёл файл → вставил.</p><p>Это семь шагов ради однострочного изменения. Я сделал <a href="https://github.com/Artyx71/livestylesync" rel="noopener noreferrer nofollow">LiveStyleSync</a>, чтобы это был один шаг.</p> <a href="https://habr.com/ru/articles/1041454/?utm_campaign=1041454&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 30 May 2026 09:23:18 GMT</pubDate>
      <dc:creator><![CDATA[Artyx71]]></dc:creator>
      
      <category><![CDATA[vite]]></category><category><![CDATA[css]]></category><category><![CDATA[scss]]></category><category><![CDATA[devtools]]></category><category><![CDATA[open-source]]></category><category><![CDATA[typescript]]></category><category><![CDATA[preact]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что новенького есть в CSS в 2026 году?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1036938/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1036938/?utm_campaign=1036938&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e18/2fd/797/e182fd797d497bf01a18a215ecb9d113.png" /><p>Привет, Хабр!</p><p>Мне всегда нравилось следить за тем, как развивается CSS. Стараюсь следить за новыми возможностями, чтобы не пропускать что-то действительно важное. И недавно подумал: «А почему бы не рассказать о них читателям Хабра?» Так я и оказался здесь.</p><p>Я составил список новинок, которые кажутся мне особенно интересными и важными. Они всё ещё экспериментальные. Браузеры только в последние месяцы начали поддерживать их. Так что это суперсвежие штуки.</p><p>Давайте посмотрим, что я вам подготовил.</p> <a href="https://habr.com/ru/articles/1036938/?utm_campaign=1036938&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 26 May 2026 09:02:07 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[вёрстка]]></category><category><![CDATA[новинки]]></category><category><![CDATA[frontend]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Чтобы не выглядело как пет-проект»: как я в одиночку сделал премиальный интерфейс кино-сервиса (с кодом)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1037818/</guid>
      <link>https://habr.com/ru/articles/1037818/?utm_campaign=1037818&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e29/a01/b06/e29a01b06b80a25861b6316bd59873e9.png" /><p>В прошлой статье я рассказывал, каково в одиночку тащить фуллстек-проект, который разросся до кино-соцсети. В комментариях несколько раз спросили про конкретику — «покажи код», «как сделал, что не выглядит как очередной пет-проект». Логично: дизайн — это то, по чему встречают. Поэтому держите вторую часть, уже техническую и с кодом. Без маркетинга, только решения, которые реально сделали интерфейс «дорогим», и пара бэкенд-хитростей в довесок.</p><p>Сразу дисклеймер: я не дизайнер. Всё нажито методом «смотрю на референсы (Letterboxd, Mubi, KinoPoisk HD) и пытаюсь повторить ощущение». Оказалось, премиальность — это не про дорогие шрифты, а про несколько повторяющихся приёмов. Разберём пять.</p><p><strong>1. Акцентный цвет из постера фильма — фича, которая дороже всего «продаёт»</strong></p><p>Самое заметное решение. Раньше у меня на всех страницах был один статичный фиолетовый акцент — и это выглядело дёшево и одинаково. Идея: пусть каждая страница фильма подсвечивается доминантным цветом его постера. Заходишь на мрачный нуар — интерфейс уходит в холодный синий, открываешь комедию — тёплый янтарь. Страница будто «сделана под этот фильм».</p><p>Делается без всяких ML, прямо в браузере через canvas: рисуем постер в крошечный буфер 32×48, усредняем цвета (выкидывая чёрные рамки и серость), переводим в HSL и принудительно «насыщаем», потому что постеры часто тусклые. Результат кладём в CSS-переменную — и весь интерфейс подхватывает её.</p> <a href="https://habr.com/ru/articles/1037818/?utm_campaign=1037818&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 21 May 2026 13:34:31 GMT</pubDate>
      <dc:creator><![CDATA[vibemuvik]]></dc:creator>
      
      <category><![CDATA[Next.js]]></category><category><![CDATA[React]]></category><category><![CDATA[CSS]]></category><category><![CDATA[glassmorphism]]></category><category><![CDATA[canvas]]></category><category><![CDATA[Web Push]]></category><category><![CDATA[VAPID]]></category><category><![CDATA[FastAPI]]></category><category><![CDATA[пет-проект]]></category><category><![CDATA[vibemuvik]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Шрифтовые иски в РФ: 15,3 млн ₽ взысканий за 5 лет и как технически проверить свой сайт]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1035362/</guid>
      <link>https://habr.com/ru/articles/1035362/?utm_campaign=1035362&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fe5/1fb/faa/fe51fbfaa29988ffd58be7fd3c10046b.png" /><p>Если вы веб‑разработчик и хоть раз подключали шрифт «потому что&nbsp;он красивее, чем системный Arial»&nbsp;— есть ненулевая вероятность, что&nbsp;у&nbsp;вас на&nbsp;сайте лежит коммерческий гарнитур без&nbsp;лицензии. Российский бизнес три‑пять лет назад массово открыл для&nbsp;себя, что&nbsp;это не&nbsp;безобидно: за&nbsp;период 2021–2025&nbsp;годов через арбитражные суды по&nbsp;шрифтовым искам&nbsp;<strong>взыскано 15,3&nbsp;млн ₽</strong>&nbsp;(<a href="https://www.kommersant.ru/doc/8293495" rel="noopener noreferrer nofollow">данные Коммерсанта</a>), число исков выросло&nbsp;<strong>в 2,5&nbsp;раза за&nbsp;пять лет</strong>, и тренд продолжается.</p><p>При&nbsp;этом проверить свой сайт на&nbsp;потенциально опасные шрифты&nbsp;— технически нетривиальная задача. Парсить CSS «как получится» через регулярки не&nbsp;работает: получаются ложные срабатывания на&nbsp;CSS‑ключевые слова, на&nbsp;источниках вроде Яндекс.Метрики, на&nbsp;иконочных шрифтах. Дальше&nbsp;— про&nbsp;правовую сторону вопроса и про&nbsp;то, как&nbsp;мы написали детектор, который этим не&nbsp;страдает.</p> <a href="https://habr.com/ru/articles/1035362/?utm_campaign=1035362&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 14 May 2026 20:35:29 GMT</pubDate>
      <dc:creator><![CDATA[mrq]]></dc:creator>
      
      <category><![CDATA[шрифты]]></category><category><![CDATA[авторское право]]></category><category><![CDATA[CSS-парсер]]></category><category><![CDATA[ст. 1301 ГК РФ]]></category><category><![CDATA[ParaType]]></category><category><![CDATA[ТайпТайп]]></category><category><![CDATA[Студия Лебедева]]></category><category><![CDATA[font-family]]></category><category><![CDATA[Google Fonts]]></category><category><![CDATA[аудит сайта]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Управляемый прокруткой CSS в 2026 году — разработка карусели без JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1034960/</guid>
      <link>https://habr.com/ru/articles/1034960/?utm_campaign=1034960&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ac7/8ce/7b4/ac78ce7b44b77559de904bf3c5a3a712.png" /><p>Исторически создание карусели в веб-разработке означало использование какой-либо JS-библиотеки. Slick, Swiper, Flickity, Embla Carousel и другие заполняли пробел платформы. Каждая из них увеличивала размер сборки, имела свои особенности обеспечения доступности и накладные расходы на обработку событий. Полный минифицированный пакет Swiper v11 весит приблизительно 140 КБ; даже модульные импорты составляют 40-60 КБ для ядра и навигации. Умножьте это на бесчисленные маркетинговые страницы, галереи товаров в электронной коммерции и макеты с большим количеством медиаконтента, которые зависят от каруселей, и расходы сильно возрастут: долгое время до интерактивности, блокировка основного потока во время инициализации и большой размер передаваемых данных на каждой странице, где используется слайдер.</p> <a href="https://habr.com/ru/articles/1034960/?utm_campaign=1034960&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 14 May 2026 04:36:30 GMT</pubDate>
      <dc:creator><![CDATA[aio350]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>css</category><category>html</category><category>carousel</category><category>slider</category><category>карусель</category><category>слайдер</category><category>scroll-snap</category><category>scroll-driven animations</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Структура Vue проекта]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1033300/</guid>
      <link>https://habr.com/ru/articles/1033300/?utm_campaign=1033300&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/693/955/10b/69395510bc5ead460b444588f439e236.png" /><p>Правильная файловая структура - скелет любого фронтенд-приложения. В Vue 3 нет строгих предписаний, как раскладывать файлы по папкам, кроме базового разделения&nbsp;<code>components/</code>,&nbsp;<code>views/</code>. Но с ростом проекта хаотичное размещение кода быстро превращается в проблему. В этой статье разберём популярные подходы к организации Vue-проектов: от простейшего плоского до микрофронтендов.</p> <a href="https://habr.com/ru/articles/1033300/?utm_campaign=1033300&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 09 May 2026 10:56:09 GMT</pubDate>
      <dc:creator><![CDATA[Pnym]]></dc:creator>
      
      <category><![CDATA[архитектура]]></category><category><![CDATA[структура проекта]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Маркетинговый сайт без дизайнера: 5 практик с Open Design и Claude Code]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032924/</guid>
      <link>https://habr.com/ru/articles/1032924/?utm_campaign=1032924&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8cd/1d9/c9b/8cd1d9c9b6ec5fe02d2c62370d77ee73.png" /><p>Я попробовал собрать маркетинговый сайт через Claude Design - и быстро упёрся в лимиты токенов и непрозрачность облачного тула. Перешёл на Open Design - open-source альтернативу, которая цепляет твой Claude Code, держит дизайн-систему как <code>DESIGN.md</code> в репозитории и работает локально. Под катом - четыре практики, которые сработали на сайте конференции: design-as-code в git, симлинк дизайнера в код сайта, два markdown-файла под бренд и дизайн токены, и как мы учили автономных агентов делать сайт с помощью нашей дизайн системы</p> <a href="https://habr.com/ru/articles/1032924/?utm_campaign=1032924&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 08 May 2026 08:46:29 GMT</pubDate>
      <dc:creator><![CDATA[ayusavin]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[claude]]></category><category><![CDATA[anthropic]]></category><category><![CDATA[open design]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[дизайн-система]]></category><category><![CDATA[design-as-code]]></category><category><![CDATA[next.js]]></category><category><![CDATA[tailwind css]]></category><category><![CDATA[маркетинговый сайт]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Отказываемся от wkhtmltopdf: как мы искали решение для генерации нетривиальных PDF]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1032366/</guid>
      <link>https://habr.com/ru/articles/1032366/?utm_campaign=1032366&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/056/3b5/98b/0563b598bae268a03e2a17337afdfc57.jpg" /><p><strong>wkhtmltopdf долгое время был одним из основных инструментов для генерации PDF из HTML. Мы столкнулись с ним на собственном проекте, но, когда потребовалось реализовать сложные макеты, колонтитулы и повторяющиеся заголовки в многостраничных документах — возникли проблемы.</strong></p><p><strong>В этой статье — краткий обзор альтернатив (Headless Chrome, Puppeteer, Playwright, WeasyPrint, Gotenberg), их плюсы и минусы, а также наш итоговый выбор и подводные камни, которые всплыли в процессе внедрения.</strong></p> <a href="https://habr.com/ru/articles/1032366/?utm_campaign=1032366&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 07 May 2026 10:30:52 GMT</pubDate>
      <dc:creator><![CDATA[true_engineer]]></dc:creator>
      
      <category><![CDATA[генерация pdf]]></category><category><![CDATA[wkhtmltopdf альтернативы]]></category><category><![CDATA[печать сложных документов React]]></category><category><![CDATA[отказ от wkhtmltopdf]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Зря вы забыли эти HTML- и CSS-фичи]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1029698/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1029698/?utm_campaign=1029698&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/bc8/c8c/12f/bc8c8c12f4b68a831a702f872078a610.png" /><p>Привет, Хабр!</p><p>Мне нравится рассказывать про HTML и CSS. Отдельное удовольствие — находить очень старые фичи языков, о которых редко кто знает. Сегодня я пришёл как раз с ними.</p><p>Я подобрал список фич, которые стали полностью поддерживаться в браузерах восемь лет назад или раньше. Есть даже одна, которая работала, когда я пришёл во фронтенд.</p><p>Только, пожалуйста, не думайте, что это какие-то устаревшие возможности. Я считаю, что в сегодняшней разработке они всё так же полезны.</p><p>Давайте посмотрим, что я подготовил.</p> <a href="https://habr.com/ru/articles/1029698/?utm_campaign=1029698&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 09:01:50 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[вёрстка сайтов]]></category><category><![CDATA[фичи]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[macOS TickTick + Google Calendar прямо на десктопе через Übersicht]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031546/</guid>
      <link>https://habr.com/ru/articles/1031546/?utm_campaign=1031546&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e57/1d3/d0c/e571d3d0cacdeb60c5377a5e4f0e946a.png" /><p>Не нашел на хабре информации про эту замечательную опенсорсную программу - Übersicht.<br>Xочу поделится опытом как у меня получилось решить мою боль с постоянным забыванием, что нужно сделать и что запланировано.<br>Последней каплей стал случай на работе, когда меня спрашивают про тайминг очередной встречи, я залезаю в рабочий календарь Битрикса - все пусто, говорю да я свободен, а потом через час вспоминаю что на это время записан к зубному и дальше переговоры переносы и прочее, а можно было. бы решить вопрос за 2 секунды.</p><p>Конечно вы скажете сам виноват, делай стикеры на монитор, веди все в одном месте, открывай нужные программы, это да но лень, я только недавано приучил себя использовать таск менеджеры, и заносить туда информацию, это мне еще ориентироваться на то что я там записал?)</p><p><strong>Начну с таск менеджеров.</strong></p><p>Я долго искал таск-менеджер, который бы не был просто «еще одним приложением», куда я забрасываю дела и забываю про них. Мне было важно&nbsp;<strong>видеть</strong>&nbsp;свои задачи, а не вспоминать, что нужно открыть очередную программу и проверить, что там на сегодня.</p><p>Календарь в Google — понятно, встречи там. А задачи и напоминания? Todoist, Things, Singularity, напоминания Apple — это все хорошо, но каждый раз лезть в отдельную программу, это лишние 10–15 секунд, которые отбивают всякое желание планировать. Todoist я долго пользовался, почти год но мне не хватало одной важной фишки: Вот Календарь с задачами и встречами и справа тут же окно с не распределенным задачами и можно драгдропом перекинуть их в нужный день и в нужное место.</p> <a href="https://habr.com/ru/articles/1031546/?utm_campaign=1031546&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 07:55:47 GMT</pubDate>
      <dc:creator><![CDATA[shknv_e]]></dc:creator>
      
      <category><![CDATA[опыт]]></category><category><![CDATA[macos]]></category><category><![CDATA[ticktick]]></category><category><![CDATA[ubersitch]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Baseline: апрель 2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028616/</guid>
      <link>https://habr.com/ru/articles/1028616/?utm_campaign=1028616&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d4d/135/8a6/d4d1358a67e0a6e6899e443439a457d3.png" /><p>Обзор на браузерные API, которые стали <strong>Widely available</strong> в апреле 2026. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.</p><p>Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.  </p><p>2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.</p> <a href="https://habr.com/ru/articles/1028616/?utm_campaign=1028616&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Узнать, что можно применять в проде</a>]]></description>
      
      <pubDate>Fri, 01 May 2026 16:31:19 GMT</pubDate>
      <dc:creator><![CDATA[nikolayshabalin]]></dc:creator>
      
      <category><![CDATA[baseline]]></category><category><![CDATA[widely available]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Проблемы санации SVG]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029558/</guid>
      <link>https://habr.com/ru/articles/1029558/?utm_campaign=1029558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/928/5e4/812/9285e481221f889d9f9b2281e9439cf4.png" /><p>Рендерер Scratch имеет долгую историю связанных с SVG уязвимостей. Их источником становится то, что Scratch парсит сгенерированный пользователем (то есть контролируемый нападающими) контент в элемент <code>&lt;svg&gt;</code>&nbsp;и добавляет его в основной документ для выполнения различных операций (например, для измерения ограничивающего прямоугольника SVG более надёжным образом, чем viewbox или width/height).</p><p>Даже если SVG остаётся в основном документе очень недолго, это небезопасная по своей природе операция. Для обеспечения защиты Scratch реализовывал всё более сложную инфраструктуру парсинга SVG и находящейся внутри разметки, чтобы устранить опасные части.</p><p>Я считаю, что подход Scratch к санации SVG обречён на провал. Чтобы объяснить это, нам нужно совершить путешествие по истории санации SVG в Scratch и посмотреть, насколько хорошо он с этим справлялся.</p> <a href="https://habr.com/ru/articles/1029558/?utm_campaign=1029558&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 12:45:07 GMT</pubDate>
      <dc:creator><![CDATA[PatientZero]]></dc:creator>
      
      <category>scratch</category><category>svg</category><category>рендеринг</category><category>xss</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Как ощущаются 70к строк TS для гетеросексуала Go — потратить год жизни в 18]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029412/</guid>
      <link>https://habr.com/ru/articles/1029412/?utm_campaign=1029412&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1ce/2e3/bf9/1ce2e3bf9e4eafb71f13d21f9dc52477.png" /><p>Сегодня я хочу рассказать про то, как гетеросексуальный бэкендер (до этого момента коим я себя в той или иной степени считал) переживает болезненный опыт построения клиентской части платформы. Ради интереса недавно я посмотрел, сколько примерно строк на данный момент насчитывает репозиторий фронтенда Kroncl (название платформы), и приятно удивился числу 70.</p><p>Сделаю поправку на то, что очевидно: объём кода не свидетельствует о его чистоте и виртуозном ведении (опытные читатели скорее установят обратную зависимость).</p> <a href="https://habr.com/ru/articles/1029412/?utm_campaign=1029412&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 06:59:42 GMT</pubDate>
      <dc:creator><![CDATA[mainbotan]]></dc:creator>
      
      <category><![CDATA[frontend]]></category><category><![CDATA[front-end разработка]]></category><category><![CDATA[next.js]]></category><category><![CDATA[ts]]></category><category><![CDATA[go]]></category><category><![CDATA[golang]]></category><category><![CDATA[ой]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Геометрические фигуры в CSS-анимации]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1026148/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1026148/?utm_campaign=1026148&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/aa8/9d5/9a2/aa89d59a2212f78a1449f16c4c5f4edc.png" /><p>Хабр, привет!</p><p>Я во фронтенде настолько давно, что учился верстать по текстовым туториалам. В начале десятых годов я и все мои знакомые фронтендеры обязательно были подписаны на рассылки, в которых авторы делились креативными штуками.</p><p>По моим ощущениям, сейчас их стало меньше. Все ушли в YouTube, а теперь в ChatGPT. Но мне этот формат не подходит, поэтому я пришёл сюда, к вам.</p><p><a href="https://codepen.io/melnik909/full/yLmWadq">В прошлом году я создал коллекцию лоадеров</a>. В основе анимации — базовые геометрические фигуры. Я их двигаю, преобразую из одной формы в другую и всё такое.</p><p>В этой статье я хочу рассказать весь процесс создания, начиная с самых базовых моментов. Сразу предупреждаю, что в этой статье не будет «живых» вставок. Все эффекты смотрите в моей демонстрации на CodePen.</p><p>Давайте посмотрим, что я вам подготовил.</p> <a href="https://habr.com/ru/articles/1026148/?utm_campaign=1026148&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 09:01:01 GMT</pubDate>
      <dc:creator><![CDATA[melnik909 (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[анимации]]></category><category><![CDATA[геометрические фигуры]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CSS для тех, кто спал и проснулся]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1026574/</guid>
      <link>https://habr.com/ru/articles/1026574/?utm_campaign=1026574&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/660/192/4da/6601924da17dadda3782d688aad628b1.jpg" /><p>За&nbsp;последние годы CSS сильно изменился: появились вложенность, новые селекторы, container queries и нормальная работа с&nbsp;темами. В&nbsp;этой статье&nbsp;- краткий разбор ключевых фич, которые позволяют писать меньше костылей и реже тянуть JS.</p> <a href="https://habr.com/ru/articles/1026574/?utm_campaign=1026574&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Проснуться</a>]]></description>
      
      <pubDate>Wed, 22 Apr 2026 11:21:23 GMT</pubDate>
      <dc:creator><![CDATA[Sedm1]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[html]]></category><category><![CDATA[frontend]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Лицензии уходят, музыка остаётся: как я превратил тему для музыкального клиента в runtime-аддон с блекджеком и WASM]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025248/</guid>
      <link>https://habr.com/ru/articles/1025248/?utm_campaign=1025248&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4c4/426/a4a/4c4426a4a8de4f9a6011fddd892d57e0.png" /><p>Около года назад моё <strong>желание кастомизировать десктопный клиент </strong>популярного музыкального сервиса привело меня в некое сообщество. Всё началось с попытки восстановить заброшенную тему «<em>Blurity</em>» после очередного обновления Electron-хоста, которое сломало все селекторы. Но проект быстро перерос рамки обычных правок CSS.</p><p>В этой статье я расскажу, как <strong><em>ChromaSync </em></strong>эволюционировал из простого визуального патча в полноценную инженерную систему — runtime-аддон со сложной архитектурой. Мы разберем «анатомию» плеера, создание декларативной системы из <strong>70+ настроек </strong>и перенос тяжелой математики аудиореактивных эффектов в изолированное ядро на WASM. Это история о том, как <strong>700 строк JavaScript превратились в 10 000</strong>, а обычная «разукрашка» — в оптимизированную экосистему, умеющую балансировать между визуальной насыщенностью и производительностью системы.</p> <a href="https://habr.com/ru/articles/1025248/?utm_campaign=1025248&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 12:45:59 GMT</pubDate>
      <dc:creator><![CDATA[desai]]></dc:creator>
      
      <category><![CDATA[JavaScript]]></category><category><![CDATA[CSS]]></category><category><![CDATA[WebAssembly]]></category><category><![CDATA[Rust]]></category><category><![CDATA[Electron]]></category><category><![CDATA[Desktop]]></category><category><![CDATA[Аудиовизуализация]]></category><category><![CDATA[Оптимизация производительности]]></category><category><![CDATA[Кастомизация]]></category><category><![CDATA[музыка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[108 окон: как команда без разработчиков и бюджета построила Интерактивный дом-таймлайн про ТВ 90-х]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025152/</guid>
      <link>https://habr.com/ru/articles/1025152/?utm_campaign=1025152&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6f1/688/f0a/6f1688f0ab7d2370bb0b95bdee1125a7.jpg" /><p>Мы сделали интерактивный дом-таймлайн про телевидение 90-х и 00-х. Под катом: как команда без разработчиков дошла от JSON-файла на VPS за до корпоративного Kubernetes</p> <a href="https://habr.com/ru/articles/1025152/?utm_campaign=1025152&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 07:23:41 GMT</pubDate>
      <dc:creator><![CDATA[VetaOne]]></dc:creator>
      
      <category><![CDATA[vanillajs]]></category><category><![CDATA[frontend]]></category><category><![CDATA[cms]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[canvas]]></category><category><![CDATA[webp]]></category><category><![CDATA[avif]]></category><category><![CDATA[parallax]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[телевидение]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как ИИ написал локальный редактор IPTV-плейлистов на FastAPI + React 19]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024902/</guid>
      <link>https://habr.com/ru/articles/1024902/?utm_campaign=1024902&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b4c/fc3/e5e/b4cfc3e5eeb51eff1bb093fc1e737bf9.png" /><p><strong>Заголовок</strong>: Как я написал локальный редактор IPTV-плейлистов на FastAPI + React 19 (и почему всё состояние хранится по именам)</p><p><strong>Хабы</strong>: <code>React</code>, <code>FastAPI</code>, <code>TypeScript</code>, <code>Tailwind CSS</code>, <code>Open source</code>, <code>IPTV</code>, <code>Python</code></p><p><strong>Теги</strong>: <code>m3u</code>, <code>m3u8</code>, <code>iptv</code>, <code>fastapi</code>, <code>react</code>, <code>hls</code>, <code>epg</code>, <code>drag-and-drop</code>, <code>self-hosted</code></p> <a href="https://habr.com/ru/articles/1024902/?utm_campaign=1024902&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 06:16:14 GMT</pubDate>
      <dc:creator><![CDATA[Resurs1]]></dc:creator>
      
      <category><![CDATA[m3u]]></category><category><![CDATA[m3u8]]></category><category><![CDATA[iptv]]></category><category><![CDATA[fastapi]]></category><category><![CDATA[react]]></category><category><![CDATA[hls]]></category><category><![CDATA[epg]]></category><category><![CDATA[drag-and-drop]]></category><category><![CDATA[self-hosted]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[От #FFF к OKLCH: как эволюция цветовых моделей меняет веб-разработку]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024482/</guid>
      <link>https://habr.com/ru/articles/1024482/?utm_campaign=1024482&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cba/dee/cbc/cbadeecbc6c85902cfae84a84b77545b.jpg" /><p>Помните времена, когда цвета в CSS выбирались почти наугад? Белый фон — <code>#FFF</code>, чёрный текст — <code>#000</code>, акцент — какой-нибудь <code>#3498db</code>, который просто нормально смотрится? Для раннего веба этого хватало. Интерфейсы были проще, экраны — одинаковее, а требования к доступности, темам и визуальной консистентности ещё не давили на разработку так сильно, как сейчас.</p><p>Но современная веб-разработка давно ушла от логики «подобрали цвет и забыли». Сегодня интерфейс должен одинаково уверенно жить в светлой и тёмной теме, не ломаться на широком цветовой охвате дисплеев, держать читаемый контраст в веб-дизайне и при этом оставаться удобным для поддержки. Именно поэтому эволюция цветовых моделей стала важной инженерной темой.</p><p>Сейчас цвета в <code>CSS</code> — это целый набор подходов, через которые проект решает задачи доступности, масштабируемости и удобства разработки. И на этом фоне <code>OKLCH</code> всё чаще рассматривают как следующий логичный шаг: модель, которая лучше соответствует человеческому восприятию и помогает строить более стабильные палитры.</p> <a href="https://habr.com/ru/articles/1024482/?utm_campaign=1024482&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 07:42:04 GMT</pubDate>
      <dc:creator><![CDATA[sergodeem]]></dc:creator>
      
      <category><![CDATA[css]]></category><category><![CDATA[oklch]]></category><category><![CDATA[веб-дизайн]]></category><category><![CDATA[дизайн-системы]]></category><category><![CDATA[фронтенд]]></category><category><![CDATA[hsl]]></category><category><![CDATA[rgb]]></category><category><![CDATA[цветовые пространства]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Предварительная загрузка изображений с помощью JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1020138/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1020138/?utm_campaign=1020138&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cae/1c3/b12/cae1c3b126605623da8fecefa77fa907.png" /><p>Я узнал, что задача предварительной загрузки изображений с помощью JavaScript удивительно сложна. Существует несколько способов это сделать, и лучший из них зависит от требований конкретного приложения.</p> <a href="https://habr.com/ru/articles/1020138/?utm_campaign=1020138&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 08:05:32 GMT</pubDate>
      <dc:creator><![CDATA[aio350 (Timeweb Cloud)]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>html</category><category>css</category><category>timeweb_статьи_перевод</category><category>image</category><category>img</category><category>изображение</category><category>предварительная загрузка</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Как я сделал PWA-приложение для заметок и ссылок за вечер (и почему оно работает без интернета)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023144/</guid>
      <link>https://habr.com/ru/articles/1023144/?utm_campaign=1023144&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fe0/7ef/fca/fe07effca991d41979d1a7b0fe1c7e1e.jpg" /><p>У каждого из нас есть «чёрная дыра», куда уходят полезные ссылки. Кто-то сохраняет их в «Избранном» браузера, кто-то пишет сам себе в Telegram, кто-то держит десяток вкладок открытыми «на потом». У меня была та же проблема. Я пробовал Notion, Evernote, Google Keep, Obsidian - всё это мощные инструменты, но для простого «сохранить ссылку и не забыть» они часто избыточны.</p><p>Так родилась идея KylikLink - минималистичного PWA-приложения для заметок и ссылок, которое работает без интернета и не требует регистрации.</p> <a href="https://habr.com/ru/articles/1023144/?utm_campaign=1023144&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 07:21:15 GMT</pubDate>
      <dc:creator><![CDATA[alexanderkylikoyv]]></dc:creator>
      
      <category><![CDATA[pwa]]></category><category><![CDATA[веб-разработка]]></category><category><![CDATA[html]]></category><category><![CDATA[css]]></category><category><![CDATA[javascript]]></category><category><![CDATA[фронтенд]]></category><category><![CDATA[frontend]]></category><category><![CDATA[localstorage]]></category><category><![CDATA[service worker]]></category><category><![CDATA[заметки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Компилятор в голове: как я учил HTML без компьютера и интернета, вооружившись листком в клетку]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021796/</guid>
      <link>https://habr.com/ru/articles/1021796/?utm_campaign=1021796&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/410/6e1/b62/4106e1b62ac4ff3b6a1784470ab99a2f.jpg" /><p>Кто-то посмотрит на заглавную фотографию и увидит просто помятую бумажку с базовыми тегами. Для современного джуна, вооруженного VS Code, Emmet, Copilot и безлимитным доступом к StackOverflow, это выглядит как артефакт из каменного века.</p><p>Но для меня это самый ценный кусок бумаги в жизни. Это мой первый бэкап. Мой первый репозиторий. И моя личная история о том, как жгучее желание кодить побеждает отсутствие железа.</p> <a href="https://habr.com/ru/articles/1021796/?utm_campaign=1021796&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 05:30:24 GMT</pubDate>
      <dc:creator><![CDATA[B0W9R]]></dc:creator>
      
      <category><![CDATA[жизненный цикл]]></category><category><![CDATA[жизнь]]></category><category><![CDATA[жизнь в радость]]></category><category><![CDATA[жизнь прекрасна]]></category><category><![CDATA[жизненный урок]]></category><category><![CDATA[история]]></category><category><![CDATA[прошлое]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Baseline: март 2026 или самый насыщенный выпуск]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1018200/</guid>
      <link>https://habr.com/ru/articles/1018200/?utm_campaign=1018200&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fb2/3ba/527/fb23ba527511f456974ab25562ecc9e1.png" /><p>В этом выпуске 12 фич, которые стали доступы повесеместно с хорошей поддержкой. От трёх фич я в полном воссторге.</p><p>Обзор на браузерные API, которые стали <strong>Widely available</strong> в марте 2026. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.</p><p>Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.  </p><p>2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.</p> <a href="https://habr.com/ru/articles/1018200/?utm_campaign=1018200&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Узнать, что можно применять в проде</a>]]></description>
      
      <pubDate>Sat, 11 Apr 2026 10:59:02 GMT</pubDate>
      <dc:creator><![CDATA[nikolayshabalin]]></dc:creator>
      
      <category><![CDATA[baseline]]></category><category><![CDATA[widely available]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Vue + БЭМ: почему это всё ещё работает]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022210/</guid>
      <link>https://habr.com/ru/articles/1022210/?utm_campaign=1022210&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/389/004/e0c/389004e0cc3e4c805e7bb046ce7af90f.png" /><p>Методологию БЭМ придумали в Яндексе больше десяти лет назад. За это время фронтенд сильно изменился: появились компоненты, фреймворки, утилитарные классы и прочее. Казалось бы, БЭМ должен был уйти в архив. Но нет - он до сих пор спасает проекты от CSS-хаоса. Особенно когда речь заходит о Vue.</p> <a href="https://habr.com/ru/articles/1022210/?utm_campaign=1022210&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 11 Apr 2026 08:24:13 GMT</pubDate>
      <dc:creator><![CDATA[Pnym]]></dc:creator>
      
      <category><![CDATA[vue]]></category><category><![CDATA[css]]></category><category><![CDATA[бэм]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[От утилитарного Telegram-бота до полноценной PWA-панели управления VPS: эволюция проекта (v1.13.0 — v1.21.1)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021084/</guid>
      <link>https://habr.com/ru/articles/1021084/?utm_campaign=1021084&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b9b/20c/482/b9b20c4820837d6f6ab9cf44d67e342e.jpg" /><p>Привет, Хабр!</p><p>В своих предыдущих статьях (<a href="https://habr.com/ru/articles/959122/" rel="noopener noreferrer nofollow">раз</a>, <a href="https://habr.com/ru/articles/964456/" rel="noopener noreferrer nofollow">два</a>, <a href="https://habr.com/ru/articles/974290/" rel="noopener noreferrer nofollow">три</a>) я рассказывал о зарождении идеи и первых шагах разработки Telegram-бота для управления серверами. То, что начиналось как простенький Python-скрипт для проверки <code>uptime</code> и перезагрузки парочки личных VPS, за последние месяцы обросло «мясом» и превратилось во взрослую экосистему с паттерном Agent-Server, своим WebUI, WAF и PWA.</p><p>Сегодня я хочу поделиться опытом, который я получил в процессе масштабного рефакторинга (от версии 1.13.0 до актуальной 1.21.x), рассказать о граблях, на которые я наступил при работе с памятью и сетью, и сравнить свой продукт с тем, что уже есть на рынке.</p><p>Сразу оговорюсь: хоть я и числюсь единственным разработчиком, проект создается не в вакууме. Во-первых, для ускорения развития продукта я активно использую инструменты ИИ. Сейчас это модно называть «вайбкодингом» (vibe-coding), но в моем случае это <em>осознанный</em> вайбкодинг. Я не перекладываю на нейросети проект целиком, а использую их для автоматизации рутины, сохраняя при этом полное понимание каждой строчки кода, его структуры и заложенной архитектуры. Во-вторых, у меня есть боевой товарищ — друг-тестировщик, который использует панель для своих повседневных задач, нещадно ломает новые фичи на проде, репортит баги и вносит огромный вклад в развитие. Именно благодаря такой живой обкатке инструмент получается действительно юзабельным. И, забегая вперед, вы тоже можете присоединиться к этому процессу!</p> <a href="https://habr.com/ru/articles/1021084/?utm_campaign=1021084&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Apr 2026 20:06:52 GMT</pubDate>
      <dc:creator><![CDATA[jatix]]></dc:creator>
      
      <category><![CDATA[Бот]]></category><category><![CDATA[телеграм-бот]]></category><category><![CDATA[вэб-разработка]]></category><category><![CDATA[javascript]]></category><category><![CDATA[html]]></category><category><![CDATA[css]]></category><category><![CDATA[waf]]></category><category><![CDATA[приложения]]></category><category><![CDATA[app]]></category><category><![CDATA[pwa]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
