264 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			264 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
// /**
 | 
						|
//  * Copyright © Magento, Inc. All rights reserved.
 | 
						|
//  * See COPYING.txt for license details.
 | 
						|
//  */
 | 
						|
 | 
						|
//
 | 
						|
//  Lib -> Components -> Modals
 | 
						|
//  _____________________________________________
 | 
						|
 | 
						|
//
 | 
						|
//  Variables
 | 
						|
//  ---------------------------------------------
 | 
						|
 | 
						|
@import '../../source/_variables.less';
 | 
						|
 | 
						|
@modal__background-color: @color-white;
 | 
						|
@modal__box-shadow: 0 0 12px 2px rgba(0, 0, 0, .35);
 | 
						|
 | 
						|
@modal-popup__indent-vertical: 5rem;
 | 
						|
@modal-popup__padding: 3rem;
 | 
						|
@modal-popup__width: 75%;
 | 
						|
@modal-popup__z-index: @modal__z-index;
 | 
						|
 | 
						|
@modal-slide__first__indent-left: 14.8rem;
 | 
						|
@modal-slide__indent-left: 4.5rem;
 | 
						|
@modal-slide__padding: 2.6rem;
 | 
						|
@modal-slide__z-index: @modal__z-index;
 | 
						|
 | 
						|
@modal-slide-header__padding-vertical: 2.1rem;
 | 
						|
 | 
						|
@modal-popup-confirm__width: 50rem;
 | 
						|
 | 
						|
@modal-popup-image-box__border-color: @color-gray80;
 | 
						|
@modal-popup-image-box__max-width: 78rem;
 | 
						|
 | 
						|
@modal-popup-image-box-preview__max-width: @modal-popup-image-box-preview-image__max-height + (2 * @indent__base);
 | 
						|
@modal-popup-image-box-preview-image__max-height: 54rem;
 | 
						|
 | 
						|
//
 | 
						|
//  Utilities
 | 
						|
//  ---------------------------------------------
 | 
						|
 | 
						|
