Created
July 31, 2013 20:31
-
-
Save shshaw/6125860 to your computer and use it in GitHub Desktop.
LESS conversion of the magnific popup SASS styles ( https://github.com/dimsemenov/Magnific-Popup )
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Magnific Popup CSS */ | |
//////////////////////// | |
// | |
// Contents: | |
// | |
// 1. Default Settings | |
// 2. General styles | |
// - Transluscent overlay | |
// - Containers, wrappers | |
// - Cursors | |
// - Helper classes | |
// 3. Appearance | |
// - Preloader & text that displays error messages | |
// - CSS reset for buttons | |
// - Close icon | |
// - "1 of X" counter | |
// - Navigation (left/right) arrows | |
// - Iframe content type styles | |
// - Image content type styles | |
// - Media query where size of arrows is reduced | |
// - IE7 support | |
// | |
//////////////////////// | |
//////////////////////// | |
// 1. Default Settings | |
//////////////////////// | |
@overlayColor: #0b0b0b; | |
@overlayOpacity: 0.8; | |
@shadow: 0 0 8px rgba(0, 0, 0, 0.6); // shadow on image or iframe | |
@popupPaddingLeft: 8px; // Padding from left and from right side | |
@popupPaddingLeftMobile: 6px; // Same as above, but is applied when width of window is less than 800px | |
@zIndexBase: 1040; // Base z-index of popup | |
@includeArrows: true; // include styles for nav arrows | |
@controlsOpacity: 0.65; | |
@controlsColor: #FFF; | |
@innerCloseIconColor: #333; | |
@controlsTextColor: #CCC; // Color of preloader and "1 of X" indicator | |
@controlsTextColorHover: #FFF; | |
@IE7support: true; // Very basic IE7 support | |
// Iframe-type options | |
@includeIframeType: true; | |
@iframePaddingTop: 40px; | |
@iframeBackground: #000; | |
@iframeMaxWidth: 900px; | |
@iframeRatio: 9/16; | |
// Image-type options | |
@includeImageType: true; | |
@imageBackground: #444; | |
@imagePaddingTop: 40px; | |
@imagePaddingBottom: 40px; | |
@includeMobileLayoutForImage: true; // Removes paddings from top and bottom | |
// Image caption options | |
@captionTitleColor: #F3F3F3; | |
@captionSubtitleColor: #BDBDBD; | |
@import "settings"; | |
//////////////////////// | |
// 2. General styles | |
//////////////////////// | |
// Transluscent overlay | |
.mfp-bg { | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: @zIndexBase + 2; | |
overflow: hidden; | |
position: fixed; | |
background: @overlayColor; | |
opacity: @overlayOpacity; | |
.a() when (@IE7support) { | |
filter: ~"alpha(opacity=(@{overlayOpacity}*100))"; | |
} | |
.a(); | |
} | |
// Wrapper for popup | |
.mfp-wrap { | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: @zIndexBase + 3; | |
position: fixed; | |
outline: none !important; | |
-webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar | |
} | |
// Root container | |
.mfp-container { | |
text-align: center; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
left: 0; | |
top: 0; | |
padding: 0 @popupPaddingLeft; | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
// Vertical centerer helper | |
.mfp-container:before { | |
content: ''; | |
display: inline-block; | |
height: 100%; | |
vertical-align: middle; | |
} | |
// Remove vertical centering when popup has class `mfp-align-top` | |
.mfp-align-top .mfp-container:before { | |
display: none; | |
} | |
// Popup content holder | |
.mfp-content { | |
position: relative; | |
display: inline-block; | |
vertical-align: middle; | |
margin: 0 auto; | |
text-align: left; | |
z-index: @zIndexBase + 5; | |
} | |
.mfp-inline-holder .mfp-content, | |
.mfp-ajax-holder .mfp-content { | |
width: 100%; | |
cursor: auto; | |
} | |
// Cursors | |
.mfp-ajax-cur { | |
cursor: progress; | |
} | |
.mfp-zoom-out-cur, | |
.mfp-zoom-out-cur .mfp-image-holder .mfp-close { | |
cursor: -moz-zoom-out; | |
cursor: -webkit-zoom-out; | |
cursor: zoom-out; | |
} | |
.mfp-zoom { | |
cursor: pointer; | |
cursor: -webkit-zoom-in; | |
cursor: -moz-zoom-in; | |
cursor: zoom-in; | |
} | |
.mfp-auto-cursor .mfp-content { | |
cursor: auto; | |
} | |
.mfp-close, | |
.mfp-arrow, | |
.mfp-preloader, | |
.mfp-counter { | |
-webkit-user-select:none; | |
-moz-user-select: none; | |
user-select: none; | |
} | |
// Hide the image during the loading | |
.mfp-loading.mfp-figure { | |
display: none; | |
} | |
// Helper class that hides stuff | |
.mfp-hide { | |
display: none !important; | |
} | |
//////////////////////// | |
// 3. Appearance | |
//////////////////////// | |
// Preloader and text that displays error messages | |
.mfp-preloader { | |
color: @controlsTextColor; | |
position: absolute; | |
top: 50%; | |
width: auto; | |
text-align: center; | |
margin-top: -0.8em; | |
left: 8px; | |
right: 8px; | |
z-index: @zIndexBase + 4; | |
} | |
.mfp-preloader a { | |
color: @controlsTextColor; | |
} | |
.mfp-preloader a:hover { | |
color: @controlsTextColorHover; | |
} | |
// Hide preloader when content successfully loaded | |
.mfp-s-ready .mfp-preloader { | |
display: none; | |
} | |
// Hide content when it was not loaded | |
.mfp-s-error .mfp-content { | |
display: none; | |
} | |
// CSS-reset for buttons | |
button.mfp-close, | |
button.mfp-arrow { | |
overflow: visible; | |
cursor: pointer; | |
background: transparent; | |
border: 0; | |
-webkit-appearance: none; | |
display: block; | |
padding: 0; | |
z-index: @zIndexBase + 6; | |
} | |
button::-moz-focus-inner { | |
padding: 0; | |
border: 0 | |
} | |
// Close icon | |
.mfp-close { | |
width: 44px; | |
height: 44px; | |
line-height: 44px; | |
position: absolute; | |
right: 0; | |
top: 0; | |
text-decoration: none; | |
text-align: center; | |
opacity: @controlsOpacity; | |
padding: 0 0 18px 10px; | |
color: @controlsColor; | |
font-style: normal; | |
font-size: 28px; | |
font-family: Arial, Baskerville, monospace; | |
&:hover, | |
&:focus { | |
opacity: 1; | |
} | |
&:active { | |
top: 1px; | |
} | |
} | |
.mfp-close-btn-in .mfp-close { | |
color: @innerCloseIconColor; | |
} | |
.mfp-image-holder .mfp-close, | |
.mfp-iframe-holder .mfp-close { | |
color: @controlsColor; | |
right: -6px; | |
text-align: right; | |
padding-right: 6px; | |
width: 100%; | |
} | |
// "1 of X" counter | |
.mfp-counter { | |
position: absolute; | |
top: 0; | |
right: 0; | |
color: @controlsTextColor; | |
font-size: 12px; | |
line-height: 18px; | |
} | |
// Navigation arrows | |
.b() when (@includeArrows) { | |
.mfp-arrow { | |
position: absolute; | |
opacity: @controlsOpacity; | |
margin: 0; | |
top: 50%; | |
margin-top: -55px; | |
padding: 0; | |
width: 90px; | |
height: 110px; | |
-webkit-tap-highlight-color: rgba(0,0,0,0); | |
} | |
.mfp-arrow:active { | |
margin-top: -54px; | |
} | |
.mfp-arrow:hover, | |
.mfp-arrow:focus { | |
opacity: 1; | |
} | |
.mfp-arrow { | |
&:before, | |
&:after, | |
.mfp-b, | |
.mfp-a { | |
content: ''; | |
display: block; | |
width: 0; | |
height: 0; | |
position: absolute; | |
left: 0; | |
top: 0; | |
margin-top: 35px; | |
margin-left: 35px; | |
border: medium inset transparent; | |
} | |
&:after, | |
.mfp-a { | |
border-top-width: 13px; | |
border-bottom-width: 13px; | |
top:8px; | |
} | |
&:before, | |
.mfp-b { | |
border-top-width: 21px; | |
border-bottom-width: 21px; | |
} | |
} | |
.mfp-arrow-left { | |
left: 0; | |
&:after, | |
.mfp-a { | |
border-right: 17px solid #FFF; | |
margin-left: 31px; | |
} | |
&:before, | |
.mfp-b { | |
margin-left: 25px; | |
border-right: 27px solid #3f3f3f; | |
} | |
} | |
.mfp-arrow-right { | |
right: 0; | |
&:after, | |
.mfp-a { | |
border-left: 17px solid #FFF; | |
margin-left: 39px | |
} | |
&:before, | |
.mfp-b { | |
border-left: 27px solid #3f3f3f; | |
} | |
} | |
} | |
.b(); | |
// Iframe content type | |
.c() when (@includeIframeType) { | |
.mfp-iframe-holder { | |
padding-top: @iframePaddingTop; | |
padding-bottom: @iframePaddingTop; | |
} | |
.mfp-iframe-holder .mfp-content { | |
line-height: 0; | |
width: 100%; | |
max-width: @iframeMaxWidth; | |
} | |
.mfp-iframe-scaler { | |
width: 100%; | |
height: 0; | |
overflow: hidden; | |
padding-top: @iframeRatio * 100%; | |
} | |
.mfp-iframe-scaler iframe { | |
position: absolute; | |
display: block; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
box-shadow: @shadow; | |
background: @iframeBackground; | |
} | |
.mfp-iframe-holder .mfp-close { | |
top: -40px; | |
} | |
} | |
.c(); | |
// Image content type | |
.d() when (@includeImageType) { | |
/* Main image in popup */ | |
img.mfp-img { | |
width: auto; | |
max-width: 100%; | |
height: auto; | |
display: block; | |
line-height: 0; | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
padding: @imagePaddingTop 0 @imagePaddingBottom; | |
margin: 0 auto; | |
} | |
/* The shadow behind the image */ | |
.mfp-figure:after { | |
content: ''; | |
position: absolute; | |
left: 0; | |
top: @imagePaddingTop; | |
bottom: @imagePaddingBottom; | |
display: block; | |
right: 0; | |
width: auto; | |
height: auto; | |
z-index: -1; | |
box-shadow: @shadow; | |
background: @imageBackground; | |
} | |
.mfp-figure { | |
line-height: 0; | |
} | |
.mfp-bottom-bar { | |
margin-top: -36px; | |
position: absolute; | |
top: 100%; | |
left: 0; | |
width: 100%; | |
cursor: auto; | |
} | |
.mfp-title { | |
text-align: left; | |
line-height: 18px; | |
color: @captionTitleColor; | |
word-break: break-word; | |
padding-right: 36px; // leave some space for counter at right side | |
} | |
.mfp-figure small { | |
color: @captionSubtitleColor; | |
display: block; | |
font-size: 12px; | |
line-height: 14px; | |
} | |
.mfp-image-holder .mfp-content { | |
max-width: 100%; | |
} | |
.mfp-gallery .mfp-image-holder .mfp-figure { | |
cursor: pointer; | |
} | |
.e() when (@includeMobileLayoutForImage) { | |
@media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) { | |
/** | |
* Remove all paddings around the image on small screen | |
*/ | |
.mfp-img-mobile .mfp-image-holder { | |
padding-left: 0; | |
padding-right: 0; | |
} | |
.mfp-img-mobile img.mfp-img { | |
padding: 0; | |
} | |
/* The shadow behind the image */ | |
.mfp-img-mobile .mfp-figure:after { | |
top: 0; | |
bottom: 0; | |
} | |
.mfp-img-mobile .mfp-bottom-bar { | |
background: rgba(0,0,0,0.6); | |
bottom: 0; | |
margin: 0; | |
top: auto; | |
padding: 3px 5px; | |
position: fixed; | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
.mfp-img-mobile .mfp-bottom-bar:empty { | |
padding: 0; | |
} | |
.mfp-img-mobile .mfp-counter { | |
right: 5px; | |
top: 3px; | |
} | |
.mfp-img-mobile .mfp-close { | |
top: 0; | |
right: 0; | |
width: 35px; | |
height: 35px; | |
line-height: 35px; | |
background: rgba(0, 0, 0, 0.6); | |
position: fixed; | |
text-align: center; | |
padding: 0; | |
} | |
.mfp-img-mobile .mfp-figure small { | |
display: inline; | |
margin-left: 5px; | |
} | |
} | |
} | |
.e(); | |
} | |
.d(); | |
// Scale navigation arrows and reduce padding from sides | |
@media all and (max-width: 900px) { | |
.mfp-arrow { | |
-webkit-transform: scale(0.75); | |
transform: scale(0.75); | |
} | |
.mfp-arrow-left { | |
-webkit-transform-origin: 0; | |
transform-origin: 0; | |
} | |
.mfp-arrow-right { | |
-webkit-transform-origin: 100%; | |
transform-origin: 100%; | |
} | |
.mfp-container { | |
padding-left: @popupPaddingLeftMobile; | |
padding-right: @popupPaddingLeftMobile; | |
} | |
} | |
// IE7 support | |
// Styles that make popup look nicier in old IE | |
.f() when (@IE7support) { | |
.mfp-ie7 { | |
.mfp-img { | |
padding: 0; | |
} | |
.mfp-bottom-bar { | |
width: 600px; | |
left: 50%; | |
margin-left: -300px; | |
margin-top: 5px; | |
padding-bottom: 5px; | |
} | |
.mfp-container { | |
padding: 0; | |
} | |
.mfp-content { | |
padding-top: 44px; | |
} | |
.mfp-close { | |
top: 0; | |
right: 0; | |
padding-top: 0; | |
} | |
} | |
} | |
.f(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nice one. But what is @import "settings";?