-
Notifications
You must be signed in to change notification settings - Fork 345
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
Bevy Assets Cards Layout Update #231
Comments
With the help & input from @alterae, @BlackPhlox, @cart, @DJMcNab, @mockersf, @neo97x, @TheRawMeatball, @Weasy666, we iterated on this design for asset cards: https://jsfiddle.net/tqnr5a6v/ I think the big useful feature that is still missing is a download counter. Would love to hear thoughts on this. |
I'm a big fan! If we're going to use "license and label color coding", I think we should formalize the categories:
We might also want to extend the "blue" color to other "permissive" licenses, such as "standalone MIT" and "zlib". |
I think if we're making 'warning' judgements on licenses (which to be clear, I think we probably should), then I think we would probably do well to have a ⚠ icon next to them with a tooltip. That is, something clearer than orange highlighting, which is another kind of highlighting, and could therefore be misinterpreted as positive (and is potentially colourblind unfriendly). Edit: It's been pointed out that this message doesn't make it super explicit that I'm saying to remove the orange highlighting entirely My suggestion for a way to do the 'larger set' of highlighted blue ones was anything which would be accepted by bevy's I am slightly biased towards only highlighting MIT/Apache as blue makes sense, as a nudge towards it.; but I think doing it for any permissive license makes sense. |
I thought about the license thing a bit; I think from both a UX perspective and from a 'what opinion does bevy want to have', and I think just having blue solely for dual mit/apache makes the most sense.
|
edit: Alright, after further discussion I'm mostly fine with this. |
warning would not be on "good" vs "bad" but on "compatible with Bevy's license" vs "not" |
I think its important to call out that "Bevy license compatibility" probably isn't what most users need to optimize for when selecting dependencies. Its "ease of compliance when developing and releasing an app / plugin". Apache-2.0, MIT, zlib, and other licenses in that vein all have the potential to require attribution and additional license boilerplate, but give free rein over the code otherwise. So complying requires going through very similar processes and levels of investment. GPL fundamentally changes how users can interact with the dependency code, so it is "different". Proprietary code also obviously changes the rules in arbitrary ways. I think "free and easy to comply with" vs "not free / not easy to comply with" is more important to distinguish between than "exact bevy license match" vs "everything else". |
In that case we should just have 2 categories: "mit, zlib, Apache, unlicense, et c." and everything else should be warned against since either it's not free enough or we don't know - either way requires extra care. I was hoping we could make a stronger endorsement of the mit/apache dual license because it will gently push the asset making community to use those licenses. It would mean more assets would be able to share with/between each other - even long after contributors disappear and relicensing becomes impossible. It's a question of 'what is most helpful to the user selecting an asset' vs 'what do we want to endorse so that we grow the bevy ecosystem in a way that is healthy, flexible, sustainable'. |
Recently, there's been a lot of people asking about the ability to see the bevy compatible version in the asset card. I would suggest making a PR without the license on the card since everything else seems approved by the community. We can tackle the license part later, since having the bevy version is more important than what we currently have. Especially with train releases this information becomes really important. |
## Objective Update the asset cards to support more metadata. The main goal is to be able to show the supported bevy version. Everything else is secondary right now. ## Solution Support more metadata by using the styling from #231. I'm missing a few things, like different colors for bevy versions, but that's because I don't know how to do that with zola templates. I also ignored the author name and crate version for now because it doesn't apply to every crate and it can be iterated on in the future. ![image](https://user-images.githubusercontent.com/8348954/179620589-77b196df-c0ed-412f-ac78-8876e3430f65.png) Supported metadata: - `bevy_versions`: array of supported version - `licenses`: array of licenses The metadata currently doesn't exist, but the code is written in such a way to not break if it doesn't exist. I created #397 to generate the required metadata. A lot of the values were just found by me playing around with values and finding something that looked good. I'm absolutely opened to changing them. To be clear, a lot of what I have right now are just values that ended up working, but there's probably a better way to do most of those things. ## Remaining questions - ~~What to do with assets without images.~~ - Solved: I added a gradient to make it a bit less empty. - How to handle different color based on the value of the version tag by using zola templates ## Notes Until we add the required metadata, the cards will have a lot of empty space at the bottom, I already have a prototype ready to add the missing metadata, so that should be fixed pretty fast. Co-authored-by: Charles <IceSentry@users.noreply.github.com> Co-authored-by: Carter Anderson <mcanders1@gmail.com>
I think we can close this out, now that the new cards / metadata are merged. |
(WIP)
Part of #159's tracking issues :
Requires metadata specified in #230
A page view per asset prototype referenced in #159 from discord by giusdp
Design prototypes of the small cards in bevy-assets list view:
The text was updated successfully, but these errors were encountered: