mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-03 21:00:14 +00:00 
			
		
		
		
	
		
			
	
	
		
			433 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
		
		
			
		
	
	
			433 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
| 
								 | 
							
								/**********************************************************************
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* Modern experimental ribbon layout...
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								********************************************************* Settings ***/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/********************************************************** Viewer ***/
							 | 
						||
| 
								 | 
							
								.viewer {
							 | 
						||
| 
								 | 
							
									position: relative;
							 | 
						||
| 
								 | 
							
									width: 100vw;
							 | 
						||
| 
								 | 
							
									height: 100vh;
							 | 
						||
| 
								 | 
							
									overflow: hidden;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/*border: solid blue 1px;*/
							 | 
						||
| 
								 | 
							
									box-sizing: border-box;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									user-select: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* XXX this is a stub for printing help/docs... */
							 | 
						||
| 
								 | 
							
								@media print {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.viewer {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/****************************************** Ribbon set and locator ***/
							 | 
						||
| 
								 | 
							
								.ribbon-set {
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									top: 50%;
							 | 
						||
| 
								 | 
							
									left: 50%;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/* NOTE: this needs for scaling/zooming to behave correctly and not 
							 | 
						||
| 
								 | 
							
										shift the element, when its dimensions change... 
							 | 
						||
| 
								 | 
							
										...this is because .ribbon-set will both be used for scaling 
							 | 
						||
| 
								 | 
							
										and aligning... */
							 | 
						||
| 
								 | 
							
									transform-origin: top  left;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									will-change: transform;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.ribbon-locator {
							 | 
						||
| 
								 | 
							
									position: relative;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									top: 0;
							 | 
						||
| 
								 | 
							
									left: 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									will-change: transform;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/********************************************************** Ribbon ***/
							 | 
						||
| 
								 | 
							
								/* XXX for some reason setting image size in vmin stops this from 
							 | 
						||
| 
								 | 
							
								stretching in width... */
							 | 
						||
| 
								 | 
							
								.shadow,
							 | 
						||
| 
								 | 
							
								.ribbon {
							 | 
						||
| 
								 | 
							
									position: relative;
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
									/* XXX BUG: setting this will mess up new ribbon creation....
							 | 
						||
| 
								 | 
							
									display: inline-block;*/
							 | 
						||
| 
								 | 
							
									height: auto;
							 | 
						||
| 
								 | 
							
									/*min-width: 0px;*/
							 | 
						||
| 
								 | 
							
									width: auto;
							 | 
						||
| 
								 | 
							
									overflow: visible;
							 | 
						||
| 
								 | 
							
									white-space: nowrap;
							 | 
						||
| 
								 | 
							
									font-size: 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									float: left;
							 | 
						||
| 
								 | 
							
									clear: both;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									background: var(--ribbon-background-color);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									margin-top: var(--ribbon-margin);
							 | 
						||
| 
								 | 
							
									margin-bottom: var(--ribbon-margin);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									will-change: transform;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.ribbon:empty {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* XXX would be good to make this sticky -- always visible... */
							 | 
						||
| 
								 | 
							
								.ribbon[title]:before {
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									content: attr(title);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									font-size: 52pt;
							 | 
						||
| 
								 | 
							
									font-style: italic;
							 | 
						||
| 
								 | 
							
									font-weight: bold;
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									color: white;
							 | 
						||
| 
								 | 
							
									text-shadow: black 2px 2px 15px;
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									top: -2pt;
							 | 
						||
| 
								 | 
							
									right: 100%;
							 | 
						||
| 
								 | 
							
									margin-right: 20pt;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.single-image-mode .ribbon[title]:before {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.base-ribbon-marker {
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									height: 100%;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									color: transparent;
							 | 
						||
| 
								 | 
							
									font-size: 20pt;
							 | 
						||
| 
								 | 
							
									font-weight: bold;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.base-ribbon-marker:after {
							 | 
						||
| 
								 | 
							
									content: "base ribbon";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									width: var(--image-tile-size);
							 | 
						||
| 
								 | 
							
									bottom: 0px;
							 | 
						||
| 
								 | 
							
									left: 0px;
							 | 
						||
| 
								 | 
							
									padding: 5px;
							 | 
						||
| 
								 | 
							
									box-sizing: border-box;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									z-index: 1000;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									color: white;
							 | 
						||
| 
								 | 
							
									background: black;
							 | 
						||
| 
								 | 
							
									opacity: 0.2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									font-size: 20pt;
							 | 
						||
| 
								 | 
							
									font-weight: bold;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									transform-origin: bottom left;
							 | 
						||
| 
								 | 
							
									transform: rotate(-90deg);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.single-image-mode.viewer .base-ribbon-marker {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*********************************************************** Image ***/
							 | 
						||
| 
								 | 
							
								.marker,
							 | 
						||
| 
								 | 
							
								.current-marker,
							 | 
						||
| 
								 | 
							
								.mark,
							 | 
						||
| 
								 | 
							
								.image {
							 | 
						||
| 
								 | 
							
									position: relative;
							 | 
						||
| 
								 | 
							
									display: inline-block;
							 | 
						||
| 
								 | 
							
									vertical-align: middle;
							 | 
						||
| 
								 | 
							
									text-align:left;
							 | 
						||
| 
								 | 
							
									width: var(--image-tile-size);
							 | 
						||
| 
								 | 
							
									height: var(--image-tile-size);
							 | 
						||
| 
								 | 
							
									font-size: 12pt;
							 | 
						||
| 
								 | 
							
									overflow: hidden;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									box-sizing: border-box;
							 | 
						||
| 
								 | 
							
									color: white;
							 | 
						||
| 
								 | 
							
									/* XXX do we need this???
							 | 
						||
| 
								 | 
							
									text-shadow: 
							 | 
						||
| 
								 | 
							
										black 0.1em 0.1em 0.4em, 
							 | 
						||
| 
								 | 
							
										black 0.1em 0.1em; */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/* NOTE: we can't set the bg color here because it will get 
							 | 
						||
| 
								 | 
							
									 	affected by filters... */
							 | 
						||
| 
								 | 
							
									background: no-repeat 50% transparent;
							 | 
						||
| 
								 | 
							
									background-size: contain;
							 | 
						||
| 
								 | 
							
									border: solid var(--image-border) transparent;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/* XXX we are taking care of this in code -- see if we can use this */
							 | 
						||
| 
								 | 
							
									image-orientation: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.image {
							 | 
						||
| 
								 | 
							
									padding: var(--single-image-indicator-size);
							 | 
						||
| 
								 | 
							
									background-color: var(--image-background-color);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.single-image-mode .image {
							 | 
						||
| 
								 | 
							
									background-color: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.image div {
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									max-width: var(--image-tile-size);
							 | 
						||
| 
								 | 
							
									width: auto;
							 | 
						||
| 
								 | 
							
									max-height: var(--image-tile-size);
							 | 
						||
| 
								 | 
							
									height: auto;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									left: 50%;
							 | 
						||
| 
								 | 
							
									top: 50%;
							 | 
						||
| 
								 | 
							
									transform: translate(-50%,-50%);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									white-space: normal;
							 | 
						||
| 
								 | 
							
									text-align: center;
							 | 
						||
| 
								 | 
							
									text-overflow: ellipsis;
							 | 
						||
| 
								 | 
							
									/*font-size: 2vh;*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									pointer-events: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.crisp-resize .image {
							 | 
						||
| 
								 | 
							
									image-rendering: -webkit-optimize-contrast;
							 | 
						||
| 
								 | 
							
									image-rendering: crisp-edges;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								.current.image {
							 | 
						||
| 
								 | 
							
									border: solid 5px red;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* NOTE: this is essentially a ribbon... */
							 | 
						||
| 
								 | 
							
								.shadow {
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									overflow: visible;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									width: auto;
							 | 
						||
| 
								 | 
							
									height: auto;
							 | 
						||
| 
								 | 
							
									margin: 0px;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									background: black;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									-webkit-transition: all 0.1s ease-in;
							 | 
						||
| 
								 | 
							
									-moz-transition: all 0.1s ease-in;
							 | 
						||
| 
								 | 
							
									-ms-transition: all 0.1s ease-in;
							 | 
						||
| 
								 | 
							
									-o-transition: all 0.1s ease-in;
							 | 
						||
| 
								 | 
							
									transition: all 0.1s ease-in;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.shadow {
							 | 
						||
| 
								 | 
							
									-webkit-transform-origin: 0 0;
							 | 
						||
| 
								 | 
							
									-moz-transform-origin: 0 0;
							 | 
						||
| 
								 | 
							
									-ms-transform-origin: 0 0;
							 | 
						||
| 
								 | 
							
									-o-transform-origin: 0 0;
							 | 
						||
| 
								 | 
							
									transform-origin: 0 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image.moving {
							 | 
						||
| 
								 | 
							
									visibility: hidden;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.current-marker {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									border: solid 5px red;
							 | 
						||
| 
								 | 
							
									background: none;
							 | 
						||
| 
								 | 
							
									z-index: 100;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									top: 0;
							 | 
						||
| 
								 | 
							
									left: 0;
							 | 
						||
| 
								 | 
							
									margin-top: calc(-1 * var(--image-tile-size) / 2);
							 | 
						||
| 
								 | 
							
									margin-left: calc(-1 * var(--image-tile-size) / 2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/* pass events through... (do we need IE10-?) */
							 | 
						||
| 
								 | 
							
									pointer-events: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.marker {
							 | 
						||
| 
								 | 
							
									width: 50px;
							 | 
						||
| 
								 | 
							
									border: none;
							 | 
						||
| 
								 | 
							
									background: no-repeat 50% transparent;
							 | 
						||
| 
								 | 
							
									background-color: transparent;
							 | 
						||
| 
								 | 
							
									color: white;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.marker:after {
							 | 
						||
| 
								 | 
							
									display: block;
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									content: "marker";
							 | 
						||
| 
								 | 
							
									font-size: 32px;
							 | 
						||
| 
								 | 
							
									font-weight: bold;
							 | 
						||
| 
								 | 
							
									text-align: center;
							 | 
						||
| 
								 | 
							
									overflow: visible;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									width: 200px;
							 | 
						||
| 
								 | 
							
									height: 32px;
							 | 
						||
| 
								 | 
							
									top: 50%;
							 | 
						||
| 
								 | 
							
									margin-top: -16px;
							 | 
						||
| 
								 | 
							
									left: 50%;
							 | 
						||
| 
								 | 
							
									margin-left: -100px;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									transform-origin: center  center;
							 | 
						||
| 
								 | 
							
									transform: rotate(270deg) scaleY(1) scaleX(1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									opacity: 0.5;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.single-image-mode.viewer .marker {
							 | 
						||
| 
								 | 
							
									display: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* single image mode transitions */
							 | 
						||
| 
								 | 
							
								/* XXX still buggy and not too needed...
							 | 
						||
| 
								 | 
							
								.single-image-mode.viewer .image {
							 | 
						||
| 
								 | 
							
									position: absolute;
							 | 
						||
| 
								 | 
							
									top: 0px;
							 | 
						||
| 
								 | 
							
									left: 0px;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									opacity: 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.transition(opacity);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.single-image-mode.viewer .current.image {
							 | 
						||
| 
								 | 
							
									opacity: 1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* image turning... */
							 | 
						||
| 
								 | 
							
								/* NOTE: need to account for proportions after turning... */
							 | 
						||
| 
								 | 
							
								.image[orientation="90"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(90deg) scaleY(1) scaleX(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="180"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(180deg) scaleY(1) scaleX(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="270"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(270deg) scaleY(1) scaleX(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Flipped vertically only... */
							 | 
						||
| 
								 | 
							
								/* NOTE: wee need to do all possible combinations here as we can't 
							 | 
						||
| 
								 | 
							
								 	combine different parts of a transform attr from different 
							 | 
						||
| 
								 | 
							
								 	classes */
							 | 
						||
| 
								 | 
							
								.image[flipped*="vertical"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(0deg) scaleY(1) scaleX(-1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="90"][flipped="vertical"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(90deg) scaleY(1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="180"][flipped="vertical"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(180deg) scaleY(1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="270"][flipped="vertical"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(270deg) scaleY(1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Flipped horizontally only... */
							 | 
						||
| 
								 | 
							
								.image[flipped*="horizontal"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(0deg) scaleY(-1) scaleX(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="90"][flipped="horizontal"] {
							 | 
						||
| 
								 | 
							
									.transform(90deg, -1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="180"][flipped="horizontal"] {
							 | 
						||
| 
								 | 
							
									.transform(180deg, -1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="270"][flipped="horizontal"] {
							 | 
						||
| 
								 | 
							
									.transform(270deg, -1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Flipped vertically and horizontally... */
							 | 
						||
| 
								 | 
							
								.image[flipped*="vertical"][flipped*="horizontal"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(0deg) scaleY(-1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="90"][flipped*="vertical"][flipped*="horizontal"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(90deg) scaleY(-1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="180"][flipped*="vertical"][flipped*="horizontal"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(180deg) scaleY(-1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="270"][flipped*="vertical"][flipped*="horizontal"] {
							 | 
						||
| 
								 | 
							
									transform: rotate(270deg) scaleY(-1) scaleX(-1)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* image separators... */
							 | 
						||
| 
								 | 
							
								.ribbon-image-separators.viewer .image {
							 | 
						||
| 
								 | 
							
									box-shadow: 
							 | 
						||
| 
								 | 
							
										9px 4px 0 -8px rgba(128,128,128,0.2), 
							 | 
						||
| 
								 | 
							
										-9px 4px 0 -8px rgba(128,128,128,0.2);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.ribbon-image-separators.viewer .image[orientation="90"],
							 | 
						||
| 
								 | 
							
								.ribbon-image-separators.viewer .image[orientation="270"] {
							 | 
						||
| 
								 | 
							
									box-shadow: 
							 | 
						||
| 
								 | 
							
										4px 9px 0 -8px rgba(128,128,128,0.2), 
							 | 
						||
| 
								 | 
							
										4px -9px 0 -8px rgba(128,128,128,0.2);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.ribbon-image-separators.single-image-mode.viewer .image {
							 | 
						||
| 
								 | 
							
									box-shadow: none;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* default backgrounds */
							 | 
						||
| 
								 | 
							
								/* XXX not sure if we need these... 
							 | 
						||
| 
								 | 
							
								.image {
							 | 
						||
| 
								 | 
							
									background-image: url(images/loading.gif);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="90"] {
							 | 
						||
| 
								 | 
							
									background-image: url(images/loading-90deg.gif);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="180"] {
							 | 
						||
| 
								 | 
							
									background-image: url(images/loading-180deg.gif);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								.image[orientation="270"] {
							 | 
						||
| 
								 | 
							
									background-image: url(images/loading-270deg.gif);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* separator test */
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								.image.red+.image:not(.red):before {
							 | 
						||
| 
								 | 
							
									display: inline-block;
							 | 
						||
| 
								 | 
							
									position: relative;
							 | 
						||
| 
								 | 
							
									content: "";
							 | 
						||
| 
								 | 
							
									top:0px;
							 | 
						||
| 
								 | 
							
									left: -50px;
							 | 
						||
| 
								 | 
							
									width: 100px;
							 | 
						||
| 
								 | 
							
									height: 100%;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									background-color: yellow;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**********************************************************************
							 | 
						||
| 
								 | 
							
								* vim:set spell ft=css :                                             */
							 |