|
1 | 1 | @use '../../../../component-library/styles/tokens' as *; |
2 | 2 |
|
3 | 3 | /* ─────────────────────────────────────────────────── |
4 | | - SkillCard — vertical card with glassmorphism effect |
| 4 | + SkillCard — compact card for discover tab grid |
5 | 5 | DOM: |
6 | 6 | .skill-card |
7 | 7 | ::before (decorative circle blur) |
|
18 | 18 | ─────────────────────────────────────────────────── */ |
19 | 19 |
|
20 | 20 | .skill-card { |
21 | | - width: 360px; |
22 | | - height: 200px; |
23 | | - border-radius: 15px; |
| 21 | + width: 100%; |
| 22 | + height: 100%; |
| 23 | + min-height: 150px; |
| 24 | + border-radius: 12px; |
24 | 25 | background: var(--element-bg-soft); |
25 | 26 | display: flex; |
26 | 27 | flex-direction: column; |
|
33 | 34 | transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), |
34 | 35 | box-shadow 0.35s ease; |
35 | 36 |
|
36 | | - // Top gradient overlay - shows on hover, covers entire card except footer |
| 37 | + // Top gradient overlay |
37 | 38 | &::before { |
38 | 39 | content: ""; |
39 | 40 | position: absolute; |
40 | 41 | top: 0; |
41 | 42 | left: 0; |
42 | 43 | right: 0; |
43 | | - bottom: 40px; |
| 44 | + bottom: 0; |
44 | 45 | background: var(--skill-card-gradient); |
45 | 46 | opacity: 0; |
46 | 47 | transition: opacity 0.35s ease; |
47 | 48 | pointer-events: none; |
48 | 49 | z-index: 0; |
49 | 50 | } |
50 | 51 |
|
51 | | - &--no-actions::before { |
52 | | - bottom: 0; |
53 | | - } |
54 | | - |
55 | 52 | &:hover { |
56 | | - transform: translateY(-4px) scale(1.02); |
57 | | - box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2); |
| 53 | + transform: translateY(-3px) scale(1.01); |
| 54 | + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15); |
58 | 55 |
|
59 | 56 | &::before { |
60 | | - opacity: 0.4; |
| 57 | + opacity: 0.25; |
61 | 58 | } |
62 | 59 | } |
63 | 60 |
|
|
71 | 68 | display: flex; |
72 | 69 | align-items: flex-start; |
73 | 70 | justify-content: space-between; |
74 | | - padding: $size-gap-3; |
75 | | - padding-bottom: 0; |
| 71 | + padding: 12px 12px 8px; |
76 | 72 | position: relative; |
77 | 73 | z-index: 1; |
78 | 74 | } |
|
81 | 77 | display: flex; |
82 | 78 | align-items: center; |
83 | 79 | justify-content: center; |
84 | | - width: 32px; |
85 | | - height: 32px; |
| 80 | + width: 30px; |
| 81 | + height: 30px; |
86 | 82 | border-radius: 8px; |
87 | 83 | background: rgba(255, 255, 255, 0.12); |
88 | 84 | backdrop-filter: blur(8px); |
|
104 | 100 | // ── Body ── |
105 | 101 | &__body { |
106 | 102 | flex: 1; |
107 | | - padding: $size-gap-2 $size-gap-3; |
| 103 | + padding: 0 12px; |
108 | 104 | display: flex; |
109 | 105 | flex-direction: column; |
110 | 106 | gap: 4px; |
|
116 | 112 | &__title-row { |
117 | 113 | display: flex; |
118 | 114 | align-items: center; |
119 | | - gap: $size-gap-2; |
| 115 | + gap: 8px; |
120 | 116 | min-width: 0; |
121 | 117 | } |
122 | 118 |
|
123 | 119 | &__name { |
124 | | - font-size: 0.92em; |
| 120 | + font-size: 0.9em; |
125 | 121 | font-weight: $font-weight-semibold; |
126 | 122 | color: var(--color-text-primary); |
127 | 123 | line-height: $line-height-base; |
|
165 | 161 | display: flex; |
166 | 162 | align-items: center; |
167 | 163 | width: 100%; |
168 | | - border-radius: 0 0 15px 15px; |
| 164 | + border-radius: 0 0 12px 12px; |
169 | 165 | overflow: hidden; |
170 | 166 | position: relative; |
171 | 167 | z-index: 1; |
| 168 | + margin-top: auto; |
172 | 169 |
|
173 | 170 | // Bottom gradient blur background matching card color |
174 | 171 | &::after { |
|
179 | 176 | right: 0; |
180 | 177 | bottom: 0; |
181 | 178 | background: var(--skill-card-gradient); |
182 | | - opacity: 0.5; |
| 179 | + opacity: 0.35; |
183 | 180 | transition: opacity 0.35s ease; |
184 | 181 | pointer-events: none; |
185 | 182 | } |
186 | 183 | } |
187 | 184 |
|
188 | 185 | &:hover &__footer::after { |
189 | | - opacity: 1; |
| 186 | + opacity: 0.6; |
190 | 187 | } |
191 | 188 |
|
192 | 189 | &__actions { |
|
202 | 199 | display: inline-flex; |
203 | 200 | align-items: center; |
204 | 201 | justify-content: center; |
205 | | - height: 35px; |
| 202 | + height: 32px; |
206 | 203 | padding: 0; |
207 | 204 | border: none; |
208 | 205 | background: rgba(255, 255, 255, 0.08); |
|
244 | 241 | } |
245 | 242 | } |
246 | 243 |
|
247 | | -// ── Responsive ── |
248 | | -@media (max-width: 720px) { |
249 | | - .skill-card { |
250 | | - width: 100%; |
251 | | - min-height: 180px; |
252 | | - } |
253 | | -} |
254 | | - |
255 | 244 | // ── Animations ── |
256 | 245 | @keyframes skill-card-in { |
257 | 246 | from { |
|
0 commit comments