123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- import { run, html, css } from './util/run'
- test('important modifier', () => {
- let config = {
- important: false,
- darkMode: 'class',
- content: [
- {
- raw: html`
- <div class="!container"></div>
- <div class="!font-bold"></div>
- <div class="hover:!text-center"></div>
- <div class="lg:!opacity-50"></div>
- <div class="xl:focus:disabled:!float-right"></div>
- <div class="!custom-parent-5"></div>
- <div class="btn !disabled"></div>
- `,
- },
- ],
- corePlugins: { preflight: false },
- plugins: [
- function ({ theme, matchUtilities, addComponents }) {
- matchUtilities(
- {
- 'custom-parent': (value) => {
- return {
- '.custom-child': {
- margin: value,
- },
- }
- },
- },
- { values: theme('spacing') }
- )
- addComponents({
- '.btn': {
- '&.disabled, &:disabled': {
- color: 'gray',
- },
- },
- })
- },
- ],
- }
- let input = css`
- @tailwind components;
- @tailwind utilities;
- `
- return run(input, config).then((result) => {
- expect(result.css).toMatchFormattedCss(css`
- .\!container {
- width: 100% !important;
- }
- @media (min-width: 640px) {
- .\!container {
- max-width: 640px !important;
- }
- }
- @media (min-width: 768px) {
- .\!container {
- max-width: 768px !important;
- }
- }
- @media (min-width: 1024px) {
- .\!container {
- max-width: 1024px !important;
- }
- }
- @media (min-width: 1280px) {
- .\!container {
- max-width: 1280px !important;
- }
- }
- @media (min-width: 1536px) {
- .\!container {
- max-width: 1536px !important;
- }
- }
- .btn.disabled,
- .btn:disabled {
- color: gray;
- }
- .btn.\!disabled {
- color: gray !important;
- }
- .\!font-bold {
- font-weight: 700 !important;
- }
- .\!custom-parent-5 .custom-child {
- margin: 1.25rem !important;
- }
- .hover\:\!text-center:hover {
- text-align: center !important;
- }
- @media (min-width: 1024px) {
- .lg\:\!opacity-50 {
- opacity: 0.5 !important;
- }
- }
- @media (min-width: 1280px) {
- .xl\:focus\:disabled\:\!float-right:disabled:focus {
- float: right !important;
- }
- }
- `)
- })
- })
- test('the important modifier works on utilities using :where()', () => {
- let config = {
- content: [
- {
- raw: html` <div class="btn hover:btn !btn hover:focus:disabled:!btn"></div> `,
- },
- ],
- corePlugins: { preflight: false },
- plugins: [
- function ({ addComponents }) {
- addComponents({
- ':where(.btn)': {
- backgroundColor: '#00f',
- },
- })
- },
- ],
- }
- let input = css`
- @tailwind components;
- @tailwind utilities;
- `
- return run(input, config).then((result) => {
- expect(result.css).toMatchFormattedCss(css`
- :where(.\!btn) {
- background-color: #00f !important;
- }
- :where(.btn),
- :where(.hover\:btn:hover) {
- background-color: #00f;
- }
- :where(.hover\:focus\:disabled\:\!btn:disabled:focus:hover) {
- background-color: #00f !important;
- }
- `)
- })
- })
|