Add a note about using short-circuit evaluation to conditionally add CSS rules #744
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I just discovered that in the process of flattening CSS, styled-components ignores interpolations that evaluate to
undefined
,null
,false
, or an empty string. I think this fact may not be widely known, though, because in a certain component library I'm working on, I'm seeing a lot of${props.condition ? 'rule-name: value;' : ''}
in styled components instead of${props.condition && 'rule-name: value;'}
, seemingly out of a fear thatfalse
orundefined
will stringify and break their CSS.So I've written a short addition to the Tagged Template Literals section that lets people know that using short-circuit evaluation to add CSS rules is okay. Here's the new content:
How's that look? Is there a better place to put something like this?
And please pardon the adding of semicolons to the preexisting examples
on the page—that was the precommit linting that did that.