Show HN: TypeScript/React/Vue Window Layout Manager (Tabs, Floating, Popouts)

github.com

326 points by mathuo 2 days ago


samradelie - 2 days ago

Wow. Stellar work. The TS looks really proper on first glance. I think you're right on zeitgeist -- we're going to need a lot more fundamental tools like this to build AI apps.

Technically speaking, I've long wondered about mount/unmount of components as panels are dragged about and their visibility changed. Sometimes it's more costly to mount/unmount than to display:none.

Second, you have basically a declarative structure for these panels, are there plans to expose a Vite plugin for example that could export saved TS layouts, where functions (ie: TS imports) map to the panel contents? (trying to think outside of JSX and more vanilla TS)

Fantastic work!

somytomy - a day ago

I literally have been working on something like this for a spare-time project, and am so glad to find this. Now I can throw out my code and move to the next stage of the project.

diob - 2 days ago

How does this compare to golden layout? Inspired by it?

I really enjoyed that project back in the day, but unfortunately support completely stopped (it had some folks take over, but I didn't see a real feasible upgrade path despite their passionate work on updating it).

This looks great! I'd be interested in giving it a try.

karol - 2 days ago

Nice project. I would appreciate putting some common content in the demo, such as videos, dropdowns, large amount of text and large size text to show how they can be handled.

Also is there a version without window chrome, just panes?

bsnnkv - a day ago

I maintain a tiling wm written in Rust, and I just cannot imagine having the patience to do this kind of work in JS/TS. My respect to mathuo! One of the coolest things I've seen on HN recently.

alluro2 - a day ago

Dockview is phenomenal, and congrats to @mathuo on a great project - I've recently thoroughly tested 6-7 available libraries in this category, and dockview is certainly in the top. GH is also very active and well maintained.

The only reason I in the end went with FlexLayout (https://github.com/caplin/FlexLayout) for a recent project was lack of support for predefined/restricted dimensions, - which was since added in a very good way - and that I really liked how FL handles side panels, with vertical tabs, and their predefined behavior.

Looking very much forward to using Dockview in one of the next projects.

mlajtos - a day ago

Time to rebuild Mosaic. https://github.com/mlajtos/mosaic

mattlondon - a day ago

Brilliant.

Is anyone aware of any sort of similar sort of zero-dep vanilla libraries for common desktop controls beyond what HTML offers? E.g. menus etc?

dahdum - a day ago

Kept getting this error when navigating: This page crashed Try again Right side of assignment cannot be destructured

The video looks awesome, but I couldn’t get the demo to work using an iPad, so I assume mobile isn’t supported fully? I’d use it for my personal dashboard and for organizing llama.cpp chats if I could.

qwertox - 19 hours ago

Absolutely incredible! Everything is perfect. All dragging, resizing, moving, everything works without errors.

Even nested panels...

rk06 - 2 days ago

it is great to say support for vanilla js & vue in addition to react, for other js framework to consume

MortyWaves - 16 hours ago

Does this support disabling the ability to have floating popout windows?

low_tech_punk - a day ago

Looks like a very high quality library, great work! I wonder if it will eventually support auto truncating tab titles when the tabs fill up the horizontal space, just like how chrome display large number of tabs.

bossyTeacher - 2 days ago

This is really impressive. Can I also give you major props for the following:

- Zero dependencies: wow, this is really good for a js package.

- Documentation: nice, clear and with examples

- Transparent builds: this should be a standard

I wish more js packages were like yours

pdyc - a day ago

wow, very well thought out layout manager. I want to start a project just to use it :-)

Is there a way to add gaps between the elements so it looks like a dashboard rather than panel?

garbagepatch - 2 days ago

Does this use the new moveBefore API to move DOM elements while preserving their state? Or is it going to recreate the elements eitherway due to React/Vue?

mlajtos - a day ago

Safari can't handle the demo. https://dockview.dev/demo

Jonovono - a day ago

Looks awesome! I want something like this for managing Electron base windows & Web contents views :)

peppertree - a day ago

Demo doesn't load in macOS Safari.

mathuo - a day ago

small issue on website preventing demo working on Safari browsers is now fixed.

https://dockview.dev/demo/

cyanydeez - 2 days ago

Neat. Any mobile touch plans?

therein - a day ago

Really nice. SolidJS support would be nice too. I lately have no preference between React and Solid but I have some projects that could use this that happens to be in SolidJS.

Onavo - a day ago

Do you plan to add touch device support? It doesn't work well on tablets and phones.

keb_ - a day ago

SEXY!

T3RMINATED - 16 hours ago

[dead]

urronglol - a day ago

[dead]

todotask - 19 hours ago

I have a look at SonarSource website, their homepage looks awful.