1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Effects
import QtQuick.Controls.Basic
Button {
id: control
property real animatedPressed: control.down ? 1.0 : 0.0
property real animatedChecked: control.checked ? 1.0 : 0.0
Behavior on animatedPressed {
NumberAnimation {
duration: 200
easing.type: Easing.InOutQuad
}
}
height: 40
contentItem: Text {
text: control.text
font: control.font
opacity: enabled ? 0.7 + 0.3 * animatedPressed + animatedChecked * 0.3 : 0.3
color: "#ffffff"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 40
opacity: enabled ? 1 : 0.3
radius: height * 0.5
color: Qt.lighter(mainWindow.mainColor, 0.3)
border.width: 1
border.color: Qt.lighter(mainWindow.mainColor, 0.1)
RectangularShadow {
// Inner shadow
anchors.fill: parent
anchors.margins: blur
radius: height * 0.4
blur: height * 0.4
color: Qt.lighter(mainWindow.mainColor, 0.4 + animatedPressed * 0.2 + animatedChecked * 0.6)
}
RectangularShadow {
// Glow
anchors.fill: parent
z: -1
radius: height * 0.4
blur: 60
opacity: 0.1 + animatedPressed * 0.4
color: Qt.lighter(mainWindow.mainColor, 1.2)
}
}
}
|