import QtQuick import QtQuick.Effects FullwidthMouseArea { id: root property bool showPressed: mouseArea.pressed property real baseMargin: 0 property bool directScale: false readonly property Item contentItem: mContentItem default property alias contentItemData: mContentItem.data property real targetBrightness: root.showPressed ? -25 : root.mouseArea.containsMouse && root.enabled ? 75 : 0 Behavior on targetBrightness { SmoothedAnimation { velocity: 600 } } property real targetMargins: root.showPressed ? 3 : 0 Behavior on targetMargins { SmoothedAnimation { velocity: 25 } } hoverEnabled: true Item { id: mContentItem anchors.fill: parent anchors.margins: root.baseMargin + (root.directScale ? 0 : root.targetMargins) scale: root.directScale ? (width - root.targetMargins * 2) / width : 1.0 opacity: root.enabled ? 1.0 : 0.5 Behavior on opacity { SmoothedAnimation { velocity: 5 } } layer.enabled: root.targetBrightness != 0 layer.effect: MultiEffect { brightness: root.targetBrightness / 1000 } } }