@indielayer/ui
Version:
Indielayer UI Components with Tailwind CSS build for Vue 3
46 lines (36 loc) • 1.19 kB
text/typescript
import type { TagTheme } from '../Tag.vue'
const theme: TagTheme = {
classes: {
wrapper: ({ props }) => {
const c = ['inline-flex leading-tight max-w-full']
if (props.size === 'xs') c.push('px-2 py-0.5 text-xs')
else if (props.size === 'sm') c.push(' px-2 py-0.5 text-sm')
else if (props.size === 'lg') c.push(' px-4 py-2 text-lg')
else if (props.size === 'xl') c.push(' px-5 py-3 text-xl')
else c.push(' px-3 py-1.5')
if (props.outlined) {
c.push('border-[color:var(--x-tag-border)] dark:border-[color:var(--x-tag-dark-border)]')
}
if (props.filled || !props.outlined) {
if (props.filled) c.push('bg-[color:var(--x-tag-bg)] dark:bg-[color:var(--x-tag-dark-bg)]')
}
if (props.rounded) c.push('rounded-full')
else c.push('rounded-md')
return c
},
},
styles: ({ colors, props, css }) => {
const color = colors.getPalette(props.color)
return css.variables({
bg: color[100],
text: color[800],
border: color[700],
dark: {
bg: color[600],
border: color[500],
text: color[100],
},
})
},
}
export default theme