Fluid 1.3.0
Material Design for QtQuick and Qml
Loading...
Searching...
No Matches
fabmenu.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include <QtCore/qobject.h>
7#include <QtQml/qqmlregistration.h>
8
9#include "elevationtokens.h"
10#include "shapetokens.h"
11#include "statetokens.h"
12
13// Component values map to the AndroidX Material 3 generated tokens:
14// https://android.googlesource.com/platform/frameworks/support/+/5ba2cdd61be7b6945db999b238d14f3c626136fb/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/tokens/
15// FabMenuTokens.kt, FabMenuCloseButtonTokens.kt, and FabMenuItemTokens.kt.
16
17namespace Fluid {
18
26struct FabMenu
27{
28 Q_GADGET
29 QML_ANONYMOUS
30
31 Q_PROPERTY(qreal closeButtonContainerWidth READ closeButtonContainerWidth CONSTANT FINAL)
32 Q_PROPERTY(qreal closeButtonContainerHeight READ closeButtonContainerHeight CONSTANT FINAL)
34 FINAL)
35 Q_PROPERTY(qreal closeButtonIconSize READ closeButtonIconSize CONSTANT FINAL)
36 Q_PROPERTY(
39 CONSTANT FINAL)
41 CONSTANT FINAL)
43 CONSTANT FINAL)
44 Q_PROPERTY(qreal closeButtonBetweenSpace READ closeButtonBetweenSpace CONSTANT FINAL)
45 Q_PROPERTY(qreal listItemContainerHeight READ listItemContainerHeight CONSTANT FINAL)
47 Q_PROPERTY(qreal listItemContainerElevation READ listItemContainerElevation CONSTANT FINAL)
48 Q_PROPERTY(qreal listItemIconSize READ listItemIconSize CONSTANT FINAL)
49 Q_PROPERTY(qreal listItemIconLabelSpace READ listItemIconLabelSpace CONSTANT FINAL)
50 Q_PROPERTY(qreal listItemLeadingSpace READ listItemLeadingSpace CONSTANT FINAL)
51 Q_PROPERTY(qreal listItemTrailingSpace READ listItemTrailingSpace CONSTANT FINAL)
52 Q_PROPERTY(qreal listItemBetweenSpace READ listItemBetweenSpace CONSTANT FINAL)
53 Q_PROPERTY(qreal listItemStaggerDelay READ listItemStaggerDelay CONSTANT FINAL)
54 Q_PROPERTY(qreal hoverStateLayerOpacity READ hoverStateLayerOpacity CONSTANT FINAL)
55 Q_PROPERTY(qreal focusStateLayerOpacity READ focusStateLayerOpacity CONSTANT FINAL)
56 Q_PROPERTY(qreal pressedStateLayerOpacity READ pressedStateLayerOpacity CONSTANT FINAL)
57 Q_PROPERTY(qreal disabledContentOpacity READ disabledContentOpacity CONSTANT FINAL)
58 Q_PROPERTY(qreal scrimOpacity READ scrimOpacity CONSTANT FINAL)
59 Q_PROPERTY(qreal containerMargin READ containerMargin CONSTANT FINAL)
60
61public:
63 constexpr qreal closeButtonContainerWidth() const
64 {
65 return 56.0;
66 }
67
69 constexpr qreal closeButtonContainerHeight() const
70 {
71 return 56.0;
72 }
73
76 {
77 return ShapeTokens{ }.cornerFull();
78 }
79
81 constexpr qreal closeButtonIconSize() const
82 {
83 return 20.0;
84 }
85
87 constexpr qreal closeButtonContainerElevation() const
88 {
89 return ElevationTokens{ }.level3();
90 }
91
93 constexpr qreal closeButtonFocusContainerElevation() const
94 {
95 return ElevationTokens{ }.level3();
96 }
97
99 constexpr qreal closeButtonHoverContainerElevation() const
100 {
101 return ElevationTokens{ }.level4();
102 }
103
106 {
107 return ElevationTokens{ }.level3();
108 }
109
111 constexpr qreal closeButtonBetweenSpace() const
112 {
113 return 8.0;
114 }
115
117 constexpr qreal listItemContainerHeight() const
118 {
119 return 56.0;
120 }
121
124 {
125 return ShapeTokens{ }.cornerFull();
126 }
127
129 constexpr qreal listItemContainerElevation() const
130 {
131 return ElevationTokens{ }.level0();
132 }
133
135 constexpr qreal listItemIconSize() const
136 {
137 return 24.0;
138 }
139
141 constexpr qreal listItemIconLabelSpace() const
142 {
143 return 8.0;
144 }
145
147 constexpr qreal listItemLeadingSpace() const
148 {
149 return 24.0;
150 }
151
153 constexpr qreal listItemTrailingSpace() const
154 {
155 return 24.0;
156 }
157
159 constexpr qreal listItemBetweenSpace() const
160 {
161 return 4.0;
162 }
163
165 constexpr qreal listItemStaggerDelay() const
166 {
167 return 30.0;
168 }
169
171 constexpr qreal hoverStateLayerOpacity() const
172 {
174 }
175
177 constexpr qreal focusStateLayerOpacity() const
178 {
180 }
181
183 constexpr qreal pressedStateLayerOpacity() const
184 {
186 }
187
189 constexpr qreal disabledContentOpacity() const
190 {
191 return 0.38;
192 }
193
195 constexpr qreal scrimOpacity() const
196 {
197 return 0.32;
198 }
199
201 constexpr qreal containerMargin() const
202 {
203 return 16.0;
204 }
205};
206
207} // namespace Fluid
Material Design 3 system elevation tokens.
QML_ANONYMOUSqreal level0
Material Design 3 Expressive FAB menu tokens.
Definition fabmenu.h:27
constexpr qreal closeButtonBetweenSpace() const
Space between the close button and the nearest list item.
Definition fabmenu.h:111
qreal closeButtonFocusContainerElevation
Definition fabmenu.h:39
constexpr qreal listItemIconLabelSpace() const
Space between the list item icon and its label.
Definition fabmenu.h:141
qreal listItemBetweenSpace
Definition fabmenu.h:52
constexpr qreal listItemIconSize() const
Size of the leading list item icon.
Definition fabmenu.h:135
constexpr ShapeValue closeButtonContainerShape() const
Fully rounded corner radius of the expanded close button.
Definition fabmenu.h:75
constexpr qreal listItemBetweenSpace() const
Space between adjacent list items.
Definition fabmenu.h:159
constexpr qreal listItemTrailingSpace() const
Logical trailing padding of a list item.
Definition fabmenu.h:153
constexpr qreal hoverStateLayerOpacity() const
Opacity of the hover state layer.
Definition fabmenu.h:171
constexpr qreal listItemContainerHeight() const
Height of a FAB menu list item.
Definition fabmenu.h:117
qreal listItemIconLabelSpace
Definition fabmenu.h:49
qreal hoverStateLayerOpacity
Definition fabmenu.h:54
QML_ANONYMOUSqreal closeButtonContainerWidth
Definition fabmenu.h:31
qreal listItemContainerElevation
Definition fabmenu.h:47
constexpr qreal closeButtonContainerElevation() const
Resting elevation of the close button.
Definition fabmenu.h:87
constexpr qreal closeButtonIconSize() const
Size of the close button icon.
Definition fabmenu.h:81
qreal disabledContentOpacity
Definition fabmenu.h:57
Fluid::ShapeValue closeButtonContainerShape
Definition fabmenu.h:34
constexpr qreal closeButtonPressedContainerElevation() const
Elevation of the pressed close button.
Definition fabmenu.h:105
qreal closeButtonContainerHeight
Definition fabmenu.h:32
qreal listItemTrailingSpace
Definition fabmenu.h:51
qreal focusStateLayerOpacity
Definition fabmenu.h:55
Fluid::ShapeValue listItemContainerShape
Definition fabmenu.h:46
constexpr qreal listItemLeadingSpace() const
Logical leading padding of a list item.
Definition fabmenu.h:147
constexpr qreal closeButtonFocusContainerElevation() const
Elevation of the focused close button.
Definition fabmenu.h:93
qreal closeButtonContainerElevation
Definition fabmenu.h:37
constexpr ShapeValue listItemContainerShape() const
Fully rounded corner radius of a list item.
Definition fabmenu.h:123
qreal listItemLeadingSpace
Definition fabmenu.h:50
qreal closeButtonBetweenSpace
Definition fabmenu.h:44
constexpr qreal listItemStaggerDelay() const
Per-item delay of the staggered list entrance, in milliseconds.
Definition fabmenu.h:165
constexpr qreal containerMargin() const
Inset of the FAB menu from the edges of its container.
Definition fabmenu.h:201
qreal scrimOpacity
Definition fabmenu.h:58
constexpr qreal closeButtonHoverContainerElevation() const
Elevation of the hovered close button.
Definition fabmenu.h:99
qreal closeButtonIconSize
Definition fabmenu.h:35
constexpr qreal pressedStateLayerOpacity() const
Opacity of the pressed state layer.
Definition fabmenu.h:183
qreal containerMargin
Definition fabmenu.h:59
qreal closeButtonHoverContainerElevation
Definition fabmenu.h:41
constexpr qreal scrimOpacity() const
Opacity of the scrim shown behind an expanded FAB menu.
Definition fabmenu.h:195
constexpr qreal closeButtonContainerHeight() const
Height of the expanded close button.
Definition fabmenu.h:69
qreal listItemContainerHeight
Definition fabmenu.h:45
qreal listItemIconSize
Definition fabmenu.h:48
qreal closeButtonPressedContainerElevation
Definition fabmenu.h:43
constexpr qreal listItemContainerElevation() const
Resting elevation of a list item.
Definition fabmenu.h:129
constexpr qreal disabledContentOpacity() const
Opacity of disabled list item content.
Definition fabmenu.h:189
constexpr qreal focusStateLayerOpacity() const
Opacity of the keyboard-focus state layer.
Definition fabmenu.h:177
qreal pressedStateLayerOpacity
Definition fabmenu.h:56
qreal listItemStaggerDelay
Definition fabmenu.h:53
Material Design 3 system shape tokens.
Definition shapetokens.h:48
Fluid::ShapeValue cornerFull
Definition shapetokens.h:59
Material Design 3 system state tokens.
Definition statetokens.h:18
qreal focusStateLayerOpacity
Definition statetokens.h:23
qreal hoverStateLayerOpacity
Definition statetokens.h:24
qreal pressedStateLayerOpacity
Definition statetokens.h:25