最近 #HTMLFirst というワードが自分のタイムラインに流れているんだけど、どういう概念か気になっている。
雰囲気で「 #React のデファクトスタンダード化からの揺り戻し的なことかな?」というイメージで英文を眺めている
This was the top performing post on @TheNewStack last week, so it seems there is a tremendous amount of interest in a post-React future among web developers. Maybe my Gmail analogy wasn’t far off after all ;) https://thenewstack.io/from-react-to-html-first-microsoft-edge-debuts-webui-2-0/ #WebDevelopment #javascript #htmlfirst https://mastodon.social/@ricmac/112531029962000384
From React to HTML-First: Microsoft Edge Debuts 'WebUI 2.0'

Gmail changed the web platform in 2004 — are we about to see a similar shift thanks to Microsoft Edge? And this time, with less JavaScript.

The New Stack

Released v3 of Tram-Deco, the declarative custom element library that uses #DeclarativeShadowDOM (which became available in all major browsers this week)!

https://github.com/Tram-One/tram-deco

I also added an import method, which allows you to import definitions from other HTML files (relies on `Document.parseHTMLUnsafe`, so millage may vary).

Planning to present this to Web Components Community Group, so I would love any feedback! ❤️

#WebComponents #WebDev #HTML #HTMLFirst #ShadowDOM

GitHub - Tram-One/tram-deco: 🏢 Declarative Custom Elements using native Web Component APIs and specs.

🏢 Declarative Custom Elements using native Web Component APIs and specs. - Tram-One/tram-deco

GitHub

Put together a super lightweight and standard-API-focused implementation of Declarative Custom Elements. 👏

https://github.com/Tram-One/tram-deco

Exclusively implements all the standard Web Component APIs in an HTML-First approach that should be familiar and easy to pick up 😁 - no special syntax or template language here.

Check the repo for live codepens, and would love to hear what people think! ❤️

#WebComponents #WebDev #HTMLFirst #DeclarativeShadowDOM #ShadowDOM #HTML

GitHub - Tram-One/tram-deco: 🏢 Declarative Custom Elements using native Web Component APIs and specs.

🏢 Declarative Custom Elements using native Web Component APIs and specs. - Tram-One/tram-deco

GitHub

Working on a way to build Declarative Custom Elements using the newly released Declarative Shadow DOM.

Turned out to only 20 lines of Javascript! I'm surprised how neatly everything kinda works.

https://codepen.io/JRJurman/pen/dyrJWep

There are some gotchas and it certainly could be more elegant, but I think it has the building blocks for building Web Components from an HTML First approach.

#WebComponents #WebDev #HTMLFirst #DeclarativeShadowDOM #ShadowDOM #HTML

Counter - DCE w/ DSD (source code)

...

I just love it when my browser WORKS. When the website doesn't break my "open in new tab" or my "back" or my "history." And I love when it's a surprize. When I click something that I was sure was going to break stuff, and it worked without breaking! No more stupid JS-only on-click handling with a useless link, etc. #webdev #htmlFirst

Why is this “HTML First” not helpful, and what would true HTML First look like?

https://meiert.com/en/blog/true-html-first/

#html #htmlfirst

“HTML First” Is Not HTML First · Jens Oliver Meiert

On what is and what isn’t “HTML First.” (It’s not just a hunch: It should start with HTML.)

There's some interesting thinking going on here: https://html-first.com/

My current website project is a static site generator, so while the output is largely aligned with HTML First principles, the input still goes through a build pipeline (albeit one with very minimal dependencies).

Then I found https://enhance.dev and that is a *very* interesting approach to this.

#HTML #HTMLFirst #NoBuildJS #EnhanceDev #StaticSites #WebDev

HTML First

Build more maintainable software, faster

#webdev #htmlfirst
TIL why `esm.run/[pkg]/` redirect to `cdn.jsdelivr.net/npm/[pkg]/+esm`

`/+esm` suffix avoid breaking lazy fetch an asset, especially when using wasm module.
example
```javascript
const their = await WebAssembly.instantiateStreaming(
fetch(new URL("their.wasm", import.meta.url)))
```
without `/+esm` suffix, it will point out to `cdn.jsdelivr.net/npm/their.wasm` which is not exist instead of `cdn.jsdelivr.net/npm/[pkg]/their.wasm`

#WebDev #htmlfirst
Building webapp without hot reload is quite something. And I only use basic https server. It also target web api that only works on mobile Android.

My weapons:
- Cloudflare Pages
- alpine-ajax (not htmx) & alpinejs
- eruda (devtool) so I can inspect it on mobile phone
- qrencode (cli)
- httplz (https server)

The good side is I don't need to worry about updating the codebase to fit with the latest toolchains in case I revisit it after long inactivity.