liquid_feedback_frontend
diff style/mdl/spinner/_spinner.scss @ 1309:32cc544d5a5b
Cumulative patch for upcoming frontend version 4
| author | bsw/jbe | 
|---|---|
| date | Sun Jul 15 14:07:29 2018 +0200 (2018-07-15) | 
| parents | |
| children | 
   line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/style/mdl/spinner/_spinner.scss Sun Jul 15 14:07:29 2018 +0200 1.3 @@ -0,0 +1,248 @@ 1.4 +/** 1.5 + * Copyright 2015 Google Inc. All Rights Reserved. 1.6 + * 1.7 + * Licensed under the Apache License, Version 2.0 (the "License"); 1.8 + * you may not use this file except in compliance with the License. 1.9 + * You may obtain a copy of the License at 1.10 + * 1.11 + * http://www.apache.org/licenses/LICENSE-2.0 1.12 + * 1.13 + * Unless required by applicable law or agreed to in writing, software 1.14 + * distributed under the License is distributed on an "AS IS" BASIS, 1.15 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1.16 + * See the License for the specific language governing permissions and 1.17 + * limitations under the License. 1.18 + */ 1.19 + 1.20 +@import "../variables"; 1.21 + 1.22 + 1.23 +.mdl-spinner { 1.24 + display: inline-block; 1.25 + position: relative; 1.26 + width: $spinner-size; 1.27 + height: $spinner-size; 1.28 + 1.29 + &:not(.is-upgraded).is-active:after { 1.30 + content: "Loading..."; 1.31 + } 1.32 + 1.33 + &.is-upgraded.is-active { 1.34 + animation: mdl-spinner__container-rotate $spinner-duration linear infinite; 1.35 + } 1.36 +} 1.37 + 1.38 +@keyframes mdl-spinner__container-rotate { 1.39 + to { transform: rotate(360deg) } 1.40 +} 1.41 + 1.42 +.mdl-spinner__layer { 1.43 + position: absolute; 1.44 + width: 100%; 1.45 + height: 100%; 1.46 + opacity: 0; 1.47 +} 1.48 + 1.49 +.mdl-spinner__layer-1 { 1.50 + border-color: $spinner-color-1; 1.51 + 1.52 + .mdl-spinner--single-color & { 1.53 + border-color: $spinner-single-color; 1.54 + } 1.55 + 1.56 + .mdl-spinner.is-active & { 1.57 + animation: 1.58 + mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time) 1.59 + $animation-curve-fast-out-slow-in infinite both, 1.60 + mdl-spinner__layer-1-fade-in-out (4 * $spinner-arc-time) 1.61 + $animation-curve-fast-out-slow-in infinite both; 1.62 + } 1.63 +} 1.64 + 1.65 +.mdl-spinner__layer-2 { 1.66 + border-color: $spinner-color-2; 1.67 + 1.68 + .mdl-spinner--single-color & { 1.69 + border-color: $spinner-single-color; 1.70 + } 1.71 + 1.72 + .mdl-spinner.is-active & { 1.73 + animation: 1.74 + mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time) 1.75 + $animation-curve-fast-out-slow-in infinite both, 1.76 + mdl-spinner__layer-2-fade-in-out (4 * $spinner-arc-time) 1.77 + $animation-curve-fast-out-slow-in infinite both; 1.78 + } 1.79 +} 1.80 + 1.81 +.mdl-spinner__layer-3 { 1.82 + border-color: $spinner-color-3; 1.83 + 1.84 + .mdl-spinner--single-color & { 1.85 + border-color: $spinner-single-color; 1.86 + } 1.87 + 1.88 + .mdl-spinner.is-active & { 1.89 + animation: 1.90 + mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time) 1.91 + $animation-curve-fast-out-slow-in infinite both, 1.92 + mdl-spinner__layer-3-fade-in-out (4 * $spinner-arc-time) 1.93 + $animation-curve-fast-out-slow-in infinite both; 1.94 + } 1.95 +} 1.96 + 1.97 +.mdl-spinner__layer-4 { 1.98 + border-color: $spinner-color-4; 1.99 + 1.100 + .mdl-spinner--single-color & { 1.101 + border-color: $spinner-single-color; 1.102 + } 1.103 + 1.104 + .mdl-spinner.is-active & { 1.105 + animation: 1.106 + mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time) 1.107 + $animation-curve-fast-out-slow-in infinite both, 1.108 + mdl-spinner__layer-4-fade-in-out (4 * $spinner-arc-time) 1.109 + $animation-curve-fast-out-slow-in infinite both; 1.110 + } 1.111 +} 1.112 + 1.113 +@keyframes mdl-spinner__fill-unfill-rotate { 1.114 + 12.5% { transform: rotate(0.5 * $spinner-arc-size); } 1.115 + 25% { transform: rotate($spinner-arc-size); } 1.116 + 37.5% { transform: rotate(1.5 * $spinner-arc-size); } 1.117 + 50% { transform: rotate(2 * $spinner-arc-size); } 1.118 + 62.5% { transform: rotate(2.5 * $spinner-arc-size); } 1.119 + 75% { transform: rotate(3 * $spinner-arc-size); } 1.120 + 87.5% { transform: rotate(3.5 * $spinner-arc-size); } 1.121 + to { transform: rotate(4 * $spinner-arc-size); } 1.122 +} 1.123 + 1.124 +/** 1.125 +* HACK: Even though the intention is to have the current .mdl-spinner__layer-N 1.126 +* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome 1.127 +* to do proper subpixel rendering for the elements being animated. This is 1.128 +* especially visible in Chrome 39 on Ubuntu 14.04. See: 1.129 +* 1.130 +* - https://github.com/Polymer/paper-spinner/issues/9 1.131 +* - https://code.google.com/p/chromium/issues/detail?id=436255 1.132 +*/ 1.133 +@keyframes mdl-spinner__layer-1-fade-in-out { 1.134 + from { opacity: 0.99; } 1.135 + 25% { opacity: 0.99; } 1.136 + 26% { opacity: 0; } 1.137 + 89% { opacity: 0; } 1.138 + 90% { opacity: 0.99; } 1.139 + 100% { opacity: 0.99; } 1.140 +} 1.141 + 1.142 +@keyframes mdl-spinner__layer-2-fade-in-out { 1.143 + from { opacity: 0; } 1.144 + 15% { opacity: 0; } 1.145 + 25% { opacity: 0.99; } 1.146 + 50% { opacity: 0.99; } 1.147 + 51% { opacity: 0; } 1.148 +} 1.149 + 1.150 +@keyframes mdl-spinner__layer-3-fade-in-out { 1.151 + from { opacity: 0; } 1.152 + 40% { opacity: 0; } 1.153 + 50% { opacity: 0.99; } 1.154 + 75% { opacity: 0.99; } 1.155 + 76% { opacity: 0; } 1.156 +} 1.157 + 1.158 +@keyframes mdl-spinner__layer-4-fade-in-out { 1.159 + from { opacity: 0; } 1.160 + 65% { opacity: 0; } 1.161 + 75% { opacity: 0.99; } 1.162 + 90% { opacity: 0.99; } 1.163 + 100% { opacity: 0; } 1.164 +} 1.165 + 1.166 +/** 1.167 +* Patch the gap that appear between the two adjacent 1.168 +* div.mdl-spinner__circle-clipper while the spinner is rotating 1.169 +* (appears on Chrome 38, Safari 7.1, and IE 11). 1.170 +* 1.171 +* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's 1.172 +* opacity is 0.99, but still does on Safari and IE. 1.173 +*/ 1.174 +.mdl-spinner__gap-patch { 1.175 + position: absolute; 1.176 + box-sizing: border-box; 1.177 + top: 0; 1.178 + left: 45%; 1.179 + width: 10%; 1.180 + height: 100%; 1.181 + overflow: hidden; 1.182 + border-color: inherit; 1.183 + 1.184 + & .mdl-spinner__circle { 1.185 + width: 1000%; 1.186 + left: -450%; 1.187 + } 1.188 +} 1.189 + 1.190 +.mdl-spinner__circle-clipper { 1.191 + display: inline-block; 1.192 + position: relative; 1.193 + width: 50%; 1.194 + height: 100%; 1.195 + overflow: hidden; 1.196 + border-color: inherit; 1.197 + 1.198 + & .mdl-spinner__circle { 1.199 + width: 200%; 1.200 + } 1.201 +} 1.202 + 1.203 +.mdl-spinner__circle { 1.204 + box-sizing: border-box; 1.205 + height: 100%; 1.206 + border-width: $spinner-stroke-width; 1.207 + border-style: solid; 1.208 + border-color: inherit; 1.209 + border-bottom-color: transparent !important; 1.210 + border-radius: 50%; 1.211 + animation: none; 1.212 + 1.213 + position: absolute; 1.214 + top: 0; 1.215 + right: 0; 1.216 + bottom: 0; 1.217 + left: 0; 1.218 + 1.219 + .mdl-spinner__left & { 1.220 + border-right-color: transparent !important; 1.221 + transform: rotate(129deg); 1.222 + 1.223 + .mdl-spinner.is-active & { 1.224 + animation: mdl-spinner__left-spin $spinner-arc-time 1.225 + $animation-curve-fast-out-slow-in infinite both; 1.226 + } 1.227 + } 1.228 + 1.229 + .mdl-spinner__right & { 1.230 + left: -100%; 1.231 + border-left-color: transparent !important; 1.232 + transform: rotate(-129deg); 1.233 + 1.234 + .mdl-spinner.is-active & { 1.235 + animation: mdl-spinner__right-spin $spinner-arc-time 1.236 + $animation-curve-fast-out-slow-in infinite both; 1.237 + } 1.238 + } 1.239 +} 1.240 + 1.241 +@keyframes mdl-spinner__left-spin { 1.242 + from { transform: rotate(130deg); } 1.243 + 50% { transform: rotate(-5deg); } 1.244 + to { transform: rotate(130deg); } 1.245 +} 1.246 + 1.247 +@keyframes mdl-spinner__right-spin { 1.248 + from { transform: rotate(-130deg); } 1.249 + 50% { transform: rotate(5deg); } 1.250 + to { transform: rotate(-130deg); } 1.251 +}