🌗 Автоматическая темная тема без медиазапросов
Вместо
➰ Что это дает:
— Автоматическое переключение темы по системным настройкам
— Скроллбары, инпуты и формы тоже меняют стиль
— Меньше кода и больше нативности
⚙️ Поддержка: Chrome 120+, Safari 17+, Firefox 120+
🐸 Библиотека фронтендера
#readme #css
Вместо
@media (prefers-color-scheme) можно использовать color-scheme:
:root {
color-scheme: light dark;
background: light-dark(#fff, #111);
color: light-dark(#111, #fff);
}
— Автоматическое переключение темы по системным настройкам
— Скроллбары, инпуты и формы тоже меняют стиль
— Меньше кода и больше нативности
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤4👍2
Иногда после API-запроса или сборки данных в объекте куча undefined — их не видно, но они мешают при сериализации, сравнении и логах.
const clean = obj => Object.fromEntries(
Object.entries(obj).filter(([_, v]) => v !== undefined)
);
— пробегается по всем парам [ключ, значение],
— выкидывает те, где значение undefined,
— возвращает новый “чистый” объект.
clean({ name: 'Alex', age: undefined, city: 'Berlin' });
// => { name: 'Alex', city: 'Berlin' }
— перед отправкой данных на сервер,
— при сборке форм,
— при логировании чистых JSON.
const clean = obj =>
Object.fromEntries(
Object.entries(obj)
.filter(([_, v]) => v !== undefined)
.map(([k, v]) => [k, v && typeof v === 'object' && !Array.isArray(v) ? clean(v) : v])
);
— рекурсивно чистит вложенные объекты,
— не трогает массивы,
— остаётся компактной и читаемой.
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2