MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
Material Design 3 Roadmap
还没有人认领这个 Issue。
- 主要语言
- C#
- 星标
- 16.3k
- 派生
- 3.5k
- 平均合并
- 1 天 22 小时
- 30 天内合并 PR
- 8
描述
Google has release Material Design 3. The intent here is to outline the needed work to support it in this library.
You can find the latest details here.
All of the tasks listed here can be considered up for grabs and I am happy to accept PRs for any of them.
New control resource dictionaries should be named as:
MaterialDesign3.<ControlName>.xaml
High level changes
At a minimum these tasks and the color changes need to be implemented to start releasing these new styles.
Tasks
- Create a copy of the
MaterialDesignTheme.Defaults.xamlresource dictionary, it should be calledMaterialDesign2.Defaults.xaml. - Create a new top level resource dictionary along side
MaterialDesignTheme.Defaults.xamlit should be calledMaterialDesign3.Defaults.xaml. For all of the new M3 styles, they should get referenced by this resource dictionary.
Color
This library already support some amount of the new Dynamic Colors, will need to evaluate the M3 implementation to determine how viable it will be to implement here as well.
Because the color brushes are all going in the same code path (ie will be treated and available at the app level), there will be some un-used brushes depending on which control styles are being used.
Tasks
- Add tertiary color to the theme classes
- Add container brushes for primary, secondary, and tertiary colors
- Add neutral color brushes. Evaluate if the "Surface" ones are actually needed (I suspect we can simply use the background brushes instead).
Typography
There is another font Noto Sans that could be included in this library. Right now the fonts make up a significant percentage of size, this would add approximately 1.3MB. Alternatively we could pull fonts out, and make them opt-in with a csproj flag or similar. I am interested in hearing feedback on this, not sure if file size of the assembly matters much to people.
Tasks
- Create a copy of the existing
MaterialDesignFontExtensionand name itRobotoFontExtension.MaterialDesignFontExtensionshould be marked as obsolete. - Create a new
NotoFontExtension(similar to the one above) and include the Noto Sans font files.
Buttons
This will be the largest portion of the work as there is quite a bit to do.
Tasks
- Create style for Elevated button
- Create style for Filled button
- Create style for Filled tonal button (I suspect the template can be shared with the one for Filled button).
- Create style for Outline button
- Create style for Text button. This will be the same style used for Icon button. Simply replace the content of the button with a PackIcon.
- Create style for Floating action button (FAB). Be aware that this style should be expected to accommodate the sizing changes documented for the Extended FAB as well.
Cards
The cards here are not that different from the ones in the existing library. We should still copy the style into a new M3 card resource dictionary, but it may initially be the same as the M2 version.
Tasks
- Create style for Elevated card.
- Create style for Filled card.
- Create style for Outlined card.
Chips
Most of this functionality should already be in place. Just the colors and the corner radius look to be the big differences.
For all of these styles, I suspect a single template could be shared as the look and elements of each of these is pretty similar.
Tasks
- Create style for Assist chip
- Create style for Filter chip
- Create style for Input chip
- Create style for Suggestion chip
Dialogs
For the most part, the dialogs are already done. This library only supports the "Basic dialog" not the "Full screen dialog". For the most part, none of the new features of the dialog affect the DialogHost (our implementation) directly.
Navigation Bar
This is a control has not been implemented. Though happy to accept a PR for it, not a requirement for initial release. See #652 for details.
Navigation Drawer
This is a control has not been implemented. Though happy to accept a PR for it, not a requirement for initial release.
Navigation rail
This is largely done, just a few minor updates to how the selected item appears.
Tasks
- Create Navigation rail style
Top app bar
This is a control has not been implemented, nor do I believe a very useful control for WPF apps. Happy to hear suggestions and use cases if you think otherwise.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先检查现有的资源字典 MaterialDesignTheme.Defaults.xaml 和计划中的入口点 MaterialDesign3.Defaults.xaml,然后选择一个尚未勾选的组件或颜色任务。将相关的现有样式、主题类或字体扩展与 Material Design 3 指南进行比较;完成的标准是已选的 M3 资源或样式被添加,并由新的默认值字典引用。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- csharp
- 领域
- design, desktop
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100