...

На початку цього року я випустив темний режим для Опус. Моя реалізація була досить простою. Коли користувач натискає перемикач «темний режим» у заголовку сайту, запускається деякий JS, який додає darkMode класу до element, which then applies a set of “dark” styles across the entire design.

Using this approach, your CSS might look something like this, with the “light” styles specified normally and the “dark” styles nested under a selector:

body {
    background-color: #fff;
    color: #000;
}

html.darkMode {

    body {
        background-color: #000;
        color: #fff;
    }

}

У цьому підході немає нічого поганого. Очевидно, це працює, і приємно мати всі ваші «темні» стилі в одному місці. Але при екстраполяції на весь веб-сайт цей підхід неминуче призводить до появи багатьох дублікатів CSS. Для кожного селектора, який має «світлий» стиль, вам потрібно створити його «темну» версію, яка здається грубою та неефективною. (Зрештою, одне з головних правил програмування — не повторюватися.)

Однак я не знав іншого способу досягнення темного режиму. Поки я не виявив light-dark функція, тобто. По суті, light-dark дозволяє вказати два значення кольору — одне «світлий» і одне «темний», а потім автоматично застосовує відповідне значення на основі поточної вибраної колірної схеми. Використовуючи цю функцію, ми можемо оновити наш CSS таким чином:

:root {
    color-scheme: light dark;
}

body {
    background-color: light-dark(#fff, #000);
    color: light-dark(#000, #fff);
}

Тепер, element’s colors will be automatically set based on the user’s system preferences. In “light” mode, the site will have a white background with black text, and in “dark” mode, it’ll have a black background with white text.

With Opus, however, the color scheme is set by the aforementioned “dark mode” toggle. Which meant that I had to make an additional tweak to the CSS:

:root {
    color-scheme: light dark;
}

html {
    color-scheme: light;

    &.darkMode {
        color-scheme: dark;
    }

}

body {
    background-color: light-dark(#fff, #000);
    color: light-dark(#000, #fff);
}

За замовчуванням встановлено колірну схему light. Але коли darkMode клас додається до element via JS, the color scheme is set to darkз light-dark функція все ще застосовує належні значення кольорів. Це означає, що більше немає «темних» версій селекторів CSS і дублюючого коду.

Навіть краще, light-dark функція також приймає змінні CSS та інші функції CSS, як color-mix на додаток до звичайних значень кольорів CSS, що робить його справді гнучким.

body {
    background-color: light-dark(var(--white), var(--black));
    color: light-dark(var(--black), var(--white));
}

body {
    background-color: light-dark(var(--gray), color-mix(in srgb, var(--black) 10%, var(--gray)));
    color: light-dark(color-mix(in srgb, var(--black) 10%, var(--gray)), var(--gray));
}

Таким чином, light-dark функція дійсно має деякі недоліки, як зазначено в CSS Tricks. Зокрема, ви обмежені лише двома кольоровими схемами відповідно до назви функції. Якщо ви хочете реалізувати третю схему (наприклад, схему «високого контрасту»), то light-dark функція вам тут не допоможе. Принаймні, не в його поточній формі, хоча W3C зараз розглядає шляхи розширення light-dark для обробки більш ніж двох схем кольорів, а також методів визначення властивостей, не пов’язаних із кольором.

Це сказав, light-dark все ще дуже зручний навіть у своїй поточній «обмеженій» формі. Це робить для вас багато важкої роботи, водночас дозволяючи вам писати чистіший і ефективніший CSS. Іншими словами, це точно те, що вам варто розглянути, коли наступного разу вам знадобиться запровадити темний режим для веб-сайту.

Болівія, Парагвай, Бразилія, Уругвай та Аргентина

Прес-реліз

Це машинний переклад випуску нижньої палати Бразилії

Цього четверга (12) нижня палата схвалила Проект законодавчого указу (PDL) 159/22, який передбачає скасування плати за роумінг між МЕРКОСУР країни (Аргентина, Бразилія, Парагвай, Уругвай і Болівія). Текст буде направлений на аналіз до Сенату.

Представлена ​​Представництвом Бразилії в парламенті Меркосур пропозиція включає угоду про скасування збору плати за міжнародний роумінг для кінцевих користувачів Меркосур, підписану в 2019 році.

Мета полягає в тому, щоб дозволити користувачам мобільних телефонів, які подорожують країнами блоку, отримувати плату згідно з планом, укладеним у їхній країні походження, без додаткової плати.

Доповідач тексту для Конституції та Комітету з питань правосуддя та громадянства (CCJ), законодавець Орландо Сілва (PCdoB-SP), рекомендував схвалити угоду.

Джерело: Інформаційне агентство нижньої палати.

Підпишіться на провідну платформу бізнес-аналітики в Латинській Америці з різними інструментами для постачальників, підрядників, операторів, уряду, юридичної, фінансової та страхової галузей.

” class=”btn btn-lg btn__orange-light ” qa-automation=”cmd_robot_btn_footer_content_demo”> Запит на демонстрацію