Have been keeping track of this stuff in my personal to-do tracker but publishing them here in case anyone is interested.
Naturally a ton of stuff has already been done for v1.0 and deleted from my to-do list, so this is only the stuff remaining as of today.
Expect this list to grow and change over the next few weeks as I work towards finishing v1.0, but generally these are the things I've got lined up. They aren't in any sort of priority order or anything.
Done/Merged
- Re-evaluate flex-grow/flex-no-grow, etc.
- Re-assess using postcss-selector-parser for escaping
- Update plugins to source their config from theme/variants
- Think about if there's a smarter way to make sure the separator is escaped
-
Pass theme and variants to plugins explicitly?No measurable benefit, easy to add later - Add new shadows
- Rename config function to theme?
- Fix letterSpacing classes not being escaped
- Add 56 as a width?
- Add extended widths (48, 56, 64) to entire spacing scale?
- Make
flex-*customizable -
RemoveNah still useful enough to not make people add it themselves..clearfix? - Add new maxWidth scale
- Revisit which variants to enable by default for split up text style plugins
- Make preflight more hardcore, reset headings, etc.
- Autodetect presence of tailwind.config.js?
-
Headings should inherit line-height like they inherit font-size and font-weight.Not necessary, browser inherits line-height already for headings. - Inherit font-related properties on form controls by default (line-height, font-family, color, maybe others, see sanitize.css for ideas)
- Use line-height: 1.5 on body or html by default (why not? I never want 1.15 and we set that 🤷♂️)
- Use system font stack by default instead of "sans-serif", I literally never want that either
- Use fontFamily.mono for pre/code if possible, fall back to monospaced (beware double monospace thing)
- Add text-6xl? 64px?
- Add new default color palette
- Bump
smbreakpoint up to 640px? - Inherit color and text-decoration on links
- Reconsider lists core plugin, maybe handle list style only and not padding
-
Re-evaluate truncate, possibly replace with ellipsis-only utilityClass is convenient and useful, could still add ellipsis utility separately though - Consider making
break-normalhandle both properties to provide a nicer experience - Get rid of pin utilities in favor of top/right/bottom/left/inset? Unsure if worth break.
- Consider if container should become a true core plugin instead of an included third-party plugin
- Split whitespace plugin into whitespace and wordBreak/wordWrap?
- Rework CLI for new config structure
- Make sure shadow-outline matches new blue
-
Error if we findWhatever, can do this if it actually bites people.@tailwind preflightin your CSS or keys in the wrong place in your config file to help guide people during the upgrade process? -
Consider if defaultConfig/defaultTheme need to be separate files or even importable? Maybe make it possible to export a function from your config, and we just pass you the defaults?Will keep these exports for now, we could add function syntax later if it feels like a slicker solution since it is non-breaking - Make img, canvas, video, etc. block by default, and constrain max width?
-
Make utilities important by default? I always do this on my own projectsEasy to tweak yourself and it's nice that inline-styles override utilities if they aren't important - Maybe pass theme function to config callbacks?
- Consider trying to make form elements more consistent by default across browsers? BuzzFeed Solid framework pretty good reference for super vanilla looking forms.
- Fix theme('negativeMargin.5') sort of stuff, maybe by negating all values in the default config in the callback
- Write upgrade guide
- Write function/tool to upgrade 0.x config files
PR Opened
- Consider removing border radius on inputs because of the iOS crap, and fixing radio buttons with just a [type="radio"] selector to keep specificity down
Next (painful)
Next (straightforward)
- Make sure shadow-inset doesn't suck
- Update the docs
Next (could wait until after 1.0)
- Add sanity test for a heavily customized config
- Allow specifying a base config to extend (extends root level key)
- Add
disabledvariant? - Pass parseSelector to plugins?