New We are sorting MAX channels into categories and territories. Read the news
Public channel ID 76923966734853

FRONT | Фронтенд | JavaScript | CSS | Node 26 LTS | Deno Cloudflare | WebMCP | Preact 11 | Nuxt 4.6 | Bootstrap 6 | Firefox 158 | Remix 3 | Interop 2027 | JPEG XL | TanStack Start 1.0 | Signals

Фронтенд каждый день: фичи браузеров, новинки JavaScript и CSS, инструменты и приёмы.

Channels in category
2 095
This channel's rank
№ 953
Open category →
Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

browser-whisper 2.0 распознаёт речь целиком в браузере: аудио не уходит на сервер, ключей API нет. Веса качаются один раз, кеш в OPFS.

Модели — от moonshine-tiny на 55 МБ до 2,9 ГБ, по умолчанию whisper-tiny, 120 МБ.

Нужны COOP same-origin и COEP require-corp, иначе многопоточный WASM не поднимется.

WebGPU: Chrome 113+ (полностью с 144), Safari 26, Firefox 141 (Windows). Не Web Speech API из Firefox 158, а сторонняя библиотека с откатом на WASM.

https://github.com/tanpreetjolly/browser-whisper
Views: 2
Go to post Open in MAX Report an inaccuracy
reversed-Z в WebGL упирался в диапазон глубины −1..1. Firefox 159 включает EXT_clip_control: clipControlEXT ставит 0..1, и на этом reversed-Z держится, а clip-origin уезжает в левый верхний угол. На 500 м 24-битный буфер видит поверхности с 14.9 см, float32 под reversed-Z — с 0.03 мм.

Заодно зеркальный clamp: симметричное свечение хватает половинки текстуры. Оба только на устройствах, где их отдаёт драйвер.

https://registry.khronos.org/webgl/extensions/EXT_clip_control/
Views: 3
Go to post Open in MAX Report an inaccuracy
Сервис закрылся, тег остался в шаблоне. Домен истёк, его перекупили — и тот же src тянет чужой скрипт. На 22 октября 2026 у Report URI 660+ таких доменов на тысячах сайтов, около 135 млн визитов в месяц по осторожной оценке.

Скрипт на 2 КБ, открытой страницы достаточно. Часть визитов уводят на скам, а iPhone получает эксплойт-кит под свою версию iOS.

Проверка на пятнадцать минут: выписать внешние src, снять теги мёртвых сервисов, включить CSP в report-only, мониторить новые домены. В отличие от npm-историй реестр не трогают, чужой домен уже в вашем HTML.

https://blog.report-uri.com/deadtag-how-forgotten-website-tags-became-a-delivery-network-for-iphone-spyware/
https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
Views: 4
Go to post Open in MAX Report an inaccuracy
У замыканий одной функции общий Context — пока жива хоть одна функция, живы все переменные контекста, включая те, к которым давно никто не обращается.

Memory в DevTools теперь читает метаданные scope из heap snapshot и подсвечивает такие мёртвые поля, отсортировав по влиянию на память. Chrome 155 и 156, обе стабильны с 6 и 20 октября.

Пройти маршрут дважды перед снятием слепка полезнее, чем разглядывать весь heap. Поля, которые растут с каждым проходом, видно сразу.
Views: 4
Go to post Open in MAX Report an inaccuracy
Лимит 512 КБ после gzip проверяется в сборке. Тяжелее — exit 1. Отчёт по модулям в dev-сборке показывает, что данные до сжатия весят 322 КБ, отрисовка 68. Таблицы тяжелее графики.

Файлов нет: ни картинки, ни звука. Планеты и названия генерируются из зерна, а шестьдесят с лишним звуков синтезируются из осцилляторов. Работает офлайн, CDN не нужен.
Views: 6
Go to post Open in MAX Report an inaccuracy
Chrome готовит правку в Resource Timing: размеры тела ответа кросс-доменных ресурсов отдадут только при загрузке через CORS. Сейчас достаточно Timing-Allow-Origin.

Тег без crossorigin, CDN без Access-Control-Allow-Origin — и размеры обнулятся. В интенте насчитали 15% таких ресурсов, у картинок 20%.

Флаг выключен по умолчанию, обсуждение не закрыто. План — Chrome 159, стабильно 8 декабря. transferSize потребует ещё и TAO.
Views: 4
Go to post Open in MAX Report an inaccuracy
Обёртка div внутри details больше не нужна: ::details-content — это сам слот с содержимым. Отступы, фон и рамку можно задать прямо на нём. Summary не трогается.

Раскрытие на чистом CSS: block-size от 0 до auto, content-visibility с hidden на visible, allow-discrete в придачу. Скрипт не нужен. Но auto поедет только с interpolate-size, а это Chromium: в Firefox и Safari прыгает.

Chrome/Edge 131, Firefox 143, Safari 18.4, Baseline newly.

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/::details-content
Views: 5
Go to post Open in MAX Report an inaccuracy
TetraLogical выложили Accessible Components Library. Главное не восемь компонентов, а требования WCAG 2.2 в виде Gherkin-сценариев: Rule — сам критерий, теги @1.4.10 @aa @automatic называют уровень и автоматизацию.

447 сценариев из 461 гоняет Cucumber через Playwright в браузере: клики, фокус с клавиатуры, чтение состояний. Оставшиеся 14 уходят в JSON-отчёт и Markdown-чеклист для ручной проверки.

ISC. Не дизайн-система, а инструмент проверки.

https://github.com/TetraLogical/accessible-components-library
Views: 5
Go to post Open in MAX Report an inaccuracy
ProductCard перерисовалась 5 раз — DevTools причину не назовёт. Панель vue-why-render 0.8 называет прямо: проп badge: { text } → { text }, новая ссылка, значение то же.

Причину зашивают в цифру — budgets: maxRenders 2 за 1000 мс, getViolations() отдаёт reason. Действие в тесте обязательно: рендеры считаются за его время — expectRenders(Card).toBe(0, input.setValue.bind(input, 'mouse')). Починенный рендер не вернётся.

https://github.com/dadashi44/vue-why-render
Views: 7
Go to post Open in MAX Report an inaccuracy
Демо на двести строк и рабочий файлообменник различаются не объёмом кода. Разница начинается в чужих сетях.

Без relay часть соединений не встанет. Симметричный NAT выдаёт новый порт под каждый адрес, напрямую не пробить. Отсюда TURN и одноразовые креды по TURN REST — спека так и осталась черновиком.

Проверить у себя: ping шлёт сервер — из браузерного JS его не отправить; коды 1009 (RFC) и 1012 (IANA) не путать; лимит сообщения в ws — 100 МиБ.

https://www.rfc-editor.org/rfc/rfc6455.txt
https://www.iana.org/assignments/websocket
Views: 6
Go to post Open in MAX Report an inaccuracy
The full feed — after free sign-up
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “FRONT | Фронтенд | JavaScript | CSS | Node 26 LTS | Deno Cloudflare | WebMCP | Preact 11 | Nuxt 4.6 | Bootstrap 6 | Firefox 158 | Remix 3 | Interop 2027 | JPEG XL | TanStack Start 1.0 | Signals” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go