Fluid
Loading...
Searching...
No Matches
typescale.h
Go to the documentation of this file.
1// Copyright (C) 2025 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include <QFont>
7#include <QQmlEngine>
8
9#include "style.h"
10
11namespace Fluid {
12
30{
31 Q_GADGET
32 QML_ELEMENT
33 QML_VALUE_TYPE(typescale)
34
35 Q_PROPERTY(Style::TypeFace face MEMBER face CONSTANT FINAL)
36 Q_PROPERTY(qint32 fontSize MEMBER fontSize CONSTANT FINAL)
37 Q_PROPERTY(qint32 lineHeight MEMBER lineHeight CONSTANT FINAL)
38 Q_PROPERTY(QFont::Weight fontWeight MEMBER fontWeight CONSTANT FINAL)
39 Q_PROPERTY(qreal tracking MEMBER tracking CONSTANT FINAL)
40 Q_PROPERTY(qint32 wght READ wght CONSTANT FINAL)
41 Q_PROPERTY(qint32 grad READ grad CONSTANT FINAL)
42 Q_PROPERTY(qint32 wdth READ wdth CONSTANT FINAL)
43 Q_PROPERTY(qint32 rond READ rond CONSTANT FINAL)
44 Q_PROPERTY(qint32 opsz READ opsz CONSTANT FINAL)
45 Q_PROPERTY(qint32 crsv READ crsv CONSTANT FINAL)
46 Q_PROPERTY(qint32 slnt READ slnt CONSTANT FINAL)
47 Q_PROPERTY(qint32 fill READ fill CONSTANT FINAL)
48 Q_PROPERTY(qint32 hexp READ hexp CONSTANT FINAL)
49public:
50 Style::TypeFace face = Style::TypeFace::Plain;
51 qint32 fontSize = 14;
52 qint32 lineHeight = 24;
53 QFont::Weight fontWeight = QFont::Weight::Normal;
54 qreal tracking = 0.0;
55
56 qint32 wght() const
57 {
58 return static_cast<qint32>(fontWeight);
59 }
60
61 qint32 grad() const
62 {
63 return 0;
64 }
65
66 qint32 wdth() const
67 {
68 return 100;
69 }
70
71 qint32 rond() const
72 {
73 return 0;
74 }
75
76 qint32 opsz() const
77 {
78 return fontSize;
79 }
80
81 qint32 crsv() const
82 {
83 return 0;
84 }
85
86 qint32 slnt() const
87 {
88 return 0;
89 }
90
91 qint32 fill() const
92 {
93 return 0;
94 }
95
96 qint32 hexp() const
97 {
98 return 0;
99 }
100};
101
122class TypeScale : public QObject
123{
124 Q_OBJECT
125 QML_ELEMENT
126 QML_SINGLETON
127
128 Q_PROPERTY(TypeScaleValue displayLarge READ displayLarge CONSTANT FINAL)
129 Q_PROPERTY(TypeScaleValue displayMedium READ displayMedium CONSTANT FINAL)
130 Q_PROPERTY(TypeScaleValue displaySmall READ displaySmall CONSTANT FINAL)
131 Q_PROPERTY(TypeScaleValue headlineLarge READ headlineLarge CONSTANT FINAL)
132 Q_PROPERTY(TypeScaleValue headlineMedium READ headlineMedium CONSTANT FINAL)
133 Q_PROPERTY(TypeScaleValue headlineSmall READ headlineSmall CONSTANT FINAL)
134 Q_PROPERTY(TypeScaleValue titleLarge READ titleLarge CONSTANT FINAL)
135 Q_PROPERTY(TypeScaleValue titleMedium READ titleMedium CONSTANT FINAL)
136 Q_PROPERTY(TypeScaleValue titleSmall READ titleSmall CONSTANT FINAL)
137 Q_PROPERTY(TypeScaleValue bodyLarge READ bodyLarge CONSTANT FINAL)
138 Q_PROPERTY(TypeScaleValue bodyMedium READ bodyMedium CONSTANT FINAL)
139 Q_PROPERTY(TypeScaleValue bodySmall READ bodySmall CONSTANT FINAL)
140 Q_PROPERTY(TypeScaleValue labelLarge READ labelLarge CONSTANT FINAL)
141 Q_PROPERTY(TypeScaleValue labelMedium READ labelMedium CONSTANT FINAL)
142 Q_PROPERTY(TypeScaleValue labelSmall READ labelSmall CONSTANT FINAL)
143public:
144 explicit TypeScale(QObject *parent = nullptr);
145
161
162protected:
178};
179
202{
203 Q_OBJECT
204 QML_ELEMENT
205 QML_SINGLETON
206public:
207 explicit EmphasizedTypeScale(QObject *parent = nullptr);
208};
209
210} // namespace Fluid
Material Design 3 emphasized type scale tokens.
Definition typescale.h:202
Material Design 3 type scale tokens.
Definition typescale.h:123
TypeScaleValue m_titleSmall
Definition typescale.h:171
TypeScaleValue m_displayMedium
Definition typescale.h:164
TypeScaleValue titleMedium
Definition typescale.h:135
TypeScaleValue m_bodySmall
Definition typescale.h:174
TypeScaleValue labelMedium
Definition typescale.h:141
TypeScaleValue m_headlineSmall
Definition typescale.h:168
TypeScaleValue m_displayLarge
Definition typescale.h:163
TypeScaleValue headlineLarge
Definition typescale.h:131
TypeScaleValue m_bodyMedium
Definition typescale.h:173
TypeScaleValue titleSmall
Definition typescale.h:136
TypeScaleValue bodyMedium
Definition typescale.h:138
TypeScaleValue m_bodyLarge
Definition typescale.h:172
TypeScaleValue m_titleLarge
Definition typescale.h:169
TypeScaleValue m_labelMedium
Definition typescale.h:176
TypeScaleValue bodyLarge
Definition typescale.h:137
TypeScaleValue displaySmall
Definition typescale.h:130
TypeScaleValue bodySmall
Definition typescale.h:139
TypeScaleValue m_titleMedium
Definition typescale.h:170
TypeScaleValue m_headlineMedium
Definition typescale.h:167
TypeScaleValue titleLarge
Definition typescale.h:134
TypeScaleValue labelLarge
Definition typescale.h:140
TypeScaleValue m_labelSmall
Definition typescale.h:177
TypeScaleValue headlineMedium
Definition typescale.h:132
TypeScaleValue m_headlineLarge
Definition typescale.h:166
TypeScaleValue m_displaySmall
Definition typescale.h:165
TypeScaleValue displayMedium
Definition typescale.h:129
TypeScaleValue labelSmall
Definition typescale.h:142
TypeScaleValue headlineSmall
Definition typescale.h:133
QML_SINGLETONTypeScaleValue displayLarge
Definition typescale.h:128
TypeScaleValue m_labelLarge
Definition typescale.h:175
Definition style.h:22
Definition elevationmaterial.cpp:27
Type scale definition for typography tokens.
Definition typescale.h:30
qint32 wdth() const
Definition typescale.h:66
qint32 crsv
Definition typescale.h:45
qint32 slnt
Definition typescale.h:46
qint32 opsz() const
Definition typescale.h:76
qint32 wdth
Definition typescale.h:42
qint32 lineHeight
Definition typescale.h:37
qint32 opsz
Definition typescale.h:44
qint32 wght
Definition typescale.h:40
qint32 slnt() const
Definition typescale.h:86
qint32 rond
Definition typescale.h:43
QFont::Weight fontWeight
Definition typescale.h:38
qint32 hexp
Definition typescale.h:48
qint32 grad
Definition typescale.h:41
qint32 crsv() const
Definition typescale.h:81
qreal tracking
Definition typescale.h:39
QML_ELEMENTStyle::TypeFace face
Definition typescale.h:35
qint32 hexp() const
Definition typescale.h:96
qint32 grad() const
Definition typescale.h:61
qint32 fontSize
Definition typescale.h:36
qint32 rond() const
Definition typescale.h:71
qint32 fill() const
Definition typescale.h:91
qint32 fill
Definition typescale.h:47