🔥11👍7🤝6
Хотите добавить глубины и реализма элементам интерфейса? Этот приём создаёт эффект объёмной карточки, которая будто «откликается» на движение курсора.
Как это работает:
• perspective и transform-style: preserve-3d создают трёхмерную сцену.
• При :hover карточка слегка вращается и получает мягкую тень.
• translateZ() приподнимает текст, усиливая ощущение глубины.
Такой приём делает интерфейс динамичнее - отлично подходит для карточек товаров, профилей и превью статей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤9👍9👎2🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
На сайте можно учиться прямо в браузере, без установки среды и лишней теории. Уроки состоят из коротких заданий с кодом: пишешь, видишь результат, работаешь над ошибками и двигаешься дальше. Постепенно проходишь весь путь, от основ синтаксиса до работы с DOM и API.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7🤝7❤2😁1
Привет! В этом гайде создаём удобное текстовое поле, в котором при вводе появляется кнопка для мгновенной очистки содержимого.
Ключевые моменты:
• HTML: textarea и кнопка внутри одного контейнера.
• CSS: позиционирование кнопки, плавное появление, аккуратный дизайн.
• JS: отслеживание ввода, показ/скрытие кнопки и очистка текста.
Такое решение отлично подойдёт для форм, чатов и любых интерфейсов, где важно быстро очищать текст без перезагрузки страницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍9🔥8🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Это не демо и не учебный «туду-лист», а полноценная платформа с продуманной архитектурой и современным стеком: React, TypeScript, Redux Toolkit, React Hook Form, FSD.
Можно изучить каждую страницу, каждый компонент, посмотреть, как устроен код в боевом проекте, и забрать себе лучшие практики!
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥9🤝7
CSS уже умеет подстраивать размеры элементов без
@media.Для этого есть инструмент
clamp():.noscript {
font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem);
}clamp(min, preferred, max) задаёт диапазон: шрифт будет плавно меняться вместе с шириной экрана,но никогда не станет меньше 1rem и больше 2.5rem.
Работает для свойств, где можно задавать числовые значения:
.container {
padding: clamp(1rem, 5vw, 3rem);
}Для ещё большей гибкости можно использовать контейнерные единицы (
cqw, @container), они подстраиваются под ширину контейнера, а не всего окна.Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥12🤝7❤3
Разбираем методы history и location, с помощью которых можно изменять URL без перезагрузки страницы, добавлять и заменять состояния, перемещаться по истории и отслеживать переходы. Используется для реализации маршрутизации, клиентской навигации и синхронизации состояния приложения с адресной строкой в SPA и веб-интерфейсах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥11👍10🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Project Manager — позволяет переключаться между разными проектами внутри одного экземпляра VS Code. Просто откройте боковую панель и выберите нужный. Можно группировать, давать имена, закреплять самые частые, всё максимально просто и быстро.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥11❤7
Определяем системную тему пользователя!
Современные браузеры умеют определять системные предпочтения пользователя — например, светлую или тёмную тему. Это позволяет интерфейсу автоматически адаптироваться под окружение без лишних настроек.
Проверим текущие настройки:
Реагируем на изменение темы:
И сразу применяем тему при загрузке:
🔥 Такой пример полезен для практики работы с браузерными API, реакцией на системные события и динамическим управлением интерфейсом.
📣 Code Ready | #практика
Современные браузеры умеют определять системные предпочтения пользователя — например, светлую или тёмную тему. Это позволяет интерфейсу автоматически адаптироваться под окружение без лишних настроек.
Проверим текущие настройки:
const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
console.log(isDark ? "🌙 Тёмная тема" : "☀️ Светлая тема");Реагируем на изменение темы:
const mq = window.matchMedia("(prefers-color-scheme: dark)");
mq.addEventListener("change", e => {
document.body.dataset.theme = e.matches ? "dark" : "light";
console.log(`🎨 Тема: ${e.matches ? "dark" : "light"}`);
});И сразу применяем тему при загрузке:
document.body.dataset.theme = isDark ? "dark" : "light";
🔥 Такой пример полезен для практики работы с браузерными API, реакцией на системные события и динамическим управлением интерфейсом.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍11🔥10
Все размеры заданы в rem?
Значит, масштабировать дизайн можно одним изменением:
html {
font-size: 62.5%; /* 1rem = 10px при базовых 16px */
}Хочешь увеличить всю страницу на 20% — достаточно поменять одно значение:
html {
font-size: 75%;
}Всё: шрифты, отступы, кнопки, автоматически подстроятся, если их размеры заданы в rem:
h1 {
font-size: 2.4rem; /* 24px при font-size:10px */
}
.button {
padding: 1.2rem 2rem;
}Подходит для дизайн-систем, адаптива и гибкой настройки интерфейса под пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍11❤10🤝1