React-like functional webcomponents, but with vanilla HTML, JS and CSS

Introducing Dim – a new #Framework that brings #ReactJS-like functional #JSX-syntax with #VanillaJS. Check it out here:
🔗 Project: https://github.com/positive-intentions/dim
🔗 Website: https://dim.positive-intentions.com

My journey with #WebComponents started with Lit, and while I appreciated its native browser support (less #Tooling!), coming from #ReactJS, the class components felt like a step backward. The #FunctionalProgramming approach in React significantly improved my #DeveloperExperience and debugging flow.

So, I set out to build a thin, functional wrapper around #Lit, and Dim is the result! It's a #ProofOfConcept right now, with "main" #Hooks similar to React, plus some custom ones like useStore for #EncryptionAtRest. (Note: #StateManagement for encryption-at-rest is still unstable and currently uses a hardcoded password while I explore #Passwordless options like #WebAuthn/#Passkeys).

You can dive deeper into the #Documentation and see how it works here:
📚 Dim Docs: https://positive-intentions.com/docs/category/dim

This #OpenSource project is still in its early stages and very #Unstable, so expect #BreakingChanges. I've already received valuable #Feedback on some functions regarding #Security, and I'm actively investigating those. I'm genuinely open to all feedback as I continue to develop it!

#FrontendDev #JSFramework #Innovation #Coding #Programmer #Tech

GitHub - positive-intentions/dim

Contribute to positive-intentions/dim development by creating an account on GitHub.

GitHub

Does anyone have good reading on how major frameworks make their SPA url router? I'm not talking about a hash router, I'd like to see how (with the server configured properly) the JS handles all the things (history pop state changes, link clicks, etc)

#javascript #vanillajs #webcomponents

I recently tried out Turbo: a #JS library promising to give a Single Page App feel to a static website - without having to write JS code.

My take? It doesn’t offer much for experienced JS devs, but can be a solid option for devs who aren't comfortable with vanilla frontend JS.

🔗 More on it here: https://marmelab.com/blog/2025/04/18/give-a-spa-feel-to-your-static-website-with-turbo.html

#TurboJS #WebDev #devtool #vanillaJS #JavaScript

Give a SPA Feel to Your Static Website with Hotwire's Turbo

Turbo is a JavaScript library promising to give a Single Page App feel to a static website without requiring to write JS code. We tested it on the React Admin documentation pages, but faced several issues that made this solution impractical to us.

GitHub - teotimepacreau/www.teotimepacreau.fr: My personal website built with 11ty

My personal website built with 11ty. Contribute to teotimepacreau/www.teotimepacreau.fr development by creating an account on GitHub.

GitHub

Teskoanno is now live! My #threejs powered 3D N-Body simulator is now up - it's a dev build, and not optimised but it works! I tested it on mobile - UI needs to work, but runs well on my Pixel 8 Pro.

Would love to get #feedback

https://tanepiper.github.io/teskooano/

#gamedev #astronomy #webDev #webComponents #vanillaJS #opensource

(Bonus debug tools screenshot)

Teskooano - Advanced 3D N-Body Simulation Engine

Explore realistic celestial systems with accurate physics, real-time visualization, and multi-view capabilities

DOM-Scope: создание искусственных областей видимости и управление идентификаторами элементов

В процессе работы с HTML-документами часто возникает необходимость получить доступ к конкретным элементам DOM. Обычно это делается с помощью уникальных идентификаторов, которые присваиваются нужным элементам. Однако существует вероятность, что в большом документе может оказаться несколько элементов с одинаковыми идентификаторами, что может привести к путанице. Чтобы избежать этой проблемы, я разработал библиотеку dom-scope, которая позволяет создавать искусственные области видимости (скоупы) внутри DOM. Я хочу поделиться своим решением с сообществом Хабра.

https://habr.com/ru/articles/892326/

#dom #esm #domscope #scope #vanillajs

DOM-Scope: создание искусственных областей видимости и управление идентификаторами элементов

Обычное DOM-дерево В процессе работы с HTML-документами часто возникает необходимость получить доступ к конкретным элементам DOM. Обычно это делается с помощью уникальных идентификаторов, которые...

Хабр

@kajou solution 100% #HTML #CSS #VanillaJS mais sans le défilement de mon côté (flèches et fonctionnalité de défilement à implémenter de ton côté) :
- insertion dynamique d'un clone de l'image dans un <dialog> via JS
- style image plein écran via CSS

Tout est documenté ici : https://github.com/teotimepacreau/eleventy-plugin-img-magnifier/blob/master/.eleventy.js

En usage sur les images de mon blog

eleventy-plugin-img-magnifier/.eleventy.js at master · teotimepacreau/eleventy-plugin-img-magnifier

Eleventy plugin to zoom image on click to fullscreen - teotimepacreau/eleventy-plugin-img-magnifier

GitHub

bon, #help, je sais pas comment formuler ça efficacement pour une recherche web alors je vais juste poser ma question ici, avec plein de mots :
Comment je peux faire un carousel d'images en popup - je m'explique.
J'ai une miniature, et au clic je veux que ça ouvre un modal ou whatever, par-dessus la fenêtre active, qui contient le reste des images du carousel. Avec les flèches de navigation itout

#HMTL #CSS #VanillaJS only !

petit schéma pour visualiser l'idée

Edit : j'ai la solution !!

Is there a suite of vanilla JS web components implemented as classes somewhere on https://npmjs.org? Like, what if I want a Dark Mode switch or a tags input field with auto-complete that I can import (via import maps, of course), is there a project or namespace where I could find those?

#vanillajs #webcomponents #npm #javascript

npm | Home

I'm becoming more convinced that we do not need React or any "virtual DOM". ES6 gives you plenty of tools to define reusable components as JavaScript classes that directly modifies the DOM. Plus you can even extend HTMLElements to create your own hybrid custom HTML elements. Then your components just become objects which wrap around DOM elements and provide methods for interacting with them in an abstract way.
https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements

#javascript #vanillajs

Using custom elements - Web APIs | MDN

One of the key features of web components is the ability to create custom elements: that is, HTML elements whose behavior is defined by the web developer, that extend the set of elements available in the browser.

MDN Web Docs