Привет! Сегодня разберем, как сделать таймер, который отсчитывает время до указанного события (например, до конца распродажи), и по завершении показывает сообщение.
Результат:
На странице будет таймер вроде
00:00:10, который уменьшает время каждую секунду и завершает обратный отсчёт.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤10🤝9👎2
Многие задают абсолютным элементам растяжение вручную:
.block::before {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
content: "";
}Но то же самое можно записать короче — одной строкой:
.block {
position: relative;
}
.block::before {
position: absolute;
inset: 0;
content: "";
}inset: 0 означает сразу: top: 0; right: 0; bottom: 0; left: 0; — элемент растянется по родителю.Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤17🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Frontend VK Hub — как работают наши интерфейсы?
Что делает интерфейсы VK быстрыми, удобными и устойчивыми под нагрузкой миллионов пользователей?
Frontend VK Hub — это сообщество инженеров, которые создают и развивают пользовательские интерфейсы для ВКонтакте, VK Play, VK WorkSpace и других сервисов экосистемы. Мы делимся практическим опытом, рассказываем о подходах к производительности, внедрении современных фреймворков и всему, что связано с улучшением Developer Experience.
Здесь можно найти инсайты от ведущих фронтенд-разработчиков, разборы реальных задач, новости индустрии и приглашения на мероприятия VK. И конечно, вакансии!
Подписывайся!
Реклама. ООО "ВК" ИНН 7743001840
Что делает интерфейсы VK быстрыми, удобными и устойчивыми под нагрузкой миллионов пользователей?
Frontend VK Hub — это сообщество инженеров, которые создают и развивают пользовательские интерфейсы для ВКонтакте, VK Play, VK WorkSpace и других сервисов экосистемы. Мы делимся практическим опытом, рассказываем о подходах к производительности, внедрении современных фреймворков и всему, что связано с улучшением Developer Experience.
Здесь можно найти инсайты от ведущих фронтенд-разработчиков, разборы реальных задач, новости индустрии и приглашения на мероприятия VK. И конечно, вакансии!
Подписывайся!
Реклама. ООО "ВК" ИНН 7743001840
👎9❤4
В этой шпаргалке собраны методы и свойства для создания, управления и синхронизации анимаций без использования CSS. Здесь отражены инструменты, позволяющие программно запускать, останавливать, реверсировать, ускорять и завершать анимации, а также работать с таймлайнами и событиями завершения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤13👍9🤝1
Фон, реагирующий на звук через Web Audio API
С помощью
Добавим кнопку:
Подключаем микрофон и создаём источник:
Создаём анализатор:
Меняем фон в зависимости от уровня сигнала:
Запускаем:
🔥 Говорите — и фон реагирует в реальном времени. Такой эффект можно использовать в музыкальных визуализациях, интро-анимациях или как интерактивную деталь интерфейса.
📣 Code Ready | #практика
С помощью
Web Audio API можно в реальном времени анализировать входящий аудиопоток с микрофона и использовать полученные данные для динамического изменения фона.Добавим кнопку:
<button id="start">Включить микрофон</button>
Подключаем микрофон и создаём источник:
const btn = document.getElementById("start");
btn.onclick = async () => {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const ctx = new AudioContext();
await ctx.resume(); // требуется в некоторых браузерах
const src = ctx.createMediaStreamSource(stream);Создаём анализатор:
const analyser = ctx.createAnalyser();
const data = new Uint8Array(analyser.frequencyBinCount);
src.connect(analyser);
Меняем фон в зависимости от уровня сигнала:
function animate() {
analyser.getByteFrequencyData(data);
const volume = data.reduce((a, b) => a + b, 0) / data.length;
const hue = Math.min(360, volume * 3);
document.body.style.background = `hsl(${hue}, 80%, 50%)`;
requestAnimationFrame(animate);
}Запускаем:
animate();
btn.remove();
};
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥13🤝9
Элемент
<datalist> — это источник предложений, то есть такой элемент, который содержит предопределённые варианты выбора для пользователя. В основном за варианты выбора опций выступают элементы <option>.Элемент
<input> не будут работать с элементом <datalist>, если у <input> одно из следующих значений атрибута type:• hidden;
• password;
• checkbox;
• radio;
• file;
• submit;
• image;
• reset;
• button.
У тега по умолчанию есть роль
listbox.Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍13🔥10
This media is not supported in your browser
VIEW IN TELEGRAM
Code Time — расширение, которое показывает, сколько вы реально пишете код, в какие часы работаете продуктивнее и как меняются ваши рабочие сессии со временем. Это простая статистика активности, которая помогает увидеть свой темп и оптимизировать рабочий день.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥12🤝9❤2👎1
Когда проект растёт, стили начинают перебиваться и путаться. CSS дал решение - каскадные слои.
Создайте слои с приоритетом:
@layer reset, base, components, utilities;
Теперь порядок каскада становится управляемым: слои идут строго в указанной последовательности, а внутри слоя продолжают работать обычные правила (специфичность и порядок объявления).
Например, базовые стили:
@layer base {
button {
font-size: 1rem;
}}Компоненты идут выше по приоритету:
@layer components {
.btn-primary {
font-size: 1.1rem;
}}И утилиты завершают каскад:
@layer utilities {
.fs-lg {
font-size: 1.25rem;
}}Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤10🔥10
Привет! В этом гайде создаём UI-компонент, который позволяет редактировать текст не открывая отдельные формы — просто кликом по элементу.
Ключевые моменты:
• HTML: один элемент, автоматически переходящий в режим редактирования.
• CSS: два визуальных состояния — отображение и ввод — с тенью, скруглениями и мягкой цветовой палитрой.
• JS: обработка Enter/Escape, аккуратное восстановление DOM-структуры.
Такой элемент подходит для админок, дашбордов, списков задач, inline-настроек, динамических панелей и любых UI, где важно редактирование "по месту" без перегрузки интерфейса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥9👍7🤝1