// Copyright (C) 2017 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only import QtQuick import QtQuick.Templates as T import QtQuick.Controls.Material import QtQuick.Controls.Material.impl Rectangle { id: indicator implicitWidth: 20 implicitHeight: 20 radius: width / 2 border.width: 2 border.color: targetColor color: "transparent" // Store the target color in a separate property, because there are two animations that depend on it. readonly property color targetColor: !control.enabled ? control.Material.hintTextColor : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor property T.AbstractButton control Behavior on border.color { ColorAnimation { duration: 100 easing.type: Easing.OutCubic } } Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: 10 height: 10 radius: width / 2 color: indicator.targetColor scale: indicator.control.checked || indicator.control.down ? 1 : 0 Behavior on color { ColorAnimation { duration: 100 easing.type: Easing.OutCubic } } Behavior on scale { NumberAnimation { duration: 100 } } } }