瀏覽代碼

build: add stylelint (#3124)

* add stylelint with stylelint-config-standard

* autofix style issues

* fix more linting issues

* add stylelint-scss

* fix two more

* add stylelint-config-rational-order and autofix order

https://github.com/constverum/stylelint-config-rational-order
Artur Paikin 3 年之前
父節點
當前提交
dbe3ed25b3
共有 31 個文件被更改,包括 2238 次插入1348 次删除
  1. 14 0
      .stylelintrc.json
  2. 848 0
      package-lock.json
  3. 6 0
      package.json
  4. 74 70
      packages/@uppy/core/src/_common.scss
  5. 9 8
      packages/@uppy/core/src/_utils.scss
  6. 2 2
      packages/@uppy/core/src/_variables.scss
  7. 132 135
      packages/@uppy/dashboard/src/components/FileCard/index.scss
  8. 11 7
      packages/@uppy/dashboard/src/components/FileItem/Buttons/index.scss
  9. 33 32
      packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss
  10. 40 37
      packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.scss
  11. 21 20
      packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.scss
  12. 89 88
      packages/@uppy/dashboard/src/components/FileItem/index.scss
  13. 306 271
      packages/@uppy/dashboard/src/style.scss
  14. 16 16
      packages/@uppy/drag-drop/src/style.scss
  15. 3 3
      packages/@uppy/drop-target/src/style.scss
  16. 3 4
      packages/@uppy/file-input/src/style.scss
  17. 76 76
      packages/@uppy/image-editor/src/cropper.scss
  18. 21 13
      packages/@uppy/image-editor/src/inputrange.scss
  19. 11 11
      packages/@uppy/image-editor/src/style.scss
  20. 24 24
      packages/@uppy/informer/src/style.scss
  21. 10 8
      packages/@uppy/progress-bar/src/style.scss
  22. 118 117
      packages/@uppy/provider-views/src/style.scss
  23. 25 18
      packages/@uppy/provider-views/src/style/uppy-ProviderBrowser-viewType--grid.scss
  24. 24 16
      packages/@uppy/provider-views/src/style/uppy-ProviderBrowser-viewType--list.scss
  25. 4 4
      packages/@uppy/provider-views/src/style/uppy-ProviderBrowserItem-checkbox.scss
  26. 4 4
      packages/@uppy/provider-views/src/style/uppy-SearchProvider-input.scss
  27. 31 30
      packages/@uppy/screen-capture/src/style.scss
  28. 181 176
      packages/@uppy/status-bar/src/style.scss
  29. 4 4
      packages/@uppy/url/src/style.scss
  30. 54 111
      packages/@uppy/utils/src/microtip.scss
  31. 44 43
      packages/@uppy/webcam/src/style.scss

+ 14 - 0
.stylelintrc.json

@@ -0,0 +1,14 @@
+{
+  "extends": [
+    "stylelint-config-standard",
+    "stylelint-config-rational-order"
+  ],
+  "plugins": [
+    "stylelint-scss"
+  ],
+  "rules": {
+    "at-rule-no-unknown": null,
+    "scss/at-rule-no-unknown": true
+  },
+  "defaultSeverity": "warning"
+}

File diff suppressed because it is too large
+ 848 - 0
package-lock.json


+ 6 - 0
package.json

@@ -111,6 +111,10 @@
     "sass": "^1.29.0",
     "size-limit": "4.5.6",
     "stringify-object": "^3.3.0",
+    "stylelint": "^13.13.1",
+    "stylelint-config-rational-order": "^0.1.2",
+    "stylelint-config-standard": "^22.0.0",
+    "stylelint-scss": "^3.20.1",
     "tar": "^6.1.0",
     "temp-write": "^5.0.0",
     "terser": "^5.7.0",
@@ -142,6 +146,8 @@
     "lint:fix": "npm run lint -- --fix",
     "lint:markdown": "remark -f -q . -i .gitignore",
     "lint:staged": "lint-staged",
+    "lint:css": "stylelint ./packages/**/*.scss",
+    "lint:css:fix": "stylelint ./packages/**/*.scss --fix",
     "lint": "eslint . --cache",
     "release": "bash ./bin/release",
     "size": "echo 'JS Bundle mingz:' && cat ./packages/uppy/dist/uppy.min.js | gzip | wc -c && echo 'CSS Bundle mingz:' && cat ./packages/uppy/dist/uppy.min.css | gzip | wc -c",

+ 74 - 70
packages/@uppy/core/src/_common.scss

@@ -3,23 +3,26 @@
 */
 
 .uppy-Root {
+  position: relative;
   box-sizing: border-box;
+  color: $gray-800;
   font-family: $font-family-base;
   line-height: 1;
+  text-align: left;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
-  text-align: left;
-  position: relative;
-  color: $gray-800;
 }
 
 // One selector uses the dir attribute declared by the page. If that does not exist, Uppy adds a
 // fallback dir attribute on the root element itself, and we need a second selector to match that.
-[dir="rtl"] .uppy-Root, .uppy-Root[dir="rtl"] {
+[dir="rtl"] .uppy-Root,
+.uppy-Root[dir="rtl"] {
   text-align: right;
 }
 
-.uppy-Root *, .uppy-Root *:before, .uppy-Root *:after {
+.uppy-Root *,
+.uppy-Root *::before,
+.uppy-Root *::after {
   box-sizing: inherit;
 }
 
@@ -30,75 +33,74 @@
 // Utilities
 
 .uppy-u-reset {
-  -webkit-appearance: none;
-  line-height: 1;
-  padding: 0;
-  margin: 0;
-  border: 0;
-  color: inherit;
-  backface-visibility: visible;
-  background: none;
-  border: medium none currentColor;
-  border-collapse: separate;
-  border-image: none;
-  border-radius: 0;
-  border-spacing: 0;
-  box-shadow: none;
-  clear: none;
-  cursor: auto;
+  top: auto;
+  left: auto;
+  z-index: auto;
   display: inline;
-  empty-cells: show;
   float: none;
-  font-family: inherit;
-  font-size: inherit;
-  font-style: normal;
-  font-variant: normal;
-  font-weight: normal;
-  font-stretch: normal;
-  hyphens: none;
-  left: auto;
-  letter-spacing: normal;
-  list-style: none;
-  margin: 0;
-  max-height: none;
+  clear: none;
+  min-width: 0;
   max-width: none;
   min-height: 0;
-  min-width: 0;
-  opacity: 1;
-  outline: medium none invert;
+  max-height: none;
+  margin: 0;
+  padding: 0;
   overflow: visible;
   overflow-x: visible;
   overflow-y: visible;
+  color: inherit;
+  font-weight: normal;
+  font-size: inherit;
+  font-family: inherit;
+  font-style: normal;
+  font-variant: normal;
+  font-stretch: normal;
+  line-height: 1;
+  letter-spacing: normal;
+  white-space: normal;
   text-align: left;
+  text-transform: none;
   text-decoration: none;
   text-indent: 0;
   text-shadow: none;
-  text-transform: none;
-  top: auto;
+  vertical-align: baseline;
+  hyphens: none;
+  unicode-bidi: normal;
+  list-style: none;
+  empty-cells: show;
+  background: none;
+  border: 0;
+  border: medium none currentColor;
+  border-radius: 0;
+  border-image: none;
+  border-collapse: separate;
+  border-spacing: 0;
+  outline: medium none invert;
+  box-shadow: none;
   transform: none;
   transform-origin: 50% 50% 0;
   transform-style: flat;
-  transition: none 0s ease 0s;
-  unicode-bidi: normal;
-  vertical-align: baseline;
+  backface-visibility: visible;
   visibility: visible;
-  white-space: normal;
-  z-index: auto;
+  cursor: auto;
+  opacity: 1;
+  transition: none 0s ease 0s;
+  -webkit-appearance: none;
 }
+
 [dir="rtl"] .uppy-u-reset {
   text-align: right;
 }
 
-
 // Inputs
 
 .uppy-c-textInput {
-  border: 1px solid #ddd;
-  border-radius: 4px;
+  padding: 6px 8px;
   font-size: 14px;
   line-height: 1.5;
-  padding: 6px 8px;
   background-color: $white;
+  border: 1px solid #ddd;
+  border-radius: 4px;
 
   .uppy-size--md & {
     padding: 8px 10px;
@@ -111,9 +113,9 @@
   }
 
   [data-uppy-theme="dark"] & {
+    color: $gray-200;
     background-color: $gray-800;
     border-color: $gray-800;
-    color: $gray-200;
   }
 
   [data-uppy-theme="dark"] &:focus {
@@ -126,46 +128,46 @@
 
 // https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4
 .uppy-c-icon {
+  display: inline-block;
   max-width: 100%;
   max-height: 100%;
-  fill: currentColor;
-  display: inline-block;
   overflow: hidden;
+  fill: currentColor;
 }
 
 // Buttons
 
 .uppy-c-btn {
   display: inline-block;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  font-family: inherit;
+  font-weight: 500;
   font-size: 16px;
+  font-family: inherit;
   line-height: 1;
-  font-weight: 500;
-  transition-property: background-color, color;
+  white-space: nowrap;
+  text-align: center;
+  vertical-align: middle;
   transition-duration: 0.3s;
+  transition-property: background-color, color;
   user-select: none;
 
   // Override right-to-left variant of the uppy-u-reset class
   [dir="rtl"] & { text-align: center; }
 }
 
-  .uppy-c-btn:not(:disabled):not(.disabled) {
-    cursor: pointer;
-  }
+.uppy-c-btn:not(:disabled):not(.disabled) {
+  cursor: pointer;
+}
 
-  .uppy-c-btn::-moz-focus-inner {
-    border: 0;
-  }
+.uppy-c-btn::-moz-focus-inner {
+  border: 0;
+}
 
 .uppy-c-btn-primary {
-  font-size: 14px;
   padding: 10px 18px;
-  border-radius: 4px;
-  background-color: $blue;
   color: $white;
+  font-size: 14px;
+  background-color: $blue;
+  border-radius: 4px;
 
   &:hover {
     background-color: darken($blue, 10%);
@@ -182,17 +184,18 @@
 
   [data-uppy-theme="dark"] & {
     color: $gray-200;
+
     @include blue-border-focus--dark;
   }
 }
 
 .uppy-c-btn-link {
+  padding: 10px 15px;
+  color: $gray-700;
   font-size: 14px;
   line-height: 1;
-  padding: 10px 15px;
-  border-radius: 4px;
   background-color: transparent;
-  color: $gray-700;
+  border-radius: 4px;
 
   &:hover {
     color: $gray-800;
@@ -209,6 +212,7 @@
 
   [data-uppy-theme="dark"] & {
     color: $gray-200;
+
     @include blue-border-focus--dark;
   }
 
@@ -218,8 +222,8 @@
 }
 
 .uppy-c-btn--small {
-  font-size: 0.9em;
   padding: 7px 16px;
+  font-size: 0.9em;
   border-radius: 2px;
 
   .uppy-size--md & {

+ 9 - 8
packages/@uppy/core/src/_utils.scss

@@ -3,10 +3,10 @@
 $focus-shadow: 0 0 0 3px rgba($blue, 0.5);
 
 @mixin clearfix() {
-  &:after {
-    content: '';
+  &::after {
     display: table;
     clear: both;
+    content: '';
   }
 }
 
@@ -15,15 +15,15 @@ $focus-shadow: 0 0 0 3px rgba($blue, 0.5);
 }
 
 @mixin reset-button() {
-  background: none;
-  -webkit-appearance: none;
-  font-family: inherit;
+  margin: 0;
+  padding: 0;
+  color: inherit;
   font-size: inherit;
+  font-family: inherit;
   line-height: 1;
-  padding: 0;
-  margin: 0;
+  background: none;
   border: 0;
-  color: inherit;
+  -webkit-appearance: none;
 }
 
 @mixin highlight-focus() {
@@ -62,6 +62,7 @@ $focus-shadow: 0 0 0 3px rgba($blue, 0.5);
   &:focus {
     outline: none;
   }
+
   &::-moz-focus-inner {
     border: 0;
   }

+ 2 - 2
packages/@uppy/core/src/_variables.scss

@@ -1,5 +1,5 @@
 // Fonts
-$font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !default;
+$font-family-base: -apple-system, blinkmacsystemfont, 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !default;
 
 // Colors
 
@@ -28,7 +28,7 @@ $gray-700: #525252 !default;
 $gray-800: #333 !default;
 $gray-900: #1f1f1f !default;
 
-$white-50: #FFFBF7 !default;
+$white-50: #fffbf7 !default;
 
 $highlight: #eceef2;
 $highlight--dark: #02baf2;

+ 132 - 135
packages/@uppy/dashboard/src/components/FileCard/index.scss

@@ -1,16 +1,18 @@
 .uppy-Dashboard-FileCard {
-  width: 100%;
-  height: 100%;
   position: absolute;
   top: 0;
-  left: 0;
   right: 0;
   bottom: 0;
+  left: 0;
   z-index: $zIndex-5;
-  box-shadow: 0px 0px 10px 4px rgba($black, 0.1);
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  height: 100%;
   background-color: $white;
   // For Safari, otherwise there is no border-radius in FileCard.
   border-radius: 5px;
+  box-shadow: 0 0 10px 4px rgba($black, 0.1);
 
   .uppy-DashboardContent-bar {
     border-top-left-radius: 5px;
@@ -18,144 +20,139 @@
   }
 
   .uppy-Dashboard-FileCard-actions {
-    border-bottom-left-radius: 5px;
     border-bottom-right-radius: 5px;
+    border-bottom-left-radius: 5px;
   }
+}
 
+.uppy-Dashboard-FileCard-inner {
   display: flex;
   flex-direction: column;
+  flex-grow: 1;
+  flex-shrink: 1;
+  height: 100%;
+  // For Firefox in order for flex-shrink: 1 to work properly! (https://github.com/philipwalton/flexbugs/issues/41#issuecomment-111590394)
+  min-height: 0;
+}
+
+.uppy-Dashboard-FileCard-preview {
+  position: relative;
+
+  // center the nested image/preview
+  display: flex;
+  flex-grow: 0;
+  flex-shrink: 1;
+  align-items: center;
+  justify-content: center;
+  height: 60%;
+  // For Firefox in order for flex-shrink: 1 to work properly!
+  min-height: 0;
+  border-bottom: 1px solid $gray-200;
+
+  [data-uppy-theme="dark"] & {
+    background-color: $gray-800;
+    border-bottom: 0;
+  }
+}
+
+.uppy-Dashboard-FileCard-preview img.uppy-Dashboard-Item-previewImg {
+  // For IE11, otherwise image aspect ration will get screwed.
+  flex: 0 0 auto;
+  max-width: 90%;
+  max-height: 90%;
+  object-fit: cover;
+  border-radius: 3px;
+  box-shadow: 0 3px 20px rgba($black, 0.15);
+}
+// ...uppy-Dashboard-FileCard-preview|
+
+.uppy-Dashboard-FileCard-edit {
+  @include blue-border-focus;
+
+  position: absolute;
+  top: 10px;
+  padding: 7px 15px;
+  color: $white;
+  font-size: 13px;
+  background-color: rgba($black, 0.5);
+  border-radius: 50px;
+  inset-inline-end: 10px;
+
+  &:hover {
+    background-color: rgba($black, 0.8);
+  }
+}
+
+.uppy-Dashboard-FileCard-info {
+  flex-grow: 0;
+  flex-shrink: 0;
+  height: 40%;
+  padding: 30px 20px 20px 20px;
+  overflow-y: auto;
+  -webkit-overflow-scrolling: touch;
+
+  [data-uppy-theme="dark"] & {
+    background-color: $gray-900;
+  }
+}
+
+.uppy-Dashboard-FileCard-fieldset {
+  max-width: 640px;
+  margin: auto;
+  margin-bottom: 12px;
+  padding: 0;
+  font-size: 0;
+  border: 0;
+}
+
+.uppy-Dashboard-FileCard-label {
+  display: inline-block;
+  width: 22%;
+  color: $gray-700;
+  font-size: 12px;
+  vertical-align: middle;
+
+  .uppy-size--md & {
+    font-size: 14px;
+  }
+
+  [data-uppy-theme="dark"] & {
+    color: $gray-200;
+  }
 }
 
-  .uppy-Dashboard-FileCard-inner {
-    height: 100%;
-    flex-grow: 1;
-    flex-shrink: 1;
-    // For Firefox in order for flex-shrink: 1 to work properly! (https://github.com/philipwalton/flexbugs/issues/41#issuecomment-111590394)
-    min-height: 0;
+.uppy-Dashboard-FileCard-input {
+  display: inline-block;
+  width: 78%;
+  vertical-align: middle;
+}
+// ...uppy-Dashboard-FileCard-fieldset|
+// ...uppy-Dashboard-FileCard-info|
 
-    display: flex;
-    flex-direction: column;
+.uppy-Dashboard-FileCard-actions {
+  display: flex;
+  flex-grow: 0;
+  flex-shrink: 0;
+  align-items: center;
+  height: 55px;
+  padding: 0 15px;
+  background-color: $gray-50;
+  border-top: 1px solid $gray-200;
+
+  .uppy-size--md & {
+    height: 65px;
   }
-    .uppy-Dashboard-FileCard-preview {
-      height: 60%;
-      flex-grow: 0;
-      flex-shrink: 1;
-      // For Firefox in order for flex-shrink: 1 to work properly!
-      min-height: 0;
-
-      border-bottom: 1px solid $gray-200;
-
-      // center the nested image/preview
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      position: relative;
-
-      [data-uppy-theme="dark"] & {
-        background-color: $gray-800;
-        border-bottom: 0;
-      }
-    }
-
-      .uppy-Dashboard-FileCard-preview img.uppy-Dashboard-Item-previewImg {
-        max-width: 90%;
-        max-height: 90%;
-        object-fit: cover;
-        // For IE11, otherwise image aspect ration will get screwed.
-        flex: 0 0 auto;
-
-        border-radius: 3px;
-        box-shadow: 0px 3px 20px rgba($black, 0.15);
-      }
-    // ...uppy-Dashboard-FileCard-preview|
-
-    .uppy-Dashboard-FileCard-edit {
-      @include blue-border-focus;
-      position: absolute;
-      top: 10px;
-      inset-inline-end: 10px;
-      font-size: 13px;
-      background-color: rgba($black, 0.5);
-      color: $white;
-      padding: 7px 15px;
-      border-radius: 50px;
-
-      &:hover {
-        background-color: rgba($black, 0.8);
-      }
-    }
-
-    .uppy-Dashboard-FileCard-info {
-      height: 40%;
-      flex-grow: 0;
-      flex-shrink: 0;
-
-      padding: 30px 20px 20px 20px;
-      overflow-y: auto;
-      -webkit-overflow-scrolling: touch;
-
-      [data-uppy-theme="dark"] & {
-        background-color: $gray-900;
-      }
-    }
-
-      .uppy-Dashboard-FileCard-fieldset {
-        font-size: 0;
-        border: 0;
-        padding: 0;
-        max-width: 640px;
-        margin: auto;
-        margin-bottom: 12px;
-      }
-        .uppy-Dashboard-FileCard-label {
-          display: inline-block;
-          vertical-align: middle;
-          width: 22%;
-          font-size: 12px;
-          color: $gray-700;
-
-          .uppy-size--md & {
-            font-size: 14px;
-          }
-
-          [data-uppy-theme="dark"] & {
-            color: $gray-200;
-          }
-        }
-        .uppy-Dashboard-FileCard-input {
-          display: inline-block;
-          vertical-align: middle;
-          width: 78%;
-        }
-      // ...uppy-Dashboard-FileCard-fieldset|
-    // ...uppy-Dashboard-FileCard-info|
-
-    .uppy-Dashboard-FileCard-actions {
-      height: 55px;
-      flex-shrink: 0;
-      flex-grow: 0;
-
-      border-top: 1px solid $gray-200;
-      padding: 0 15px;
-      background-color: $gray-50;
-
-      display: flex;
-      align-items: center;
-
-      .uppy-size--md & {
-        height: 65px;
-      }
-
-      [data-uppy-theme="dark"] & {
-        border-top: 1px solid $gray-800;
-        background-color: $gray-900;
-      }
-    }
-
-      .uppy-Dashboard-FileCard-actionsBtn {
-        margin-inline-end: 10px;
-      }
-    // ...uppy-Dashboard-FileCard-actions|
-
-  // ...uppy-Dashboard-FileCard-inner|
+
+  [data-uppy-theme="dark"] & {
+    background-color: $gray-900;
+    border-top: 1px solid $gray-800;
+  }
+}
+
+.uppy-Dashboard-FileCard-actionsBtn {
+  margin-inline-end: 10px;
+}
+// ...uppy-Dashboard-FileCard-actions|
+
+// ...uppy-Dashboard-FileCard-inner|
 // ...uppy-Dashboard-FileCard|

+ 11 - 7
packages/@uppy/dashboard/src/components/FileItem/Buttons/index.scss

@@ -1,16 +1,18 @@
 // On both mobile and .md+ screens
 .uppy-Dashboard-Item-action {
   @include blue-border-focus;
-  cursor: pointer;
+
   color: $gray-500;
+  cursor: pointer;
 
   &:hover {
-    opacity: 1;
     color: $gray-900;
+    opacity: 1;
   }
 
   [data-uppy-theme="dark"] & {
     @include blue-border-focus--dark;
+
     color: $gray-300;
   }
 
@@ -24,8 +26,8 @@
   opacity: 0.95;
 
   &:hover {
-    opacity: 1;
     color: $black;
+    opacity: 1;
   }
 
   [data-uppy-theme="dark"] & {
@@ -48,10 +50,10 @@
   .uppy-Dashboard-Item-action {
     width: 22px;
     height: 22px;
-    padding: 3px;
     margin-left: 3px;
+    padding: 3px;
 
-    &:focus{
+    &:focus {
       border-radius: 3px;
     }
   }
@@ -64,19 +66,21 @@
     width: 16px;
     height: 16px;
     padding: 0;
+
     &:focus {
       border-radius: 3px;
     }
   }
   // Remove button is in the top right corner
   .uppy-Dashboard-Item-action--remove {
-    z-index: $zIndex-3;
     position: absolute;
     top: -8px;
-    inset-inline-end: -8px;
+    z-index: $zIndex-3;
     width: 18px;
     height: 18px;
     padding: 0;
+    inset-inline-end: -8px;
+
     &:focus {
       border-radius: 50%;
     }

+ 33 - 32
packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.scss

@@ -1,43 +1,44 @@
 .uppy-Dashboard-Item-fileInfo {
   padding-inline-end: 5px;
 }
-  .uppy-Dashboard-Item-name {
-    font-size: 12px;
-    line-height: 1.3;
-    font-weight: 500;
-    margin-bottom: 5px;
 
-    word-break: break-all;
-    // Must be present
-    // [Practical check] Firefox, '384048411015659...2309520384n.png' filename
-    word-wrap: anywhere;
+.uppy-Dashboard-Item-name {
+  margin-bottom: 5px;
+  font-weight: 500;
+  font-size: 12px;
+  line-height: 1.3;
+  // Must be present
+  // [Practical check] Firefox, '384048411015659...2309520384n.png' filename
+  word-wrap: anywhere;
+  word-break: break-all;
 
-    [data-uppy-theme="dark"] & {
-      color: $gray-200;
-    }
+  [data-uppy-theme="dark"] & {
+    color: $gray-200;
   }
+}
 
-  .uppy-Dashboard-Item-status {
-    font-size: 11px;
-    line-height: 1;
-    font-weight: normal;
-    color: $gray-600;
+.uppy-Dashboard-Item-status {
+  color: $gray-600;
+  font-weight: normal;
+  font-size: 11px;
+  line-height: 1;
 
-    [data-uppy-theme="dark"] & {
-      color: $gray-400;
-    }
+  [data-uppy-theme="dark"] & {
+    color: $gray-400;
   }
-    .uppy-Dashboard-Item-statusSize {
-      display: inline-block;
-      vertical-align: bottom;
-      text-transform: uppercase;
-    }
+}
 
-  .uppy-Dashboard-Item-reSelect {
-    font-family: inherit;
-    font-size: inherit;
-    font-weight: 600;
-    color: $blue;
-  }
-  // ...uppy-Dashboard-Item-status|
+.uppy-Dashboard-Item-statusSize {
+  display: inline-block;
+  text-transform: uppercase;
+  vertical-align: bottom;
+}
+
+.uppy-Dashboard-Item-reSelect {
+  color: $blue;
+  font-weight: 600;
+  font-size: inherit;
+  font-family: inherit;
+}
+// ...uppy-Dashboard-Item-status|
 // ...uppy-Dashboard-Item-fileInfo|

+ 40 - 37
packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.scss

@@ -1,55 +1,58 @@
 .uppy-Dashboard-Item-previewInnerWrap {
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
   // For :after positioning
   position: relative;
-
   display: flex;
-  justify-content: center;
-  align-items: center;
   flex-direction: column;
-
-  box-shadow: 0 0 2px 0 rgba($black, 0.4);
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
   border-radius: 3px;
+  box-shadow: 0 0 2px 0 rgba($black, 0.4);
 
   .uppy-size--md & {
     box-shadow: 0 1px 2px rgba($black, 0.15);
   }
 }
-  .uppy-Dashboard-Item-previewInnerWrap:after {
-    content: '';
-    position: absolute;
-    left: 0; right: 0;
-    top: 0; bottom: 0;
-    background-color: rgba($black, 0.65);
-    display: none;
-    z-index: $zIndex-2;
-  }
 
-  .uppy-Dashboard-Item-previewLink {
-    position: absolute;
-    left: 0; right: 0;
-    top: 0; bottom: 0;
-    z-index: $zIndex-3;
+.uppy-Dashboard-Item-previewInnerWrap::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zIndex-2;
+  display: none;
+  background-color: rgba($black, 0.65);
+  content: '';
+}
 
-    &:focus {
-      box-shadow: inset 0 0 0 3px lighten($blue, 20%);
-    }
+.uppy-Dashboard-Item-previewLink {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zIndex-3;
 
-    [data-uppy-theme="dark"] &:focus {
-      box-shadow: inset 0 0 0 3px darken($highlight--dark, 20%);
-    }
+  &:focus {
+    box-shadow: inset 0 0 0 3px lighten($blue, 20%);
   }
 
-  .uppy-Dashboard-Item-preview img.uppy-Dashboard-Item-previewImg {
-    width: 100%;
-    height: 100%;
-    object-fit: cover;
-    // Fixes file previews being partially invisible in safari (for some pics only).
-    // (https://stackoverflow.com/a/27971913/3192470)
-    transform: translateZ(0);
-    // We need a repeated border-radius because of the transform.
-    border-radius: 3px;
+  [data-uppy-theme="dark"] &:focus {
+    box-shadow: inset 0 0 0 3px darken($highlight--dark, 20%);
   }
+}
+
+.uppy-Dashboard-Item-preview img.uppy-Dashboard-Item-previewImg {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+  // We need a repeated border-radius because of the transform.
+  border-radius: 3px;
+  // Fixes file previews being partially invisible in safari (for some pics only).
+  // (https://stackoverflow.com/a/27971913/3192470)
+  transform: translateZ(0);
+}
 // ...uppy-Dashboard-Item-previewInnerWrap|

+ 21 - 20
packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.scss

@@ -2,12 +2,12 @@
   position: absolute;
   top: 50%;
   left: 50%;
-  transform: translate(-50%, -50%);
   z-index: $zIndex-3;
+  width: 120px;
   color: $white;
   text-align: center;
-  width: 120px;
-  transition: all .35 ease;
+  transform: translate(-50%, -50%);
+  transition: all 0.35 ease;
 }
 
 .uppy-Dashboard-Item-progressIndicator {
@@ -22,17 +22,18 @@
   }
 }
 
-  button.uppy-Dashboard-Item-progressIndicator {
-    @include clear-focus;
-    cursor: pointer;
+button.uppy-Dashboard-Item-progressIndicator {
+  @include clear-focus;
+
+  cursor: pointer;
 
-    &:focus {
-      .uppy-Dashboard-Item-progressIcon--bg,
-      .uppy-Dashboard-Item-progressIcon--retry {
-        fill: lighten($blue, 20%);
-      }
+  &:focus {
+    .uppy-Dashboard-Item-progressIcon--bg,
+    .uppy-Dashboard-Item-progressIcon--retry {
+      fill: lighten($blue, 20%);
     }
   }
+}
 
 // ProgressCircle svg styles
 
@@ -46,30 +47,30 @@
 }
 
 .uppy-Dashboard-Item-progressIcon--progress {
+  transition: stroke-dashoffset 0.5s ease-out;
   stroke: $white;
-  transition: stroke-dashoffset .5s ease-out;
 }
 
 .uppy-Dashboard-Item-progressIcon--play {
-  stroke: $white;
-  fill: $white;
   transition: all 0.2s;
+  fill: $white;
+  stroke: $white;
 }
 
 .uppy-Dashboard-Item-progressIcon--cancel {
-  fill: $white;
   transition: all 0.2s;
+  fill: $white;
 }
 
 .uppy-Dashboard-Item-progressIcon--pause {
-  stroke: $white;
-  fill: $white;
   transition: all 0.2s;
+  fill: $white;
+  stroke: $white;
 }
 
 .uppy-Dashboard-Item-progressIcon--check {
-  fill: $white;
   transition: all 0.2s;
+  fill: $white;
 }
 
 .uppy-Dashboard-Item-progressIcon--retry {
@@ -79,11 +80,11 @@
 // Svg styles that depend on the state of the file.
 
 .uppy-Dashboard-Item.is-complete .uppy-Dashboard-Item-progress {
-  transform: initial;
   top: -9px;
+  width: auto;
+  transform: initial;
   inset-inline-end: -8px;
   inset-inline-start: initial;
-  width: auto;
 }
 
 .uppy-Dashboard-Item.is-error .uppy-Dashboard-Item-progressIndicator {

+ 89 - 88
packages/@uppy/dashboard/src/components/FileItem/index.scss

@@ -6,8 +6,8 @@
 .uppy-Dashboard-Item {
   display: flex;
   align-items: center;
-  border-bottom: 1px solid $gray-200;
   padding: 10px;
+  border-bottom: 1px solid $gray-200;
   padding-inline-end: 0;
 
   [data-uppy-theme="dark"] & {
@@ -22,19 +22,20 @@
     position: relative;
     display: block;
     float: inline-start;
-    margin: 5px $rl-margin;
-    padding: 0;
+
     /* When changing width: also update `itemsPerRow` values in `src/components/Dashboard.js`. */
     width: calc(33.333% - #{$rl-margin} - #{$rl-margin});
     height: 215px;
+    margin: 5px $rl-margin;
+    padding: 0;
     border-bottom: 0;
   }
 
   .uppy-size--lg & {
-    margin: 5px $rl-margin;
     /* When changing width: also update `itemsPerRow` values in `src/components/Dashboard.js`. */
     width: calc(25% - #{$rl-margin} - #{$rl-margin});
     height: 190px;
+    margin: 5px $rl-margin;
   }
 
   .uppy-size--xl & {
@@ -44,92 +45,92 @@
   }
 }
 
-  .uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-previewInnerWrap {
-    opacity: 0.2;
-  }
+.uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-previewInnerWrap {
+  opacity: 0.2;
+}
 
-  .uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-name {
-    opacity: 0.7;
+.uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-name {
+  opacity: 0.7;
+}
+
+.uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-preview::before {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zIndex-5;
+  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='35' height='39' viewBox='0 0 35 39'%3E%3Cpath d='M1.708 38.66c1.709 0 3.417-3.417 6.834-3.417 3.416 0 5.125 3.417 8.61 3.417 3.348 0 5.056-3.417 8.473-3.417 4.305 0 5.125 3.417 6.833 3.417.889 0 1.709-.889 1.709-1.709v-19.68C34.167-5.757 0-5.757 0 17.271v19.68c0 .82.888 1.709 1.708 1.709zm8.542-17.084a3.383 3.383 0 01-3.417-3.416 3.383 3.383 0 013.417-3.417 3.383 3.383 0 013.417 3.417 3.383 3.383 0 01-3.417 3.416zm13.667 0A3.383 3.383 0 0120.5 18.16a3.383 3.383 0 013.417-3.417 3.383 3.383 0 013.416 3.417 3.383 3.383 0 01-3.416 3.416z' fill='%2523000' fill-rule='nonzero'/%3E%3C/svg%3E");
+  background-repeat: no-repeat;
+  background-position: 50% 10px;
+  background-size: 25px;
+  opacity: 0.5;
+  content: '';
+
+  .uppy-size--md & {
+    background-position: 50% 50%;
+    background-size: 40px;
   }
+}
+
+.uppy-Dashboard-Item-preview {
+  // for the FileProgress.js icons
+  position: relative;
 
-  .uppy-Dashboard-Item.is-ghost .uppy-Dashboard-Item-preview:before {
-    content: '';
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='35' height='39' viewBox='0 0 35 39'%3E%3Cpath d='M1.708 38.66c1.709 0 3.417-3.417 6.834-3.417 3.416 0 5.125 3.417 8.61 3.417 3.348 0 5.056-3.417 8.473-3.417 4.305 0 5.125 3.417 6.833 3.417.889 0 1.709-.889 1.709-1.709v-19.68C34.167-5.757 0-5.757 0 17.271v19.68c0 .82.888 1.709 1.708 1.709zm8.542-17.084a3.383 3.383 0 01-3.417-3.416 3.383 3.383 0 013.417-3.417 3.383 3.383 0 013.417 3.417 3.383 3.383 0 01-3.417 3.416zm13.667 0A3.383 3.383 0 0120.5 18.16a3.383 3.383 0 013.417-3.417 3.383 3.383 0 013.416 3.417 3.383 3.383 0 01-3.416 3.416z' fill='%2523000' fill-rule='nonzero'/%3E%3C/svg%3E");
-    background-repeat: no-repeat;
-    background-position: 50% 10px;
-    background-size: 25px;
-    z-index: $zIndex-5;
-    opacity: 0.5;
-
-    .uppy-size--md & {
-      background-size: 40px;
-      background-position: 50% 50%;
-    }
+  // @media only mobile
+  .uppy-Dashboard:not(.uppy-size--md) & {
+    flex-grow: 0;
+    flex-shrink: 0;
+    width: 50px;
+    height: 50px;
+  }
+  // @media bigger than .md
+  .uppy-size--md & {
+    width: 100%;
+    height: 140px;
   }
 
-  .uppy-Dashboard-Item-preview {
-    // for the FileProgress.js icons
-    position: relative;
+  .uppy-size--lg & {
+    height: 120px;
+  }
 
-    // @media only mobile
-    .uppy-Dashboard:not(.uppy-size--md) & {
-      flex-shrink: 0;
-      flex-grow: 0;
-      width: 50px;
-      height: 50px;
-    }
-    // @media bigger than .md
-    .uppy-size--md & {
-      width: 100%;
-      height: 140px;
-    }
-    .uppy-size--lg & {
-      height: 120px;
-    }
-    .uppy-size--xl & {
-      height: 140px;
-    }
+  .uppy-size--xl & {
+    height: 140px;
   }
+}
+
+.uppy-Dashboard-Item-fileInfoAndButtons {
+  display: flex;
+  flex-grow: 1;
+  align-items: center;
+  justify-content: space-between;
+  padding-inline-end: 8px;
+  padding-inline-start: 12px;
 
-  .uppy-Dashboard-Item-fileInfoAndButtons {
-    flex-grow: 1;
-    padding-inline-end: 8px;
-    padding-inline-start: 12px;
-
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-
-    .uppy-size--md & {
-      align-items: flex-start;
-      width: 100%;
-      padding: 0;
-      padding-top: 9px;
-    }
+  .uppy-size--md & {
+    align-items: flex-start;
+    width: 100%;
+    padding: 0;
+    padding-top: 9px;
   }
+}
 
-    .uppy-Dashboard-Item-fileInfo {
-      flex-grow: 1;
-      flex-shrink: 1;
-    }
+.uppy-Dashboard-Item-fileInfo {
+  flex-grow: 1;
+  flex-shrink: 1;
+}
 
-    .uppy-Dashboard-Item-actionWrapper {
-      flex-grow: 0;
-      flex-shrink: 0;
-    }
-  // ...uppy-Dashboard-Item-fileInfoAndButtons|
+.uppy-Dashboard-Item-actionWrapper {
+  flex-grow: 0;
+  flex-shrink: 0;
+}
+// ...uppy-Dashboard-Item-fileInfoAndButtons|
 // ...uppy-Dashboard-Item|
 
-
 // CSS that depends on status of the file (could be logic in js instead?)
 .uppy-Dashboard-Item.is-inprogress,
 .uppy-Dashboard-Item.is-error {
-  .uppy-Dashboard-Item-previewInnerWrap:after {
+  .uppy-Dashboard-Item-previewInnerWrap::after {
     display: block;
   }
 }
@@ -141,25 +142,25 @@
 }
 
 .uppy-Dashboard-Item-errorDetails {
-  appearance: none;
-  line-height: 12px;
+  position: relative;
+  top: -1px;
+  display: inline-block;
   width: 12px;
   height: 12px;
-  display: inline-block;
-  vertical-align: middle;
   color: $white;
-  background-color: $gray-500;
-  border-radius: 50%;
-  position: relative;
-  top: -1px;
-  inset-inline-start: 6px;
-  font-size: 8px;
   font-weight: 600;
+  font-size: 8px;
+  line-height: 12px;
   text-align: center;
+  vertical-align: middle;
+  background-color: $gray-500;
+  border-radius: 50%;
   cursor: help;
+  appearance: none;
+  inset-inline-start: 6px;
 }
 
-  .uppy-Dashboard-Item-errorDetails:after {
-    line-height: 1.3;
-    word-wrap: break-word;
-  }
+.uppy-Dashboard-Item-errorDetails::after {
+  line-height: 1.3;
+  word-wrap: break-word;
+}

File diff suppressed because it is too large
+ 306 - 271
packages/@uppy/dashboard/src/style.scss


+ 16 - 16
packages/@uppy/drag-drop/src/style.scss

@@ -5,44 +5,44 @@
   display: flex;
   align-items: center;
   justify-content: center;
-  border-radius: 7px;
+  max-width: 100%;
+  font-family: $font-family-base;
   background-color: $white;
+  border-radius: 7px;
   cursor: pointer;
-  font-family: $font-family-base;
-  max-width: 100%;
-
-  &:focus {
-    outline: none;
-    box-shadow: 0 0 0 3px rgba($blue, 0.4);
-  }
 
   // firefox fix: removes thin dotted outline
   &::-moz-focus-inner {
     border: 0;
   }
+
+  &:focus {
+    outline: none;
+    box-shadow: 0 0 0 3px rgba($blue, 0.4);
+  }
 }
 
 .uppy-DragDrop-inner {
   margin: 0;
-  text-align: center;
   padding: 80px 20px;
   line-height: 1.4;
+  text-align: center;
 }
 
 .uppy-DragDrop-arrow {
   width: 60px;
   height: 60px;
-  fill: lighten($gray-500, 30%);
   margin-bottom: 17px;
+  fill: lighten($gray-500, 30%);
 }
 
-  .uppy-DragDrop--isDragDropSupported {
-    border: 2px dashed lighten($gray-500, 10%);
-  }
+.uppy-DragDrop--isDragDropSupported {
+  border: 2px dashed lighten($gray-500, 10%);
+}
 
 .uppy-DragDrop--isDraggingOver {
-  border: 2px dashed $blue;
   background: $gray-200;
+  border: 2px dashed $blue;
 
   .uppy-DragDrop-arrow {
     fill: $gray-500;
@@ -51,8 +51,8 @@
 
 .uppy-DragDrop-label {
   display: block;
-  font-size: 1.15em;
   margin-bottom: 5px;
+  font-size: 1.15em;
 }
 
 .uppy-DragDrop-browse {
@@ -61,6 +61,6 @@
 }
 
 .uppy-DragDrop-note {
-  font-size: 1em;
   color: lighten($gray-500, 10%);
+  font-size: 1em;
 }

+ 3 - 3
packages/@uppy/drop-target/src/style.scss

@@ -1,14 +1,14 @@
 @import '@uppy/core/src/_variables.scss';
 
-.uppy-is-drag-over:after {
-  content: '';
+.uppy-is-drag-over::after {
   position: fixed;
   top: 7px;
   right: 7px;
   bottom: 7px;
   left: 7px;
-  border: 5px dashed $gray-400;
   // border-radius: 5px;
   z-index: 10000;
   background-color: rgba($gray-200, 0.5);
+  border: 5px dashed $gray-400;
+  content: '';
 }

+ 3 - 4
packages/@uppy/file-input/src/style.scss

@@ -7,18 +7,17 @@
 
 .uppy-FileInput-btn {
   @include reset-button;
-
-  font-family: sans-serif;
-  font-size: 0.85em;
   // text-transform: uppercase;
   padding: 10px 15px;
   color: darken($blue, 20%);
+  font-size: 0.85em;
+  font-family: sans-serif;
   border: 1px solid darken($blue, 20%);
   border-radius: 8px;
   cursor: pointer;
 
   &:hover {
-    background-color: darken($blue, 20%);
     color: $white;
+    background-color: darken($blue, 20%);
   }
 }

+ 76 - 76
packages/@uppy/image-editor/src/cropper.scss

@@ -8,28 +8,28 @@
  * Date: 2019-10-04T04:33:44.164Z
  */
 
- .cropper-container {
-  direction: ltr;
+.cropper-container {
+  position: relative;
   font-size: 0;
   line-height: 0;
-  position: relative;
-  -ms-touch-action: none;
-  touch-action: none;
+  direction: ltr;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
+  -ms-touch-action: none;
+  touch-action: none;
 }
 
 .cropper-container img {
   display: block;
-  height: 100%;
-  image-orientation: 0deg;
-  max-height: none !important;
+  width: 100%;
+  min-width: 0 !important;
   max-width: none !important;
+  height: 100%;
   min-height: 0 !important;
-  min-width: 0 !important;
-  width: 100%;
+  max-height: none !important;
+  image-orientation: 0deg;
 }
 
 .cropper-wrap-box,
@@ -37,11 +37,11 @@
 .cropper-drag-box,
 .cropper-crop-box,
 .cropper-modal {
-  bottom: 0;
-  left: 0;
   position: absolute;
-  right: 0;
   top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
 }
 
 .cropper-wrap-box,
@@ -61,84 +61,84 @@
 
 .cropper-view-box {
   display: block;
+  width: 100%;
   height: 100%;
+  overflow: hidden;
   outline: 1px solid #39f;
   outline-color: rgba(51, 153, 255, 0.75);
-  overflow: hidden;
-  width: 100%;
 }
 
 .cropper-dashed {
-  border: 0 dashed #eee;
+  position: absolute;
   display: block;
+  border: 0 dashed #eee;
   opacity: 0.5;
-  position: absolute;
 }
 
 .cropper-dashed.dashed-h {
-  border-bottom-width: 1px;
-  border-top-width: 1px;
-  height: calc(100% / 3);
-  left: 0;
   top: calc(100% / 3);
+  left: 0;
   width: 100%;
+  height: calc(100% / 3);
+  border-top-width: 1px;
+  border-bottom-width: 1px;
 }
 
 .cropper-dashed.dashed-v {
-  border-left-width: 1px;
-  border-right-width: 1px;
-  height: 100%;
-  left: calc(100% / 3);
   top: 0;
+  left: calc(100% / 3);
   width: calc(100% / 3);
+  height: 100%;
+  border-right-width: 1px;
+  border-left-width: 1px;
 }
 
 .cropper-center {
-  display: block;
-  height: 0;
-  left: 50%;
-  opacity: 0.75;
   position: absolute;
   top: 50%;
+  left: 50%;
+  display: block;
   width: 0;
+  height: 0;
+  opacity: 0.75;
 }
 
 .cropper-center::before,
 .cropper-center::after {
+  position: absolute;
+  display: block;
   background-color: #eee;
   content: ' ';
-  display: block;
-  position: absolute;
 }
 
 .cropper-center::before {
-  height: 1px;
-  left: -3px;
   top: 0;
+  left: -3px;
   width: 7px;
+  height: 1px;
 }
 
 .cropper-center::after {
-  height: 7px;
-  left: 0;
   top: -3px;
+  left: 0;
   width: 1px;
+  height: 7px;
 }
 
 .cropper-face,
 .cropper-line,
 .cropper-point {
+  position: absolute;
   display: block;
+  width: 100%;
   height: 100%;
   opacity: 0.1;
-  position: absolute;
-  width: 100%;
 }
 
 .cropper-face {
-  background-color: #fff;
-  left: 0;
   top: 0;
+  left: 0;
+  background-color: #fff;
   opacity: 0;
 }
 
@@ -147,127 +147,127 @@
 }
 
 .cropper-line.line-e {
-  cursor: ew-resize;
-  right: -3px;
   top: 0;
+  right: -3px;
   width: 5px;
+  cursor: ew-resize;
 }
 
 .cropper-line.line-n {
-  cursor: ns-resize;
-  height: 5px;
-  left: 0;
   top: -3px;
+  left: 0;
+  height: 5px;
+  cursor: ns-resize;
 }
 
 .cropper-line.line-w {
-  cursor: ew-resize;
-  left: -3px;
   top: 0;
+  left: -3px;
   width: 5px;
+  cursor: ew-resize;
 }
 
 .cropper-line.line-s {
   bottom: -3px;
-  cursor: ns-resize;
-  height: 5px;
   left: 0;
+  height: 5px;
+  cursor: ns-resize;
 }
 
 .cropper-point {
-  background-color: #39f;
+  width: 5px;
   height: 5px;
+  background-color: #39f;
   opacity: 0.75;
-  width: 5px;
 }
 
 .cropper-point.point-e {
-  cursor: ew-resize;
-  margin-top: -3px;
-  right: -3px;
   top: 50%;
+  right: -3px;
+  margin-top: -3px;
+  cursor: ew-resize;
 }
 
 .cropper-point.point-n {
-  cursor: ns-resize;
+  top: -3px;
   left: 50%;
   margin-left: -3px;
-  top: -3px;
+  cursor: ns-resize;
 }
 
 .cropper-point.point-w {
-  cursor: ew-resize;
+  top: 50%;
   left: -3px;
   margin-top: -3px;
-  top: 50%;
+  cursor: ew-resize;
 }
 
 .cropper-point.point-s {
   bottom: -3px;
-  cursor: s-resize;
   left: 50%;
   margin-left: -3px;
+  cursor: s-resize;
 }
 
 .cropper-point.point-ne {
-  cursor: nesw-resize;
-  right: -3px;
   top: -3px;
+  right: -3px;
+  cursor: nesw-resize;
 }
 
 .cropper-point.point-nw {
-  cursor: nwse-resize;
-  left: -3px;
   top: -3px;
+  left: -3px;
+  cursor: nwse-resize;
 }
 
 .cropper-point.point-sw {
   bottom: -3px;
-  cursor: nesw-resize;
   left: -3px;
+  cursor: nesw-resize;
 }
 
 .cropper-point.point-se {
+  right: -3px;
   bottom: -3px;
-  cursor: nwse-resize;
+  width: 20px;
   height: 20px;
+  cursor: nwse-resize;
   opacity: 1;
-  right: -3px;
-  width: 20px;
 }
 
 @media (min-width: 768px) {
   .cropper-point.point-se {
-    height: 15px;
     width: 15px;
+    height: 15px;
   }
 }
 
 @media (min-width: 992px) {
   .cropper-point.point-se {
-    height: 10px;
     width: 10px;
+    height: 10px;
   }
 }
 
 @media (min-width: 1200px) {
   .cropper-point.point-se {
+    width: 5px;
     height: 5px;
     opacity: 0.75;
-    width: 5px;
   }
 }
 
 .cropper-point.point-se::before {
-  background-color: #39f;
+  position: absolute;
+  right: -50%;
   bottom: -50%;
-  content: ' ';
   display: block;
+  width: 200%;
   height: 200%;
+  background-color: #39f;
   opacity: 0;
-  position: absolute;
-  right: -50%;
-  width: 200%;
+  content: ' ';
 }
 
 .cropper-invisible {
@@ -279,10 +279,10 @@
 }
 
 .cropper-hide {
-  display: block;
-  height: 0;
   position: absolute;
+  display: block;
   width: 0;
+  height: 0;
 }
 
 .cropper-hidden {

+ 21 - 13
packages/@uppy/image-editor/src/inputrange.scss

@@ -14,7 +14,7 @@ $thumb-height: 18px;
 $thumb-width: 18px;
 $thumb-shadow-size: 0;
 $thumb-shadow-blur: 4px;
-$thumb-shadow-color: rgba(0, 0, 0, .2);
+$thumb-shadow-color: rgba(0, 0, 0, 0.2);
 $thumb-border-width: 0;
 $thumb-border-color: transparent;
 
@@ -36,28 +36,29 @@ $ie-bottom-track-color: darken($track-color, $contrast);
 }
 
 @mixin track {
-  cursor: default;
-  height: $track-height;
-  transition: all .2s ease;
   width: $track-width;
+  height: $track-height;
+  cursor: default;
+  transition: all 0.2s ease;
 }
 
 @mixin thumb {
   @include shadow($thumb-shadow-size, $thumb-shadow-blur, $thumb-shadow-color);
+
+  box-sizing: border-box;
+  width: $thumb-width;
+  height: $thumb-height;
   background: $thumb-color;
   border: $thumb-border-width solid $thumb-border-color;
   border-radius: $thumb-radius;
-  box-sizing: border-box;
   cursor: default;
-  height: $thumb-height;
-  width: $thumb-width;
 }
 
 [type='range'] {
-  -webkit-appearance: none;
-  background: transparent;
-  margin: math.div($thumb-height, 2) 0;
   width: $track-width;
+  margin: math.div($thumb-height, 2) 0;
+  background: transparent;
+  -webkit-appearance: none;
 
   &::-moz-focus-outer {
     border: 0;
@@ -82,6 +83,7 @@ $ie-bottom-track-color: darken($track-color, $contrast);
   &::-webkit-slider-runnable-track {
     @include track;
     @include shadow($track-shadow-size, $track-shadow-blur, $track-shadow-color);
+
     background: $track-color;
     border: $track-border-width solid $track-border-color;
     border-radius: $track-radius;
@@ -89,17 +91,19 @@ $ie-bottom-track-color: darken($track-color, $contrast);
 
   &::-webkit-slider-thumb {
     @include thumb;
-    -webkit-appearance: none;
+
     margin-top: (math.div((-$track-border-width * 2 + $track-height), 2) - math.div($thumb-height, 2));
+    -webkit-appearance: none;
   }
 
   &::-moz-range-track {
     @include shadow($track-shadow-size, $track-shadow-blur, $track-shadow-color);
     @include track;
+
+    height: $track-height;
     background: $track-color;
     border: $track-border-width solid $track-border-color;
     border-radius: $track-radius;
-    height: $track-height;
   }
 
   &::-moz-range-thumb {
@@ -108,14 +112,16 @@ $ie-bottom-track-color: darken($track-color, $contrast);
 
   &::-ms-track {
     @include track;
+
+    color: transparent;
     background: transparent;
     border-color: transparent;
     border-width: math.div($thumb-height, 2) 0;
-    color: transparent;
   }
 
   &::-ms-fill-lower {
     @include shadow($track-shadow-size, $track-shadow-blur, $track-shadow-color);
+
     background: $ie-bottom-track-color;
     border: $track-border-width solid $track-border-color;
     border-radius: ($track-radius * 2);
@@ -123,6 +129,7 @@ $ie-bottom-track-color: darken($track-color, $contrast);
 
   &::-ms-fill-upper {
     @include shadow($track-shadow-size, $track-shadow-blur, $track-shadow-color);
+
     background: $track-color;
     border: $track-border-width solid $track-border-color;
     border-radius: ($track-radius * 2);
@@ -130,6 +137,7 @@ $ie-bottom-track-color: darken($track-color, $contrast);
 
   &::-ms-thumb {
     @include thumb;
+
     margin-top: math.div($track-height, 4);
   }
 

+ 11 - 11
packages/@uppy/image-editor/src/style.scss

@@ -14,22 +14,22 @@
   flex-grow: 1;
 }
 
-  .uppy-ImageCropper-image {
-    display: block;
-    max-height: 400px;
-  }
+.uppy-ImageCropper-image {
+  display: block;
+  max-height: 400px;
+}
 
 .uppy-ImageCropper-controls {
   position: absolute;
   bottom: 15px;
   left: 50%;
-  transform: translateX(-50%);
-  background-color: rgba($black, 0.6);
-  color: $white;
   display: flex;
-  justify-content: center;
   align-items: center;
+  justify-content: center;
   padding-top: 38px;
+  color: $white;
+  background-color: rgba($black, 0.6);
+  transform: translateX(-50%);
 
   @media screen and (min-width: 768px) {
     padding-top: 0;
@@ -58,17 +58,17 @@
   }
 
   &:focus {
-    outline: none;
     background-color: rgba($blue, 0.8);
+    outline: none;
   }
 }
 
 .uppy-ImageCropper-rangeWrapper {
   position: absolute !important;
-  height: 38px;
   top: 0;
   right: 10px;
   left: 10px;
+  height: 38px;
 
   @media screen and (min-width: 768px) {
     position: static !important;
@@ -78,9 +78,9 @@
 
 .uppy-ImageCropper-range {
   @media screen and (min-width: 768px) {
+    width: 180px;
     margin-right: 15px;
     margin-left: 5px;
-    width: 180px;
   }
 }
 

+ 24 - 24
packages/@uppy/informer/src/style.scss

@@ -3,42 +3,42 @@
 
 .uppy-Informer {
   position: absolute;
+  right: 0;
   bottom: 60px;
   left: 0;
-  right: 0;
-  text-align: center;
   z-index: $zIndex-5;
-   
+  text-align: center;
+
   span > div {
     margin-bottom: 6px;
   }
 }
 
 .uppy-Informer-animated {
-  opacity: 0;
+  z-index: $zIndex-negative;
   transform: translateY(350%);
+  opacity: 0;
   transition: all 300ms ease-in;
-  z-index: $zIndex-negative;
 }
 
 .uppy-Informer p {
   display: inline-block;
+  max-width: 90%;
   margin: 0;
   padding: 0;
+  padding: 6px 15px;
+  color: $white;
+  font-weight: 400;
   font-size: 12px;
   line-height: 1.4;
-  font-weight: 400;
-  padding: 6px 15px;
   background-color: $gray-600;
-  color: $white;
   border-radius: 18px;
-  max-width: 90%;
 
   .uppy-size--md & {
-    font-size: 14px;
-    line-height: 1.3;
     max-width: 500px;
     padding: 10px 20px;
+    font-size: 14px;
+    line-height: 1.3;
   }
 
   [data-uppy-theme="dark"] & {
@@ -47,26 +47,26 @@
 }
 
 .uppy-Informer p span {
-  line-height: 12px;
+  position: relative;
+  top: -1px;
+  display: inline-block;
   width: 13px;
   height: 13px;
-  display: inline-block;
-  vertical-align: middle;
   color: $gray-700;
+  font-size: 10px;
+  line-height: 12px;
+  vertical-align: middle;
   background-color: $white;
   border-radius: 50%;
-  position: relative;
-  top: -1px;
   inset-inline-start: 3px;
-  font-size: 10px;
   margin-inline-start: -1px;
 }
 
-  .uppy-Informer p span:hover {
-    cursor: help;
-  }
+.uppy-Informer p span:hover {
+  cursor: help;
+}
 
-  .uppy-Informer p span:after {
-    line-height: 1.3;
-    word-wrap: break-word;
-  }
+.uppy-Informer p span::after {
+  line-height: 1.3;
+  word-wrap: break-word;
+}

+ 10 - 8
packages/@uppy/progress-bar/src/style.scss

@@ -6,10 +6,10 @@
   position: absolute;
   top: 0;
   left: 0;
+  z-index: 10000;
   width: 100%;
   height: 3px;
-  z-index: 10000;
-  transition: height .2s;
+  transition: height 0.2s;
 }
 
 .uppy-ProgressBar[aria-hidden=true] {
@@ -18,21 +18,23 @@
 }
 
 .uppy-ProgressBar-inner {
+  width: 0;
+  height: 100%;
+
   /* no important */
   background-color: $blue;
   box-shadow: 0 0 10px rgba($blue, 0.7);
-  height: 100%;
-  width: 0;
   transition: width 0.4s ease;
 }
 
 .uppy-ProgressBar-percentage {
-  /* no important */
-  display: none;
-  text-align: center;
   position: absolute;
   top: 50%;
   left: 50%;
-  transform: translate(-50%, -50%);
+
+  /* no important */
+  display: none;
   color: $white;
+  text-align: center;
+  transform: translate(-50%, -50%);
 }

+ 118 - 117
packages/@uppy/provider-views/src/style.scss

@@ -1,6 +1,5 @@
 @import '@uppy/core/src/_utils.scss';
 @import '@uppy/core/src/_variables.scss';
-
 @import './style/uppy-ProviderBrowser-viewType--grid';
 @import './style/uppy-ProviderBrowser-viewType--list';
 @import './style/uppy-ProviderBrowserItem-checkbox';
@@ -8,9 +7,9 @@
 
 .uppy-DashboardContent-panelBody {
   display: flex;
+  flex: 1;
   align-items: center;
   justify-content: center;
-  flex: 1;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;
@@ -22,10 +21,10 @@
 .uppy-Provider-loading,
 .uppy-Provider-empty {
   display: flex;
+  flex: 1;
+  flex-flow: column wrap;
   align-items: center;
   justify-content: center;
-  flex-flow: column wrap;
-  flex: 1;
   color: $gray-500;
 }
 
@@ -40,14 +39,14 @@
 }
 
 .uppy-Provider-authTitle {
-  font-size: 17px;
-  line-height: 1.4;
-  font-weight: 400;
+  max-width: 500px;
   margin-bottom: 30px;
   padding: 0 15px;
-  max-width: 500px;
-  text-align: center;
   color: $gray-600;
+  font-weight: 400;
+  font-size: 17px;
+  line-height: 1.4;
+  text-align: center;
 
   .uppy-size--md & {
     font-size: 20px;
@@ -60,9 +59,9 @@
 
 .uppy-Provider-breadcrumbs {
   flex: 1;
+  margin-bottom: 10px;
   color: $gray-700;
   font-size: 12px;
-  margin-bottom: 10px;
   text-align: start;
 
   .uppy-size--md & {
@@ -73,79 +72,82 @@
     color: $gray-200;
   }
 }
-  .uppy-Provider-breadcrumbsIcon {
-    display: inline-block;
-    color: $gray-700;
-    vertical-align: middle;
-    margin-inline-end: 4px;
-    line-height: 1;
+
+.uppy-Provider-breadcrumbsIcon {
+  display: inline-block;
+  color: $gray-700;
+  line-height: 1;
+  vertical-align: middle;
+  margin-inline-end: 4px;
+}
+
+.uppy-Provider-breadcrumbsIcon svg {
+  width: 13px;
+  height: 13px;
+  fill: $gray-700;
+}
+
+.uppy-Provider-breadcrumbs button {
+  @include highlight-focus;
+
+  display: inline-block;
+  // for focus
+  padding: 4px;
+  line-height: inherit;
+  border-radius: 3px;
+
+  &:not(:last-of-type) {
+    text-decoration: underline;
+  }
+
+  &:last-of-type {
+    color: $gray-800;
+    font-weight: 500;
+    cursor: normal;
+    pointer-events: none;
+  }
+
+  &:hover {
+    cursor: pointer;
   }
-    .uppy-Provider-breadcrumbsIcon svg {
-      width: 13px;
-      height: 13px;
-      fill: $gray-700;
-    }
-
-  .uppy-Provider-breadcrumbs button {
-    @include highlight-focus;
-    display: inline-block;
-    line-height: inherit;
-    // for focus
-    padding: 4px;
-    border-radius: 3px;
-
-    &:not(:last-of-type) {
-      text-decoration: underline;
-    }
-
-    &:last-of-type {
-      color: $gray-800;
-      font-weight: 500;
-      pointer-events: none;
-      cursor: normal;
-    }
-
-    &:hover {
-      cursor: pointer;
-    }
-
-    [data-uppy-theme="dark"] & {
-      color: $gray-200;
-    }
+
+  [data-uppy-theme="dark"] & {
+    color: $gray-200;
   }
+}
 // ...uppy-Provider-breadcrumbs|
 
 .uppy-ProviderBrowser {
   display: flex;
-  flex-direction: column;
   flex: 1;
-  font-size: 14px;
-  font-weight: 400;
+  flex-direction: column;
   height: 100%;
+  font-weight: 400;
+  font-size: 14px;
 }
 
 .uppy-ProviderBrowser-user {
   margin: 0 8px 0 0;
-  font-weight: 500;
   color: $gray-800;
+  font-weight: 500;
 
   [data-uppy-theme="dark"] & {
     color: $gray-200;
   }
 }
 
-  .uppy-ProviderBrowser-user:after {
-    content: '\00B7';
-    position: relative;
-    inset-inline-start: 4px;
-    color: $gray-500;
-    font-weight: normal;
-  }
+.uppy-ProviderBrowser-user::after {
+  position: relative;
+  color: $gray-500;
+  font-weight: normal;
+  content: '\00B7';
+  inset-inline-start: 4px;
+}
 
 .uppy-ProviderBrowser-header {
+  position: relative;
   z-index: $zIndex-2;
   border-bottom: 1px solid $gray-200;
-  position: relative;
 
   [data-uppy-theme="dark"] & {
     border-bottom: 1px solid $gray-800;
@@ -153,12 +155,12 @@
 }
 
 .uppy-ProviderBrowser-headerBar {
-  padding: 7px 15px;
-  background-color: $gray-50;
   z-index: $zIndex-2;
+  padding: 7px 15px;
   color: $gray-600;
-  line-height: 1.4;
   font-size: 12px;
+  line-height: 1.4;
+  background-color: $gray-50;
 
   .uppy-size--md & {
     display: flex;
@@ -170,27 +172,27 @@
   }
 }
 
-  .uppy-ProviderBrowser-headerBar--simple {
-    text-align: center;
-    display: block;
-    justify-content: center;
-  }
+.uppy-ProviderBrowser-headerBar--simple {
+  display: block;
+  justify-content: center;
+  text-align: center;
+}
 
-  .uppy-ProviderBrowser-headerBar--simple .uppy-Provider-breadcrumbsWrap {
-    flex: none;
-    display: inline-block;
-    vertical-align: middle;
-  }
+.uppy-ProviderBrowser-headerBar--simple .uppy-Provider-breadcrumbsWrap {
+  display: inline-block;
+  flex: none;
+  vertical-align: middle;
+}
 
 .uppy-ProviderBrowser-search {
-  width: 100%;
-  background-color: $white;
   position: relative;
+  display: flex;
+  align-items: center;
+  width: 100%;
   height: 30px;
   margin-top: 10px;
   margin-bottom: 5px;
-  display: flex;
-  align-items: center;
+  background-color: $white;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;
@@ -199,61 +201,61 @@
 
 .uppy-ProviderBrowser-searchIcon {
   position: absolute;
+  z-index: $zIndex-3;
   width: 12px;
   height: 12px;
-  inset-inline-start: 16px;
-  z-index: $zIndex-3;
   color: $gray-400;
+  inset-inline-start: 16px;
 }
 
 .uppy-ProviderBrowser-searchInput {
+  z-index: $zIndex-2;
   width: 100%;
   height: 30px;
-  background-color: transparent;
-  outline: 0;
-  font-family: $font-family-base;
+  margin: 0 8px;
   font-size: 12px;
+  font-family: $font-family-base;
   line-height: 1.4;
+  background-color: transparent;
   border: 0;
-  margin: 0 8px;
-  padding-inline-start: 27px;
-  z-index: $zIndex-2;
   border-radius: 4px;
+  outline: 0;
+  padding-inline-start: 27px;
 
   [data-uppy-theme="dark"] & {
-    background-color: $gray-900;
     color: $gray-200;
+    background-color: $gray-900;
   }
 }
 
-  .uppy-ProviderBrowser-searchInput:focus {
-    outline: 0;
-    background-color: $gray-100;
+.uppy-ProviderBrowser-searchInput:focus {
+  background-color: $gray-100;
+  outline: 0;
 
-    [data-uppy-theme="dark"] & {
-      background-color: $gray-800;
-    }
+  [data-uppy-theme="dark"] & {
+    background-color: $gray-800;
   }
+}
 
 .uppy-ProviderBrowser-searchClose {
   position: absolute;
+  top: 4px;
+  z-index: $zIndex-3;
   width: 22px;
   height: 22px;
   padding: 6px;
-  inset-inline-end: 12px;
-  top: 4px;
-  z-index: $zIndex-3;
   color: $gray-500;
   cursor: pointer;
+  inset-inline-end: 12px;
 
   &:hover {
     color: $gray-600;
   }
 }
 
-  .uppy-ProviderBrowser-searchClose svg {
-    vertical-align: text-top;
-  }
+.uppy-ProviderBrowser-searchClose svg {
+  vertical-align: text-top;
+}
 
 .uppy-ProviderBrowser-searchInput::placeholder {
   color: $gray-500;
@@ -262,12 +264,12 @@
 
 .uppy-ProviderBrowser-userLogout {
   @include highlight-focus;
-  cursor: pointer;
-  line-height: inherit;
-  color: $blue;
   // for focus
   padding: 4px;
+  color: $blue;
+  line-height: inherit;
   border-radius: 3px;
+  cursor: pointer;
 
   &:hover {
     text-decoration: underline;
@@ -279,29 +281,28 @@
 }
 
 .uppy-ProviderBrowser-body {
-  flex: 1;
   position: relative;
+  flex: 1;
 }
 
 .uppy-ProviderBrowser-list {
-  flex: 1;
-  position: relative;
-  display: block;
-  width: 100%;
-  height: 100%;
-  background-color: $white;
-  border-spacing: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-  -webkit-overflow-scrolling: touch;
   position: absolute;
   top: 0;
+  right: 0;
   bottom: 0;
   left: 0;
-  right: 0;
-  list-style: none;
+  display: block;
+  flex: 1;
+  width: 100%;
+  height: 100%;
   margin: 0;
   padding: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  list-style: none;
+  background-color: $white;
+  border-spacing: 0;
+  -webkit-overflow-scrolling: touch;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;
@@ -313,18 +314,18 @@
 }
 
 .uppy-ProviderBrowserItem-inner {
-  cursor: pointer;
   font-weight: 500;
   font-size: 13px;
+  cursor: pointer;
 }
 
 .uppy-ProviderBrowser-footer {
   display: flex;
   align-items: center;
-  background-color: $white;
   height: 65px;
-  border-top: 1px solid $gray-200;
   padding: 0 15px;
+  background-color: $white;
+  border-top: 1px solid $gray-200;
 
   & button {
     margin-inline-end: 8px;

+ 25 - 18
packages/@uppy/provider-views/src/style/uppy-ProviderBrowser-viewType--grid.scss

@@ -6,18 +6,19 @@
     display: flex;
     flex-direction: row;
     flex-wrap: wrap;
-    justify-content: space-between;
     align-items: flex-start;
+    justify-content: space-between;
     padding: 6px;
+
     &::after {
-      content: '';
       flex: auto;
+      content: '';
     }
   }
 
   li.uppy-ProviderBrowserItem {
-    width: 50%;
     position: relative;
+    width: 50%;
     margin: 0;
 
     .uppy-size--md & {
@@ -29,14 +30,15 @@
     }
 
     &::before {
-      content: '';
-      padding-top: 100%;
       display: block;
+      padding-top: 100%;
+      content: '';
     }
   }
 
   li.uppy-ProviderBrowserItem--selected {
-    img, svg {
+    img,
+    svg {
       opacity: 0.85;
     }
   }
@@ -53,10 +55,11 @@
         background-color: rgba($gray-200, 0.2);
       }
     }
+
     svg {
-      fill: rgba($black, 0.7);
       width: 30%;
       height: 30%;
+      fill: rgba($black, 0.7);
 
       [data-uppy-theme="dark"] & {
         fill: rgba($white, 0.8);
@@ -66,16 +69,16 @@
 
   // button with a large picture
   .uppy-ProviderBrowserItem-inner {
-    border-radius: 4px;
-    overflow: hidden;
     position: absolute;
     top: 7px;
-    left: 7px;
     right: 7px;
     bottom: 7px;
-    text-align: center;
+    left: 7px;
     width: calc(100% - 14px);
     height: calc(100% - 14px);
+    overflow: hidden;
+    text-align: center;
+    border-radius: 4px;
 
     &:focus {
       outline: none;
@@ -97,17 +100,21 @@
   // Checkbox
   .uppy-ProviderBrowserItem-checkbox {
     position: absolute;
-    top: 16px; right: 16px;
-    width: 26px; height: 26px;
+    top: 16px;
+    right: 16px;
+    z-index: $zIndex-3;
+    width: 26px;
+    height: 26px;
     background-color: $blue;
     border-radius: 50%;
-    z-index: $zIndex-3;
     opacity: 0;
 
     // Checkmark icon
-    &:after {
-      width: 12px; height: 7px;
-      inset-inline-start: 7px; top: 8px;
+    &::after {
+      top: 8px;
+      width: 12px;
+      height: 7px;
+      inset-inline-start: 7px;
     }
   }
   // Checked: show the checkmark
@@ -117,7 +124,7 @@
 
   .uppy-ProviderBrowserItem-checkbox--grid:focus + label {
     @include clear-focus();
+
     box-shadow: $focus-shadow;
   }
 }
-

+ 24 - 16
packages/@uppy/provider-views/src/style/uppy-ProviderBrowser-viewType--list.scss

@@ -12,8 +12,8 @@
   li.uppy-ProviderBrowserItem {
     display: flex;
     align-items: center;
-    padding: 7px 15px;
     margin: 0;
+    padding: 7px 15px;
 
     [data-uppy-theme="dark"] & {
       color: $gray-200;
@@ -26,24 +26,27 @@
 
   // Checkbox
   .uppy-ProviderBrowserItem-checkbox {
-    margin-inline-end: 15px;
-    height: 17px; width: 17px;
-    border-radius: 3px;
+    width: 17px;
+    height: 17px;
     background-color: $white;
     border: 1px solid $gray-300;
+    border-radius: 3px;
+    margin-inline-end: 15px;
 
     // Focus: show blue outline
     &:focus {
       border: 1px solid $blue;
-      box-shadow: 0 0 0 3px rgba($blue, 0.25);
       outline: none;
+      box-shadow: 0 0 0 3px rgba($blue, 0.25);
     }
 
     // Checkmark icon
     &::after {
+      top: 4px;
+      width: 9px;
+      height: 5px;
       opacity: 0;
-      height: 5px; width: 9px;
-      inset-inline-start: 3px; top: 4px;
+      inset-inline-start: 3px;
     }
 
     [data-uppy-theme="dark"] &:focus {
@@ -55,6 +58,7 @@
   .uppy-ProviderBrowserItem-checkbox--is-checked {
     background-color: $blue;
     border-color: $blue;
+
     &::after {
       opacity: 1;
     }
@@ -63,33 +67,37 @@
   // Either a <label/> for a file,
   // or a <button/> we can click on for a folder
   .uppy-ProviderBrowserItem-inner {
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    overflow: hidden;
     display: flex;
     align-items: center;
 
     // For better outline
     padding: 2px;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+
     &:focus {
-      outline: none;
       text-decoration: underline;
+      outline: none;
     }
-    img, svg {
-      margin-inline-end: 8px;
+
+    img,
+    svg {
       max-width: 20px;
       max-height: 20px;
+      margin-inline-end: 8px;
     }
+
     span {
-      text-overflow: ellipsis;
-      white-space: nowrap;
       overflow: hidden;
       // focus underline is otherwise invisible
       line-height: 1.2;
+      white-space: nowrap;
+      text-overflow: ellipsis;
     }
   }
 
-  .uppy-ProviderBrowserItem--disabled .uppy-ProviderBrowserItem-inner  {
+  .uppy-ProviderBrowserItem--disabled .uppy-ProviderBrowserItem-inner {
     cursor: default;
   }
 

+ 4 - 4
packages/@uppy/provider-views/src/style/uppy-ProviderBrowserItem-checkbox.scss

@@ -1,7 +1,7 @@
 .uppy-ProviderBrowserItem-checkbox {
   position: relative;
-  cursor: pointer;
   flex-shrink: 0;
+  cursor: pointer;
 
   &:disabled {
     cursor: default;
@@ -9,14 +9,14 @@
 
   // Checkmark icon
   &::after {
-    content: '';
     position: absolute;
-    cursor: pointer;
+    border-bottom: 2px solid $gray-200;
     // Not using border-inline-start here: this is part of a CSS trick to get
     // a check mark icon that only works in one direction
     border-left: 2px solid $gray-200;
-    border-bottom: 2px solid $gray-200;
     transform: rotate(-45deg);
+    cursor: pointer;
+    content: '';
   }
 
   &:disabled::after {

+ 4 - 4
packages/@uppy/provider-views/src/style/uppy-SearchProvider-input.scss

@@ -1,12 +1,12 @@
 
 .uppy-SearchProvider {
-  width: 100%;
-  height: 100%;
   display: flex;
+  flex: 1;
   flex-direction: column;
-  justify-content: center;
   align-items: center;
-  flex: 1;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;

+ 31 - 30
packages/@uppy/screen-capture/src/style.scss

@@ -2,22 +2,22 @@
 @import '@uppy/core/src/_variables.scss';
 
 .uppy-ScreenCapture-container {
-  width: 100%;
-  height: 100%;
   display: flex;
-  justify-content: center;
-  align-items: center;
   flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
 }
 
 .uppy-ScreenCapture-videoContainer {
-  width: 100%;
+  position: relative;
   flex: 1;
   flex-grow: 1;
+  width: 100%;
   overflow: hidden;
-  background-color: $gray-800;
   text-align: center;
-  position: relative;
+  background-color: $gray-800;
 
   .uppy-size--md & {
     max-width: 100%;
@@ -25,26 +25,26 @@
 }
 
 .uppy-ScreenCapture-video {
-  max-width: 100%;
-  max-height: 100%;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
+  max-width: 100%;
+  max-height: 100%;
   margin: auto;
   outline: 0;
 }
 
 .uppy-ScreenCapture-buttonContainer {
-  width: 100%;
-  height: 75px;
-  border-top: 1px solid $gray-200;
   display: flex;
   align-items: center;
   justify-content: center;
+  width: 100%;
+  height: 75px;
   padding: 0 20px;
   background-color: $white;
+  border-top: 1px solid $gray-200;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;
@@ -54,10 +54,11 @@
 
 .uppy-ScreenCapture-button {
   @include blue-border-focus;
+
   width: 45px;
   height: 45px;
-  border-radius: 50%;
   color: $white;
+  border-radius: 50%;
   cursor: pointer;
   transition: all 0.3s;
 
@@ -76,19 +77,19 @@
 }
 
 .uppy-ScreenCapture-button svg {
+  display: inline-block;
   width: 30px;
-  height: 30px;
   max-width: 100%;
+  height: 30px;
   max-height: 100%;
-  display: inline-block;
-  vertical-align: text-top;
   overflow: hidden;
+  vertical-align: text-top;
   fill: currentColor;
 }
 
 .uppy-ScreenCapture-button--submit {
-  background-color: $blue;
   margin-left: 12px;
+  background-color: $blue;
 
   &:hover {
     background-color: darken($blue, 5%);
@@ -99,29 +100,29 @@
     cursor: default;
   }
 
-  &:disabled:hover { 
+  &:disabled:hover {
     background-color: $gray-200;
   }
 }
 
 .uppy-ScreenCapture-title {
-  font-size: 22px;
-  line-height: 1.35;
-  font-weight: 400;
+  max-width: 500px;
   margin: 0;
   margin-bottom: 5px;
   padding: 0 15px;
-  max-width: 500px;
-  text-align: center;
   color: $gray-800;
+  font-weight: 400;
+  font-size: 22px;
+  line-height: 1.35;
+  text-align: center;
 }
 
 .uppy-ScreenCapture-icon--stream {
   position: absolute;
-  right: 0;
   top: 0;
+  right: 0;
+  z-index: 1;
   margin: 1rem;
-  z-index:1;
 
   svg {
     fill: $gray-500;
@@ -132,11 +133,11 @@
   animation: uppy-ScreenCapture-icon--blink 1s cubic-bezier(0.47, 0, 0.75, 0.72) infinite;
 }
 
-  @keyframes uppy-ScreenCapture-icon--blink {
-    0% { fill: $blue;} 
-    50% { fill: $gray-500; }
-    100% { fill: $blue; }
-  }
+@keyframes uppy-ScreenCapture-icon--blink {
+  0% { fill: $blue; }
+  50% { fill: $gray-500; }
+  100% { fill: $blue; }
+}
 
 .uppy-ScreenCapture-button--video {
   color: $white;

+ 181 - 176
packages/@uppy/status-bar/src/style.scss

@@ -3,16 +3,16 @@
 @import '@uppy/utils/src/microtip.scss';
 
 .uppy-StatusBar {
-  display: flex;
   position: relative;
+  z-index: $zIndex-2;
+  display: flex;
   height: 40px;
-  line-height: 40px;
-  font-size: 12px;
-  font-weight: 400;
   color: $white;
+  font-weight: 400;
+  font-size: 12px;
+  line-height: 40px;
   background-color: $white;
-  z-index: $zIndex-2;
-  transition: height .2s;
+  transition: height 0.2s;
 
   .uppy-size--md & {
     height: 46px;
@@ -23,25 +23,25 @@
   }
 }
 
-  .uppy-StatusBar:before {
-    content: '';
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-    bottom: 0;
-    width: 100%;
-    height: 2px;
-    background-color: $gray-200;
-
-    [data-uppy-theme="dark"] & {
-      background-color: $gray-600;
-    }
+.uppy-StatusBar::before {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 2px;
+  background-color: $gray-200;
+  content: '';
+
+  [data-uppy-theme="dark"] & {
+    background-color: $gray-600;
   }
+}
 
 .uppy-StatusBar[aria-hidden=true] {
-  overflow-y: hidden;
   height: 0;
+  overflow-y: hidden;
 }
 
 .uppy-StatusBar.is-complete .uppy-StatusBar-progress {
@@ -61,8 +61,8 @@
 }
 
 .uppy-StatusBar:not([aria-hidden=true]).is-waiting {
-  background-color: $white;
   height: 65px;
+  background-color: $white;
   border-top: 1px solid $gray-200;
 
   [data-uppy-theme="dark"] & {
@@ -72,44 +72,45 @@
 }
 
 .uppy-StatusBar-progress {
-  background-color: $blue;
-  height: 2px;
   position: absolute;
   z-index: $zIndex-2;
-  transition: background-color, width .3s ease-out;
+  height: 2px;
+  background-color: $blue;
+  transition: background-color, width 0.3s ease-out;
 
   &.is-indeterminate {
     $stripe-color: rgba(0, 0, 0, 0.3);
-    background-size: 64px 64px;
+
     background-image: linear-gradient(45deg, $stripe-color 25%, transparent 25%, transparent 50%, $stripe-color 50%, $stripe-color 75%, transparent 75%, transparent);
+    background-size: 64px 64px;
     animation: uppy-StatusBar-ProgressStripes 1s linear infinite;
   }
 }
 
-  @keyframes uppy-StatusBar-ProgressStripes {
-    from { background-position: 0 0; }
-    to { background-position: 64px 0; }
-  }
+@keyframes uppy-StatusBar-ProgressStripes {
+  from { background-position: 0 0; }
+  to { background-position: 64px 0; }
+}
 
-  .uppy-StatusBar.is-preprocessing .uppy-StatusBar-progress,
-  .uppy-StatusBar.is-postprocessing .uppy-StatusBar-progress {
-    background-color: $orange;
-  }
+.uppy-StatusBar.is-preprocessing .uppy-StatusBar-progress,
+.uppy-StatusBar.is-postprocessing .uppy-StatusBar-progress {
+  background-color: $orange;
+}
 
 .uppy-StatusBar.is-waiting .uppy-StatusBar-progress {
   display: none;
 }
 
 .uppy-StatusBar-content {
-  display: flex;
-  align-items: center;
   position: relative;
   z-index: $zIndex-3;
-  padding-inline-start: 10px;
+  display: flex;
+  align-items: center;
+  height: 100%;
+  color: $gray-800;
   white-space: nowrap;
   text-overflow: ellipsis;
-  color: $gray-800;
-  height: 100%;
+  padding-inline-start: 10px;
 
   .uppy-size--md & {
     padding-inline-start: 15px;
@@ -121,11 +122,11 @@
 }
 
 .uppy-StatusBar-status {
-  line-height: 1.4;
-  font-weight: normal;
   display: flex;
   flex-direction: column;
   justify-content: center;
+  font-weight: normal;
+  line-height: 1.4;
   padding-inline-end: 0.3em;
 }
 
@@ -139,11 +140,11 @@
 }
 
 .uppy-StatusBar-statusSecondary {
+  display: inline-block;
   margin-top: 1px;
+  color: $gray-600;
   font-size: 11px;
   line-height: 1.2;
-  display: inline-block;
-  color: $gray-600;
   white-space: nowrap;
 
   [data-uppy-theme="dark"] & {
@@ -151,17 +152,16 @@
   }
 }
 
-  .uppy-StatusBar-statusSecondaryHint {
-    display: inline-block;
-    vertical-align: middle;
-    margin-inline-end: 5px;
-    line-height: 1;
+.uppy-StatusBar-statusSecondaryHint {
+  display: inline-block;
+  line-height: 1;
+  vertical-align: middle;
+  margin-inline-end: 5px;
 
-    .uppy-size--md & {
-      margin-inline-end: 8px;
-    }
+  .uppy-size--md & {
+    margin-inline-end: 8px;
   }
-
+}
 
 .uppy-StatusBar-statusIndicator {
   position: relative;
@@ -175,19 +175,19 @@
 }
 
 .uppy-StatusBar-actions {
-  display: flex;
-  align-items: center;
   position: absolute;
   top: 0;
   bottom: 0;
-  inset-inline-end: 10px;
   z-index: $zIndex-4;
+  display: flex;
+  align-items: center;
+  inset-inline-end: 10px;
 }
 
 .uppy-StatusBar.is-waiting .uppy-StatusBar-actions {
+  position: static;
   width: 100%;
   height: 100%;
-  position: static;
   padding: 0 15px;
   background-color: $gray-50;
 
@@ -197,12 +197,12 @@
 }
 
 .uppy-StatusBar:not([aria-hidden="true"]).is-waiting.has-ghosts {
-  height: 90px;
   flex-direction: column;
+  height: 90px;
 
   .uppy-size--md & {
-    height: 65px;
     flex-direction: row;
+    height: 65px;
   }
 
   .uppy-StatusBar-actions {
@@ -218,9 +218,10 @@
 
 .uppy-StatusBar-actionCircleBtn {
   @include blue-border-focus;
+
+  margin: 3px;
   line-height: 1;
   cursor: pointer;
-  margin: 3px;
   opacity: 0.9;
 
   [data-uppy-theme="dark"] & {
@@ -230,138 +231,142 @@
   &:hover {
     opacity: 1;
   }
+
   &:focus {
     border-radius: 50%;
   }
 }
 
-  .uppy-StatusBar-actionCircleBtn svg {
-    vertical-align: bottom;
-  }
+.uppy-StatusBar-actionCircleBtn svg {
+  vertical-align: bottom;
+}
 
 .uppy-StatusBar-actionBtn {
   display: inline-block;
-  vertical-align: middle;
+  color: $blue;
   font-size: 10px;
   line-height: inherit;
-  color: $blue;
+  vertical-align: middle;
 
   .uppy-size--md & {
     font-size: 11px;
   }
 }
 
-  .uppy-StatusBar-actionBtn--disabled {
-    opacity: 0.4;
+.uppy-StatusBar-actionBtn--disabled {
+  opacity: 0.4;
 
-    [data-uppy-theme="dark"] & {
-      opacity: 0.7;
-    }
+  [data-uppy-theme="dark"] & {
+    opacity: 0.7;
   }
+}
 
-  .uppy-StatusBar-actionBtn--retry {
-    @include blue-border-focus();
-    height: 16px;
-    border-radius: 8px;
-    margin-inline-end: 6px;
-    background-color: $pomegranate;
-    line-height: 1;
-    color: #fff;
-    padding: 1px 6px 3px 18px;
-    position: relative;
+.uppy-StatusBar-actionBtn--retry {
+  @include blue-border-focus();
 
-    [data-uppy-theme="dark"] & {
-      @include blue-border-focus--dark;
-    }
-
-    &:hover {
-      background-color: darken($pomegranate, 8%);
-    }
+  position: relative;
+  height: 16px;
+  padding: 1px 6px 3px 18px;
+  color: #fff;
+  line-height: 1;
+  background-color: $pomegranate;
+  border-radius: 8px;
+  margin-inline-end: 6px;
 
-    svg {
-      position: absolute;
-      top: 3px;
-      inset-inline-start: 6px;
-    }
+  [data-uppy-theme="dark"] & {
+    @include blue-border-focus--dark;
   }
 
-  .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload {
-    font-size: 14px;
-    width: 100%;
-    padding: 15px 10px;
-    color: $white;
-    background-color: $green;
-    line-height: 1;
-
-    &:hover {
-      background-color: darken($green, 5%);
-    }
-
-    [data-uppy-theme="dark"] & {
-      background-color: $darkgreen;
-    }
-
-    [data-uppy-theme="dark"] &:hover {
-      background-color: darken($darkgreen, 5%);
-    }
+  &:hover {
+    background-color: darken($pomegranate, 8%);
   }
 
-  .uppy-size--md .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload {
-    padding: 13px 22px;
-    width: auto;
+  svg {
+    position: absolute;
+    top: 3px;
+    inset-inline-start: 6px;
   }
+}
 
-  .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload.uppy-StatusBar-actionBtn--disabled:hover {
-    cursor: not-allowed;
-    background-color: $green;
+.uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload {
+  width: 100%;
+  padding: 15px 10px;
+  color: $white;
+  font-size: 14px;
+  line-height: 1;
+  background-color: $green;
+
+  &:hover {
+    background-color: darken($green, 5%);
   }
 
-  [data-uppy-theme="dark"] .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload.uppy-StatusBar-actionBtn--disabled:hover {
+  [data-uppy-theme="dark"] & {
     background-color: $darkgreen;
   }
 
-  .uppy-StatusBar:not(.is-waiting) .uppy-StatusBar-actionBtn--upload {
-    background-color: transparent;
-    color: $blue;
+  [data-uppy-theme="dark"] &:hover {
+    background-color: darken($darkgreen, 5%);
   }
+}
 
-  .uppy-StatusBar-actionBtn--uploadNewlyAdded {
-    // for focus
-    @include blue-border-focus;
-    padding-inline-end: 3px;
-    padding-inline-start: 3px;
-    padding-bottom: 1px;
-    border-radius: 3px;
+.uppy-size--md .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload {
+  width: auto;
+  padding: 13px 22px;
+}
 
-    [data-uppy-theme="dark"] & {
-      @include blue-border-focus--dark;
-    }
-  }
+.uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload.uppy-StatusBar-actionBtn--disabled:hover {
+  background-color: $green;
+  cursor: not-allowed;
+}
 
-  .uppy-StatusBar-actionBtn--done {
-    @include highlight-focus;
-    line-height: 1;
-    border-radius: 3px;
-    padding: 7px 8px;
+[data-uppy-theme="dark"] .uppy-StatusBar.is-waiting .uppy-StatusBar-actionBtn--upload.uppy-StatusBar-actionBtn--disabled:hover {
+  background-color: $darkgreen;
+}
 
-    [data-uppy-theme="dark"] & {
-      color: $highlight--dark;
-    }
+.uppy-StatusBar:not(.is-waiting) .uppy-StatusBar-actionBtn--upload {
+  color: $blue;
+  background-color: transparent;
+}
+
+.uppy-StatusBar-actionBtn--uploadNewlyAdded {
+  // for focus
+  @include blue-border-focus;
+
+  padding-inline-end: 3px;
+  padding-inline-start: 3px;
+  padding-bottom: 1px;
+  border-radius: 3px;
+
+  [data-uppy-theme="dark"] & {
+    @include blue-border-focus--dark;
   }
+}
 
-  .uppy-size--md .uppy-StatusBar-actionBtn--done {
-    font-size: 14px;
+.uppy-StatusBar-actionBtn--done {
+  @include highlight-focus;
+
+  padding: 7px 8px;
+  line-height: 1;
+  border-radius: 3px;
+
+  [data-uppy-theme="dark"] & {
+    color: $highlight--dark;
   }
+}
+
+.uppy-size--md .uppy-StatusBar-actionBtn--done {
+  font-size: 14px;
+}
 
 .uppy-StatusBar-serviceMsg {
+  padding-left: 10px;
+  color: $black;
   font-size: 11px;
   line-height: 1.1;
-  color: $black;
-  padding-left: 10px;
-  
+
   .uppy-size--md & {
-    font-size: 14px;
     padding-left: 15px;
+    font-size: 14px;
   }
 
   [data-uppy-theme="dark"] & {
@@ -370,64 +375,64 @@
 }
 
 .uppy-StatusBar-serviceMsg-ghostsIcon {
-  opacity: 0.5;
-  vertical-align: text-bottom;
   position: relative;
   top: 2px;
   left: 6px;
   width: 10px;
+  vertical-align: text-bottom;
+  opacity: 0.5;
 
   .uppy-size--md & {
-    width: 15px;
-    left: 10px;
     top: 1px;
+    left: 10px;
+    width: 15px;
   }
 }
 
 .uppy-StatusBar-details {
-  appearance: none;
-  line-height: 12px;
+  position: relative;
+  top: 0;
+  display: inline-block;
   width: 13px;
   height: 13px;
-  display: inline-block;
-  vertical-align: middle;
   color: $white;
-  background-color: $gray-500;
-  border-radius: 50%;
-  position: relative;
-  top: 0;
-  inset-inline-start: 2px;
-  font-size: 10px;
   font-weight: 600;
+  font-size: 10px;
+  line-height: 12px;
   text-align: center;
+  vertical-align: middle;
+  background-color: $gray-500;
+  border-radius: 50%;
   cursor: help;
+  appearance: none;
+  inset-inline-start: 2px;
 }
 
-  .uppy-StatusBar-details:after {
-    line-height: 1.3;
-    word-wrap: break-word;
-  }
+.uppy-StatusBar-details::after {
+  line-height: 1.3;
+  word-wrap: break-word;
+}
 
 .uppy-StatusBar-spinner {
   animation-name: uppy-StatusBar-spinnerAnimation;
   animation-duration: 1s;
-  animation-iteration-count: infinite;
   animation-timing-function: linear;
-  margin-inline-end: 10px;
+  animation-iteration-count: infinite;
   fill: $blue;
+  margin-inline-end: 10px;
 }
 
-  .uppy-StatusBar.is-preprocessing .uppy-StatusBar-spinner,
-  .uppy-StatusBar.is-postprocessing .uppy-StatusBar-spinner {
-    fill: $orange;
-  }
+.uppy-StatusBar.is-preprocessing .uppy-StatusBar-spinner,
+.uppy-StatusBar.is-postprocessing .uppy-StatusBar-spinner {
+  fill: $orange;
+}
 
+@keyframes uppy-StatusBar-spinnerAnimation {
+  0% {
+    transform: rotate(0deg);
+  }
 
-  @keyframes uppy-StatusBar-spinnerAnimation {
-    0% {
-      transform: rotate(0deg);
-    }
-    100% {
-      transform: rotate(360deg);
-    }
+  100% {
+    transform: rotate(360deg);
   }
+}

+ 4 - 4
packages/@uppy/url/src/style.scss

@@ -2,13 +2,13 @@
 @import '@uppy/core/src/_variables.scss';
 
 .uppy-Url {
-  width: 100%;
-  height: 100%;
   display: flex;
+  flex: 1;
   flex-direction: column;
-  justify-content: center;
   align-items: center;
-  flex: 1;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
 
   [data-uppy-theme="dark"] & {
     background-color: $gray-900;

+ 54 - 111
packages/@uppy/utils/src/microtip.scss

@@ -11,292 +11,235 @@
   1. Base Styles
   2. Direction Modifiers
   3. Position Modifiers
---------------------------------------------------------------------*/
-
+-------------------------------------------------------------------- */
 
 /* ------------------------------------------------
   [1] Base Styles
--------------------------------------------------*/
+------------------------------------------------- */
 
 .uppy-Root [aria-label][role~="tooltip"] {
-  /* no important */
   position: relative;
 }
 
 .uppy-Root [aria-label][role~="tooltip"]::before,
 .uppy-Root [aria-label][role~="tooltip"]::after {
-  /* no important */
+  position: absolute;
+  z-index: 10;
+  box-sizing: border-box;
   transform: translate3d(0, 0, 0);
+  transform-origin: top;
   -webkit-backface-visibility: hidden;
   backface-visibility: hidden;
-  will-change: transform;
   opacity: 0;
+  transition: all var(--microtip-transition-duration, 0.18s) var(--microtip-transition-easing, ease-in-out) var(--microtip-transition-delay, 0s);
   pointer-events: none;
-  transition: all var(--microtip-transition-duration, .18s) var(--microtip-transition-easing, ease-in-out) var(--microtip-transition-delay, 0s);
-  position: absolute;
-  box-sizing: border-box;
-  z-index: 10;
-  transform-origin: top;
+  will-change: transform;
 }
 
 .uppy-Root [aria-label][role~="tooltip"]::before {
-  /* no important */
   background-size: 100% auto !important;
   content: "";
 }
 
 .uppy-Root [aria-label][role~="tooltip"]::after {
-  /* no important */
-  background: rgba(17, 17, 17, .9);
-  border-radius: 4px;
-  color: #ffffff;
-  content: attr(aria-label);
-  font-size: var(--microtip-font-size, 13px);
+  box-sizing: content-box;
+  padding: 0.5em 1em;
+  color: #fff;
   font-weight: var(--microtip-font-weight, normal);
-  text-transform: var(--microtip-text-transform, none);
-  padding: .5em 1em;
+  font-size: var(--microtip-font-size, 13px);
   white-space: nowrap;
-  box-sizing: content-box;
+  text-transform: var(--microtip-text-transform, none);
+  background: rgba(17, 17, 17, 0.9);
+  border-radius: 4px;
+  content: attr(aria-label);
 }
 
 .uppy-Root [aria-label][role~="tooltip"]:hover::before,
 .uppy-Root [aria-label][role~="tooltip"]:hover::after,
 .uppy-Root [aria-label][role~="tooltip"]:focus::before,
 .uppy-Root [aria-label][role~="tooltip"]:focus::after {
-  /* no important */
   opacity: 1;
   pointer-events: auto;
 }
 
-
-
 /* ------------------------------------------------
   [2] Position Modifiers
--------------------------------------------------*/
+------------------------------------------------- */
 
 .uppy-Root [role~="tooltip"][data-microtip-position|="top"]::before {
-  /* no important */
-  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
-  height: 6px;
+  bottom: 100%;
+  left: 50%;
   width: 18px;
+  height: 6px;
   margin-bottom: 5px;
+  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
+  transform: translate3d(-50%, 0, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position|="top"]::after {
-  /* no important */
-  margin-bottom: 11px;
-}
-
-.uppy-Root [role~="tooltip"][data-microtip-position|="top"]::before {
-  /* no important */
-  transform: translate3d(-50%, 0, 0);
   bottom: 100%;
   left: 50%;
+  margin-bottom: 11px;
+  transform: translate3d(-50%, 0, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position|="top"]:hover::before {
-  /* no important */
   transform: translate3d(-50%, -5px, 0);
 }
 
-.uppy-Root [role~="tooltip"][data-microtip-position|="top"]::after {
-  /* no important */
-  transform: translate3d(-50%, 0, 0);
-  bottom: 100%;
-  left: 50%;
-}
-
 .uppy-Root [role~="tooltip"][data-microtip-position="top"]:hover::after {
-  /* no important */
   transform: translate3d(-50%, -5px, 0);
 }
 
 /* ------------------------------------------------
   [2.1] Top Left
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="top-left"]::after {
-  /* no important */
-  transform: translate3d(calc(-100% + 16px), 0, 0);
   bottom: 100%;
+  transform: translate3d(calc(-100% + 16px), 0, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="top-left"]:hover::after {
-  /* no important */
   transform: translate3d(calc(-100% + 16px), -5px, 0);
 }
 
-
 /* ------------------------------------------------
   [2.2] Top Right
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="top-right"]::after {
-  /* no important */
-  transform: translate3d(calc(0% + -16px), 0, 0);
   bottom: 100%;
+  transform: translate3d(calc(0% + -16px), 0, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="top-right"]:hover::after {
-  /* no important */
   transform: translate3d(calc(0% + -16px), -5px, 0);
 }
 
-
 /* ------------------------------------------------
   [2.3] Bottom
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position|="bottom"]::before {
-  /* no important */
-  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28180%2018%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
-  height: 6px;
+  top: 100%;
+  bottom: auto;
+  left: 50%;
   width: 18px;
+  height: 6px;
   margin-top: 5px;
   margin-bottom: 0;
+  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28180%2018%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
+  transform: translate3d(-50%, -10px, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position|="bottom"]::after {
-  /* no important */
+  top: 100%;
+  left: 50%;
   margin-top: 11px;
-}
-
-.uppy-Root [role~="tooltip"][data-microtip-position|="bottom"]::before {
-  /* no important */
   transform: translate3d(-50%, -10px, 0);
-  bottom: auto;
-  left: 50%;
-  top: 100%;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position|="bottom"]:hover::before {
-  /* no important */
   transform: translate3d(-50%, 0, 0);
 }
 
-.uppy-Root [role~="tooltip"][data-microtip-position|="bottom"]::after {
-  /* no important */
-  transform: translate3d(-50%, -10px, 0);
-  top: 100%;
-  left: 50%;
-}
-
 .uppy-Root [role~="tooltip"][data-microtip-position="bottom"]:hover::after {
-  /* no important */
   transform: translate3d(-50%, 0, 0);
 }
 
-
 /* ------------------------------------------------
   [2.4] Bottom Left
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="bottom-left"]::after {
-  /* no important */
-  transform: translate3d(calc(-100% + 16px), -10px, 0);
   top: 100%;
+  transform: translate3d(calc(-100% + 16px), -10px, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="bottom-left"]:hover::after {
-  /* no important */
   transform: translate3d(calc(-100% + 16px), 0, 0);
 }
 
-
 /* ------------------------------------------------
   [2.5] Bottom Right
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="bottom-right"]::after {
-  /* no important */
-  transform: translate3d(calc(0% + -16px), -10px, 0);
   top: 100%;
+  transform: translate3d(calc(0% + -16px), -10px, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="bottom-right"]:hover::after {
-  /* no important */
   transform: translate3d(calc(0% + -16px), 0, 0);
 }
 
-
 /* ------------------------------------------------
   [2.6] Left
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]::before,
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]::after {
-  /* no important */
+  top: 50%;
+  right: 100%;
   bottom: auto;
   left: auto;
-  right: 100%;
-  top: 50%;
   transform: translate3d(10px, -50%, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]::before {
-  /* no important */
-  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28-90%2018%2018%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
-  height: 18px;
   width: 6px;
+  height: 18px;
   margin-right: 5px;
   margin-bottom: 0;
+  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28-90%2018%2018%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]::after {
-  /* no important */
   margin-right: 11px;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]:hover::before,
 .uppy-Root [role~="tooltip"][data-microtip-position="left"]:hover::after {
-  /* no important */
   transform: translate3d(0, -50%, 0);
 }
 
-
 /* ------------------------------------------------
   [2.7] Right
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]::before,
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]::after {
-  /* no important */
+  top: 50%;
   bottom: auto;
   left: 100%;
-  top: 50%;
   transform: translate3d(-10px, -50%, 0);
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]::before {
-  /* no important */
-  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%2890%206%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
-  height: 18px;
   width: 6px;
+  height: 18px;
   margin-bottom: 0;
   margin-left: 5px;
+  background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%2890%206%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]::after {
-  /* no important */
   margin-left: 11px;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]:hover::before,
 .uppy-Root [role~="tooltip"][data-microtip-position="right"]:hover::after {
-  /* no important */
   transform: translate3d(0, -50%, 0);
 }
 
 /* ------------------------------------------------
   [3] Size
--------------------------------------------------*/
+------------------------------------------------- */
 .uppy-Root [role~="tooltip"][data-microtip-size="small"]::after {
-  /* no important */
-  white-space: initial;
   width: 80px;
+  white-space: initial;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-size="medium"]::after {
-  /* no important */
-  white-space: initial;
   width: 150px;
+  white-space: initial;
 }
 
 .uppy-Root [role~="tooltip"][data-microtip-size="large"]::after {
-  /* no important */
-  white-space: initial;
   width: 260px;
+  white-space: initial;
 }

+ 44 - 43
packages/@uppy/webcam/src/style.scss

@@ -2,32 +2,32 @@
 @import '@uppy/core/src/_variables.scss';
 
 .uppy-Webcam-container {
-  width: 100%;
-  height: 100%;
   display: flex;
-  justify-content: center;
-  align-items: center;
   flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
 }
 
 .uppy-Webcam-videoContainer {
-  width: 100%;
+  position: relative;
   flex: 1;
   flex-grow: 1;
+  width: 100%;
   overflow: hidden;
-  background-color: $gray-800;
   text-align: center;
-  position: relative;
+  background-color: $gray-800;
 }
 
 .uppy-Webcam-video {
-  max-width: 100%;
-  max-height: 100%;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
+  max-width: 100%;
+  max-height: 100%;
   margin: auto;
 }
 
@@ -36,18 +36,18 @@
 }
 
 .uppy-Webcam-footer {
-  width: 100%;
-  min-height: 75px;
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
+  width: 100%;
+  min-height: 75px;
   padding: 20px 20px;
 }
 
 .uppy-Webcam-videoSourceContainer {
-  width: 100%;
   flex-grow: 0;
+  width: 100%;
 }
 
 .uppy-size--lg .uppy-Webcam-videoSourceContainer {
@@ -57,30 +57,30 @@
 
 .uppy-Webcam-videoSource-select {
   display: block;
-  font-size: 16px;
-  line-height: 1.2;
-  padding: .4em 1em .3em .4em;
   width: 100%;
   max-width: 90%;
-  border: 1px solid $gray-600;
-  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23757575%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
-  background-repeat: no-repeat;
-  background-position: right .4em top 50%, 0 0;
-  background-size: .65em auto, 100%;
   margin: auto;
   margin-bottom: 10px;
+  padding: 0.4em 1em 0.3em 0.4em;
+  font-size: 16px;
+  line-height: 1.2;
   white-space: nowrap;
   text-overflow: ellipsis;
+  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23757575%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
+  background-repeat: no-repeat;
+  background-position: right 0.4em top 50%, 0 0;
+  background-size: 0.65em auto, 100%;
+  border: 1px solid $gray-600;
 
   .uppy-size--lg & {
-    font-size: 14px;
     margin-bottom: 0;
+    font-size: 14px;
   }
 }
 
-  .uppy-Webcam-videoSource-select::-ms-expand {
-    display: none;
-  }
+.uppy-Webcam-videoSource-select::-ms-expand {
+  display: none;
+}
 
 .uppy-Webcam-buttonContainer {
   width: 50%;
@@ -94,8 +94,8 @@
 }
 
 .uppy-Webcam-recordingLength {
-  width: 25%;
   flex-grow: 0;
+  width: 25%;
   color: $gray-600;
   font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
   text-align: right;
@@ -107,11 +107,12 @@
 
 .uppy-Webcam-button {
   @include blue-border-focus;
+
   width: 45px;
   height: 45px;
-  border-radius: 50%;
-  background-color: $red;
   color: $white;
+  background-color: $red;
+  border-radius: 50%;
   cursor: pointer;
   transition: all 0.3s;
 
@@ -125,8 +126,8 @@
 }
 
 .uppy-Webcam-button--submit {
-  background-color: $blue;
   margin: 0 12px;
+  background-color: $blue;
 
   &:hover {
     background-color: darken($blue, 5%);
@@ -134,13 +135,13 @@
 }
 
 .uppy-Webcam-button svg {
+  display: inline-block;
   width: 30px;
-  height: 30px;
   max-width: 100%;
+  height: 30px;
   max-height: 100%;
-  display: inline-block;
-  vertical-align: text-top;
   overflow: hidden;
+  vertical-align: text-top;
   fill: currentColor;
 }
 
@@ -154,41 +155,41 @@
 }
 
 .uppy-Webcam-permissons {
-  padding: 15px;
   display: flex;
+  flex: 1;
+  flex-flow: column wrap;
   align-items: center;
   justify-content: center;
-  flex-flow: column wrap;
   height: 100%;
-  flex: 1;
+  padding: 15px;
 }
 
 .uppy-Webcam-permissons p {
   max-width: 450px;
+  margin: 0;
+  color: $gray-500;
   line-height: 1.3;
-  text-align: center;
   line-height: 1.45;
-  color: $gray-500;
-  margin: 0;
+  text-align: center;
 }
 
 .uppy-Webcam-permissonsIcon svg {
   width: 100px;
   height: 75px;
-  color: $gray-400;
   margin-bottom: 30px;
+  color: $gray-400;
 }
 
 .uppy-Webcam-title {
-  font-size: 22px;
-  line-height: 1.35;
-  font-weight: 400;
+  max-width: 500px;
   margin: 0;
   margin-bottom: 5px;
   padding: 0 15px;
-  max-width: 500px;
-  text-align: center;
   color: $gray-800;
+  font-weight: 400;
+  font-size: 22px;
+  line-height: 1.35;
+  text-align: center;
 
   [data-uppy-theme="dark"] & {
     color: $gray-200;

Some files were not shown because too many files changed in this diff