diff --git a/storybook/pages/ColorsPage.qml b/storybook/pages/ColorsPage.qml index 6d20d1daf82..42fe9df225b 100644 --- a/storybook/pages/ColorsPage.qml +++ b/storybook/pages/ColorsPage.qml @@ -3,64 +3,147 @@ import QtQuick.Controls import QtQuick.Layouts import StatusQ -import StatusQ.Core import StatusQ.Core.Theme -import Storybook - import SortFilterProxyModel -SplitView { +Item { id: root - orientation: Qt.Vertical + ListModel { + id: colorsModel + + function extractColorGroup(input) { + const regex = /^(.*Color)\d+$/; + const match = input.match(regex); + return match ? match[1] : ""; + } + + function isColor(val) { + return val.toString().match(/^#[a-fA-F0-9]+$/) + } + + function hasColor(val) { + return val.toString().match(/#[a-fA-F0-9]+/) + } + + Component.onCompleted: { + const entries = Object.entries(root.Theme.palette) + const modelEntries = [] + + function add(key, section, getterFunction) { + modelEntries.push({ + key, + section, + getter: ({ get: getterFunction }) + }) + } + + entries.forEach(e => { + const key = e[0] + const strValue = e[1].toString() + + if (isColor(strValue)) { + const section = extractColorGroup(key) || "Other" + add(key, section, () => root.Theme.palette[key]) + } else if (hasColor(strValue)) { + const subEntries = Object.entries(root.Theme.palette[key]) + + subEntries.forEach(e => { + const subKey = e[0] + const strValue = e[1].toString() + + if (isColor(strValue)) + add(subKey, key, () => root.Theme.palette[key][subKey]) + }) + } + }) + + const colorEntries = Object.entries(StatusColors) + + colorEntries.forEach(e => { + const key = e[0] + const strValue = e[1].toString() + + if (isColor(strValue)) + add(key, "Status Colors", () => StatusColors[key]) + }) + + const sections = new Map() + modelEntries.forEach(e => sections.set(e.section, [])) + modelEntries.forEach(e => sections.get(e.section).push(e)) + + const modelData = [] + sections.forEach((groupData, groupName) + => modelData.push({ groupName, groupData })) + + append(modelData) + } + } component ColorRectangle: Rectangle { id: colorRectangle property alias text: textLabel.text - implicitWidth: 120 - implicitHeight: 60 - Column { - anchors.centerIn: parent - Row { - spacing: 4 - anchors.horizontalCenter: parent.horizontalCenter - Text { - id: textLabel - } - ToolButton { - focusPolicy: Qt.NoFocus - anchors.verticalCenter: parent.verticalCenter - width: 16 - height: 16 - padding: 0 - text: "📋" - font.pixelSize: Theme.asideTextFontSize - onClicked: ClipboardUtils.setText(textLabel.text) - ToolTip.text: "Copy color name" - ToolTip.visible: hovered - } + border.color: "gray" + radius: 10 + + implicitWidth: 260 + implicitHeight: 120 + + Control { + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: 10 + + padding: 5 + + background: Rectangle { + color: "white" + opacity: 0.2 + radius: 5 } - Row { - spacing: 4 - anchors.horizontalCenter: parent.horizontalCenter - Text { - id: colorLabel - color: textLabel.color - text: colorRectangle.color.toString() + + contentItem: Column { + Row { + spacing: 4 + anchors.horizontalCenter: parent.horizontalCenter + Text { + id: textLabel + } + ToolButton { + focusPolicy: Qt.NoFocus + anchors.verticalCenter: parent.verticalCenter + width: 16 + height: 16 + padding: 0 + text: "📋" + font.pixelSize: Theme.asideTextFontSize + onClicked: ClipboardUtils.setText(textLabel.text) + ToolTip.text: "Copy color name" + ToolTip.visible: hovered + } } - ToolButton { - focusPolicy: Qt.NoFocus - anchors.verticalCenter: parent.verticalCenter - width: 16 - height: 16 - padding: 0 - text: "📋" - font.pixelSize: Theme.asideTextFontSize - onClicked: ClipboardUtils.setText(colorLabel.text) - ToolTip.text: "Copy color value" - ToolTip.visible: hovered + Row { + spacing: 4 + anchors.horizontalCenter: parent.horizontalCenter + Text { + id: colorLabel + color: textLabel.color + text: colorRectangle.color.toString() + } + ToolButton { + focusPolicy: Qt.NoFocus + anchors.verticalCenter: parent.verticalCenter + width: 16 + height: 16 + padding: 0 + text: "📋" + font.pixelSize: Theme.asideTextFontSize + onClicked: ClipboardUtils.setText(colorLabel.text) + ToolTip.text: "Copy color value" + ToolTip.visible: hovered + } } } } @@ -72,65 +155,64 @@ SplitView { property string title property var model - ListModel { - id: listModel - Component.onCompleted: { - append(Object.entries(colorFlow.model)) - } - } - Label { Layout.topMargin: 8 - //visible: colorRepeater.count + visible: colorRepeater.count font.weight: Font.Medium - text: "%1 (%2)".arg(colorFlow.title).arg(colorRepeater.count) + font.pixelSize: 15 + topPadding: 8 + text: `${colorFlow.title} (${colorRepeater.count})` } Flow { Layout.preferredWidth: scrollview.availableWidth spacing: 5 + visible: colorRepeater.count + Repeater { id: colorRepeater model: SortFilterProxyModel { - sourceModel: listModel - proxyRoles: [ - ExpressionRole { - name: "name" - expression: model[0] - }, - ExpressionRole { - name: "color" - expression: model[1] - } - ] + sourceModel: colorFlow.model + filters: FastExpressionFilter { + readonly property ThemePalette palette: root.Theme.palette + expression: { searchField.searchText - return (!!model.name && model.name.toLowerCase().includes(searchField.searchText)) || - (!!model.color && model.color.toLowerCase().includes(searchField.searchText)) + palette + + const key = model.key + const color = model.getter.get() + + return key.toLowerCase().includes(searchField.searchText) || + color.toString().toLowerCase().includes(searchField.searchText) } + enabled: searchField.searchText !== "" - expectedRoles: ["name", "color"] + expectedRoles: ["key", "getter"] } } delegate: ColorRectangle { - text: model.name - color: model.color + required property string key + required property var getter + + text: key + color: getter.get() } } } } - Component.onCompleted: searchField.forceActiveFocus() - ScrollView { id: scrollview - contentWidth: availableWidth - SplitView.fillHeight: true + + anchors.fill: parent padding: 8 + contentWidth: availableWidth ColumnLayout { spacing: 0 + RowLayout { Label { text: "Search" @@ -147,132 +229,23 @@ SplitView { enabled: searchField.searchText !== "" onClicked: searchField.clear() } - Label { - text: "INFO: Reload the page after selecting 'Dark mode'" - font.weight: Font.Medium - } - } - - ColorFlow { - title: "Base" - model: { - "baseColor1": Theme.palette.baseColor1.toString(), - "baseColor2": Theme.palette.baseColor2.toString(), - "baseColor3": Theme.palette.baseColor3.toString(), - "baseColor4": Theme.palette.baseColor4.toString(), - "baseColor5": Theme.palette.baseColor5.toString() - } } - ColorFlow { - title: "Primary" - model: { - "primaryColor1": Theme.palette.primaryColor1.toString(), - "primaryColor2": Theme.palette.primaryColor2.toString(), - "primaryColor3": Theme.palette.primaryColor3.toString() - } - } - - ColorFlow { - title: "Danger" - model: { - "dangerColor1": Theme.palette.dangerColor1.toString(), - "dangerColor2": Theme.palette.dangerColor2.toString(), - "dangerColor3": Theme.palette.dangerColor3.toString() - } - } - - ColorFlow { - title: "Warning" - model: { - "warningColor1": Theme.palette.warningColor1.toString(), - "warningColor2": Theme.palette.warningColor2.toString(), - "warningColor3": Theme.palette.warningColor3.toString() - } - } - - ColorFlow { - title: "Success" - model: { - "successColor1": Theme.palette.successColor1.toString(), - "successColor2": Theme.palette.successColor2.toString(), - "successColor3": Theme.palette.successColor3.toString() - } - } - - ColorFlow { - title: "Direct" - model: { - "directColor1": Theme.palette.directColor1.toString(), - "directColor2": Theme.palette.directColor2.toString(), - "directColor3": Theme.palette.directColor3.toString(), - "directColor4": Theme.palette.directColor4.toString(), - "directColor5": Theme.palette.directColor5.toString(), - "directColor6": Theme.palette.directColor6.toString(), - "directColor7": Theme.palette.directColor7.toString(), - "directColor8": Theme.palette.directColor8.toString(), - "directColor9": Theme.palette.directColor9.toString() - } - } - - ColorFlow { - title: "Indirect" - model: { - "indirectColor1": Theme.palette.indirectColor1.toString(), - "indirectColor2": Theme.palette.indirectColor2.toString(), - "indirectColor3": Theme.palette.indirectColor3.toString(), - "indirectColor4": Theme.palette.indirectColor4.toString() - } - } - - ColorFlow { - title: "Mention" - model: { - "mentionColor1": Theme.palette.mentionColor1.toString(), - "mentionColor2": Theme.palette.mentionColor2.toString(), - "mentionColor3": Theme.palette.mentionColor3.toString(), - "mentionColor4": Theme.palette.mentionColor4.toString() - } - } + Repeater { + model: colorsModel - ColorFlow { - title: "Pin" - model: { - "pinColor1": Theme.palette.pinColor1.toString(), - "pinColor2": Theme.palette.pinColor2.toString(), - "pinColor3": Theme.palette.pinColor3.toString() - } - } + delegate: ColorFlow { + required property string groupName + required property var groupData - ColorFlow { - title: "Misc" - model: { - "miscColor1": Theme.palette.miscColor1.toString(), - "miscColor2": Theme.palette.miscColor2.toString(), - "miscColor3": Theme.palette.miscColor3.toString(), - "miscColor4": Theme.palette.miscColor4.toString(), - "miscColor5": Theme.palette.miscColor5.toString(), - "miscColor6": Theme.palette.miscColor6.toString(), - "miscColor7": Theme.palette.miscColor7.toString(), - "miscColor8": Theme.palette.miscColor8.toString(), - "miscColor9": Theme.palette.miscColor9.toString(), - "miscColor10": Theme.palette.miscColor10.toString(), - "miscColor11": Theme.palette.miscColor11.toString(), - "miscColor12": Theme.palette.miscColor12.toString() + title: groupName + model: groupData } } - - ColorFlow { - title: "User customization" - model: Theme.palette.userCustomizationColors - } - - ColorFlow { - title: "Status colors" - model: StatusColors.colors - } } } + + Component.onCompleted: searchField.forceActiveFocus() } // category: Core diff --git a/ui/StatusQ/include/StatusQ/statuscolors.h b/ui/StatusQ/include/StatusQ/statuscolors.h index db41e82c6f9..9ed3d8daab2 100644 --- a/ui/StatusQ/include/StatusQ/statuscolors.h +++ b/ui/StatusQ/include/StatusQ/statuscolors.h @@ -100,86 +100,86 @@ class StatusColors : public QObject Q_INVOKABLE static QColor getColor(const QString& name, qreal alpha = -1); Q_INVOKABLE static QColor alphaColor(const QColor& color, qreal alpha); - static constexpr QColor black = QColor(0x00, 0x00, 0x00); - static constexpr QColor white = QColor(0xFF, 0xFF, 0xFF); + static constexpr QColor black = QColor(0x00, 0x00, 0x00); // #000000 + static constexpr QColor white = QColor(0xFF, 0xFF, 0xFF); // #FFFFFF static constexpr QColor transparent = QColor(0x00, 0x00, 0x00, 0x00); - static constexpr QColor blue = QColor(0x43, 0x60, 0xDF); - static constexpr QColor blue2 = QColor(0x29, 0x46, 0xC4); - static constexpr QColor blue3 = QColor(0x88, 0xB0, 0xFF); - static constexpr QColor blue4 = QColor(0x86, 0x9E, 0xFF); - static constexpr QColor blue5 = QColor(0xAA, 0xC6, 0xFF); - static constexpr QColor blue6 = QColor(0xEC, 0xEF, 0xFC); - static constexpr QColor blue7 = QColor(0x09, 0x10, 0x1C); - static constexpr QColor blue8 = QColor(0x6B, 0x6F, 0x76); - - static constexpr QColor brown = QColor(0x8B, 0x31, 0x31); - static constexpr QColor brown2 = QColor(0x9B, 0x83, 0x2F); - static constexpr QColor brown3 = QColor(0xAD, 0x43, 0x43); - - static constexpr QColor cyan = QColor(0x51, 0xD0, 0xF0); - - static constexpr QColor graphite = QColor(0x21, 0x21, 0x21); - static constexpr QColor graphite2 = QColor(0x25, 0x25, 0x25); - static constexpr QColor graphite3 = QColor(0x2C, 0x2C, 0x2C); - static constexpr QColor graphite4 = QColor(0x37, 0x37, 0x37); - static constexpr QColor graphite5 = QColor(0x90, 0x90, 0x90); - - static constexpr QColor green = QColor(0x4E, 0xBC, 0x60); - static constexpr QColor green2 = QColor(0x7C, 0xDA, 0x00); - static constexpr QColor green3 = QColor(0x60, 0xC3, 0x70); - static constexpr QColor green4 = QColor(0x93, 0xDB, 0x33); - static constexpr QColor green5 = QColor(0x9E, 0xA8, 0x5D); - static constexpr QColor green6 = QColor(0xAF, 0xB5, 0x51); - - static constexpr QColor grey = QColor(0xF0, 0xF2, 0xF5); - static constexpr QColor grey2 = QColor(0xF6, 0xF8, 0xFA); - static constexpr QColor grey3 = QColor(0xE9, 0xED, 0xF1); - static constexpr QColor grey4 = QColor(0xEE, 0xF2, 0xF5); - static constexpr QColor grey5 = QColor(0x93, 0x9B, 0xA1); - - static constexpr QColor moss = QColor(0x26, 0xA6, 0x9A); - static constexpr QColor moss2 = QColor(0x10, 0xA8, 0x8E); - - static constexpr QColor orange = QColor(0xFE, 0x8F, 0x59); - static constexpr QColor orange2 = QColor(0xFF, 0x9F, 0x0F); - static constexpr QColor orange3 = QColor(0xFF, 0xA6, 0x7B); - static constexpr QColor orange4 = QColor(0xFE, 0x8F, 0x59); - - static constexpr QColor warning_orange = QColor(0xF6, 0x79, 0x3C); - - static constexpr QColor purple = QColor(0x88, 0x7A, 0xF9); - - static constexpr QColor red = QColor(0xFF, 0x2D, 0x55); - static constexpr QColor red2 = QColor(0xFA, 0x65, 0x65); - static constexpr QColor red3 = QColor(0xFF, 0x5C, 0x7B); - - static constexpr QColor turquoise = QColor(0x0D, 0xA4, 0xC9); - static constexpr QColor turquoise2 = QColor(0x07, 0xBC, 0xE9); - static constexpr QColor turquoise3 = QColor(0x7B, 0xE5, 0xFF); - static constexpr QColor turquoise4 = QColor(0x0D, 0xA4, 0xC9); - - static constexpr QColor violet = QColor(0xD3, 0x7E, 0xF4); - - static constexpr QColor yellow = QColor(0xFF, 0xCA, 0x0F); - static constexpr QColor yellow2 = QColor(0xEA, 0xD2, 0x7B); - - static constexpr QColor blueHijab = QColor(0xCD, 0xF2, 0xFB); - - static constexpr QColor lightPattensBlue = QColor(0xD7, 0xDE, 0xE4); - - static constexpr QColor blackHovered = QColor(0x1D, 0x23, 0x2E); - static constexpr QColor blueHovered = QColor(0x36, 0x4D, 0xB2); - static constexpr QColor purpleHovered = QColor(0x6D, 0x62, 0xC7); - static constexpr QColor cyanHovered = QColor(0x41, 0xA6, 0xC0); - static constexpr QColor violetHovered = QColor(0xA9, 0x65, 0xC3); - static constexpr QColor redHovered = QColor(0xC8, 0x51, 0x51); - static constexpr QColor yellowHovered = QColor(0xCC, 0xA2, 0x0C); - static constexpr QColor greenHovered = QColor(0x63, 0xAE, 0x00); - static constexpr QColor mossHovered = QColor(0x1E, 0x85, 0x7B); - static constexpr QColor brownHovered = QColor(0x6F, 0x27, 0x27); - static constexpr QColor brown2Hovered = QColor(0x7C, 0x69, 0x26); - - static constexpr QColor lightDesktopBlue10 = QColor(0xEC, 0xEF, 0xFB); - static constexpr QColor darkDesktopBlue10 = QColor(0x27, 0x32, 0x51); + static constexpr QColor blue = QColor(0x43, 0x60, 0xDF); // #4360DF + static constexpr QColor blue2 = QColor(0x29, 0x46, 0xC4); // #2946C4 + static constexpr QColor blue3 = QColor(0x88, 0xB0, 0xFF); // #88B0FF + static constexpr QColor blue4 = QColor(0x86, 0x9E, 0xFF); // #869EFF + static constexpr QColor blue5 = QColor(0xAA, 0xC6, 0xFF); // #AAC6FF + static constexpr QColor blue6 = QColor(0xEC, 0xEF, 0xFC); // #ECEFFC + static constexpr QColor blue7 = QColor(0x09, 0x10, 0x1C); // #09101C + static constexpr QColor blue8 = QColor(0x6B, 0x6F, 0x76); // #6B6F76 + + static constexpr QColor brown = QColor(0x8B, 0x31, 0x31); // #8B3131 + static constexpr QColor brown2 = QColor(0x9B, 0x83, 0x2F); // #9B832F + static constexpr QColor brown3 = QColor(0xAD, 0x43, 0x43); // #AD4343 + + static constexpr QColor cyan = QColor(0x51, 0xD0, 0xF0); // #51D0F0 + + static constexpr QColor graphite = QColor(0x21, 0x21, 0x21); // #212121 + static constexpr QColor graphite2 = QColor(0x25, 0x25, 0x25); // #252525 + static constexpr QColor graphite3 = QColor(0x2C, 0x2C, 0x2C); // #2C2C2C + static constexpr QColor graphite4 = QColor(0x37, 0x37, 0x37); // #373737 + static constexpr QColor graphite5 = QColor(0x90, 0x90, 0x90); // #909090 + + static constexpr QColor green = QColor(0x4E, 0xBC, 0x60); // #4EBC60 + static constexpr QColor green2 = QColor(0x7C, 0xDA, 0x00); // #7CDA00 + static constexpr QColor green3 = QColor(0x60, 0xC3, 0x70); // #60C370 + static constexpr QColor green4 = QColor(0x93, 0xDB, 0x33); // #93DB33 + static constexpr QColor green5 = QColor(0x9E, 0xA8, 0x5D); // #9EA85D + static constexpr QColor green6 = QColor(0xAF, 0xB5, 0x51); // #AFB551 + + static constexpr QColor grey = QColor(0xF0, 0xF2, 0xF5); // #F0F2F5 + static constexpr QColor grey2 = QColor(0xF6, 0xF8, 0xFA); // #F6F8FA + static constexpr QColor grey3 = QColor(0xE9, 0xED, 0xF1); // #E9EDF1 + static constexpr QColor grey4 = QColor(0xEE, 0xF2, 0xF5); // #EEF2F5 + static constexpr QColor grey5 = QColor(0x93, 0x9B, 0xA1); // #939BA1 + + static constexpr QColor moss = QColor(0x26, 0xA6, 0x9A); // #26A69A + static constexpr QColor moss2 = QColor(0x10, 0xA8, 0x8E); // #10A88E + + static constexpr QColor orange = QColor(0xFE, 0x8F, 0x59); // #FE8F59 + static constexpr QColor orange2 = QColor(0xFF, 0x9F, 0x0F); // #FF9F0F + static constexpr QColor orange3 = QColor(0xFF, 0xA6, 0x7B); // #FFA67B + static constexpr QColor orange4 = QColor(0xFE, 0x8F, 0x59); // #FE8F59 + + static constexpr QColor warning_orange = QColor(0xF6, 0x79, 0x3C); // #F6793C + + static constexpr QColor purple = QColor(0x88, 0x7A, 0xF9); // #887AF9 + + static constexpr QColor red = QColor(0xFF, 0x2D, 0x55); // #FF2D55 + static constexpr QColor red2 = QColor(0xFA, 0x65, 0x65); // #FA6565 + static constexpr QColor red3 = QColor(0xFF, 0x5C, 0x7B); // #FF5C7B + + static constexpr QColor turquoise = QColor(0x0D, 0xA4, 0xC9); // #0DA4C9 + static constexpr QColor turquoise2 = QColor(0x07, 0xBC, 0xE9); // #07BCE9 + static constexpr QColor turquoise3 = QColor(0x7B, 0xE5, 0xFF); // #7BE5FF + static constexpr QColor turquoise4 = QColor(0x0D, 0xA4, 0xC9); // #0DA4C9 + + static constexpr QColor violet = QColor(0xD3, 0x7E, 0xF4); // #D37EF4 + + static constexpr QColor yellow = QColor(0xFF, 0xCA, 0x0F); // #FFCA0F + static constexpr QColor yellow2 = QColor(0xEA, 0xD2, 0x7B); // #EAD27B + + static constexpr QColor blueHijab = QColor(0xCD, 0xF2, 0xFB); // #CDF2FB + + static constexpr QColor lightPattensBlue = QColor(0xD7, 0xDE, 0xE4); // #D7DEE4 + + static constexpr QColor blackHovered = QColor(0x1D, 0x23, 0x2E); // #1D232E + static constexpr QColor blueHovered = QColor(0x36, 0x4D, 0xB2); // #364DB2 + static constexpr QColor purpleHovered = QColor(0x6D, 0x62, 0xC7); // #6D62C7 + static constexpr QColor cyanHovered = QColor(0x41, 0xA6, 0xC0); // #41A6C0 + static constexpr QColor violetHovered = QColor(0xA9, 0x65, 0xC3); // #A965C3 + static constexpr QColor redHovered = QColor(0xC8, 0x51, 0x51); // #C85151 + static constexpr QColor yellowHovered = QColor(0xCC, 0xA2, 0x0C); // #CCA20C + static constexpr QColor greenHovered = QColor(0x63, 0xAE, 0x00); // #63AE00 + static constexpr QColor mossHovered = QColor(0x1E, 0x85, 0x7B); // #1E857B + static constexpr QColor brownHovered = QColor(0x6F, 0x27, 0x27); // #6F2727 + static constexpr QColor brown2Hovered = QColor(0x7C, 0x69, 0x26); // #7C6926 + + static constexpr QColor lightDesktopBlue10 = QColor(0xEC, 0xEF, 0xFB); // #ECEFFB + static constexpr QColor darkDesktopBlue10 = QColor(0x27, 0x32, 0x51); // #273251 }; diff --git a/ui/StatusQ/src/themepalette.cpp b/ui/StatusQ/src/themepalette.cpp index 0a7d90b3885..be6f1408cb4 100644 --- a/ui/StatusQ/src/themepalette.cpp +++ b/ui/StatusQ/src/themepalette.cpp @@ -129,7 +129,7 @@ std::unique_ptr createDarkThemePalette(QObject* parent) t->miscColor12 = StatusColors::green6; // Other - t->neutral95 = QColor(0x06, 0x0F, 0x1F); + t->neutral95 = QColor(0x06, 0x0F, 0x1F); // #060F1F t->dropShadow = alpha(StatusColors::black, 0.08); t->dropShadow2 = alpha(StatusColors::blue8, 0.02); t->dropShadow3 = alpha(StatusColors::blue8, 0.05); @@ -181,7 +181,7 @@ std::unique_ptr createDarkThemePalette(QObject* parent) // Status badge t->statusBadge.foregroundColor = t->baseColor3; t->statusBadge.borderColor = t->baseColor5; - t->statusBadge.hoverBorderColor = QColor(0x35, 0x3A, 0x4D); + t->statusBadge.hoverBorderColor = QColor(0x35, 0x3A, 0x4D); // #353A4D // Status menu t->statusMenu.backgroundColor = t->baseColor3; @@ -195,7 +195,7 @@ std::unique_ptr createDarkThemePalette(QObject* parent) t->statusRoundedImage.backgroundColor = t->baseColor3; // Status chat input - t->statusChatInput.secondaryBackgroundColor = QColor(0x41, 0x41, 0x41); + t->statusChatInput.secondaryBackgroundColor = QColor(0x41, 0x41, 0x41); // #414141 // Status switch tab t->statusSwitchTab.buttonBackgroundColor = t->primaryColor1; @@ -213,33 +213,33 @@ std::unique_ptr createDarkThemePalette(QObject* parent) t->statusMessage.emojiReactionBorderHovered = t->primaryColor2; // Privacy mode colors - t->privacyModeColors.navBarColor = QColor(0x5A, 0x33, 0xCA); + t->privacyModeColors.navBarColor = QColor(0x5A, 0x33, 0xCA); // #5A33CA t->privacyModeColors.navButtonColor = alpha(StatusColors::white, 0.4); t->privacyModeColors.navButtonHighlightedColor = StatusColors::white; // Customisation colors - t->customisationColors.blue = QColor(0x22, 0x3B, 0xC4); - t->customisationColors.purple = QColor(0x5A, 0x33, 0xCA); - t->customisationColors.orange = QColor(0xCC, 0x64, 0x38); - t->customisationColors.army = QColor(0x1A, 0x4E, 0x52); - t->customisationColors.turquoise = QColor(0x22, 0x61, 0x7C); - t->customisationColors.sky = QColor(0x14, 0x75, 0xAC); - t->customisationColors.yellow = QColor(0xC5, 0x8D, 0x30); - t->customisationColors.pink = QColor(0xC5, 0x59, 0x72); - t->customisationColors.copper = QColor(0xA2, 0x4E, 0x45); - t->customisationColors.camel = QColor(0x9F, 0x72, 0x52); - t->customisationColors.magenta = QColor(0xBD, 0x1E, 0x56); - t->customisationColors.yinYang = QColor(0xFF, 0xFF, 0xFF); - t->customisationColors.purple2 = QColor(0x71, 0x40, 0xFD); + t->customisationColors.blue = QColor(0x22, 0x3B, 0xC4); // #223BC4 + t->customisationColors.purple = QColor(0x5A, 0x33, 0xCA); // #5A33CA + t->customisationColors.orange = QColor(0xCC, 0x64, 0x38); // #CC6438 + t->customisationColors.army = QColor(0x1A, 0x4E, 0x52); // #1A4E52 + t->customisationColors.turquoise = QColor(0x22, 0x61, 0x7C); // #22617C + t->customisationColors.sky = QColor(0x14, 0x75, 0xAC); // #1475AC + t->customisationColors.yellow = QColor(0xC5, 0x8D, 0x30); // #C58D30 + t->customisationColors.pink = QColor(0xC5, 0x59, 0x72); // #C55972 + t->customisationColors.copper = QColor(0xA2, 0x4E, 0x45); // #A24E45 + t->customisationColors.camel = QColor(0x9F, 0x72, 0x52); // #9F7252 + t->customisationColors.magenta = QColor(0xBD, 0x1E, 0x56); // #BD1E56 + t->customisationColors.yinYang = QColor(0xFF, 0xFF, 0xFF); // #FFFFFF + t->customisationColors.purple2 = QColor(0x71, 0x40, 0xFD); // #7140FD // User customization colors t->userCustomizationColors = { - QColor(0xAA, 0xC6, 0xFF), QColor(0x88, 0x7A, 0xF9), - QColor(0x51, 0xD0, 0xF0), QColor(0xD3, 0x7E, 0xF4), - QColor(0xFA, 0x65, 0x65), QColor(0xFF, 0xCA, 0x0F), - QColor(0x93, 0xDB, 0x33), QColor(0x10, 0xA8, 0x8E), - QColor(0xAD, 0x43, 0x43), QColor(0xEA, 0xD2, 0x7B), - QColor(0xC0, 0xC0, 0xC0), QColor(0xA9, 0xA9, 0xA9) // silver, darkgrey + QColor(0xAA, 0xC6, 0xFF), QColor(0x88, 0x7A, 0xF9), // #AAC6FF, #887AF9 + QColor(0x51, 0xD0, 0xF0), QColor(0xD3, 0x7E, 0xF4), // #51D0F0, #D37EF4 + QColor(0xFA, 0x65, 0x65), QColor(0xFF, 0xCA, 0x0F), // #FA6565, #FFCA0F + QColor(0x93, 0xDB, 0x33), QColor(0x10, 0xA8, 0x8E), // #93DB33, #10A88E + QColor(0xAD, 0x43, 0x43), QColor(0xEA, 0xD2, 0x7B), // #AD4343, #EAD27B + QColor(0xC0, 0xC0, 0xC0), QColor(0xA9, 0xA9, 0xA9) // silver, darkgrey // #C0C0C0, #A9A9A9 }; t->buildArrays(); @@ -323,7 +323,7 @@ std::unique_ptr createLightThemePalette(QObject* parent) t->miscColor12 = StatusColors::green5; // Other - t->neutral95 = QColor(0x0D, 0x16, 0x25); + t->neutral95 = QColor(0x0D, 0x16, 0x25); // #0D1625 t->dropShadow = QColor::fromRgbF(0.0, 34.0/255.0, 51.0/255.0, 0.03); t->dropShadow2 = alpha(StatusColors::blue7, 0.02); t->dropShadow3 = alpha(StatusColors::black, 0.15); @@ -375,7 +375,7 @@ std::unique_ptr createLightThemePalette(QObject* parent) // Status badge t->statusBadge.foregroundColor = StatusColors::white; t->statusBadge.borderColor = t->baseColor4; - t->statusBadge.hoverBorderColor = QColor(0xDD, 0xE3, 0xF3); + t->statusBadge.hoverBorderColor = QColor(0xDD, 0xE3, 0xF3); // #DDE3F3 // Status menu t->statusMenu.backgroundColor = StatusColors::white; @@ -389,7 +389,7 @@ std::unique_ptr createLightThemePalette(QObject* parent) t->statusRoundedImage.backgroundColor = StatusColors::white; // Status chat input - t->statusChatInput.secondaryBackgroundColor = QColor(0xE2, 0xE6, 0xE8); + t->statusChatInput.secondaryBackgroundColor = QColor(0xE2, 0xE6, 0xE8); // #E2E6E8 // Status switch tab t->statusSwitchTab.buttonBackgroundColor = t->primaryColor1; @@ -407,33 +407,33 @@ std::unique_ptr createLightThemePalette(QObject* parent) t->statusMessage.emojiReactionBorderHovered = t->primaryColor3; // Privacy mode colors - t->privacyModeColors.navBarColor = QColor(0x5A, 0x33, 0xCA); + t->privacyModeColors.navBarColor = QColor(0x5A, 0x33, 0xCA); // #5A33CA t->privacyModeColors.navButtonColor = alpha(StatusColors::white, 0.4); t->privacyModeColors.navButtonHighlightedColor = StatusColors::white; // Customisation colors - t->customisationColors.blue = QColor(0x2A, 0x4A, 0xF5); - t->customisationColors.purple = QColor(0x71, 0x40, 0xFD); - t->customisationColors.orange = QColor(0xFF, 0x7D, 0x46); - t->customisationColors.army = QColor(0x21, 0x62, 0x66); - t->customisationColors.turquoise = QColor(0x2A, 0x79, 0x9B); - t->customisationColors.sky = QColor(0x19, 0x92, 0xD7); - t->customisationColors.yellow = QColor(0xF6, 0xAF, 0x3C); - t->customisationColors.pink = QColor(0xF6, 0x6F, 0x8F); - t->customisationColors.copper = QColor(0xCB, 0x62, 0x56); - t->customisationColors.camel = QColor(0xC7, 0x8F, 0x67); - t->customisationColors.magenta = QColor(0xEC, 0x26, 0x6C); - t->customisationColors.yinYang = QColor(0x09, 0x10, 0x1C); - t->customisationColors.purple2 = QColor(0x5A, 0x33, 0xCA); + t->customisationColors.blue = QColor(0x2A, 0x4A, 0xF5); // #2A4AF5 + t->customisationColors.purple = QColor(0x71, 0x40, 0xFD); // #7140FD + t->customisationColors.orange = QColor(0xFF, 0x7D, 0x46); // #FF7D46 + t->customisationColors.army = QColor(0x21, 0x62, 0x66); // #216266 + t->customisationColors.turquoise = QColor(0x2A, 0x79, 0x9B); // #2A799B + t->customisationColors.sky = QColor(0x19, 0x92, 0xD7); // #1992D7 + t->customisationColors.yellow = QColor(0xF6, 0xAF, 0x3C); // #F6AF3C + t->customisationColors.pink = QColor(0xF6, 0x6F, 0x8F); // #F66F8F + t->customisationColors.copper = QColor(0xCB, 0x62, 0x56); // #CB6256 + t->customisationColors.camel = QColor(0xC7, 0x8F, 0x67); // #C78F67 + t->customisationColors.magenta = QColor(0xEC, 0x26, 0x6C); // #EC266C + t->customisationColors.yinYang = QColor(0x09, 0x10, 0x1C); // #09101C + t->customisationColors.purple2 = QColor(0x5A, 0x33, 0xCA); // #5A33CA // User customization colors t->userCustomizationColors = { - QColor(0x29, 0x46, 0xC4), QColor(0x88, 0x7A, 0xF9), - QColor(0x51, 0xD0, 0xF0), QColor(0xD3, 0x7E, 0xF4), - QColor(0xFA, 0x65, 0x65), QColor(0xFF, 0xCA, 0x0F), - QColor(0x7C, 0xDA, 0x00), QColor(0x26, 0xA6, 0x9A), - QColor(0x8B, 0x31, 0x31), QColor(0x9B, 0x83, 0x2F), - QColor(0xC0, 0xC0, 0xC0), QColor(0xA9, 0xA9, 0xA9) + QColor(0x29, 0x46, 0xC4), QColor(0x88, 0x7A, 0xF9), // #2946C4, #887AF9 + QColor(0x51, 0xD0, 0xF0), QColor(0xD3, 0x7E, 0xF4), // #51D0F0, #D37EF4 + QColor(0xFA, 0x65, 0x65), QColor(0xFF, 0xCA, 0x0F), // #FA6565, #FFCA0F + QColor(0x7C, 0xDA, 0x00), QColor(0x26, 0xA6, 0x9A), // #7CDA00, #26A69A + QColor(0x8B, 0x31, 0x31), QColor(0x9B, 0x83, 0x2F), // #8B3131, #9B832F + QColor(0xC0, 0xC0, 0xC0), QColor(0xA9, 0xA9, 0xA9) // #C0C0C0, #A9A9A9 }; t->buildArrays();