Задаём цвет в зависимости от темы операционной системы пользователя
Функция
Первое значение вернётся, если у пользователя установлена светлая тема, либо тема не выбрана, а второе, если установлена тёмная тема
Чтобы функция
На данный момент поддержка — 87.36%
➡️ @FrontendPortal | #CSS
Функция
light-dark() принимает два аргумента и возвращает один из них в зависимости от того, какую тему выбрал пользователь. Первое значение вернётся, если у пользователя установлена светлая тема, либо тема не выбрана, а второе, если установлена тёмная тема
Чтобы функция
light-dark() заработала, нужно прописать свойство color-scheme со значением light dark. Обычно это делают в псевдоклассе :root. Если это свойство не прописать, то функция всегда будет возвращать только первое значениеНа данный момент поддержка — 87.36%
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29👍22🤯1
HTML-совет
Не используй
Почему?
- На десктопе появляется ненужный спиннер.
- Значение может случайно измениться при прокрутке мыши или нажатии клавиш вверх/вниз.
Вместо этого — используй
✅ Показывает цифровую клавиатуру на мобильных устройствах — лучше UX.
✅ Добавляет валидацию на цифры.
➡️ @FrontendPortal | #tip by Shripal Soni
Не используй
input type="number" для важных числовых полей — типа почтового индекса, номера карты и т.п.Почему?
- На десктопе появляется ненужный спиннер.
- Значение может случайно измениться при прокрутке мыши или нажатии клавиш вверх/вниз.
Вместо этого — используй
inputmode="numeric" + patternPlease open Telegram to view this post
VIEW IN TELEGRAM
❤68👍39🔥15🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Как структурировать масштабируемый React-проект:
app/ → pages/ → features/ → shared/
➡️ @FrontendPortal
app/ → pages/ → features/ → shared/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍16😁1🌚1👨💻1
Тем временем подъехали результаты State of JS 2025
TypeScript уверенно лидирует как язык, Vite по загрузкам обогнал Webpack, а доля ИИ-сгенерированного кода к концу 2025 года подобралась вплотную к 30%. Параллельно заметно растёт интерес к инструментам нового поколения: Cursor, Zed, Claude, Gemini и Copilot
Общее состояние JS-экосистемы: ключевые тренды, инструменты, библиотеки и сдвиги за последний год — вся аналитика в отчёте: https://2025.stateofjs.com/en-US/
➡️ @FrontendPortal
TypeScript уверенно лидирует как язык, Vite по загрузкам обогнал Webpack, а доля ИИ-сгенерированного кода к концу 2025 года подобралась вплотную к 30%. Параллельно заметно растёт интерес к инструментам нового поколения: Cursor, Zed, Claude, Gemini и Copilot
Общее состояние JS-экосистемы: ключевые тренды, инструменты, библиотеки и сдвиги за последний год — вся аналитика в отчёте: https://2025.stateofjs.com/en-US/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍7🤯3🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Полезный совет по DevTools для доступности
Хром умеет эмулировать дальтонизм и размытие зрения. Быстрый способ проверить, насколько ваш UI дружелюбен к тем, кто видит мир иначе
DevTools → Rendering → Emulate vision deficiencies
➡️ @FrontendPortal | #tip
Хром умеет эмулировать дальтонизм и размытие зрения. Быстрый способ проверить, насколько ваш UI дружелюбен к тем, кто видит мир иначе
DevTools → Rendering → Emulate vision deficiencies
Please open Telegram to view this post
VIEW IN TELEGRAM
❤33👍12🔥2🥱2
This media is not supported in your browser
VIEW IN TELEGRAM
Если тебе кажется, что используемые градиенты выглядят тусклыми или "грязными", попробуй вместо этого использовать цвета в пространстве OKLCH
В OKLCH оттенок задаётся как угол, а значит цвета, через которые проходит градиент, отличаются от тех, что получаются в sRGB
Можно подробнее почитать об этом здесь
➡️ @FrontendPortal
В OKLCH оттенок задаётся как угол, а значит цвета, через которые проходит градиент, отличаются от тех, что получаются в sRGB
Можно подробнее почитать об этом здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36❤18🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Годная JS-либа для реализации drag-and-drop списков — Sortable
Живёт уже не первый год, проверена временем и продом. Поддерживает перетаскивание элементов как внутри одного списка, так и между несколькими. Работает на нативном
Простой и читаемый API, никаких зависимостей. Поддерживает анимацию при перетаскивании, работает на десктопах и тач-устройствах. Совместима с большинством фреймворков
➡️ @FrontendPortal | #resourse
Живёт уже не первый год, проверена временем и продом. Поддерживает перетаскивание элементов как внутри одного списка, так и между несколькими. Работает на нативном
Drag and Drop API Простой и читаемый API, никаких зависимостей. Поддерживает анимацию при перетаскивании, работает на десктопах и тач-устройствах. Совместима с большинством фреймворков
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30👍20🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Оочень крутая штука для изучения типов в TypeScript: Visual Types
Сайт сделан максимально приятно: всё интерактивное, с клавиатурной навигацией (и даже со звуковыми эффектами). Материал подаётся через 149 примеров с прогрессом и ачивками, получается почти как мини-курс в формате playground’а
Забираем тут✌️
➡️ @FrontendPortal | #TypeScript
Сайт сделан максимально приятно: всё интерактивное, с клавиатурной навигацией (и даже со звуковыми эффектами). Материал подаётся через 149 примеров с прогрессом и ачивками, получается почти как мини-курс в формате playground’а
Забираем тут
Please open Telegram to view this post
VIEW IN TELEGRAM
❤61🔥23👍8🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Современный способ просматривать npm-пакеты
“NPMX” — это новый браузер для реестра npm, ориентированный на скорость и удобство для разработчиков
Никакого лишнего UI. Никаких тормозящих страниц. Только мгновенная информация о пакете, когда она действительно нужна👌
https://npmx.dev/
➡️ @FrontendPortal | #resourse
“NPMX” — это новый браузер для реестра npm, ориентированный на скорость и удобство для разработчиков
Никакого лишнего UI. Никаких тормозящих страниц. Только мгновенная информация о пакете, когда она действительно нужна
https://npmx.dev/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31🔥13👍5🤔2
Вышел TypeScript 6.0 Beta! 🥳
- Temporal
- Map#getOrInsert
- RegExp.escape
- префикс #/ для package imports
Новые значения по умолчанию!
-
-
Депрекейты!
🗑 baseUrl, outFile
🗑 import assertions
🗑 namespace module
🗑 moduleResolution: node
🗑 target: ES5
https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/
➡️ @FrontendPortal
- Temporal
- Map#getOrInsert
- RegExp.escape
- префикс #/ для package imports
Новые значения по умолчанию!
-
target: ES2025-
--strictДепрекейты!
https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤8
This media is not supported in your browser
VIEW IN TELEGRAM
Нужны чистые и минималистичные иконки для UI и дизайн-задач? 🐇
Griddy Icons — это бесплатное опенсорс семейство иконок с чётким, утилитарным стилем. В наборе более 1100 иконок, толщина обводки 1.5px и сетка 24×24px. Всё выдержано в единой системе и сразу готово к использованию в U
Забираем здесь
➡️ @FrontendPortal | #resourse
Griddy Icons — это бесплатное опенсорс семейство иконок с чётким, утилитарным стилем. В наборе более 1100 иконок, толщина обводки 1.5px и сетка 24×24px. Всё выдержано в единой системе и сразу готово к использованию в U
Забираем здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥18❤5🏆2
#Проекты_подписчиков
Слово автору @he150
mlut (читается как "млат") - это CSS-фреймворк для кастомных сайтов и креативов. Он помогает верстать проекты с индивидуальным и нешаблонным дизайном, где не подходят фреймворки старой школы и плохо справляются LLM. mlut похож на Tailwind, поскольку основан на подходе Atomic CSS, но по некоторым параметрам превосходит все популярные аналоги.
Atomic CSS - это методология верстки, в которой мы используем маленькие атомарные классы, каждый из которых делает одно действие. Эти классы называют утилитами. Обычно они применяет одно CSS-свойство (например, цвет текста), но не обязательно одно. Выглядят они примерно так:
Преимущества такого подхода
1. Тратим меньше мыслетоплива: не думаем о нейминге сущностей, структуре каталогов
2. Меньше CSS на клиенте: реиспользуем одни и те же утилиты, а новые стили почти перестают добавляться
3. Быстрее пишем стили: короткие классы, нет переключения файлов
4. Можно применять на любом стеке: JS SPA, PHP, Clojure, etc
Ключевые особенности mlut
1. Краткий и строгий нейминг. Сокращения основаны на популярности свойств CSS и составлены по единому алгоритму. Если вы знаете CSS, то вы почти знаете mlut
2. Богатый и нативный синтаксис. Это как Vim для CSS. Удобно создавать сложные стили с помощью мощного синтаксиса, концептуально близкого к CSS
3. Написан на Sass. Используйте всю мощь препроцессора для связи рукописного CSS и утилит
Что реализовано на сегодня
- генератор утилит почти любой сложности
- JIT-движок, который умеет генерировать утилиты из HTML/JSX/etc
- CLI с минификацией и автопрефиксером
- плагины для сборщиков фронтенда: Webpack, Vite и Rollup
- онлайн-песочница
Также есть обширная документация. Совместно с HTML Academy готовится интерактивный мини-курс по инструменту. Первый урок уже вышел.
Это open source проект - результат глубокого ресерча и 1200+ часов труда. Больше технических деталей есть в расшифровке доклада с HolyJS.
Планы по развитию
- добавить еще возможностей CSS для сложной верстки: множественные градиенты, псевдоселекторы с аргументами, типа
- сделать интеграции для вайб-кодинга
- сделать плагины к IDE для автокомплита и подсказок
А недавно мы запустили проект на ProductRadar. Бодаемся там со стартапами за топ-3 продуктов этой недели. Будем благодарны за поддержку лайком на этой площадке и любой фидбек. Давайте покажем всем, что open source инструмент тоже может быть продуктом!
➡️ @FrontendPortal
Слово автору @he150
mlut (читается как "млат") - это CSS-фреймворк для кастомных сайтов и креативов. Он помогает верстать проекты с индивидуальным и нешаблонным дизайном, где не подходят фреймворки старой школы и плохо справляются LLM. mlut похож на Tailwind, поскольку основан на подходе Atomic CSS, но по некоторым параметрам превосходит все популярные аналоги.
Atomic CSS - это методология верстки, в которой мы используем маленькие атомарные классы, каждый из которых делает одно действие. Эти классы называют утилитами. Обычно они применяет одно CSS-свойство (например, цвет текста), но не обязательно одно. Выглядят они примерно так:
D-ib, Bgc-blue_h.Преимущества такого подхода
1. Тратим меньше мыслетоплива: не думаем о нейминге сущностей, структуре каталогов
2. Меньше CSS на клиенте: реиспользуем одни и те же утилиты, а новые стили почти перестают добавляться
3. Быстрее пишем стили: короткие классы, нет переключения файлов
4. Можно применять на любом стеке: JS SPA, PHP, Clojure, etc
Ключевые особенности mlut
1. Краткий и строгий нейминг. Сокращения основаны на популярности свойств CSS и составлены по единому алгоритму. Если вы знаете CSS, то вы почти знаете mlut
2. Богатый и нативный синтаксис. Это как Vim для CSS. Удобно создавать сложные стили с помощью мощного синтаксиса, концептуально близкого к CSS
3. Написан на Sass. Используйте всю мощь препроцессора для связи рукописного CSS и утилит
Что реализовано на сегодня
- генератор утилит почти любой сложности
- JIT-движок, который умеет генерировать утилиты из HTML/JSX/etc
- CLI с минификацией и автопрефиксером
- плагины для сборщиков фронтенда: Webpack, Vite и Rollup
- онлайн-песочница
Также есть обширная документация. Совместно с HTML Academy готовится интерактивный мини-курс по инструменту. Первый урок уже вышел.
Это open source проект - результат глубокого ресерча и 1200+ часов труда. Больше технических деталей есть в расшифровке доклада с HolyJS.
Планы по развитию
- добавить еще возможностей CSS для сложной верстки: множественные градиенты, псевдоселекторы с аргументами, типа
:has(), etc- сделать интеграции для вайб-кодинга
- сделать плагины к IDE для автокомплита и подсказок
А недавно мы запустили проект на ProductRadar. Бодаемся там со стартапами за топ-3 продуктов этой недели. Будем благодарны за поддержку лайком на этой площадке и любой фидбек. Давайте покажем всем, что open source инструмент тоже может быть продуктом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱19❤7🔥5👍2😁2🤯1🌚1
Forwarded from IT Portal
Большой сдвиг для веба: Google зарелизил экспериментальный WebMCP для Chrome (пока за флагом)
Это открытый стандарт, который меняет модель взаимодействия AI-агентов с вебом: вместо “прокликивания” интерфейса (табы, ожидания, скриншоты, попытки понять пиксели/DOM) сайт экспортирует свою функциональность как структурированные tools, а агент вызывает их напрямую
Как разработчик, ты можешь переиспользовать существующую JS-логику и за несколько строк JS обернуть её в WebMCP-tools. Более того, любую HTML-форму можно превратить в WebMCP-tool, просто добавив новые атрибуты
Вот шаги, если хочешь потестить:
Фактически это MCP, но для фронта
https://developer.chrome.com/blog/webmcp-epp
@IT_Portal
Это открытый стандарт, который меняет модель взаимодействия AI-агентов с вебом: вместо “прокликивания” интерфейса (табы, ожидания, скриншоты, попытки понять пиксели/DOM) сайт экспортирует свою функциональность как структурированные tools, а агент вызывает их напрямую
Как разработчик, ты можешь переиспользовать существующую JS-логику и за несколько строк JS обернуть её в WebMCP-tools. Более того, любую HTML-форму можно превратить в WebMCP-tool, просто добавив новые атрибуты
Вот шаги, если хочешь потестить:
1. Скачай Chrome Canary.
2. Включи флаг: перейди на chrome://flags/#enable-webmcp-testing
3. Установи расширение: тык
4. Открой этот пример: тык
Фактически это MCP, но для фронта
https://developer.chrome.com/blog/webmcp-epp
@IT_Portal
🤔21❤10👍6🔥3🌚1