OrchardCMS / OrchardCore

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
https://orchardcore.net
BSD 3-Clause "New" or "Revised" License
7.36k stars 2.37k forks source link

Fluent design #2037

Closed agriffard closed 5 years ago

agriffard commented 6 years ago

VSTS online site is adopting a Fluent design: https://blogs.msdn.microsoft.com/devops/2018/06/19/new-navigation/

We should try to list the principles we would like to see in the admin:

@Skrypt is already trying to make a few changes to the admin menu.

After a quick search for Bootstrap Fluent design, I found this project: https://github.com/nespero/fluent-kit

/cc @matiasmolleja

Skrypt commented 6 years ago

The first thing I'm noticing while looking at VSTS CSS is that they extensively uses Display: Flex for most layout elements. VSTS doesn't seem to be using Bootstrap 4. I'm looking at what we did with the current CSS work in Orchard Core and we are still using custom CSS code for layout elements where we should probably use something like this : https://getbootstrap.com/docs/4.0/utilities/flex/

I'm currently mostly evaluating what's missing in Orchard Core to reproduce this kind of design and I think everything is already in Bootstrap 4, we are just not using it properly as it should. We are still using margins and paddings on global layout elements like the main content zone while it should be all using a Flex grid with things like justify-content-between. Also by using Flex for those main elements it would be way easier afterward for reversing all elements with flex-row-reverse for RTL. Same goes for the admin menu elements (icon, name, expander) that should all be Flex elements and we could reverse them for RTL (expander, name, icon).

Basically we need to implement Flex grids everywhere.

matiasmolleja commented 6 years ago

Hi !

Flexbox

I agree with using Flexbox on TheAdmin. It makes it easy to layout things instead of using css tricks to get what you want. I used in the media module for things like easily centering and sizing thumbs on grid view. Indeed, for the few divs we are using on TheAdmin maybe we could avoid the Bootstrap helper classes and simply apply the necessary css rules on our scss files.

Fluent

After looking at Nespero example sites and thinking a little, in my opinion we should use it Fluent as a inspiration only, as the VSTS team did. I mean we should not try to adhere strictly to it. Because:

Consistency

This is difficult to get on a system as modular as Orchard. But maybe we can use theAdmin as a tool to encourage consistency on module developers. Ideas for that:

These are my ideas about the admin in general. A lot of words. And I did not even entered in any of the points that you listed @agriffard :( Maybe we we should treat them in separate issues? To avoid a too long thread?

agriffard commented 6 years ago

Thank you for this first answer and your explanations @matiasmolleja .

To be clear, I didn't mean to use Fluent Kit, it was just to illustrate the components, the concepts and the kind of displays that could inspire us.

matiasmolleja commented 6 years ago

@agriffard Sure. It was mysel who yesterday said on gitter we should follow the Fluent guidelines. And later changed my mind :)

agriffard commented 6 years ago

Office UI started a Fluent branch: https://github.com/OfficeDev/office-ui-fabric-core/tree/fluent

Skrypt commented 6 years ago

I think the left menu design on VSTS website is what we should have in Orchard Core. Here is what I did so far.

image

I don't care about the rest of the design and if it should follow Fluent design completely. I think Orchard should have it's own theme and inspire itself from different things in different places. Our menu has it's own requirements which lead to different design concepts. You can see in the screenshot that I reproduced the color schemes but we still differ in the fact that we have collapsible menu sections and on VSTS the menu is an accordion... There's probably other things that should look the same as in VSTS like the content items page filters. Do the same as in VSTS but use Bootstrap classes !

VSTS interface is quite simple and I think Orchard Core should at least look as good as it. Right now, I think we're still far from that.

image

Skrypt commented 6 years ago

I was thinking that we could do a tenant switcher just left to the + button where we can add new content items. And move the website title there instead of in the top navbar. Though would probably need to work with a multi-tenants single sign on. Put Orchard Core in the top navbar.

TheAdmin maybe we could avoid the Bootstrap helper classes and simply apply the necessary css rules on our scss files

I think we should try to use the Bootstrap classes as much as we can and add customization in our scss files per need. There's no right and wrong with this as long as it looks good but I think it would be more optimized if we use less code possible.

matiasmolleja commented 6 years ago

Nice. I'm OK with using the Bootstrap classes. I like the idea of a tenant switcher on the admin. But don't you think that the top left area is going to be a little cluttered? Plus it was the result of a few of photoshop proposals speaking with Seb. I think that this switcher can be a flyout or dropdown on the top right area. Where the VSTS have "current account" and "search" buttons. If I can do something to help you on theAdmin just let me know.

Skrypt commented 6 years ago

@matiasmolleja Something you could look into is working on the content filters UI something that could be reusable on every page we display a list of content items with a pager. The pager layout also needs to be fixed.

image

I created a new branch for this : https://github.com/OrchardCMS/OrchardCore/tree/admin-ui

matiasmolleja commented 6 years ago

Nice. I will try.

sebastienros commented 6 years ago

Remember big changes are hard to merge. Tackle this with the menu first then the top navigation bar maybe, then a search/list screen to validate the pattern ... and so on