packages icon indicating copy to clipboard operation
packages copied to clipboard

Convert Svelte components styles into Stylify optimized CSS

Open katriellucas opened this issue 11 months ago β€’ 2 comments

Describe the problem

Stylify is already very close to vanilla CSS, woudn't be interesting to be able convert the native style tags that already exists on Svelte files to Stylify optimized classes? The proposal is basically converting the CSS inside the components.

Describe the proposed solution

What I thought:

// PrimaryButton.svelte
<button class="primary-button">Button</button>

<style> // Might also be interesting to add lang="stylify" attribute to hint the compilation
  primary-button {
    padding: 10px 15px;
    font-size: 16px;
    cursor: pointer;
  }
</style>

compiled into:

// html
<button class="a b c">Button</button>

// stylify.css
a: {
  padding: 10px 15px;
}

b: {
  font-size: 16px;
}

c: {
  cursor: pointer;
}

Alternatives considered

Do nothing, with the current component syntax, it's possible to achieve something similar:

<!--
  stylify-components
    'primary-button': `padding:10px_15px font-size:16px cursor:pointer`
  /stylify-components
-->

But we lose perks like syntax highlight, utility class generation and other, so it's not exactly the same, you end up with some repeated classes due to how stylify componentization works.

Importance

would make my life easier

katriellucas avatar Feb 26 '24 02:02 katriellucas