Forwarded from IT Portal
TypeScript теперь работает на Go
Команда TS выкатила предварительную нативную версию компилятора на Go для тестирования
Ускорение впечатляющее — до 10x на реальных проектах. Например, в кодовой базе Sentry (~1,5 млн строк) время проверки типов снизилось с 55 до 6,8 секунд.
Чтобы попробовать новую версию, установите её отдельно:
Плюс расширение в VS Code: “TypeScript (Native Preview)”. После установки его нужно вручную включить через палитру команд:
@IT_Portal
Команда TS выкатила предварительную нативную версию компилятора на Go для тестирования
Ускорение впечатляющее — до 10x на реальных проектах. Например, в кодовой базе Sentry (~1,5 млн строк) время проверки типов снизилось с 55 до 6,8 секунд.
Чтобы попробовать новую версию, установите её отдельно:
npm install -D @typescript/native-preview
. После этого используйте tsgo
вместо привычного tsc
. Когда выйдет полноценный релиз (TypeScript 7), tsc
и станет той самой Go-версией. Пока, для удобства тестирования, это отдельный бинарникПлюс расширение в VS Code: “TypeScript (Native Preview)”. После установки его нужно вручную включить через палитру команд:
TypeScript Native Preview: Enable (Experimental)
@IT_Portal
This media is not supported in your browser
VIEW IN TELEGRAM
Это реально одна из самых впечатляющих штук, сделанных для веба
Знакомьтесь — Horizon Drive, браузерная игра от команды Shopify. Под капотом чистый JS, Three.js и React Three Fiber
Вы не поверите (и проверите), но это жутко залипательно😳
➡️ @FrontendPortal
Знакомьтесь — Horizon Drive, браузерная игра от команды Shopify. Под капотом чистый JS, Three.js и React Three Fiber
Вы не поверите (и проверите), но это жутко залипательно
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Новая фишка в Chrome DevTools — теперь можно аннотировать перформанс-трейсы с помощью Gemini
Разрабы из Google прикрутили ИИ прямо в инструменты производительности: кликаешь два раза по ивенту в Main-треке, жмёшь «Generate label», и Gemini на основе стека вызовов и контекста подсказывает, что там вообще происходит
Фича полезная, особенно для глубокого разбора. Стоит попробовать✌️
Работает с версии Chrome 137
➡️ @FrontendPortal | #tip
Разрабы из Google прикрутили ИИ прямо в инструменты производительности: кликаешь два раза по ивенту в Main-треке, жмёшь «Generate label», и Gemini на основе стека вызовов и контекста подсказывает, что там вообще происходит
Фича полезная, особенно для глубокого разбора. Стоит попробовать
Работает с версии Chrome 137
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Проблема: Вам нужно объявить типы в обычных
Решение: Используйте комментарии JSDoc.
Вот как это сделать.
➡️ @FrontendPortal | #tip
.js
файлах.Решение: Используйте комментарии JSDoc.
Вот как это сделать.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Мультиколонки
Основная идея мультиколонок заключается в том, что вы можете взять фрагмент содержимого и поместить его в несколько колонок, как в газете
➡️ @FrontendPortal | #CSS
Основная идея мультиколонок заключается в том, что вы можете взять фрагмент содержимого и поместить его в несколько колонок, как в газете
.article {
// Шорткат columns даёт возможность указать значения для свойств column-count и column-width одновременно, задав количество и ширину колонок
columns: 2 200px;
column-gap: 25px;
}
.title{
// Свойство column-span позволяет элементу растянуться на несколько колонок
column-span: all;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на полезняшку для тех, кто не любит тащить весь репозиторий ради пары файлов — GitZip
Расширение для браузера, которое позволяет скачивать отдельные файлы или папки из любого GitHub-репо
Доступно в Chrome, Edge и Firefox
➡️ @FrontendPortal | #resourse
Расширение для браузера, которое позволяет скачивать отдельные файлы или папки из любого GitHub-репо
Доступно в Chrome, Edge и Firefox
Please open Telegram to view this post
VIEW IN TELEGRAM
Chrome 137 подъехал. В CSS добавили функцию 😧
Ещё из интересного — завезли
Плюс WebAssembly теперь понимает промисы через API
Мелкие ништяки: изоляция Blob URL по storage key, добавлена поддержка
Подробнее: https://developer.chrome.com/blog/new-in-chrome-137
➡️ @FrontendPortal
if
. Да-да, условные конструкции прямо в стилях Ещё из интересного — завезли
reading-flow
и reading-order
. Теперь можно управлять таб-навигацией в flex и grid без костылей. Это решает старую проблему в макетах, когда порядок фокуса может не совпадать с визуальным расположением элементовПлюс WebAssembly теперь понимает промисы через API
JSPI
Мелкие ништяки: изоляция Blob URL по storage key, добавлена поддержка
offset-path: shape()
и float-пикселей в CanvasПодробнее: https://developer.chrome.com/blog/new-in-chrome-137
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел Angular v20
‣ Стабилизация API реактивности и инкрементальной гидратации
‣ Интеграция с Chrome DevTools
‣ Улучшенная проверка типов, упрощённый гайд по стилю и другое
‣ RFC на официального маскота Angular
‣ И многое другое
Подробнее: https://goo.gle/angular-v20-blog
➡️ @FrontendPortal
‣ Стабилизация API реактивности и инкрементальной гидратации
‣ Интеграция с Chrome DevTools
‣ Улучшенная проверка типов, упрощённый гайд по стилю и другое
‣ RFC на официального маскота Angular
‣ И многое другое
Подробнее: https://goo.gle/angular-v20-blog
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одна свежая фича в Chrome DevTools — с помощью Gemini (это ИИ-моделька гугла) можно править CSS прямо в Elements и сразу сохранять изменения в исходники
Никакого копипаста между браузером и редактором. Внес правку — она тут же в проекте. Плюс — можно тестить на лету
Годнота👍
➡️ @FrontendPortal
Никакого копипаста между браузером и редактором. Внес правку — она тут же в проекте. Плюс — можно тестить на лету
Годнота
Please open Telegram to view this post
VIEW IN TELEGRAM
Math.random()
пора на пенсиюВ JavaScript появилась новая предложенная возможность — добавить пространство имён
Random
в язык Это новый глобальный объект
Random
с более чем 20 методами для работы со случайностью в JS — включая перемешивание, выборку, взвешенный выбор, генераторы с сидом и т. д.Предложение на днях достигло 1 этапа в TC39: https://github.com/tc39/proposal-random-functions
Please open Telegram to view this post
VIEW IN TELEGRAM
Как добавить эффект буквицы всего двумя строками CSS
Примечание: В Firefox это работает только с префиксом вендора
Селектор
➡️ @FrontendPortal | #CSS
Примечание: В Firefox это работает только с префиксом вендора
-webkit-initial-letter
Селектор
::first-letter
можно использовать не только для задания свойства initial-letter
, но также для добавления отступов, изменения цвета или настройки шрифтаPlease open Telegram to view this post
VIEW IN TELEGRAM
Теперь можно официально получить гордый титул HTML-программиста 😎
Если вдруг пропустили: вчера заработала платформа от Минцифры, где можно добровольно пройти тесты и официально подтвердить свои ИТ-навыки
За прохождение получите сертификатHTML-программиста. Документ будет лежать в личном кабинете на Госуслугах и действовать целый год
Вопросы там... интересные. Где ещё вы найдёте "Как подключить CSS?" на продвинутом уровне или сможете вспомнить, что div — это блочный элемент, а span — нет.
Пройти можно на Госуслугах или напрямую на hh.ru
➡️ @FrontendPortal
Если вдруг пропустили: вчера заработала платформа от Минцифры, где можно добровольно пройти тесты и официально подтвердить свои ИТ-навыки
За прохождение получите сертификат
Вопросы там... интересные. Где ещё вы найдёте "Как подключить CSS?" на продвинутом уровне или сможете вспомнить, что div — это блочный элемент, а span — нет.
Пройти можно на Госуслугах или напрямую на hh.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Совет по веб-доступности: Лучший способ сделать ссылки только с иконками доступными для скринридеров
Иногда нужно создавать ссылки, содержащие только иконку. Например: ссылки для шеринга поста
Но такие ссылки недоступны для пользователей скринридеров
Чтобы это исправить, можно задать подпись в скрытом элементе и связать его с тегом
➡️ @FrontendPortal | #tip by Shripal Soni
Иногда нужно создавать ссылки, содержащие только иконку. Например: ссылки для шеринга поста
Но такие ссылки недоступны для пользователей скринридеров
Чтобы это исправить, можно задать подпись в скрытом элементе и связать его с тегом
<a>
с помощью атрибутов aria-labelledby
и id
. Также установите aria-hidden="true"
на SVG-иконку, чтобы скринридеры её пропускалиPlease open Telegram to view this post
VIEW IN TELEGRAM
Дэн Абрамов недавно выкатил годную статью о новом способе передачи данных с сервера — Progressive JSON
Если коротко: это когда JSON едет с сервера не целиком, а разбивается на куски и отправляется по мере готовности. Таким образом, мы можем начать рендер раньше, не дожидаясь всех данных. Да, прямо как Progressive JPEG, где сначала мыльцо, потом чёткость
Т.е., сначала прилетает каркас с заглушками:
Здесь $1, $2, $3 — это заглушки, которые будут постепенно заменены в потоке. На клиенте они обработаются как промис
Этот подход реализован в React Server Components и удобен для прогрессивного появления UI
Если не читали и вам интересна тема оптимизации загрузки данных — мастрид: Progressive JSON. Или можно глянуть в формате видео на YouTube
➡️ @FrontendPortal
Если коротко: это когда JSON едет с сервера не целиком, а разбивается на куски и отправляется по мере готовности. Таким образом, мы можем начать рендер раньше, не дожидаясь всех данных. Да, прямо как Progressive JPEG, где сначала мыльцо, потом чёткость
Т.е., сначала прилетает каркас с заглушками:
{
"imageUrl": "$1",
"title": "$1",
"comments": "$3"
}
Здесь $1, $2, $3 — это заглушки, которые будут постепенно заменены в потоке. На клиенте они обработаются как промис
Этот подход реализован в React Server Components и удобен для прогрессивного появления UI
Если не читали и вам интересна тема оптимизации загрузки данных — мастрид: Progressive JSON. Или можно глянуть в формате видео на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Если нужно быстро сгенерировать кастомный SVG-лоадер — вот отличная опенсорс-тулза. Гибкая настройка: цвет, скорость, размер и прочее по вкусу
Закидывайте в закладки — пригодится: http://loaders.holasvg.com
➡️ @FrontendPortal | #resourse
Закидывайте в закладки — пригодится: http://loaders.holasvg.com
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Новый эффект от Apple, воссозданный на вебе с помощью HTML, CSS и SVG-фильтров
Для тех, кто пропустил: Apple представила новый дизайн — «Жидкое стекло».
Энтузиасты уже воссоздали эффект подложки с помощью HTML, CSS и SVG-фильтров
Работает в Chrome, но, иронично, не в Safari 😅
https://codepen.io/Mikhail-Bespalov/pen/MYwrMNy
➡️ @FrontendPortal
Для тех, кто пропустил: Apple представила новый дизайн — «Жидкое стекло».
Энтузиасты уже воссоздали эффект подложки с помощью HTML, CSS и SVG-фильтров
Работает в Chrome, но, иронично, не в Safari 😅
https://codepen.io/Mikhail-Bespalov/pen/MYwrMNy
Please open Telegram to view this post
VIEW IN TELEGRAM