pragma ComponentBehavior: Bound import QtQuick import QtQuick.Shapes // A curled steel chip, the kind that comes off a milling cutter. // Design space is 60 x 44 units. Item { id: chip property int kick: 0 readonly property real unit: width / 60 implicitWidth: 60 implicitHeight: 44 Item { width: 60 height: 44 transformOrigin: Item.TopLeft scale: chip.unit Rectangle { // ground shadow x: 14; y: 36 width: 32; height: 6 radius: 3 color: "#000000" opacity: 0.18 antialiasing: true } Item { id: curl x: 30; y: 22 width: 0; height: 0 Shape { x: -30; y: -22 width: 60; height: 44 preferredRendererType: Shape.CurveRenderer ShapePath { // the curl strokeColor: "#8d99ae" strokeWidth: 5 capStyle: ShapePath.RoundCap fillColor: "transparent" startX: 12; startY: 32 PathCubic { control1X: 2; control1Y: 20; control2X: 14; control2Y: 6; x: 30; y: 10 } PathCubic { control1X: 44; control1Y: 14; control2X: 48; control2Y: 30; x: 38; y: 34 } PathCubic { control1X: 30; control1Y: 37; control2X: 26; control2Y: 28; x: 32; y: 24 } } ShapePath { // highlight along the outer edge strokeColor: "#dfe6ee" strokeWidth: 1.6 capStyle: ShapePath.RoundCap fillColor: "transparent" startX: 13; startY: 29 PathCubic { control1X: 5; control1Y: 19; control2X: 16; control2Y: 8; x: 30; y: 12 } } } RotationAnimation on rotation { running: true loops: Animation.Infinite from: 0; to: 360 duration: 2600 } } } }