summaryrefslogtreecommitdiff
path: root/CardItemGrid.ui.qml
blob: 56dae24e2ce5b43cc3bef45a31bdee1c8a1bfa2c (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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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 {
			id: 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

						Connections {
							target: favorite
							onClicked: item1.state = "favorite pressed"
						}
					}
				}
			}

			Label {
				id: cardTitle
				color: "#24292d"
				text: qsTr("Course title")
				wrapMode: Text.Wrap
				Layout.fillWidth: true
				Layout.bottomMargin: 20
				font.styleName: "Medium"
				font.pointSize: 21
				font.family: "Roboto"
				Layout.rightMargin: 20
				Layout.leftMargin: 20
			}
		}
	}
	states: [
		State {
			name: "favorite pressed"
			when: favorite.pressed

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

			PropertyChanges {
				target: favorite
				layer.enabled: true
			}
		}
	]
}