viur-ignite-css
Version:
Core of VIUR Ignite - a less framework
300 lines (276 loc) • 5.02 kB
text/less
@charset "UTF-8";
/**
* POPUP and OVERLAY
*/
@popupBackgroundColor: @backgroundColor;
// A dark overlay to hide the rest of the page.
.popup-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
user-select: none;
opacity: 0;
background:rgba(0,0,10,0);
transition: all .3s ease;
.zIndex('background',-1);
&.is-active {
pointer-events: auto;
opacity: .7;
background:rgba(0,0,10,1);
.zIndex('overlay',0)
}
}
// Positioning of the popup
.popup {
opacity: 0;
position: fixed;
transition: all .3s ease;
.zIndex('background',-1);
pointer-events: none;
top:50px;
left:-14%;
width: 33%;
max-width:@pageWidth/2.5;
max-height: 90vh;
transform: translateX(-50%);
overflow: hidden;
display: flex;
flex-direction: column;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
&.is-active {
.zIndex('overlay', 1);
opacity: 1;
left:50%;
pointer-events: auto;
}
}
.popup-s,
.popup-se,
.popup-sw {
transform: translateY(110%);
&.is-active {
bottom: 20px;
top: inherit;
right: inherit;
}
}
.popup-s {
left: 50%;
transform: translate(-50%, 110%);
&.is-active {
left: 50%;
transform: translate(-50%, 0);
}
}
.popup-se {
right: 20px;
&.is-active {
right: 20px;
left: inherit;
transform: none;
}
}
.popup-sw {
left: 20px;
&.is-active {
left: 20px;
transform: none;
}
}
.popup-n,
.popup-ne,
.popup-nw {
&.is-active {
bottom: inherit;
top: 20px;
right: inherit;
}
}
.popup-n {
&.is-active {
left: 50%;
}
}
.popup-ne {
&.is-active {
left: 20px;
transform: none;
}
}
.popup-nw {
&.is-active {
left: inherit;
right: 20px;
transform: none;
}
}
.popup-w,
.popup-e {
&.is-active {
top: 50%;
transform: translateY(-50%);
bottom: inherit;
}
}
.popup-e {
&.is-active {
right: 20px;
left: inherit;
}
}
.popup-w {
&.is-active {
left: 20px;
right: inherit;
}
}
// The main popup window
.popup-box {
position: relative;
background-color: @popupBackgroundColor;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.25);
display: flex;
flex-direction: column;
}
.popup-content {
width: 100%;
padding: 15px;
overflow-x:hidden;
overflow-y:auto;
color: contrast(@popupBackgroundColor, #222222, #f4f4f4);
font-size: .9em;
&:before {
display: table;
content: "";
}
&:after {
display: table;
clear: both;
content: "";
}
}
.popup-header {
width: 100%;
padding: 15px;
background-color: darken(@popupBackgroundColor,5%);
color: contrast(darken(@popupBackgroundColor,5%), #222222, #f4f4f4);
border-bottom: 1px solid darken(@popupBackgroundColor,15%);
}
.popup-footer {
width: 100%;
padding: 2px 15px;
background-color: darken(@popupBackgroundColor,15%);
border-top: 1px solid darken(@popupBackgroundColor,25%);
color: contrast(darken(@popupBackgroundColor,15%), #222222, #f4f4f4);
font-size: .8em;
}
.popup-close {
position: absolute;
top: 5px;
right: 5px;
padding: 10px;
cursor: pointer;
background-color: transparent;
border: 0;
opacity: 0.5;
-webkit-appearance: none;
transition: all .3s ease;
&:hover {
opacity: 1;
}
&.has-icon:before {
content: "";
position: relative;
display: inline-block;
height: 1em;
width: 1em;
vertical-align: text-top;
margin-top: 4px;
background-size: cover;
background-position: top left;
background-repeat: no-repeat;
background-color: inherit;
background-blend-mode: multiply;
//set background-image via icon.less
}
}
// Popup sizes
.popup-vSmall {
font-size: .8rem;
.popup-content {
padding: 10px;
}
.popup-header {
padding: 10px;
}
.popup-footer {
padding: 2px 10px;
}
.btn {
padding: 3px 11px;
font-weight: 400;
}
.input {
padding: 3px 7px;
font-weight: 400;
}
.label {
padding: 3px 7px;
font-weight: 400;
}
.select {
padding: 3px 7px 4px;
font-weight: 400;
background-size: 10px;
}
}
.popup-vLarge {
font-size: 1.2rem;
max-width:@pageWidth/2;
}
// Alert messages in popups
.msg-vPopup {
margin:0 -15px 15px;
border-width: 1px 0 1px 0;
border-radius:0;
}
// Form elements in popups
.inputGroup-vPopup {
.label {
border-width: 0 1px;
width: 100%;
margin: 0;
&:first-child{
border-width:1px;
border-bottom-width: 0;
}
&:last-child{
border-width: 1px;
border-top-width: 0;
}
}
.select,
.input,
.btn {
width:100%;
margin: 0;
}
}
// => Popup Media Queries
.media-mixin(@break) when (@break = @breakSmall) {
}
.media-mixin(@break) when (@break = @breakMedium) {
.popup {
width:90%;
}
}
.media-mixin(@break) when (@break = @breakLarge) {
}
.media-mixin(@break) when (@break = @break2x) {
}
.media-mixin(@break) when (@break = @breakPrint) {
}