UNPKG

modo-mobile

Version:

A mobile UI toolkit, based on React

989 lines (988 loc) 26.1 kB
.m-icon { display: inline-block; font-style: normal; vertical-align: -0.125em; text-align: center; text-transform: none; line-height: 1; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .m-icon svg { display: block; } .m-icon:before { display: block; } .m-icon .m-icon-icon { display: block; } .m-icon-spin:before { display: inline-block; -webkit-animation: loadingCircle 1s infinite linear; animation: loadingCircle 1s infinite linear; } .m-icon-spin { display: inline-block; -webkit-animation: loadingCircle 1s infinite linear; animation: loadingCircle 1s infinite linear; } @-webkit-keyframes loadingCircle { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes loadingCircle { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } .fade-enter, .fade-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .fade-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .fade-enter.fade-enter-active, .fade-appear.fade-appear-active { -webkit-animation-name: mFadeIn; animation-name: mFadeIn; -webkit-animation-play-state: running; animation-play-state: running; } .fade-leave.fade-leave-active { -webkit-animation-name: mFadeOut; animation-name: mFadeOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .fade-enter, .fade-appear { opacity: 0; -webkit-animation-timing-function: linear; animation-timing-function: linear; } .fade-leave { -webkit-animation-timing-function: linear; animation-timing-function: linear; } @-webkit-keyframes mFadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes mFadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @-webkit-keyframes mFadeOut { 0% { opacity: 1; } 100% { opacity: 0; } } @keyframes mFadeOut { 0% { opacity: 1; } 100% { opacity: 0; } } .slide-up-enter, .slide-up-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-up-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-up-enter.slide-up-enter-active, .slide-up-appear.slide-up-appear-active { -webkit-animation-name: mSlideUpIn; animation-name: mSlideUpIn; -webkit-animation-play-state: running; animation-play-state: running; } .slide-up-leave.slide-up-leave-active { -webkit-animation-name: mSlideUpOut; animation-name: mSlideUpOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .slide-up-enter, .slide-up-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); } .slide-up-leave { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); } .slide-down-enter, .slide-down-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-down-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-down-enter.slide-down-enter-active, .slide-down-appear.slide-down-appear-active { -webkit-animation-name: mSlideDownIn; animation-name: mSlideDownIn; -webkit-animation-play-state: running; animation-play-state: running; } .slide-down-leave.slide-down-leave-active { -webkit-animation-name: mSlideDownOut; animation-name: mSlideDownOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .slide-down-enter, .slide-down-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); } .slide-down-leave { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); } .slide-left-enter, .slide-left-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-left-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-left-enter.slide-left-enter-active, .slide-left-appear.slide-left-appear-active { -webkit-animation-name: mSlideLeftIn; animation-name: mSlideLeftIn; -webkit-animation-play-state: running; animation-play-state: running; } .slide-left-leave.slide-left-leave-active { -webkit-animation-name: mSlideLeftOut; animation-name: mSlideLeftOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .slide-left-enter, .slide-left-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); } .slide-left-leave { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); } .slide-right-enter, .slide-right-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-right-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .slide-right-enter.slide-right-enter-active, .slide-right-appear.slide-right-appear-active { -webkit-animation-name: mSlideRightIn; animation-name: mSlideRightIn; -webkit-animation-play-state: running; animation-play-state: running; } .slide-right-leave.slide-right-leave-active { -webkit-animation-name: mSlideRightOut; animation-name: mSlideRightOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .slide-right-enter, .slide-right-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); } .slide-right-leave { -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); } @-webkit-keyframes mSlideUpIn { 0% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } 100% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(1); transform: scaleY(1); } } @keyframes mSlideUpIn { 0% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } 100% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(1); transform: scaleY(1); } } @-webkit-keyframes mSlideUpOut { 0% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(1); transform: scaleY(1); } 100% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } } @keyframes mSlideUpOut { 0% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(1); transform: scaleY(1); } 100% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } } @-webkit-keyframes mSlideDownIn { 0% { opacity: 0; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } 100% { opacity: 1; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(1); transform: scaleY(1); } } @keyframes mSlideDownIn { 0% { opacity: 0; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } 100% { opacity: 1; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(1); transform: scaleY(1); } } @-webkit-keyframes mSlideDownOut { 0% { opacity: 1; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(1); transform: scaleY(1); } 100% { opacity: 0; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } } @keyframes mSlideDownOut { 0% { opacity: 1; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(1); transform: scaleY(1); } 100% { opacity: 0; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; -webkit-transform: scaleY(0.8); transform: scaleY(0.8); } } @-webkit-keyframes mSlideLeftIn { 0% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } 100% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } } @keyframes mSlideLeftIn { 0% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } 100% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } } @-webkit-keyframes mSlideLeftOut { 0% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } 100% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } } @keyframes mSlideLeftOut { 0% { opacity: 1; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } 100% { opacity: 0; -webkit-transform-origin: 0% 0%; transform-origin: 0% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } } @-webkit-keyframes mSlideRightIn { 0% { opacity: 0; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } 100% { opacity: 1; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } } @keyframes mSlideRightIn { 0% { opacity: 0; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } 100% { opacity: 1; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } } @-webkit-keyframes mSlideRightOut { 0% { opacity: 1; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } 100% { opacity: 0; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } } @keyframes mSlideRightOut { 0% { opacity: 1; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(1); transform: scaleX(1); } 100% { opacity: 0; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-transform: scaleX(0.8); transform: scaleX(0.8); } } .move-up-enter, .move-up-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-up-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-up-enter.move-up-enter-active, .move-up-appear.move-up-appear-active { -webkit-animation-name: mMoveUpIn; animation-name: mMoveUpIn; -webkit-animation-play-state: running; animation-play-state: running; } .move-up-leave.move-up-leave-active { -webkit-animation-name: mMoveUpOut; animation-name: mMoveUpOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .move-up-enter, .move-up-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); } .move-up-leave { -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); } .move-down-enter, .move-down-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-down-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-down-enter.move-down-enter-active, .move-down-appear.move-down-appear-active { -webkit-animation-name: mMoveDownIn; animation-name: mMoveDownIn; -webkit-animation-play-state: running; animation-play-state: running; } .move-down-leave.move-down-leave-active { -webkit-animation-name: mMoveDownOut; animation-name: mMoveDownOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .move-down-enter, .move-down-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); } .move-down-leave { -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); } .move-left-enter, .move-left-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-left-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-left-enter.move-left-enter-active, .move-left-appear.move-left-appear-active { -webkit-animation-name: mMoveLeftIn; animation-name: mMoveLeftIn; -webkit-animation-play-state: running; animation-play-state: running; } .move-left-leave.move-left-leave-active { -webkit-animation-name: mMoveLeftOut; animation-name: mMoveLeftOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .move-left-enter, .move-left-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); } .move-left-leave { -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); } .move-right-enter, .move-right-appear { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-right-leave { -webkit-animation-duration: 0.2s; animation-duration: 0.2s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-play-state: paused; animation-play-state: paused; } .move-right-enter.move-right-enter-active, .move-right-appear.move-right-appear-active { -webkit-animation-name: mMoveRightIn; animation-name: mMoveRightIn; -webkit-animation-play-state: running; animation-play-state: running; } .move-right-leave.move-right-leave-active { -webkit-animation-name: mMoveRightOut; animation-name: mMoveRightOut; -webkit-animation-play-state: running; animation-play-state: running; pointer-events: none; } .move-right-enter, .move-right-appear { opacity: 0; -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); } .move-right-leave { -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); } @-webkit-keyframes mMoveDownIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } } @keyframes mMoveDownIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } } @-webkit-keyframes mMoveDownOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } } @keyframes mMoveDownOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } } @-webkit-keyframes mMoveLeftIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(-100%); transform: translateX(-100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } } @keyframes mMoveLeftIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(-100%); transform: translateX(-100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } } @-webkit-keyframes mMoveLeftOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(-100%); transform: translateX(-100%); opacity: 0; } } @keyframes mMoveLeftOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(-100%); transform: translateX(-100%); opacity: 0; } } @-webkit-keyframes mMoveRightIn { 0% { opacity: 0; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(100%); transform: translateX(100%); } 100% { opacity: 1; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); } } @keyframes mMoveRightIn { 0% { opacity: 0; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(100%); transform: translateX(100%); } 100% { opacity: 1; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); } } @-webkit-keyframes mMoveRightOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(100%); transform: translateX(100%); opacity: 0; } } @keyframes mMoveRightOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(0%); transform: translateX(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateX(100%); transform: translateX(100%); opacity: 0; } } @-webkit-keyframes mMoveUpIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } } @keyframes mMoveUpIn { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } } @-webkit-keyframes mMoveUpOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } } @keyframes mMoveUpOut { 0% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(0%); transform: translateY(0%); opacity: 1; } 100% { -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } } *, *:before, *:after { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { background-color: #fff; font-size: 14px; line-height: 1.5; color: rgba(0, 0, 0, 0.65); } *[contenteditable] { -webkit-user-select: auto !important; } *:focus { outline: none; } a { background: transparent; text-decoration: none; outline: none; color: rgba(0, 0, 0, 0.65); } ol, li { list-style: none; } * { margin: 0; padding: 0; list-style: 0; -webkit-touch-callout: none; }