• Stars
    star
    300
  • Rank 138,870 (Top 3 %)
  • Language QML
  • License
    MIT License
  • Created about 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🧩 Collection of Material Components based on QtQuickControls2.

Qaterial

👷 Continuous Deployment gitmoji

A collection Material Components to build faster UI using Qml.

Warning : If you intend to use Qaterial in your project, you should use a stable version (v1.3) or create your own fork. I'm using this library for my own projects, and I will introduce breaking change if needed. This library isn't meant for LTS. Use at your own risk.

Feel free to pull request.

🚀 Overview

Roadmap

Some history. I started this library as a way to learn qml and how controls work. I made some api mistake so i'm fixing them here and there as time go. There will be breaking change.

Breaking Change

My goal is to move to more standard API relying more only on QtQuickControls default property. I think i made the mistake to introduce some property in type that doesn't need to be there. Here are some idea where i'm going:

  • Move to Material 2018 text type. (Deprecate Material 2014 text type)
  • Deprecate textType to only use font that is present in every controls. (Already in master) Now you can use Label.Headline6 for example where you used textType: Qaterial.Style.TextType.Title. Or font: Qaterial.Style.textTheme.headline6.
  • Deprecate onPrimary, colorReverse, etc... that are everywhere
  • Introduce a ColorTheme for base color of every controls.
  • Use palette introduced in Qt 5.13 as the way to change colors to every controls. This will deprecate foregroundColor, backgroundColor, etc ... in many controls.
  • Use attached properties for custom properties (ie elevation) as qt recommend in documentation.
  • TextField will become a simple control without decorator meant to be the base of more customizable controls. You should move to TextFieldFilled or TextFieldOutlined or TextField2014 to have decorator (icon, suffix, prefix, etc...) (TextField2014 is already available as it is TextField). Maybe introduce a TextFieldDecorated without any background. Also maybe use placeholderText instead of title. Since title is used as placeholder from my experience.
  • ColorPicker (i think it will be multiple variant and building block since everyone wants a different color picker).
  • Deprecate some components llike DoublePage that are too much specialized and are not controls.
  • Change name of FabButton to FloatingActionButton.
  • Clean the mess of RawMaterialButton.
  • Base TextArea on T.TextArea and not Item.
  • More example in general.
  • Deprecate TabBar specialization that are too much specialized that i end up never using them. They would better fit as example.
  • Deprecate RoundColorIcon that is too complicated to use (and maintain)
  • Refactor RoundImage to use ClipRRect.

Missing Components (ideas)

  • AppBar (today only called ToolBar)
  • Avatar
  • Badge
  • Backdrop
  • Breadcrumb
  • Chips
  • Navigation rail
  • Bottom sheets
  • SearchBar

📌 Dependencies

dependencies

More Repositories

1

QaterialGallery

🖼️ Qaterial Library Showcase.
QML
100
star
2

QtIosCMake

📱 Deploy Qt Application for iOS with a single macro when using CMake.
CMake
55
star
3

QaterialHotReload

🔥 Qml Hot Reload software.
QML
40
star
4

QOlm

🧱 QAbstractListModel subclass that provide List of QObject to C++ and Qml
C++
29
star
5

QtStaticCMake

Collection of macros to generate Qt plugin import statement when building with CMake and a static Qt version
CMake
27
star
6

QtWindowsCMake

💻 CMake macro to deploy and create installer for Qt application on windows.
CMake
27
star
7

asio.cmake

Small CMake wrapper to add asio with a simple FetchContent.
CMake
16
star
8

cmocka-cmake-example

A sample project using CMocka with CMake
CMake
14
star
9

QQuickStaticHelloWorld

Hello world qt quick application with static qt 5.14
CMake
14
star
10

MaterialDesignSvgo

About ✒5600+ Material Design Icons from the Community, size optimized with svgo.
JavaScript
13
star
11

QbcInstaller

CMake Wrapper around QT Installer Framework to create installer (x86 or x64) for a single package
CMake
12
star
12

QtLinuxCMakeDocker

🐳 Docker image with latest Qt/CMake/GCC to build AppImage.
Dockerfile
11
star
13

QtWasmCMake

🌍 Deploy Qt Application for WebAssembly with a single function when using CMake.
CMake
11
star
14

QtMacCMake

💻 CMake function that wrap macdeployqt, deploy dmg and pkg.
CMake
10
star
15

NetUdp

✉️ Provide Udp Socket fully exposed to Qml.
C++
10
star
16

QtLinuxCMake

💻 CMake function to generate AppImage from qt application.
CMake
10
star
17

QtGeneratorCMake

Collection of CMake function to generate `qrc`, `qmldir` files for qt applications.
CMake
9
star
18

QSuperMacros

A set of one-line C++ macros to simplify the creation of reccurent things (like Qt Meta Properties) so that doing them in C++ is not harder than in QML, and requires no boilerplate glue-code.
C++
9
star
19

ObjectListModel

Additional data models aimed to bring more power to QML applications by using useful C++ models in back-end.
C++
7
star
20

NetTcp

🔌 Provide Tcp Server and Socket fully exposed to Qml.
C++
5
star
21

Recycler

C++ container that recycle object allocated with std::shared_ptr
C++
5
star
22

QtAndroidCMakeDocker

Docker image to build qt based android app
Dockerfile
4
star
23

QtWasmCMakeDocker

A container for building Qt applications with CMake for the web platform.
Dockerfile
3
star
24

Unique

C++ library to provide unique id, and map of unique stuff for you application.
C++
3
star
25

NetTcpJson

Send Json via TCP using {json object boundaries} as packet delimiter.
C++
3
star
26

FlatBuffersDlc

This project provide a simple CMake macro to build flatc executable and generate flatbuffers c++ headers.
C++
3
star
27

QQuickMaterialHelper

A collection of helper for QtQuick and QtQuickControls to build faster UI using Qml following Material design guidelines.
QML
3
star
28

QaterialHotReloadHelloWorld

Minimal project that integrate QaterialHotReload as a library.
C++
2
star
29

QQuickMaterialHelperGallery

Showcase of QQuickMaterialHelper
QML
2
star
30

QQuickHelper

A collection of helper for QtQuick and QtQuickControls to build faster UI using Qml.
QML
2
star
31

bezierpp

Header only library to create bezier curve, in 2D or 3D.
C++
2
star
32

ArtnetConverter

🧮 Cross-platform application to convert from Artnet Network/SubNet/Universe to absolute Universe
CMake
1
star
33

LibEndian

A cross platform C++ library to finally get rid of binary serialization issues.
C++
1
star
34

QaterialHelloWorld

👋 Minimal code for a Qaterial Application.
CMake
1
star
35

ArmDevEclipse

1
star
36

Stringify

Helper to convert basic type to/from QString
C++
1
star
37

MorpionQml

Basic morpion game using only qt quick primitive (Rectangle/Text/MouseArea). Demo for beginners.
QML
1
star