375 Commits

Author SHA1 Message Date
Jordan Pittman
68d896bbbe
Don't output unparsable arbitrary values (#7789)
* Refactor

* Don’t output unparsable arbitrary values

* Update changelog
2022-03-08 12:43:06 -05:00
Jonathan Reinink
c6097d59fc
Update CHANGELOG.md 2022-03-04 11:22:32 -05:00
Jordan Pittman
ee945bbea2
Add an explicit --poll option to the CLI (#7725)
* Refactor

* Allow user to enable polling

* Update changelog
2022-03-02 11:16:06 -05:00
Samuel Alev
bc46d0e0bc
Fix extraction from template literal/function with array (#7481)
* fix: allow extraction from template literal with array

* fix: support extraction from array in function

* test: add more tests for function and template

* test: add test for dynamic classes

* test: add dynamic class test in js

* test: add dynamic class test in js single quote

* Cleanup a bit

* Update changelog

Co-authored-by: Jordan Pittman <jordan@cryptica.me>
2022-03-01 14:23:06 -05:00
vitorrd
7df3d938ec
Correctly parse and prefix animation names with dots (#7163)
* Add prefix alone to animation names. Fixes #7149.

* Add test for keyframe animations with a dot in the name

* Add test for prefixed version

* Fix CS

* Simplify

* Update changelog

* Fix

Co-authored-by: Jordan Pittman <jordan@cryptica.me>
2022-03-01 14:08:43 -05:00
Brad Cornes
e19acc28d4 Update changelog 2022-03-01 18:29:46 +00:00
Adam Wathan
5ea4b4ce2a Update changelog 2022-02-25 20:11:24 -05:00
Adam Wathan
0a709bcd6f Update changelog 2022-02-25 19:44:57 -05:00
Jordan Pittman
4fed060b7c
Add support for PostCSS Document nodes (#7291)
* Run Tailwind CSS once for each root in a postcss document

* Update changelog
2022-02-25 14:52:20 -05:00
Jordan Pittman
bbf3a37810
Add rgb and hsl color helpers for CSS variables (#7665)
* Add rgb/hsl color helpers

* Update changelog

Co-authored-by: Stefan Schweiger <staeff@me.com>
2022-02-25 14:03:40 -05:00
Adam Wathan
f7a9d370c8
Only add ! to selector class matching template candidate (#7664)
* Only add `!` to selector class matching template candidate

Fixes #7226.

Before this PR, if you had a class like:

```css
.one .two {
  background: black
}
```

...and then used `!one` in your template, the generated CSS would be this:

```css
.\!one .\!two {
  background: black !important
}
```

This would cause the styles to not be applied unless you also added `!` to the beginning of other classes in the template that are part of this selector.

This PR makes sure that other classes in the selector aren't mistakenly prefixed with `!`, so that you can add `!` to only one of the classes in your template and get the expected result.

* Update CHANGELOG
2022-02-25 13:17:44 -05:00
Jordan Pittman
bd167635d5
Invalidate context when main css changes (#7626)
* Invalidate context when CSS changes

* Remove invalidation count check

* Add sass integration test

* Update changelog
2022-02-25 13:12:45 -05:00
Adam Wathan
7a24b3f320
Update CHANGELOG.md 2022-02-25 10:18:49 -05:00
Jordan Pittman
910b655388
Use local user css cache for apply (#7524)
* Fix context reuse test

* Don't update files with at-apply when content changes

* Prevent at-apply directives from creating new contexts

* Rework apply to use local postcss root

We were storing user CSS in the context so we could use it with apply. The problem is that this CSS does not get updated on save unless it has a tailwind directive in it resulting in stale apply caches. This could result in either stale generation or errors about missing classes.

* Don’t build local cache unless `@apply` is used

* Update changelog
2022-02-25 08:35:22 -05:00
Brad Cornes
f84ee8be21 Update changelog 2022-02-24 16:41:35 +00:00
Jordan Pittman
04686b8a05
Split box shadows on top-level commas only (#7479)
* Split box shadows on top-level commas only

* Update changelog
2022-02-23 11:31:55 -05:00
Jordan Pittman
b94d565eb6
Preserve source maps for generated CSS (#7588)
* Preserve source maps for `@apply`

* Overwrite the source for all cloned descendants

* Preserve source maps when expanding defaults

* Verify that source maps are correctly generated

* Update changelog
2022-02-23 11:24:54 -05:00
Jordan Pittman
d72b277ba6
Allow default ring color to be a function (#7587)
* Allow default ring color to be a function

* Update changelog
2022-02-22 16:51:04 -05:00
Jordan Pittman
3b8ca9d4eb
Recursively collapse adjacent rules (#7565)
* Recursively collapse adjacent rules

* Update changelog
2022-02-21 12:58:12 -05:00
Jordan Pittman
af64d7190c
Prevent nesting plugin from breaking other plugins (#7563)
* Prevent nesting plugin from breaking other plugins

This uses a private API but it’s the only solution we have right now. It’s guarded to hopefully be less breaking if the API disappears.

* Update changelog
2022-02-21 10:12:39 -05:00
Robin Malfait
67b28601b3
update changelog 2022-02-16 12:20:14 +01:00
Robin Malfait
63537aaa89
Implement getClassOrder instead of sortClassList (#7459)
* implement `getSortOrder` instead of `sortClassList`

* rename `getSortOrder` to `getClassOrder`

* update changelog
2022-02-16 11:03:00 +01:00
Jordan Pittman
be5d5c9e66
Fix wildcard duplication issue (#7478)
This would be better as a symbol but the stringy-ness of class candidates is fairly well baked into assumptions across the codebase. Using `new String` with a well placed check seems to solve the problem.
2022-02-15 13:44:19 -05:00
Jordan Pittman
db475be6dd
Support arbitrary values + calc + theme with quotes (#7462)
* Support arbitrary values + calc + theme with quotes

* Update changelog
2022-02-14 15:44:27 -05:00
Jordan Pittman
f116f9f664
Remove opacity variables from :visited pseudo class (#7458)
* Support functions in pseudo variant list

* Remove text/border/bg color from :visited

* Update changelog
2022-02-14 13:24:18 -05:00
Jordan Pittman
752f54cc37 update changelog 2022-02-11 10:32:30 -05:00
Jordan Pittman
23661cfef0
Temporarily move postcss to dependencies (#7424)
* Temporarily move postcss to dependencies

This is unfortunate but upgrading postcss-js caused postcss to not be installed at all. This is fine except in this case of NPM <= 6 when running npx tailwindcss init, or yarn v1, or npm 7/8 with legacy peer deps behavior and doing a similar thing. Deduping will still allow the user to install postcss and upgrade it and Tailwind CSS will pick it up. A more permanent solution may involve hijacking require or something similar.

* Update changelog
2022-02-11 10:08:54 -05:00
Jordan Pittman
754dcdd6df Update changelog 2022-02-10 18:07:31 -05:00
Jordan Pittman
15e51e9e54
Move prettier plugin to dev dependencies (#7418)
* Move prettier plugin to dev dependencies

* Update changelog
2022-02-10 18:03:53 -05:00
Robin Malfait
9e6dd60d0b
update changelog 2022-02-10 18:16:01 +01:00
Robin Malfait
96d4ce2516
Expose context.sortClassList(classes) (#7412)
* add prettier-plugin-tailwindcss

This will use the prettier plugin in our tests as well, yay consistency!

* ensure that both `group` and `peer` can't be used in `@apply`

This was only configured for `group`

* expose `sortClassList` on the context

This function will be used by the `prettier-plugin-tailwindcss` plugin,
this way the sorting happens within Tailwind CSS itself adn the
`prettier-plugin-tailwindcss` plugin doesn't have to use internal /
private APIs.

The signature looks like this:
```ts
function sortClassList(classes: string[]): string[]
```

E.g.:
```js
let sortedClasses = context.sortClassList(['p-1', 'm-1', 'container'])
```

* update changelog

* add sort test for utilities with the important modifier e.g.: `!p-4`
2022-02-10 18:06:41 +01:00
Jordan Pittman
cbff982a42 Update changelog 2022-02-07 15:57:16 -05:00
Jonathan Reinink
58bd3016d1
Update CHANGELOG.md 2022-02-07 15:41:15 -05:00
Jordan Pittman
01fbe196c4
Fix negative utility generation and detection when using a prefix (#7295)
* Add failing tests for negative utility detection

We're not generating them properly in all cases, when using at-apply we sometimes crash, and safelisting doesn't currently work as expected.

* Refactor

* Generate utilities for negatives before and after the prefix

* Properly detect negative utilities with prefixes in the safelist

* Refactor test a bit

* Add class list tests

* Update changelog
2022-02-07 10:24:30 -05:00
Jordan Pittman
ab9fd951dd
Use less hacky fix for urls detected as custom properties (#7275)
* Use less hacky fix for urls detected as custom properties

* Add more test cases

* Update changelog
2022-02-07 10:00:19 -05:00
Jordan Pittman
d87bdb2f81 Update changelog 2022-02-07 09:55:28 -05:00
Jordan Pittman
50802e1aed
Correctly parse shadow lengths without a leading zero (#7289)
* Correctly parse shadow lengths without a leading zero

* Update changelog

* Fix code style
2022-02-01 11:54:03 -05:00
Jordan Pittman
dab8b046ea Update changelog 2022-02-01 11:29:04 -05:00
Robin Malfait
44fac9036b
update changelog 2022-01-28 20:46:16 +01:00
Robin Malfait
39193c17e1
Quick fix for incorrect arbitrary properties when using URLs (#7252)
* quick fix for incorrect arbitrary properties

Turns out that using links like [https://example.com] causes arbitrary
properties to generate invalid css.
This is a very dirty quick fix for this specific case, so we have to fix
this properly!

* update changelog
2022-01-28 20:45:24 +01:00
Robin Malfait
1868eb6177
Fix @apply order regression (in addComponents, addUtilities, ...) (#7232)
* ensure to partition `@apply` rules generated by addComponents, addUtilities, ...

* update changelog
2022-01-27 13:16:44 +01:00
Robin Malfait
af0914ad7b
update changelog 2022-01-26 19:32:01 +01:00
Robin Malfait
64cf0b8e8a
Remove false positive warning in CLI when using the --content option (#7220)
* ensure content files are available in config

If you use the cli with the `--content` option, then we first resolve
the config (empty), then add the `content` to the config. The issue is
that this means that the content will be empty when you resolve it
initially. This results in a warning in your terminal.

Now, we will make sure to merge 2 configs if you have the `--content`
data passed. We will also make sure to override the final
`config.content.files` to whatever you passed in to make sure that this
is the same behaviour as before.

* update changelog
2022-01-26 19:31:50 +01:00
Robin Malfait
2a9b6c9b10
add missing changelog entries 2022-01-24 14:58:44 +01:00
Robin Malfait
837781ad08
update changelog 2022-01-24 14:56:48 +01:00
Robin Malfait
167668e9cf
Ensure to transpile the PostCSS Nesting plugin (tailwindcss/nesting) (#7080)
* ensure that we compile the postcss nesting plugin

* re-add optional chaining

This will allow us to be 100% sure that we can safely call
hasOwnProperty in case we get some very strange objects.

This will now also be compiled/transpiled by esbuild.

* import the internal postcss nesting plugin

This allows us to work on it without re-compiling while running tests.
Just like we do with all other code.

* update changelog
2022-01-15 16:07:20 +01:00
Robin Malfait
ffa746129d
update changelog 2022-01-15 02:36:57 +01:00
Robin Malfait
7920850728
Temporarily remove optional chaining in nesting plugin (#7077)
* remove optional chaining

This breaks on Node versions lower than version 13. Normally we
transpile everything, but we currently don't do this for the nesting
plugin since it is not really part of the `src` folder.

Will get this fixed in a better way, but for now this is a quick fix to
get everything working again!

* update changelog
2022-01-15 02:36:34 +01:00
Robin Malfait
6eda17e691
update changelog 2022-01-14 18:23:18 +01:00
Robin Malfait
adf792b1f8
update changelog 2022-01-14 16:21:10 +01:00