// SweetAlert // 2014 (c) - Tristan Edwards // github.com/t4t5/sweetalert @import url(//fonts.googleapis.com/css?family=Open+Sans:400,600,700,300); // Open Sans font .sweet-overlay { background-color: rgba(black, 0.4); position: fixed; left: 0; right: 0; top: 0; bottom: 0; display: none; z-index: 1000; } .sweet-alert { $width: 478px; $padding: 17px; background-color: white; font-family: 'Open Sans', sans-serif; width: $width; padding: $padding; border-radius: 5px; text-align: center; position: fixed; left: 50%; top: 50%; margin-left: -($width/2 + $padding); margin-top: -200px; overflow: hidden; display: none; z-index: 2000; @media all and (max-width: 540px) { width: auto; margin-left: 0; margin-right: 0; left: 15px; right: 15px; } h2 { color: #575757; font-size: 30px; text-align: center; font-weight: 600; text-transform: none; position: relative; margin: 25px 0; padding: 0; line-height: 40px; display: block; } p { color: #797979; font-size: 16px; text-align: center; font-weight: 300; position: relative; text-align: inherit; float: none; margin: 0; padding: 0; line-height: normal; } button { $btnBlue: #AEDEF4; $btnGray: #D0D0D0; background-color: $btnBlue; color: white; border: none; box-shadow: none; font-size: 17px; font-weight: 500; border-radius: 5px; padding: 10px 32px; margin: 26px 5px 0 5px; cursor: pointer; &:focus { outline: none; box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } &:hover { background-color: darken($btnBlue, 3%); } &:active { background-color: darken($btnBlue, 10%); } &.cancel { background-color: $btnGray; &:hover { background-color: darken($btnGray, 3%); } &:active { background-color: darken($btnGray, 10%); } // Cancel button should keep the same style &:focus { box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; } } // Removes selection outline in Firefox &::-moz-focus-inner { border: 0; } } // Only show focus-style when there is multiple choice of actions &[data-has-cancel-button=false] button { box-shadow: none !important; } .icon { $red: #F27474; $orange: #F8BB86; $blue: #C9DAE1; $green: #A5DC86; width: 80px; height: 80px; border: 4px solid gray; border-radius: 50%; margin: 20px auto; padding: 0; position: relative; box-sizing: content-box; &.error { border-color: $red; .x-mark { position: relative; display: block; } .line { position: absolute; height: 5px; width: 47px; background-color: $red; display: block; top: 37px; border-radius: 2px; &.left { -webkit-transform: rotate(45deg); transform: rotate(45deg); left: 17px; } &.right { -webkit-transform: rotate(-45deg); transform: rotate(-45deg); right: 16px; } } } &.warning { border-color: $orange; .body { // Exclamation mark body position: absolute; width: 5px; height: 47px; left: 50%; top: 10px; border-radius: 2px; margin-left: -2px; background-color: $orange; } .dot { // Exclamation mark dot position: absolute; width: 7px; height: 7px; border-radius: 50%; margin-left: -3px; left: 50%; bottom: 10px; background-color: $orange; } } &.info { border-color: $blue; &::before { // i-letter body content: ""; position: absolute; width: 5px; height: 29px; left: 50%; bottom: 17px; border-radius: 2px; margin-left: -2px; background-color: $blue; } &::after { // i-letter dot content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%; margin-left: -3px; top: 19px; background-color: $blue; } } &.success { border-color: $green; &::before, &::after { // Emulate moving circular line content: ''; border-radius: 50%; position: absolute; width: 60px; height: 120px; background: white; -webkit-transform: rotate(45deg); transform: rotate(45deg); } &::before { border-radius: 120px 0 0 120px; top: -7px; left: -33px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-transform-origin: 60px 60px; transform-origin: 60px 60px; } &::after { border-radius: 0 120px 120px 0; top: -11px; left: 30px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-transform-origin: 0px 60px; transform-origin: 0px 60px; } .placeholder { // Ring width: 80px; height: 80px; border: 4px solid rgba($green, 0.2); border-radius: 50%; box-sizing: content-box; position: absolute; left: -4px; top: -4px; z-index: 2; } .fix { // Hide corners left from animation width: 5px; height: 90px; background-color: white; position: absolute; left: 28px; top: 8px; z-index: 1; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } .line { height: 5px; background-color: $green; display: block; border-radius: 2px; position: absolute; z-index: 2; &.tip { width: 25px; left: 14px; top: 46px; -webkit-transform: rotate(45deg); transform: rotate(45deg); } &.long { width: 47px; right: 8px; top: 38px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } } } &.custom { background-size: contain; border-radius: 0; border: none; background-position: center center; background-repeat: no-repeat; } } } /* * Animations */ @mixin keyframes($animation-name) { @-webkit-keyframes #{$animation-name} { @content; } @-moz-keyframes #{$animation-name} { @content; } @keyframes #{$animation-name} { @content; } } @mixin animation($str) { -webkit-animation: #{$str}; -moz-animation: #{$str}; animation: #{$str}; } // Modal animation @include keyframes(showSweetAlert) { 0% { transform: scale(0.7); -webkit-transform: scale(0.7); } 45% { transform: scale(1.05); -webkit-transform: scale(1.05); } 80% { transform: scale(0.95); -webkit-tranform: scale(0.95); } 100% { transform: scale(1); -webkit-transform: scale(1); } } @include keyframes(hideSweetAlert) { 0% { transform: scale(1); -webkit-transform: scale(1); } 100% { transform: scale(0.5); -webkit-transform: scale(0.5); } } .showSweetAlert { @include animation('showSweetAlert 0.3s'); } .hideSweetAlert { @include animation('hideSweetAlert 0.2s'); } // Success icon animation @include keyframes(animateSuccessTip) { 0% { width: 0; left: 1px; top: 19px; } 54% { width: 0; left: 1px; top: 19px; } 70% { width: 50px; left: -8px; top: 37px; } 84% { width: 17px; left: 21px; top: 48px; } 100% { width: 25px; left: 14px; top: 45px; } } @include keyframes(animateSuccessLong) { 0% { width: 0; right: 46px; top: 54px; } 65% { width: 0; right: 46px; top: 54px; } 84% { width: 55px; right: 0px; top: 35px; } 100% { width: 47px; right: 8px; top: 38px; } } @include keyframes(rotatePlaceholder) { 0% { transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } 5% { transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } 12% { transform: rotate(-405deg); -webkit-transform: rotate(-405deg); } 100% { transform: rotate(-405deg); -webkit-transform: rotate(-405deg); } } .animateSuccessTip { @include animation('animateSuccessTip 0.75s'); } .animateSuccessLong { @include animation('animateSuccessLong 0.75s'); } .icon.success.animate::after { @include animation('rotatePlaceholder 4.25s ease-in'); } // Error icon animation @include keyframes(animateErrorIcon) { 0% { transform: rotateX(100deg); -webkit-transform: rotateX(100deg); opacity: 0; } 100% { transform: rotateX(0deg); -webkit-transform: rotateX(0deg); opacity: 1; } } .animateErrorIcon { @include animation('animateErrorIcon 0.5s'); } @include keyframes(animateXMark) { 0% { transform: scale(0.4); -webkit-transform: scale(0.4); margin-top: 26px; opacity: 0; } 50% { transform: scale(0.4); -webkit-transform: scale(0.4); margin-top: 26px; opacity: 0; } 80% { transform: scale(1.15); -webkit-transform: scale(1.15); margin-top: -6px; } 100% { transform: scale(1); -webkit-transform: scale(1); margin-top: 0; opacity: 1; } } .animateXMark { @include animation('animateXMark 0.5s'); } @include keyframes(pulseWarning) { 0% { border-color: #F8D486; } 100% { border-color: #F8BB86; } } .pulseWarning { @include animation('pulseWarning 0.75s infinite alternate'); } @include keyframes(pulseWarningIns) { 0% { background-color: #F8D486; } 100% { background-color: #F8BB86; } } .pulseWarningIns { @include animation('pulseWarningIns 0.75s infinite alternate'); }