title: "Uppy 1.3: Accessibility and performance, new languages" date: 2019-08-05 author: arturi
Hi there! We are back after a period of silence following the Uppy 1.0 release in the end of April. It was pretty well received by the commnunity and press: we hit the front pages of Hacker News, Product Hunt and Reddit. We then started trending and gained over 20,000 stargazers on GitHub, got mentioned by Smashing Magazine, JavaScript Daily and JavaScript Weekly. It’s been a crazy ride! We’d like to thank all our contributors and users for their continued support.
It was not all self reflection and celebrations, though, in Uppy Remote Headquaters™ following the 1.0
launch. After some vacation time, we quickly got back to work, releasing Uppy 1.1
, 1.2
and 1.3
. These updates address a lot of issues raised by the community and the team.
This post highlights the most important and exciting changes from those releases: accessibility and performance, thumbnails rotatation, new logger, progress and uploader improvements, Robodog and Companion updates, new languages and more.
Our new team member, Evgenia, has been on a roll and together with Artur and Alex, she has been working hard on improving accessiblity in Uppy. Evgenia has come up with something called “superfocus”, which makes sure focus stays on the most relevant button or field in the current view. The @uppy/provider-views
layouts have been refactored so that checkboxes and labels are accessible. Focus styles have also been improved.
Other notable accessiblity fixes and improvements:
⚠️ @uppy/provider-views
translation strings have been moved from Dashboard to Core. This eliminates a dependency of provider-views upon Dashboard #1712.
See #1507, #1574 and #1656 for more details.
Renée attacked performance problems in the Dashboard when adding many hundreds of files. Previously, we naively rerendered the entire file list when any file had a change. Now, only the changed file rerenders:
Before:
After:
See #1671 for more details. As you can see, there are still some laggy interactions — expect more improvements in future releases!
We’ve added an option to supply a logger
object with debug
, warn
and error
methods, so you can use a custom logging solution with Uppy. Check out the docs for more information.
In the future, past 2.0, the logger: Uppy.debugLogger
option is going to replace debug: true
. The latter will be kept for backwards compatibility for now.
⚠️ Since @uppy/core@1.2
, the default logger has switched to console.debug
from console.log
by default. You might need to change settings in your browser’s devtools to see Uppy logs!
Versions of each Uppy plugin and Core are now also logged for easier debugging.
See #1661 and #1640 for more details.
Before this change, when you added a file to Uppy from a mobile device, you would sometimes see the preview image sideways. This was because we didn’t account for EXIF rotation metadata when generating thumbnails with @uppy/thumbnail-generator
. But now, thanks to @Botz, we do! See #1532.
prettier-bytes
package into @uppy/utils
, and divide by 1024
instead of 1000
to justify KB
vs kB
#1732.@uppy/drag-drop
plugin now renders an entirely clickable DnD area.See #1440, #1565 and #1633 for more details.
bundle: true
option is set #1677.fields
#1569.metaFields
option has been added to the tus plugin #1644.Thanks to our amazing contributors, Uppy now speaks: Arabic, Chinese, Dutch, English, Finnish, French, German, Hungarian, Italian, Japanese, Persian, Portuguese, Russian, Serbian, Spanish an Turkish!
New translations are rolling in every month, but there are plenty more languages out there that Uppy would love to learn. Please consider contributing your language as well!
We’ve also added docs for locales — how to use from NPM and CDN, auto-generated list of languages that are supported already and an invitation to add more #1553.
Finally, we’ve fixed an issue that could occur when adding files with names in non-Latin alphabets. When adding a file to Uppy, it gets an ID based on several characteristics, such as its size and file name. Previously, our ID generation would ignore any non-alphanumeric characters in the file name, which could cause the IDs for different files to clash. Now, those characters are worked into the ID, so that multiple similar files with different non-alphanumeric names can be added. See #1722.
Robodog is an Uppy-based library that helps you talk to the Transloadit API. Since 1.0, most of the updates have been bugfixes:
Robodog.dashboard()
and Robodog.form()
now pass their options to the @uppy/dashboard
plugin as advertised.Robodog.form()
now supports the triggerUploadOnSubmit
option from @uppy/form
.Robodog.form()
now supports localization of the “Choose files” button it adds in the default configuration.await
s to our tests #1675.uploadcdn
and sync version scripts #1586 #1600.Of course, we didn’t forget @uppy/companion
. It’s getting more robust with every release:
uppy-versions
header to Companion. Please see how to avoid errors if you are using Companion but NOT as standalone #1612.relativePath
is added to local files when a directory has been dropped/selected. It is null
for non-foldered files #1602.uploadStarted: null
instead of false #1628.mimeType
#1708.As always, you can find the full list of changes and package versions, as well as future plans, in our changelog.