Tootfinder

Opt-in global Mastodon full text search. Join the index!

@zachleat@zachleat.com
2025-11-07 19:24:16

@… I somehow missed this crucial piece of web components lore but I also found it marcysutton.github.io/accessib

@johl@mastodon.xyz
2025-12-05 10:27:49

🎅 🌲 💫
Weihnachtlich erstrahlen Gassen
Auf zum Einkauf hasten Massen
Drinnen leuchten Kerzen hell
Nur Systemadministratoren
Lauschen bang dem Netz-Rumoren
Horch! Es naht #React2Shell!

@zachleat@zachleat.com
2025-11-05 17:23:04

@… JavaScript Frameworks return to dirt, Web Components return to dirt simple

@aral@mastodon.ar.al
2025-12-11 14:46:51

I love how simple Kitten’s Streaming HTML workflow makes building features like this, especially when using class-based Kitten pages and components :)
#Kitten

Screen capture of the Team schedule interface from the Gaza Verified admin site. It is a table of names and days (Aral, Casey, Joy, Aseel, Fabio And Mondays … Fridays) with checkboxes at each name/day pair. It starts out greyed out. The Unlock to edit button is clicked and the interface comes alive (opacity returns to full and the checkboxes become green and clickable). The person toggles a few checkboxes and clicks the Lock button to lock the interface again and then repeats the process to und…
Screenshot of code (the lines editable=false and the button tag code are highlighted):

class TeamSchedule extends kitten.Component {
  editable = false

  html () {
    return kitten.html`
      <section>
        <h3>Team schedule</h3>
        <button
          name='toggle'
          connect
        >${this.editable ? 'Lock' : 'Unlock to edit'}</button>
        <table id='team-schedule' ${this.editable ? '' : 'inert'}>
          <caption id='caption'>
            <markdown>
              Show…
Screenshot of code, continuation of the same class, starting with the end of the html() method from the previous screenshot and going till the end of the class (the table[inert] style and the onToggle() method are highlighted:

          <style>
            table[inert] {
              opacity: 0.9;
              filter: grayscale(100%);
            }
          </style>
        </table>
      </section>
    `
  }

  onToggle () {
    this.editable = !this.editable
    console.log(this.editable)…
Screenshot of code (the <${TeamSchedule.connectedTo(this)} /> line is highlighted):

export default class InterviewsPage extends kitten.Page {
  html () {
    const today = db.calendar.today
    const futureDays = db.calendar.futureDays
    const pastDays = db.calendar.pastDays

    return kitten.html`
      <${MainLayout} page='/admin/interviews/'>
        <h2>Interviews</h2>

        <${SignUpsSwitch.connectedTo(this)} />
        <${InternalNav} />
        <${TeamSchedule.connectedTo(this)} /…
@zachleat@zachleat.com
2025-11-25 14:14:32

How to hallucinate using Web Components zachleat.com/web/hallucinate/

@zachleat@zachleat.com
2025-11-20 15:26:28

this is using a <squirm-inal> Web Component from 2021: github.com/zachleat/squirminal/
2021-vintage Web Components are React 17-era. No big refactors or rewrites required.