2019-07-23 17:14:02 +10:00
|
|
|
// vim: syntax=qml
|
|
|
|
|
2019-07-25 04:58:16 +10:00
|
|
|
// Base variables
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
real uiScale: 1.0 /* TODO: Implement correctly, do not change for now */
|
|
|
|
real fontScale: uiScale
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
Behavior on uiScale { HNumberAnimation {} }
|
|
|
|
Behavior on fontScale { HNumberAnimation {} }
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
int minimumSupportedWidth: 240 * uiScale
|
|
|
|
int minimumSupportedHeight: 120 * uiScale
|
|
|
|
int contentIsWideAbove: 439 * uiScale
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
int minimumSupportedWidthPlusSpacing: minimumSupportedWidth + spacing * 2
|
|
|
|
int minimumSupportedHeightPlusSpacing: minimumSupportedHeight + spacing * 2
|
|
|
|
|
2019-08-21 08:31:20 +10:00
|
|
|
int baseElementsHeight: 36 * uiScale
|
|
|
|
int spacing: 12 * uiScale
|
|
|
|
int radius: 5
|
|
|
|
int animationDuration: 100
|
2019-08-28 04:21:10 +10:00
|
|
|
real loadingElementsOpacity: 0.8
|
2019-08-21 08:31:20 +10:00
|
|
|
real disabledElementsOpacity: 0.3
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
fontSize:
|
2019-08-18 04:54:34 +10:00
|
|
|
int smaller: 13 * fontScale
|
2019-07-24 16:14:34 +10:00
|
|
|
int small: 13 * fontScale
|
|
|
|
int normal: 16 * fontScale
|
|
|
|
int big: 22 * fontScale
|
|
|
|
int bigger: 32 * fontScale
|
|
|
|
int biggest: 48 * fontScale
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
fontFamily:
|
2019-07-24 16:14:34 +10:00
|
|
|
string sans: "Roboto"
|
2019-07-23 17:14:02 +10:00
|
|
|
string serif: "Roboto Slab"
|
2019-07-24 16:14:34 +10:00
|
|
|
string mono: "Hack"
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
colors:
|
2019-08-29 09:34:50 +10:00
|
|
|
int hue: 264
|
2019-07-24 16:14:34 +10:00
|
|
|
int saturation: 40
|
|
|
|
real intensity: 1.0
|
|
|
|
real opacity: 1.0
|
|
|
|
|
|
|
|
color weakBackground: hsluv(hue, saturation, intensity * 12, opacity)
|
|
|
|
color mediumBackground: hsluv(hue, saturation, intensity * 9, opacity)
|
|
|
|
color strongBackground: hsluv(hue, saturation, intensity * 6, opacity)
|
2019-07-25 06:21:34 +10:00
|
|
|
|
|
|
|
color inputBackground:
|
2019-08-28 12:44:41 +10:00
|
|
|
hsluv(hue, saturation, intensity * 2, Math.max(0.6, opacity))
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-08-18 17:27:00 +10:00
|
|
|
color accentBackground:
|
2019-08-28 12:44:41 +10:00
|
|
|
hsluv(hue, saturation * 1.25, intensity * 42, Math.max(0.6, opacity))
|
2019-08-18 17:27:00 +10:00
|
|
|
|
|
|
|
color strongAccentBackground:
|
2019-08-29 06:41:58 +10:00
|
|
|
hsluv(hue, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
|
|
|
|
|
|
|
color positiveBackground:
|
|
|
|
hsluv(155, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
|
|
|
|
|
|
|
color negativeBackground:
|
|
|
|
hsluv(0, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
2019-08-18 17:27:00 +10:00
|
|
|
|
2019-08-29 08:21:13 +10:00
|
|
|
color alertBackground:
|
|
|
|
hsluv(0, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
|
|
|
|
|
|
|
|
2019-08-17 02:07:22 +10:00
|
|
|
color brightText: hsluv(0, 0, intensity * 100)
|
|
|
|
color text: hsluv(0, 0, intensity * 80)
|
|
|
|
color halfDimText: hsluv(0, 0, intensity * 70)
|
|
|
|
color dimText: hsluv(0, 0, intensity * 55)
|
|
|
|
color dimmerText: hsluv(0, 0, intensity * 30)
|
2019-08-17 06:30:18 +10:00
|
|
|
|
|
|
|
color errorText: hsluv(0, saturation * 2.25, 50)
|
2019-08-28 12:44:41 +10:00
|
|
|
color accentText: hsluv(hue, saturation * 2.25, 60)
|
2019-08-17 02:07:22 +10:00
|
|
|
color link: accentText
|
|
|
|
color code: hsluv(hue + 5, saturation * 1.5, intensity * 60)
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-07-25 08:09:28 +10:00
|
|
|
// Example of an animation, set running: true to enable
|
|
|
|
NumberAnimation on hue
|
2019-08-16 02:06:51 +10:00
|
|
|
running: false
|
|
|
|
from: 0
|
|
|
|
to: 360
|
2019-07-25 08:09:28 +10:00
|
|
|
duration: 10000
|
2019-08-16 02:06:51 +10:00
|
|
|
loops: Animation.Infinite
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-08-29 06:41:58 +10:00
|
|
|
icons:
|
|
|
|
string preferredPack: "thin"
|
2019-08-29 08:32:16 +10:00
|
|
|
|
|
|
|
// "transparent" to disable colorizing
|
|
|
|
color colorize: "white"
|
|
|
|
color disabledColorize: "white"
|
2019-08-29 06:41:58 +10:00
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-07-25 04:58:16 +10:00
|
|
|
// Generic UI controls
|
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
controls:
|
2019-08-28 09:47:58 +10:00
|
|
|
loader:
|
|
|
|
int defaultDimension: 80
|
|
|
|
color colorize: "white"
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
box:
|
|
|
|
color background: colors.strongBackground
|
|
|
|
int radius: theme.radius
|
|
|
|
|
2019-07-25 16:43:52 +10:00
|
|
|
popup:
|
|
|
|
color background: colors.strongBackground
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
header:
|
2019-07-25 06:21:34 +10:00
|
|
|
color background: colors.strongBackground
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
button:
|
2019-08-21 08:31:20 +10:00
|
|
|
color background: colors.inputBackground
|
|
|
|
color text: colors.text
|
2019-08-21 07:41:24 +10:00
|
|
|
|
2019-08-29 09:44:52 +10:00
|
|
|
color hoveredOverlay: hsluv(0, 0, 50, 0.2)
|
|
|
|
color pressedOverlay: hsluv(0, 0, 50, 0.5)
|
2019-08-21 07:41:24 +10:00
|
|
|
color checkedOverlay: colors.accentBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-08-22 06:23:22 +10:00
|
|
|
menu:
|
|
|
|
color border: "black"
|
|
|
|
real borderWidth: 2
|
|
|
|
|
2019-08-22 05:45:13 +10:00
|
|
|
menuItem:
|
|
|
|
color background: controls.button.background
|
|
|
|
color text: controls.button.text
|
|
|
|
|
|
|
|
color hoveredOverlay: controls.button.hoveredOverlay
|
|
|
|
color pressedOverlay: controls.button.hoveredOverlay
|
|
|
|
color checkedOverlay: controls.button.hoveredOverlay
|
|
|
|
|
2019-08-21 08:31:20 +10:00
|
|
|
checkBox:
|
2019-08-29 06:30:48 +10:00
|
|
|
color checkIconColorize: colors.accentBackground
|
|
|
|
color boxBackground: controls.button.background
|
2019-08-21 08:31:20 +10:00
|
|
|
|
|
|
|
color boxBorder: hsluv(0, 0, 50, 0.3)
|
|
|
|
color boxHoveredBorder: colors.accentBackground
|
|
|
|
color boxPressedBorder: colors.strongAccentBackground
|
|
|
|
|
2019-08-22 05:45:13 +10:00
|
|
|
color text: controls.button.text
|
2019-08-21 08:31:20 +10:00
|
|
|
|
2019-08-21 18:58:34 +10:00
|
|
|
listView:
|
|
|
|
color highlight: hsluv(0, 0, 50, 0.3)
|
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
textField:
|
2019-07-25 06:21:34 +10:00
|
|
|
color background: colors.inputBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
color focusedBackground: background
|
2019-07-24 16:14:34 +10:00
|
|
|
|
|
|
|
int borderWidth: 1
|
|
|
|
color border: "transparent"
|
2019-08-28 12:44:41 +10:00
|
|
|
color focusedBorder: colors.accentBackground
|
2019-08-29 06:41:58 +10:00
|
|
|
color errorBorder: colors.negativeBackground
|
2019-07-24 16:14:34 +10:00
|
|
|
|
|
|
|
color text: colors.text
|
|
|
|
color focusedText: colors.text
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
textArea:
|
2019-07-25 06:21:34 +10:00
|
|
|
color background: colors.inputBackground
|
2019-07-24 16:14:34 +10:00
|
|
|
color text: colors.text
|
|
|
|
|
2019-08-22 23:27:26 +10:00
|
|
|
toolTip:
|
|
|
|
int delay: 500
|
|
|
|
color background: colors.inputBackground
|
|
|
|
color text: colors.text
|
|
|
|
color border: "black"
|
|
|
|
int borderWidth: 2
|
|
|
|
|
2019-08-29 04:28:20 +10:00
|
|
|
progressBar:
|
|
|
|
int height: Math.max(2, spacing / 2)
|
|
|
|
color background: colors.inputBackground
|
|
|
|
color foreground: colors.accentBackground
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
avatar:
|
|
|
|
int size: baseElementsHeight
|
|
|
|
int radius: theme.radius
|
|
|
|
|
|
|
|
background:
|
2019-08-22 02:35:55 +10:00
|
|
|
int saturation: colors.saturation + 10
|
2019-07-24 16:14:34 +10:00
|
|
|
int lightness: Math.min(50, colors.intensity * 20)
|
|
|
|
real opacity: 1.0
|
|
|
|
|
|
|
|
letter:
|
2019-08-22 02:38:01 +10:00
|
|
|
int saturation: 10 + colors.saturation * 1.5
|
2019-07-24 16:14:34 +10:00
|
|
|
int lightness: colors.intensity * 60
|
|
|
|
real opacity: 1.0
|
|
|
|
|
|
|
|
displayName:
|
2019-08-22 02:38:01 +10:00
|
|
|
int saturation: colors.saturation + 25
|
|
|
|
int lightness: Math.min(60, colors.intensity * 60)
|
2019-07-24 16:14:34 +10:00
|
|
|
|
|
|
|
|
2019-07-25 04:58:16 +10:00
|
|
|
// Special UI parts
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
ui:
|
2019-08-29 09:34:50 +10:00
|
|
|
// Image can be an URL or local file path.
|
|
|
|
// If not specified, the gradient will be shown instead.
|
2019-07-25 04:58:16 +10:00
|
|
|
url image: ""
|
2019-08-29 09:34:50 +10:00
|
|
|
|
|
|
|
int gradientRotation: 45 * 3
|
|
|
|
color gradientRight:
|
|
|
|
Utils.hsluv(colors.hue - 50, 100, colors.intensity * 8, colors.opacity)
|
|
|
|
color gradientLeft:
|
|
|
|
Utils.hsluv(colors.hue + 20, 31, colors.intensity * 22, colors.opacity)
|
|
|
|
|
|
|
|
// To have a solid color instead,
|
|
|
|
// set gradientLeft and gradientRight to the same value.
|
|
|
|
// color gradientLeft: colors.weakBackground
|
|
|
|
// color gradientRight: colors.weakBackground
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
sidePane:
|
2019-07-24 16:14:34 +10:00
|
|
|
real autoWidthRatio: 0.33 * uiScale
|
|
|
|
int maximumAutoWidth: 320 * uiScale
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
int autoCollapseBelowWidth: 128 * uiScale
|
|
|
|
int collapsedWidth: controls.avatar.size
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
int autoReduceBelowWindowWidth:
|
|
|
|
minimumSupportedWidthPlusSpacing + collapsedWidth
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.strongBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
account:
|
2019-08-18 17:27:00 +10:00
|
|
|
real collapsedOpacity: 0.3
|
|
|
|
color background: "transparent"
|
|
|
|
color name: colors.text
|
2019-07-24 16:14:34 +10:00
|
|
|
|
|
|
|
room:
|
2019-08-17 03:04:54 +10:00
|
|
|
real leftRoomOpacity: 0.65
|
|
|
|
|
|
|
|
color background: "transparent"
|
|
|
|
color name: colors.text
|
|
|
|
color subtitle: colors.dimText
|
|
|
|
color lastEventDate: colors.halfDimText
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
settingsButton:
|
2019-08-16 02:06:51 +10:00
|
|
|
color background: colors.inputBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
filterRooms:
|
2019-08-16 02:06:51 +10:00
|
|
|
color background: colors.inputBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
chat:
|
2019-07-23 17:14:02 +10:00
|
|
|
roomHeader:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.strongBackground
|
|
|
|
color name: colors.text
|
|
|
|
color topic: colors.dimText
|
|
|
|
|
|
|
|
roomSidePane:
|
|
|
|
color background: colors.mediumBackground
|
|
|
|
|
2019-08-22 19:42:48 +10:00
|
|
|
member:
|
|
|
|
color background: "transparent"
|
|
|
|
color name: colors.text
|
|
|
|
color subtitle: colors.dimText
|
|
|
|
|
2019-08-22 23:27:26 +10:00
|
|
|
inviteButton:
|
|
|
|
color background: colors.inputBackground
|
|
|
|
|
|
|
|
filterMembers:
|
|
|
|
color background: colors.inputBackground
|
|
|
|
|
2019-07-23 17:14:02 +10:00
|
|
|
eventList:
|
|
|
|
int ownEventsOnRightUnderWidth: 768
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: "transparent"
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
message:
|
2019-07-24 16:14:34 +10:00
|
|
|
int radius: theme.radius
|
|
|
|
color background: colors.strongBackground
|
2019-07-25 14:10:07 +10:00
|
|
|
color ownBackground: hsluv(
|
2019-08-29 09:34:50 +10:00
|
|
|
colors.hue, colors.saturation + 25, colors.intensity * 6, opacity
|
2019-07-25 14:10:07 +10:00
|
|
|
)
|
|
|
|
|
2019-08-29 09:34:50 +10:00
|
|
|
color body: colors.text
|
|
|
|
color date: colors.dimText
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-08-29 09:34:50 +10:00
|
|
|
color greenText: hsluv(135, colors.saturation * 2.25, 75)
|
2019-07-24 16:14:34 +10:00
|
|
|
color link: colors.link
|
|
|
|
color code: colors.code
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
string styleSheet:
|
|
|
|
"a { color: " + link + " }" +
|
|
|
|
|
|
|
|
"code { font-family: " + fontFamily.mono + "; " +
|
|
|
|
"color: " + code + " }" +
|
|
|
|
|
2019-07-24 16:14:34 +10:00
|
|
|
"h1, h2, h3 { font-weight: normal }" +
|
|
|
|
"h1 { font-size: " + fontSize.biggest + "px }" +
|
|
|
|
"h2 { font-size: " + fontSize.bigger + "px }" +
|
|
|
|
"h3 { font-size: " + fontSize.big + "px }" +
|
|
|
|
"h4 { font-size: " + fontSize.normal + "px }" +
|
|
|
|
"h5 { font-size: " + fontSize.small + "px }" +
|
|
|
|
"h6 { font-size: " + fontSize.smaller + "px }" +
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
".greentext { color: " + greenText + " }"
|
|
|
|
|
|
|
|
string styleInclude:
|
|
|
|
'<style type"text/css">\n' + styleSheet + '\n</style>\n'
|
|
|
|
|
|
|
|
daybreak:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.strongBackground
|
|
|
|
color text: colors.text
|
|
|
|
int radius: theme.radius
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
inviteBanner:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.mediumBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
leftBanner:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.mediumBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
unknownDevices:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.mediumBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
|
|
|
typingMembers:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.mediumBackground
|
2019-07-23 17:14:02 +10:00
|
|
|
|
2019-08-28 13:03:52 +10:00
|
|
|
composer:
|
2019-07-24 16:14:34 +10:00
|
|
|
color background: colors.strongBackground
|