Set -webkit-appearance: button
on file upload so text is aligned in Safari
#2201
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.
Fixes #2194
What
In Safari, the text of the file upload component was mis-aligned with the upload button on desktop, due to the font-size not being properly applied to the button. Safari say:
Setting -webkit-appearance: none
Setting
-webkit-appearance: none
fixes the alignment issue as the font-size can now be set correctly. However, setting appearance to none suggests the element has no "special" appearance - "No special styling is applied. This is the default." (https://developer.mozilla.org/en-US/docs/Web/CSS/appearance).Setting -webkit-appearance: button
Setting appearance to
button
means that "the element is drawn like a button", which is more appropriate for our use case.However, the button goes grey with white text when pressed, which fails colour contrast recommendations (2.09:1 instead of 4.5:1). So we need to also set the text colour for the button.
Cross-browser testing
Because we're nesting
-webkit-appearance
within a::-webkit-file-upload-button
selector, this doesn't have any effect in the majority of browsers. The only change I observed was in Safari (Mac). Full selection of screenshots here