Fluid 1.3.0
Material Design for QtQuick and Qml
Loading...
Searching...
No Matches
listitem.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// ListTokens.kt and ListItemTokens.kt.
16
17namespace Fluid {
18
21{
22 Q_GADGET
23 QML_ANONYMOUS
24
25 Q_PROPERTY(qreal oneLineContainerHeight READ oneLineContainerHeight CONSTANT FINAL)
26 Q_PROPERTY(qreal twoLineContainerHeight READ twoLineContainerHeight CONSTANT FINAL)
27 Q_PROPERTY(qreal threeLineContainerHeight READ threeLineContainerHeight CONSTANT FINAL)
28 Q_PROPERTY(qreal leadingSpace READ leadingSpace CONSTANT FINAL)
29 Q_PROPERTY(qreal trailingSpace READ trailingSpace CONSTANT FINAL)
30 Q_PROPERTY(qreal topSpace READ topSpace CONSTANT FINAL)
31 Q_PROPERTY(qreal bottomSpace READ bottomSpace CONSTANT FINAL)
32 Q_PROPERTY(qreal betweenSpace READ betweenSpace CONSTANT FINAL)
33 Q_PROPERTY(qreal segmentedGap READ segmentedGap CONSTANT FINAL)
34 Q_PROPERTY(Fluid::ShapeValue containerShape READ containerShape CONSTANT FINAL)
37 FINAL)
39 FINAL)
41 FINAL)
43 FINAL)
44 Q_PROPERTY(qreal leadingIconSize READ leadingIconSize CONSTANT FINAL)
45 Q_PROPERTY(qreal trailingIconSize READ trailingIconSize CONSTANT FINAL)
46 Q_PROPERTY(qreal leadingAvatarSize READ leadingAvatarSize CONSTANT FINAL)
47 Q_PROPERTY(qreal leadingImageSize READ leadingImageSize CONSTANT FINAL)
48 Q_PROPERTY(qreal disabledContentOpacity READ disabledContentOpacity CONSTANT FINAL)
49 Q_PROPERTY(qreal disabledStateLayerOpacity READ disabledStateLayerOpacity CONSTANT FINAL)
50 Q_PROPERTY(qreal hoverStateLayerOpacity READ hoverStateLayerOpacity CONSTANT FINAL)
51 Q_PROPERTY(qreal focusStateLayerOpacity READ focusStateLayerOpacity CONSTANT FINAL)
52 Q_PROPERTY(qreal pressedStateLayerOpacity READ pressedStateLayerOpacity CONSTANT FINAL)
53 Q_PROPERTY(qreal draggedStateLayerOpacity READ draggedStateLayerOpacity CONSTANT FINAL)
54 Q_PROPERTY(qreal containerElevation READ containerElevation CONSTANT FINAL)
55 Q_PROPERTY(qreal draggedContainerElevation READ draggedContainerElevation CONSTANT FINAL)
56
57public:
58 constexpr qreal oneLineContainerHeight() const
59 {
60 return 56.0;
61 }
62 constexpr qreal twoLineContainerHeight() const
63 {
64 return 72.0;
65 }
66 constexpr qreal threeLineContainerHeight() const
67 {
68 return 88.0;
69 }
70 constexpr qreal leadingSpace() const
71 {
72 return 16.0;
73 }
74 constexpr qreal trailingSpace() const
75 {
76 return 16.0;
77 }
78 constexpr qreal topSpace() const
79 {
80 return 10.0;
81 }
82 constexpr qreal bottomSpace() const
83 {
84 return 10.0;
85 }
86 constexpr qreal betweenSpace() const
87 {
88 return 12.0;
89 }
90 constexpr qreal segmentedGap() const
91 {
92 return 2.0;
93 }
94 constexpr ShapeValue containerShape() const
95 {
96 return ShapeTokens{ }.cornerNone();
97 }
99 {
100 return ShapeTokens{ }.cornerExtraSmall();
101 }
103 {
104 return ShapeTokens{ }.cornerMedium();
105 }
107 {
108 return ShapeTokens{ }.cornerLarge();
109 }
111 {
112 return ShapeTokens{ }.cornerLarge();
113 }
115 {
116 return ShapeTokens{ }.cornerLarge();
117 }
118 constexpr qreal leadingIconSize() const
119 {
120 return 24.0;
121 }
122 constexpr qreal trailingIconSize() const
123 {
124 return 24.0;
125 }
126 constexpr qreal leadingAvatarSize() const
127 {
128 return 40.0;
129 }
130 constexpr qreal leadingImageSize() const
131 {
132 return 56.0;
133 }
134 constexpr qreal disabledContentOpacity() const
135 {
136 return 0.38;
137 }
138 constexpr qreal disabledStateLayerOpacity() const
139 {
140 return 0.1;
141 }
142 constexpr qreal hoverStateLayerOpacity() const
143 {
145 }
146 constexpr qreal focusStateLayerOpacity() const
147 {
149 }
150 constexpr qreal pressedStateLayerOpacity() const
151 {
153 }
154 constexpr qreal draggedStateLayerOpacity() const
155 {
157 }
158 constexpr qreal containerElevation() const
159 {
160 return ElevationTokens{ }.level0();
161 }
162 constexpr qreal draggedContainerElevation() const
163 {
164 return ElevationTokens{ }.level4();
165 }
166};
167
168} // namespace Fluid
Material Design 3 system elevation tokens.
QML_ANONYMOUSqreal level0
Material Design 3 Expressive list item tokens.
Definition listitem.h:21
qreal draggedContainerElevation
Definition listitem.h:55
Fluid::ShapeValue pressedContainerExpressiveShape
Definition listitem.h:41
qreal segmentedGap
Definition listitem.h:33
constexpr qreal betweenSpace() const
Definition listitem.h:86
Fluid::ShapeValue containerExpressiveShape
Definition listitem.h:35
constexpr qreal twoLineContainerHeight() const
Definition listitem.h:62
qreal disabledStateLayerOpacity
Definition listitem.h:49
qreal betweenSpace
Definition listitem.h:32
qreal focusStateLayerOpacity
Definition listitem.h:51
qreal trailingIconSize
Definition listitem.h:45
constexpr qreal trailingIconSize() const
Definition listitem.h:122
constexpr qreal leadingIconSize() const
Definition listitem.h:118
constexpr ShapeValue pressedContainerExpressiveShape() const
Definition listitem.h:110
constexpr qreal pressedStateLayerOpacity() const
Definition listitem.h:150
constexpr ShapeValue hoveredContainerExpressiveShape() const
Definition listitem.h:102
constexpr qreal draggedStateLayerOpacity() const
Definition listitem.h:154
Fluid::ShapeValue containerShape
Definition listitem.h:34
constexpr qreal hoverStateLayerOpacity() const
Definition listitem.h:142
qreal draggedStateLayerOpacity
Definition listitem.h:53
qreal leadingSpace
Definition listitem.h:28
qreal containerElevation
Definition listitem.h:54
qreal threeLineContainerHeight
Definition listitem.h:27
constexpr qreal disabledStateLayerOpacity() const
Definition listitem.h:138
qreal disabledContentOpacity
Definition listitem.h:48
qreal leadingAvatarSize
Definition listitem.h:46
constexpr qreal containerElevation() const
Definition listitem.h:158
qreal twoLineContainerHeight
Definition listitem.h:26
qreal pressedStateLayerOpacity
Definition listitem.h:52
constexpr ShapeValue containerShape() const
Definition listitem.h:94
constexpr qreal leadingAvatarSize() const
Definition listitem.h:126
constexpr qreal focusStateLayerOpacity() const
Definition listitem.h:146
qreal leadingIconSize
Definition listitem.h:44
qreal bottomSpace
Definition listitem.h:31
qreal trailingSpace
Definition listitem.h:29
constexpr ShapeValue focusedContainerExpressiveShape() const
Definition listitem.h:106
qreal hoverStateLayerOpacity
Definition listitem.h:50
constexpr qreal topSpace() const
Definition listitem.h:78
constexpr ShapeValue containerExpressiveShape() const
Definition listitem.h:98
constexpr qreal disabledContentOpacity() const
Definition listitem.h:134
Fluid::ShapeValue hoveredContainerExpressiveShape
Definition listitem.h:37
constexpr qreal leadingSpace() const
Definition listitem.h:70
Fluid::ShapeValue focusedContainerExpressiveShape
Definition listitem.h:39
constexpr qreal draggedContainerElevation() const
Definition listitem.h:162
constexpr qreal segmentedGap() const
Definition listitem.h:90
constexpr qreal trailingSpace() const
Definition listitem.h:74
qreal leadingImageSize
Definition listitem.h:47
constexpr qreal threeLineContainerHeight() const
Definition listitem.h:66
QML_ANONYMOUSqreal oneLineContainerHeight
Definition listitem.h:25
Fluid::ShapeValue selectedContainerExpressiveShape
Definition listitem.h:43
constexpr qreal leadingImageSize() const
Definition listitem.h:130
constexpr qreal bottomSpace() const
Definition listitem.h:82
constexpr ShapeValue selectedContainerExpressiveShape() const
Definition listitem.h:114
Material Design 3 system shape tokens.
Definition shapetokens.h:48
Fluid::ShapeValue cornerLarge
Definition shapetokens.h:60
Fluid::ShapeValue cornerExtraSmall
Definition shapetokens.h:57
Fluid::ShapeValue cornerMedium
Definition shapetokens.h:65
Fluid::ShapeValue cornerNone
Definition shapetokens.h:66
Material Design 3 system state tokens.
Definition statetokens.h:18
QML_ANONYMOUSqreal draggedStateLayerOpacity
Definition statetokens.h:22
qreal focusStateLayerOpacity
Definition statetokens.h:23
qreal hoverStateLayerOpacity
Definition statetokens.h:24
qreal pressedStateLayerOpacity
Definition statetokens.h:25