mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
7b444b0b85
Switches SFTP file manager from a side panel to a modal to prevent terminal width issues and streamline the UI. Updates terminal status indicators for clearer error and connection states. Adds CSS tweaks for better terminal canvas fit and scrollbar appearance, enhancing visual consistency and usability.
207 lines
3.8 KiB
CSS
207 lines
3.8 KiB
CSS
:root {
|
|
color-scheme: light;
|
|
}
|
|
|
|
body {
|
|
min-height: 100vh;
|
|
background:
|
|
radial-gradient(900px circle at 15% 0%, hsl(var(--primary) / 0.10), transparent 38%),
|
|
radial-gradient(1200px circle at 85% 10%, hsl(var(--accent) / 0.16), transparent 40%),
|
|
hsl(var(--background));
|
|
color: hsl(var(--foreground));
|
|
}
|
|
|
|
.dark {
|
|
color-scheme: dark;
|
|
}
|
|
|
|
.dark body {
|
|
background:
|
|
radial-gradient(1200px circle at 10% 0%, hsl(var(--primary) / 0.08), transparent 32%),
|
|
radial-gradient(900px circle at 85% 10%, hsl(var(--accent) / 0.12), transparent 36%),
|
|
hsl(var(--background));
|
|
color: hsl(var(--foreground));
|
|
}
|
|
|
|
.nebula-shell {
|
|
position: relative;
|
|
background: linear-gradient(180deg, hsl(var(--background)) 0%, hsl(var(--background)) 60%, hsl(var(--background) / 0.9) 100%);
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
transform: translateX(-100%);
|
|
}
|
|
|
|
100% {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
|
|
@keyframes progress-shimmer {
|
|
0% {
|
|
transform: translateX(-200%);
|
|
}
|
|
|
|
100% {
|
|
transform: translateX(200%);
|
|
}
|
|
}
|
|
|
|
.glass-panel {
|
|
background: hsl(var(--secondary) / 0.95);
|
|
border: 1px solid hsl(var(--border) / 0.8);
|
|
backdrop-filter: blur(12px);
|
|
box-shadow: 0 14px 40px rgba(0, 0, 0, 0.24);
|
|
}
|
|
|
|
.soft-card {
|
|
background: hsl(var(--card));
|
|
border: 1px solid hsl(var(--border) / 0.8);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), 0 12px 36px rgba(0, 0, 0, 0.22);
|
|
}
|
|
|
|
.card-highlight {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.card-highlight::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: -40%;
|
|
background: radial-gradient(500px circle at 20% 20%, hsl(var(--primary) / 0.18), transparent 55%);
|
|
opacity: 0;
|
|
transition: opacity 180ms ease;
|
|
}
|
|
|
|
.card-highlight:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.elevate {
|
|
transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
|
|
}
|
|
|
|
.elevate:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
|
|
}
|
|
|
|
::selection {
|
|
background: hsl(var(--primary) / 0.22);
|
|
color: hsl(var(--foreground));
|
|
}
|
|
|
|
/* Port Forwarding Traffic Animation */
|
|
@keyframes traffic-flow {
|
|
0% {
|
|
stroke-dashoffset: 24;
|
|
}
|
|
|
|
100% {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes traffic-flow-reverse {
|
|
0% {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
|
|
100% {
|
|
stroke-dashoffset: 24;
|
|
}
|
|
}
|
|
|
|
@keyframes pulse-glow {
|
|
|
|
0%,
|
|
100% {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.traffic-line {
|
|
stroke-dasharray: 8 4;
|
|
animation: traffic-flow 0.8s linear infinite;
|
|
}
|
|
|
|
.traffic-line-reverse {
|
|
stroke-dasharray: 8 4;
|
|
animation: traffic-flow-reverse 0.8s linear infinite;
|
|
}
|
|
|
|
.traffic-glow {
|
|
animation: pulse-glow 1.5s ease-in-out infinite;
|
|
}
|
|
|
|
/* Custom titlebar drag regions for Electron */
|
|
.app-drag {
|
|
-webkit-app-region: drag;
|
|
}
|
|
|
|
.app-no-drag {
|
|
-webkit-app-region: no-drag;
|
|
}
|
|
|
|
.no-scrollbar {
|
|
scrollbar-width: none;
|
|
-ms-overflow-style: none;
|
|
}
|
|
|
|
.no-scrollbar::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
/* Ghostty terminal canvas - fill container completely */
|
|
[data-ghostty-surface] {
|
|
width: 100% !important;
|
|
height: 100% !important;
|
|
}
|
|
|
|
/* Override Ghostty's internal padding/margin */
|
|
[data-ghostty-surface]>div {
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
|
|
/* Make terminal scrollbar overlay instead of taking space */
|
|
[data-ghostty-surface] ::-webkit-scrollbar {
|
|
width: 8px;
|
|
background: transparent;
|
|
}
|
|
|
|
[data-ghostty-surface] ::-webkit-scrollbar-thumb {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
[data-ghostty-surface] ::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(255, 255, 255, 0.3);
|
|
}
|
|
|
|
.workspace-pane {
|
|
outline: none;
|
|
overflow: visible;
|
|
}
|
|
|
|
.workspace-pane::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 0;
|
|
border: 2px solid hsl(var(--primary));
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition: opacity 120ms ease, box-shadow 120ms ease;
|
|
z-index: 40;
|
|
}
|
|
|
|
.workspace-pane:focus-within::after {
|
|
opacity: 1;
|
|
} |