UNPKG

framework7-without-localstorage

Version:

Full featured mobile HTML framework for building iOS & Android apps

613 lines (605 loc) 13.6 kB
/* === Modals === */ @modalBg: rgba(255,255,255,0.95); @modalButonColor : @themeColor; @modalButonActiveBg: rgba(230,230,230,0.95); @modalHairlineColor: rgba(0,0,0,0.2); @modalDuration: 400ms; @actionsModalBg: rgba(255,255,255,0.95); @actionsModalButtonActiveBg: rgba(230,230,230,0.9); @actionsModalHairlineColor: rgba(0,0,0,0.2); @actionsModalDuration: 300ms; @popoverBg: rgba(255,255,255,0.95); @popupDuration: 400ms; @actionsPopoverHairline: rgba(0,0,0,0.2); .modal-overlay, .preloader-indicator-overlay, .popup-overlay, .picker-modal-overlay { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); z-index: 13000; visibility: hidden; opacity: 0; .transition(@modalDuration); &.not-animated { .transition(0ms); } &.modal-overlay-visible { visibility: visible; opacity: 1; } } .picker-modal-overlay { z-index: 12000; } .popup-overlay { z-index: 10500; } .modal { width: 270px; position: absolute; z-index: 13500; left: 50%; margin-left: -135px; margin-top: 0; top: 50%; text-align: center; border-radius: 13px; overflow: hidden; opacity: 0; .transform(translate3d(0,0,0) scale(1.185)); -webkit-transition-property: -webkit-transform, opacity; -moz-transition-property: -moz-transform, opacity; -ms-transition-property: -ms-transform, opacity; -o-transition-property: -o-transform, opacity; transition-property: transform, opacity; color:#000; display: none; &.modal-in { opacity: 1; .transition(@modalDuration); .transform(translate3d(0,0,0) scale(1)); } &.modal-out { opacity: 0; z-index: 13500-1; .transition(@modalDuration); .transform(translate3d(0,0,0) scale(1)); } } .modal-inner { padding: 15px; border-radius: 13px 13px 0 0; position: relative; background: @modalBg; .hairline(bottom, @modalHairlineColor); } .modal-title { font-weight: 500; font-size: 18px; text-align: center; html.ios-gt-8 & { font-weight: 600; } +.modal-text { margin-top: 5px; } } .modal-buttons { height: 44px; position: relative; .flexbox(); .justify-content(center); &.modal-buttons-vertical { display: block; height: auto; } } .modal-button { width: 100%; padding: 0 5px; height: 44px; font-size: 17px; line-height: 44px; text-align: center; color: @modalButonColor; display: block; position: relative; white-space: nowrap; text-overflow:ellipsis; overflow: hidden; cursor: pointer; box-sizing: border-box; -webkit-box-flex:1; -ms-flex:1; background: @modalBg; .hairline(right, @modalHairlineColor); &:first-child { border-radius: 0 0 0 13px; } &:last-child { .hairline-remove(right); border-radius: 0 0 13px 0; } &:first-child:last-child { border-radius: 0 0 13px 13px; } &.modal-button-bold { font-weight: 500; html.ios-gt-8 & { font-weight: 600; } } html:not(.watch-active-state) &:active, &.active-state { background: @modalButonActiveBg; } .modal-buttons-vertical & { border-radius: 0; .hairline-remove(right); .hairline-remove(top); .hairline(bottom, @modalHairlineColor); &:last-child { border-radius: 0 0 13px 13px; .hairline-remove(bottom); } } } .modal-no-buttons { .modal-inner { border-radius: 13px; .hairline-remove(bottom); } .modal-buttons { display: none; } } // Action sheet .actions-modal { position: absolute; left: 0; bottom: 0; z-index: 13500; width: 100%; .transform(translate3d(0,100%,0)); max-height: 100%; .scrollable(); @media (min-width:496px) { width: 480px; left: 50%; margin-left: -240px; } &.modal-in, &.modal-out { .transition(@actionsModalDuration); &.not-animated { .transition(0ms); } } &.modal-in { .transform(translate3d(0,0,0)); } &.modal-out { z-index: 13500-1; .transform(translate3d(0,100%,0)); } } .actions-modal-group { margin: 8px; position: relative; border-radius: 13px; overflow: hidden; .transform(translate3d(0,0,0)); } .actions-modal-button, .actions-modal-label { width: 100%; text-align: center; font-weight: normal; margin: 0; background: @actionsModalBg; box-sizing: border-box; display: block; position: relative; overflow: hidden; .hairline(bottom, @actionsModalHairlineColor); a { text-decoration: none; color: inherit; display: block; } b { font-weight: 500; html.ios-gt-8 & { font-weight: 600; } } &.actions-modal-button-bold { font-weight: 500; html.ios-gt-8 & { font-weight: 600; } } &.actions-modal-button-red { color: @red; } &:first-child { border-radius: 13px 13px 0 0; } &:last-child { .hairline-remove(bottom); border-radius: 0 0 13px 13px; } &:first-child:last-child { border-radius: 13px; } &.disabled { opacity: 0.9; color:@gray; } } .actions-modal-button { cursor: pointer; height: 57px; line-height: 57px; font-size: 20px; color: @themeColor; white-space: normal; text-overflow: ellipsis; html:not(.watch-active-state) &:active, &.active-state { background: @actionsModalButtonActiveBg; } } .actions-modal-label { font-size: 13px; line-height: 1.3; min-height: 57px; padding: 8px 10px; color: #8a8a8a; .flexbox(); .justify-content(center); .align-items(center); } @media (orientation:landscape) { .actions-modal-label { min-height: 44px; } .actions-modal-button { height: 44px; line-height: 44px; } } // Prompt input.modal-text-input { box-sizing: border-box; height: 26px; background: #fff; margin: 0; margin-top: 15px; padding: 0 5px; border: 1px solid rgba(0,0,0,0.3); border-radius: 0; width: 100%; font-size: 14px; font-family: inherit; display: block; box-shadow: 0 0 0 rgba(0,0,0,0); -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; appearance: none; + input.modal-text-input { margin-top: 5px; } } .modal-input-double { input.modal-text-input { } .modal-input-double + & { input.modal-text-input { border-top: 0; margin-top: 0; } } } // Popover .popover { width: 320px; background:@popoverBg; z-index: 13500; margin: 0; top: 0; opacity: 0; left: 0; border-radius: 13px; position: absolute; display: none; .transform(none); -webkit-transition-property: opacity; -moz-transition-property: opacity; -ms-transition-property: opacity; -o-transition-property: opacity; transition-property: opacity; &.modal-in { .transition(@actionsModalDuration); &.not-animated { .transition(0ms); } opacity: 1; } .list-block { margin: 0; ul { background: none; } &:first-child { ul { .hairline-remove(top); border-radius: 13px 13px 0 0; } li:first-child a{ border-radius: 13px 13px 0 0; } } &:last-child { ul { .hairline-remove(bottom); border-radius: 0 0 13px 13px; } li:last-child a{ border-radius: 0 0 13px 13px; } } &:first-child:last-child { li:first-child:last-child a, ul:first-child:last-child { border-radius: 13px; } } + .list-block { margin-top: 35px; } } } .popover-angle { width: 26px; height: 26px; position: absolute; left: -26px; top: 0; z-index: 100; overflow: hidden; &:after { content:' '; background: @popoverBg; width: 26px; height: 26px; position: absolute; left: 0; top: 0; border-radius: 3px; .transform(rotate(45deg)); } &.on-left { left: -26px; &:after { left: 19px; top: 0; } } &.on-right { left: 100%; &:after { left: -19px; top: 0; } } &.on-top { left: 0; top: -26px; &:after { left: 0; top: 19px; } } &.on-bottom { left: 0; top: 100%; &:after { left: 0; top: -19px; } } } .popover-inner { .scrollable(); } .actions-popover { .list-block + .list-block { margin-top: 20px; } .list-block ul { background: #fff; } } .actions-popover-label { padding: 8px 10px; color:#8a8a8a; font-size: 13px; line-height: 1.3; text-align: center; position: relative; .hairline(bottom, @actionsPopoverHairline); &:last-child { .hairline-remove(bottom); } } // Popup .popup, .login-screen { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 11000; background: #fff; box-sizing: border-box; display: none; .scrollable(); -webkit-transition-property: -webkit-transform; -moz-transition-property: -moz-transform; -ms-transition-property: -ms-transform; -o-transition-property: -o-transform; transition-property: transform; .translate3d(0,100%,0); &.modal-in, &.modal-out { .transition(@popupDuration); &.not-animated { .transition(0ms); } } &.modal-in { .translate3d(0,0,0); } &.modal-out { .translate3d(0,100%,0); } } .login-screen.modal-in, .login-screen.modal-out { display: block; } // iPad Popup @media all and (min-width:630px) and (min-height:630px) { .popup:not(.tablet-fullscreen) { width: 630px; height: 630px; left: 50%; top: 50%; margin-left: -315px; margin-top: -315px; .translate3d(0,1024px,0); &.modal-in { .translate3d(0,0,0); } &.modal-out { .translate3d(0,1024px,0); } } } html.with-statusbar-overlay { // iPhone with statusbar overlay @media all and (max-width:629px), (max-height:629px) { .popup { height: ~"-webkit-calc(100% - 20px)"; height: ~"calc(100% - 20px)"; top: 20px; } .popup-overlay { z-index: 9500; } } .login-screen, .popup.tablet-fullscreen { height: ~"-webkit-calc(100% - 20px)"; height: ~"calc(100% - 20px)"; top: 20px; } } //Preloaders modals .modal .preloader { width: 34px; height: 34px; } .preloader-indicator-overlay { visibility: visible; opacity: 0; background: none; } .preloader-indicator-modal { position: absolute; left: 50%; top: 50%; padding: 8px; margin-left: -25px; margin-top: -25px; background: rgba(0,0,0,0.8); z-index: 13500; border-radius: 5px; .preloader { display: block; width: 34px; height: 34px; } } // Picker Modal .picker-modal { position: absolute; left: 0; bottom: 0; width: 100%; height: 260px; z-index: 12500; display: none; -webkit-transition-property: -webkit-transform; -moz-transition-property: -moz-transform; -ms-transition-property: -ms-transform; -o-transition-property: -o-transform; transition-property: transform; background: #cfd5da; .translate3d(0,100%,0); &.modal-in, &.modal-out { .transition(400ms); &.not-animated { .transition(0ms); } } &.modal-in { .translate3d(0,0,0); } &.modal-out { .translate3d(0,100%,0); } .picker-modal-inner { height: 100%; position: relative; } .toolbar { .hairline(top, #929499); position: relative; width: 100%; background: #f7f7f8; + .picker-modal-inner { height: ~"-webkit-calc(100% - @{toolbarSize})"; height: ~"-moz-calc(100% - @{toolbarSize})"; height: ~"calc(100% - @{toolbarSize})"; } } &.picker-modal-inline, .popover & { display: block; position: relative; background: none; z-index: inherit; .translate3d(0,0,0); .toolbar { .hairline-remove(top); .hairline(bottom, #929499); } } .popover & { width: auto; .toolbar { background: none; } } &.smart-select-picker { .page { background: #fff; } .toolbar { .hairline(bottom, #c4c4c4); } .list-block { margin: 0; ul { .hairline-remove(top); .hairline-remove(bottom); } } } }