Загрузка видео...

Не удалось загрузить видео

На главную

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

93,573 просмотров • 1 год назад •via X (Twitter)

Комментарии: 50

Фото профиля f1shy-dev
f1shy-dev1 год назад

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
Cheikh Fiteni1 год назад

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
f1shy-dev1 год назад

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

Фото профиля Cheikh Fiteni
Cheikh Fiteni1 год назад

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

Фото профиля zeno
zeno1 год назад

made something with virtual tables too - infinitely scrollable bar chart

Фото профиля f1shy-dev
f1shy-dev1 год назад

very nice! bonus brownie points for oppenheimer soundtrack

Фото профиля Archer
Archer1 год назад

when resizable columns though 👀

Фото профиля Maze
Maze1 год назад

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

Фото профиля rank
rank1 год назад

table rendering with canvas ?

Фото профиля f1shy-dev
f1shy-dev1 год назад

yes

Фото профиля rank
rank1 год назад

interested in implementation, cool

Фото профиля Stephen Haney
Stephen Haney1 год назад

aww yeah

Фото профиля Alexis Paques
Alexis Paques1 год назад

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

Фото профиля Rahul Narsingipyta
Rahul Narsingipyta1 год назад

well, I found a beautiful csv reader

Фото профиля Rajat Kulkarni
Rajat Kulkarni1 год назад

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
jian1 год назад

been there, done that

Фото профиля f1shy-dev
f1shy-dev1 год назад

damn

Фото профиля jian
jian1 год назад

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

Фото профиля f1shy-dev
f1shy-dev1 год назад

new interview question just dropped...

Фото профиля Iza
Iza1 год назад

give it to me

Фото профиля Iza
Iza1 год назад

i want dah saource kode

Фото профиля f1shy-dev
f1shy-dev1 год назад

github button at the bottom right

Фото профиля Iza
Iza1 год назад

ur so mean to me

Фото профиля f1shy-dev
f1shy-dev1 год назад

i’m sorry🙁

Фото профиля Iza
Iza1 год назад

i dont want it anymore </3

Фото профиля Sam Texas
Sam Texas1 год назад

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

Фото профиля f1shy-dev
f1shy-dev1 год назад

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
scoliosis queen1 год назад

now go down row by row

Фото профиля Maga - turbotable.ai ▴
Maga - turbotable.ai ▴1 год назад

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
Lexis N1 год назад

The next thing everyone wants is for it to be interactive

Фото профиля Alex
Alex1 год назад

Ohhh you tried Jupiter notebooks way of rendering

Фото профиля Zibx
Zibx1 год назад

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
Chau Giang1 год назад

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

Фото профиля Himanshu Kumar
Himanshu Kumar1 год назад

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

Фото профиля Noah
Noah1 год назад

Dayum

Фото профиля Hackerdude
Hackerdude1 год назад

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

Фото профиля ian.tsx
ian.tsx1 год назад

Check out @glideapps's grid!

Фото профиля Matthew Ary 🇺🇦
Matthew Ary 🇺🇦1 год назад

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

Фото профиля Alex
Alex1 год назад

We use Glide Data Grid for this it’s great

Фото профиля Saïd Aitmbarek
Saïd Aitmbarek1 год назад

based performance mate

Фото профиля Alex
Alex1 год назад

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

Фото профиля Pao Ramen
Pao Ramen1 год назад

is this open source?

Фото профиля f1shy-dev
f1shy-dev1 год назад

of course! →

Фото профиля softyoda
softyoda1 год назад

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

Фото профиля Shafil Alam
Shafil Alam1 год назад

can we replace the whole ui with a canvas render

Фото профиля Jason Kwok
Jason Kwok1 год назад

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
Péter Szarvas1 год назад

bro dont leak my uuid

Фото профиля f1shy-dev
f1shy-dev1 год назад

it’s our uuid now.

Фото профиля giovanni
giovanni1 год назад

cool

Фото профиля NiceDay
NiceDay1 год назад

variable row height?

Похожие видео