Compare commits
2 Commits
a114775f58
...
1978ceb854
| Author | SHA1 | Date | |
|---|---|---|---|
| 1978ceb854 | |||
| ad30c7e57f |
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
- BUG?: for some reason toggling fullscreen on a mobile device changes
|
- BUG?: for some reason toggling fullscreen on a mobile device changes
|
||||||
font size...
|
font size...
|
||||||
|
- toolbar: drag: broken for non-first relative toolbars...
|
||||||
- <b>Save current gallery (zip/json?)</b>
|
- <b>Save current gallery (zip/json?)</b>
|
||||||
- Save current editor state (zip/json?)
|
- Save current editor state (zip/json?)
|
||||||
- ~~Views: Gallery / Details / Lightbox~~
|
- ~~Views: Gallery / Details / Lightbox~~
|
||||||
|
|||||||
@ -293,7 +293,9 @@ button:active {
|
|||||||
position: sticky;
|
position: sticky;
|
||||||
|
|
||||||
top: 0;
|
top: 0;
|
||||||
|
height: 0;
|
||||||
margin: 0 calc(var(--gallery-padding-horizontal) * -1);
|
margin: 0 calc(var(--gallery-padding-horizontal) * -1);
|
||||||
|
overflow: visible;
|
||||||
|
|
||||||
z-index: calc(var(--base-layer) + 2);
|
z-index: calc(var(--base-layer) + 2);
|
||||||
}
|
}
|
||||||
@ -306,13 +308,17 @@ button:active {
|
|||||||
--padding: 0.5rem;
|
--padding: 0.5rem;
|
||||||
--height: calc((var(--toolbar-button-size) + var(--padding) * 2));
|
--height: calc((var(--toolbar-button-size) + var(--padding) * 2));
|
||||||
|
|
||||||
position: absolute;
|
/*position: absolute;*/
|
||||||
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
left: var(--move-x);
|
left: var(--move-x);
|
||||||
top: var(--move-y);
|
top: var(--move-y);
|
||||||
|
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
min-height: var(--toolbar-button-size);
|
||||||
|
|
||||||
|
margin: 0.1em 0px;
|
||||||
|
|
||||||
padding: var(--padding);
|
padding: var(--padding);
|
||||||
padding-right: var(--height);
|
padding-right: var(--height);
|
||||||
@ -403,22 +409,43 @@ button:active {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* groups... */
|
/* groups... */
|
||||||
.gallery .toolbar>* {
|
.gallery .toolbar>* {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
height: calc(100% - var(--padding) * 2);
|
||||||
}
|
}
|
||||||
.gallery .toolbar>*:not(:last-child) {
|
.gallery .toolbar>*:not(:last-child):after {
|
||||||
padding-right: calc(var(--padding) / 2);
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: var(--padding);
|
||||||
|
bottom: var(--padding);
|
||||||
|
margin-left: calc(var(--padding) / 4);
|
||||||
border-right: solid 1px var(--gallery-secondary-color);
|
border-right: solid 1px var(--gallery-secondary-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* state list (group)... */
|
||||||
|
.gallery .toolbar .states:empty {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.gallery .toolbar .states:empty:before {
|
||||||
|
content: "Empty...";
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: var(--toolbar-button-size);
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: bottom;
|
||||||
|
padding: 0 0.5em;
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* buttons... */
|
/* buttons... */
|
||||||
.gallery .toolbar button {
|
.gallery .toolbar button {
|
||||||
min-width: var(--toolbar-button-size);
|
min-width: var(--toolbar-button-size);
|
||||||
|
|
||||||
border: solid 1px transparent;
|
border: solid 1px transparent;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
|
||||||
|
|
||||||
font-family: "Material Symbols Outlined";
|
font-family: "Material Symbols Outlined";
|
||||||
font-size: var(--toolbar-button-size);
|
font-size: var(--toolbar-button-size);
|
||||||
@ -446,6 +473,7 @@ button:active {
|
|||||||
left: 0;
|
left: 0;
|
||||||
bottom: calc(var(--toolbar-button-size) / -6);
|
bottom: calc(var(--toolbar-button-size) / -6);
|
||||||
margin-left: calc(var(--toolbar-button-size) / -1.5625);
|
margin-left: calc(var(--toolbar-button-size) / -1.5625);
|
||||||
|
margin-right: -0.15em;
|
||||||
|
|
||||||
font-size: calc(var(--toolbar-button-size) / 1.15);
|
font-size: calc(var(--toolbar-button-size) / 1.15);
|
||||||
|
|
||||||
@ -486,6 +514,16 @@ button:active {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.gallery .toolbar .states button {
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: var(--toolbar-button-size);
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* button: collapse... */
|
/* button: collapse... */
|
||||||
.gallery .toolbar button.collapse {
|
.gallery .toolbar button.collapse {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@ -83,21 +83,6 @@ For more info see: <a href="./README.md">README.md</a>
|
|||||||
<div class="gallery otter">
|
<div class="gallery otter">
|
||||||
<!-- toolbar -->
|
<!-- toolbar -->
|
||||||
<div class="toolbar-anchor">
|
<div class="toolbar-anchor">
|
||||||
<!-- toolbar: states... -->
|
|
||||||
<!--div class="toolbar fixed">
|
|
||||||
<button class="drag-handle" title="Drag">drag_indicator</button>
|
|
||||||
<div>
|
|
||||||
<button onclick="gallery.crop('marked')" title="Crop marked">select<sec>crossword</sec></button>
|
|
||||||
<button onclick="gallery.uncrop()" title="Uncrop">select<sec>grid_on</sec></button>
|
|
||||||
<button onclick="gallery" title="Save crop">crossword<sec>add</sec></button>
|
|
||||||
</div>
|
|
||||||
<div class="states">
|
|
||||||
<button title="1">1</button>
|
|
||||||
<button title="2">2</button>
|
|
||||||
<button title="3">3</button>
|
|
||||||
</div>
|
|
||||||
<button class="collapse" title="toggle toolbar (hold to make sticky)">crossword</button>
|
|
||||||
</div-->
|
|
||||||
<!-- toolbar: general... -->
|
<!-- toolbar: general... -->
|
||||||
<div class="toolbar fixed">
|
<div class="toolbar fixed">
|
||||||
<button class="drag-handle" title="Drag">drag_indicator</button>
|
<button class="drag-handle" title="Drag">drag_indicator</button>
|
||||||
@ -128,7 +113,21 @@ For more info see: <a href="./README.md">README.md</a>
|
|||||||
<div>
|
<div>
|
||||||
<button onclick="gallery.clear()" title="clear">grid_on<sec>close</sec></button>
|
<button onclick="gallery.clear()" title="clear">grid_on<sec>close</sec></button>
|
||||||
</div>
|
</div>
|
||||||
<button class="collapse" title="Edit gallery (hold to make sticky)">edit_square</button>
|
<button class="collapse" title="Edit (hold to make sticky)">edit_square</button>
|
||||||
|
</div>
|
||||||
|
<!-- toolbar: states... -->
|
||||||
|
<div class="toolbar fixed">
|
||||||
|
<button class="drag-handle" title="Drag">drag_indicator</button>
|
||||||
|
<div>
|
||||||
|
<button onclick="gallery" title="Save">crossword<sec>add</sec></button>
|
||||||
|
</div>
|
||||||
|
<div class="states"></div>
|
||||||
|
<!--div class="states">
|
||||||
|
<button onclick="gallery" title="Load 1">1</button>
|
||||||
|
<button onclick="gallery" title="Load 1">2</button>
|
||||||
|
<button onclick="gallery" title="Load 1">3</button>
|
||||||
|
</div-->
|
||||||
|
<button class="collapse" title="Saved (hold to make sticky)">crossword</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- gallery: content -->
|
<!-- gallery: content -->
|
||||||
|
|||||||
@ -155,6 +155,7 @@ function(evt, id){
|
|||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
// XXX account for relative-positioned elements...
|
||||||
// XXX constrain this to:
|
// XXX constrain this to:
|
||||||
// viewport -- DONE but needs to be smoother...
|
// viewport -- DONE but needs to be smoother...
|
||||||
// parent
|
// parent
|
||||||
@ -241,6 +242,8 @@ function(options={}){
|
|||||||
data = {
|
data = {
|
||||||
bounds: bounds,
|
bounds: bounds,
|
||||||
offset: {
|
offset: {
|
||||||
|
// XXX get offset relative to position parent...
|
||||||
|
// ...or relative to screen...
|
||||||
x: x - elem.offsetLeft,
|
x: x - elem.offsetLeft,
|
||||||
y: y - elem.offsetTop,
|
y: y - elem.offsetTop,
|
||||||
},
|
},
|
||||||
@ -308,6 +311,7 @@ function(options={}){
|
|||||||
Math.max(
|
Math.max(
|
||||||
screen.top,
|
screen.top,
|
||||||
data.y)) }
|
data.y)) }
|
||||||
|
// deferred render..
|
||||||
// NOTE: we only allow a single requestAnimationFrame(..)
|
// NOTE: we only allow a single requestAnimationFrame(..)
|
||||||
// to run per frame...
|
// to run per frame...
|
||||||
if(!data.animate){
|
if(!data.animate){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user