Finer control on utilities responsiveness
Created by: romaricpascal
Prerequisites
-
I have searched for duplicate or closed feature requests -
I have read the contributing guidelines
Proposal
I realise that I never got to post the thoughts for utilities improvement I mentioned in #36029.
The idea would be to provide finer control over the responsiveness of utilities and let users control:
-
which breakpoints the utilities get generated for, allowing the
responsiveoption to accept either:- a list of breakpoints, with the subset of breakpoints for which to generate the utility
- a
breakpoint => (list of value identifiers)map, allowing to not only subset breakpoints, but which values of the utility get set for them
For example:
( "max-width": ( property: max-width, class: mw, responsive: (md), // Generates only `mw-100` and `mw-md-100` values: (100: 100%) ),This may call for a special
defaultkey for the list to enable configuring what's generated for the class without breakpoint (or even disable its generation altogether by associating it tonullor an empty list(). -
which values the utility take at specific breakpoints, by setting its value as a
breakpoint => actual valuemap. I've got a bit less faith of this one, especially if there's a way to have fine grained utilities, but that could save stringing a few utilities together
Motivation and context
The motivation is mostly to avoid adding many breakpoints when switching a utility to be responsive. This could also let developers further optimise their build, but it'll likely be less burden to use something like PurgeCSS for that (though not every user will have access/be willing to use it or a similar tool as part of their build).