@@ -17,27 +17,65 @@ const uc = vue.computed(() => props.card.userConfig.value || {})
17
17
<template >
18
18
<ul
19
19
role =" list"
20
- class =" mx-auto grid gap-x-6 lg:gap-x-12 gap-y-16 lg:mx-0 "
21
- :class =" uc.layout === 'mediabox' ? '' : 'sm:grid-cols-2'"
20
+ class =" grid gap-x-8 gap-y-12"
21
+ :class =" [
22
+ uc.layout === 'mediabox'
23
+ ? 'grid-cols-1'
24
+ : 'sm:grid-cols-2 lg:grid-cols-3',
25
+ ]"
22
26
>
23
- <li v-for =" (profile, i) in uc.items" :key =" i" class =" space-y-4" :class =" uc.layout === 'mediabox' ? 'flex flex-col gap-10 sm:flex-row' : ''" >
27
+ <li
28
+ v-for =" (profile, i) in uc.items"
29
+ :key =" i"
30
+ :class =" [
31
+ uc.layout === 'mediabox'
32
+ ? 'flex flex-col md:flex-row md:items-start gap-8'
33
+ : 'flex flex-col',
34
+ ]"
35
+ >
36
+ <!-- Member photo with refined proportions -->
24
37
<XMedia
25
- class =" rounded-2xl overflow-hidden dark:ring-1 dark:ring-theme-800 flex-shrink-0"
26
- :class =" uc.layout === 'mediabox' ? 'aspect-[3/4] w-32 md:w-52' : 'aspect-[3/2] w-full '"
27
38
:media =" profile.media"
28
39
:animate =" true"
40
+ class =" rounded-full overflow-hidden bg-theme-100 dark:bg-theme-800 flex-shrink-0 border-2 border-white"
41
+ :class =" [
42
+ uc.layout === 'mediabox'
43
+ ? 'w-32 md:w-48 aspect-[1/1]'
44
+ : 'w-full aspect-[1/1]',
45
+ ]"
29
46
/>
30
- <div :class =" uc.layout === 'mediabox' ? 'max-w-xl flex-auto' : ''" >
31
- <CardText animate =" fade" :card :path =" pathCheck(`items.${i}.title`, schema)" tag =" h3" class =" lg:mt-6 text-lg lg:text-3xl x-font-title font-semibold leading-8" />
32
- <CardText animate =" fade" :card :path =" pathCheck(`items.${i}.subTitle`, schema)" tag =" p" class =" text-base lg:text-lg dark:text-theme-300 text-theme-500 x-font-title" />
33
- <CardText animate =" fade" :card :path =" pathCheck(`items.${i}.content`, schema)" tag =" p" class =" mt-4 text-base lg:text-lg" />
47
+
48
+ <!-- Member details with balanced spacing -->
49
+ <div class =" mt-6" :class =" uc.layout === 'mediabox' ? 'md:mt-0' : ''" >
50
+ <CardText
51
+ animate =" fade"
52
+ :card
53
+ :path =" pathCheck(`items.${i}.title`, schema)"
54
+ tag =" h3"
55
+ class =" text-lg md:text-3xl xl:text-5xl font-semibold x-font-title"
56
+ />
57
+ <CardText
58
+ animate =" fade"
59
+ :card
60
+ :path =" pathCheck(`items.${i}.subTitle`, schema)"
61
+ tag =" p"
62
+ class =" text-sm md:text-2xl xl:text-2xl mt-1 text-theme-500 dark:text-theme-400 font-sans"
63
+ />
64
+ <CardText
65
+ animate =" fade"
66
+ :card
67
+ :path =" pathCheck(`items.${i}.content`, schema)"
68
+ tag =" p"
69
+ class =" mt-3 text-base md:text-2xl xl:text-2xl !leading-relaxed"
70
+ />
71
+
72
+ <!-- Social links with consistent spacing -->
34
73
<CardActionArea
35
74
v-if =" profile.action"
36
75
:card
37
76
:base-path =" pathCheck(`items.${i}.action`, schema)"
38
- :classes =" { buttons: 'flex justify-center md:justify-start gap-3' }"
39
- class =" mt-6"
40
77
:action =" profile.action"
78
+ :classes =" { buttons: 'flex gap-2 mt-4' }"
41
79
/>
42
80
</div >
43
81
</li >
0 commit comments