1892 Commits

Author SHA1 Message Date
Adam Wathan
007231fbfc Require plugin authors to manually escape variants
Not 100% convinced this is a net positive change, but I regret not having done things this way at the beginning.

In 0.x, we pass the `separator` and `className` values already escaped, so `:` comes through as `\:` for example, and `w-1/2` comes through as `w-1\/2`.

At first this sounds fine, less work for the plugin author right? But CSS escaping rules are kind of complicated and you have to escape characters differently depending on whether or not they are at the start of an identifier.

For example, it's totally fine for a class to contain a zero (`0` ), but it can't _start_ with a zero. For a class to start with a zero, it needs to be escaped like this: `\30 `

This means that as a general rule, trying to escape the individual segments of a class separately is a bad idea — you should escape the class as a whole so only the necessary escaping is applied. We break this rule when we pre-escape the separator and className for plugin authors who use the `modifySelectors` function.

We already require users to manually escape class names when they are using `addUtilities` or `addComponents`, so to me it feels more consistent for things to work this way and it's how they should have worked from day one.

Basically this code:

```js
function({ addVariant }) {
  addVariant('first-child', ({ modifySelectors, separator }) => {
    modifySelectors(({ className }) => {
      return `.first-child${separator}${className}:first-child`
    })
  })
},
```

...would need to be re-written like this if I merge this change:

```js
function({ addVariant, e }) {
  addVariant('first-child', ({ modifySelectors, separator }) => {
    modifySelectors(({ className }) => {
      return `.${e(`first-child${separator}${className}`)}:first-child`
    })
  })
},
```

Although I think this is the right way for this to work, I hesitate because it's a breaking change that makes any variant plugins authored for 0.x incompatible with 1.x. It's an easy fix on the plugin author's part, but it's still annoying.

