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

Material 3 components for Slint #6069

Open
NigelBreslaw opened this issue Sep 10, 2024 · 0 comments
Open

Material 3 components for Slint #6069

NigelBreslaw opened this issue Sep 10, 2024 · 0 comments
Labels
a:language-slint Compiler for the .slint language (mO,bF) a:platform-android Android platform integration (mO,bS) a:platform-linux issue specific to Linux, X11 or wayland (mO,bT) a:platform-mcu Microcontrollers (mO,bS) a:widgets Implementation of widgets (from std-widgets.slint) and their styles (mF,bS) roadmap Tickets that we can use for roadmapping

Comments

@NigelBreslaw
Copy link
Member

NigelBreslaw commented Sep 10, 2024

This is a tracking issue for implementing the Material components in Slint.

Aims

Keep it as close to the Material 3 spec as possible. So people can reuse the existing Figma Material Design Kit, theme builder, etc.

Have a new complete component set for the Slint MPU/MCU platforms that unlike desktop, iOS or Android have no standard components. Material 3 was chosen as it's well known and has excellent touch support.

Deliver a full component set and a GALLERY that showcases them all.

The Material Components for Web Shows a much more detailed set of components. These might be useful for examples as opposed to actual extra components which might have an unreasonable maintenance burden?

Open Questions:

Support the Material theme builder? It has a JSON export option that could be converted to a Slint palette?

Meta questions

Theme support?

Layer / portal support. In React components have the ability to 'portal'. This is where they draw all or part of the UI to another layer. For example a snack bar shows over most content. A context menu may be activated by a button in VerticalLayout, but you want the menu to overlap all app content, not run under the next item in the container.

'Elevation'. This is the Android/Material property names to manage drop shadows. React Native is confusing here because it supports both systems, but only elevation works on Android. Maybe we can avoid some pain here e.g. we keep the Slint 'shadow' properties but provide a Material helper function you can use to map elevation to shadow?

Material Icons can be found here. It's a sizeable file. Anything needed to reduce it to only items the project uses, convert to bitmap on low end devices, etc?

Phase 1 Independent components

Badges

image

Button (common)

image

Floating Action Button (FAB)

image

Extended FAB

image

Icon button

image

Segmented Button

image

Switch

Screenshot 2024-09-10 at 12 21 16

Radio Button

Screenshot 2024-09-10 at 12 12 57

Checkbox

image

Chips

image

Divider

Screenshot 2024-09-10 at 12 07 26

Progress Indicator

Screenshot 2024-09-10 at 12 12 09

Sliders

Screenshot 2024-09-10 at 12 18 25

Phase 2 Complex components

Text Fie

Screenshot 2024-09-10 at 12 23 31 lds

Dialog

Alert
Screenshot 2024-09-10 at 11 40 50

Simple
Screenshot 2024-09-10 at 11 40 56

Confirmation
Screenshot 2024-09-10 at 11 41 02

Scrollable
Screenshot 2024-09-10 at 11 41 14

Snack Bar (NOTE: High priority? Gets used a lot, even for debugging and has some tricky issues that need solving (drawing above all other content)

Screenshot 2024-09-10 at 12 19 12

Tooltips

Screenshot 2024-09-10 at 12 25 06

Cards

Screenshot 2024-09-10 at 11 59 38

Date picker

Screenshot 2024-09-10 at 12 06 24

Time picker

Screenshot 2024-09-10 at 12 24 22

Lists

Screenshot 2024-09-10 at 12 08 16

Search

Screenshot 2024-09-10 at 12 13 40

Menus

Screenshot 2024-09-10 at 12 09 39

Data Table

image

Phase 3 View components

Carousel

Screenshot 2024-09-10 at 11 59 38

Navigation Bar (similar to Tabs?)

Screenshot 2024-09-10 at 12 10 14

Tabs (sim

Screenshot 2024-09-10 at 12 22 21 ilar to Nav Bar?)

Navigation Drawer

image

Navigation Rail

image

Bottom Sheet

Screenshot 2024-09-10 at 12 16 32

Side Sheet

Screenshot 2024-09-10 at 12 17 56

Phase 4 Critical components that are not part of the spec, but expected anyway? i.e. pull to refresh.

Screenshot 2024-09-10 at 12 36 11
@NigelBreslaw NigelBreslaw added roadmap Tickets that we can use for roadmapping a:platform-linux issue specific to Linux, X11 or wayland (mO,bT) a:widgets Implementation of widgets (from std-widgets.slint) and their styles (mF,bS) a:language-slint Compiler for the .slint language (mO,bF) labels Sep 10, 2024
@FloVanGH FloVanGH added a:platform-android Android platform integration (mO,bS) a:platform-mcu Microcontrollers (mO,bS) labels Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:language-slint Compiler for the .slint language (mO,bF) a:platform-android Android platform integration (mO,bS) a:platform-linux issue specific to Linux, X11 or wayland (mO,bT) a:platform-mcu Microcontrollers (mO,bS) a:widgets Implementation of widgets (from std-widgets.slint) and their styles (mF,bS) roadmap Tickets that we can use for roadmapping
Projects
None yet
Development

No branches or pull requests

2 participants