Size: a a a

2021 February 16

AM

Anton Mazhuto in Svelte [svelt]
Марк Танащук
widget.$on("click", someFunc);
ага, спасибо
источник

A

Arushwl in Svelte [svelt]
Марк Танащук
widget.$on("click", someFunc);
Это эвент виджета
источник

МТ

Марк Танащук... in Svelte [svelt]
Arushwl
Это эвент виджета
Можно и извне передавать функцию пропсом, а внутри контроллировать кем ивенты слушать, тут уж как душа пожелает =\
источник

A

Arushwl in Svelte [svelt]
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dmitry Kurmanov
Чтобы потенциальному клиенту контрола отдать классы без "svelte-autogen-xyz"
для виджета, имхо, лучше комбинировать префиксы классов + генерация хэшей. если клиенту нужно будет что-то подправить, то дать ему официальный интерфейс (пропсы, css vars и тп) и/или пусть юзать !important для искуственного повышения веса. Для виджета не вижу в этом ничего страшного
источник

AP

Alexander Ponomarev in Svelte [svelt]
хз помоему глобальные классы вполне нормальный интерфейс для переопределения стилей
источник

AP

Alexander Ponomarev in Svelte [svelt]
если кому то нужны цсс переменные он их пропишет через эти глобальные классы
источник

AP

Alexander Ponomarev in Svelte [svelt]
а форсировать смену цсс свойств через жс пропсы это плохо хотя бы для ховера, который может работать без жса просто по псевдоклассу
источник

11

1 1 in Svelte [svelt]
насколько я понимаю, чтобы более или менее сносно сочетать пользовательское переопределение с теми генерёнными свелтовскими классами, достаточно в самом компоненте иметь класс на внешнем элементе, но стили внутренним элементам прописывать без него.  тогда можно будет в глобальной таблице стилей (на сайте в который встраивается компонент) переопределять стили внутренних элементов с каскадом от родительского элемента.   надо только чуть-чуть добавить веса его селектору.  например с дополнительным каскадом от body или продублировав класс.  
правда тут может начать мешаться тот самый глюк с рандомно дублирующимися генерёнными классами в селекторах...
выглядеть это может примерно так:  в компоненте

<div class="test">
   <p>test</p>
</div>
<style>
   .test { font-family: Consolas; }
   p { color: green; }
</style>
  а там где компонент используется без свелта
.test.test p {color: blue;}
либо
body .test p {color: red;}
источник

AP

Alexander Ponomarev in Svelte [svelt]
1 1
насколько я понимаю, чтобы более или менее сносно сочетать пользовательское переопределение с теми генерёнными свелтовскими классами, достаточно в самом компоненте иметь класс на внешнем элементе, но стили внутренним элементам прописывать без него.  тогда можно будет в глобальной таблице стилей (на сайте в который встраивается компонент) переопределять стили внутренних элементов с каскадом от родительского элемента.   надо только чуть-чуть добавить веса его селектору.  например с дополнительным каскадом от body или продублировав класс.  
правда тут может начать мешаться тот самый глюк с рандомно дублирующимися генерёнными классами в селекторах...
выглядеть это может примерно так:  в компоненте

<div class="test">
   <p>test</p>
</div>
<style>
   .test { font-family: Consolas; }
   p { color: green; }
</style>
  а там где компонент используется без свелта
.test.test p {color: blue;}
либо
body .test p {color: red;}
свелт усиливает свои селекторы и их хрен перебьешь
источник

AP

Alexander Ponomarev in Svelte [svelt]
ну точнее это усиление не предсказуемо почти никак
источник

AP

Alexander Ponomarev in Svelte [svelt]
и его сложно будет документировать в bc
источник

11

1 1 in Svelte [svelt]
ну да, я упоминал что бага с дублирующимися генерёнными селекторами действительно может мешаться.   но "хрен перебьёшь" - это громко сказано.   можно добавить body айдишник и от него ;)
<body id='antisvelte'>
 и тогда
#antisvelte .test p {}
передавит любое осмысленное количество селекторов по классу.  про осмысленность мы уже как-то дискутировали :)
источник

AP

Alexander Ponomarev in Svelte [svelt]
ну да с айдишником норм вариант
источник

AP

Alexander Ponomarev in Svelte [svelt]
но не совсем) нужно же переписать селектор такой же силой селектора но просто ниже в списке стилей, чтобы был сильнее приоритет. если ты перепишешь более весомым селектором, то ты перепишешь все селекторы в том числе модификаторы и ховеры
источник

AP

Alexander Ponomarev in Svelte [svelt]
айдишник селектор из другой категории весов так что он точно перекроет много лишнего
источник

AP

Alexander Ponomarev in Svelte [svelt]
вариант с глобальными классами имхо гораздо проще
источник

11

1 1 in Svelte [svelt]
ну это да, глобальными всяко проще.  я честно пытался, но лично мне насильно причинённая польза с этими локальными стилями как-то совсем не зашла.  в моём мелком проектике по факту осталась только пара мест с ними, и всё к тому что и эти остатки я снесу в глобальную таблицу рано или поздно.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
можно каскадить от рут ноды виджета которая будет с хешированным классом
источник

AP

Alexander Ponomarev in Svelte [svelt]
ну всегда есть цсс модули, они проще и удобнее на порядки
источник