| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | @import '../node_modules/material-symbols/outlined.css'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | /********************************************************* Config ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :root { | 
					
						
							|  |  |  | 	/* dimensions */ | 
					
						
							| 
									
										
										
										
											2023-08-13 13:03:16 +03:00
										 |  |  | 	--gallery-image-base-height: 18rem; | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 	--gallery-image-spacing: 0rem; | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | 	--gallery-current-image-border: 0.7rem; | 
					
						
							|  |  |  | 	--gallery-padding: 3rem; | 
					
						
							|  |  |  | 	--gallery-scrollbar-width: 0.5rem; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	--toolbar-button-size: 2rem; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-24 21:04:42 +03:00
										 |  |  | 	--lightbox-frame: 5vmin; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	--lightbox-image-margin-top: 0.75; | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 	--lightbox-button-size: 2rem; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* theme */ | 
					
						
							|  |  |  | 	--gallery-text-color: black; | 
					
						
							|  |  |  | 	--gallery-secondary-color: silver; | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	--gallery-shade-color: whitesmoke; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	--gallery-background-color: white; | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 	--gallery-accent-color: white; | 
					
						
							|  |  |  | 	--gallery-secondary-accent-color: white; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | 	--lightbox-text-color: black; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	--lightbox-background-color: white; | 
					
						
							| 
									
										
										
										
											2023-07-21 03:16:20 +03:00
										 |  |  | 	/*--lightbox-background-color: rgba(0,0,0,0.8);*/ | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	--color-transition: 1s; | 
					
						
							| 
									
										
										
										
											2023-08-22 21:58:33 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* base font size... */ | 
					
						
							|  |  |  | 	/* XXX can we use this as the basis for sizing for different devices??? */ | 
					
						
							|  |  |  | 	font-size: 5mm; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | /* calculated values... */ | 
					
						
							|  |  |  | /* NOTE: these need to be separeated from the :root values to recalculate... */ | 
					
						
							|  |  |  | body { | 
					
						
							|  |  |  | 	--gallery-image-margin: calc(var(--gallery-image-spacing) / 2); | 
					
						
							|  |  |  | 	--gallery-padding-horizontal: var(--gallery-padding); | 
					
						
							|  |  |  | 	--gallery-padding-vertical: var(--gallery-current-image-border); | 
					
						
							|  |  |  | 	--gallery-padding-top: var(--gallery-padding-vertical); | 
					
						
							|  |  |  | 	--gallery-padding-bottom: var(--gallery-padding-vertical); | 
					
						
							|  |  |  | 	--gallery-padding-left: var(--gallery-padding-horizontal); | 
					
						
							|  |  |  | 	--gallery-padding-right: var(--gallery-padding-horizontal); | 
					
						
							|  |  |  | 	--gallery-image-scroll-margin: calc(2 * var(--gallery-current-image-border)); | 
					
						
							|  |  |  | 	--gallery-empty-height: var(--gallery-image-base-height); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | .gallery-dark { | 
					
						
							|  |  |  | 	--gallery-text-color: silver; | 
					
						
							|  |  |  | 	--gallery-secondary-color: gray; | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	--gallery-shade-color: rgb(50,50,50); | 
					
						
							|  |  |  | 	--gallery-background-color: rgb(10,10,10); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .lightbox-dark { | 
					
						
							|  |  |  | 	--lightbox-text-color: silver; | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	--lightbox-background-color: rgb(10,10,10); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /****************************************************** Scrolling ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ::-webkit-scrollbar { | 
					
						
							|  |  |  | 	width: var(--gallery-scrollbar-width); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ::-webkit-scrollbar-track { | 
					
						
							|  |  |  | 	background-color: transparent; | 
					
						
							|  |  |  | 	border-radius: 100px; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ::-webkit-scrollbar-thumb { | 
					
						
							|  |  |  | 	background-color: var(--gallery-secondary-color); | 
					
						
							|  |  |  | 	border-radius: 100px; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | body { | 
					
						
							|  |  |  | 	overflow-y: scroll; | 
					
						
							| 
									
										
										
										
											2023-07-23 07:13:07 +03:00
										 |  |  | 	/* XXX these for some reason do not work in FF... */ | 
					
						
							|  |  |  | 	scrollbar-width: thin; | 
					
						
							|  |  |  | 	scrollbar-color: transparent var(--gallery-secondary-color); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	color: var(--gallery-text-color); | 
					
						
							|  |  |  | 	background: var(--gallery-background-color); | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	transition: | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | button { | 
					
						
							|  |  |  | 	color: var(--gallery-text-color); | 
					
						
							|  |  |  | 	background: var(--gallery-background-color); | 
					
						
							|  |  |  | 	border: solid 1px var(--gallery-secondary-color); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	transition: | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | button:hover { | 
					
						
							|  |  |  | 	background: var(--gallery-shade-color); | 
					
						
							|  |  |  | 	border: solid 1px var(--gallery-text-color); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | button:active { | 
					
						
							|  |  |  | 	background: var(--gallery-secondary-color); | 
					
						
							|  |  |  | 	border: solid 1px var(--gallery-text-color); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /******************************************************** Gallery ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* XXX need to account for scrollbar popping in and out */ | 
					
						
							|  |  |  | .gallery { | 
					
						
							| 
									
										
										
										
											2023-08-01 18:46:58 +03:00
										 |  |  | 	--base-layer: 10; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | 	position: relative; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-23 06:46:14 +03:00
										 |  |  | 	padding-top: var(--gallery-padding-top); | 
					
						
							|  |  |  | 	padding-bottom: var(--gallery-padding-bottom); | 
					
						
							|  |  |  | 	padding-left: calc( | 
					
						
							|  |  |  | 		var(--gallery-scrollbar-width)  | 
					
						
							|  |  |  | 		+ var(--gallery-padding-left) ); | 
					
						
							|  |  |  | 	padding-right: var(--gallery-padding-right); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:37:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	color: var(--gallery-text-color); | 
					
						
							|  |  |  | 	background: var(--gallery-background-color); | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | 	font-family: sans-serif; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	overflow-x: clip; | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	transition: | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | .gallery .images { | 
					
						
							|  |  |  | 	position: relative; | 
					
						
							|  |  |  | 	display: flex; | 
					
						
							|  |  |  | 	justify-content: flex-start; | 
					
						
							|  |  |  | 	align-content: flex-start; | 
					
						
							|  |  |  | 	flex-flow: row wrap; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* empty... */ | 
					
						
							| 
									
										
										
										
											2023-08-12 00:31:21 +03:00
										 |  |  | .gallery .images:empty { | 
					
						
							|  |  |  | 	height: var(--gallery-empty-height); | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	border: dashed 1px var(--gallery-secondary-color); | 
					
						
							| 
									
										
										
										
											2023-08-12 00:31:21 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | .gallery .images:empty:after, | 
					
						
							|  |  |  | .gallery .images:empty:before { | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	--font-size: 1.5rem; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-12 00:31:21 +03:00
										 |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	width: 100%; | 
					
						
							|  |  |  | 	left: 0; | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | 	line-height: var(--gallery-empty-height); | 
					
						
							| 
									
										
										
										
											2023-08-12 00:31:21 +03:00
										 |  |  | 	text-align: center; | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | 	opacity: 0.6; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .images:empty:before { | 
					
						
							|  |  |  | 	content: "Empty"; | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	font-size: var(--font-size); | 
					
						
							| 
									
										
										
										
											2023-08-12 00:31:21 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | .gallery .images:empty:after { | 
					
						
							|  |  |  | 	content: "(drag new images here)"; | 
					
						
							|  |  |  | 	font-size: small; | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	margin-top: calc(var(--font-size) / 1.3); | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | 	opacity: 0.4; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | /* empty otter... */ | 
					
						
							|  |  |  | .gallery.otter .images:empty:before, | 
					
						
							|  |  |  | .gallery.otter .images:empty:after { | 
					
						
							| 
									
										
										
										
											2023-08-16 02:59:19 +03:00
										 |  |  | 	--font-size: 2em; | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery.otter .images:empty:before { | 
					
						
							|  |  |  | 	content: "🦦"; | 
					
						
							|  |  |  | 	filter: saturate(0) contrast(200%); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery.otter .images:empty:after { | 
					
						
							| 
									
										
										
										
											2023-08-19 01:33:35 +03:00
										 |  |  | 	margin-top: calc(var(--font-size) / 1.5); | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-13 00:23:13 +03:00
										 |  |  | /* image... */ | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | .gallery .images img { | 
					
						
							| 
									
										
										
										
											2023-08-13 13:03:16 +03:00
										 |  |  | 	height: var(--gallery-image-base-height); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	width: auto; | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	border: solid var(--gallery-image-margin) transparent; | 
					
						
							|  |  |  | 	box-sizing: border-box; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-22 15:33:55 +03:00
										 |  |  | 	scroll-margin: var(--gallery-image-scroll-margin); | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	image-rendering: crisp-edges; | 
					
						
							| 
									
										
										
										
											2023-07-21 03:16:20 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cursor: pointer; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | .gallery:not(.lightboxed) .images img:not(.current):hover { | 
					
						
							|  |  |  | 	z-index: calc(var(--base-layer) + 1); | 
					
						
							|  |  |  | 	box-shadow:  | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 		0px 0px 0px calc(var(--gallery-current-image-border) / 5) var(--gallery-accent-color), | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 		0.2em 0.2em 1em 0em rgba(0,0,0,0.8); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* current image... */ | 
					
						
							|  |  |  | .gallery .images img.current { | 
					
						
							|  |  |  | 	z-index: 10; | 
					
						
							|  |  |  | 	box-shadow:  | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 		0px 0px 0px var(--gallery-current-image-border) var(--gallery-accent-color), | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 		0.4em 0.4em 2em 0em rgba(0,0,0,0.8); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery:not(.lightboxed) .images img.current:hover { | 
					
						
							|  |  |  | 	z-index: calc(var(--base-layer) + 1); | 
					
						
							|  |  |  | 	box-shadow:  | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 		0px 0px 0px var(--gallery-current-image-border) var(--gallery-secondary-accent-color), | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 		0.6em 0.6em 3em 0em rgba(0,0,0,0.8); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-21 14:40:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-11 17:33:35 +03:00
										 |  |  | /* dragged image... */ | 
					
						
							|  |  |  | .gallery .images img.dragged { | 
					
						
							| 
									
										
										
										
											2023-08-11 13:21:01 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-11 17:33:35 +03:00
										 |  |  | .gallery .images:has(.dragged) img:not(.dragged) { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* image dragged over... */ | 
					
						
							| 
									
										
										
										
											2023-08-30 02:49:03 +03:00
										 |  |  | .gallery.dragged-over .images img { | 
					
						
							|  |  |  | 	filter: saturate(0) brightness(0.4); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-11 17:33:35 +03:00
										 |  |  | .gallery .images img.dragged-over { | 
					
						
							| 
									
										
										
										
											2023-08-30 02:49:03 +03:00
										 |  |  | 	z-index: calc(var(--base-layer) + 1); | 
					
						
							| 
									
										
										
										
											2023-09-19 13:26:48 +03:00
										 |  |  | 	border-left: none; | 
					
						
							|  |  |  | 	margin-left: var(--gallery-image-margin); | 
					
						
							| 
									
										
										
										
											2023-08-30 02:49:03 +03:00
										 |  |  | 	box-shadow:  | 
					
						
							|  |  |  | 		calc(var(--gallery-current-image-border) * -1) 0px 0px 0px rgba(0,0,0,0.8), | 
					
						
							|  |  |  | 		/* XXX this does not work... */ | 
					
						
							|  |  |  | 		inset var(--gallery-current-image-border) 0px 0px 0px rgba(0,0,0,0.8); | 
					
						
							| 
									
										
										
										
											2023-08-11 13:21:01 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-12 00:51:18 +03:00
										 |  |  | /* image marked for removal... */ | 
					
						
							|  |  |  | .gallery .images img.to-remove { | 
					
						
							|  |  |  | 	opacity: 0.3; | 
					
						
							|  |  |  | 	filter: saturate(0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-01 18:46:58 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | /*************************************************** Image markers ***/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery .images img+.mark { | 
					
						
							| 
									
										
										
										
											2023-08-01 18:46:58 +03:00
										 |  |  | 	z-index: var(--base-layer); | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | 	position: relative; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-02 12:48:47 +03:00
										 |  |  | .gallery .images img:hover+.mark { | 
					
						
							|  |  |  | 	z-index: calc(var(--base-layer) + 1); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery.lightboxed .images img:not(.current)+.mark { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-07-23 06:51:18 +03:00
										 |  |  | .gallery.lightboxed .images img.current+.mark { | 
					
						
							| 
									
										
										
										
											2023-08-02 12:48:47 +03:00
										 |  |  | 	z-index: calc(var(--base-layer) + 1); | 
					
						
							| 
									
										
										
										
											2023-07-22 15:33:55 +03:00
										 |  |  | 	position: fixed; | 
					
						
							|  |  |  | 	bottom: 0; | 
					
						
							|  |  |  | 	right: 0; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-28 23:19:39 +03:00
										 |  |  | /* marker: marked */ | 
					
						
							|  |  |  | .gallery .images img+.mark.marked:after { | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | 	content: ""; | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	display: block; | 
					
						
							|  |  |  | 	width: 1em; | 
					
						
							|  |  |  | 	height: 1em; | 
					
						
							|  |  |  | 	right: 0.5em; | 
					
						
							|  |  |  | 	bottom: 0.5em; | 
					
						
							|  |  |  | 	border-radius: 50%; | 
					
						
							| 
									
										
										
										
											2023-07-20 22:06:51 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | 	background: blue; | 
					
						
							| 
									
										
										
										
											2023-07-22 15:33:55 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	box-shadow: 0em 0em 0em 0.05em rgba(255,255,255,1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cursor: pointer; | 
					
						
							| 
									
										
										
										
											2023-07-20 21:42:17 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | /******************************************************** Toolbar ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-19 12:48:49 +03:00
										 |  |  | /* NOTE: this is used as a reference element to place the toolbars  | 
					
						
							|  |  |  | * 		relative to... */ | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | .gallery .toolbar-anchor { | 
					
						
							|  |  |  | 	position: sticky; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	height: 0; | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 	margin: 0 calc(var(--gallery-padding-horizontal) * -1); | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	overflow: visible; | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	z-index: calc(var(--base-layer) + 2); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* XXX make the toolbar contextual... */ | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | .gallery .toolbar { | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 	--move-x: 0; | 
					
						
							|  |  |  | 	--move-y: 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | 	--padding: 0.5rem; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	--height: calc((var(--toolbar-button-size) + var(--padding) * 2)); | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	/*position: absolute;*/ | 
					
						
							|  |  |  | 	position: relative; | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 	display: inline-block; | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	left: var(--move-x); | 
					
						
							|  |  |  | 	top: var(--move-y); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	width: fit-content; | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	min-height: var(--toolbar-button-size); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	margin: 0.1em 0px; | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | 	padding: var(--padding); | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	padding-right: var(--height); | 
					
						
							|  |  |  | 	padding-left: var(--height); | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 13:23:27 +03:00
										 |  |  | 	/*scroll-margin: var(--gallery-image-scroll-margin);*/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 	translate: 0 0; | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 11:49:34 +03:00
										 |  |  | 	border: solid 1px var(--gallery-secondary-color); | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	border-radius: calc(var(--height) / 8); | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 	background: var(--gallery-background-color); | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	box-shadow: 0.2em 0.2em 0.5em -0.3em rgba(0,0,0,0.8); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	transition:  | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 		left 0.2s, | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 		padding-right 0.2s, | 
					
						
							|  |  |  | 		opacity 0.2s, | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 		translate 0.2s, | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:59:21 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	user-select: none; | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | } | 
					
						
							|  |  |  | /* XXX need to hide parts of the toolbar and make it transparent... */ | 
					
						
							|  |  |  | .gallery.lightboxed .toolbar, | 
					
						
							|  |  |  | .gallery.detailed .toolbar { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-17 17:49:37 +03:00
										 |  |  | /* moving toolbar... */ | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | .gallery .toolbar.moving { | 
					
						
							|  |  |  | 	transition: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-17 17:49:37 +03:00
										 |  |  | /* fixed toolbar... */ | 
					
						
							|  |  |  | .gallery .toolbar.fixed { | 
					
						
							|  |  |  | 	padding-left: var(--padding); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar.fixed .drag-handle { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | /* sticky toolbar indicator... */ | 
					
						
							|  |  |  | .gallery .toolbar.sticky:after { | 
					
						
							|  |  |  | 	content: "lock"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	display: block; | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	bottom: 0; | 
					
						
							|  |  |  | 	right: 0; | 
					
						
							|  |  |  | 	padding: calc(var(--toolbar-button-size) / 10); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	font-family: "Material Symbols Outlined"; | 
					
						
							|  |  |  | 	font-size: small; | 
					
						
							|  |  |  | 	font-weight: bold; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	opacity: 0.3; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	pointer-events: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* collapsed toolbar (default)... */ | 
					
						
							|  |  |  | /* XXX shoud the toolbar be vertical??? */ | 
					
						
							|  |  |  | .gallery .toolbar:not(.shown) { | 
					
						
							| 
									
										
										
										
											2023-09-19 12:48:49 +03:00
										 |  |  | 	translate: calc(-100% + var(--toolbar-button-size) + var(--padding) / 2) 0; | 
					
						
							| 
									
										
										
										
											2023-08-17 11:24:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	left: 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	/*padding-right: calc(var(--padding) / 5);*/ | 
					
						
							|  |  |  | 	padding-right: var(--height); | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar:not(.shown):not(:hover) { | 
					
						
							|  |  |  | 	box-shadow: none; | 
					
						
							| 
									
										
										
										
											2023-08-16 00:36:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	z-index: var(--base-layer); | 
					
						
							|  |  |  | 	animation: 0.5s steps(1) tuck-to-backgroud; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | @keyframes tuck-to-backgroud { | 
					
						
							|  |  |  | 	0% { | 
					
						
							|  |  |  | 		z-index: calc(var(--base-layer) + 2); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	100% { | 
					
						
							|  |  |  | 		z-index: var(--base-layer); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | /* groups... */ | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | .gallery .toolbar>* { | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | 	display: inline-block; | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 	height: calc(100% - var(--padding) * 2); | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | .gallery .toolbar>*:not(:last-child):after { | 
					
						
							|  |  |  | 	content: ""; | 
					
						
							|  |  |  | 	display: inline-block; | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	top: var(--padding); | 
					
						
							|  |  |  | 	bottom: var(--padding); | 
					
						
							|  |  |  | 	margin-left: calc(var(--padding) / 4); | 
					
						
							| 
									
										
										
										
											2023-08-14 12:09:27 +03:00
										 |  |  | 	border-right: solid 1px var(--gallery-secondary-color); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | /* state list (group)... */ | 
					
						
							|  |  |  | .gallery .toolbar .states:empty { | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	display: inline-block; | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar .states:empty:before { | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	content: "Empty..."; | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 	font-family: sans-serif; | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	line-height: var(--toolbar-button-size); | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 	text-align: center; | 
					
						
							|  |  |  | 	vertical-align: bottom; | 
					
						
							|  |  |  | 	padding: 0 0.5em; | 
					
						
							| 
									
										
										
										
											2023-09-13 18:35:19 +03:00
										 |  |  | 	opacity: 0.3; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 11:49:34 +03:00
										 |  |  | /* buttons... */ | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | .gallery .toolbar button { | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	min-width: var(--toolbar-button-size); | 
					
						
							| 
									
										
										
										
											2023-08-14 11:49:34 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	border: solid 1px transparent; | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	background: transparent; | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	font-family: "Material Symbols Outlined"; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	font-size: var(--toolbar-button-size);  | 
					
						
							|  |  |  | 	line-height: var(--toolbar-button-size); | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 	font-weight: 300; | 
					
						
							|  |  |  | 	-webkit-font-smoothing: antialiased; | 
					
						
							|  |  |  | 	-moz-osx-font-smoothing: grayscale; | 
					
						
							|  |  |  | 	text-rendering: optimizeLegibility; | 
					
						
							|  |  |  | 	font-feature-settings: "liga";    | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	text-align: center; | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	color: var(--gallery-text-color); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	transition: | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-09-12 15:59:40 +03:00
										 |  |  | .gallery .toolbar button.collapse:after, | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | .gallery .toolbar button sec { | 
					
						
							|  |  |  | 	display: inline-block; | 
					
						
							|  |  |  | 	position: relative; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	left: 0; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	bottom: calc(var(--toolbar-button-size) / -6); | 
					
						
							|  |  |  | 	margin-left: calc(var(--toolbar-button-size) / -1.5625); | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 	margin-right: -0.15em; | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	font-size: calc(var(--toolbar-button-size) / 1.15); | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* XXX HACK: might be better to use SVG for this... */ | 
					
						
							|  |  |  | 	text-shadow:  | 
					
						
							|  |  |  | 		0em 0.05em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		0.05em 0em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		-0.05em 0em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		0em -0.05em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		0.05em 0.05em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		-0.05em -0.05em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		-0.05em 0.05em 0px var(--gallery-background-color), | 
					
						
							|  |  |  | 		0.05em -0.05em 0px var(--gallery-background-color); | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	transition: | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-09-12 15:59:40 +03:00
										 |  |  | /* collapse indicator... */ | 
					
						
							|  |  |  | .gallery .toolbar button.collapse:after { | 
					
						
							|  |  |  | 	content: "keyboard_double_arrow_left"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar button.collapse:after { | 
					
						
							|  |  |  | 	transition:  | 
					
						
							|  |  |  | 		rotate 0.2s, | 
					
						
							|  |  |  | 		text-shadow var(--color-transition) ease, | 
					
						
							|  |  |  | 		background var(--color-transition) ease, | 
					
						
							|  |  |  | 		color var(--color-transition) ease; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar:not(.shown) button.collapse:after { | 
					
						
							|  |  |  | 	rotate: 180deg; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 11:49:34 +03:00
										 |  |  | .gallery .toolbar button:hover { | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | 	border-radius: calc(var(--toolbar-button-size) / 5); | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	border-color: var(--gallery-secondary-color); | 
					
						
							| 
									
										
										
										
											2023-08-14 11:49:34 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-13 20:15:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | .gallery .toolbar .states button { | 
					
						
							|  |  |  | 	font-family: sans-serif; | 
					
						
							|  |  |  | 	line-height: var(--toolbar-button-size); | 
					
						
							|  |  |  | 	text-align: center; | 
					
						
							|  |  |  | 	vertical-align: bottom; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | /* button: collapse... */ | 
					
						
							|  |  |  | .gallery .toolbar button.collapse { | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	height: 100%; | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							|  |  |  | 	right: 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	opacity: 0.4; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-12 15:51:25 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | .gallery .toolbar button.collapse:hover { | 
					
						
							|  |  |  | 	opacity: 1; | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | 	border-color: transparent; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:45:42 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 02:57:03 +03:00
										 |  |  | .gallery .toolbar button.drag-handle { | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	height: calc(100% - var(--padding) * 2); | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							|  |  |  | 	left: 0; | 
					
						
							|  |  |  | 	margin-top: var(--padding); | 
					
						
							|  |  |  | 	margin-bottom: var(--padding); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 20:59:21 +03:00
										 |  |  | 	font-family: "Material Symbols Outlined"; | 
					
						
							|  |  |  | 	font-size: var(--toolbar-button-size);  | 
					
						
							|  |  |  | 	line-height: var(--toolbar-button-size); | 
					
						
							|  |  |  | 	font-weight: 300; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cursor: pointer; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 00:36:10 +03:00
										 |  |  | 	color: var(--gallery-secondary-color); | 
					
						
							| 
									
										
										
										
											2023-08-15 20:59:21 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery .toolbar .drag-handle:hover { | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	border-top-color: transparent; | 
					
						
							|  |  |  | 	border-left-color: transparent; | 
					
						
							|  |  |  | 	border-bottom-color: transparent; | 
					
						
							| 
									
										
										
										
											2023-08-15 20:59:21 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-13 14:26:13 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | /******************************************************* Overlays ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery.lightboxed, | 
					
						
							|  |  |  | .gallery.detailed { | 
					
						
							|  |  |  | 	--base-layer: 100; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery.lightboxed .lightbox, | 
					
						
							|  |  |  | .gallery.detailed .details { | 
					
						
							|  |  |  | 	display: block; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .lightbox, | 
					
						
							|  |  |  | .gallery .details { | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	display: none; | 
					
						
							|  |  |  | 	position: fixed; | 
					
						
							|  |  |  | 	width: 100%; | 
					
						
							|  |  |  | 	height: 100%; | 
					
						
							|  |  |  | 	top: 0px; | 
					
						
							|  |  |  | 	left: 0px; | 
					
						
							| 
									
										
										
										
											2023-08-01 18:46:58 +03:00
										 |  |  | 	z-index: var(--base-layer); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	text-align: center; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 16:40:59 +03:00
										 |  |  | 	color: var(--gallery-text-color); | 
					
						
							|  |  |  | 	background: var(--gallery-background-color); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*------------------------------------------------------ Lightbox ---*/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 16:40:59 +03:00
										 |  |  | .gallery .lightbox { | 
					
						
							|  |  |  | 	color: var(--lightbox-text-color); | 
					
						
							|  |  |  | 	background: var(--lightbox-background-color); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-07-21 21:24:40 +03:00
										 |  |  | .gallery .lightbox.show-caption:before { | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	content: attr(caption); | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	bottom: 0.5em; | 
					
						
							|  |  |  | 	left: 0.5em; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .lightbox.clickable { | 
					
						
							| 
									
										
										
										
											2023-07-21 03:16:20 +03:00
										 |  |  | 	cursor: pointer; | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							|  |  |  | /* XXX add metadata display... */ | 
					
						
							|  |  |  | .gallery .lightbox img { | 
					
						
							|  |  |  | 	object-fit: contain; | 
					
						
							|  |  |  | 	width: calc( | 
					
						
							|  |  |  | 		100vw  | 
					
						
							| 
									
										
										
										
											2023-07-24 21:04:42 +03:00
										 |  |  | 		- var(--lightbox-frame) * 2); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	height: calc( | 
					
						
							|  |  |  | 		100vh  | 
					
						
							| 
									
										
										
										
											2023-07-24 21:04:42 +03:00
										 |  |  | 		- var(--lightbox-frame) * 2); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	margin-top: calc( | 
					
						
							| 
									
										
										
										
											2023-07-24 21:04:42 +03:00
										 |  |  | 		var(--lightbox-frame)  | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 		* var(--lightbox-image-margin-top));  | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*------------------------------------------------------- Details ---*/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery .details img { | 
					
						
							| 
									
										
										
										
											2023-08-03 15:20:42 +03:00
										 |  |  | 	width: 20em; | 
					
						
							|  |  |  | 	height: 20em; | 
					
						
							|  |  |  | 	padding: 0.5em; | 
					
						
							|  |  |  | 	object-fit: contain; | 
					
						
							|  |  |  | 	border: solid 1px black; | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /******************************************************* Controls ****/ | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | /* XXX these are only used in the lightbox... */ | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | .gallery .buttons { | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	display: flex; | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							|  |  |  | 	right: 0; | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .button { | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	disbplay: inline-block; | 
					
						
							| 
									
										
										
										
											2023-07-21 03:16:20 +03:00
										 |  |  | 	cursor: pointer; | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	width: var(--lightbox-button-size); | 
					
						
							|  |  |  | 	height: var(--lightbox-button-size); | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	font-size: var(--lightbox-button-size); | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	line-height: var(--lightbox-button-size); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	filter: saturate(0); | 
					
						
							| 
									
										
										
										
											2023-08-03 16:40:59 +03:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	opacity: 0.1; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .button:hover { | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 	opacity: 1; | 
					
						
							|  |  |  | 	filter: saturate(1); | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	color: var(--lightbox-text-color); | 
					
						
							| 
									
										
										
										
											2023-08-03 16:40:59 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* XXX HACK: might be better to use SVG for this... */ | 
					
						
							|  |  |  | 	text-shadow:  | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 		0.02em 0.02em 0em var(--lightbox-background-color), | 
					
						
							|  |  |  | 		-0.02em -0.02em 0em var(--lightbox-background-color), | 
					
						
							|  |  |  | 		-0.02em 0.02em 0em var(--lightbox-background-color), | 
					
						
							|  |  |  | 		0.02em -0.02em 0em var(--lightbox-background-color); | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							|  |  |  | /* controls: close... */ | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .button.close:after { | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	content: "✕"; | 
					
						
							| 
									
										
										
										
											2023-08-15 16:57:21 +03:00
										 |  |  | 	/*color: red;*/ | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .button.fullscreen:after { | 
					
						
							| 
									
										
										
										
											2023-07-27 13:26:11 +03:00
										 |  |  | 	content: "⛶"; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-03 14:10:59 +03:00
										 |  |  | .gallery .button.info:after { | 
					
						
							|  |  |  | 	content: "i"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .button.prev:after { | 
					
						
							|  |  |  | 	content: "<"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .button.next:after { | 
					
						
							|  |  |  | 	content: ">"; | 
					
						
							| 
									
										
										
										
											2023-08-02 19:01:34 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:13:09 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 14:38:12 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | /********************************************************* Splash ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery .loading { | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							|  |  |  | 	display: block; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	top: 0; | 
					
						
							|  |  |  | 	left: 0; | 
					
						
							|  |  |  | 	width: 100%; | 
					
						
							|  |  |  | 	height:100%; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	text-align: center; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	z-index: calc(var(--base-layer) * 2); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	background: var(--gallery-background-color); | 
					
						
							|  |  |  | 	opacity: 0.5; | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery.ready .loading { | 
					
						
							|  |  |  |     animation: fadeOutAnimation ease 2s; | 
					
						
							|  |  |  |     animation-iteration-count: 1; | 
					
						
							|  |  |  |     animation-fill-mode: forwards; | 
					
						
							|  |  |  | 	pointer-events: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | @keyframes fadeOutAnimation { | 
					
						
							|  |  |  | 	0% { | 
					
						
							|  |  |  | 		opacity: 1; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	100% { | 
					
						
							|  |  |  | 		opacity: 0; | 
					
						
							|  |  |  | 		visibility: hidden; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery.ready .loading * { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | /* loading bar animation... */ | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | .gallery .loading>div { | 
					
						
							|  |  |  | 	--bar-size: 0.2rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	position: sticky; | 
					
						
							|  |  |  | 	top: var(--bar-size); | 
					
						
							| 
									
										
										
										
											2023-08-18 17:54:17 +03:00
										 |  |  | 	height: var(--bar-size); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	background: rgba(0,0,0,0.1); | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery .loading>div:before, | 
					
						
							|  |  |  | .gallery .loading>div:after { | 
					
						
							|  |  |  | 	content: ""; | 
					
						
							|  |  |  | 	position: absolute; | 
					
						
							| 
									
										
										
										
											2023-08-18 17:54:17 +03:00
										 |  |  | 	top: 0; | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | 	left: 0; | 
					
						
							|  |  |  | 	width: 100%; | 
					
						
							|  |  |  | 	height: var(--bar-size); | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 	background: var(--gallery-text-color); | 
					
						
							| 
									
										
										
										
											2023-08-18 17:54:17 +03:00
										 |  |  | 	opacity: 0.5; | 
					
						
							| 
									
										
										
										
											2023-08-18 17:48:53 +03:00
										 |  |  | } | 
					
						
							|  |  |  | .gallery .loading>div:after { | 
					
						
							|  |  |  |     animation: loadingBarAnimation ease infinite alternate 2s; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .loading>div:before { | 
					
						
							|  |  |  | 	width: 50%; | 
					
						
							|  |  |  |     animation: loadingBarAnimation ease infinite alternate 1.5s; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | @keyframes loadingBarAnimation { | 
					
						
							|  |  |  | 	0% { | 
					
						
							|  |  |  | 		translate: -100%; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	100% { | 
					
						
							|  |  |  | 		translate: 100%; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-18 23:06:38 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* loading images animation... */ | 
					
						
							|  |  |  | .gallery:not(.ready) .images .mark { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery:not(.ready) .images img { | 
					
						
							|  |  |  | 	--duration: 3s; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	--delay: 0s; | 
					
						
							|  |  |  | 	--extend: 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	box-shadow: none; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     animation:  | 
					
						
							|  |  |  | 		loadingImagesAnimation  | 
					
						
							|  |  |  | 			ease  | 
					
						
							|  |  |  | 			infinite  | 
					
						
							|  |  |  | 			alternate  | 
					
						
							|  |  |  | 			calc(var(--duration) * var(--extend))  | 
					
						
							|  |  |  | 			var(--delay); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* variations... */ | 
					
						
							|  |  |  | .gallery .images img:nth-child(2n) { | 
					
						
							|  |  |  | 	--delay: 0.2s; | 
					
						
							|  |  |  | 	--extend: 0.9; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .images img:nth-child(3n) { | 
					
						
							|  |  |  | 	--delay: 0.5s; | 
					
						
							|  |  |  | 	--extend: 1.3; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .images img:nth-child(5n) { | 
					
						
							|  |  |  | 	--delay: 0.4s; | 
					
						
							|  |  |  | 	--extend: 1.6; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .gallery .images img:nth-child(7n) { | 
					
						
							|  |  |  | 	--delay: 0.1s; | 
					
						
							|  |  |  | 	--extend: 0.6; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | @keyframes loadingImagesAnimation { | 
					
						
							|  |  |  | 	0% { | 
					
						
							|  |  |  | 		filter: contrast(0); | 
					
						
							|  |  |  | 		opacity: 0.2; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	50% { | 
					
						
							|  |  |  | 		filter: contrast(0); | 
					
						
							|  |  |  | 		opacity: 0.3; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	100% { | 
					
						
							|  |  |  | 		filter: contrast(0); | 
					
						
							|  |  |  | 		opacity: 0.1; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************** Utils ****/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .gallery:not(.lightboxed):not(.detailed) .hide-in-gallery, | 
					
						
							|  |  |  | .gallery.lightboxed .hide-in-lightbox, | 
					
						
							|  |  |  | .gallery.detailed .hide-in-details { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 14:38:12 +03:00
										 |  |  | 	 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 13:16:55 +03:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                                                */ |