Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

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

93,573 görüntüleme • 1 yıl önce •via X (Twitter)

50 Yorum

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

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

Cheikh Fiteni profil fotoğrafı
Cheikh Fiteni1 yıl önce

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

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

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

Cheikh Fiteni profil fotoğrafı
Cheikh Fiteni1 yıl önce

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

zeno profil fotoğrafı
zeno1 yıl önce

made something with virtual tables too - infinitely scrollable bar chart

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

very nice! bonus brownie points for oppenheimer soundtrack

Archer profil fotoğrafı
Archer1 yıl önce

when resizable columns though 👀

Maze profil fotoğrafı
Maze1 yıl önce

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

rank profil fotoğrafı
rank1 yıl önce

table rendering with canvas ?

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

yes

rank profil fotoğrafı
rank1 yıl önce

interested in implementation, cool

Stephen Haney profil fotoğrafı
Stephen Haney1 yıl önce

aww yeah

Alexis Paques profil fotoğrafı
Alexis Paques1 yıl önce

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

Rahul Narsingipyta profil fotoğrafı
Rahul Narsingipyta1 yıl önce

well, I found a beautiful csv reader

Rajat Kulkarni profil fotoğrafı
Rajat Kulkarni1 yıl önce

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?

jian profil fotoğrafı
jian1 yıl önce

been there, done that

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

damn

jian profil fotoğrafı
jian1 yıl önce

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

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

new interview question just dropped...

Iza profil fotoğrafı
Iza1 yıl önce

give it to me

Iza profil fotoğrafı
Iza1 yıl önce

i want dah saource kode

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

github button at the bottom right

Iza profil fotoğrafı
Iza1 yıl önce

ur so mean to me

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

i’m sorry🙁

Iza profil fotoğrafı
Iza1 yıl önce

i dont want it anymore </3

Sam Texas profil fotoğrafı
Sam Texas1 yıl önce

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

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

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

scoliosis queen profil fotoğrafı
scoliosis queen1 yıl önce

now go down row by row

Maga - turbotable.ai ▴ profil fotoğrafı
Maga - turbotable.ai ▴1 yıl önce

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.

Lexis N profil fotoğrafı
Lexis N1 yıl önce

The next thing everyone wants is for it to be interactive

Alex profil fotoğrafı
Alex1 yıl önce

Ohhh you tried Jupiter notebooks way of rendering

Zibx profil fotoğrafı
Zibx1 yıl önce

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

Chau Giang profil fotoğrafı
Chau Giang1 yıl önce

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

Himanshu Kumar profil fotoğrafı
Himanshu Kumar1 yıl önce

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

Noah profil fotoğrafı
Noah1 yıl önce

Dayum

Hackerdude profil fotoğrafı
Hackerdude1 yıl önce

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

ian.tsx profil fotoğrafı
ian.tsx1 yıl önce

Check out @glideapps's grid!

Matthew Ary 🇺🇦 profil fotoğrafı
Matthew Ary 🇺🇦1 yıl önce

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

Alex profil fotoğrafı
Alex1 yıl önce

We use Glide Data Grid for this it’s great

Saïd Aitmbarek profil fotoğrafı
Saïd Aitmbarek1 yıl önce

based performance mate

Alex profil fotoğrafı
Alex1 yıl önce

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

Pao Ramen profil fotoğrafı
Pao Ramen1 yıl önce

is this open source?

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

of course! →

softyoda profil fotoğrafı
softyoda1 yıl önce

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

Shafil Alam profil fotoğrafı
Shafil Alam1 yıl önce

can we replace the whole ui with a canvas render

Jason Kwok profil fotoğrafı
Jason Kwok1 yıl önce

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

Péter Szarvas profil fotoğrafı
Péter Szarvas1 yıl önce

bro dont leak my uuid

f1shy-dev profil fotoğrafı
f1shy-dev1 yıl önce

it’s our uuid now.

giovanni profil fotoğrafı
giovanni1 yıl önce

cool

NiceDay profil fotoğrafı
NiceDay1 yıl önce

variable row height?

Benzer Videolar