feat(ui): adopt Tailwind v4 design system and archive change

- Add tailwindcss v4 + @tailwindcss/vite to mall, shop-admin, admin
- Add @vmall/shared/theme.css tokens with html[data-accent] presets
- Add @vmall/ui kit (VBtn/VBadge/VField/VInput/VCard/VPanel/VTable/VPage,
  VAccentSwatch, useAccent) as a Nuxt module
- Convert all three apps to kit + utilities; delete ui.css/mall.css and
  every <style scoped>; consoles get accent presets, mall locked to red
- Fix VCard boolean prop default (padding) and PDP/store stale
  useAsyncData keys on param navigation
- Archive adopt-tailwind-design-system; new frontend-ui capability spec
This commit is contained in:
Chengdong Zhang
2026-09-22 18:22:50 +08:00
parent 4d2ee3b0bf
commit 0d0e10b97b
101 changed files with 2833 additions and 7207 deletions
+12 -42
View File
@@ -3,48 +3,18 @@ defineProps<{ steps: string[]; active: number }>();
</script>
<template>
<ol class="steps">
<li v-for="(s, i) in steps" :key="s" :class="{ done: i < active, on: i === active }">
<span class="n">{{ i + 1 }}</span>
<span class="label">{{ s }}</span>
<ol class="mb-5 flex list-none border border-border bg-bg py-3.5">
<li
v-for="(s, i) in steps"
:key="s"
class="flex-1 text-center text-[13px] text-muted/70"
:class="i === active ? 'font-semibold text-primary' : ''"
>
<span
class="mr-2 inline-block h-[22px] w-[22px] rounded-full text-center text-[12px] leading-[22px] text-white"
:class="i < active ? 'bg-success' : i === active ? 'bg-primary' : 'bg-[#ddd]'"
>{{ i + 1 }}</span>
<span>{{ s }}</span>
</li>
</ol>
</template>
<style scoped>
.steps {
display: flex;
list-style: none;
margin: 0 0 20px;
padding: 14px 0;
background: #fafafa;
border: 1px solid var(--mall-line);
}
li {
flex: 1;
text-align: center;
color: var(--mall-faint);
font-size: 13px;
}
.n {
display: inline-block;
width: 22px;
height: 22px;
line-height: 22px;
border-radius: 50%;
background: #ddd;
color: #fff;
margin-right: 8px;
font-size: 12px;
}
li.on {
color: var(--mall-red);
font-weight: 600;
}
li.on .n {
background: var(--mall-red);
}
li.done .n {
background: var(--mall-green);
}
</style>