Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions on future versions #470

Open
thednp opened this issue May 20, 2021 · 11 comments
Open

Questions on future versions #470

thednp opened this issue May 20, 2021 · 11 comments
Labels

Comments

@thednp
Copy link

thednp commented May 20, 2021

Man I love this. I can't believe I've forgot/ignored it. So delightful and organized code.

I have some questions:

  • Is it possible to create a MuuriLite version to exclude Packer and all about dragging features? Layout + Filter + Sort should do for hopefully less than half the size. Also the other part strictly for drag'n'drop layout would work fine separately IMO. My point is that in most cases the needs to have both worlds into a single file is overkill for 80kb of script.
  • Do you guys have plans to do an ESLint valid ES6+ code base update in the future? I've been working in the last few days on exactly that and I'm a bit confused, surely need to invest more time into it. I'm getting a vibe the two [layout+filter+sort|drag] are interdependent, which is a bit counter productive IMO.
  • Would you guys consider creating a simple API Interface to enable easier initialization? In my mind there is a DATA API enabled interface class MuuriInterface extends Grid() to allow new MuuriInterface(element, options), perhaps a web component like type of script to remove the need for files like this.

Thanks for any reply :)

@niklasramo
Copy link
Collaborator

Man I love this. I can't believe I've forgot/ignored it. So delightful and organized code.

Thank you so much 😊 A lot of time, effort and love has been poured into this lib so comments like these make it worth the while.

Is it possible to create a MuuriLite version to exclude Packer and all about dragging features?

I don't think we'll be creating a "lite" version, but it definitely makes sense to make the core of Muuri only care about the main thing, which is layout, and have all the other features be plugins/extensions. This is high on the priority list. At the moment I'm actually working on extracting all the drag n' drop functionality in Muuri into a completely separate library, which should be extremely helpful in any project which needs drag n' drop functionality.

Do you guys have plans to do an ESLint valid ES6+ code base update in the future?

The next version of Muuri is written fully in TypeScript, you can see it in the dev branch. It's actually in pretty good shape already.

Would you guys consider creating a simple API Interface to enable easier initialization?

Making Muuri as easy to use as possible is always high on the priority list, but I'm not sure what you mean specifically. I think a Muuri web component could be its own library and repo perhaps.

@Tragio
Copy link
Contributor

Tragio commented Jun 11, 2022

@niklasramo thank you for your awesome job!! I saw that you updated the dev branch a few weeks ago. I would love to know if you have any ETA for it. 😃

@niklasramo
Copy link
Collaborator

niklasramo commented Jun 13, 2022

@Tragio Thanks 😊 There's no ETA yet, unfortunately. I'm dedicating around a day or two per month currently on the development and focusing on making Muuri smaller, more modular and tree-shakeable.

Most of that progress is not visible in ths repo yet as I'm building the new drag and drop system in it's own repo (as it's going to be an isolated library for generic use too), which is currently private.

@Tragio
Copy link
Contributor

Tragio commented Aug 23, 2022

@niklasramo really thank you for your awesome work 🙏 is there anything we can do to contribute?

@niklasramo
Copy link
Collaborator

niklasramo commented Aug 30, 2022

@Tragio Muuri definitely needs and deserves more core contributors than me, but at the same time it's hard for me to think how to best onboard new core contributors. Muuri's codebase is rather large and it takes some time to grasp, and at the same time it's in flux as I'm trying to modularize with the best of my capabilities.

I don't know how people feel about the docs at the moment, which are in the repo's README. I suppose it would serve Muuri well if at some point we built proper docs site with lots of examples. That's something I'd love love to have some help with as I'm currently deep in the code and will be here for some time.

As for the dev branch progress I'm past midway in the modularization task:

  • We now have Eventti, which replaces Muuri's internal Emitter.
  • We also have Tikki, which replaces Muuri's internal Ticker.
  • Fresh from the oven (and still a bit rough on the edges) there is DragDoll, which replaces Muuri's internal Dragger, AutoScroller and partly also ItemDrag. DragDoll brings extra drag and drop superpowers to Muuri and allows for stuff that are nigh impossible currently, e.g. dragging items via keyboard (or any other "sensor" or a combination of "sensors") and controlling which other elements move along when a grid item is dragged (Drag and sort multiple items as a group #418).

There's still a lot of work ahead though:

  • I might move Muuri's Packer into it's own repo or at least make it an external component to be loaded only when needed.
  • The AutoScroll class within DragDoll should probably be it's own library. I might extract it out of DragDoll.
  • Tikki and Eventti are already used by Muuri in the dev branch, but refactoring for including DragDoll still needs to be done (which is going to be a huge task).
  • Some kind of plugin/extension system for loading only the features you need.

All in all, a lot of stuff has been done and a lot of stuff still ahead 👍

@Tragio
Copy link
Contributor

Tragio commented Aug 31, 2022

@niklasramo you're fantastic!! Thank you for taking the time to work on it and for such a reply. There is nothing close to Muuri!

I was thinking of creating a PR for the docs website based on Docus, would it be ok for you? 😄

@niklasramo
Copy link
Collaborator

@Tragio PR for Docs sounds awesome and is more than welcome! Thank you 🙏

muuri.dev is currently hosted on github via gh-pages branch and we could host the docs there also if needed. Another viable option is that we/you host the docs site on Vercel (or some other alternative) and point docs.muuri.dev to there. Let me know if there's anything I can help you with to get you started 🙂

As for the repo, I can make you a member of Muuri organisation and you can create a repo for the docs there, or we can use the gh-pages branch, or you can just create the repo wherever you deem best.

@Tragio
Copy link
Contributor

Tragio commented Sep 1, 2022

@niklasramo thank you for the collaboration!! I had a little time after dinner and I converted it all to VitePress (which is really simple for someone to collaborate with). I'll clean everything and as soon as I have it all nicely, I'll create a PR, and then we can discuss the best approach to publish it 😄

It already feels much better to look to the docs like this 🤤

CleanShot 2022-09-01 at 22 49 16

PS: Maybe you can already sign up for https://docsearch.algolia.com/ so we can also configure it.

@niklasramo
Copy link
Collaborator

niklasramo commented Sep 2, 2022

@Tragio Looks awesome 🤩 and indeed 10 x better than the current version. I especially love the fact that there is a version switch in the top right corner! If we can maintain different docs for different versions (starting from the current version) somewhat easily that would be very useful for Muuri users.

I checked out the Docsearch application process at https://docsearch.algolia.com/docs/who-can-apply/ and it seems they expect the docs site to be live before one applies? I wonder if they'll reject Muuri's application ir the docs site is not yet live, should I still try? I was thinking that we could use docs.muuri.dev for the docs website.

P.S. I created a separate issue for docs -> #525, let's continue conversation there :)

@clurect
Copy link

clurect commented Feb 28, 2023

@niklasramo is DragDoll integrated into Muuri yet? I was really into Muuri until I hit a spot where I wanted to drag multiple grid cards. I might be able to help out, but it might take me time to understand it all!

This is great stuff you've made!

@niklasramo
Copy link
Collaborator

@clurect not yet, but hopefully soon :) DragDoll's API is in a pretty good state, but there are a bunch of tests and docs to write. If you're interested in helping out I can ping you when DragDoll is ready to be used in Muuri and I can help you make sense of the codebase if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

4 participants