window resize styles

This commit is contained in:
2026-04-23 11:26:41 +02:00
parent cba94f6e75
commit 6496e7a3a3
23 changed files with 18 additions and 13 deletions

View File

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 957 B

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -6,7 +6,6 @@ const isMobile = (
); );
let topZ = 100; let topZ = 100;
const MAX_PADDING = { left: 8, top: 8, right: 8, bottom: 60 };
const maximizeIcon = '▢'; const maximizeIcon = '▢';
const restoreIcon = '🗗'; const restoreIcon = '🗗';
@@ -18,6 +17,7 @@ const ctx = new ContextMenu();
const windowCleanup = new Map(); const windowCleanup = new Map();
const username = getCookie('sAMAccountName'); const username = getCookie('sAMAccountName');
const LS_KEY = (key) => `${username}:${key}`; const LS_KEY = (key) => `${username}:${key}`;
const MAX_PADDING = { left: 4, top: 4, right: 4, bottom: (56 - 4) };
startBtn.addEventListener('click', (evt) => { startBtn.addEventListener('click', (evt) => {
evt.stopPropagation(); // verhindert sofortiges Schließen evt.stopPropagation(); // verhindert sofortiges Schließen
@@ -327,6 +327,7 @@ function handleWindowAction(payload) {
// focusWindowById(btn.dataset.winid); // focusWindowById(btn.dataset.winid);
// }); // });
taskbarWindows.addEventListener('click', (e) => { taskbarWindows.addEventListener('click', (e) => {
const btn = e.target.closest('.taskbar-item'); const btn = e.target.closest('.taskbar-item');
if (!btn) return; if (!btn) return;

View File

@@ -3,7 +3,7 @@ body, html { margin:0; padding:0; height:100%; overflow: hidden; font-family: va
#desktop { position:relative; height:100vh; overflow:hidden; background-size:var(--theme-desktop-background-size); background-repeat: no-repeat; background-position: center; touch-action: none; } #desktop { position:relative; height:100vh; overflow:hidden; background-size:var(--theme-desktop-background-size); background-repeat: no-repeat; background-position: center; touch-action: none; }
#windows { z-index: 1; position:absolute; inset:0; padding:8px; box-sizing:border-box; } #windows { z-index: 1; position:absolute; inset:0; padding:8px; box-sizing:border-box; }
.window { min-width:250px; min-height:250px; position:absolute; width: 800px; height: 600px; border-radius:6px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); overflow:hidden; top:50px; left:50px; display:flex; flex-direction:column; resize:both; } .window { min-width:250px; min-height:250px; position:absolute; width: 800px; height: 600px; border-radius:6px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); overflow:hidden; top:50px; left:50px; display:flex; flex-direction:column; resize:none; }
.window-titlebar { padding: 0 0 1px 0; height: auto; display:flex; justify-content:space-between; align-items:center; } .window-titlebar { padding: 0 0 1px 0; height: auto; display:flex; justify-content:space-between; align-items:center; }
.window-titlebar .title { display: flex; align-items: center; min-width: 0; flex: 1; overflow: hidden; } .window-titlebar .title { display: flex; align-items: center; min-width: 0; flex: 1; overflow: hidden; }
.window-titlebar .window-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-left:8px; } .window-titlebar .window-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-left:8px; }
@@ -13,16 +13,20 @@ body, html { margin:0; padding:0; height:100%; overflow: hidden; font-family: va
.window .controls button { transition: background-color var(--times-transition-colors), color var(--times-transition-colors); padding: 2px 10px; border:none;} .window .controls button { transition: background-color var(--times-transition-colors), color var(--times-transition-colors); padding: 2px 10px; border:none;}
.window-content { display: flex; flex-direction: column; flex:1; padding:8px; overflow: auto; } .window-content { display: flex; flex-direction: column; flex:1; padding:8px; overflow: auto; }
.window[class="max"] .window-resize-handle { display: none; } .window[class="max"] .window-resize-handle { display: none; }
.window-resize-handle { position:absolute; right:0; bottom:0; width:12px; height:12px; cursor:se-resize; z-index: 10; }
.window-resize-n { top: -4px; left: 0; right: 0; height: 8px; cursor: n-resize; }
.window-resize-s { bottom: -4px; left: 0; right: 0; height: 8px; cursor: s-resize; }
.window-resize-e { right: -4px; top: 0; bottom: 0; width: 8px; cursor: e-resize; }
.window-resize-w { left: -4px; top: 0; bottom: 0; width: 8px; cursor: w-resize; }
.window-resize-ne { top: -4px; right: -4px; width: 12px; height: 12px; cursor: ne-resize; }
.window-resize-nw { top: -4px; left: -4px; width: 12px; height: 12px; cursor: nw-resize; }
.window-resize-se { bottom: -4px; right: -4px; width: 12px; height: 12px; cursor: se-resize; }
.window-resize-sw { bottom: -4px; left: -4px; width: 12px; height: 12px; cursor: sw-resize; }
.window-resize-n, .window-resize-s { position: absolute; left: 8px; right: 8px; height: 8px; z-index: 10; }
.window-resize-n { top: -4px;cursor: var(--theme-cursor-resize-vertical); }
.window-resize-s { bottom: -4px;cursor: var(--theme-cursor-resize-vertical); }
.window-resize-e, .window-resize-w { position: absolute;top: 8px;bottom: 8px;width: 8px;z-index: 10; }
.window-resize-e { right: -4px;cursor: var(--theme-cursor-resize-horizontal); }
.window-resize-w { left: -4px;cursor: var(--theme-cursor-resize-horizontal); }
.window-resize-ne, .window-resize-nw, .window-resize-se, .window-resize-sw { position: absolute;width: 16px;height: 16px;z-index: 11; }
.window-resize-ne { top: -6px;right: -6px;cursor: var(--theme-cursor-resize-45); }
.window-resize-nw { top: -6px;left: -6px;cursor: var(--theme-cursor-resize-270); }
.window-resize-se { bottom: -6px;right: -6px;cursor: var(--theme-cursor-resize-270); }
.window-resize-sw { bottom: -6px;left: -6px;cursor: var(--theme-cursor-resize-45); }
#taskbar { z-index: 2; position: absolute; width:100%; bottom:0; left:0; height:auto; overflow:visible; display:flex; flex: 0 0 auto; min-width:0; align-items:center; padding:0 8px; box-sizing:border-box; } #taskbar { z-index: 2; position: absolute; width:100%; bottom:0; left:0; height:auto; overflow:visible; display:flex; flex: 0 0 auto; min-width:0; align-items:center; padding:0 8px; box-sizing:border-box; }
#start-btn { transition: background-color var(--times-transition-colors) ease; padding: 8px 12px; border-radius: 5px; border: none; margin-right:8px; } #start-btn { transition: background-color var(--times-transition-colors) ease; padding: 8px 12px; border-radius: 5px; border: none; margin-right:8px; }

View File

@@ -54,7 +54,7 @@
<label><b>Vollbildmodus</b></label> <label><b>Vollbildmodus</b></label>
<button class="bluebutton" id="fullscreenBtn">Einschalten</button> <button class="bluebutton" id="fullscreenBtn">Einschalten</button>
<label> <label>
Der Vollbildmodus hat den Vorteil, dass der komplette Bildschirm mit dieser Webseite ausgefüllt wird.<br><i style="color:var(--theme-accent-default-backcolor)">Sehr nützlich für mehr als einen Bildschirme</i> Der Vollbildmodus hat den Vorteil, dass der komplette Bildschirm mit dieser Webseite ausgefüllt wird.<br><i style="color:var(--theme-accent-default-backcolor)">Sehr nützlich für mehr als einen Bildschirm</i>
</label> </label>
</div> </div>
</body> </body>

View File

@@ -10,7 +10,7 @@
{{/if}} {{/if}}
<button class="minimize">▽</button> <button class="minimize">▽</button>
<button class="maximize">{{#equaler state "==" "maximized"}}🗗{{else}}{{/equaler}}</button> <button class="maximize">{{#equaler state "==" "maximized"}}🗗{{else}}{{/equaler}}</button>
<button class="close">X</button> <button class="close"></button>
</div> </div>
</div> </div>
<div class="window-content"> <div class="window-content">