pragma Singleton import Quickshell Singleton { id: root function colorWithHueOf(color1, color2) { var c1 = Qt.color(color1); var c2 = Qt.color(color2); var hue = c2.hsvHue; var sat = c1.hsvSaturation; var val = c1.hsvValue; var alpha = c1.a; return Qt.hsva(hue, sat, val, alpha); } function colorWithSaturationOf(color1, color2) { var c1 = Qt.color(color1); var c2 = Qt.color(color2); var hue = c1.hsvHue; var sat = c2.hsvSaturation; var val = c1.hsvValue; var alpha = c1.a; return Qt.hsva(hue, sat, val, alpha); } function colorWithLightness(color, lightness) { var c = Qt.color(color); return Qt.hsla(c.hslHue, c.hslSaturation, lightness, c.a); } function colorWithLightnessOf(color1, color2) { var c2 = Qt.color(color2); return colorWithLightness(color1, c2.hslLightness); } function adaptToAccent(color1, color2) { var c1 = Qt.color(color1); var c2 = Qt.color(color2); var hue = c2.hslHue; var sat = c2.hslSaturation; var light = c1.hslLightness; var alpha = c1.a; return Qt.hsla(hue, sat, light, alpha); } function mix(color1, color2, percentage = 0.5) { var c1 = Qt.color(color1); var c2 = Qt.color(color2); return Qt.rgba( percentage * c1.r + (1 - percentage) * c2.r, percentage * c1.g + (1 - percentage) * c2.g, percentage * c1.b + (1 - percentage) * c2.b, percentage * c1.a + (1 - percentage) * c2.a ); } function transparentize(color, percentage = 1) { var c = Qt.color(color); return Qt.rgba(c.r, c.g, c.b, c.a * (1 - percentage)); } function applyAlpha(color, alpha) { var c = Qt.color(color); var a = Math.max(0, Math.min(1, alpha)); return Qt.rgba(c.r, c.g, c.b, a); } }