UNPKG

@indielayer/ui

Version:

Indielayer UI Components with Tailwind CSS build for Vue 3

56 lines (41 loc) 1.66 kB
import type { TabGroupTheme } from '../TabGroup.vue' const theme: TabGroupTheme = { classes: { wrapper: '', scroller: ({ props }) => { const c = [''] if (!props.fullWidth) c.push('!w-fit') if (props.variant === 'block') c.push('') if (props.variant === 'block' && !props.ghost) c.push('bg-secondary-200 dark:bg-secondary-800') return c }, list: ({ props }) => { const c = ['flex min-w-full w-fit'] if (props.variant === 'line') c.push('border-b border-secondary-200 dark:border-secondary-700') if (props.variant === 'line' && !props.grow) c.push('') if (props.variant === 'block') c.push('z-[1] py-1.5') if (props.align === 'center') c.push('justify-center') if (props.align === 'right') c.push('justify-end') return c }, tracker: ({ props }) => { const c = ['absolute transition-all duration-150'] if (props.variant === 'line') c.push('h-[2px] -mt-[2px] bg-[color:var(--x-tab-group-text)] dark:bg-[color:var(--x-tab-group-dark-text)]') if (props.variant === 'block') c.push('border-t-2 border-solid border-[color:var(--x-tab-group-text)] dark:border-[color:var(--x-tab-group-dark-text)] h-full top-0 bg-secondary-100 dark:bg-secondary-700') return c }, }, styles: ({ props, colors, css }) => { const gray = colors.getPalette('gray') const color = colors.getPalette(props.color) return css.variables({ text: color[600], bg: props.ghost ? color[50] : '#fff', dark: { text: color[400], bg: props.ghost ? color[900] : gray[700], }, }) }, } export default theme