diff --git a/src/corePlugins.js b/src/corePlugins.js index e6026ddafca7..f89f923a68e2 100644 --- a/src/corePlugins.js +++ b/src/corePlugins.js @@ -72,6 +72,15 @@ export let pseudoElementVariants = ({ config, addVariant }) => { }), ]) + addVariant( + 'file', + transformAllSelectors((selector) => { + return updateAllClasses(selector, (className, { withPseudo }) => { + return withPseudo(`file${config('separator')}${className}`, '::file-selector-button') + }) + }) + ) + addVariant( 'before', transformAllSelectors( diff --git a/tests/variants.test.css b/tests/variants.test.css index 300d8c798e29..41e1b08f64e6 100644 --- a/tests/variants.test.css +++ b/tests/variants.test.css @@ -52,6 +52,14 @@ --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); } +.file\:bg-blue-500::file-selector-button { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity)); +} +.file\:text-white::file-selector-button { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} .before\:block::before { content: ''; display: block; @@ -189,6 +197,10 @@ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.file\:hover\:bg-blue-600::file-selector-button:hover { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity)); +} .focus\:shadow-md:focus { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -1px rgb(0 0 0 / 0.06); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), diff --git a/tests/variants.test.html b/tests/variants.test.html index 9fb44452efeb..70e1c1409c4d 100644 --- a/tests/variants.test.html +++ b/tests/variants.test.html @@ -45,6 +45,7 @@
  • +
    @@ -127,6 +128,7 @@
    +