This media is not supported in your browser
VIEW IN TELEGRAM
Предотвращение цепной прокрутки с помощью
Если мы попытаемся выполнить прокрутку, когда граница скроллинга достигнута, то прокрутка будет выполнена в ближайшей родительской области скроллинга, что называется цепочкой прокрутки(scroll chaining)
Мы можем предотвратить цепочку прокрутки, установив для свойства
- Подробнее
- Поиграть можно здесь
➡️ @FrontendPortal | #CSS #tip by Shripal Soni
overscroll-behaviorЕсли мы попытаемся выполнить прокрутку, когда граница скроллинга достигнута, то прокрутка будет выполнена в ближайшей родительской области скроллинга, что называется цепочкой прокрутки(scroll chaining)
Мы можем предотвратить цепочку прокрутки, установив для свойства
overscroll-behaviour значение contain или none- Подробнее
- Поиграть можно здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤42👍18🔥4
Оптимизация SVG – краткий гайд для начинающих
Часто на сайтах встречаются SVG-изображения, которые не оптимизированы как следует: они содержат лишние группы, ненужные атрибуты и числа с огромным количеством десятичных знаков
Лаура Калбаг из Penpot делится практическими советами, как сделать SVG-файлы меньше по размеру, но без видимой потери качества – от базовых приёмов до полезных автоматизированных инструментов
Читайте здесь
➡️ @FrontendPortal
Часто на сайтах встречаются SVG-изображения, которые не оптимизированы как следует: они содержат лишние группы, ненужные атрибуты и числа с огромным количеством десятичных знаков
Лаура Калбаг из Penpot делится практическими советами, как сделать SVG-файлы меньше по размеру, но без видимой потери качества – от базовых приёмов до полезных автоматизированных инструментов
Читайте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🌚1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁80❤10🌚2
Media is too big
VIEW IN TELEGRAM
ilamy Calendar
Мощная, полнофункциональная библиотека календарных компонентов для React, написанная на TypeScript, Tailwind CSS и с использованием современных React-паттернов. Поддерживает несколько режимов отображения календаря, drag-and-drop, повторяющиеся события и продвинутую интернационализацию
GitHub тут
➡️ @FrontendPortal | #resourse
Мощная, полнофункциональная библиотека календарных компонентов для React, написанная на TypeScript, Tailwind CSS и с использованием современных React-паттернов. Поддерживает несколько режимов отображения календаря, drag-and-drop, повторяющиеся события и продвинутую интернационализацию
GitHub тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤6🌚2
Простая кнопка в стиле ретро
Хитрость здесь заключается в том, чтобы создать боксовую тень без размытия для состояния по умолчанию
Для активного состояния я перемещаю кнопку, уменьшая при этом тень, так что тень кажется статичной
Подобного трюка можно добиться и с помощью псевдоэлементов, но я предпочитаю эту технику за ее простоту
➡️ @FrontendPortal
Хитрость здесь заключается в том, чтобы создать боксовую тень без размытия для состояния по умолчанию
Для активного состояния я перемещаю кнопку, уменьшая при этом тень, так что тень кажется статичной
Подобного трюка можно добиться и с помощью псевдоэлементов, но я предпочитаю эту технику за ее простоту
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥14❤5🥱2😎1
Задаём цвет в зависимости от темы операционной системы пользователя
Функция
Первое значение вернётся, если у пользователя установлена светлая тема, либо тема не выбрана, а второе, если установлена тёмная тема
Чтобы функция
На данный момент поддержка — 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