.lib-modal() {
 | 
						|
    bottom: 0;
 | 
						|
    left: 0;
 | 
						|
    min-width: 0;
 | 
						|
    position: fixed;
 | 
						|
    right: 0;
 | 
						|
    top: 0;
 | 
						|
    visibility: hidden;
 | 
						|
    opacity: 0;
 | 
						|
    -webkit-transition: visibility 0s .3s, opacity .3s ease;
 | 
						|
            transition: visibility 0s .3s, opacity .3s ease;
 | 
						|
 | 
						|
    &._show {
 | 
						|
        visibility: visible;
 | 
						|
        opacity: 1;
 | 
						|
        -webkit-transition: opacity .3s ease;
 | 
						|
                transition: opacity .3s ease;
 | 
						|
 | 
						|
        .modal-inner-wrap {
 | 
						|
            -webkit-transform: translate(0, 0);
 | 
						|
                    transform: translate(0, 0);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-inner-wrap {
 | 
						|
        .lib-css(background-color, @modal__background-color);
 | 
						|
        .lib-css(box-shadow, @modal__box-shadow);
 | 
						|
        opacity: 1;
 | 
						|
        pointer-events: auto;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
.lib-modal-slide() {
 | 
						|
    .lib-css(left, @modal-slide__first__indent-left);
 | 
						|
    .lib-css(z-index, @modal-slide__z-index);
 | 
						|
 | 
						|
    &._show {
 | 
						|
        .modal-inner-wrap {
 | 
						|
            -webkit-transform: translateX(0);
 | 
						|
                    transform: translateX(0);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-inner-wrap {
 | 
						|
        height: 100%;
 | 
						|
        overflow-y: auto;
 | 
						|
        position: static;
 | 
						|
        -webkit-transform: translateX(100%);
 | 
						|
                transform: translateX(100%);
 | 
						|
        -webkit-transition: -webkit-transform .3s ease-in-out;
 | 
						|
                transition:         transform .3s ease-in-out;
 | 
						|
        width: auto;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
.lib-modal-popup() {
 | 
						|
    .lib-css(z-index, @modal-popup__z-index);
 | 
						|
    left: 0;
 | 
						|
    overflow-y: auto;
 | 
						|
 | 
						|
    &.confirm {
 | 
						|
        .modal-inner-wrap {
 | 
						|
            .lib-css(max-width, @modal-popup-confirm__width);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    &._show {
 | 
						|
        .modal-inner-wrap {
 | 
						|
            -webkit-transform: translateY(0);
 | 
						|
                    transform: translateY(0);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-inner-wrap {
 | 
						|
        .lib-css(margin, @modal-popup__indent-vertical auto);
 | 
						|
        .lib-css(width, @modal-popup__width);
 | 
						|
        .lib-vendor-prefix-display(flex);
 | 
						|
        .lib-vendor-prefix-flex-direction(column);
 | 
						|
        box-sizing: border-box;
 | 
						|
        height: auto;
 | 
						|
        left: 0;
 | 
						|
        position: absolute;
 | 
						|
        right: 0;
 | 
						|
        -webkit-transform: translateY(-200%);
 | 
						|
                transform: translateY(-200%);
 | 
						|
        -webkit-transition: -webkit-transform .2s ease;
 | 
						|
                transition:         transform .2s ease;
 | 
						|
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
//  Common
 | 
						|
//  _____________________________________________
 | 
						|
 | 
						|
& when (@media-common = true) {
 | 
						|
    body {
 | 
						|
        &._has-modal {
 | 
						|
            height: 100%;
 | 
						|
            overflow: hidden;
 | 
						|
            width: 100%;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    //  Modals overlay
 | 
						|
    .modals-overlay {
 | 
						|
        .lib-css(z-index, @overlay__z-index);
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-slide,
 | 
						|
    .modal-popup {
 | 
						|
        .lib-modal();
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-slide {
 | 
						|
        .lib-modal-slide();
 | 
						|
        &._inner-scroll {
 | 
						|
            .modal-inner-wrap {
 | 
						|
                overflow-y: visible;
 | 
						|
                .lib-vendor-prefix-display(flex);
 | 
						|
                .lib-vendor-prefix-flex-direction(column);
 | 
						|
            }
 | 
						|
 | 
						|
            .modal-header,
 | 
						|
            .modal-footer {
 | 
						|
                .lib-vendor-prefix-flex-grow(0);
 | 
						|
                .lib-vendor-prefix-flex-shrink(0);
 | 
						|
            }
 | 
						|
 | 
						|
            .modal-content {
 | 
						|
                overflow-y: auto;
 | 
						|
            }
 | 
						|
 | 
						|
            .modal-footer {
 | 
						|
                margin-top: auto;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-header,
 | 
						|
        .modal-content,
 | 
						|
        .modal-footer {
 | 
						|
            .lib-css(padding, 0 @modal-slide__padding @modal-slide__padding);
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-header {
 | 
						|
            .lib-css(padding-bottom, @modal-slide-header__padding-vertical);
 | 
						|
            .lib-css(padding-top, @modal-slide-header__padding-vertical);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-popup {
 | 
						|
        .lib-modal-popup();
 | 
						|
 | 
						|
        //  If applied, switching outer popup scroll to inner
 | 
						|
        &._inner-scroll {
 | 
						|
            overflow-y: visible;
 | 
						|
 | 
						|
            .ie11 & {
 | 
						|
                overflow-y: auto;
 | 
						|
            }
 | 
						|
 | 
						|
            .modal-inner-wrap {
 | 
						|
                max-height: 90%;
 | 
						|
 | 
						|
                .ie11 & {
 | 
						|
                    max-height: none;
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            .modal-content {
 | 
						|
                overflow-y: auto;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-header,
 | 
						|
        .modal-content,
 | 
						|
        .modal-footer {
 | 
						|
            .lib-css(padding-left, @modal-popup__padding);
 | 
						|
            .lib-css(padding-right, @modal-popup__padding);
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-header,
 | 
						|
        .modal-footer {
 | 
						|
            .lib-vendor-prefix-flex-grow(0);
 | 
						|
            .lib-vendor-prefix-flex-shrink(0);
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-header {
 | 
						|
            .lib-css(padding-bottom, @modal-popup__padding / 2.5);
 | 
						|
            .lib-css(padding-top, @modal-popup__padding);
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-footer {
 | 
						|
            margin-top: auto;
 | 
						|
            .lib-css(padding-bottom, @modal-popup__padding);
 | 
						|
            .lib-css(padding-top, @modal-popup__padding);
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-footer-actions {
 | 
						|
            text-align: right;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
//  Mobile
 | 
						|
//  _____________________________________________
 | 
						|
 | 
						|
//  Mobile transform to modal-slide
 | 
						|
.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
 | 
						|
    .modal-popup {
 | 
						|
        &.modal-slide {
 | 
						|
            .lib-modal-slide();
 | 
						|
 | 
						|
            .modal-inner-wrap {
 | 
						|
                margin: 0;
 | 
						|
                max-height: 90vh; /** iOS webkit fix height problem when added long content **/
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |