prefers-contrast.test.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { run, html, css, defaults } from './util/run'
  2. it('should be possible to use contrast-more and contrast-less variants', () => {
  3. let config = {
  4. content: [
  5. {
  6. raw: html`<div class="bg-white contrast-more:bg-pink-500 contrast-less:bg-black"></div>`,
  7. },
  8. ],
  9. corePlugins: { preflight: false },
  10. }
  11. let input = css`
  12. @tailwind base;
  13. @tailwind components;
  14. @tailwind utilities;
  15. `
  16. return run(input, config).then((result) => {
  17. expect(result.css).toMatchFormattedCss(css`
  18. ${defaults}
  19. .bg-white {
  20. --tw-bg-opacity: 1;
  21. background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  22. }
  23. @media (prefers-contrast: more) {
  24. .contrast-more\:bg-pink-500 {
  25. --tw-bg-opacity: 1;
  26. background-color: rgb(236 72 153 / var(--tw-bg-opacity));
  27. }
  28. }
  29. @media (prefers-contrast: less) {
  30. .contrast-less\:bg-black {
  31. --tw-bg-opacity: 1;
  32. background-color: rgb(0 0 0 / var(--tw-bg-opacity));
  33. }
  34. }
  35. `)
  36. })
  37. })
  38. it('dark mode should appear after the contrast variants', () => {
  39. let config = {
  40. content: [{ raw: html`<div class="contrast-more:bg-black dark:bg-white"></div>` }],
  41. corePlugins: { preflight: false },
  42. }
  43. let input = css`
  44. @tailwind base;
  45. @tailwind components;
  46. @tailwind utilities;
  47. `
  48. return run(input, config).then((result) => {
  49. expect(result.css).toMatchFormattedCss(css`
  50. ${defaults}
  51. @media (prefers-contrast: more) {
  52. .contrast-more\:bg-black {
  53. --tw-bg-opacity: 1;
  54. background-color: rgb(0 0 0 / var(--tw-bg-opacity));
  55. }
  56. }
  57. @media (prefers-color-scheme: dark) {
  58. .dark\:bg-white {
  59. --tw-bg-opacity: 1;
  60. background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  61. }
  62. }
  63. `)
  64. })
  65. })