const plugin = require('tailwindcss/plugin'); module.exports = plugin(function ({ addComponents, theme, addBase, addUtilities }) { addBase({ '.btn': { '--btn-height': theme('spacing.12'), '--btn-padding': `${theme('spacing.1')} ${theme('spacing.4')}`, '--btn-min-width': theme('spacing.12'), '--btn-background-color': theme('colors.components.button.DEFAULT'), '--btn-color': theme('colors.components.button.content'), '--btn-border-radius': theme('borderRadius.DEFAULT'), '--btn-hover-background-color': theme('colors.components.button.hover.DEFAULT'), '--btn-hover-color': theme('colors.components.button.hover.content'), '--btn-active-background-color': theme('colors.components.button.active.DEFAULT'), '--btn-active-color': theme('colors.components.button.active.content'), '--btn-disabled-background-color': theme('colors.components.button.disabled.DEFAULT'), '--btn-disabled-color': theme('colors.components.button.disabled.content'), }, '.btn-icon': { '--btn-padding': theme('spacing.0'), }, '.btn-light': { '--btn-background-color': theme('colors.button.light.DEFAULT'), '--btn-color': theme('colors.button.light.content'), }, '.btn-white': { '--btn-background-color': theme('colors.white'), '--btn-color': theme('colors.black'), '--btn-hover-background-color': theme('colors.white'), '--btn-hover-color': theme('colors.black'), '--btn-active-background-color': theme('colors.white'), '--btn-active-color': theme('colors.black'), }, '.btn-label': { '--btn-background-color': 'transparent', '--btn-hover-background-color': 'transparent', '--btn-hover-color': 'inherit', }, }); for (const key in theme('colors.accent')) { addUtilities({ [`.btn-accent-${key}`]: { '--btn-background-color': theme(`colors.accent.${key}.DEFAULT`), '--btn-color': theme(`colors.accent.${key}.content`), '--btn-hover-background-color': theme(`colors.accent.${key}.hover.DEFAULT`), '--btn-hover-color': theme(`colors.accent.${key}.hover.content`), '--btn-active-background-color': theme(`colors.accent.${key}.active.DEFAULT`), '--btn-active-color': theme(`colors.accent.${key}.active.content`), }, }); } addComponents({ '.btn': { display: 'inline-grid', placeItems: 'center', gridGap: theme('spacing.2'), gridAutoFlow: 'column', padding: 'var(--btn-padding)', height: 'var(--btn-height)', minWidth: 'var(--btn-min-width)', backgroundColor: 'var(--btn-background-color)', color: 'var(--btn-color)', borderRadius: 'var(--btn-border-radius)', '&:hover': { backgroundColor: 'var(--btn-hover-background-color)', color: 'var(--btn-hover-color)', }, '&:active': { backgroundColor: 'var(--btn-active-background-color)', color: 'var(--btn-active-color)', }, '&:disabled': { backgroundColor: 'var(--btn-disabled-background-color)', color: 'var(--btn-disabled-color)', cursor: 'default', }, }, }); /** Bitte nicht mehr benutzen!! */ addComponents({ '.isa-button, .isa-cta-button, .isa-icon-button': { display: 'inline-block', padding: theme('spacing.2'), backgroundColor: theme('colors.white'), color: theme('colors.black'), borderRadius: theme('borderRadius.DEFAULT'), borderColor: theme('colors.cadet-blue'), borderStyle: 'solid', borderWidth: theme('borderWidth.DEFAULT'), fontWeight: theme('fontWeight.bold'), }, '.isa-cta-button': { padding: `${theme('spacing.4')} ${theme('spacing.9')}`, backgroundColor: theme('colors.white'), color: theme('colors.brand'), borderRadius: theme('borderRadius.full'), borderColor: theme('colors.brand'), borderWidth: theme('borderWidth.2'), fontSize: theme('fontSize.lg'), }, '.isa-button-primary': { backgroundColor: theme('colors.brand'), color: theme('colors.white'), }, '.isa-icon-button': { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: theme('spacing.7'), height: theme('spacing.7'), }, '.isa-button:disabled, .isa-cta-button:disabled, .isa-icon-button:disabled': { backgroundColor: '#596470', borderColor: '#596470', color: theme('colors.white'), }, }); });