pragma ComponentBehavior: Bound import QtQuick import ZShell.Config import qs.Services Text { id: root property bool animate: false property int animateDuration: 400 property real animateFrom: 0 property string animateProp: "scale" property real animateTo: 1 color: Colors.palette.m3onSurface font.family: Config.appearance.font.family.sans font.pointSize: Tokens.font.size.normal linkColor: Colors.palette.m3onPrimaryFixedVariant renderType: Text.NativeRendering textFormat: Text.PlainText Behavior on color { CAnim { } } Behavior on text { enabled: root.animate SequentialAnimation { TAnim { target: root to: root.animateFrom type: Anim.FastEffects } PropertyAction { } TAnim { target: root to: root.animateTo type: Anim.DefaultEffects } } } component TAnim: Anim { duration: root.animateDuration / 2 properties: root.animateProp.split(",").length > 1 ? root.animateProp : "" property: root.animateProp.split(",").length === 1 ? root.animateProp : "" target: root } }