Fluid
Loading...
Searching...
No Matches
tokens.h
Go to the documentation of this file.
1/*
2 * This file is part of Fluid.
3 *
4 * Copyright (C) 2025 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
5 *
6 * $BEGIN_LICENSE:MPL2$
7 *
8 * This Source Code Form is subject to the terms of the Mozilla Public
9 * License, v. 2.0. If a copy of the MPL was not distributed with this
10 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 *
12 * $END_LICENSE$
13 */
14
15#pragma once
16
17#include <QObject>
18#include <QQmlEngine>
19
20#include "easing.h"
21#include "typescale.h"
22
23namespace Fluid {
24
47class Tokens : public QObject
48{
49 Q_OBJECT
50 QML_ELEMENT
51 QML_SINGLETON
52
53 // Shape tokens - Corner radius
54 Q_PROPERTY(qreal cornerRadiusNone READ cornerRadiusNone CONSTANT FINAL)
55 Q_PROPERTY(qreal cornerRadiusExtraSmall READ cornerRadiusExtraSmall CONSTANT FINAL)
56 Q_PROPERTY(qreal cornerRadiusSmall READ cornerRadiusSmall CONSTANT FINAL)
57 Q_PROPERTY(qreal cornerRadiusMedium READ cornerRadiusMedium CONSTANT FINAL)
58 Q_PROPERTY(qreal cornerRadiusLarge READ cornerRadiusLarge CONSTANT FINAL)
59 Q_PROPERTY(qreal cornerRadiusExtraLarge READ cornerRadiusExtraLarge CONSTANT FINAL)
60 Q_PROPERTY(qreal cornerRadiusFull READ cornerRadiusFull CONSTANT FINAL)
61
62 // Typography tokens
63 Q_PROPERTY(TypeScale *typescale READ typescale CONSTANT FINAL)
65
66 // Spacing tokens
67 Q_PROPERTY(int spacingExtraSmall READ spacingExtraSmall CONSTANT FINAL)
68 Q_PROPERTY(int spacingSmall READ spacingSmall CONSTANT FINAL)
69 Q_PROPERTY(int spacingMedium READ spacingMedium CONSTANT FINAL)
70 Q_PROPERTY(int spacingLarge READ spacingLarge CONSTANT FINAL)
71 Q_PROPERTY(int spacingExtraLarge READ spacingExtraLarge CONSTANT FINAL)
72
73 // Elevation tokens
74 Q_PROPERTY(int elevationLevel0 READ elevationLevel0 CONSTANT FINAL)
75 Q_PROPERTY(int elevationLevel1 READ elevationLevel1 CONSTANT FINAL)
76 Q_PROPERTY(int elevationLevel2 READ elevationLevel2 CONSTANT FINAL)
77 Q_PROPERTY(int elevationLevel3 READ elevationLevel3 CONSTANT FINAL)
78 Q_PROPERTY(int elevationLevel4 READ elevationLevel4 CONSTANT FINAL)
79 Q_PROPERTY(int elevationLevel5 READ elevationLevel5 CONSTANT FINAL)
80
81 // Motion tokens - Duration
82 Q_PROPERTY(int durationShort1 READ durationShort1 CONSTANT FINAL)
83 Q_PROPERTY(int durationShort2 READ durationShort2 CONSTANT FINAL)
84 Q_PROPERTY(int durationShort3 READ durationShort3 CONSTANT FINAL)
85 Q_PROPERTY(int durationShort4 READ durationShort4 CONSTANT FINAL)
86 Q_PROPERTY(int durationMedium1 READ durationMedium1 CONSTANT FINAL)
87 Q_PROPERTY(int durationMedium2 READ durationMedium2 CONSTANT FINAL)
88 Q_PROPERTY(int durationMedium3 READ durationMedium3 CONSTANT FINAL)
89 Q_PROPERTY(int durationMedium4 READ durationMedium4 CONSTANT FINAL)
90 Q_PROPERTY(int durationLong1 READ durationLong1 CONSTANT FINAL)
91 Q_PROPERTY(int durationLong2 READ durationLong2 CONSTANT FINAL)
92 Q_PROPERTY(int durationLong3 READ durationLong3 CONSTANT FINAL)
93 Q_PROPERTY(int durationLong4 READ durationLong4 CONSTANT FINAL)
94 Q_PROPERTY(int durationExtraLong1 READ durationExtraLong1 CONSTANT FINAL)
95 Q_PROPERTY(int durationExtraLong2 READ durationExtraLong2 CONSTANT FINAL)
96 Q_PROPERTY(int durationExtraLong3 READ durationExtraLong3 CONSTANT FINAL)
97 Q_PROPERTY(int durationExtraLong4 READ durationExtraLong4 CONSTANT FINAL)
98
99 // Motion tokens - Easing and Spring
100 Q_PROPERTY(Fluid::Easing easing READ easing CONSTANT FINAL)
101 Q_PROPERTY(Fluid::Spring spring READ spring CONSTANT FINAL)
102
103public:
104 explicit Tokens(QObject *parent = nullptr);
105
106 // Shape tokens - Corner radius
107 qreal cornerRadiusNone() const;
108 qreal cornerRadiusExtraSmall() const;
109 qreal cornerRadiusSmall() const;
110 qreal cornerRadiusMedium() const;
111 qreal cornerRadiusLarge() const;
112 qreal cornerRadiusExtraLarge() const;
113 qreal cornerRadiusFull() const;
114
115 // Typography tokens
116 TypeScale *typescale() const;
118
119 // Spacing tokens
120 int spacingExtraSmall() const;
121 int spacingSmall() const;
122 int spacingMedium() const;
123 int spacingLarge() const;
124 int spacingExtraLarge() const;
125
126 // Elevation tokens
127 int elevationLevel0() const;
128 int elevationLevel1() const;
129 int elevationLevel2() const;
130 int elevationLevel3() const;
131 int elevationLevel4() const;
132 int elevationLevel5() const;
133
134 // Motion tokens - Duration
135 int durationShort1() const;
136 int durationShort2() const;
137 int durationShort3() const;
138 int durationShort4() const;
139 int durationMedium1() const;
140 int durationMedium2() const;
141 int durationMedium3() const;
142 int durationMedium4() const;
143 int durationLong1() const;
144 int durationLong2() const;
145 int durationLong3() const;
146 int durationLong4() const;
147 int durationExtraLong1() const;
148 int durationExtraLong2() const;
149 int durationExtraLong3() const;
150 int durationExtraLong4() const;
151
152 // Motion tokens - Easing and Spring
153 Easing easing() const;
154 Spring spring() const;
155
156 static Tokens *create(QQmlEngine *engine, QJSEngine *jsEngine);
157
158private:
159 TypeScale *m_typescale = nullptr;
160 EmphasizedTypeScale *m_emphasizedTypeScale = nullptr;
161 Easing m_easing;
162 Spring m_spring;
163};
164
165} // namespace Fluid
Material Design 3 emphasized type scale tokens.
Definition typescale.h:202
Material Design 3 design tokens.
Definition tokens.h:48
int spacingLarge
Definition tokens.h:70
qreal cornerRadiusExtraLarge
Definition tokens.h:59
int elevationLevel1
Definition tokens.h:75
int durationShort3
Definition tokens.h:84
int durationLong2
Definition tokens.h:91
Fluid::Spring spring
Definition tokens.h:101
EmphasizedTypeScale * emphasizedTypeScale
Definition tokens.h:64
TypeScale * typescale
Definition tokens.h:63
int durationLong3
Definition tokens.h:92
static Tokens * create(QQmlEngine *engine, QJSEngine *jsEngine)
Definition tokens.cpp:222
int durationMedium2
Definition tokens.h:87
QML_SINGLETONqreal cornerRadiusNone
Definition tokens.h:54
int elevationLevel0
Definition tokens.h:74
int durationLong1
Definition tokens.h:90
qreal cornerRadiusFull
Definition tokens.h:60
qreal cornerRadiusLarge
Definition tokens.h:58
int durationExtraLong4
Definition tokens.h:97
int durationExtraLong3
Definition tokens.h:96
qreal cornerRadiusMedium
Definition tokens.h:57
int spacingSmall
Definition tokens.h:68
int durationLong4
Definition tokens.h:93
int durationMedium4
Definition tokens.h:89
int durationShort4
Definition tokens.h:85
int durationExtraLong2
Definition tokens.h:95
qreal cornerRadiusExtraSmall
Definition tokens.h:55
int durationExtraLong1
Definition tokens.h:94
int elevationLevel3
Definition tokens.h:77
qreal cornerRadiusSmall
Definition tokens.h:56
int spacingMedium
Definition tokens.h:69
int durationMedium1
Definition tokens.h:86
int spacingExtraLarge
Definition tokens.h:71
int durationShort2
Definition tokens.h:83
int elevationLevel5
Definition tokens.h:79
Fluid::Easing easing
Definition tokens.h:100
int durationShort1
Definition tokens.h:82
int elevationLevel4
Definition tokens.h:78
int durationMedium3
Definition tokens.h:88
int spacingExtraSmall
Definition tokens.h:67
int elevationLevel2
Definition tokens.h:76
Material Design 3 type scale tokens.
Definition typescale.h:123
Definition elevationmaterial.cpp:27
Definition easing.h:12
Definition easing.h:50