Тема исходных веб-компонентов моего проекта реализована в виде <custom-style>
элементов ссылка
Я хочу реализовать свои переопределения уровня документа в виде JS-модуля (например, избегать жесткого кодирования в приложении index.html
или эквивалентном), что на первый взгляд выглядит просто:
import '@vaadin/vaadin-lumo-styles/color.js';
const $template = document.createElement('template');
$template.innerHTML = `
<custom-style>
<style>
html,
:host {
--lumo-primary-color: red;
}
</style>
</custom-style>`;
document.head.appendChild($template.content);
ВОПРОС
Некоторые веб-компоненты, используемые в документе, также импортируют оригинальную тему через import '@vaadin/vaadin-lumo-styles/color.js'
.
Я хочу, чтобы мои переопределения всегда каскадировались последними (без !important
хаков).
Могут ли несколько последующих import '@vaadin/vaadin-lumo-styles/color.js';
вызовов вернуть мой каскадное свойство, переопределяющее каскад?
Подумайте:
- оригинал:
--lumo-primary-color: hsl(214, 90%, 52%);
- me: импортировать оригинал, переопределить
--lumo-primary-color: red;
- позже: можно ли позднее импортировать исходный каскад «сброса» обратно в
--lumo-primary-color: hsl(214, 90%, 52%);
)?
ES6 импортирует файл в нескольких местах, почему файл загружается один раз? , кажется, подразумевает, может быть, нет, но я изо всех сил пытаюсь найти любую документацию, которая явно так или иначе заявляет о <custom-style>
.
Возможно https://github.com/Polymer/polymer/blob/v3.2.0/lib/elements/custom-style.js#L80 это ключ?
GLITCH
https://glitch.com/edit/#!/roan-pizza?path=src/index.js, кажется, подтверждает, что повторный импорт не вызывает проблем, но почему? Это связано только с кэшированием загрузки модуля ES6 или с чем-то еще?
РЕДАКТИРОВАТЬ элементы drag-n-drop <custom-style>
в инспекторе браузера определенно влияют на каскад (изменение цветов в зависимости от порядка тегов), поэтому, по крайней мере, порядок загрузки имеет значение.