import qs.config import QtQuick import QtQuick.Layouts ContentRowCard { id: infoCard // --- Properties --- property string icon: "info" property color backgroundColor: Appearance.m3colors.darkMode ? Qt.lighter(Appearance.m3colors.m3error, 3.5) : Qt.lighter(Appearance.m3colors.m3error, 1) property color contentColor: Appearance.m3colors.m3onPrimary property string title: "Title" property string description: "Description" color: backgroundColor cardSpacing: Metrics.spacing(12) // nice spacing between elements RowLayout { id: mainLayout Layout.fillHeight: true Layout.fillWidth: true spacing: Metrics.spacing(16) Layout.alignment: Qt.AlignVCenter // --- Icon --- MaterialSymbol { id: infoIcon icon: infoCard.icon iconSize: Metrics.iconSize(26) color: contentColor Layout.alignment: Qt.AlignVCenter } // --- Text column --- ColumnLayout { spacing: Metrics.spacing(2) Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter StyledText { text: infoCard.title font.bold: true color: contentColor font.pixelSize: Metrics.fontSize(14) Layout.fillWidth: true } StyledText { text: infoCard.description color: contentColor font.pixelSize: Metrics.fontSize(12) Layout.fillWidth: true wrapMode: Text.WordWrap } } } }