This media is not supported in your browser
VIEW IN TELEGRAM
5 инструментов для веб-разработчиков
http://penpot.app - Альтернатива Figma с открытым исходным кодом
http://sevalla.com - Full-stack хостинг для современных веб-приложений
http://excalidraw.com - Диаграмма стилей, нарисованная от руки
http://locomotivemtl.github.io/locomotive-scroll/ - Плавная прокрутка с эффектом параллакса
http://maxwellito.github.io/vivus/ - Анимация SVG-рисунков в реальном времени
@WebDev_Plus
http://penpot.app - Альтернатива Figma с открытым исходным кодом
http://sevalla.com - Full-stack хостинг для современных веб-приложений
http://excalidraw.com - Диаграмма стилей, нарисованная от руки
http://locomotivemtl.github.io/locomotive-scroll/ - Плавная прокрутка с эффектом параллакса
http://maxwellito.github.io/vivus/ - Анимация SVG-рисунков в реальном времени
@WebDev_Plus
Ранее Postman лёг, потому что упал AWS.
Похоже, пора попробовать что-то полегче — Yaak.
✓ Сделан на React, Rust и Tauri
✓ Поддерживает REST, GraphQL и WebSockets
✓ Без облаков и трекинга
✓ Полностью оффлайн
Работает на Windows, macOS и Linux
→ github.com/mountain-loop/yaak
@WebDev_Plus
Похоже, пора попробовать что-то полегче — Yaak.
✓ Сделан на React, Rust и Tauri
✓ Поддерживает REST, GraphQL и WebSockets
✓ Без облаков и трекинга
✓ Полностью оффлайн
Работает на Windows, macOS и Linux
→ github.com/mountain-loop/yaak
@WebDev_Plus
❤1
Разбирай HTML-ввод с помощью нового метода parseHTMLUnsafe() → https://goo.gle/4mXOH9d
Теперь этот статический метод входит в Baseline. Он создаёт новый экземпляр Document из HTML-строки и при необходимости может выполнять очистку (санитизацию) содержимого.
@WebDev_Plus
Теперь этот статический метод входит в Baseline. Он создаёт новый экземпляр Document из HTML-строки и при необходимости может выполнять очистку (санитизацию) содержимого.
@WebDev_Plus
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Создавай SVG-графики для своего сайта без библиотек
Импортируй данные из Excel, CSV или вводи вручную.
Доступно 8 разных типов, и всё это можно сделать за пару секунд.
https://makegraph.app/
@WebDev_Plus
Импортируй данные из Excel, CSV или вводи вручную.
Доступно 8 разных типов, и всё это можно сделать за пару секунд.
https://makegraph.app/
@WebDev_Plus
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Разработчик из factory droids сделал Chrome-расширение, которое помогает навести порядок в браузере. Tab Stash позволяет «спрятать» десятки (а то и сотни) вкладок, чтобы вернуться к ним позже и наконец-то добраться до заветного tab zero 😰
Установить: Tab Stash в Chrome Web Store
Исходники: github.com/iannuttall/tab-stash
@WebDev_Plus
Установить: Tab Stash в Chrome Web Store
Исходники: github.com/iannuttall/tab-stash
@WebDev_Plus
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Не нужно разбирать строки через [...spread] или .split()
Используй Intl.Segmenter API — он доступен во всех JS-рантаймах.
@WebDev_Plus
Используй Intl.Segmenter API — он доступен во всех JS-рантаймах.
@WebDev_Plus
❤4
Получить размеры экрана через простой calc()? Да, можно
https://css-tip.com/screen-dimension/
Мы всё ещё ждём, когда Firefox подтянется, и тогда этот кусок кода станет любимчиком у многих разработчиков.
(Пока что есть другой способ с лучшей поддержкой.)
@WebDev_Plus
https://css-tip.com/screen-dimension/
Мы всё ещё ждём, когда Firefox подтянется, и тогда этот кусок кода станет любимчиком у многих разработчиков.
(Пока что есть другой способ с лучшей поддержкой.)
@WebDev_Plus
❤5
Одна из самых крутых штук, которые можно сделать с TypeScript:
обрати внимание, что подсказки автодополнения зависят от входных данных функции-билдера.
@WebDev_Plus
обрати внимание, что подсказки автодополнения зависят от входных данных функции-билдера.
@WebDev_Plus
❤3🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
Этот инструмент проверяет производительность твоего сайта.
Он сканирует все страницы и выставляет оценку каждой.
Похоже на Lighthouse, но с обзором всего сайта целиком.
Запусти вот так:
@WebDev_Plus
Он сканирует все страницы и выставляет оценку каждой.
Похоже на Lighthouse, но с обзором всего сайта целиком.
Запусти вот так:
npx unlighthouse --site <твой-сайт>
@WebDev_Plus
❤3✍2
This media is not supported in your browser
VIEW IN TELEGRAM
В Chrome DevTools завезли классное обновление для CSS
Теперь, когда наводишь курсор на любое CSS-свойство в DevTools, отображается не только описание, но и информация из Baseline — она показывает, насколько хорошо это свойство поддерживается разными браузерами.
Появились метки вроде «Широко поддерживается», «Ограниченная поддержка» и «Недавно стало доступно».
Очень полезное обновление для фронтенд-разработчиков: можно мгновенно проверить поддержку нужного свойства, не покидая DevTools.
Спасибо команде ChromiumDev за этот апдейт. Маленькое изменение, а польза огромная :)
@WebDev_Plus
Теперь, когда наводишь курсор на любое CSS-свойство в DevTools, отображается не только описание, но и информация из Baseline — она показывает, насколько хорошо это свойство поддерживается разными браузерами.
Появились метки вроде «Широко поддерживается», «Ограниченная поддержка» и «Недавно стало доступно».
Очень полезное обновление для фронтенд-разработчиков: можно мгновенно проверить поддержку нужного свойства, не покидая DevTools.
Спасибо команде ChromiumDev за этот апдейт. Маленькое изменение, а польза огромная :)
@WebDev_Plus
❤4
Этот крошечный утилитарный модуль на TypeScript делает твой код типобезопасным, переиспользуемым и полностью выводимым по типам
Паттерн TypeScript для чистой и типобезопасной выборки данных
@WebDev_Plus
Паттерн TypeScript для чистой и типобезопасной выборки данных
type KeyOf<T> = Extract<keyof T, string>;
const mapData = <T extends object, K extends KeyOf<T>>(
data: readonly T[],
key: K,
) => data.map((item) => item[key]);
const categories = [
{ id: 1, name: "Clothing" },
{ id: 2, name: "Footwear" },
] as const;
const variants = [
{ id: 1, name: "Red - Large" },
{ id: 2, name: "Blue - Medium" },
] as const;
const sizes = [
{ id: 1, label: "Small" },
{ id: 2, label: "Medium" },
] as const;
// Типобезопасно, неизменно и полностью выводится по типам
console.log(mapData(categories, "name")); // ["Clothing", "Footwear"]
console.log(mapData(variants, "name")); // ["Red - Large", "Blue - Medium"]
console.log(mapData(sizes, "label")); // ["Small", "Medium"]
@WebDev_Plus
❤1
Javascript Tip
Более удобный способ найти элемент с конца массива
Чистый и быстрый способ найти элемент с конца массива — использовать метод findLast().
Если нужен не сам элемент, а индекс, то можно использовать метод findLastIndex().
Оба этих метода поддерживаются всеми популярными браузерами и JS-рантаймами с сентября 2022 года🎉
@WebDev_Plus
Более удобный способ найти элемент с конца массива
Чистый и быстрый способ найти элемент с конца массива — использовать метод findLast().
const logs = [
{ category: 'error', description: 'Error 1', timestamp: 1705276800000 },
{ category: 'warning', description: 'Warning 1', timestamp: 1705363200000 },
{ category: 'error', description: 'Error 2', timestamp: 1705449600000 },
{ category: 'info', description: 'Info 1', timestamp: 1707523200000 },
];
const lastError = logs.findLast(log => log.category === 'error');
console.log(lastError);
// 👉 { category: 'error', description: 'Error 2', timestamp: 1705449600000 }
Если нужен не сам элемент, а индекс, то можно использовать метод findLastIndex().
Оба этих метода поддерживаются всеми популярными браузерами и JS-рантаймами с сентября 2022 года
@WebDev_Plus
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
У тебя сейчас мозг взорвётся.
Кликаешь по компоненту в React, и сразу открывается его код в VS Code
С такой штукой пишешь код заметно быстрее
@WebDev_Plus
Кликаешь по компоненту в React, и сразу открывается его код в VS Code
С такой штукой пишешь код заметно быстрее
@WebDev_Plus
❤4
Библиотека Javascript для создания потоков данных без зависимостей
https://github.com/jerosoler/Drawflow/
@WebDev_Plus
https://github.com/jerosoler/Drawflow/
@WebDev_Plus
❤1
С 34-м днем рождения, HTML-теги.
29 октября 1991 года Тим Бернерс-Ли опубликовал документ под названием HTML Tags.
В нем было описание первых 18 тегов HTML: <title>, <nextid>, <a>, <isindex>, <plaintext>, <listing>, <p>, <h1>…, <address>, <hp1>…, <dl>, <dt>, <dd>, <ul>, <li>, <menu> и <dir>.
@WebDev_Plus
29 октября 1991 года Тим Бернерс-Ли опубликовал документ под названием HTML Tags.
В нем было описание первых 18 тегов HTML: <title>, <nextid>, <a>, <isindex>, <plaintext>, <listing>, <p>, <h1>…, <address>, <hp1>…, <dl>, <dt>, <dd>, <ul>, <li>, <menu> и <dir>.
@WebDev_Plus
❤12
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите отображать PDF-файлы на своем веб-сайте? Обратите внимание на это
Работает с React, Svelte, Solid и Vanilla JavaScript.
@WebDev_Plus
Работает с React, Svelte, Solid и Vanilla JavaScript.
$ npm install @pdfslick/react
@WebDev_Plus
❤6😭1
This media is not supported in your browser
VIEW IN TELEGRAM
Мой любимый терминал — Warp. Я до сих пор нахожу в нём мелкие фишки, которые помогают работать быстрее. Знал, что там есть встроенный файловый менеджер?
@WebDev_Plus
@WebDev_Plus
❤2