gpt4all/gpt4all-chat/qml/Theme.qml
Jared Van Bortel 2c8d634b5b
UI and embedding device changes for GPT4All v3.0.0-rc3 (#2477)
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
2024-06-28 12:57:57 -04:00

1075 lines
29 KiB
QML

import QtCore
import QtQuick
import QtQuick.Controls.Basic
import mysettings
QtObject {
// black and white
property color black: Qt.hsla(231/360, 0.15, 0.19)
property color white: Qt.hsla(0, 0, 1)
// dark mode black and white
property color darkwhite: Qt.hsla(0, 0, 0.85)
// gray // FIXME: These are slightly less red than what atlas uses. should resolve diff
property color gray0: white
property color gray50: Qt.hsla(25/360, 0.05, 0.97)
property color gray100: Qt.hsla(25/360,0.05, 0.95)
property color gray200: Qt.hsla(25/360, 0.05, 0.89)
property color gray300: Qt.hsla(25/360, 0.05, 0.82)
property color gray400: Qt.hsla(25/360, 0.05, 0.71)
property color gray500: Qt.hsla(25/360, 0.05, 0.60)
property color gray600: Qt.hsla(25/360, 0.05, 0.51)
property color gray700: Qt.hsla(25/360, 0.05, 0.42)
property color gray800: Qt.hsla(25/360, 0.05, 0.35)
property color gray900: Qt.hsla(25/360, 0.05, 0.31)
property color gray950: Qt.hsla(25/360, 0.05, 0.15)
property color grayRed0: Qt.hsla(0/360, 0.108, 0.89)
property color grayRed50: Qt.hsla(0/360, 0.108, 0.85)
property color grayRed100: Qt.hsla(0/360, 0.108, 0.80)
property color grayRed200: Qt.hsla(0/360, 0.108, 0.76)
property color grayRed300: Qt.hsla(0/360, 0.108, 0.72)
property color grayRed400: Qt.hsla(0/360, 0.108, 0.68)
property color grayRed500: Qt.hsla(0/360, 0.108, 0.60)
property color grayRed600: Qt.hsla(0/360, 0.108, 0.56)
property color grayRed700: Qt.hsla(0/360, 0.108, 0.52)
property color grayRed800: Qt.hsla(0/360, 0.108, 0.48)
property color grayRed900: Qt.hsla(0/360, 0.108, 0.42)
// darkmode
property color darkgray0: Qt.hsla(25/360, 0.05, 0.23)
property color darkgray50: Qt.hsla(25/360, 0.05, 0.21)
property color darkgray100: Qt.hsla(25/360, 0.05, 0.19)
property color darkgray200: Qt.hsla(25/360, 0.05, 0.17)
property color darkgray300: Qt.hsla(25/360, 0.05, 0.15)
property color darkgray400: Qt.hsla(25/360, 0.05, 0.13)
property color darkgray500: Qt.hsla(25/360, 0.05, 0.11)
property color darkgray600: Qt.hsla(25/360, 0.05, 0.09)
property color darkgray700: Qt.hsla(25/360, 0.05, 0.07)
property color darkgray800: Qt.hsla(25/360, 0.05, 0.05)
property color darkgray900: Qt.hsla(25/360, 0.05, 0.03)
property color darkgray950: Qt.hsla(25/360, 0.05, 0.01)
// green
property color green50: Qt.hsla(120/360, 0.18, 0.97)
property color green100: Qt.hsla(120/360, 0.21, 0.93)
property color green200: Qt.hsla(124/360, 0.21, 0.85)
property color green300: Qt.hsla(122/360, 0.20, 0.73)
property color green400: Qt.hsla(122/360, 0.19, 0.58)
property color green500: Qt.hsla(121/360, 0.19, 0.45)
property color green600: Qt.hsla(122/360, 0.20, 0.33)
property color green700: Qt.hsla(122/360, 0.19, 0.29)
property color green800: Qt.hsla(123/360, 0.17, 0.24)
property color green900: Qt.hsla(124/360, 0.17, 0.20)
property color green950: Qt.hsla(125/360, 0.22, 0.10)
// yellow
property color yellow0: Qt.hsla(47/360, 0.90, 0.99)
property color yellow25: Qt.hsla(47/360, 0.90, 0.98)
property color yellow50: Qt.hsla(47/360, 0.90, 0.96)
property color yellow100: Qt.hsla(46/360, 0.89, 0.89)
property color yellow200: Qt.hsla(45/360, 0.90, 0.77)
property color yellow300: Qt.hsla(44/360, 0.90, 0.66)
property color yellow400: Qt.hsla(41/360, 0.89, 0.56)
property color yellow500: Qt.hsla(36/360, 0.85, 0.50)
property color yellow600: Qt.hsla(30/360, 0.87, 0.44)
property color yellow700: Qt.hsla(24/360, 0.84, 0.37)
property color yellow800: Qt.hsla(21/360, 0.76, 0.31)
property color yellow900: Qt.hsla(20/360, 0.72, 0.26)
property color yellow950: Qt.hsla(19/360, 0.86, 0.14)
// red
property color red50: Qt.hsla(0, 0.71, 0.97)
property color red100: Qt.hsla(0, 0.87, 0.94)
property color red200: Qt.hsla(0, 0.89, 0.89)
property color red300: Qt.hsla(0, 0.85, 0.77)
property color red400: Qt.hsla(0, 0.83, 0.71)
property color red500: Qt.hsla(0, 0.76, 0.60)
property color red600: Qt.hsla(0, 0.65, 0.51)
property color red700: Qt.hsla(0, 0.67, 0.42)
property color red800: Qt.hsla(0, 0.63, 0.35)
property color red900: Qt.hsla(0, 0.56, 0.31)
property color red950: Qt.hsla(0, 0.67, 0.15)
// purple // FIXME: These are slightly more uniform than what atlas uses. should resolve diff
property color purple50: Qt.hsla(279/360, 1.0, 0.98)
property color purple100: Qt.hsla(279/360, 1.0, 0.95)
property color purple200: Qt.hsla(279/360, 1.0, 0.91)
property color purple300: Qt.hsla(279/360, 1.0, 0.84)
property color purple400: Qt.hsla(279/360, 1.0, 0.73)
property color purple500: Qt.hsla(279/360, 1.0, 0.63)
property color purple600: Qt.hsla(279/360, 1.0, 0.53)
property color purple700: Qt.hsla(279/360, 1.0, 0.47)
property color purple800: Qt.hsla(279/360, 1.0, 0.39)
property color purple900: Qt.hsla(279/360, 1.0, 0.32)
property color purple950: Qt.hsla(279/360, 1.0, 0.22)
property color blue0: "#d0d5db"
property color blue100: "#8e8ea0"
property color blue200: "#7d7d8e"
property color blue400: "#444654"
property color blue500: "#343541"
property color blue600: "#2c2d37"
property color blue700: "#26272f"
property color blue800: "#232628"
property color blue900: "#222527"
property color blue950: "#1c1f21"
property color blue1000: "#0e1011"
property color accentColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue200;
case "Dark":
return yellow300;
default:
return yellow300;
}
}
property color darkContrast: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue500;
case "Dark":
return darkgray100;
default:
return gray100;
}
}
property color lightContrast: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue400;
case "Dark":
return darkgray0;
default:
return gray0;
}
}
property color controlBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue800;
case "Dark":
return darkgray0;
default:
return gray300;
}
}
property color controlBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray300;
default:
return gray100;
}
}
property color disabledControlBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray200;
default:
return gray200;
}
}
property color dividerColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray200;
default:
return grayRed0;
}
}
property color conversationDivider: {
return dividerColor;
}
property color settingsDivider: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return dividerColor
case "Dark":
return darkgray400;
default:
return grayRed500;
}
}
property color viewBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue600;
case "Dark":
return darkgray100;
default:
return gray50;
}
}
property color containerForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray300;
default:
return gray300;
}
}
property color containerBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue900;
case "Dark":
return darkgray200;
default:
return gray100;
}
}
property color viewBarBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray400;
default:
return gray100;
}
}
property color progressForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return accentColor;
default:
return green600;
}
}
property color progressBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue900;
case "Dark":
return green600;
default:
return green100;
}
}
property color altProgressForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return progressForeground;
default:
return "#fcf0c9";
}
}
property color altProgressBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return progressBackground;
default:
return "#fff9d2";
}
}
property color altProgressText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor;
default:
return "#d16f0e";
}
}
property color checkboxBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return gray200;
default:
return gray600;
}
}
property color checkboxForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return green300;
default:
return green600;
}
}
property color buttonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue950;
case "Dark":
return darkgray300;
default:
return green600;
}
}
property color buttonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue900;
case "Dark":
return darkgray400;
default:
return green500;
}
}
property color lightButtonText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor;
case "Dark":
return textColor;
default:
return green600;
}
}
property color lightButtonMutedText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return mutedTextColor;
case "Dark":
return mutedTextColor;
default:
return green300;
}
}
property color lightButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackground;
case "Dark":
return buttonBackground;
default:
return green100;
}
}
property color lightButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackgroundHovered;
case "Dark":
return buttonBackgroundHovered;
default:
return green200;
}
}
property color darkButtonText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor;
case "Dark":
return textColor;
default:
return red600;
}
}
property color darkButtonMutedText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return mutedTextColor;
case "Dark":
return mutedTextColor;
default:
return red300;
}
}
property color darkButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackground;
case "Dark":
return buttonBackground;
default:
return red200;
}
}
property color darkButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackgroundHovered;
case "Dark":
return buttonBackgroundHovered;
default:
return red300;
}
}
property color lighterButtonForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor;
case "Dark":
return textColor;
default:
return green600;
}
}
property color lighterButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackground;
case "Dark":
return buttonBackground;
default:
return green100;
}
}
property color lighterButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackgroundHovered;
case "Dark":
return buttonBackgroundHovered;
default:
return green50;
}
}
property color sourcesBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return lighterButtonBackground;
case "Dark":
return lighterButtonBackground;
default:
return gray100;
}
}
property color sourcesBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return lighterButtonBackgroundHovered;
case "Dark":
return lighterButtonBackgroundHovered;
default:
return gray200;
}
}
property color buttonBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return controlBorder;
default:
return yellow200;
}
}
property color sendButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return accentColor;
default:
return accentColor;
}
}
property color sendButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue0;
case "Dark":
return darkwhite;
default:
return black;
}
}
property color selectedBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue700;
case "Dark":
return darkgray200;
default:
return gray0;
}
}
property color conversationButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue500;
case "Dark":
return darkgray100;
default:
return gray0;
}
}
property color conversationBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue500;
case "Dark":
return darkgray50;
default:
return white;
}
}
property color conversationProgress: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return green400;
default:
return green400;
}
}
property color conversationButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue400;
case "Dark":
return darkgray0;
default:
return gray100;
}
}
property color conversationButtonBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return yellow200;
default:
return yellow200;
}
}
property color conversationHeader: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return green400;
default:
return green500;
}
}
property color collectionsButtonText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return black;
case "Dark":
return black;
default:
return white;
}
}
property color collectionsButtonProgress: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return darkgray400
default:
return green400;
}
}
property color collectionsButtonForeground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return green300;
default:
return green600;
}
}
property color collectionsButtonBackground: {
switch (MySettings.chatTheme) {
default:
return lighterButtonBackground;
}
}
property color collectionsButtonBackgroundHovered: {
switch (MySettings.chatTheme) {
default:
return lighterButtonBackgroundHovered;
}
}
property color welcomeButtonBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBackground;
case "Dark":
return buttonBackground;
default:
return lighterButtonBackground;
}
}
property color welcomeButtonBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return buttonBorder;
case "Dark":
return buttonBorder;
default:
return green300;
}
}
property color welcomeButtonBorderHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple200;
case "Dark":
return darkgray100;
default:
return green400;
}
}
property color welcomeButtonText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor
case "Dark":
return textColor
default:
return green700;
}
}
property color welcomeButtonTextHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple200
case "Dark":
return gray400
default:
return green800;
}
}
property color fancyLinkText: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return textColor
case "Dark":
return textColor
default:
return grayRed900;
}
}
property color fancyLinkTextHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return mutedTextColor
case "Dark":
return mutedTextColor
default:
return textColor;
}
}
property color iconBackgroundDark: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue200;
case "Dark":
return green400;
default:
return green400;
}
}
property color iconBackgroundLight: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue200;
case "Dark":
return darkwhite;
default:
return gray500;
}
}
property color iconBackgroundHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue0;
case "Dark":
return gray400;
default:
return accentColor;
}
}
property color iconBackgroundViewBar: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return iconBackgroundLight;
case "Dark":
return iconBackgroundLight;
default:
return green500;
}
}
property color iconBackgroundViewBarToggled: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return iconBackgroundLight;
case "Dark":
return darkgray50;
default:
return green200;
}
}
property color iconBackgroundViewBarHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return iconBackgroundHovered;
case "Dark":
return iconBackgroundHovered;
default:
return green600;
}
}
property color slugBackground: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue600;
case "Dark":
return darkgray300;
default:
return gray100;
}
}
property color textColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue0;
case "Dark":
return darkwhite;
default:
return black;
}
}
// lighter contrast
property color mutedLighterTextColor: {
switch (MySettings.chatTheme) {
// case "LegacyDark":
// case "Dark":
default:
return gray300;
}
}
// light contrast
property color mutedLightTextColor: {
switch (MySettings.chatTheme) {
// case "LegacyDark":
// case "Dark":
default:
return gray400;
}
}
// normal contrast
property color mutedTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue200;
case "Dark":
return gray400;
default:
return gray500;
}
}
// dark contrast
property color mutedDarkTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return mutedTextColor;
case "Dark":
return mutedTextColor;
default:
return grayRed500;
}
}
// dark contrast hovered
property color mutedDarkTextColorHovered: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue400;
default:
return grayRed900;
}
}
property color oppositeTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return white;
case "Dark":
return darkwhite;
default:
return white;
}
}
property color oppositeMutedTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return white;
case "Dark":
return darkwhite;
default:
return white;
}
}
property color textAccent: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return accentColor;
default:
return accentColor;
}
}
property color textErrorColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return red400;
case "Dark":
return red400;
default:
return red400;
}
}
property color settingsTitleTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue100;
case "Dark":
return green200;
default:
return black;
}
}
property color titleTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return green300;
default:
return green700;
}
}
property color titleTextColor2: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return darkwhite;
case "Dark":
return green200;
default:
return green700;
}
}
property color titleInfoTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue200;
case "Dark":
return gray400;
default:
return gray600;
}
}
property color styledTextColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple100
case "Dark":
return yellow25
default:
return grayRed900;
}
}
property color styledTextColor2: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue0;
case "Dark":
return yellow50
default:
return green500;
}
}
property color chatDrawerSectionHeader: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple50
case "Dark":
return yellow0
default:
return grayRed800;
}
}
property color dialogBorder: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return accentColor;
case "Dark":
return darkgray0;
default:
return darkgray0;
}
}
property color linkColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return yellow600;
case "Dark":
return yellow600;
default:
return yellow600;
}
}
property color mainHeader: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue900;
case "Dark":
return green600;
default:
return green600;
}
}
property color mainComboBackground: {
switch (MySettings.chatTheme) {
default:
return "transparent";
}
}
property color sendGlow: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue1000;
case "Dark":
return green950;
default:
return green300;
}
}
property color userColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return blue800;
case "Dark":
return green700;
default:
return green700;
}
}
property color assistantColor: {
switch (MySettings.chatTheme) {
case "LegacyDark":
return purple400;
case "Dark":
return accentColor;
default:
return accentColor;
}
}
property real fontScale: MySettings.fontSize === "Small" ? 1 :
MySettings.fontSize === "Medium" ? 1.3 :
/* "Large" */ 1.8
property real fontSizeSmallest: 8 * fontScale
property real fontSizeSmaller: 9 * fontScale
property real fontSizeSmall: 10 * fontScale
property real fontSizeMedium: 11 * fontScale
property real fontSizeLarge: 12 * fontScale
property real fontSizeLarger: 14 * fontScale
property real fontSizeLargest: 18 * fontScale
property real fontSizeBannerSmall: 24 * fontScale**.8
property real fontSizeBanner: 48 * fontScale**.8
}