I'm leaning towards merging so I don't regret this even more later when the plugin ecosystem is a lot bigger. Anyone have any thoughts?
2019-02-28 10:17:09 -05:00
Adam Wathan
1d685a0557
Merge pull request #694 from tailwindcss/update-selector-parser
Leverage built-in escape handling in postcss-selector-parser
2019-02-28 08:48:07 -05:00
Adam Wathan
5e935c10f7 Remove dependency on cssesc
Makes it easier to guarantee that our escape behavior stays in line with postcss-selector-parser if their internal implementation ever changes.
2019-02-27 16:40:19 -05:00
Adam Wathan
2f79cab8fa Switch from css.escape to cssesc
This is what postcss-selector-parser uses internally, best to rely on the same escaping logic everywhere.
2019-02-27 13:53:28 -05:00
Adam Wathan
b8f1078229 Use postcss-selector-parser class escape handling 2019-02-27 13:43:26 -05:00
Adam Wathan
cdb3bfddfa Update postcss-selector-parser 2019-02-27 13:42:44 -05:00
Adam Wathan
0d93dc8d54 Ignore index.html
I use this file with live-server for random testing when developing
locally. Totally worth cluttering up the .gitignore for the
convenience. #sorrynotsorry
2019-02-27 13:31:13 -05:00
Adam Wathan
4eb90a6aa3
Merge pull request #690 from tailwindcss/configure-flex-grow-shrink
Make flex-grow/shrink customizable
2019-02-26 14:03:27 -05:00
Adam Wathan
12dafbe1b1 Make flex-grow/shrink customizable 2019-02-26 13:45:12 -05:00
Adam Wathan
ef603120b1
Merge pull request #689 from tailwindcss/split-flexbox
Split flexbox plugin into multiple plugins
2019-02-26 10:45:54 -05:00
Adam Wathan
2b89e09409 Split flexShrink to separate plugin 2019-02-26 10:33:34 -05:00
Adam Wathan
06ef9557b3 Split flexGrow to separate plugin 2019-02-26 10:30:44 -05:00
Adam Wathan
7af36e1274 Split flex into separate plugin 2019-02-26 10:25:06 -05:00
Adam Wathan
13b81f0b5c Split alignContent into separate plugin 2019-02-26 10:19:55 -05:00
Adam Wathan
ad282c6d8a Split justifyContent into separate plugin 2019-02-26 10:17:26 -05:00
Adam Wathan
04163056f6 Split alignSelf into separate plugin 2019-02-26 10:09:53 -05:00
Adam Wathan
435a7f97de Split alignItems into separate plugin 2019-02-26 10:09:06 -05:00
Adam Wathan
7f1c7f578e Split flexWrap into separate plugin 2019-02-26 10:08:02 -05:00
Adam Wathan
ad4f7739bb Split flexDirection into its own plugin 2019-02-26 10:04:21 -05:00
Adam Wathan
10106e2edc Move flex display utilities to display plugin 2019-02-26 10:02:25 -05:00
Adam Wathan
7df0909fd0
Merge pull request #688 from tailwindcss/dont-export-plugins
Don't export core plugins
2019-02-26 10:01:12 -05:00
Adam Wathan
bc49046c95 Don't export core plugins 2019-02-26 09:59:50 -05:00
Adam Wathan
d7d9268f0c
Merge pull request #687 from tailwindcss/no-grow-shrink-to-grow-shrink-0
Rename flex-no-grow/shrink to flex-grow/shrink-0
2019-02-26 09:17:00 -05:00
Adam Wathan
d0de252e47 Rename flex-no-grow/shrink to flex-grow/shrink-0 2019-02-26 09:13:17 -05:00
Adam Wathan
f52e9d4581
Merge pull request #683 from tailwindcss/new-screen-sizes
Update default breakpoints
2019-02-23 15:50:00 -05:00
Adam Wathan
2e1099ebea Update default breakpoints 2019-02-22 21:20:22 -05:00
Adam Wathan
4c1bf08093 Merge branch 'hacknug-feature/cursors' into next 2019-02-22 12:47:34 -05:00
Adam Wathan
0db948f3e8 Fix style 2019-02-22 12:47:23 -05:00
Adam Wathan
8293631d76 Merge branch 'feature/cursors' of git://github.com/hacknug/tailwindcss into hacknug-feature/cursors 2019-02-22 12:46:00 -05:00
Adam Wathan
2c5c54367c
Merge pull request #681 from hacknug/feature/word-wrapping
Add new word-break utilities
2019-02-22 12:37:44 -05:00
Nestor Vera
85957755dd Add new word-break utilities 2019-02-22 17:51:21 +01:00
Adam Wathan
f987d5386d
Merge pull request #680 from hacknug/hotfix/fix-tests
Fix undefined var in one test
2019-02-22 11:36:18 -05:00
Nestor Vera
233d5bdcbd Fix undefined var in one test 2019-02-22 16:59:56 +01:00
Nestor Vera
dc02201a2d Allow users to configure cursors 2019-02-22 16:47:58 +01:00
Adam Wathan
db7f1e6728 Merge branch 'master' into next 2019-02-22 10:05:31 -05:00
Adam Wathan
bf475d5b7f
Merge pull request #678 from tailwindcss/pass-postcss-to-plugins
Pass postcss to plugins directly
2019-02-22 10:05:01 -05:00
Adam Wathan
10aa36533f Pass postcss to plugins explicitly 2019-02-22 09:50:36 -05:00
Adam Wathan
48b72304cb
Merge pull request #640 from MattStypa/build_refactor
CLI build process improvements
2019-02-21 15:08:12 -05:00
Adam Wathan
fdc5565f70
Merge pull request #671 from tailwindcss/extend-tracking-scale
Extend letter-spacing scale
2019-02-21 15:03:37 -05:00
Adam Wathan
26a0c23636
Merge pull request #673 from tailwindcss/extend-line-height-scale
Add snug and relaxed line-heights
2019-02-21 11:42:50 -05:00
Adam Wathan
9a5e0ea4e3
Merge pull request #676 from hacknug/feature/customize-objectPosition
Allow users to customize objectPostions
2019-02-21 07:55:28 -05:00
Nestor Vera
1bddb2511b Allow users to customize objectPostions 2019-02-21 12:51:15 +01:00
Adam Wathan
e5134752d8 Add snug and relaxed line-heights 2019-02-20 19:41:55 -05:00
Adam Wathan
637959585d Remove leading zeroes 2019-02-20 14:50:02 -05:00
Adam Wathan
62c5addc4b Extend letter-spacing scale 2019-02-20 14:44:19 -05:00
Adam Wathan
33c91e19ea
Merge pull request #670 from tailwindcss/enable-object-plugins
Enable object fit/position plugins by default
2019-02-19 19:15:40 -05:00
Adam Wathan
e5d2e6429d Enable object fit/position plugins by default 2019-02-19 18:59:12 -05:00
Adam Wathan
ab061308bc
Merge pull request #669 from tailwindcss/leading-tracking-plugin-rename
Rename the leading and tracking plugins to lineHeight and letterSpacing
2019-02-19 16:01:57 -05:00
Adam Wathan
9925d6156d Rename tracking plugin to letterSpacing 2019-02-19 15:54:07 -05:00
Adam Wathan
ceb093e6a1 Rename leading plugin to lineHeight 2019-02-19 15:49:33 -05:00