mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
588 lines
13 KiB
CSS
Executable File
588 lines
13 KiB
CSS
Executable File
/**********************************************************************
|
|
*
|
|
* This module is intended for quick and dirty tests and CSS experiments
|
|
*
|
|
* For production move the code from here to a more appropriate location
|
|
*
|
|
*
|
|
**********************************************************************/
|
|
|
|
|
|
body {
|
|
margin: 0;
|
|
/* this will prevent odd blur effects when blurring out specific
|
|
elements... */
|
|
background: black;
|
|
}
|
|
|
|
/* show image gid... */
|
|
.visible-gid .image:after {
|
|
content: attr(gid);
|
|
display: block;
|
|
position: relative;
|
|
color: red;
|
|
margin: 10px;
|
|
width: 20px;
|
|
height: 20px;
|
|
text-align: center;
|
|
border: solid 2px red;
|
|
border-radius: 50%;
|
|
background: black;
|
|
}
|
|
|
|
|
|
/*
|
|
.image.current {
|
|
border-color: red;
|
|
}
|
|
*/
|
|
|
|
.shadow {
|
|
margin: 0px;
|
|
z-index: 4000;
|
|
}
|
|
.ui-bounds-indicators {
|
|
z-index: 5000;
|
|
}
|
|
|
|
|
|
.viewer:not(.no-transitions) .range-offscreen-indicator:not(.no-transitions) {
|
|
transition: all 0.1s linear;
|
|
}
|
|
|
|
|
|
/* basic animation... */
|
|
.viewer:not(.no-transitions) {
|
|
-webkit-transition: background-color 0.8s ease;
|
|
-moz-transition: background-color 0.8s ease;
|
|
-ms-transition: background-color 0.8s ease;
|
|
-o-transition: background-color 0.8s ease;
|
|
transition: background-color 0.8s ease;
|
|
}
|
|
|
|
.viewer:not(.no-transitions) .ribbon-set:not(.no-transitions) {
|
|
-webkit-transition: all 0.1s linear, transform 0.1s linear;
|
|
-moz-transition: all 0.1s linear, transform 0.1s linear;
|
|
-ms-transition: all 0.1s linear, transform 0.1s linear;
|
|
-o-transition: all 0.1s linear, transform 0.1s linear;
|
|
transition: all 0.1s linear, transform 0.1s linear;
|
|
}
|
|
.viewer:not(.no-transitions) .ribbon-locator:not(.no-transitions) {
|
|
-webkit-transition: all 0.1s linear, transform 0.1s linear;
|
|
-moz-transition: all 0.1s linear, transform 0.1s linear;
|
|
-ms-transition: all 0.1s linear, transform 0.1s linear;
|
|
-o-transition: all 0.1s linear, transform 0.1s linear;
|
|
transition: all 0.1s linear, transform 0.1s linear;
|
|
}
|
|
|
|
.viewer:not(.no-transitions) .ribbon:not(.no-transitions) {
|
|
-webkit-transition: all 0.1s ease-out;
|
|
-moz-transition: all 0.1s ease-out;
|
|
-ms-transition: all 0.1s ease-out;
|
|
-o-transition: all 0.1s ease-out;
|
|
transition: all 0.1s ease-out;
|
|
}
|
|
|
|
/* XXX not 100% sure about this...
|
|
*/
|
|
:not(.no-transitions) .current-marker:not(.no-transitions) {
|
|
-webkit-transition: transform 0.1s ease-out;
|
|
-moz-transition: transform 0.1s ease-out;
|
|
-ms-transition: transform 0.1s ease-out;
|
|
-o-transition: transform 0.1s ease-out;
|
|
transition: transform 0.1s ease-out;
|
|
}
|
|
|
|
/* XXX should this be !important */
|
|
.no-transitions {
|
|
-webkit-transition: none !important;
|
|
-moz-transition: none !important;
|
|
-ms-transition: none !important;
|
|
-o-transition: none !important;
|
|
transition: none !important;
|
|
}
|
|
|
|
/* XXX think of a way not to use !important */
|
|
.single-image-mode .ribbon,
|
|
.single-image-mode .ribbon-set {
|
|
-webkit-transition: none !important;
|
|
-moz-transition: none !important;
|
|
-ms-transition: none !important;
|
|
-o-transition: none !important;
|
|
transition: none !important;
|
|
}
|
|
|
|
|
|
/* TEST: this is mostly speed limited... */
|
|
.ribbon {
|
|
box-shadow: 5px 5px 50px -5px rgba(0, 0, 0, 0.2);
|
|
|
|
-webkit-transition: box-shadow 0.8s ease;
|
|
-moz-transition: box-shadow 0.8s ease;
|
|
-ms-transition: box-shadow 0.8s ease;
|
|
-o-transition: box-shadow 0.8s ease;
|
|
transition: box-shadow 0.8s ease;
|
|
}
|
|
.current.ribbon {
|
|
box-shadow: 5px 5px 60px -5px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.single-image-mode .ribbon {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.viewer .lock-clicks {
|
|
position: absolute;
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: transparent;
|
|
cursor: auto;
|
|
z-index: 10000;
|
|
}
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
.image-bw {
|
|
/*filter: saturate(0);*/
|
|
filter: grayscale(1);
|
|
}
|
|
.image-show-shadows {
|
|
filter: contrast(0.8) brightness(3) contrast(1.5);
|
|
}
|
|
.image-show-highlights {
|
|
filter: contrast(0.8) brightness(0.6) contrast(1.2);
|
|
}
|
|
.image-edge-detect {
|
|
filter: url(#EdgeDetect);
|
|
/* XXX this does not work in chrome + local file... */
|
|
/*filter: url(filters.svg#EdgeDetect);*/
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
/* scrollbar setup... */
|
|
.browse-widget ::-webkit-scrollbar {
|
|
width: 10px;
|
|
height: 10px;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-button {
|
|
display: none;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track {
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track-piece {
|
|
background: transparent;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track-piece {
|
|
background: rgba(0, 0, 0, 0.05);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-thumb {
|
|
background: rgba(0, 0, 0, 0.15);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(0, 0, 0, 0.3);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-corner {
|
|
}
|
|
.browse-widget ::-webkit-resizer {
|
|
}
|
|
|
|
|
|
.keyboard-shortcut {
|
|
text-decoration: none !important;
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
.keyboard-shortcut:after {
|
|
content: "";
|
|
position: absolute;
|
|
display: block;
|
|
width: 100%;
|
|
margin-top: -0.2em;
|
|
border-top: solid 0.1em silver;
|
|
opacity: 1;
|
|
}
|
|
|
|
|
|
|
|
.browse-widget.cloud-view .list .item {
|
|
font-size: small;
|
|
}
|
|
|
|
|
|
/* browse pinned items... */
|
|
.browse-widget .list .item:not(.pinned) .pin-set {
|
|
display: none;
|
|
}
|
|
.browse-widget .list .item.pinned .pin-unset {
|
|
display: none;
|
|
}
|
|
|
|
|
|
.browse-widget .list .item .sort-handle {
|
|
display: inline-block;
|
|
float: left;
|
|
|
|
padding-left: 0.2em;
|
|
padding-right: 0.5em;
|
|
|
|
opacity: 0.2;
|
|
}
|
|
|
|
|
|
/*
|
|
.browse-widget .list .item.pinned + :not(.pinned) {
|
|
border-top: solid 1px rgba(255, 255, 255, 0.3);
|
|
}
|
|
*/
|
|
.browse-widget .list .pinned-separator:first-child,
|
|
.browse-widget .list .pinned-separator:last-child {
|
|
display: none;
|
|
}
|
|
|
|
|
|
/* Metadata viewer */
|
|
.item-value-view .text:first-child,
|
|
.browse-widget.table-view .list .item .text:first-child {
|
|
width: 50%;
|
|
font-weight: bold;
|
|
}
|
|
.item-value-view .text:nth-child(2),
|
|
.browse-widget.table-view .list .item .text:nth-child(2) {
|
|
font-style: italic;
|
|
|
|
-moz-user-select: auto;
|
|
-webkit-user-select: auto;
|
|
-o-user-select: auto;
|
|
-ms-user-select: auto;
|
|
user-select: auto;
|
|
|
|
cursor: text;
|
|
}
|
|
|
|
/* Collection list */
|
|
.browse-widget.collection-list .list .item .text[cropped]:after {
|
|
content: "(cropped)";
|
|
margin-left: 5px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.collection-list .list .item .text[unsaved]:after {
|
|
content: "*";
|
|
margin-left: 0px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.collection-list .list .item .text[unsaved][cropped]:after {
|
|
content: "* (cropped)";
|
|
margin-left: 0px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* Feature list */
|
|
.browse-widget.feature-list .list .item[root="true"] .text:after {
|
|
content: "*";
|
|
margin-left: 0px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* External Editor List */
|
|
.browse-widget.editor-list .list .item:first-child .text:after {
|
|
content: "(primary)";
|
|
margin-left: 5px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
/* XXX this is ugly -- use a class... */
|
|
.browse-widget.editor-list .list .item:first-child .button:nth-child(4) {
|
|
opacity: 0.1;
|
|
}
|
|
.browse-widget.editor-list .list .item:nth-child(2):not(:last-child) .text:after {
|
|
content: "(secondary)";
|
|
margin-left: 5px;
|
|
opacity: 0.5;
|
|
font-style: italic;
|
|
}
|
|
/* XXX this is ugly -- use a class... */
|
|
.browse-widget.editor-list .list .item:nth-child(2) .button:nth-child(3) {
|
|
opacity: 0.1;
|
|
}
|
|
|
|
/* slideshow interval list... */
|
|
.browse-widget.tail-action .list .item:last-child {
|
|
margin-top: 0.2em;
|
|
border-top: solid 1px rgba(255,255,255, 0.2);
|
|
}
|
|
.browse-widget.tail-action .list .item:last-child .text {
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.tail-action .list .item:last-child .button {
|
|
display: none;
|
|
}
|
|
|
|
/* do not show top border if after another action or separator... */
|
|
.browse-widget .list>.warn {
|
|
background-color: yellow !important;
|
|
color: red !important;
|
|
font-weight: bolder !important;
|
|
}
|
|
|
|
/* Dialog highlight experiment... */
|
|
.browse-widget {
|
|
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
|
|
}
|
|
/*
|
|
.light .browse-widget {
|
|
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
|
|
}
|
|
.dark .browse-widget {
|
|
border-bottom: solid 7px rgba(100, 100, 100, 0.5);
|
|
}
|
|
*/
|
|
|
|
.browse-widget.file-browser {
|
|
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
|
|
}
|
|
/*
|
|
.light .browse-widget.file-browser {
|
|
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
|
|
}
|
|
.dark .browse-widget.file-browser {
|
|
border-bottom: solid 7px rgba(255, 255, 0, 0.5);
|
|
}
|
|
*/
|
|
/* XXX not sure about these... */
|
|
.browse-widget.save-history,
|
|
.browse-widget.location-history {
|
|
border-bottom: solid 7px rgba(0, 0, 255, 0.2);
|
|
}
|
|
|
|
/* XXX experimental key mappings... */
|
|
.browse-widget.show-keys .list .item:after {
|
|
display: inline;
|
|
position: relative;
|
|
content: attr(keys);
|
|
|
|
float: right;
|
|
margin-left: 0.5em;
|
|
margin-right: 0.5em;
|
|
|
|
opacity: 0.3;
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.show-keys .list .item.disabled:after {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.browse-widget.show-keys .list .item:hover:after {
|
|
opacity: 0.5;
|
|
}
|
|
.browse-widget.show-keys .list .item.disabled:hover:after {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* make buttons a bit different in action browser... */
|
|
.browse-widget.browse-actions .list .button {
|
|
background-color: rgba(0, 0, 0, 0.12);
|
|
}
|
|
.dark .browse-widget.browse-actions .list .button {
|
|
background-color: rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
|
|
|
|
/* key binding editor... */
|
|
.browse-widget.key-bindings .list .item:not(.selected):not(.mode):nth-child(even) {
|
|
background: rgba(0, 0, 0, 0.03);
|
|
}
|
|
.browse-widget.key-bindings .list .item .button {
|
|
background-color: rgba(0, 0, 0, 0.12);
|
|
}
|
|
|
|
.browse-widget.key-bindings .list>.drop-list .text:first-child {
|
|
font-weight: bold;
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.key-bindings .list>.special-action .text:first-child {
|
|
font-style: italic;
|
|
font-weight: bold;
|
|
}
|
|
.browse-widget.key-bindings .list>.info {
|
|
font-style: italic;
|
|
}
|
|
|
|
.browse-widget.key-bindings .list .item .text:not(:first-child) {
|
|
display: inline;
|
|
position: relative;
|
|
|
|
float: right;
|
|
margin-left: 1em;
|
|
margin-right: 1em;
|
|
|
|
opacity: 0.8;
|
|
font-style: italic;
|
|
}
|
|
/* NOTE: the last element is a space... */
|
|
.browse-widget.key-bindings.browse .list .item .text:last-child {
|
|
margin-right: 0em;
|
|
}
|
|
|
|
/* key doc... */
|
|
.browse-widget.key-bindings .list>.key[doc]:after {
|
|
display: inline;
|
|
content: " -- " attr(doc);
|
|
font-style: italic;
|
|
opacity: 0.5;
|
|
margin-left: 0.5em;
|
|
}
|
|
.browse-widget.key-bindings.edit .list>.key.non-action:before {
|
|
display: inline;
|
|
content: " (non-action) ";
|
|
opacity: 0.5;
|
|
margin-left: 0.5em;
|
|
float: none;
|
|
}
|
|
|
|
|
|
.browse-widget.key-bindings .list>.new {
|
|
font-style: italic;
|
|
}
|
|
.browse-widget.key-bindings .list>.new:not(.selected) {
|
|
opacity: 0.3;
|
|
}
|
|
.browse-widget.key-bindings .list>.new.selected {
|
|
}
|
|
|
|
|
|
/* dark theme... */
|
|
.dark .browse-widget.key-bindings .list .item:not(.selected):not(.mode):nth-child(even) {
|
|
background: rgba(255, 255, 255, 0.03);
|
|
}
|
|
|
|
/* light theme... */
|
|
.light .browse-widget.key-bindings .list>.key[doc]:after {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
|
|
|
|
/* help... */
|
|
.help-dialog {
|
|
max-width: 80vw;
|
|
max-height: 80vh;
|
|
|
|
overflow: auto;
|
|
|
|
padding: 1em;
|
|
padding-bottom: 2em;
|
|
|
|
background: white;
|
|
}
|
|
|
|
/* scrollbar setup... */
|
|
.help-dialog::-webkit-scrollbar {
|
|
width: 10px;
|
|
height: 10px;
|
|
}
|
|
.help-dialog::-webkit-scrollbar-button {
|
|
display: none;
|
|
}
|
|
.help-dialog::-webkit-scrollbar-track {
|
|
}
|
|
.help-dialog::-webkit-scrollbar-track-piece {
|
|
background: transparent;
|
|
}
|
|
.help-dialog::-webkit-scrollbar-track-piece {
|
|
background: rgba(0, 0, 0, 0.05);
|
|
}
|
|
.help-dialog::-webkit-scrollbar-thumb {
|
|
background: rgba(0, 0, 0, 0.15);
|
|
}
|
|
.help-dialog::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(0, 0, 0, 0.3);
|
|
}
|
|
.help-dialog::-webkit-scrollbar-corner {
|
|
}
|
|
.help-dialog::-webkit-resizer {
|
|
}
|
|
|
|
|
|
.help-dialog .comment {
|
|
color: gray;
|
|
font-style: italic;
|
|
}
|
|
.help-dialog .warning {
|
|
color: blue;
|
|
background: yellow;
|
|
}
|
|
|
|
|
|
|
|
/* metadata view */
|
|
/* remove preview text and center image... */
|
|
.metadata-view .item.preview {
|
|
text-align: center;
|
|
opacity: 1;
|
|
}
|
|
.metadata-view .preview .text {
|
|
left: 50%;
|
|
display: none;
|
|
}
|
|
.metadata-view .preview.image {
|
|
border: rgba(200, 200, 200, 0.3) 1px solid;
|
|
}
|
|
|
|
|
|
|
|
/* DEBUG stuff... */
|
|
.container-center {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 10px;
|
|
height: 10px;
|
|
|
|
border-top: solid 1px black;
|
|
border-left: solid 1px black;
|
|
}
|
|
.container-center:after {
|
|
content: "";
|
|
position: absolute;
|
|
top: -11px;
|
|
left: -11px;
|
|
width: 10px;
|
|
height: 10px;
|
|
|
|
border-top: none;
|
|
border-left: none;
|
|
border-bottom: solid 1px black;
|
|
border-right: solid 1px black;
|
|
}
|
|
.point {
|
|
position: absolute;
|
|
width: 4px;
|
|
height: 4px;
|
|
border: solid 1px blue;
|
|
margin-top: -2px;
|
|
margin-left: -2px;
|
|
|
|
background: yellow;
|
|
|
|
transition-origin: 50% 50%;
|
|
|
|
z-index: 9999;
|
|
}
|
|
.point {
|
|
-webkit-transition: all 0.2s linear;
|
|
-moz-transition: all 0.2s linear;
|
|
transition: all 0.2s linear;
|
|
}
|
|
/* DEBUG end */
|
|
|