Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switching to monorepo #95

Open
Tahul opened this issue Jun 1, 2023 · 1 comment
Open

Switching to monorepo #95

Tahul opened this issue Jun 1, 2023 · 1 comment
Assignees

Comments

@Tahul
Copy link
Owner

Tahul commented Jun 1, 2023

Hey; as Pinceau has grown into the theming engine for @nuxt-themes org, I would like it to be a bit more modulable in its usage and project dependencies impact.

The plan for me is to convert the big Vite plugin that Pinceau is right now into a set of smaller plugins splitted that way:

  • @pinceau/theme

    • Would offer all the theming and design tokens layer without any bundle size impact except the generated CSS
    • => any project that want to uses Pinceau solely for https://nuxt.studio compatibility or theming management purposes to not be bothered with heavier dependencies.
    • => improves Pinceau compatibility with other CSS engines or frameworks
  • @pinceau/static

    • Would handle all the css() static features and transforms, still allowing to use Pinceau with 0kb of JavaScript code added to your project
  • @pinceau/runtime

    • Would handle all runtime features like computedStyles, variants and cssProp and add the Pinceau runtime engine to your project
    • Rescoping this part will also be a great opportunity to rewrite the engine from all the learnings of previous iterations, I've spotted a lot of things to improve there
  • @pinceau/nuxt

    • Would continue handling first-class integration with Nuxt
  • pinceau

    • For convenience, this package will still be released and include all the previous ones as dependencies, that way Pinceau always stays 1 dependency away

There would probably be a @pinceau/shared package in between all these "user-facing" ones that would share bits of codes and typings between all these other packages.

Also, this is a very great opportunity to add a test suite for each package, that will improve the stability of Pinceau and the coherence of its feature set by a lot.

This indeed is a big piece work, that already has started in the https://github.com/Tahul/pinceau/tree/feat/rewrite-engine branch :)

@SGAMERyu
Copy link
Contributor

SGAMERyu commented Jun 3, 2023

Exciting road map, but it doesn't seem like the branches are open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants