Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

today's experiment: silky smooth fixed-height virtual table, rendered with canvas tested with 10^50+ rows of dynamic data

93,573 Aufrufe • vor 1 Jahr •via X (Twitter)

50 Kommentare

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

try it → this was inspired by @Antfroze's sql studio (beautiful), @itseieio's everyuuid (fun!), and ideas from @4rcherhume! the bit i like the most is that the scrollbars are real DOM scrollbars, not fake ones :d

Profilbild von Cheikh Fiteni
Cheikh Fitenivor 1 Jahr

very cool. if you mapped each uuid to a oklch and then did a gradual gradient with looping for set (perception is like ~10^6 even ignoring screen gamuts) I think the effect feels even more insane also would your virtualization break if we toggle scroll speed with hotkeys. hmm

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

> would your virtualization break i don't think so, that's a good idea let me try this oklch idea

Profilbild von Cheikh Fiteni
Cheikh Fitenivor 1 Jahr

Yeah if you don’t get it done by tomorrow would be down to PR this weekend just busy tn

Profilbild von zeno
zenovor 1 Jahr

made something with virtual tables too - infinitely scrollable bar chart

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

very nice! bonus brownie points for oppenheimer soundtrack

Profilbild von Archer
Archervor 1 Jahr

when resizable columns though 👀

Profilbild von Maze
Mazevor 1 Jahr

this is honestly amazing, better than v0 could've ever done

Profilbild von rank
rankvor 1 Jahr

table rendering with canvas ?

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

yes

Profilbild von rank
rankvor 1 Jahr

interested in implementation, cool

Profilbild von Stephen Haney
Stephen Haneyvor 1 Jahr

aww yeah

Profilbild von Alexis Paques
Alexis Paquesvor 1 Jahr

So JS libraries are so bloated nowadays we are now going back to just drawing our interfaces in a canvas. Amazing demo!

Profilbild von Rahul Narsingipyta
Rahul Narsingipytavor 1 Jahr

well, I found a beautiful csv reader

Profilbild von Rajat Kulkarni
Rajat Kulkarnivor 1 Jahr

Maybe I'm dumb, but why does a single scroll tick make it go to some random number that is 100s of millions rows ahead? Or is it not supposed to show me 40-70 on scroll?

Profilbild von jian
jianvor 1 Jahr

been there, done that

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

damn

Profilbild von jian
jianvor 1 Jahr

hahaha did not mean anything else! seriously every front end engineers could build this as a test of skills

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

new interview question just dropped...

Profilbild von Iza
Izavor 1 Jahr

give it to me

Profilbild von Iza
Izavor 1 Jahr

i want dah saource kode

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

github button at the bottom right

Profilbild von Iza
Izavor 1 Jahr

ur so mean to me

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

i’m sorry🙁

Profilbild von Iza
Izavor 1 Jahr

i dont want it anymore </3

Profilbild von Sam Texas
Sam Texasvor 1 Jahr

very cool. kudos! how does this work for accessibility? Or do screen-readers just default back to OCR?

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

yeah hm right now there isn't much consideration for accessibility if one were to make it like a proper spreadsheet (e.g editing rows), you might have to put a dom element of some sort behind every visible cell in the virtualisation frame, at which point you could have the text for screenreaders copied into the dom in parallel, maybe throttled updates etc to avoid slowing the scroll/jumping down

Profilbild von scoliosis queen
scoliosis queenvor 1 Jahr

now go down row by row

Profilbild von Maga - turbotable.ai ▴
Maga - turbotable.ai ▴vor 1 Jahr

Cool! I have heard that canvas rendered tables are really performant. But the features you need to implement to be useful for real-world scenarios are enormous. I have tried to optimize @tan_stack Table with complex cells using memo tricks and @tan_stack Virtual. It was nice.

Profilbild von Lexis N
Lexis Nvor 1 Jahr

The next thing everyone wants is for it to be interactive

Profilbild von Alex
Alexvor 1 Jahr

Ohhh you tried Jupiter notebooks way of rendering

Profilbild von Zibx
Zibxvor 1 Jahr

Next step would be rows with dynamic height. Solved similar task in 2012 with pure dom. It also supported filter, sorting, and grouping. I could write some details related to implementation of any of that features. But it was not canvas and we tested it on 500k rows in ie6

Profilbild von Chau Giang
Chau Giangvor 1 Jahr

Amazing! Just curious, do other spreadsheet apps like Google Sheets or Microsoft Excel use something like this?

Profilbild von Himanshu Kumar
Himanshu Kumarvor 1 Jahr

Impressive scale. I wonder about the practical limits of canvas rendering for such large datasets though. Performance must be a challenge.

Profilbild von Noah
Noahvor 1 Jahr

Dayum

Profilbild von Hackerdude
Hackerdudevor 1 Jahr

I was wondering when someone would make a smooth version, this is sick

Profilbild von ian.tsx
ian.tsxvor 1 Jahr

Check out @glideapps's grid!

Profilbild von Matthew Ary 🇺🇦
Matthew Ary 🇺🇦vor 1 Jahr

It gets very intense when you don't get fixed width.

Profilbild von Alex
Alexvor 1 Jahr

We use Glide Data Grid for this it’s great

Profilbild von Saïd Aitmbarek
Saïd Aitmbarekvor 1 Jahr

based performance mate

Profilbild von Alex
Alexvor 1 Jahr

You need to stop Sir! if everything renders in Canvas,my ancient html skills will become absolete😢

Profilbild von Pao Ramen
Pao Ramenvor 1 Jahr

is this open source?

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

of course! →

Profilbild von softyoda
softyodavor 1 Jahr

Wow, what O(1) lookup in 1 yottabyte feels like.

Profilbild von Shafil Alam
Shafil Alamvor 1 Jahr

can we replace the whole ui with a canvas render

Profilbild von Jason Kwok
Jason Kwokvor 1 Jahr

is variable height solved? been trying to find a good library but i've always ended up just needing to implement it myself

Profilbild von Péter Szarvas
Péter Szarvasvor 1 Jahr

bro dont leak my uuid

Profilbild von f1shy-dev
f1shy-devvor 1 Jahr

it’s our uuid now.

Profilbild von giovanni
giovannivor 1 Jahr

cool

Profilbild von NiceDay
NiceDayvor 1 Jahr

variable row height?

Ähnliche Videos