-
Notifications
You must be signed in to change notification settings - Fork 711
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
XAML Ribbon #168
Comments
@mdtauk I agree that we will want to ensure it's consistent app to app and that it is responsive to screen size and all input modalities. I am working closely with Office and intend for the designs to align as much as possible. So i am sure, what are you referring to specifically when you say extended Title Bar and the Sets tab? |
I hadn't realised this was an official proposal, as in you are someone at Microsoft beginning the process, and just wanted to ensure there was not cross purposes, like a third party proposing a Ribbon, whilst an official one was being made. No offence intended. :) The Ribbon usually is set to the top of the window in which it is placed. Many apps extend their app into the TitleBar area to give a cleaner UI and use Acrylic. And then there is Sets which will someday replace the default TitleBar experience in UWP apps. The Windows 7 and right back to the original implementation of the Ribbon UI, custom drew the Titlebar for the window they were in, but those Windows Vista/7 Ribbons need not dictate the new implementation of it - and UWP apps have different ways of handling the window chrome. When developing a design for the UWP Ribbon, and devising how it is recommended for use in an App's UI - the fluent team should consider how it will look and work in both of those scenarios (extended title bar and within the tab used by Sets), as well as while using the current default TitleBar, and a coloured TitleBar. Rather than just designing the control in isolation, from how it fits in with the rest of the App UI, Window Chrome, and the OS Shells. |
@mdtauk, don't worry, absolutely no offense taken. Thanks for the clarifications and the explanation. I agree completely and I'll work on a way to ensure this goal is included in the proposal as we continue to flesh it out in more detail. |
For what it is worth, here are my initial thoughts on how you would integrate the Ribbon with the various combinations of TitleBars you would get. If these were to be considered, the Tab Bar, and the Tool Bar would each need their own Background Brush property, which would allow both to use the same colour/acrylic - or different ones. And for comparison, here are other design patterns in Sets and Extended Titlebars. |
Win32 Office ribbon (including the single-line version in Outlook) also supports browsing through tabs using the mouse scroll wheel. This is something I miss in the OneNote UWP ribbon, which doesn't support it; it somewhat replicates the browsability of traditional menu bars, where you can hold the mouse conveniently "scrub" through the menus to see all the commands available. If it were expanded to also support horizontal scrolling with two-finger touchpad or swiping with touch, it would also be more consistent with the Pivot model, which the ribbon now resembles visually with its current design. |
Collapsed-mode ribbon (where the tab contents are hidden by default and appear transiently on demand on click) is another aspect of most of the various existing ribbon implementations not explicitly called out in the requirements. UWP OneNote, Win32 Office (including Outlook's one-line version), Windows ribbon all support some form of this (with various ways of toggling it - double-click on a tab, expand/collapse button, dropdown menu in the title bar). It does work differently in UWP OneNote than in the Win32 implementations though - instead of a persistent mode, it's just a way to temporarily collapse an existing tab by tapping/clicking on it again. While this isn't as important with the single-line ribbon as it was with the full-height version, I still have found it handy to collapse sometimes while using OneNote on smaller screen sizes. Is it a decision to not include this or just not gotten to it yet? |
Collapsed mode would make a lot of sense, and the NavigationView / SplitView control does this already for the sidebar when in collapsed and overlay modes. There could be a property like DisplayMode for the Ribbon. With options like Expanded, Minimal, Collapsed and when it is set to collapsed, only the tabs are displayed permanently, and the toolbar appears when an item is pressed, with a light dismiss interaction. I would like to suggest that if it is set to collapsed or minimal - that a chevron be added to the right of the tabs, to toggle it into view. |
@adambarlow How easy will it be to try to invoke the ribbon animation/content changes, when the app context changes, rather than the tab? For example, what has been seen in Outlook with the Email/Meetings/Contacts button that changes the ribbon contents but not the tab. |
When you say it changes the Ribbon contents, you mean the contents of the tabs themselves? I don't quite understand the scenario you are describing. What's an example of the context switch you are describing? |
Sorry for the confusion @adambarlow . If I was looking to develop an application where the context referenced in the main window could change, would it possible to push an event to swap the contents of the Ribbon to match the new contents? For example, when using Outlook and I switch from the email page to my calendar, the contents of the Home tab on Ribbon change swap with an animation. |
Yes, good point. This certainly should be possible. I'll include this in the requirements section. |
When I mentioned contextual tabs, I am referring to these... @TiredTrident What it sounds like is the ribbon being swapped with a different one depending on the workflow. Is this a feature of the ribbon, or just replacing one ribbon with another? |
Good luck @adambarlow with making this control a reality. Hopefully the Office team will be able to help, as well as getting the Windows teams on board, for that one day in the future re-write of File Explorer which may have need for it. 😆 |
Another "nice-to-have" is the ability to collapse the ribbon. |
@adambarlow Developers should also have access to guidelines regarding how to differentiate the Ribbon from the rest of the UI. For instance Z-depth, background colors, acrylic? |
@duke7553, you're absolutely right. When this control is implemented (we're a little busy working on WinUI 3.0 at the moment), it will incorporate the styles into its default template. Are you noting this need because you want to incorporate into your custom control? |
@YuliKl I was just trying to ensure the makeshift XAML ribbon I created was in-line with Fluent Design guidelines, so I'll be anxiously awaiting the official WinUI ribbon control. |
@duke7553, while I don't yet know what colors the ribbon control will use, I'm fairly confident in saying that it won't use acrylic or shadow, at least not in its non-transient pinned state. Shadow is designed to show elevation (which the ribbon doesn't have relative to the rest of its parent page), and acrylic is for temporary UI surfaces. |
@adambarlow thank you for your answer. |
I'm thinking of creating software that extends word with uwp so that I can experience more experiences. I would like to make a ribbon that can be folded like a split view like onenote for windows 10. The tabbedcommandbar is a good control to achieve this, but it doesn't allow you to display two lines without expanding, and it's far from being achieved using it. This image is powerpoint ribbon. |
@trsht-tmyk Those images are mock-ups for how a UWP Ribbon could look, if it were to be made. |
Well...., what control is used to create the ribbon-like appearance of onenote for windows10? Also, does it mean that it is impossible to create with navigation view / split view etc.? I'm so so sorry I'm ignorant. |
I think Office created a custom control for their UWP apps. There may be a similar control coming to the Community Toolkit. |
Wanted to call out that we have the TabbedCommandBar that we shipped in the 7.0.0 version of the Windows Community Toolkit. |
unbeliveable that it is 2022, today , we still cannot have it |
Thank you all for the feedback given. I am closing this issue as it's not currently in our roadmap to invest in this feature. However, please see the TabbedCommandBar linked above by Michael in the Windows Community Toolkit. |
I'll go out on a limb here and say that Paint in Windows 11 and OneNote do not use TabbedCommandBar from the Windows Community Toolkit. |
@adambarlow Should you inform @andrewleader so he can remove it from the productboard page that links this issue?. |
@kmgallahan, I don't think that is necessary. You'll notice on that page that this is marked as on the 'backlog', and this feature was previously marked in the freezer. I am not saying that this feature will never be built, just that it's not currently being developed. I just want to set expectations correctly. |
ITNOA @adambarlow How to choose feature for your roadmap? this feature has many votes here and 31 votes on https://portal.productboard.com/winappsdk/1-windows-app-sdk/tabs/7-backlog |
The simplified ribbon is basically the |
Not specifically.. I agree that the simplified ribbon and the |
If there was to be an option for a Full and Simple Ribbon, perhaps you could use a Tag on the "important" controls, and the others move to an overflow when in the Simple mode? But there are two examples of Ribbon like experiences that can inform the design spec. Posting this link as cross reference... |
The simple ribbon is way simpler than the full ribbon, I would implement them as completely separate controls. |
Two separate controls makes it harder for devs to offer the user the choice. Its the same set of tools, just presented differently. |
I understand that, but again they are very different controls. For one, the full ribbon has button layout options that the simple one just doesn't support. The "simple ribbon" really is nothing more than a command bar in a navigation view. Making the simple and full ribbon the same control would require completely rebuilding the simple one as well. |
But with a simple tag or property on the buttons, you could set which ones appear in the Simplified view, and the others move to the flyout. |
Proposal: XAML Ribbon
Summary
tl:dr; Provide a Ribbon control for XAML apps which utilizes recent advancements in XAML commanding infrastructure, which is simple to implement and simple to interact with.
Since the release of the ribbon in Microsoft Office products in 2007 it has been a successful and frequently imitated commanding paradigm. It's success is demonstrated in the many implementations in frameworks on various platforms, as well as the ongoing requests for it's inclusion in WinUI.
This proposal details the creation of a simplified single-row Ribbon control, which can natively host XAML controls with great styling out of the box. This ribbon control will be familiar to those who have worked with the commandbar control and will allow for apps with more advanced commanding capabilities than are currently possible with XAML.
Rationale
Implementing a XAML Ribbon will provide the following for the community:
Terminology
Functional Requirements
List:
- Button
- Split Button
- DropDown Button
- Combo-box
- Toggle Button
Open Questions
The text was updated successfully, but these errors were encountered: