Florian Hehlen @zenwork.eurosky.social · 10/05/2026I have found that mixing shadow and light DOM elements works for me. I use sDOM for most of my leaf components and then use lDOM compose more complex things or to create wrapper components that provide shared hidden context/state. 010
Florian Hehlen @zenwork.eurosky.social · 04/05/2026Only the 1st load, and there's ways to deal with it. Saying that FOUC is solvable ignores the nature of async loading on the web. You can always hide everything until all is loaded, but that has its own problems. I prefer a bit of FOUC to waiting seconds looking at a spinner for everything to load. 110
Florian Hehlen @zenwork.eurosky.social · 19/04/2026I have moved my account to eurosky.social to take one small action to move my data to a more sovereign data space.eurosky.socialEurosky PortalYour Portal to the Atmosphere 000
Florian Hehlen @zenwork.eurosky.social · 09/02/2026Constructible stylesheets are the best way to share styles across multiple shadowDOM elements. The CSS is loaded and parsed once but assignable inside the web component at instantiation time. Usually sorts out most FOUC issues. 110
Florian Hehlen @zenwork.eurosky.social · 21/01/2026🚀v0.7.1 of the Vento plugin(@webstorm.jetbrains.com, @intellijidea.com) is out. Added since 0.5.0: - navigation to file references - formatting - destructured vars in 2.2 - support for default blocks and data references in 2.3 - bug fixes Use with lume.land and @deno.land 010
Florian Hehlen @zenwork.eurosky.social · 15/12/2025🚀v0.5.0 of the Vento plugin for @webstorm.jetbrains.com and @intellijidea.com is out. In this release, I added: - front-matter support - fragment support The Vento template engine is used in the @lume.land framework, which is designed for @deno.land plugins.jetbrains.com/plugin/29036... 021
Florian Hehlen @zenwork.eurosky.social · 29/11/2025I just released a new plugin to use with the #SSG Vento template engine for @webstorm.jetbrains.com and @intellijidea.com. Vento is a @deno.land library and notably used with the @lume.land framework. plugins.jetbrains.com/plugin/29036...plugins.jetbrains.comVento Template Engine - IntelliJ IDEs Plugin | MarketplaceVento plugin for JetBrain's WebStorm & IntelliJ IDEA Ultimate IDE Provides support for the VentoJs template engine. Vento is used in the SSG Lume framework to... 130
Florian Hehlen @zenwork.eurosky.social · 24/10/2025People complain a lot about shadow Dom. I think it's a matter of adoption. Once you are used to them they deliver some advantages. I generally like to have strong boundaries with CSS, event propagation, slots, strict API, and reactivity. I can remove it when it truly is in the way. 010
Florian Hehlen @zenwork.eurosky.social · 21/09/2025Hi all... Sunday, feeling good about my progress helping out with the Lume (lume.land) project (#Deno SSG engine) and the underlying Vento (vento.js.org) templating engine. I am wrking away on a plugin for #Jetbrains #IntelliJIDEA and #Webstormlume.landLume, the static site generator for DenoSupport for multiple file formats like Markdown, YAML, JavaScript, TypeScript, JSX, Nunjucks etc. 021
Florian Hehlen @zenwork.eurosky.social · 20/08/2025Brings back memories. Is this the version of the browser that included dialup software directly into the browser. 010
Florian Hehlen @zenwork.eurosky.social · 18/08/2025And the shadow DOM is a feature too. The cascade can lead to lots of issues in complex/large apps or libraries. 000
Florian Hehlen @zenwork.eurosky.social · 18/08/2025I don't think that the cascade is inherently bad. I think that the shadow DOM now gives me a choice. And it's a useful choice. Choice makes it more complicated. You have to learn about loading CSS in components. But coping with the cascade can also lead to a lot of complexity in bigger projects. 100
Florian Hehlen @zenwork.eurosky.social · 17/08/2025You can call using the shadow DOM to encapsulate CSS js-centric, but I do not think this is helpful. Shadow roots are part of the DOM and CSS models. What can and can't penetrate (IE: fonts, properties, parts, etc.) is part of the CSS spec. I am just using JS to define boundaries. 100
Florian Hehlen @zenwork.eurosky.social · 16/08/2025What you present as disadvantages are relative. I don't see global styling as an absolutely great thing. And, I think that creating web components without JS doesn't make much sense to me. 100
Florian Hehlen @zenwork.eurosky.social · 15/08/2025Hot holiday take: an Americano coffee is a terrible thing to do to an espresso and makes it nothing like an actually good cup of Jo! #holiday #coffee 000
Florian Hehlen @zenwork.eurosky.social · 15/08/2025I was wondering if this indicates that people finally get that WCs exist, so they don't need hello world examples anymore. 100
Florian Hehlen @zenwork.eurosky.social · 15/08/2025Looking forward to this working in webstorm/intellij . This is a missing link for WC adoption 000
Florian Hehlen @zenwork.eurosky.social · 15/08/2025I agree that you have to leave your favourite framework paradigm at the door. I don't agree that slots and shadow DOM should be ignored. Understanding them as a browser-primitive is key though. Their quirks become something that you can leverage then. 130
Florian Hehlen @zenwork.eurosky.social · 07/08/2025I agree. Although I like my components with Lit. OOP + events is what OOP was always supposed to be. 000
Florian Hehlen @zenwork.eurosky.social · 04/08/2025Oh. Hmm... I didn't know about these issues. I almost never do any initialisation in the constructor other than initializing default state on variables when necessary. 000
Florian Hehlen @zenwork.eurosky.social · 04/08/2025I knew it was red. I did not know I could call super() later or that super() retired a reference. 200
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I guess you have all the answers you want at this point, and don't seem interested in any other experience. For what it's worth I think you misunderstand what Justin has been doing and proposing for over a decade. 100
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I followed v0 in 2016 or so. I started with v1 when released. I think you are ignoring the flux the whole space was in back then. The framework authors were not speaking with one voice at all. The disagreements between Angular, React, and Vue, Svelte, etc. universes was a big deal. 100
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I have agreed and disagreed with stuff all three of these people have written. To say that the vitriol has come from one side ignores a lot of the story. To assert that there's some kind of collusion by one side and imply only good will and good intentions on the other is pretty simplistic at best. 100
Florian Hehlen @zenwork.eurosky.social · 26/07/2025That's a fair point. But you are also conflating the initial discussion raised in the article about having template support in the browser as some kind of concession by the WC community. 110
Florian Hehlen @zenwork.eurosky.social · 26/07/2025lit-html is a template lib you can use any where. Lit is the WC lib. The markup is 100% valid html. It extends html with extra syntax. JSX does it differently. MyComponent as a tag name is non-conformant. JSX doesn't distinguish between attributes and properties. "className" instead of "class". Etc. 100
Florian Hehlen @zenwork.eurosky.social · 26/07/2025Really. It's been that bad? And there's been no conflation and strong opinions by anyone in the big frameworks? There's been no outright criticising of web components for not being close enough to their favourite framework? 120
Florian Hehlen @zenwork.eurosky.social · 26/07/2025For everyone else, Webawesome is successor Shoelaces which will soon be released and exist as a base Oss library complimented by a for money pro version. webawesome.comwebawesome.comWeb AwesomeBuild better with Web Awesome, the open source library of web components from Font Awesome. 000
Florian Hehlen @zenwork.eurosky.social · 26/07/2025One and the same! I have been using it since the early days. I am also a Kickstarter participant in Webawesome. 110
Florian Hehlen @zenwork.eurosky.social · 26/07/2025My go to reference for web components done right is Shoelace. Custom properties are mostly a flat list of tokens a d global properties. Well designed and documented CSS parts are used to provide access to override components at well defined points. shoelace.style/getting-star...shoelace.styleCustomizingLearn how to customize Shoelace through parts and custom properties. 120
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I think it's interesting that one of the trendiest frameworks out there is adopting web components. It doesn't make me like Tailwind more though 030
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I see a difference. BEM relies on convention and practices. When Custom Properties are combined with shadow Dom, then nesting is maintained. Throw in CSS parts and it becomes even more solid. 100
Florian Hehlen @zenwork.eurosky.social · 26/07/2025I see more real world use than ever. I also see more recognition of the value. That said, it's still an uphill battle for people to separate market/popularity driven arguments from other aspects of the debate. 010
Florian Hehlen @zenwork.eurosky.social · 25/07/2025JSX without react is a thing but it's certainly not what made it popular. I mentioned the virtual DOM because lit's approach to reactivity and incremental Dom updates is intimately bound to the lit-html template. This template implementation fully respects html semantics. 100
Florian Hehlen @zenwork.eurosky.social · 25/07/2025I think that this could be said of many technology circles. I have been through angular, angularjs, react, and finally into the WC world. The nature of web components fits well with my need for less rather than more when I code. 000
Florian Hehlen @zenwork.eurosky.social · 25/07/2025I test with vitest + playwright. You can run in visual and headless mode. 000
Florian Hehlen @zenwork.eurosky.social · 25/07/2025Justin's criticism has always been specific. JSX breaks HTML semantics in significant ways to map to React's component model. Second, although virtual DOM was a powerful idea when it was introduced about 10 years ago, it's today a liability. That's about it. No cabal. 120
Florian Hehlen @zenwork.eurosky.social · 24/07/2025My understanding is that there's a requirement that all the frameworks (react, angular, Vue, etc ) and web component libs (lit, FAST, LWC, etc.) all have. The paper calls for agreeing on this common definition of a template for browsers to implement. This should not be JSX though. 110
Florian Hehlen @zenwork.eurosky.social · 24/07/2025Read the article. It's not an endorsement of JSX. It uses it as a starting point to argue what a proper native templating approach would look like. 100
Florian Hehlen @zenwork.eurosky.social · 24/07/2025I think you are reading-in things that aren't there. The popularity of JSX is just a fact. React and JSX do not have a monopoly on declarative ways of working. The article is pretty clear that JSX is not the solution. It just uses it as a vehicle because there's a large audience that can relate. 110
Florian Hehlen @zenwork.eurosky.social · 26/06/2025It's so hard to recover the truth about web components! 010
Florian Hehlen @zenwork.eurosky.social · 04/06/2025"IT is not the biggest problem in healthcare, there are very big problems, but it is a blocking problem" --Grahame Grieve #fhir #fhirdevdays 000
Florian Hehlen @zenwork.eurosky.social · 03/06/2025If a template is a composition of multiple templates should cache() be used at the top or on each template? 100
Florian Hehlen @zenwork.eurosky.social · 03/06/2025AI and LLM integration are one big challenge in #digitalhealth that promises to unlock many things. Huge progress is happening but cost (time and money) are still a big hurdle to reach usable solutions. #fhirdevdays #fhir 011