version bump, 2.1.0, some bug fixes and animations and a full on working terminal (WiP)

This commit is contained in:
dvorakmortonxd 2026-09-23 14:40:21 +02:00
commit d4ea37f29e
9 changed files with 780 additions and 143 deletions

View file

@ -99,6 +99,10 @@ html[data-device="phone"] .skeuo-mobile-root { display: block; }
background: rgba(61, 174, 233, 0.16);
border-color: rgba(61, 174, 233, 0.4);
}
.win-icon.dragging {
opacity: 0.55;
border-color: rgba(61, 174, 233, 0.8);
}
.win-icon-glyph {
width: 48px;
height: 48px;
@ -196,6 +200,78 @@ a.win-icon {
animation: winClose 0.14s ease-in forwards;
pointer-events: none;
}
.win-window.minimizing {
animation: winClose 0.14s ease-in forwards;
pointer-events: none;
}
/* Resize handles */
.win-resize-layer {
position: absolute;
inset: 0;
pointer-events: none;
}
.win-resize {
position: absolute;
pointer-events: auto;
z-index: 6;
}
.win-resize-n {
top: 0;
left: 8px;
right: 8px;
height: 5px;
cursor: ns-resize;
}
.win-resize-s {
bottom: 0;
left: 8px;
right: 8px;
height: 5px;
cursor: ns-resize;
}
.win-resize-e {
right: 0;
top: 8px;
bottom: 8px;
width: 5px;
cursor: ew-resize;
}
.win-resize-w {
left: 0;
top: 8px;
bottom: 8px;
width: 5px;
cursor: ew-resize;
}
.win-resize-ne {
top: 0;
right: 0;
width: 12px;
height: 12px;
cursor: nesw-resize;
}
.win-resize-nw {
top: 0;
left: 0;
width: 12px;
height: 12px;
cursor: nwse-resize;
}
.win-resize-se {
bottom: 0;
right: 0;
width: 14px;
height: 14px;
cursor: nwse-resize;
}
.win-resize-sw {
bottom: 0;
left: 0;
width: 12px;
height: 12px;
cursor: nesw-resize;
}
@keyframes winOpen {
from {
@ -310,6 +386,17 @@ a.win-icon {
.win-ctl-close::after {
transform: translate(-50%, -50%) rotate(-45deg);
}
.win-ctl-www {
width: 36px;
font-size: 0.6rem;
font-weight: 700;
letter-spacing: 0.02em;
color: #9fd0f5;
cursor: pointer;
}
.win-ctl-www:hover {
background: rgba(61, 174, 233, 0.3);
}
.win-body {
flex: 1;
@ -422,6 +509,49 @@ a.win-icon {
color: #1d3e5c;
}
/* External website "apps" opened from a shortcut icon */
.website-app {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.website-app-icon {
display: grid;
place-items: center;
width: 96px;
height: 96px;
margin-bottom: 8px;
border-radius: 22px;
background: linear-gradient(to bottom, #ffffff, #eef2f8);
border: 1px solid rgba(0, 0, 0, 0.15);
box-shadow: inset 0 1px 0 #ffffff, 0 2px 6px rgba(0, 0, 0, 0.12);
}
.website-app-emoji {
font-size: 3rem;
line-height: 1;
}
.website-app-img {
width: 84px;
height: 84px;
object-fit: contain;
filter: brightness(0);
}
.website-app-link {
margin-top: 14px;
padding: 8px 16px;
border-radius: 6px;
background: linear-gradient(to bottom, #ffffff, #dfeaf6);
border: 1px solid #7db9e8;
color: #0d5aa7;
font-family: var(--font-custom-mono), "JetBrains Mono", monospace;
font-size: 0.8rem;
text-decoration: none;
}
.website-app-link:hover {
box-shadow: 0 0 0 1px #7db9e8, 0 0 12px rgba(95, 175, 255, 0.5);
}
.app-surface .project-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
@ -835,6 +965,23 @@ a.win-icon {
.alacritty-prompt { color: #b8bb26; }
.alacritty-path { color: #83a598; }
.alacritty-cmd { color: #ebdbb2; }
.alacritty-out-text { color: #c5c8c6; white-space: pre-wrap; }
.alacritty-inputline {
display: flex;
align-items: center;
margin-bottom: 0;
}
.alacritty-input {
flex: 1;
min-width: 0;
padding: 0;
border: none;
outline: none;
background: transparent;
color: #ebdbb2;
font: inherit;
caret-color: #ebdbb2;
}
.alacritty-art {
margin: 0 0 12px;
font-family: inherit;
@ -1139,6 +1286,7 @@ a.win-icon {
.mobile-home {
position: fixed;
inset: 0;
height: 100dvh;
overflow: hidden;
background-color: #101319;
background-size: cover;
@ -1165,45 +1313,25 @@ a.win-icon {
);
}
.mobile-notch {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 164px;
height: 34px;
z-index: 60;
background: #000;
border-radius: 0 0 22px 22px;
pointer-events: none;
}
.mobile-notch::after {
content: "";
position: absolute;
right: 26px;
top: 11px;
width: 9px;
height: 9px;
border-radius: 50%;
background: radial-gradient(circle at 35% 30%, #2b3a55, #05070b 70%);
}
.mobile-statusbar {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 30px;
height: 34px;
z-index: 55;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
padding: 0 18px;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.01em;
}
.mobile-status-time {
font-size: 0.94rem;
font-weight: 600;
letter-spacing: 0;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.mobile-status-icons {
@ -1285,6 +1413,11 @@ a.win-icon {
background: transparent;
cursor: pointer;
color: inherit;
min-width: 0;
touch-action: none;
}
.mobile-app.dragging {
opacity: 0.55;
}
.mobile-app-icon {
position: relative;
@ -1400,6 +1533,7 @@ a.win-icon {
.mobile-app-view {
position: fixed;
inset: 0;
height: 100dvh;
z-index: 40;
display: flex;
flex-direction: column;
@ -1703,24 +1837,24 @@ a.win-icon {
/* Phones in landscape: compact the home so the app grid (and its labels) fit. */
@media (orientation: landscape) and (max-height: 620px) {
.mobile-notch { width: 108px; height: 22px; }
.mobile-statusbar { height: 24px; font-size: 0.66rem; padding: 0 14px; }
.mobile-statusbar { height: 28px; font-size: 0.72rem; padding: 0 16px; }
.mobile-status-time { font-size: 0.84rem; }
.mobile-grid {
top: 30px;
bottom: 76px;
grid-template-columns: repeat(7, 1fr);
grid-auto-rows: 62px;
gap: 8px 6px;
padding: 4px 22px;
grid-template-columns: repeat(7, minmax(0, 1fr));
grid-auto-rows: 60px;
gap: 8px 4px;
padding: 4px 16px;
}
.mobile-app { gap: 3px; }
.mobile-app-icon { width: 42px; height: 42px; border-radius: 15px; font-size: 20px; }
.mobile-app-label { font-size: 0.58rem; }
.mobile-widget { border-radius: 16px; padding: 6px 10px; }
.mobile-widget-time { font-size: 1.1rem; }
.mobile-widget-date { font-size: 0.55rem; }
.mobile-dock { bottom: 14px; padding: 7px 12px; border-radius: 24px; }
.mobile-app.in-dock .mobile-app-icon { width: 40px; height: 40px; border-radius: 14px; font-size: 19px; }
.mobile-app { gap: 2px; }
.mobile-app-icon { width: 40px; height: 40px; border-radius: 14px; font-size: 19px; }
.mobile-app-label { font-size: 0.55rem; }
.mobile-widget { border-radius: 14px; padding: 5px 8px; }
.mobile-widget-time { font-size: 1rem; }
.mobile-widget-date { font-size: 0.5rem; }
.mobile-dock { bottom: 10px; padding: 6px 10px; border-radius: 22px; }
.mobile-app.in-dock .mobile-app-icon { width: 38px; height: 38px; border-radius: 13px; font-size: 18px; }
.mobile-pagedots { display: none; }
}