In Svelte, 1
is syntactic sugar for 2
.
<!-- 1 -->
<Welcome
--my-color=blue
--my-bg-color=red
/>
<!-- 2 -->
<div style="display: contents; --my-color: blue; --my-bg-color: red">
<Welcome/>
</div>
So in Welcome
, css-variables are available.
Of cource this is useless. But I made it for practice.
Here's new App.svelte
.
<!-- App.svelte -->
<Welcome/>
<style>
Welcome {
--my-color: blue;
--my-bg-color: red;
}
</style>
Preprocessor modify Welcome.svelte
using App.svelte
before compile time.
<!-- Welcome.svelte -->
<div style="display: contents; --my-color: blue; --my-bg-color: red">
<h2>Hello {name}!</h2>
<p>Visit the <a href="https://svelte.dev/tutorial">Svelte tutorial</a> to learn how to build Svelte apps.</p>
</div>
Note that there's no need to modify Welcome.svelte
. Wrapping Welcome
with div
in App.svelte
produces same output.
I just did it for preparing more complicated example.