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

Proposal: Community supported component library #795

Closed
In-line opened this issue Dec 10, 2019 · 14 comments
Closed

Proposal: Community supported component library #795

In-line opened this issue Dec 10, 2019 · 14 comments

Comments

@In-line
Copy link

In-line commented Dec 10, 2019

Like React material-ui, reactstrap and so on.

@hgzimmerman
Copy link
Member

There has been some work before on this, most notably yewstrap, but they tend to stall after a while.

Recent changes to how Html works should make sure that there is an ergonomic payoff to creating these libraries. Before now, you wouldn't be saving a huge amount of effort by making these libraries due to how callbacks/Html worked.
These kinds of libraries are sensitive to breaking changes, and yew has been making plenty of those over the last few months. Ideally the next release will be the last big one before a 1.0.0, so now (basing off of master) might be a nice time to start.

@kellytk
Copy link
Contributor

kellytk commented Dec 10, 2019

Is it possible that components could be made interoperable between compatible Rust-based frameworks?
https://github.com/rustwasm/gloo may be a useful coordination nexus.

@hgzimmerman
Copy link
Member

Given how each framework/library has their own component implementation and VDom representation, I think it is hard or impossible to define some common standard for component definitions.

@anlumo
Copy link

anlumo commented Jan 4, 2020

https://github.com/Follpvosten/yew-mdc (work in progress)

@jstarry
Copy link
Member

jstarry commented Jan 6, 2020

I believe @trivigy is also working on a material design component library. Maybe the two efforts can be combined?

@jstarry jstarry changed the title Yew component library? Yew should have a community supported component library Jan 6, 2020
@samuelvanderwaal
Copy link
Contributor

Missing labels:

  • info needed

@jstarry
Copy link
Member

jstarry commented Jan 31, 2020

@trivigy @Follpvosten @gmorus y'all have any thoughts on how we could better coordinate efforts here? I think more visibility could help. Building a component library is quite a large endeavour.

@Follpvosten
Copy link

Follpvosten commented Jan 31, 2020

So, yew-mdc is very much a work in progress right now, and its development currently also very focused on our internal usage - I'm only implementing the functionality we need, when we need it, and formal releases don't really fit into this development model I think.

I'm also not sure how external contributors would fit into this, but I would definitely be interested in some coordinated efforts. Not entirely sure how to initiate tho; maybe we could start increasing visibility by providing some example projects and linking them from the yew repo's README? The currently linked project templates are severly outdated anyways.

@jstarry
Copy link
Member

jstarry commented Apr 27, 2020

@Follpvosten I just created a "Github Project" to help organize efforts here: https://github.com/yewstack/yew/projects/4

Here are some ideas:

  1. We could start off by sprucing up the Yew examples as you suggested to use yew-mdc. Then, when some needed components don't exist, contributors can create and fix issues on yew-mdc.

  2. It would be great to continue development with yewstrap. @gmorus what do you think about moving the project to the yew organization?

  3. Yew used to have a "Select" component in the yew::components module. I moved it to yew-components crate for now but I haven't published it yet. Maybe we don't need it? Or maybe it can be for unstyled components?

@jstarry jstarry changed the title Yew should have a community supported component library Proposal: Community supported component library Apr 27, 2020
@jstarry
Copy link
Member

jstarry commented May 3, 2020

Should also note that https://github.com/yewstack/yewtify is in development now

@ghost
Copy link

ghost commented May 9, 2020

I don’t think this should be attempted until functional components and hooks land. Throwing everything into stateful components and sharing functionality in a non-hooks way will become obsolete for a lot of components in the library.

What should be focused on right now are core things like

  • what components are we going to support. See antd for examples: https://ant.design/components/button/
    • antd is not very composable and has subpar accessibility - don’t use it as a reference for implementation but rather the ideas of components themseves
  • what components share functionality
    • I.e code for floating dialog like elements. Things like pointing arrows, auto placing elements in space, grid/flex system etc. would be nice to make a graph of dependencies so we can scope work easier and de-duplicate functionality. This’ll allow us to maximize hooks usage and allow people to extend components easier.
  • how are we dealing with accessibility. I highly recommend taking a look at https://reakit.io/
    • also very good composability
  • styling customizability. As in can I just change a few variables and get the theme the way I want it etc.
    • I know of some good design systems. Let me know and I’ll get them for you since I’m currently on my phone.

@jstarry
Copy link
Member

jstarry commented May 10, 2020

@thinkpadder1 I'm not necessarily sold that this depends on functional components but I do very much agree that we should be focusing on points you've outlined.

I think we really need someone to help scope functionality and then apply that to one of the nascent component libraries we have started.

I know of some good design systems. Let me know and I’ll get them for you since I’m currently on my phone.

That'd be great if you shared those 👍

@ghost
Copy link

ghost commented May 17, 2020

@thinkpadder1 I'm not necessarily sold that this depends on functional components but I do very much agree that we should be focusing on points you've outlined.

Sorry, I meant the Hooks API.

That'd be great if you shared those 👍

https://baseweb.design/
Specifically, look at their override system: https://baseweb.design/guides/understanding-overrides/

@jstarry
Copy link
Member

jstarry commented Sep 20, 2020

I'm going to wind down this discussion. We had some good discussion in this issue on how to better promote community libraries which should help 👍

@jstarry jstarry closed this as completed Sep 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants