summaryrefslogtreecommitdiff
path: root/CardItemGrid.ui.qml
blob: b24b6c145e83307736e75eac70fa4675ab506cf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtGraphicalEffects 1.15

Item {
    id: item1
    DropShadow {
        color: "#4d000000"
        source: cardItem
        verticalOffset: 4
        radius: 40
        samples: 81
        anchors.fill: cardItem
    }
    Rectangle {
        id: cardItem
        anchors.fill: parent
        anchors.rightMargin: 16
        anchors.leftMargin: 16
        anchors.bottomMargin: 16
        anchors.topMargin: 16
        Layout.minimumWidth: 300
        Layout.minimumHeight: 475
        radius: 8
        ColumnLayout {
            anchors.fill: parent
            spacing: 0
            Rectangle {
                id: cardItemImage
                radius: 8
                Layout.fillHeight: true
                Layout.preferredHeight: 255
                Layout.fillWidth: true
                Layout.preferredWidth: 300
                Image {
                    id: cardItemImageSource
                    source: "https://eduport.webestica.com/assets/images/courses/4by3/08.jpg"
                    fillMode: Image.PreserveAspectCrop
                    width: parent.width
                    height: parent.height
                    visible: false
                }
                OpacityMask {
                    id: cardItemImageMask
                    anchors.fill: cardItemImage
                    source: cardItemImageSource
                    maskSource: cardItemImage
                }

                Rectangle {
                    id: rectangle
                    width: cardItemImageMask.width
                    height: 5
                    color: "#ffffff"
                    anchors.bottom: cardItemImageMask.bottom
                    anchors.bottomMargin: 0
                }
            }
            ColumnLayout {
                id: cardItemBody
                Layout.rightMargin: 20
                Layout.leftMargin: 20
                Layout.bottomMargin: 16
                Layout.topMargin: 16
                Layout.fillHeight: true
                Layout.fillWidth: true
                Item {
                    id: badgeAndFavorite
                    height: favorite.height
                    Layout.fillWidth: true
                    Label {
                        id: badge
                        color: "#0cbc87"
                        text: "All level"
                        anchors.left: parent.left
                        verticalAlignment: Text.AlignVCenter
                        Layout.fillWidth: false
                        rightPadding: 6
                        leftPadding: 6
                        bottomPadding: 4
                        topPadding: 4
                        font.pointSize: 12
                        font.family: "Roboto"
                        background: Rectangle {
                            color: "#4d0cbc87"
                            radius: 8
                        }
                    }

                    Button {
                        id: favorite
                        width: 24
                        height: 24
                        text: qsTr("Button")
                        anchors.right: parent.right
                        anchors.rightMargin: 0
                        padding: 0
                        rightPadding: 0
                        leftPadding: 0
                        bottomPadding: 0
                        topPadding: 0
                        icon.source: "Material/svg/outlined/heart.svg"
                        display: AbstractButton.IconOnly
                        flat: true
                    }
                }
            }
        }
    }
    states: [
        State {
            name: "State1"
            when: favorite.pressed

            PropertyChanges {
                target: favorite
                icon.color: "#d6293e"
                icon.source: "Font-Awesome/svgs/solid/heart.svg"
            }
        }
    ]
}