Интерфейс кажется живым, когда есть визуальная обратная связь. В этом приёме сделаем проходящий световой блик, который появляется при наведении.
Как работает:
• ::before создаёт отдельный слой блика, который движется по координате;
• linear-gradient формирует мягкий центр света и прозрачные края;
• keyframes sh управляет непрерывным движением без рестарта;
• :hover меняет длительность анимации, но не запускает её заново, поэтому эффект ощущается отзывчивым и плавным;
Это отличный пример того, как можно управлять визуальным откликом интерфейса, делая его выразительным и предсказуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🤝8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь быстро понять базу по HTML, CSS, JavaScript, и др. Этот сайт отлично подойдёт как справочник и тренажёр. Материалы разбиты по небольшим блокам с примерами кода, которые можно сразу запустить в браузере, это помогает не просто читать, а реально видеть, как работает код. Идеально, когда нужно понять новую тему или быстро найти ответ на конкретный вопрос.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥8❤7🤝1
Отключаем тап-хайлайт (системный flash-эффект) для кнопок и ссылок!
На мобильных устройствах при тапе часто появляется серая/синяя подсветка, в кастомных UI это может выглядит как визуальный баг:
Чтобы интерактивность не пропала, добавьте свой предсказуемый
Нюансы:
🔥 В итоге убираем системный flash и даём контролируемый
📣 Code Ready | #совет
На мобильных устройствах при тапе часто появляется серая/синяя подсветка, в кастомных UI это может выглядит как визуальный баг:
a, button {
-webkit-tap-highlight-color: transparent;
}Чтобы интерактивность не пропала, добавьте свой предсказуемый
feedback:a:active, button:active {
opacity: .7; /* базовый tap-feedback, работает в продакшене для кликабельных элементов */
}Нюансы:
:active на iOS иногда капризен на нестандартных элементах, но для a и button, надёжный и простой вариант.feedback.Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Next JS/TS Snippets — расширение, которое даёт готовые сниппеты для самых распространённых конструкций: маршруты, API-роуты, компонентные страницы, layout, middleware и многое другое, причем сразу с TypeScript-поддержкой. Экономит время, уменьшает количество опечаток и делает разработку проекта куда быстрее и приятнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥7🤝6❤3
⚡️Hype Tech анонимно публикует промпты для ИИ!
Генерируй изображения, создавай тренды и упрости ЛЮБУЮ рутину — всё это бесплатно и в открытом доступе.
Топ-промты от Hype Tech:
• Эксперименты с генерацией изображений и текста;
• Необычные промпты для ChatGPT и не только;
• Идеи для упрощения рутинных задач.
Подпишись и забери самые мощные ИИ для твоего арсенала: https://news.1rj.ru/str/+xjSLfhZQOwMGQy
Генерируй изображения, создавай тренды и упрости ЛЮБУЮ рутину — всё это бесплатно и в открытом доступе.
Топ-промты от Hype Tech:
• Эксперименты с генерацией изображений и текста;
• Необычные промпты для ChatGPT и не только;
• Идеи для упрощения рутинных задач.
Подпишись и забери самые мощные ИИ для твоего арсенала: https://news.1rj.ru/str/+xjSLfhZQOwMGQy
👎6😁2
Многие до сих пор центрируют так:
.box {
display: grid;
justify-content: center;
align-content: center;
}Работает, но можно короче:
.box {
display: grid;
place-content: center;
}place-content: center центрирует весь контент сетки как блок по обеим осям.Если хотите центрировать элемент внутри сетки (типичный случай для модалок и баннеров):
.box {
display: grid;
place-items: center;
}А если центрируете конкретный
grid-item:.child {
place-self: center;
}Работает только если
.child прямой наследник grid-контейнера (то есть grid-item).Grid — для 2D-выравнивания, flex — для линейных потоков. Используй по задаче layout будет чище и предсказуемее.Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥14❤8🤝1
Например,
justify-items выравнивает элементы внутри ячеек по горизонтали, а align-items делает то же самое по вертикали.На картинке — свойства и значения CSS Grid, которые действительно стоит держать под рукой.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍9🔥9
⚡️ Тимлид из Сбера спалился на использовании ChatGPT
Причём схема работала целый год: задачи всей команды сбрасывали в нейронку, используя особые промты.
Тимлида уволили, и в порыве гнева он создал блог НейроПульс, где сливает все лайфхаки работы с ИИ:
– Как получить безлимитные генерации
– Промты, улучшающие ответы ChatGPT в 10 раз
– Дикие способы заработка на ИИ
Сохраняй, пока чувака не заблокировали техно-гиганты: https://news.1rj.ru/str/+rzu4ballvikwZmNi
Причём схема работала целый год: задачи всей команды сбрасывали в нейронку, используя особые промты.
Тимлида уволили, и в порыве гнева он создал блог НейроПульс, где сливает все лайфхаки работы с ИИ:
– Как получить безлимитные генерации
– Промты, улучшающие ответы ChatGPT в 10 раз
– Дикие способы заработка на ИИ
Сохраняй, пока чувака не заблокировали техно-гиганты: https://news.1rj.ru/str/+rzu4ballvikwZmNi
👎22😁15
Динамический импорт модулей в браузере (ES Modules)!
Браузеры давно поддерживают загрузку модулей в рантайме через
Базовый
Импорт и сразу использование экспорта:
Ленивая загрузка по клику на конкретный элемент UI:
Простая (приблизительная) проверка поддержки динамического
Важно:
Короткий пример с обработкой ошибок:
🔥 Динамический импорт — простой способ держать код чистым, архитектуру ленивой, а старт страницы быстрым, используя стандартный JavaScript и нативный ESM.
📣 Code Ready | #практика
Браузеры давно поддерживают загрузку модулей в рантайме через
import(). Это позволяет не грузить весь JS сразу: ленивые фичи, плагины, тяжёлые виджеты, админ-разделы SPA — всё подгружается по запросу и кэшируется как обычный ESM-модуль.Базовый
import в консоли:import("/path/to/module.js")
.then(m => console.log("Модуль загружен:", m))
.catch(e => console.error("Ошибка загрузки:", e));Импорт и сразу использование экспорта:
import("/path/to/math.js")
.then(({ sum }) => console.log("Sum:", sum(2, 3)))
.catch(console.error);Ленивая загрузка по клику на конкретный элемент UI:
document.querySelector("#confettiBtn")?.addEventListener("click", () => {
import("/path/to/confetti.js")
.then(m => m.run())
.catch(console.error);
});Простая (приблизительная) проверка поддержки динамического
import:const supportsDynamicImport = (() => {
try { new Function("import('data:text/javanoscript,')"); return true; }
catch { return false; }
})();
console.log("Dynamic import support:", supportsDynamicImport);Важно:
import() асинхронный, UI не блокируется; ошибки обрабатываются в .catch(), модуль кэшируется браузером.Короткий пример с обработкой ошибок:
import("/path/to/user-profile.js")
.then(m => m.init())
.catch(e => console.error("Ошибка загрузки модуля:", e));Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
TODO Highlight — расширение, которое делает комментарии TODO, FIXME, NOTE и другие заметными прямо в файле, подсвечивая их. Помогает быстрее находить, что осталось доделать, придавая наглядность задачам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24🔥10👍7