Skip to content

Commit 93f3889

Browse files
committed
fix(projects): UI
1 parent 533aedd commit 93f3889

1 file changed

Lines changed: 36 additions & 41 deletions

File tree

app/components/ProjectList.server.vue

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,44 +4,42 @@
44
<li
55
v-for="(project, index) in list"
66
:key="project.name"
7-
class="project-item"
7+
class="project-row"
88
>
9-
<div class="project-row">
10-
<div class="project-row__content">
11-
<ul class="project-row__meta">
12-
<li v-for="tag in project.tags" :key="tag" class="tech-tag">
13-
{{ tag }}
14-
</li>
15-
</ul>
9+
<div class="project-row__content">
10+
<ul class="project-row__meta">
11+
<li v-for="tag in project.tags" :key="tag" class="tech-tag">
12+
{{ tag }}
13+
</li>
14+
</ul>
1615

17-
<div class="project-row__header">
18-
<component
19-
:is="project.url ? defineNuxtLink({}) : 'span'"
20-
:to="project.url ? project.url : undefined"
21-
:target="project.url?.startsWith('http') ? '_blank' : undefined"
22-
class="project-row__link"
23-
>
24-
<h3 class="project-row__title">{{ project.name }}</h3>
25-
</component>
26-
</div>
27-
28-
<p class="project-row__description">{{ project.description }}</p>
16+
<div class="project-row__header">
17+
<component
18+
:is="project.url ? defineNuxtLink({}) : 'span'"
19+
:to="project.url ? project.url : undefined"
20+
:target="project.url?.startsWith('http') ? '_blank' : undefined"
21+
class="project-row__link"
22+
>
23+
<h3 class="project-row__title">{{ project.name }}</h3>
24+
</component>
2925
</div>
26+
27+
<p class="project-row__description">{{ project.description }}</p>
28+
</div>
3029

31-
<div v-if="project.image" class="lightbox">
32-
<input :id="`zoom-${index}`" type="checkbox" class="lightbox__toggle" aria-label="Open preview" />
33-
<label :for="`zoom-${index}`" class="lightbox__trigger">
34-
<img
35-
:src="project.image"
36-
:alt="`${project.name} preview`"
37-
class="thumb"
38-
:loading="index <= props.preloadProjectImages ? 'eager' : 'lazy'"
39-
/>
40-
</label>
41-
<label :for="`zoom-${index}`" class="lightbox__overlay">
42-
<img :src="project.image" alt="" class="full-view" />
43-
</label>
44-
</div>
30+
<div v-if="project.image" class="lightbox">
31+
<input :id="`zoom-${index}`" type="checkbox" class="lightbox__toggle" aria-label="Open preview" />
32+
<label :for="`zoom-${index}`" class="lightbox__trigger">
33+
<img
34+
:src="project.image"
35+
:alt="`${project.name} preview`"
36+
class="thumb"
37+
:loading="index <= props.preloadProjectImages ? 'eager' : 'lazy'"
38+
/>
39+
</label>
40+
<label :for="`zoom-${index}`" class="lightbox__overlay">
41+
<img :src="project.image" alt="" class="full-view" />
42+
</label>
4543
</div>
4644
</li>
4745
</ul>
@@ -177,9 +175,10 @@ $row-padding-h: 1rem;
177175
gap: 1rem;
178176
padding: $row-padding-v $row-padding-h;
179177
margin: 0 calc($row-padding-h * -1);
180-
border-top: 1px solid var(--color-fg2, #333);
178+
border-top: 1px solid var(--color-fg1);
181179
transition: background-color 0.2s ease, opacity 0.3s ease;
182-
border-radius: 0.25rem;
180+
181+
&:first-of-type { border-top: none; }
183182
184183
&:hover {
185184
background-color: rgba(255, 255, 255, 0.03);
@@ -193,10 +192,6 @@ $row-padding-h: 1rem;
193192
margin: 0 -1.5rem;
194193
}
195194
196-
&:last-child {
197-
border-bottom: 1px solid var(--color-fg2, #333);
198-
}
199-
200195
&__content { flex: 1; }
201196
202197
&__meta {
@@ -269,7 +264,7 @@ $row-padding-h: 1rem;
269264
height: 100%;
270265
object-fit: cover;
271266
border-radius: 0.25rem;
272-
border: 1px solid var(--color-fg2, #333);
267+
border: 1px solid var(--color-fg1);
273268
transition: transform 0.2s ease, opacity 0.3s ease, filter 0.3s ease;
274269
&:hover { transform: scale(1.02); }
275270
}

0 commit comments

Comments
 (0)