Advertisement · 728 × 90

Posts by Julian Cataldo

Awesome 😄
I learned so much on TS parsing, minification constraints, magic string, etc. when forking ~2 years ago,… thanks!!

Of course, I keep my mind open to novel ideas and refinements for this handy toolkit ☺️

2 weeks ago 0 0 0 0

Next (unpublished) version uses the OXC parser (included in @rolldown.rs, so it's free) in place of the TypeScript one.

Lightning CSS too is a "free" peer dep of @vite.dev. It will possibly be embedded in Rolldown too, in the future

3 weeks ago 2 0 0 0
Preview
@literals/html-css-minifier - npmx Minify HTML template literal strings

Compress CSS/HTML literals.
Based on Elizabeth Mitchell's work (@asyncliz.com)

- Modernized deps (lightning css, html-minifier-next…)
- Now supports <${interpolatedTag}>
- Strip types in <script lang="ts"…
- Dropped CSS interpolation support
npmx.dev/package/@lit...
npmx.dev/package/@lit...

3 weeks ago 9 2 2 0
Preview
vite-plugin-standard-css-modules - npmx Use import attributes to get a CSSStyleSheet or a Lit CSSResult from your CSS files in Vite

Totally redesigned.
Uses oxc-parser, via Vite 8 rolldown/utils or standalone for Vite <= 7 / Rollup.

import styles from './my-element.css' with { type: 'css' };
npmx.dev/package/vite...

3 weeks ago 4 0 0 0
Preview
Why Node.js Needs a Virtual File System Node.js now has a virtual filesystem. Learn why VFS matters for testing, sandboxing, Single Executable Apps, and running generated code directly in me

We're announcing two things:

node:vfs, a Virtual File System landing in Node.js core (PR #61478, ~14,000 lines across 66 files)

@platformatic/vfs, a userland package you can use today on Node.js 22+

blog.platformatic.dev/why-nodejs-n...

1 month ago 57 15 1 3

Whenever I switch to other languages, I am quickly reminded how good we have in it JavaScript when it comes to the ecosystem. You can laugh at the syntax or runtime oddities, but you cannot ignore the breadth and quality of tools we have.

1 month ago 25 1 1 1
A graph from npmtrends.com of lit downloads over the last 5 years, showing growth from 0 to 5,000,000

A graph from npmtrends.com of lit downloads over the last 5 years, showing growth from 0 to 5,000,000

I just noticed that @lit.dev crossed the 5M downloads/week mark on npm! 🎉

That's more than 2x in the last year, and 6x in the last three years 🚀

1 month ago 45 10 1 2
Preview
GitHub - gracile-web/babel-plugin-jsx-to-literals: A JSX to tagged template literals Babel plugin, with a few helper components and a mapped JSX namespace. A JSX to tagged template literals Babel plugin, with a few helper components and a mapped JSX namespace. - gracile-web/babel-plugin-jsx-to-literals

Ever felt the need to author HTML literals in JS, but using JSX?
All that by burning a substantial amount of pesky, boilerplate-y helpers?

You can read my experience seeking this Graal and try the code if you like living on the edge 😏.
Just open sourced this experiment:
github.com/gracile-web/...

5 months ago 2 0 0 0
Advertisement
Gecko: Intent to prototype: CSS Module Scripts Gecko: Intent to prototype: CSS Module Scripts

Gecko: Intent to prototype: CSS Module Scripts

7 months ago 19 5 0 0
Post image

Or

"typescript.tsserver.useSyntaxServer": "never",
"editor.foldingStrategy": "auto",
"editor.linkedEditing": true

in a project settings.json, just to try.

8 months ago 0 0 0 0
Preview
Allow toggling `editor.experimental.preferTreeSitter` at runtime · Issue #227141 · microsoft/vscode Currently: If it's disabled and I enable it, nothing changes. I must reload the window. If it's enabled and I disable it, all colors are gone. Enabling it back again does nothing. I must reload the...

Maybe this? `editor.experimental.preferTreeSitter`
github.com/microsoft/vs...

8 months ago 0 0 1 0

Now importNode and cloneNode have the same performance in Chrome: issues.chromium.org/issues/37124...

I'm happy frameworks can get simpler, but also because Lit, which always uses importNode, probably just got faster too.

Filing issues for browser implementation bugs is a good thing for everyone!

8 months ago 33 7 2 2
Preview
GitHub - gracile-web/functional: Lightweight hooks and context primitives for signal-based render trees. Works anywhere a render function can be scoped, with Lit or similar templating libraries. Uses ... Lightweight hooks and context primitives for signal-based render trees. Works anywhere a render function can be scoped, with Lit or similar templating libraries. Uses the TC39 Signal Proposal for i...

Experimenting with an hybrid Hooks x Signals reactive API.

I poked around as a total profane, assisted by ChatGPT, to emulate Functional Components ergonomics in Lit-ish runtimes, because why not?

Lit (TC39 Proposal) Signals opened the breach, it's now possible to explore new exciting pathways :D

8 months ago 1 0 0 0
Preview
GitHub - JulianCataldo/remark-lint-frontmatter-schema: Validate your Markdown frontmatter data against a JSON schema — remark-lint rule plugin Validate your Markdown frontmatter data against a JSON schema — remark-lint rule plugin - JulianCataldo/remark-lint-frontmatter-schema

The ported project:
github.com/JulianCatald...

8 months ago 1 0 0 0
Post image Post image

proof of work

8 months ago 0 0 0 0
Preview
GitHub - JulianCataldo/eslint-plugin-markdown-frontmatter-schema: Validate YAML frontmatter in your Markdown files using JSON Schema — right in ESLint. Validate YAML frontmatter in your Markdown files using JSON Schema — right in ESLint. - JulianCataldo/eslint-plugin-markdown-frontmatter-schema

I'm about to release this port of my remark-lint rule plugin for validating YAML markdown frontmatter with JSON schemas.

The recent addition of Markdown to official ESLint parsers is a blast!
Was silky smooth to build, freeing time to add improvements to the old code
github.com/JulianCatald...

8 months ago 4 1 2 0
Advertisement
Preview
Announcing TypeScript 5.9 Beta - TypeScript Today we are excited to announce the availability of TypeScript 5.9 Beta. To get started using the beta, you can get it through npm with the following command: npm install -D typescript@beta Let’s tak...

TypeScript 5.9 Beta just went out! Try it in your project and let us know what you think:

devblogs.microsoft.com/typescript/a...

9 months ago 98 22 2 4
Video

Rizzed DX for Custom & Standard HTML Elements in @solidjs.com JSX:

👉 Always fresh MDN for Standard Tag/Attr/Event
👉 attr:/bool:/prop:/on:/on proxy
👉 Attr/Prop/Event (TS, JSDoc, Completion, Go-to-Def,…)
👉 Slots Completion
👉 Unknown Tag, Excess Attr (even w. hyphen)
👉 Custom/Standard Props for Style

9 months ago 4 0 0 0
Video

Seamless @vuejs.org/Custom Element integration🧩

💡 Hover Quick Info
👉 Tag
👉 Standard attr
👉 Attr
👉 Prop
👉 Custom CSS prop
👉 Std. event binding
👉 Event binding
👉 Method binding override
👉 Ref binding

🧩 Auto complete
👉 Custom CSS prop

🔍 Semantic Diagnostic
👉 Std. attr
👉 Attr
👉 Prop
👉 Custom CSS prop

9 months ago 2 0 0 0
Video

Custom HTML Elements + Svelte = 💕 Realtime DX

💡 Hover Quick Info

👉 Standard attr
👉 Attr
👉 Prop
👉 Standard event binding
👉 Event binding
👉 Reference binding

🧩 Auto Completion

👉 Tag
👉 Attr
👉 Custom CSS prop

🔍 Semantic Diagnostic

👉 Unknown attr
👉 Attr
👉 Prop

9 months ago 3 0 0 0
Video

🧑‍💻 Realtime analysis enabling these language features in @astro.build files:

💡 Hover Quick Info
👉 Custom element tag
👉 CE standard attribute
👉 CE attr
👉 CE custom CSS property

🔍 Semantic Diagnostic
👉 CE unknown attr
👉 CE attr
👉 CE custom CSS prop
👉 CE unknown custom CSS prop

More details to come…

9 months ago 4 0 0 0
Preview
Resilient Import Maps - Better Theme Development and Beyond (2025) - Shopify Import maps are great for both performance and developer experience, but their original limitations made them hard to use, especially at Shopify’s scale. We stepped up and pushed changes across the HT...

Import maps are a great way to minimize cache invalidation in your module tree. But up until recently, they had a ton of sharp edges. So we fixed them!!

shopify.engineering/resilient-im...

10 months ago 31 12 1 1
Preview
Announcing TypeScript Native Previews - TypeScript Previews of the native TypeScript port are now available on npm and for VS Code through the Visual Studio Marketplace!

Today we're announcing previews of the native port of TypeScript! These nightly previews will be available on npm and the VS Code marketplace!

npm install -D @​typescript/native-preview
npx tsgo --version

Read up more on our blog!

10 months ago 398 92 10 12

Node 24 (LTS) is out! With URLPattern built-in support.

That's one less dependency for HTTP server routers that use the URLPattern (like the Gracile one).

11 months ago 3 0 0 0
Post image

Here's a nice Lit tip 💡:

Let's say you want to hide some DOM but preserve component state. You can do this with the cache() directive:

Here when showView is toggled from true to false back to true, the DOM fragment for the expression is extracted, saved, and restored - preserving all the state.

11 months ago 32 5 2 0
Advertisement
Post image

been working on this proof of concept, it's a node based UI library (à-la React Flow), with Custom Elements and TC39 standard signals (Lit signals and signal-utils).

Comes with a built-in theme, based on WebAwesome/Shoelace, and a handful of demo nodes to play with ^^
github.com/JulianCatald...

1 year ago 6 2 1 0
Preview
JavaScript Temporal is coming | MDN Blog A new way to handle dates and times is being added to JavaScript. Let's take a look at Temporal, what problems it solves, the current state, and what you'll find in the new documentation about it on M...

JavaScript Temporal is coming 🎉

developer.mozilla.org/en-US/blog/j...

(by @bsmth.de)

1 year ago 61 9 0 0

You’re right. It’s all about choices! In my case, light mode in high luminosity environments, and dark when it’s not. Otherwise it’s blindening 😎
Thanks for the reading

1 year ago 2 0 0 0

Same thing with Dark Mode.
It was an accessibility must for a long time, then it became some sort of "cool trend", but somehow a dispensable bonus.

1 year ago 1 0 1 0

I forgot one thing that had bitten me in the past : Syntax highlighting, in VSCode, is more prone to break on huge, complicated files. Breaking them up can help pinpoint oddities.
Often I don't get what's triggering colours weirdness.

1 year ago 0 0 0 0