From 978595ce88bfef959f3cd6f405b405727e3929e0 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Mon, 11 Mar 2024 15:02:50 +0100 Subject: [PATCH] feat(Avatar): new component --- playground/pages/avatar.vue | 48 +++++++++++++++++++++++++++++ src/runtime/components/Avatar.vue | 49 +++++++++++++++++++++++++++++ src/theme/avatar.ts | 51 +++++++++++++++++++++++++++++++ src/theme/index.ts | 1 + 4 files changed, 149 insertions(+) create mode 100644 playground/pages/avatar.vue create mode 100644 src/runtime/components/Avatar.vue create mode 100644 src/theme/avatar.ts diff --git a/playground/pages/avatar.vue b/playground/pages/avatar.vue new file mode 100644 index 00000000..0582aa8e --- /dev/null +++ b/playground/pages/avatar.vue @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/src/runtime/components/Avatar.vue b/src/runtime/components/Avatar.vue new file mode 100644 index 00000000..053b1671 --- /dev/null +++ b/src/runtime/components/Avatar.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/theme/avatar.ts b/src/theme/avatar.ts new file mode 100644 index 00000000..a82aef8a --- /dev/null +++ b/src/theme/avatar.ts @@ -0,0 +1,51 @@ +export default { + slots: { + root: 'inline-flex items-center justify-center shrink-0 select-none overflow-hidden rounded-full align-middle bg-gray-100 dark:bg-gray-800', + image: 'h-full w-full rounded-[inherit] object-cover', + fallback: 'font-medium leading-none text-gray-500 dark:text-gray-400 truncate', + icon: 'text-gray-500 dark:text-gray-400 shrink-0' + }, + variants: { + size: { + '3xs': { + root: 'size-4 text-[8px]', + icon: 'size-2' + }, + '2xs': { + root: 'size-5 text-[10px]', + icon: 'size-2.5' + }, + xs: { + root: 'size-6 text-xs', + icon: 'size-3' + }, + sm: { + root: 'size-8 text-sm', + icon: 'size-4' + }, + md: { + root: 'size-10 text-base', + icon: 'size-5' + }, + lg: { + root: 'size-12 text-lg', + icon: 'size-6' + }, + xl: { + root: 'size-14 text-xl', + icon: 'size-7' + }, + '2xl': { + root: 'size-16 text-2xl', + icon: 'size-8' + }, + '3xl': { + root: 'size-20 text-3xl', + icon: 'size-10' + } + } + }, + defaultVariants: { + size: 'sm' + } +} \ No newline at end of file diff --git a/src/theme/index.ts b/src/theme/index.ts index ccdc562e..792a88b3 100644 --- a/src/theme/index.ts +++ b/src/theme/index.ts @@ -1,3 +1,4 @@ +export { default as avatar } from './avatar' export { default as badge } from './badge' export { default as button } from './button' export { default as collapsible } from './collapsible'