-
-
Notifications
You must be signed in to change notification settings - Fork 20
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
feat(v1): rewrite engine, make a monorepo #103
Conversation
✅ Live Preview ready!
|
✅ Deploy Preview for pinceau ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
…dy; start reimpl transforms
@SGAMERyu ; you might want to look at this one :) |
…arts fully imported language-server/vscode ext with fixed build ; prepared tests & fixtures too
Very excited for this one! |
…kges; fully tested core & theme
Thanks for the support @MrHBS :) I made huge progress in the latest commit, including fully testing (almost 100% coverage) both I'll now be doing the same on This led to major stability improvements and overall rewrite of both these packages. I can't wait to share more about the project, happy to know some of you are following. 😊 |
Hey @MrHBS ; @zanfee ; @henrycunh ; I fully revamped all existing package features and tested them all. Runtime engine is now framework agnostic and Vue integration is fully tested. Now, I'll put some focus on Volar integration, and Pinceau IntelliSense extension. Next, I'll upgrade the docs, and aim toward the v1.0 release. Thanks for following the project. |
Co-authored-by: Agénor Debriat <agenor.debriat@me.com>
greatly improve typings and DX (volar/vscode ext upgrades)
…e next integrations
Hey @MrHBS ; @SGAMERyu ; @zanfee ; @henrycunh ; In the latest commit, I added full support for Svelte and the whole test suite for it. I started trying to support Svelte as I was building the VSCode extension, which now works much better thanks to that little detour. In the next commit, I'll be shipping the support for all JSX-based frameworks through |
Looking forward to version 1.0, I'm currently working on a demo of pinceau's viewer, just like the tailwind viewer |
…elte / Vue / TypeScript
@SGAMERyu ; I can't wait to show you what I built for this v1; I'm getting amazed a bit more every day. 😄 |
React is now fully supported as well, with some great discoveries from the new API. const TestComponent = $styled.a<{ color: ThemeTokens<'$color'> }>({ color: (color) => props.color }).withVariants({ ...variants })
const MyPage = () => {
return (
<TestComponent color="$color.red.1">Hello World</TestComponent>
)
} This is cool for React, but after making it fully work there, I tried to integrate it with Vue and Svelte, as the new Pinceau engine makes it just a few lines for me to add between frameworks. That unlocked: In Vue: <script lang="ts">
const TestButton = $styled.a<{ color: ThemeTokens<'$color'> }>({ color: (color) => props.color }).withVariants({ ...variants })
</script>
<template>
<div>
<TestButton color="$color.blue.1">
BlueButton
</TestButton>
<TestButton color="$color.green.2">
Green button
</TestButton>
</div>
</template> In Svelte: <script lang="ts">
const TestButton = $styled.a<{ color: ThemeTokens<'$color'> }>({ color: (color) => props.color }).withVariants({ ...variants })
</script>
<div>
<TestButton color="$color.blue.1">
BlueButton
</TestButton>
<TestButton color="$color.green.2">
Green button
</TestButton>
</div> I think this is a HUGE gain for developer experience in When you want to create a single component that is reusable, but still has no need to be a SFC because it will only be used in your local component, this becomes very handy. It also makes it a breeze to create components with props typed from the theme. Well, now that this is all done and pushed, I'm hoping on the playground and expect to ship a first version very soon! |
This PR is now ready, I'll proceed with merging on Documentation is obviously not up-to-date, but will be very soon. I am rushing on finishing the playground now, so anyone can try the new features and syntaxes right from the browser. I will be making a You can find examples of any compatible setup in the Excuse me for the lack of documentation, but I have to rush towards something "presentable" as I am showcasing this new version at VueJS Paris! |
Following #95