diff --git a/pages/packages/index.vue b/pages/packages/index.vue
index 324ac9f..ffad763 100644
--- a/pages/packages/index.vue
+++ b/pages/packages/index.vue
@@ -15,27 +15,18 @@
:to="`/packages/${pkg.slug}`"
class="package-card card"
>
-
+
+ {{ pkg.name[0] }}
+
+ {{ pkg.name }}
+
{{ pkg.short_description }}
+
Website
Docs
@@ -92,63 +83,59 @@ useSeoMeta({
transition: box-shadow 0.2s, transform 0.2s;
display: flex;
flex-direction: column;
- gap: var(--space-md);
+ align-items: center;
+ text-align: center;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.05);
+ min-width: 280px;
+ max-width: 360px;
}
.package-card:hover {
- box-shadow: var(--shadow-lg);
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12), 0 8px 20px rgba(0, 0, 0, 0.08);
transform: translateY(-2px);
text-decoration: none;
}
-.package-header {
- display: flex;
- align-items: flex-start;
- gap: var(--space-md);
-}
-
.package-logo {
- width: 56px;
- height: 56px;
+ width: 64px;
+ height: 64px;
object-fit: contain;
- flex-shrink: 0;
+ margin-bottom: var(--space-md);
}
.package-logo-placeholder {
- width: 56px;
- height: 56px;
+ width: 64px;
+ height: 64px;
border-radius: var(--radius-md);
background: var(--color-primary);
color: white;
display: flex;
align-items: center;
justify-content: center;
- font-size: 1.25rem;
+ font-size: 1.5rem;
font-weight: 700;
- flex-shrink: 0;
+ margin-bottom: var(--space-md);
}
.package-name {
- font-size: 1.125rem;
- margin: 0 0 var(--space-xs);
-}
-
-.package-meta {
- display: flex;
- flex-wrap: wrap;
- gap: var(--space-xs);
+ font-size: var(--text-xl);
+ font-weight: 600;
+ margin: 0 0 var(--space-sm);
+ color: var(--color-text-primary);
}
.package-desc {
- color: var(--color-text-muted);
- font-size: 0.9375rem;
- margin: 0;
+ color: var(--color-text-secondary);
+ font-size: var(--text-sm);
+ line-height: 1.5;
+ margin: 0 0 20px;
flex: 1;
}
.package-links {
display: flex;
gap: var(--space-sm);
+ justify-content: center;
}
.link-badge {