@@ -139,19 +139,14 @@ function moduleSupportsFramework(module: ModuleItem, framework: Framework) {
139139
140140 <div
141141 aria-label =" Preview host framework compositions"
142- class =" flex flex-wrap items-center gap-1.5 border-b border-default px-4 py-4 sm:px-6"
142+ class =" flex flex-wrap items-center border-b border-default px-4 py-4 sm:px-6"
143143 @mouseleave =" hoveredFramework = undefined"
144144 >
145145 <button
146146 v-for =" option of frameworkOptions"
147147 :key =" option.id"
148+ class =" p-0.75 group"
148149 type =" button"
149- class =" inline-flex items-center gap-1.5 rounded-full border border-default bg-elevated/50 px-2.5 py-1.5 text-xs text-muted outline-none transition-all duration-300 ease-out hover:-translate-y-0.5 hover:bg-elevated hover:text-highlighted focus-visible:ring-2 focus-visible:ring-primary/40"
150- :class =" [
151- selectedFramework === option.id && 'bg-accented text-highlighted',
152- activeModule && moduleSupportsFramework(activeModule, option.id) && '-translate-y-0.5 shadow-lg',
153- activeModule && !moduleSupportsFramework(activeModule, option.id) && 'opacity-25',
154- ]"
155150 :aria-label =" option.description"
156151 :aria-pressed =" selectedFramework === option.id"
157152 @pointerover =" hoveredFramework = option.id"
@@ -161,18 +156,27 @@ function moduleSupportsFramework(module: ModuleItem, framework: Framework) {
161156 @blur =" focusedFramework = undefined"
162157 @click =" toggleFramework(option.id)"
163158 >
164- <img
165- v-if =" option.image"
166- :src =" option.image"
167- alt =" "
168- class =" size-3.5 object-contain"
159+ <div
160+ class =" inline-flex items-center gap-1.5 rounded-full border border-default bg-elevated/50 px-2.5 py-1.5 text-xs text-muted outline-none transition-all duration-300 ease-out group-hover:-translate-y-0.5 group-hover:bg-elevated group-hover:text-highlighted focus-visible:ring-2 focus-visible:ring-primary/40"
161+ :class =" [
162+ selectedFramework === option.id && 'bg-accented text-highlighted',
163+ activeModule && moduleSupportsFramework(activeModule, option.id) && '-translate-y-0.5 shadow-lg',
164+ activeModule && !moduleSupportsFramework(activeModule, option.id) && 'opacity-25',
165+ ]"
169166 >
170- <UIcon
171- v-else
172- :name =" option .icon ! "
173- class="size-3.5 "
174- />
175- {{ option.label }}
167+ <img
168+ v-if =" option.image"
169+ :src =" option.image"
170+ alt =" "
171+ class =" size-3.5 object-contain"
172+ >
173+ <UIcon
174+ v-else
175+ :name =" option .icon ! "
176+ class="size-3.5 "
177+ />
178+ {{ option.label }}
179+ </div >
176180 </button >
177181 </div >
178182
0 commit comments