Size: a a a

2021 March 17

W

Whatislove in Svelte [svelt]
Надеюсь людям зайдем 🙏
источник

AP

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

AP

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

AP

Alexander Ponomarev in Svelte [svelt]
хочешь предсказуемости тащи цсс модули
источник

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
добро пожаловать =)
Да ну, кейс странный. Мне самому лень собирать репро, но я уверен, что там всё фиксится очень легко.
источник

DK

Dan Kozlov in Svelte [svelt]
Кейс не только странный, но и редкий.
источник

11

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

DK

Dan Kozlov in Svelte [svelt]
Для меня это всё детали имплементации фреймворка.

Я так и не понял, когда это влияет хоть на что-то. Как я не игрался с твоим примером про див и спан, как я ни пытался миксовать глобалы и не глобалы, уносить всё в разные компоненты и передавать стили между ними, я не добился нелогичного поведения.
источник

DK

Dan Kozlov in Svelte [svelt]
И тем более не добился, как ты писал, "полного слома цссной логики".
Я могу быть неправ, я, может, просто кейс до конца не вкурил.
источник

11

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

DK

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

11

1 1 in Svelte [svelt]
ну тогда положительных моментов вдвое меньше :)
источник

11

1 1 in Svelte [svelt]
я не очень-то умею в оптимизм, но честно попытался
источник

AP

Alexander Ponomarev in Svelte [svelt]
наконецто хоть кто-то еще =)
источник

11

1 1 in Svelte [svelt]
Dan Kozlov
Для меня это всё детали имплементации фреймворка.

Я так и не понял, когда это влияет хоть на что-то. Как я не игрался с твоим примером про див и спан, как я ни пытался миксовать глобалы и не глобалы, уносить всё в разные компоненты и передавать стили между ними, я не добился нелогичного поведения.
ну если с воспроизведением такие неодолимые сложности, то для интересующихся, но ниасиливших достаточно на мой взгляд подробное описание, сделаю пример сам:  
https://svelte.dev/repl/c64f5d6c14bd4dd1ade2c1567501e68c?version=3.35.0
источник

J

José in Svelte [svelt]
Dan Kozlov
https://github.com/safeapps-io/money-client/blob/master/svelte.config.js#L18

Я вот так сделал и в роллап-конфиге, и в свелт.конфиге. Не ругается нигде, переменные доступны везде.
┌────────────────────────────────────┐
│ built serviceworker with 1 warning │
└────────────────────────────────────┘
> No directory provided. Skipping CSS generation
источник

DK

Dan Kozlov in Svelte [svelt]
1 1
ну если с воспроизведением такие неодолимые сложности, то для интересующихся, но ниасиливших достаточно на мой взгляд подробное описание, сделаю пример сам:  
https://svelte.dev/repl/c64f5d6c14bd4dd1ade2c1567501e68c?version=3.35.0
Но ты описывал несколько другой кейс изначально, что у тебя были конфликты именно с общими стилями страницы — не изолированными, очевидно. Тут у тебя проблема с передачей класса между компонентами с изоляцией на поддерево.
Если убрать, например, main из селектора, то ожидаемо никаких WTF не будет.

Но кейс действительно забавный.

В остальном ситуация-то простая. Все почему-то пытаются юзать свелт не так, как мейнтейнеры предлагают и, когда обжигаются, винят почему-то инструмент.
источник

DK

Dan Kozlov in Svelte [svelt]
José
┌────────────────────────────────────┐
│ built serviceworker with 1 warning │
└────────────────────────────────────┘
> No directory provided. Skipping CSS generation
источник

11

1 1 in Svelte [svelt]
Dan Kozlov
Но ты описывал несколько другой кейс изначально, что у тебя были конфликты именно с общими стилями страницы — не изолированными, очевидно. Тут у тебя проблема с передачей класса между компонентами с изоляцией на поддерево.
Если убрать, например, main из селектора, то ожидаемо никаких WTF не будет.

Но кейс действительно забавный.

В остальном ситуация-то простая. Все почему-то пытаются юзать свелт не так, как мейнтейнеры предлагают и, когда обжигаются, винят почему-то инструмент.
ну это минимальный воспроизводимый пример.  у меня ситуация реального мира, она разумеется сложнее.  между выдиранием разметки в компонент и добавлением стиля вложенному элементу прошёл месяц, причинно-следственная связь этих двух действий была вот ни разу не очевидна
источник

11

1 1 in Svelte [svelt]
ну и хз как они предлагают его юзать, если весь остальной мир как бы уже имеет кучу стилей, не сделанных в виде их компонентов.  та же бульма
источник