vue3-uikit
181 строка · 3.7 Кб
1<template>
2<div class="card-wrapper">
3<!-- Карточка с текстом -->
4<div class="card">
5<h3 class="card-title"><slot name="title">Simple Card</slot></h3>
6<div class="card-content">
7<slot>Lorem ipsum dolor sit amet. Donec odio</slot>
8</div>
9</div>
10
11<!-- Карточка с изображением -->
12<div class="card card-image">
13<img src="https://via.placeholder.com/300x150" alt="Placeholder Image" class="card-img">
14<div class="card-content">
15<h3 class="card-title"><slot name="title">Card Image</slot></h3>
16<slot>Lorem ipsum dolor sit amet. Donec odio</slot>
17</div>
18</div>
19
20<!-- Карточка с кнопкой -->
21<div class="card">
22<h3 class="card-title"><slot name="title">Card Button</slot></h3>
23<div class="card-content">
24<slot>Lorem ipsum dolor sit amet. Donec odio</slot>
25</div>
26<button class="card-button">Click Me</button>
27</div>
28
29<!-- Карточка пользователя -->
30<div class="card card-user">
31<img src="https://via.placeholder.com/80" alt="User Avatar" class="card-avatar">
32<div class="card-content">
33<h3 class="card-title">Agent Smith</h3>
34<p>smit@matrix.com</p>
35<button class="card-button">Follow</button>
36</div>
37</div>
38
39<!-- Карточка с ценой -->
40<div class="card card-price">
41<div class="card-content">
42<h3 class="card-title">Pro Plan</h3>
43<p class="card-price-value">$29/month</p>
44<ul class="card-features">
45<li><i class="fas fa-check"></i> Feature 1</li>
46<li><i class="fas fa-check"></i> Feature 2</li>
47<li><i class="fas fa-check"></i> Feature 3</li>
48</ul>
49<button class="card-button">Choose Plan</button>
50</div>
51</div>
52</div>
53</template>
54
55<script>
56export default {
57name: 'Card',
58};
59</script>
60
61<style scoped>
62.card-wrapper {
63display: grid;
64grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
65gap: 16px;
66margin: 20px;
67}
68
69.card {
70border: 1px solid #ccc;
71border-radius: 8px;
72padding: 16px;
73box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
74background-color: #fff;
75transition: transform 0.2s ease, box-shadow 0.2s ease;
76text-align: center;
77}
78
79.card:hover {
80transform: translateY(-4px);
81box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
82}
83
84.card-title {
85margin: 0 0 16px;
86font-size: 1.5rem;
87color: #333;
88}
89
90.card-content {
91color: #555;
92font-size: 1rem;
93text-align: center;
94}
95
96.card-img {
97width: 100%;
98border-bottom: 1px solid #ccc;
99margin-bottom: 16px;
100border-radius: 8px 8px 0 0;
101}
102
103.card-button {
104margin-top: 16px;
105padding: 10px 20px;
106background-color: #007bff;
107color: #fff;
108border: none;
109border-radius: 4px;
110cursor: pointer;
111transition: background-color 0.3s ease;
112}
113
114.card-button:hover {
115background-color: #0056b3;
116}
117
118.card-user {
119display: flex;
120flex-direction: column;
121align-items: center;
122justify-content: flex-start;
123text-align: left;
124}
125
126.card-avatar {
127width: 80px;
128height: 80px;
129border-radius: 50%;
130}
131
132.card-user .card-title {
133margin: 5px 0 8px;
134font-size: 1.2rem;
135}
136
137.card-user .card-button {
138padding: 8px 16px;
139background-color: #28a745;
140}
141
142.card-user .card-button:hover {
143background-color: #218838;
144}
145
146.card-price {
147border: 2px solid #007bff;
148}
149
150.card-price .card-title {
151font-size: 1.4rem;
152color: #007bff;
153}
154
155.card-price-value {
156font-size: 2rem;
157color: #007bff;
158margin: 16px 0;
159}
160
161.card-features {
162list-style: none;
163padding: 0;
164margin: 16px 0 0;
165}
166
167.card-features li {
168margin: 8px 0;
169}
170
171.card-features i {
172color: #28a745;
173margin-right: 8px;
174}
175
176@media (min-width: 600px) {
177.card-wrapper {
178grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
179}
180}
181</style>
182