Привет! В этом гайде создаём компактный виджет для управления количеством — с кнопками «–» и «+», плавной анимацией и простой логикой работы.
Ключевые моменты:
• HTML: минимальная структура — контейнер, две кнопки и отображение текущего числа.
• CSS: скруглённые кнопки, hover-подсветка и микро-анимация изменения значения.
• JS: увеличение и уменьшение количества, защита от значений ниже единицы.
Такой элемент отлично подходит для корзины, карточек товаров и любых интерфейсов, где нужно управлять числом быстро и интуитивно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍13🔥8🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Remote Repositories — расширение, которое позволяет работать с репозиторием прямо в VS Code: просматривать файлы, править код, создавать коммиты и пушить изменения, без локального клона. Идеально, когда нужно быстро проверить структуру проекта или что-то поправить.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍11🔥11
Большой округлый слой поднимается снизу и покрывает элемент, создавая плавный анимационный переход. За счёт формы слоя и правильной кривой движение выглядит естественно.
Как работает:
• Псевдо-элемент ::before выступает как анимируемый заливочный слой;
• В обычном состоянии он находится за пределами кнопки;
• При наведении слой смещается вверх и перекрывает элемент, а текст своевременно меняет цвет.
Простой приём, который добавляет интерфейсу динамику без единой строки JavaScript.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤9🔥9👎1🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Regex Snippets — расширение, которое добавляет набор готовых шаблонов регулярных выражений: проверка email, поиск чисел, валидация пароля, извлечение групп, работа с пробелами, датами, URL и др. Пишешь короткий префикс и получаешь готовый рабочий паттерн.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤13👍11😁1
Как избавиться от подмен в типографике?
Когда кастомный шрифт не успевает загрузиться, браузер подставляет свой стандартный
Но ещё хуже, когда
Современный CSS даёт более аккуратный и предсказуемый вариант, используй
🔥 Так даже если кастомный шрифт не загрузился, пользователь увидит чистую системную типографику - ту же, что в интерфейсе его устройства.
📣 Code Ready | #совет
Когда кастомный шрифт не успевает загрузиться, браузер подставляет свой стандартный
generic sans-serif. Это может испортить вид интерфейса: body {
font-family: "PT Sans", sans-serif;
}Но ещё хуже, когда
fallback вообще не задан, тогда интерфейс может внезапно превратиться в дефолтный serif (на Windows это часто Times New Roman):body {
font-family: "PT Sans";
}Современный CSS даёт более аккуратный и предсказуемый вариант, используй
system-ui, чтобы браузер подставил нативный системный шрифт ОС:body {
font-family: "PT Sans", system-ui;
}Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤11👍10
Отменяем старые fetch-запросы — оставляем только актуальные данные!
В поиске, автокомплите и живых фильтрах ответы от сервера могут приходить не по порядку, из-за чего показывается не самый свежий результат. Один из простых и надёжных способов избежать этого — отменять предыдущий запрос через
Проверяем поддержку:
Делаем контроллер и отправляем запрос:
Используем при вводе:
🔥 Такой приём устраняет гонки запросов, экономит сеть и гарантирует, что отображаются только последние данные — критично для поисковых полей и
📣 Code Ready | #практика
В поиске, автокомплите и живых фильтрах ответы от сервера могут приходить не по порядку, из-за чего показывается не самый свежий результат. Один из простых и надёжных способов избежать этого — отменять предыдущий запрос через
AbortController.Проверяем поддержку:
console.log("AbortController" in window);Делаем контроллер и отправляем запрос:
let controller;
function load(url) {
if (controller) controller.abort();
controller = new AbortController();
return fetch(url, { signal: controller.signal });
}
Используем при вводе:
field.addEventListener("input", () => {
load("/api/search?q=" + field.value)
.then(r => r.json())
.then(data => console.log("Актуальный ответ:", data))
.catch(e => e.name === "AbortError" || console.error(e));
});real-time UI.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍11🤝8❤1👎1
Привет! В этом гайде создаём компактную панель поиска, которая фильтрует элементы списка по мере ввода.
Ключевые моменты:
• HTML: контейнер, поле ввода и список элементов для фильтрации.
• CSS: стеклянный эффект, аккуратные тени и анимированное скрытие элементов.
• JS: обработка ввода, сравнение подстрок и переключение видимости элементов через класс hide.
Такой компонент отлично подходит для каталогов, списков технологий, фильтров настроек, интерфейсов выбора и любых UI, где требуется быстрый интерактивный поиск.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤15🔥13🤝6
This media is not supported in your browser
VIEW IN TELEGRAM
REST Client - расширение, которое превращает редактор в удобный инструмент для работы с HTTP-запросами. Можно тут же получать ответ от сервера. Плагин поддерживает переменные и окружения, так что можно хранить токены, URL или параметры для разных проектов и легко подставлять их в запросы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥8👍7😁2
В этой фишке используется всего один псевдо-элемент, который проходит по надписи и создаёт впечатление “сканирования” — без JS.
Как работает:
• ::before становится движущейся полосой, перекрывающей текст;
• mix-blend-mode: difference инвертирует цвет и создаёт яркий акцент;
• keyframes slide задаёт траекторию движения от края до края.
Приём отлично подходит для лоадеров, hero-титров, UI-сигналов и любых сценариев, где нужно живое, цепляющее движение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥10❤9🤝4
Нативная проверка, находится ли элемент в зоне видимости!
Когда нужно показать подсказку только если элемент действительно в зоне просмотра, подсветить активный пункт меню, автоплейнуть видео или зафиксировать секцию — можно использовать нативный
Проверяем частичную вертикальную видимость элемента в зоне просмотра:
Использование:
Наблюдение за видимостью при скролле:
Мини-вариант для группы элементов:
🔥 Подходит для ленивых анимаций, подсветки активных блоков и аналитики скролла. А если нужен более точный и энергоэффективный вариант — используйте
📣 Code Ready | #практика
Когда нужно показать подсказку только если элемент действительно в зоне просмотра, подсветить активный пункт меню, автоплейнуть видео или зафиксировать секцию — можно использовать нативный
getBoundingClientRect().Проверяем частичную вертикальную видимость элемента в зоне просмотра:
function isVisible(el) {
const r = el.getBoundingClientRect();
return r.top < window.innerHeight && r.bottom > 0;
}Использование:
const box = document.querySelector(".box");
console.log("Виден:", isVisible(box));Наблюдение за видимостью при скролле:
window.addEventListener("scroll", () => {
if (isVisible(box)) {
console.log("Элемент в зоне просмотра");
}
});Мини-вариант для группы элементов:
document.querySelectorAll(".item").forEach(el => {
if (isVisible(el)) {
el.classList.add("active");
}
});IntersectionObserver.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍12🔥11
currentColor — ключевое слово, которое берёт текущий color элемента и позволяет использовать его в других свойствах, например в рамке, тени или заливке.Примеры использования:
• border: 2px solid currentColor; — рамка того же цвета, что и текст;
• box-shadow: 0 0 10px currentColor; — тень с цветом текста;
• fill: currentColor; — окрашивает SVG в цвет шрифта;
• outline-color: currentColor; — обводка совпадает с текстом.
Это полезно для упрощения стилей: если изменить
color, все зависящие элементы автоматически обновят свой цвет.Please open Telegram to view this post
VIEW IN TELEGRAM
🤝18👍11🔥8❤2
На мобильных
100vh считает и адресную строку, поэтому блок получается выше видимой области, появляется лишний скролл:.hero {
min-height: 100vh;
}Современные браузеры дают точную единицу измерения —
dvh:.hero {
min-height: 100dvh;
}vh, 100dvh учитывает реальную доступную высоту без вмешательства UI браузера. Поддержка уже широкая, а где нужно, можно оставить vh как fallback.Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥11❤9🤝2😁1
Шпаргалка по браузерным API, которые помогают получать размеры, координаты и полные измерения контента, а также анализировать итоговые CSS-стили. Включает инструменты для управления анимациями через requestAnimationFrame. Подходит для задач, связанных с позиционированием, динамической версткой, оптимизацией анимаций и отладкой поведения элементов в интерфейсе.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥9❤6🤝2