This media is not supported in your browser
VIEW IN TELEGRAM
Коллекция из 4000+ готовых элементов интерфейса: кнопки, карточки, инпуты, чекбоксы, лоадеры. Всё на чистом CSS или Tailwind.
#readme #ui
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3
JavaScript js reference.pdf
4.1 MB
📘 Справочник по JavaScript
400+ страниц решений на все случаи жизни:
〰️ Как правильно работать с массивами? — 30+ методов с примерами
〰️ Что такое замыкания и зачем они нужны? — объясняем на пальцах
〰️ Почему промисы лучше колбэков? — сравнение с кодом
〰️ Как отловить баг в консоли? — 9 способов debugging
105 глав. От переменных до unit-тестирования. Каждая тема — с примерами кода и пояснениями.
Ставь ❤️, если было полезно
🐸 Библиотека фронтендера
#readme #js
400+ страниц решений на все случаи жизни:
105 глав. От переменных до unit-тестирования. Каждая тема — с примерами кода и пояснениями.
Ставь ❤️, если было полезно
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🥰3👍2
AllFrontend.pdf
58.6 MB
Этот документ объединяет ключевые темы, техники и механизмы, которые лежат в основе современной фронтенд-разработки.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤6
Раньше для плавной анимации между состояниями приходилось городить свои анимации и тащить JS-утилиты. Теперь достаточно одного вызова API + немного CSS.
document.startViewTransition(() => { /* обновляем DOM */ }) делает снимок DOM «до» и «после», а браузер сам строит плавный переход между ними.
Элементы с одинаковым view-transition-name анимируются как связанные: старое состояние плавно превращается в новое.
✨ Идеально для:
- переходов между страницами
- раскрытия карточек
- галерей и модальных окон
- лёгких SPA без фреймворков
⚠️ Поддержка:
Same-document переходы (SPA):
- Chrome 111+, Edge 111+
- Safari 18+
- Firefox 144+
Cross-document переходы (MPA):
- Chrome 126+, Edge 126+
- Safari 18.2+
- Firefox — пока не поддерживается
Используйте как прогрессивное улучшение: в старых браузерах будет обычная навигация.
#readme #js #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🥰2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Вместо чтения про "Union type позволяет переменной быть одним из нескольких типов" — видишь схему, и всё сразу понятно.
Примитивы, объекты, массивы, Union/Intersection типы, дженерики — все базовые концепции.
Полезно для начинающих в TypeScript или тех, кто запутался в терминологии.
#readme #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥1
📋 Копирование в буфер обмена в 2025
Clipboard API — стандарт. document.execCommand() deprecated с 2020.
✅ Поддержка: Chrome 66+, Firefox 63+, Safari 13.1+, Opera 53+
⚠️ Различия между браузерами:
Chrome/Edge:
— User gesture не требуется
— Работает только в активной вкладке
Firefox/Safari:
— Требуется user gesture (клик/тап)
— Вызов должен быть в обработчике события
🔜 Общие требования:
— Только HTTPS (или localhost)
— Для readText() требуется разрешение
🔜 Где использовать:
Кнопки «Скопировать код», промокоды, токены, ссылки
💡 Вызывайте копирование в обработчике клика — работает везде.
🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека фронтендера
#readme
Clipboard API — стандарт. document.execCommand() deprecated с 2020.
✅ Поддержка: Chrome 66+, Firefox 63+, Safari 13.1+, Opera 53+
⚠️ Различия между браузерами:
Chrome/Edge:
— User gesture не требуется
— Работает только в активной вкладке
Firefox/Safari:
— Требуется user gesture (клик/тап)
— Вызов должен быть в обработчике события
— Только HTTPS (или localhost)
— Для readText() требуется разрешение
Кнопки «Скопировать код», промокоды, токены, ссылки
🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2🥰2
Делаешь фичу, но нужно срочно проверить баг в main? Не стэшь и не коммить — создай отдельную рабочую папку с другой веткой.
git worktree add ../hotfix main
cd ../hotfix
Git создаст папку
hotfix рядом с основным проектом — в ней будет ветка main. Исходная папка остаётся нетронутой.— Можно создать сразу с новой веткой:
git worktree add -b feature-new ../feature-new
— Посмотреть все worktree:
git worktree list
— Удалить после работы:
git worktree remove ../hotfix
— Каждый worktree может иметь свои
node_modules — удобно, если между ветками разные зависимости.— Нельзя открыть одну ветку дважды — Git защищает от конфликтов.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Эффектная демонстрация 3D трансформаций на чистом CSS: анимированные коробки с кроссовками, плавное открытие крышки и переключение между товарами.
— JavaScript — переключение состояний
— SCSS — все визуальные эффекты и 3D трансформации
— Чистое разделение логики и презентации
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3
git_cheat_sheet.pdf
993.6 KB
Содержание:
— Настройка и базовый workflow
— Ветки, stashing, tagging
— Отмена изменений
— Git Flow и продвинутые команды
#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏2
Media is too big
VIEW IN TELEGRAM
Крутой гайд о том, что JavaScript календари обычно избыточны.
Лучшие альтернативы:
<input type="date"> — браузер всё сделает самСложные UI = больше ошибок и брошенных форм. Простота побеждает.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5😁1
Когда пользователь вводит текст в поиск или изменяет размер окна — запросы летят десятками. Debounce откладывает выполнение функции до тех пор, пока события не прекратятся.
const debounce = (fn, ms) => {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), ms);
};
};
// Использование
const handleSearch = debounce((value) => {
console.log('Поиск:', value);
}, 300);
// В React
<input onChange={(e) => handleSearch(e.target.value)} />
— Автокомплит и live-поиск
— Обработка resize/scroll событий
— Валидация форм при вводе
— Любые частые события
При каждом новом вызове старый таймер сбрасывается и создаётся новый. Функция выполнится только когда пройдёт 300ms без новых событий.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #js #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3🥰3