Skip to content

Commit a0aa8f4

Browse files
committed
refactor(web): rename testimonials classes to resume card classes for consistency (#1113)
- resolved: #1113
1 parent 6b96c37 commit a0aa8f4

File tree

2 files changed

+38
-169
lines changed

2 files changed

+38
-169
lines changed

apps/web/src/components/resume/resume-card.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ export default function ResumeCard({ resumeCard }: ResumeCardProps) {
4545
return (
4646
<>
4747
<section
48-
className="skill hover:scale-105 duration-300"
48+
className="hover:scale-105 duration-300"
4949
onClick={() => openModal(resumeCard)}
5050
>
51-
<div className="skills-list resume-card">
51+
<div className="resume-card">
5252
<div className="flex flex-row items-center gap-4 p-6 pb-4 cursor-pointer transition-colors rounded-t-md">
5353
<div className="h-10 w-10 flex-shrink-0 overflow-hidden rounded-md">
5454
<Image
@@ -92,14 +92,18 @@ export default function ResumeCard({ resumeCard }: ResumeCardProps) {
9292

9393
{/* Modal */}
9494
{activeResumeCard && (
95-
<div className="modal-container active" aria-modal="true" role="dialog">
95+
<div
96+
className="resume-card-modal-container active"
97+
aria-modal="true"
98+
role="dialog"
99+
>
96100
<div
97-
className={`overlay ${activeResumeCard ? "active" : ""}`}
101+
className={`resume-card-overlay ${activeResumeCard ? "active" : ""}`}
98102
onClick={closeModal}
99103
></div>
100-
<section className="testimonials-modal">
104+
<section className="resume-card-modal">
101105
<button
102-
className="modal-close-btn"
106+
className="resume-card-modal-close-btn"
103107
onClick={closeModal}
104108
aria-label="Close modal"
105109
>
@@ -119,14 +123,14 @@ export default function ResumeCard({ resumeCard }: ResumeCardProps) {
119123
</svg>
120124
</button>
121125

122-
<div className="modal-img-wrapper">
123-
<figure className="modal-avatar-box">
126+
<div className="resume-card-modal-img-wrapper">
127+
<figure className="resume-card-modal-avatar-box">
124128
<Image
125129
src={activeResumeCard.institutionImage || "/favicon.ico"}
126130
alt={activeResumeCard.institution}
127131
width={80}
128132
height={80}
129-
className="modal-avatar"
133+
className="resume-card-modal-avatar"
130134
onError={(e) => {
131135
e.currentTarget.src = "/favicon.ico?height=80&width=80";
132136
e.currentTarget.onerror = null;
@@ -135,13 +139,13 @@ export default function ResumeCard({ resumeCard }: ResumeCardProps) {
135139
</figure>
136140
</div>
137141

138-
<div className="modal-content">
139-
<h3 className="modal-title font-semibold text-white-1 text-2xl">
142+
<div>
143+
<h1 className="font-semibold text-white-1 text-2xl mb-1">
140144
{activeResumeCard.institution}
141-
</h3>
142-
<h5 className="text-lg text-light-gray mb-4">
145+
</h1>
146+
<h2 className="text-lg text-light-gray mb-4">
143147
{activeResumeCard.title}
144-
</h5>
148+
</h2>
145149

146150
<div className="mb-6">
147151
<div className="flex flex-wrap gap-2">

apps/web/src/styles/resume-card.css

Lines changed: 20 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -17,76 +17,7 @@
1717
z-index: -1;
1818
}
1919

20-
/**
21-
* #testimonials
22-
*/
23-
24-
.testimonials {
25-
margin-bottom: 30px;
26-
}
27-
28-
.testimonials-title {
29-
margin-bottom: 20px;
30-
}
31-
32-
.testimonials-list {
33-
display: flex;
34-
justify-content: flex-start;
35-
align-items: flex-start;
36-
gap: 15px;
37-
margin: 0 -15px;
38-
padding: 25px 15px;
39-
padding-bottom: 35px;
40-
overflow-x: auto;
41-
scroll-behavior: smooth;
42-
overscroll-behavior-inline: contain;
43-
scroll-snap-type: inline mandatory;
44-
}
45-
46-
.clients p {
47-
margin-bottom: 15px;
48-
color: var(--light-gray);
49-
font-size: var(--fs-6);
50-
font-weight: var(--fw-300);
51-
line-height: 1.6;
52-
}
53-
54-
.testimonials-item {
55-
min-width: 100%;
56-
scroll-snap-align: center;
57-
}
58-
59-
.testimonials-avatar-box {
60-
position: absolute;
61-
top: 0;
62-
left: 0;
63-
transform: translate(15px, -25px);
64-
background: var(--bg-gradient-onyx);
65-
border-radius: 14px;
66-
box-shadow: var(--shadow-1);
67-
}
68-
69-
.testimonials-item-title {
70-
margin-bottom: 7px;
71-
}
72-
73-
.testimonials-text {
74-
color: var(--light-gray);
75-
font-size: var(--fs-6);
76-
font-weight: var(--fw-300);
77-
line-height: 1.6;
78-
display: -webkit-box;
79-
line-clamp: 4;
80-
-webkit-line-clamp: 4;
81-
-webkit-box-orient: vertical;
82-
overflow: hidden;
83-
}
84-
85-
/**
86-
* #testimonials-modal
87-
*/
88-
89-
.modal-container {
20+
.resume-card-modal-container {
9021
position: fixed;
9122
top: 0;
9223
left: 0;
@@ -102,16 +33,16 @@
10233
visibility: hidden;
10334
}
10435

105-
.modal-container::-webkit-scrollbar {
36+
.resume-card-modal-container::-webkit-scrollbar {
10637
display: none;
10738
}
10839

109-
.modal-container.active {
40+
.resume-card-modal-container.active {
11041
pointer-events: all;
11142
visibility: visible;
11243
}
11344

114-
.overlay {
45+
.resume-card-overlay {
11546
position: fixed;
11647
top: 0;
11748
left: 0;
@@ -125,13 +56,13 @@
12556
transition: var(--transition-1);
12657
}
12758

128-
.overlay.active {
59+
.resume-card-overlay.active {
12960
opacity: 0.8;
13061
visibility: visible;
13162
pointer-events: all;
13263
}
13364

134-
.testimonials-modal {
65+
.resume-card-modal {
13566
background: var(--eerie-black-2);
13667
position: relative;
13768
padding: 15px;
@@ -145,12 +76,12 @@
14576
z-index: 2;
14677
}
14778

148-
.modal-container.active .testimonials-modal {
79+
.resume-card-modal-container.active .resume-card-modal {
14980
transform: scale(1);
15081
opacity: 1;
15182
}
15283

153-
.modal-close-btn {
84+
.resume-card-modal-close-btn {
15485
position: absolute;
15586
top: 15px;
15687
right: 15px;
@@ -166,86 +97,28 @@
16697
opacity: 0.7;
16798
}
16899

169-
.modal-close-btn:hover,
170-
.modal-close-btn:focus {
100+
.resume-card-modal-close-btn:hover,
101+
.resume-card-modal-close-btn:focus {
171102
opacity: 1;
172103
}
173104

174-
.modal-avatar-box {
175-
background: var(--bg-gradient-onyx);
105+
.resume-card-modal-avatar-box {
176106
width: max-content;
177107
border-radius: 14px;
178108
margin-bottom: 15px;
179109
box-shadow: var(--shadow-2);
180110
}
181111

182-
.modal-img-wrapper>img {
112+
.resume-card-modal-img-wrapper>img {
183113
display: none;
184114
}
185115

186-
.modal-title {
187-
margin-bottom: 4px;
188-
}
189-
190-
.modal-content time {
191-
font-size: var(--fs-6);
192-
color: var(--light-gray-70);
193-
font-weight: var(--fw-300);
194-
margin-bottom: 10px;
195-
}
196-
197-
.modal-content p {
198-
color: var(--light-gray);
199-
font-size: var(--fs-6);
200-
font-weight: var(--fw-300);
201-
line-height: 1.6;
202-
}
203-
204116
@media (min-width: 580px) {
205-
/* testimonials */
206-
207-
.testimonials-title {
208-
margin-bottom: 25px;
209-
}
210-
211-
.testimonials-list {
212-
gap: 30px;
213-
margin: 0 -30px;
214-
padding: 30px;
215-
padding-bottom: 35px;
216-
}
217-
218-
.content-card {
219-
padding: 30px;
220-
padding-top: 25px;
221-
}
222-
223-
.testimonials-avatar-box {
224-
transform: translate(30px, -30px);
225-
border-radius: 20px;
226-
}
227-
228-
.testimonials-avatar-box img {
229-
width: 80px;
230-
}
231-
232-
.testimonials-item-title {
233-
margin-bottom: 10px;
234-
margin-left: 95px;
235-
}
236-
237-
.testimonials-text {
238-
line-clamp: 2;
239-
-webkit-line-clamp: 2;
240-
}
241-
242-
/* testimonials modal */
243-
244-
.modal-container {
117+
.resume-card-modal-container {
245118
padding: 20px;
246119
}
247120

248-
.testimonials-modal {
121+
.resume-card-modal {
249122
display: flex;
250123
justify-content: flex-start;
251124
align-items: stretch;
@@ -254,43 +127,35 @@
254127
border-radius: 20px;
255128
}
256129

257-
.modal-img-wrapper {
130+
.resume-card-modal-img-wrapper {
258131
display: flex;
259132
flex-direction: column;
260133
align-items: center;
261134
}
262135

263-
.modal-avatar-box {
136+
.resume-card-modal-avatar-box {
264137
border-radius: 18px;
265138
margin-bottom: 0;
266139
}
267140

268-
.modal-avatar-box img {
141+
.resume-card-modal-avatar {
269142
width: 65px;
270143
}
271144

272-
.modal-img-wrapper>img {
145+
.resume-card-modal-img-wrapper>img {
273146
display: block;
274147
flex-grow: 1;
275148
width: 35px;
276149
}
277150
}
278151

279152
@media (min-width: 768px) {
280-
/* testimonials modal */
281-
282-
.testimonials-modal {
153+
.resume-card-modal {
283154
gap: 35px;
284155
max-width: 680px;
285156
}
286157

287-
.modal-avatar-box img {
158+
.resume-card-modal-avatar {
288159
width: 80px;
289160
}
290-
}
291-
292-
@media (min-width: 1024px) {
293-
.testimonials-item {
294-
min-width: calc(50% - 15px);
295-
}
296161
}

0 commit comments

Comments
 (0)