opaque/theme/Theme.qml

189 lines
10 KiB
QML

pragma Singleton
import QtQuick 2.0
Item {
readonly property color backgroundMainColor: theme.backgroundMainColor
readonly property color backgroundPaneColor: theme.backgroundPaneColor
readonly property color backgroundHilightElementColor: theme.backgroundHilightElementColor
readonly property color dividerColor: theme.dividerColor
readonly property color mainTextColor: theme.mainTextColor
readonly property color altTextColor: theme.altTextColor
readonly property color hilightElementTextColor: theme.hilightElementTextColor
readonly property color defaultButtonColor: theme.defaultButtonColor
readonly property color defaultButtonActiveColor: theme.defaultButtonActiveColor
readonly property color defaultButtonTextColor: theme.defaultButtonTextColor
readonly property color defaultButtonDisabledColor: theme.defaultButtonDisabledColor
readonly property color defaultButtonDisabledTextColor: theme.defaultButtonDisabledTextColor
readonly property color altButtonColor: theme.altButtonColor
readonly property color altButtonTextColor: theme.altButtonTextColor
readonly property color altButtonDisabledColor: theme.altButtonDisabledColor
readonly property color altButtonDisabledTextColor: theme.altButtonDisabledTextColor
readonly property color textfieldBackgroundColor: theme.textfieldBackgroundColor
readonly property color textfieldBorderColor: theme.textfieldBorderColor
readonly property color textfieldTextColor: theme.textfieldTextColor
readonly property color textfieldErrorColor: theme.textfieldErrorColor
readonly property color textfieldButtonColor: theme.textfieldButtonColor
readonly property color textfieldButtonTextColor: theme.textfieldButtonTextColor
readonly property color dropShadowColor: theme.dropShadowColor
readonly property color dropShadowPaneColor: theme.dropShadowPaneColor
readonly property color portraitOnlineBorderColor: theme.portraitOnlineBorderColor
readonly property color portraitOnlineBackgroundColor: theme.portraitOnlineBackgroundColor
readonly property color portraitOnlineTextColor: theme.portraitOnlineTextColor
readonly property color portraitConnectingBorderColor: theme.portraitConnectingBorderColor
readonly property color portraitConnectingBackgroundColor: theme.portraitConnectingBackgroundColor
readonly property color portraitConnectingTextColor: theme.portraitConnectingTextColor
readonly property color portraitOfflineBorderColor: theme.portraitOfflineBorderColor
readonly property color portraitOfflineBackgroundColor: theme.portraitOfflineBackgroundColor
readonly property color portraitOfflineTextColor: theme.portraitOfflineTextColor
readonly property color portraitBlockedBorderColor: theme.portraitBlockedBorderColor
readonly property color portraitBlockedBackgroundColor: theme.portraitBlockedBackgroundColor
readonly property color portraitBlockedTextColor: theme.portraitBlockedTextColor
readonly property color portraitOnlineBadgeColor: theme.portraitOnlineBadgeColor
readonly property color portraitOfflineBadgeColor: theme.portraitOfflineBadgeColor
readonly property color portraitContactBadgeColor: theme.portraitContactBadgeColor
readonly property color portraitContactBadgeTextColor: theme.portraitContactBadgeTextColor
readonly property color portraitProfileBadgeColor: theme.portraitProfileBadgeColor
readonly property color portraitProfileBadgeTextColor: theme.portraitProfileBadgeTextColor
readonly property color portraitOverlayOfflineColor: theme.portraitOverlayOfflineColor
readonly property color toggleColor: theme.toggleColor
readonly property color toggleOffColor: theme.toggleOffColor
readonly property color toggleOnColor: theme.toggleOnColor
readonly property color sliderButtonColor: theme.sliderButtonColor
readonly property color sliderBarLeftColor: theme.sliderBarLeftColor
readonly property color sliderBarRightColor: theme.sliderBarRightColor
readonly property color boxCheckedColor: theme.boxCheckedColor
readonly property color toolbarIconColor: theme.toolbarIconColor
readonly property color toolbarMainColor: theme.toolbarMainColor
readonly property color toolbarAltColor: theme.toolbarAltColor
readonly property color statusbarDisconnectedInternetColor: theme.statusbarDisconnectedInternetColor
readonly property color statusbarDisconnectedInternetFontColor: theme.statusbarDisconnectedInternetFontColor
readonly property color statusbarDisconnectedTorFontColor: theme.statusbarDisconnectedTorFontColor
readonly property color statusbarDisconnectedTorColor: theme.statusbarDisconnectedTorColor
readonly property color statusbarConnectingColor: theme.statusbarConnectingColor
readonly property color statusbarConnectingFontColor: theme.statusbarConnectingFontColor
readonly property color statusbarOnlineColor: theme.statusbarOnlineColor
readonly property color statusbarOnlineFontColor: theme.statusbarOnlineFontColor
readonly property color chatOverlayWarningTextColor: theme.chatOverlayWarningTextColor
readonly property color messageFromMeBackgroundColor: theme.messageFromMeBackgroundColor
readonly property color messageFromMeTextColor: theme.messageFromMeTextColor
readonly property color messageFromOtherBackgroundColor: theme.messageFromOtherBackgroundColor
readonly property color messageFromOtherTextColor: theme.messageFromOtherTextColor
readonly property color messageStatusNormalColor: theme.messageStatusNormalColor
readonly property color messageStatusBlockedColor: theme.messageStatusBlockedColor
readonly property color messageStatusBlockedTextColor: theme.messageStatusBlockedTextColor
readonly property color messageStatusAlertColor: theme.messageStatusAlertColor
readonly property color messageStatusAlertTextColor: theme.messageStatusAlertTextColor
readonly property color scrollbarDefaultColor: theme.scrollbarDefaultColor
readonly property color scrollbarActiveColor: theme.scrollbarActiveColor
readonly property variant sidePaneMinSizeBase: [200, 400, 600]
readonly property int sidePaneMinSize: sidePaneMinSizeBase[p[scale]]+200/*for debugging*/
readonly property variant chatPaneMinSizeBase: [300, 400, 500]
readonly property int chatPaneMinSize: chatPaneMinSizeBase[p[scale]]
readonly property int doublePaneMinSize: sidePaneMinSize + chatPaneMinSize
property ThemeType dark: CwtchDark{}
property ThemeType light: CwtchLight{}
property ThemeType theme: gcd.theme == "dark" ? dark : light
// 0-4. replace gcd.themeScale with whatever your app has!
property int scale: gcd.themeScaleNew
// magnification system: all size-sets should generally respect these semantics:
//
// scale
// 0 1 2 3 4
// padding S M M M L
// text S S M L L
//
// use the syntax "propertyName: propertyNameBase[p[scale]]" for padding that
// has S/M/L granularity (and likewise t[scale] for text)
// use the syntax "propertyName: propertyNameBase[scale]" for things that you
// would prefer have 0/1/2/3/4 granularity.
readonly property variant p: [0, 1, 1, 1, 2]
readonly property variant t: [0, 0, 1, 2, 2]
//////////////////////
// section: PADDING //
//////////////////////
readonly property variant paddingMinimalBase: [1, 4, 6]
readonly property int paddingMinimal: paddingMinimalBase[p[scale]]
readonly property variant paddingSmallBase: [3, 10, 15]
readonly property int paddingSmall: paddingSmallBase[p[scale]]
readonly property variant paddingStandardBase: [8, 20, 30]
readonly property int paddingStandard: paddingStandardBase[p[scale]]
readonly property variant paddingLargeBase: [10, 30, 40]
readonly property int paddingLarge: paddingLargeBase[p[scale]]
readonly property variant paddingClickTargetBase: gcd.os == "android" ? [10, 40, 100] : [3, 10, 15]
readonly property int paddingClickTarget: paddingClickTargetBase[p[scale]]
////////////////////////
// section: TEXT SIZE //
////////////////////////
readonly property variant textSmallPtBase: [8, 12, 16]
readonly property int textSmallPt: textSmallPtBase[t[scale]]
readonly property variant textMediumPtBase: [10, 16, 24]
readonly property int textMediumPt: textMediumPtBase[t[scale]]
readonly property variant textLargePtBase: [16, 24, 32]
readonly property int textLargePt: textLargePtBase[t[scale]]
readonly property variant textSubHeaderPtBase: [12, 18, 26]
readonly property int textSubHeaderPt: textHeaderPtBase[t[scale]]
readonly property variant textHeaderPtBase: [16, 24, 32]
readonly property int textHeaderPt: textHeaderPtBase[t[scale]]
/////////////////////////////////
// section: ELEMENT DIMENSIONS //
/////////////////////////////////
readonly property variant uiIconSizeSBase: [8, 16, 24]
readonly property int uiIconSizeS: uiIconSizeSBase[p[scale]]
readonly property variant uiIconSizeMBase: [24, 32, 48]
readonly property int uiIconSizeM: uiIconSizeMBase[p[scale]]
readonly property variant uiIconSizeLBase: [32, 48, 60]
readonly property int uiIconSizeL: uiIconSizeLBase[p[scale]]
readonly property variant uiEmojiSizeBase: [24, 32, 48]
readonly property int uiEmojiSize: uiEmojiSizeBase[p[scale]]
readonly property variant contactPortraitSizeBase: [60, 72, 84]
readonly property int contactPortraitSize: contactPortraitSizeBase[p[scale]]
///////////////////////////////////////
// section: OLD FONT SIZES REFERENCE //
///////////////////////////////////////
// old size (usually given to font.pixelSize but occasionally to font.pointSize) -> new size
readonly property int badgeTextSize: 12
readonly property int statusTextSize: 12
// readonly property int chatMetaTextSize: 15 -> textSmallPt
// readonly property int secondaryTextSize: 20 -> textSmallPt
readonly property int chatSize: textMediumPt //was:20
// readonly property int primaryTextSize: 25 -> textMediumPt
readonly property int tabSize: textMediumPt //was:25
// readonly property int subHeaderSize: 35 -> textSubHeaderPt
// readonly property int headerSize: 50 -> textHeaderPt
}