UNPKG

8.61 kBSCSSView Raw
1@import 'lg-variables';
2@import 'lg-mixins';
3// Clearfix
4.lg-group:after {
5 content: '';
6 display: table;
7 clear: both;
8}
9
10// lightgallery core
11
12.lg-container {
13 display: none;
14 outline: none;
15 &.lg-show {
16 display: block;
17 }
18}
19.lg-on {
20 scroll-behavior: unset;
21}
22.lg-overlay-open {
23 overflow: hidden;
24}
25
26// for idle state
27.lg-toolbar,
28.lg-prev,
29.lg-next,
30.lg-pager-outer,
31.lg-hide-sub-html .lg-sub-html {
32 opacity: 0;
33 will-change: transform, opacity;
34 @include transitionCustom(
35 transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s,
36 opacity 0.25s cubic-bezier(0, 0, 0.25, 1) 0s
37 );
38}
39// for idle state
40.lg-show-in {
41 .lg-toolbar,
42 .lg-prev,
43 .lg-next,
44 .lg-pager-outer {
45 opacity: 1;
46 }
47 &.lg-hide-sub-html {
48 .lg-sub-html {
49 opacity: 1;
50 }
51 }
52 .lg-hide-items {
53 .lg-prev {
54 opacity: 0;
55 @include translate3d(-10px, 0, 0);
56 }
57
58 .lg-next {
59 opacity: 0;
60 @include translate3d(10px, 0, 0);
61 }
62
63 .lg-toolbar {
64 opacity: 0;
65 @include translate3d(0, -10px, 0);
66 }
67
68 &.lg-hide-sub-html {
69 .lg-sub-html {
70 opacity: 0;
71 @include translate3d(0, 20px, 0);
72 }
73 }
74 }
75}
76
77.lg-outer {
78 width: 100%;
79 height: 100%;
80 position: fixed;
81 top: 0;
82 left: 0;
83 z-index: $zindex-outer;
84 text-align: left;
85 opacity: 0.001;
86 outline: none;
87 will-change: auto;
88 overflow: hidden;
89 // For start/end transition
90 @include transition(opacity 0.15s ease 0s);
91
92 * {
93 @include box-sizing(border-box);
94 }
95
96 &.lg-zoom-from-image {
97 opacity: 1;
98 }
99
100 &.lg-visible {
101 opacity: 1;
102 }
103
104 // Set transition speed and timing function
105 &.lg-css3 {
106 .lg-item:not(.lg-start-end-progress) {
107 &.lg-prev-slide,
108 &.lg-next-slide,
109 &.lg-current {
110 @include transition-duration(inherit !important);
111 @include transition-timing-function(inherit !important);
112 }
113 }
114 }
115
116 // Remove transition while dragging
117 &.lg-css3.lg-dragging {
118 .lg-item {
119 &.lg-prev-slide,
120 &.lg-next-slide,
121 &.lg-current {
122 @include transition-duration(0s !important);
123 opacity: 1;
124 }
125 }
126 }
127
128 // Set cursor grab while dragging
129 &.lg-grab {
130 img.lg-object {
131 @include grab-cursor;
132 }
133 }
134
135 &.lg-grabbing {
136 img.lg-object {
137 @include grabbing-cursor;
138 }
139 }
140
141 .lg-content {
142 position: absolute;
143 top: 0;
144 left: 0;
145 right: 0;
146 bottom: 0;
147 }
148
149 .lg-inner {
150 width: 100%;
151 position: absolute;
152 left: 0;
153 top: 0;
154 bottom: 0;
155 @include transition(opacity 0s);
156 white-space: nowrap;
157 }
158
159 .lg-item {
160 &:not(.lg-start-end-progress) {
161 background: url('#{$lg-path-images}/loading.gif') no-repeat scroll
162 center center transparent;
163 }
164 display: none !important;
165 }
166 &.lg-css3 {
167 .lg-prev-slide,
168 .lg-current,
169 .lg-next-slide {
170 display: inline-block !important;
171 }
172 }
173 &.lg-css {
174 .lg-current {
175 display: inline-block !important;
176 }
177 }
178
179 .lg-item,
180 .lg-img-wrap {
181 display: inline-block;
182 text-align: center;
183 position: absolute;
184 width: 100%;
185 height: 100%;
186
187 &:before {
188 content: '';
189 display: inline-block;
190 height: 100%;
191 vertical-align: middle;
192 }
193 }
194
195 .lg-img-wrap {
196 position: absolute;
197 left: 0;
198 right: 0;
199 top: 0;
200 bottom: 0;
201
202 white-space: nowrap;
203 font-size: 0;
204 }
205
206 .lg-item {
207 &.lg-complete {
208 background-image: none;
209 }
210
211 &.lg-current {
212 z-index: $zindex-item;
213 }
214 }
215
216 .lg-object {
217 display: inline-block;
218 vertical-align: middle;
219 max-width: 100%;
220 max-height: 100%;
221 width: auto;
222 height: auto;
223 position: relative;
224 }
225
226 // Hide title div if empty
227 .lg-empty-html {
228 &.lg-sub-html,
229 .lg-sub-html {
230 display: none;
231 }
232 }
233
234 &.lg-hide-download {
235 .lg-download {
236 opacity: $lg-toolbar-icon-disabled-opacity;
237 pointer-events: none;
238 }
239 }
240
241 .lg-first-slide {
242 .lg-dummy-img {
243 position: absolute;
244 top: 50%;
245 left: 50%;
246 }
247 }
248
249 &.lg-components-open {
250 &:not(.lg-zoomed) {
251 .lg-components {
252 @include translate3d(0, 0%, 0);
253 opacity: 1;
254 }
255 .lg-sub-html {
256 opacity: 1;
257 transition: opacity 0.2s ease-out 0.15s;
258 }
259 }
260 }
261}
262
263.lg-backdrop {
264 position: fixed;
265 top: 0;
266 left: 0;
267 right: 0;
268 bottom: 0;
269 z-index: $zindex-backdrop;
270 background-color: $lg-theme-color;
271 opacity: 0;
272 will-change: auto;
273 @include transition(opacity 333ms ease-in 0s);
274 &.in {
275 opacity: $backdrop-opacity;
276 }
277}
278
279// Default slide animations. Should be placed at the bottom of the animation css
280.lg-css3 {
281 // Remove all transition effects
282 &.lg-no-trans {
283 .lg-prev-slide,
284 .lg-next-slide,
285 .lg-current {
286 @include transitionCustom(none 0s ease 0s !important);
287 }
288 }
289
290 &.lg-use-css3 {
291 .lg-item {
292 @include backface-visibility(hidden);
293 }
294 }
295
296 // Fade mode
297 &.lg-fade {
298 .lg-item {
299 opacity: 0;
300
301 &.lg-current {
302 opacity: 1;
303 }
304
305 // transition timing property and duration will be over written from javascript
306 &.lg-prev-slide,
307 &.lg-next-slide,
308 &.lg-current {
309 @include transitionCustom(opacity 0.1s ease 0s);
310 }
311 }
312 }
313 &.lg-use-css3 {
314 .lg-item {
315 &.lg-start-progress {
316 @include transitionCustom(
317 transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s
318 //transform 1s cubic-bezier(0.34, 1.56, 0.64, 1) 0s,
319 );
320 }
321 &.lg-start-end-progress {
322 @include transitionCustom(
323 transform 1s cubic-bezier(0, 0, 0.25, 1) 0s
324 );
325 }
326 }
327 }
328
329 &.lg-slide {
330 &.lg-use-css3 {
331 .lg-item {
332 opacity: 0;
333
334 &.lg-prev-slide {
335 @include translate3d(-100%, 0, 0);
336 }
337
338 &.lg-next-slide {
339 @include translate3d(100%, 0, 0);
340 }
341
342 &.lg-current {
343 @include translate3d(0, 0, 0);
344 opacity: 1;
345 }
346
347 // transition timing property and duration will be over written from javascript
348 &.lg-prev-slide,
349 &.lg-next-slide,
350 &.lg-current {
351 @include transitionCustom(
352 transform 1s cubic-bezier(0, 0, 0.25, 1) 0s,
353 opacity 0.1s ease 0s
354 );
355 }
356 }
357 }
358 }
359}
360
361.lg-container {
362 display: none;
363 &.lg-show {
364 display: block;
365 }
366
367 // Remove transition while dragging
368 &.lg-dragging-vertical {
369 .lg-backdrop {
370 @include transition-duration(0s !important);
371 }
372 .lg-css3 {
373 .lg-item {
374 &.lg-current {
375 @include transition-duration(0s !important);
376 opacity: 1;
377 }
378 }
379 }
380 }
381}
382
383// Inline Gallery
384
385.lg-inline {
386 .lg-backdrop,
387 .lg-outer {
388 position: absolute;
389 }
390 .lg-backdrop {
391 z-index: 1;
392 }
393 .lg-outer {
394 z-index: 2;
395 }
396 .lg-maximize {
397 &:after {
398 content: '\e909';
399 }
400 }
401}
402
403// Components
404.lg-components {
405 @include translate3d(0, 100%, 0);
406 will-change: transform;
407 @include transitionCustom(transform 0.35s ease-out 0s);
408 z-index: $zindex-components;
409 position: absolute;
410 bottom: 0;
411 right: 0;
412 left: 0;
413}