QmlMaterial 0.1.0
Loading...
Searching...
No Matches
token.hpp
1#pragma once
2
3#include <array>
4#include <QtCore/QEasingCurve>
5#include <QtGui/QFont>
6#include <QtQml/QQmlEngine>
7#include <QtQuick/QQuickWindow>
8
9#include "qml_material/core.hpp"
10#include "qml_material/export.hpp"
11#include "qml_material/token/type_scale.hpp"
12#include "qml_material/token/duration.hpp"
13#include "qml_material/token/split_button.hpp"
14#include "qml_material/token/button.hpp"
15#include "qml_material/token/segmented_button.hpp"
16#include "qml_material/token/combo_box.hpp"
17#include "qml_material/token/text_field.hpp"
18#include "qml_material/token/badge.hpp"
19#include "qml_material/token/fab_menu.hpp"
20#include "qml_material/token/extended_fab.hpp"
21#include "qml_material/token/floating_toolbar.hpp"
22#include "qml_material/token/time_picker.hpp"
23#include "qml_material/anim/interpolator.hpp"
24#include "qml_material/core/enum.hpp"
25Q_MOC_INCLUDE("qml_material/token/icon.hpp")
26
27namespace qml_material::token
28{
29
30class IconToken;
31auto create_icon_token(QObject* parent) -> IconToken*;
32
40 Q_GADGET
41 QML_ANONYMOUS
42
44 Q_PROPERTY(qint32 min_width MEMBER min_width CONSTANT FINAL)
46 Q_PROPERTY(qint32 max_width MEMBER max_width CONSTANT FINAL)
48 Q_PROPERTY(qml_material::Enum::WindowClassType type MEMBER type CONSTANT FINAL)
49
50public:
51 Q_INVOKABLE bool contains(i32 w) const { return w >= min_width && w < max_width; }
52 i32 min_width { 0 };
53 i32 max_width { std::numeric_limits<i32>::max() };
54 Enum::WindowClassType type { Enum::WindowClassType::WindowClassCompact };
55};
56
64 Q_GADGET
65 QML_ANONYMOUS
66
68 Q_PROPERTY(qml_material::token::WindowClassItem compact MEMBER compact CONSTANT FINAL)
70 Q_PROPERTY(qml_material::token::WindowClassItem medium MEMBER medium CONSTANT FINAL)
72 Q_PROPERTY(qml_material::token::WindowClassItem expanded MEMBER expanded CONSTANT FINAL)
74 Q_PROPERTY(qml_material::token::WindowClassItem large MEMBER large CONSTANT FINAL)
76 Q_PROPERTY(qml_material::token::WindowClassItem extra_large MEMBER extra_large CONSTANT FINAL)
77
78public:
79 using Type = Enum::WindowClassType;
80
81 Q_INVOKABLE WindowClassItem select(i32 w) const {
82 std::array wcs { &compact, &medium, &expanded, &large, &extra_large };
83 for (auto& el : wcs) {
84 if (el->contains(w)) return *el;
85 }
86 return compact;
87 }
88 Q_INVOKABLE Enum::WindowClassType select_type(i32 w) const {
89 std::array wcs { &compact, &medium, &expanded, &large, &extra_large };
90 for (auto& el : wcs) {
91 if (el->contains(w)) return el->type;
92 }
93 return compact.type;
94 }
95 WindowClassItem compact { 0, 600, Type::WindowClassCompact };
96 WindowClassItem medium { 600, 840, Type::WindowClassMedium };
97 WindowClassItem expanded { 840, 1200, Type::WindowClassExpanded };
98 WindowClassItem large { 1200, 1600, Type::WindowClassLarge };
99 WindowClassItem extra_large { 1600,
100 std::numeric_limits<i32>::max(),
101 Type::WindowClassExtraLarge };
102};
103
110struct Elevation {
111 Q_GADGET_EXPORT(QML_MATERIAL_API)
112 QML_ANONYMOUS
113
115 Q_PROPERTY(qint32 level0 MEMBER level0 CONSTANT FINAL)
117 Q_PROPERTY(qint32 level1 MEMBER level1 CONSTANT FINAL)
119 Q_PROPERTY(qint32 level2 MEMBER level2 CONSTANT FINAL)
121 Q_PROPERTY(qint32 level3 MEMBER level3 CONSTANT FINAL)
123 Q_PROPERTY(qint32 level4 MEMBER level4 CONSTANT FINAL)
125 Q_PROPERTY(qint32 level5 MEMBER level5 CONSTANT FINAL)
126public:
127 bool operator==(const Elevation&) const = default;
128 i32 level0 { 0 };
129 i32 level1 { 1 };
130 i32 level2 { 3 };
131 i32 level3 { 6 };
132 i32 level4 { 8 };
133 i32 level5 { 12 };
134};
135
140struct Easing {
141 Q_GADGET_EXPORT(QML_MATERIAL_API)
142 QML_ANONYMOUS
144 Q_PROPERTY(QEasingCurve emphasized READ emphasized CONSTANT FINAL)
146 Q_PROPERTY(QEasingCurve emphasized_accelerate READ emphasized_accelerate CONSTANT FINAL)
148 Q_PROPERTY(QEasingCurve emphasized_decelerate READ emphasized_decelerate CONSTANT FINAL)
150 Q_PROPERTY(QEasingCurve standard READ standard CONSTANT FINAL)
152 Q_PROPERTY(QEasingCurve standard_accelerate READ standard_accelerate CONSTANT FINAL)
154 Q_PROPERTY(QEasingCurve standard_decelerate READ standard_decelerate CONSTANT FINAL)
156 Q_PROPERTY(QEasingCurve legacy READ legacy CONSTANT FINAL)
158 Q_PROPERTY(QEasingCurve legacy_accelerate READ legacy_accelerate CONSTANT FINAL)
160 Q_PROPERTY(QEasingCurve legacy_decelerate READ legacy_decelerate CONSTANT FINAL)
162 Q_PROPERTY(QEasingCurve linear READ linear CONSTANT FINAL)
163
164public:
165 bool operator==(const Easing&) const = default;
166 auto emphasized() const noexcept -> QEasingCurve { return anim::emphasized(); }
167 auto emphasized_accelerate() const noexcept -> QEasingCurve {
168 return anim::emphasized_accelerate();
169 }
170 auto emphasized_decelerate() const noexcept -> QEasingCurve {
171 return anim::emphasized_decelerate();
172 }
173 auto standard() const noexcept -> QEasingCurve { return anim::standard(); }
174 auto standard_accelerate() const noexcept -> QEasingCurve {
175 return anim::standard_accelerate();
176 }
177 auto standard_decelerate() const noexcept -> QEasingCurve {
178 return anim::standard_decelerate();
179 }
180 auto legacy() const noexcept -> QEasingCurve { return anim::legacy(); }
181 auto legacy_accelerate() const noexcept -> QEasingCurve { return anim::legacy_accelerate(); }
182 auto legacy_decelerate() const noexcept -> QEasingCurve { return anim::legacy_decelerate(); }
183 auto linear() const noexcept -> QEasingCurve { return anim::linear(); }
184};
185
193 Q_GADGET
194 QML_ANONYMOUS
196 Q_PROPERTY(qint32 none MEMBER none CONSTANT FINAL)
198 Q_PROPERTY(qint32 extra_small MEMBER extra_small CONSTANT FINAL)
200 Q_PROPERTY(qint32 small MEMBER small CONSTANT FINAL)
202 Q_PROPERTY(qint32 medium MEMBER medium CONSTANT FINAL)
204 Q_PROPERTY(qint32 large MEMBER large CONSTANT FINAL)
206 Q_PROPERTY(qint32 extra_large MEMBER extra_large CONSTANT FINAL)
208 Q_PROPERTY(qint32 full MEMBER full CONSTANT FINAL)
209public:
211 i32 none { 0 };
212 i32 extra_small { 4 };
213 i32 small { 8 };
214 i32 medium { 12 };
215 i32 large { 16 };
216 i32 extra_large { 28 };
217 i32 full { 100 };
218 bool operator==(const ShapeCorner&) const = default;
219};
220
226struct Shape {
227 Q_GADGET
228 QML_ANONYMOUS
229 Q_PROPERTY(qml_material::token::ShapeCorner corner MEMBER corner CONSTANT FINAL)
230public:
231 ShapeCorner corner;
232 bool operator==(const Shape&) const = default;
233};
234
241struct StateItem {
242 Q_GADGET
243 QML_ANONYMOUS
245 Q_PROPERTY(double state_layer_opacity MEMBER state_layer_opacity CONSTANT FINAL)
246public:
247 bool operator==(const StateItem&) const = default;
248 double state_layer_opacity;
249};
250
259struct FocusRing {
260 Q_GADGET
261 QML_ANONYMOUS
262 Q_PROPERTY(qreal outer_stroke_width MEMBER outer_stroke_width CONSTANT FINAL)
263 Q_PROPERTY(qreal inner_stroke_width MEMBER inner_stroke_width CONSTANT FINAL)
264 Q_PROPERTY(qreal inner_stroke_inset MEMBER inner_stroke_inset CONSTANT FINAL)
265 Q_PROPERTY(qreal outer_offset MEMBER outer_offset CONSTANT FINAL)
266public:
267 bool operator==(const FocusRing&) const = default;
268 qreal outer_stroke_width { 2 };
269 qreal inner_stroke_width { 3 };
270 qreal inner_stroke_inset { 1 };
271 qreal outer_offset { 2 };
272};
273
280struct State {
281 Q_GADGET_EXPORT(QML_MATERIAL_API)
282 QML_ANONYMOUS
284 Q_PROPERTY(qml_material::token::StateItem hover MEMBER hover CONSTANT FINAL)
286 Q_PROPERTY(qml_material::token::StateItem pressed MEMBER pressed CONSTANT FINAL)
288 Q_PROPERTY(qml_material::token::StateItem focus MEMBER focus CONSTANT FINAL)
290 Q_PROPERTY(qml_material::token::StateItem dragged MEMBER dragged CONSTANT FINAL)
291
293 Q_PROPERTY(qml_material::token::FocusRing focus_ring MEMBER focus_ring CONSTANT FINAL)
294
296 Q_PROPERTY(double disabled_content MEMBER disabled_content CONSTANT FINAL)
298 Q_PROPERTY(double disabled_container MEMBER disabled_container CONSTANT FINAL)
299
300public:
301 bool operator==(const State&) const = default;
302 StateItem hover { 0.08 };
303 StateItem pressed { 0.1 };
304 StateItem focus { 0.1 };
305 StateItem dragged { 0.16 };
306
307 FocusRing focus_ring;
308
309 double disabled_content { 0.38 };
310 double disabled_container { 0.12 };
311};
312
319class Flick : public QObject {
320 Q_OBJECT
321 QML_ANONYMOUS
323 Q_PROPERTY(qint32 pressDelay READ pressDelay NOTIFY pressDelayChanged FINAL)
325 Q_PROPERTY(
326 double flickDeceleration READ flickDeceleration NOTIFY flickDecelerationChanged FINAL)
328 Q_PROPERTY(double maximumFlickVelocity READ maximumFlickVelocity NOTIFY
329 maximumFlickVelocityChanged FINAL)
330public:
331 Flick(QObject* parent = nullptr);
332 ~Flick();
333 auto pressDelay() const -> qint32;
334 auto flickDeceleration() const -> double;
335 auto maximumFlickVelocity() const -> double;
336
337 Q_SIGNAL void pressDelayChanged();
338 Q_SIGNAL void flickDecelerationChanged();
339 Q_SIGNAL void maximumFlickVelocityChanged();
340
341private:
342 qint32 m_press_delay;
343 double m_flick_deceleration;
344 double m_maximum_flickVelocity;
345};
346
350struct Carousel {
351 Q_GADGET
352 QML_ANONYMOUS
353 Q_PROPERTY(qreal item_spacing MEMBER item_spacing CONSTANT FINAL)
354 Q_PROPERTY(qreal container_height_horizontal MEMBER container_height_horizontal CONSTANT FINAL)
355 Q_PROPERTY(qreal default_item_extent MEMBER default_item_extent CONSTANT FINAL)
356 Q_PROPERTY(qreal small_item_min MEMBER small_item_min CONSTANT FINAL)
357 Q_PROPERTY(qreal small_item_max MEMBER small_item_max CONSTANT FINAL)
358 Q_PROPERTY(qreal container_padding_vertical MEMBER container_padding_vertical CONSTANT FINAL)
359 Q_PROPERTY(qreal small_item_min_ratio MEMBER small_item_min_ratio CONSTANT FINAL)
360 Q_PROPERTY(qreal small_item_max_ratio MEMBER small_item_max_ratio CONSTANT FINAL)
361 Q_PROPERTY(qreal large_item_max_aspect MEMBER large_item_max_aspect CONSTANT FINAL)
362 Q_PROPERTY(qreal min_item_aspect MEMBER min_item_aspect CONSTANT FINAL)
363 Q_PROPERTY(qreal max_item_aspect MEMBER max_item_aspect CONSTANT FINAL)
364 Q_PROPERTY(qint32 item_corner MEMBER item_corner CONSTANT FINAL)
365 Q_PROPERTY(qint32 snap_duration MEMBER snap_duration CONSTANT FINAL)
366 Q_PROPERTY(qreal title_fade_span MEMBER title_fade_span CONSTANT FINAL)
367 Q_PROPERTY(qreal chrome_row_height MEMBER chrome_row_height CONSTANT FINAL)
368 Q_PROPERTY(qreal chrome_row_spacing MEMBER chrome_row_spacing CONSTANT FINAL)
369 Q_PROPERTY(qreal default_width MEMBER default_width CONSTANT FINAL)
370 Q_PROPERTY(qreal default_height_vertical MEMBER default_height_vertical CONSTANT FINAL)
371 Q_PROPERTY(qreal min_peek_px MEMBER min_peek_px CONSTANT FINAL)
372 Q_PROPERTY(qreal parallax_ratio MEMBER parallax_ratio CONSTANT FINAL)
373 Q_PROPERTY(qreal parallax_ratio_uncontained MEMBER parallax_ratio_uncontained CONSTANT FINAL)
374public:
375 qreal item_spacing { 8 };
376 qreal container_height_horizontal { 196 };
377 qreal default_item_extent { 180 };
378 qreal small_item_min { 40 };
379 qreal small_item_max { 56 };
380 qreal container_padding_vertical { 8 };
381 qreal small_item_min_ratio { 0.45 };
382 qreal small_item_max_ratio { 0.55 };
383 qreal large_item_max_aspect { 2.0 };
384 qreal min_item_aspect { 9.0 / 16.0 };
385 qreal max_item_aspect { 16.0 / 9.0 };
386 i32 item_corner { 28 };
387 i32 snap_duration { int(Duration {}.medium4) };
388 qreal title_fade_span { 80 };
389 qreal chrome_row_height { 40 };
390 qreal chrome_row_spacing { 8 };
391 qreal default_width { 480 };
392 qreal default_height_vertical { 320 };
393 qreal min_peek_px { 16 };
394 qreal parallax_ratio { 0.35 };
395 qreal parallax_ratio_uncontained { 0.5 };
396};
397
401struct Slider {
402 Q_GADGET
403 QML_ANONYMOUS
404 Q_PROPERTY(qreal active_track_height MEMBER active_track_height CONSTANT FINAL)
405 Q_PROPERTY(qreal inactive_track_height MEMBER inactive_track_height CONSTANT FINAL)
406 Q_PROPERTY(qreal active_track_height_xsmall MEMBER active_track_height_xsmall CONSTANT FINAL)
407 Q_PROPERTY(qreal active_track_height_small MEMBER active_track_height_small CONSTANT FINAL)
408 Q_PROPERTY(qreal active_track_height_medium MEMBER active_track_height_medium CONSTANT FINAL)
409 Q_PROPERTY(qreal active_track_height_large MEMBER active_track_height_large CONSTANT FINAL)
410 Q_PROPERTY(qreal active_track_height_xlarge MEMBER active_track_height_xlarge CONSTANT FINAL)
411 Q_PROPERTY(qreal stop_indicator_size MEMBER stop_indicator_size CONSTANT FINAL)
412 Q_PROPERTY(qreal thumb_track_gap MEMBER thumb_track_gap CONSTANT FINAL)
413 Q_PROPERTY(qreal track_inside_corner MEMBER track_inside_corner CONSTANT FINAL)
414 Q_PROPERTY(qreal inset_icon_size MEMBER inset_icon_size CONSTANT FINAL)
415 Q_PROPERTY(qreal inset_icon_padding MEMBER inset_icon_padding CONSTANT FINAL)
416 Q_PROPERTY(qint32 handle_height MEMBER handle_height CONSTANT FINAL)
417 Q_PROPERTY(qint32 handle_width MEMBER handle_width CONSTANT FINAL)
418public:
419 qreal active_track_height { 16 };
420 qreal inactive_track_height { 4 };
421 qreal active_track_height_xsmall { 16 };
422 qreal active_track_height_small { 24 };
423 qreal active_track_height_medium { 40 };
424 qreal active_track_height_large { 56 };
425 qreal active_track_height_xlarge { 96 };
426 qreal stop_indicator_size { 4 };
427 qreal thumb_track_gap { 6 };
428 qreal track_inside_corner { 2 };
429 qreal inset_icon_size { 24 };
430 qreal inset_icon_padding { 8 };
431 i32 handle_height { 44 };
432 i32 handle_width { 12 };
433};
434
441struct Spacing {
442 Q_GADGET
443 QML_ANONYMOUS
445 Q_PROPERTY(qint32 none MEMBER none CONSTANT FINAL)
447 Q_PROPERTY(qint32 extra_small MEMBER extra_small CONSTANT FINAL)
449 Q_PROPERTY(qint32 small MEMBER small CONSTANT FINAL)
451 Q_PROPERTY(qint32 medium_small MEMBER medium_small CONSTANT FINAL)
453 Q_PROPERTY(qint32 medium MEMBER medium CONSTANT FINAL)
455 Q_PROPERTY(qint32 large_medium MEMBER large_medium CONSTANT FINAL)
457 Q_PROPERTY(qint32 large MEMBER large CONSTANT FINAL)
459 Q_PROPERTY(qint32 extra_large MEMBER extra_large CONSTANT FINAL)
460public:
461 i32 none { 0 };
462 i32 extra_small { 4 };
463 i32 small { 8 };
464 i32 medium_small { 12 };
465 i32 medium { 16 };
466 i32 large_medium { 24 };
467 i32 large { 32 };
468 i32 extra_large { 48 };
469};
470
477class Token : public QObject {
478 Q_OBJECT
479 Q_PROPERTY(QQmlListProperty<QObject> datas READ datas FINAL)
480 Q_CLASSINFO("DefaultProperty", "datas")
481 QML_NAMED_ELEMENT(TokenImpl)
482
483 Q_PROPERTY(QString version READ version CONSTANT FINAL)
484 Q_PROPERTY(QString iconFontUrl READ icon_font_url CONSTANT FINAL)
485 Q_PROPERTY(QString iconFill0FontUrl READ icon_fill_0_font_url CONSTANT FINAL)
486 Q_PROPERTY(QString iconFill1FontUrl READ icon_fill_1_font_url CONSTANT FINAL)
487
488
489 Q_PROPERTY(qml_material::token::TypeScale* typescale READ typescale CONSTANT FINAL)
491 Q_PROPERTY(qml_material::token::IconToken* icon READ icon CONSTANT FINAL)
493 Q_PROPERTY(qml_material::token::Flick* flick READ flick CONSTANT FINAL)
495 Q_PROPERTY(qml_material::token::Elevation elevation READ elevation CONSTANT FINAL)
497 Q_PROPERTY(qml_material::token::Duration duration READ duration CONSTANT FINAL)
499 Q_PROPERTY(qml_material::token::Easing easing READ easing CONSTANT FINAL)
501 Q_PROPERTY(qml_material::token::State state READ state CONSTANT FINAL)
503 Q_PROPERTY(qml_material::token::Shape shape READ shape CONSTANT FINAL)
505 Q_PROPERTY(qml_material::token::WindowClass window_class READ window_class CONSTANT FINAL)
507 Q_PROPERTY(qml_material::token::Spacing spacing READ spacing CONSTANT FINAL)
509 Q_PROPERTY(qml_material::token::SplitButtonSize split_button READ split_button CONSTANT FINAL)
511 Q_PROPERTY(qml_material::token::ButtonSize button READ button CONSTANT FINAL)
513 Q_PROPERTY(qml_material::token::SegmentedButtonSize segmented_button READ segmented_button
514 CONSTANT FINAL)
516 Q_PROPERTY(qml_material::token::IconButtonSize icon_button READ icon_button CONSTANT FINAL)
518 Q_PROPERTY(qml_material::token::ComboBoxSize combo_box READ combo_box CONSTANT FINAL)
520 Q_PROPERTY(qml_material::token::TextFieldSize text_field READ text_field CONSTANT FINAL)
522 Q_PROPERTY(qml_material::token::BadgeSize badge READ badge CONSTANT FINAL)
523 Q_PROPERTY(qml_material::token::FABMenu fab_menu READ fab_menu CONSTANT FINAL)
524 Q_PROPERTY(qml_material::token::ExtendedFAB extended_fab READ extended_fab CONSTANT FINAL)
525 Q_PROPERTY(
526 qml_material::token::FloatingToolbar floating_toolbar READ floating_toolbar CONSTANT FINAL)
528 Q_PROPERTY(qml_material::token::Carousel carousel READ carousel CONSTANT FINAL)
529 Q_PROPERTY(qml_material::token::Slider slider READ slider CONSTANT FINAL)
530 Q_PROPERTY(qml_material::token::TimePicker time_picker READ time_picker CONSTANT FINAL)
531public:
532 Token(QObject* = nullptr);
533 TimePicker time_picker() const { return {}; }
534 FABMenu fab_menu() const { return {}; }
535 ExtendedFAB extended_fab() const { return {}; }
536 FloatingToolbar floating_toolbar() const { return {}; }
537 ~Token();
538
539 auto version() const -> QString;
540 auto icon_font_url() const -> QString;
541 auto icon_fill_0_font_url() const -> QString;
542 auto icon_fill_1_font_url() const -> QString;
543
544 auto typescale() const -> TypeScale*;
545 auto icon() const -> IconToken*;
546 auto flick() const -> Flick*;
547 auto elevation() const -> const Elevation&;
548 auto state() const -> const State&;
549 auto shape() const -> const Shape&;
550 auto window_class() const -> const WindowClass&;
551 auto duration() const -> const Duration&;
552 auto easing() const -> const Easing&;
553 auto spacing() const -> const Spacing&;
554 auto split_button() const -> const SplitButtonSize&;
555 auto button() const -> const ButtonSize&;
556 auto segmented_button() const -> const SegmentedButtonSize&;
557 auto icon_button() const -> const IconButtonSize&;
558 auto combo_box() const -> const ComboBoxSize&;
559 auto text_field() const -> const TextFieldSize&;
560 auto badge() const -> const BadgeSize&;
561 auto carousel() const -> const Carousel&;
562 auto slider() const -> const Slider&;
563
564 auto datas() -> QQmlListProperty<QObject>;
565
566 Q_INVOKABLE double cal_curve_scale(double dpr) const;
567
568private:
569 TypeScale* m_typescale;
570 IconToken* m_icon;
571 Flick* m_flick;
572 Duration m_duration;
573 Easing m_easing;
574 Elevation m_elevation;
575 State m_state;
576 Shape m_shape;
577 WindowClass m_win_class;
578 Spacing m_spacing;
579 SplitButtonSize m_split_button;
580 ButtonSize m_button;
581 SegmentedButtonSize m_segmented_button;
582 IconButtonSize m_icon_button;
583 ComboBoxSize m_combo_box;
584 TextFieldSize m_text_field;
585 BadgeSize m_badge;
586 Carousel m_carousel;
587 Slider m_slider;
588
589 QList<QObject*> m_datas;
590};
591
592} // namespace qml_material::token
Matieral Token.
Definition Token.qml:18
Enum.
Definition enum.hpp:13
WindowClassType
Definition enum.hpp:145
Handles flicking behavior and physics parameters.
Definition token.hpp:319
IconToken, full codes.
Definition icon.hpp:14
Main token container for Material Design system.
Definition token.hpp:477
TypeScale.
Definition type_scale.hpp:66
Collection of button size tokens for different size classes.
Definition button.hpp:47
Carousel layout and sizing tokens (M3 Carousel specs)
Definition token.hpp:350
Motion duration.
Definition duration.hpp:14
qreal medium4
Extended medium duration (400ms)
Definition duration.hpp:32
Motion easing.
Definition token.hpp:140
Defines elevation levels for Material Design shadows.
Definition token.hpp:110
Geometry tokens for the M3 keyboard focus ring.
Definition token.hpp:259
Collection of icon button size tokens for different size classes.
Definition button.hpp:148
Collection of segmented button size tokens for different size classes.
Definition segmented_button.hpp:47
Defines corner radius values for shape styling.
Definition token.hpp:192
Container for shape-related styling properties.
Definition token.hpp:226
Slider layout tokens (M3 Slider specs)
Definition token.hpp:401
Defines standard spacing values.
Definition token.hpp:441
Collection of split button size tokens for different size classes.
Definition split_button.hpp:70
Defines opacity values for different UI states.
Definition token.hpp:241
Manages UI element state appearances.
Definition token.hpp:280
Represents a window class category with size constraints.
Definition token.hpp:39
qml_material::Enum::WindowClassType type
Type classification of the window size (compact, medium, expanded etc.)
Definition token.hpp:48
Window classification system based on width ranges.
Definition token.hpp:63