Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document Custom media queries breaks all max-* modifiers #1841

Closed
mbforbes opened this issue Jul 16, 2024 · 4 comments
Closed

Document Custom media queries breaks all max-* modifiers #1841

mbforbes opened this issue Jul 16, 2024 · 4 comments

Comments

@mbforbes
Copy link

Hi there — first off, thanks so much for the Tailwind project.

I recently noticed that all of my max-sm breakpoints are broken and I couldn't figure out why. Then I discovered all max-* modifiers in my project are broken.

Because I'm designing for content (a game) that must fit all on a screen, I added a "tall" screen in my config, as seen in the Custom media queries documentation:

   theme: {
      extend: {
         screens: {
            tall: { raw: "(min-height: 900px)" },
         },
      ...
      }
   }

What I couldn't find documented there is that doing so silently breaks all ability to Target a breakpoint range and Target a single breakpoint globally for all screen sizes, including the builtin ones.

To figure this out, I eventually found:

My suggestion: If the Customizing Screens documentation page could please mention the restrictions listed in that PR, or minimally link to it, it would have saved me a lot of confusion, and accidentally breaking many of my layouts.

Many thanks for your consideration!

@maxtispro
Copy link

I got the exact same issue: I wanted to add custom vertical media queries to help resize and position decorative elements on phone and tablet screens that switch between portrait and landscape mode. As a result, I can't use max-lg or any of the max-* breakpoints to hide desktop elements on mobile devices.

For the time being I will resort to re-implementing the default max-* breakpoints but it would be nice to not have to do this.

@philipp-spiess
Copy link
Member

Hey! I agree that the previous caveat of raw media queries breaking some of the screen utilities wasn't great. In v4, however, we made the decision to not really recommend that pattern anymore. You are still able to use your old JavaScript config for backward compatibility but going forward we aren't documenting raw breakpoints anymore. Instead, if you want something like this, you can use @variant: https://tailwindcss.com/docs/functions-and-directives#variant-directive

This also means that the docs are hopefully less confusing in that regard. Thanks for the feedback though and sorry for the long turnaround. We've been really busy getting the v4 release ready and kinda missed responding to some of the GitHub issues during that time.

@mbforbes
Copy link
Author

mbforbes commented Feb 5, 2025

Hey Philipp, thanks so much for the reply!

Would you consider adding a height-based example to the @variant documentation for how to achieve this?

I used to think I could design everything only based on width breakpoints, but I've discovered for truly mobile-first, app-like experiences, I need to treat height breakpoints as a first-class citizen!

@philipp-spiess
Copy link
Member

I meant @custom-variant, not @variant, my bad: https://tailwindcss.com/docs/functions-and-directives#custom-variant-directive

Should be able to adopt the pointer-coarse example pretty easily:

@custom-variant tall (@media (min-height: 900px));
@custom-variant max-tall (@media (max-height: 900px));

etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants