chore(deps): bump tailwindcss to v4

This commit is contained in:
2026-02-10 10:29:50 +08:00
parent 2c4951ff9b
commit d0bca215c1
35 changed files with 117 additions and 88 deletions

View File

@@ -488,7 +488,7 @@ onMounted(() => {
v-for="(llm, index) in llmModels"
:key="index"
@click="currentModel = llm.tag"
class="flex flex-col gap-2 justify-center items-center w-full aspect-[1/1] border-2 rounded-xl cursor-pointer transition duration-150 select-none"
class="flex flex-col gap-2 justify-center items-center w-full aspect-1/1 border-2 rounded-xl cursor-pointer transition duration-150 select-none"
:class="
llm.tag === currentModel
? 'border-primary shadow-xl bg-primary text-white'
@@ -501,7 +501,7 @@ onMounted(() => {
class="text-4xl opacity-80"
/>
<div class="flex flex-col gap-0.5 items-center">
<h1 class="font-bold drop-shadow opacity-90">
<h1 class="font-bold drop-shadow-sm opacity-90">
{{ llm.name || 'unknown' }}
</h1>
<p class="text-xs opacity-60">{{ llm.description }}</p>
@@ -548,7 +548,7 @@ onMounted(() => {
.chat-option-btn {
@apply text-lg px-2 py-1.5 flex gap-1 justify-center items-center rounded-lg;
@apply bg-white border border-neutral-300 shadow-sm hover:shadow-card;
@apply bg-white border border-neutral-300 shadow-xs hover:shadow-card;
@apply dark:bg-neutral-800 dark:border-neutral-600;
}
</style>

View File

@@ -333,7 +333,7 @@ const onDefaultFormSubmit = (event: FormSubmitEvent<DefaultFormSchema>) => {
@mousedown.prevent="handle_stick_mousedown"
>
<span
class="w-[1px] h-full bg-neutral-300 dark:bg-neutral-700 group-hover:bg-indigo-300 dark:group-hover:bg-indigo-700 group-hover:w-[3px] transition-all group-hover:delay-500 translate-x-1"
class="w-px h-full bg-neutral-300 dark:bg-neutral-700 group-hover:bg-indigo-300 dark:group-hover:bg-indigo-700 group-hover:w-[3px] transition-all group-hover:delay-500 translate-x-1"
></span>
</div>
<div

View File

@@ -200,7 +200,7 @@ const open = (url?: string | URL, target?: string, features?: string) => {
>
<div class="container max-w-[1280px] mx-auto py-4 space-y-12">
<div
class="pattern w-full p-10 flex flex-col justify-center gap-3 items-center rounded-lg shadow-sm border border-gray-200 dark:border-neutral-700"
class="pattern w-full p-10 flex flex-col justify-center gap-3 items-center rounded-lg shadow-xs border border-gray-200 dark:border-neutral-700"
>
<h1 class="text-4xl font-bold text-center text-primary">AI 工具导航</h1>
<p>常用 AI 工具一网打尽常用常新</p>
@@ -222,7 +222,7 @@ const open = (url?: string | URL, target?: string, features?: string) => {
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
<div
v-for="link in cat.links"
class="bg-white dark:bg-neutral-800 p-4 rounded-lg shadow-sm border border-gray-200 dark:border-neutral-700 space-y-2 cursor-pointer hover:shadow-md transition-all duration-300"
class="bg-white dark:bg-neutral-800 p-4 rounded-lg shadow-xs border border-gray-200 dark:border-neutral-700 space-y-2 cursor-pointer hover:shadow-md transition-all duration-300"
:key="link.id"
@click="open(link.url)"
>

View File

@@ -323,7 +323,7 @@ const previewVideo = (videoUrl: string, title: string) => {
const closeButton = document.createElement('button')
closeButton.textContent = '关闭'
closeButton.className =
'mt-4 px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600'
'mt-4 px-4 py-2 bg-gray-500 text-white rounded-sm hover:bg-gray-600'
closeButton.onclick = () => {
document.body.removeChild(videoModal)
}

View File

@@ -947,7 +947,7 @@ const onCreateSubmit = async (
v-if="row.info.opening_url"
:src="row.info.opening_url"
:alt="row.info.title"
class="w-16 h-9 object-cover rounded cursor-pointer hover:opacity-80 transition-opacity"
class="w-16 h-9 object-cover rounded-sm cursor-pointer hover:opacity-80 transition-opacity"
@click="
previewVideo(
row.info.opening_file,
@@ -989,12 +989,12 @@ const onCreateSubmit = async (
v-if="row.opening_url"
:src="row.opening_url"
alt="片头"
class="w-14 h-8 object-cover rounded cursor-pointer hover:opacity-80 transition-opacity ring-1 ring-blue-200 dark:ring-blue-800"
class="w-14 h-8 object-cover rounded-sm cursor-pointer hover:opacity-80 transition-opacity ring-1 ring-blue-200 dark:ring-blue-800"
@click="previewVideo(row.opening_file, '制作片头预览')"
/>
<div
v-else
class="w-14 h-8 bg-blue-100 dark:bg-blue-900/30 rounded flex items-center justify-center cursor-pointer hover:opacity-80 transition-opacity"
class="w-14 h-8 bg-blue-100 dark:bg-blue-900/30 rounded-sm flex items-center justify-center cursor-pointer hover:opacity-80 transition-opacity"
@click="previewVideo(row.opening_file, '制作片头预览')"
>
<UIcon
@@ -1015,12 +1015,12 @@ const onCreateSubmit = async (
v-if="row.ending_url"
:src="row.ending_url"
alt="片尾"
class="w-14 h-8 object-cover rounded cursor-pointer hover:opacity-80 transition-opacity ring-1 ring-green-200 dark:ring-green-800"
class="w-14 h-8 object-cover rounded-sm cursor-pointer hover:opacity-80 transition-opacity ring-1 ring-green-200 dark:ring-green-800"
@click="previewVideo(row.ending_file, '制作片尾预览')"
/>
<div
v-else
class="w-14 h-8 bg-green-100 dark:bg-green-900/30 rounded flex items-center justify-center cursor-pointer hover:opacity-80 transition-opacity"
class="w-14 h-8 bg-green-100 dark:bg-green-900/30 rounded-sm flex items-center justify-center cursor-pointer hover:opacity-80 transition-opacity"
@click="previewVideo(row.ending_file, '制作片尾预览')"
>
<UIcon
@@ -1364,7 +1364,7 @@ const onCreateSubmit = async (
v-if="previewVideoUrl"
:src="previewVideoUrl"
controls
class="w-full h-full rounded"
class="w-full h-full rounded-sm"
/>
</div>
</UCard>
@@ -1395,7 +1395,7 @@ const onCreateSubmit = async (
v-if="previewImageUrl"
:src="previewImageUrl"
:alt="previewImageTitle"
class="max-w-full max-h-[70vh] rounded object-contain"
class="max-w-full max-h-[70vh] rounded-sm object-contain"
/>
</div>
</UCard>

View File

@@ -305,14 +305,14 @@ const onAvatarUpload = async (files: FileList) => {
? systemAvatarList?.data.items
: userAvatarList?.data.items"
:key="avatar.model_id || k"
class="relative rounded-lg shadow overflow-hidden w-full aspect-[9/16] group"
class="relative rounded-lg shadow-sm overflow-hidden w-full aspect-9/16 group"
>
<NuxtImg
:src="avatar.avatar"
class="w-full h-full object-cover"
/>
<div
class="absolute inset-x-0 bottom-0 p-2 bg-gradient-to-t from-black/50 to-transparent flex gap-2"
class="absolute inset-x-0 bottom-0 p-2 bg-linear-to-t from-black/50 to-transparent flex gap-2"
>
<UBadge
color="white"
@@ -334,7 +334,7 @@ const onAvatarUpload = async (files: FileList) => {
</template>
</div>
<div
class="absolute inset-0 flex flex-col justify-center items-center bg-white/50 dark:bg-neutral-800/50 backdrop-blur opacity-0 group-hover:opacity-100 transition-opacity"
class="absolute inset-0 flex flex-col justify-center items-center bg-white/50 dark:bg-neutral-800/50 backdrop-blur-sm opacity-0 group-hover:opacity-100 transition-opacity"
>
<UButtonGroup>
<UButton
@@ -376,7 +376,7 @@ const onAvatarUpload = async (files: FileList) => {
<template #avatar-data="{ row }">
<NuxtImg
:src="row.avatar"
class="h-16 aspect-[9/16] rounded-lg"
class="h-16 aspect-9/16 rounded-lg"
/>
</template>
<template #type-data="{ row }">

View File

@@ -327,7 +327,7 @@ const onDeleteCat = (cat: PPTCategory) => {
class="w-full aspect-video object-cover"
/>
<div
class="absolute inset-x-0 bottom-0 p-3 pt-6 flex justify-between items-end bg-gradient-to-t from-black/50 to-transparent"
class="absolute inset-x-0 bottom-0 p-3 pt-6 flex justify-between items-end bg-linear-to-t from-black/50 to-transparent"
>
<div class="space-y-0.5">
<h3 class="text-base font-bold text-white">{{ ppt.title }}</h3>

View File

@@ -608,7 +608,7 @@ onMounted(() => {
<UButton
color="gray"
variant="ghost"
class="!text-gray-500"
class="text-gray-500!"
@click="
() => {
router.push('/user/register')

View File

@@ -157,7 +157,7 @@ const onSubmit = (form: RegisterSchema) => {
<UButton
color="gray"
variant="ghost"
class="!text-gray-500"
class="text-gray-500!"
@click="
() => {
router.push('/user/authenticate')