mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-04 22:49:50 -05:00
92 lines
2 KiB
QML
92 lines
2 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import Qt5Compat.GraphicalEffects
|
|
|
|
TextField {
|
|
id: root
|
|
color: "white"
|
|
scale: activeFocus ? 1.05 : 1.0
|
|
padding: 8
|
|
focus: true
|
|
echoMode: TextInput.Password
|
|
inputMethodHints: Qt.ImhSensitiveData
|
|
font.pointSize: 11
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
background: Rectangle {
|
|
color: Qt.rgba(1, 1, 1, 0.1)
|
|
border.color: root.activeFocus ? Qt.rgba(1, 1, 1, 0.5) : Qt.rgba(1, 1, 1, 0.2)
|
|
border.width: 1
|
|
radius: 8
|
|
|
|
layer.enabled: true
|
|
layer.effect: FastBlur {
|
|
radius: 10
|
|
transparentBorder: true
|
|
}
|
|
}
|
|
|
|
transform: Translate {
|
|
id: shakeTransform
|
|
x: 0
|
|
}
|
|
|
|
property bool shaking: false
|
|
|
|
onShakingChanged: {
|
|
if (shaking)
|
|
shakeAnimation.start();
|
|
}
|
|
|
|
Behavior on scale {
|
|
NumberAnimation {
|
|
duration: 200
|
|
easing.type: Easing.OutCubic
|
|
}
|
|
}
|
|
|
|
SequentialAnimation {
|
|
id: shakeAnimation
|
|
|
|
NumberAnimation {
|
|
target: shakeTransform
|
|
property: "x"
|
|
to: -8
|
|
duration: 50
|
|
easing.type: Easing.OutQuad
|
|
}
|
|
NumberAnimation {
|
|
target: shakeTransform
|
|
property: "x"
|
|
to: 8
|
|
duration: 100
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
NumberAnimation {
|
|
target: shakeTransform
|
|
property: "x"
|
|
to: -6
|
|
duration: 80
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
NumberAnimation {
|
|
target: shakeTransform
|
|
property: "x"
|
|
to: 6
|
|
duration: 80
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
NumberAnimation {
|
|
target: shakeTransform
|
|
property: "x"
|
|
to: -3
|
|
duration: 60
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
|
|
onFinished: {
|
|
root.shaking = false;
|
|
root.text = "";
|
|
}
|
|
}
|
|
}
|