mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-03-27 09:45:53 +00:00
749 lines
18 KiB
CSS
749 lines
18 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* Global dark theme styles */
|
|
@layer base {
|
|
body {
|
|
@apply bg-dark-bg text-dark-text;
|
|
}
|
|
|
|
/* Default focus styles */
|
|
:focus {
|
|
outline: none;
|
|
box-shadow: 0 0 0 2px rgba(0, 255, 136, 0.3);
|
|
}
|
|
}
|
|
|
|
/* Custom components */
|
|
@layer components {
|
|
/* Glowing terminal icon */
|
|
.terminal-icon {
|
|
@apply text-accent-green;
|
|
filter: drop-shadow(0 0 10px rgba(0, 255, 136, 0.6));
|
|
}
|
|
|
|
/* Input fields with glow effect */
|
|
.input-field {
|
|
@apply bg-dark-bg-secondary border border-dark-border rounded-lg px-4 py-3 text-dark-text w-full;
|
|
@apply transition-all duration-200 ease-in-out;
|
|
@apply hover:border-accent-green-darker focus:border-accent-green;
|
|
@apply focus:shadow-glow-green-sm;
|
|
}
|
|
|
|
/* Button styles */
|
|
.btn-primary {
|
|
@apply bg-accent-green text-dark-bg font-medium px-6 py-3 rounded-lg;
|
|
@apply transition-all duration-200 ease-in-out;
|
|
@apply hover:bg-accent-green-light hover:shadow-glow-green;
|
|
@apply active:scale-95;
|
|
}
|
|
|
|
.btn-secondary {
|
|
@apply border border-accent-green text-accent-green px-6 py-3 rounded-lg;
|
|
@apply transition-all duration-200 ease-in-out;
|
|
@apply hover:bg-accent-green hover:text-dark-bg hover:shadow-glow-green;
|
|
@apply active:scale-95;
|
|
}
|
|
|
|
.btn-ghost {
|
|
@apply text-dark-text-muted px-4 py-2 rounded-lg;
|
|
@apply transition-all duration-200 ease-in-out;
|
|
@apply hover:text-dark-text hover:bg-dark-bg-tertiary;
|
|
}
|
|
|
|
/* Card styles */
|
|
.card {
|
|
@apply bg-dark-bg-secondary border border-dark-border rounded-lg p-6;
|
|
@apply transition-all duration-200 ease-in-out;
|
|
@apply hover:border-accent-green-darker hover:shadow-glow-green-sm;
|
|
}
|
|
|
|
/* Quick start buttons */
|
|
.quick-start-btn {
|
|
@apply bg-dark-bg-tertiary border border-dark-border rounded-lg px-4 py-3 h-12;
|
|
@apply transition-all duration-200 ease-in-out text-dark-text-muted;
|
|
@apply hover:border-accent-green hover:text-accent-green hover:shadow-glow-green-sm;
|
|
@apply active:scale-95;
|
|
}
|
|
|
|
.quick-start-btn.active {
|
|
@apply bg-accent-green text-dark-bg border-accent-green shadow-glow-green-sm;
|
|
}
|
|
|
|
/* Modal backdrop */
|
|
.modal-backdrop {
|
|
@apply fixed inset-0 bg-black bg-opacity-80 z-40;
|
|
backdrop-filter: blur(4px);
|
|
}
|
|
|
|
/* Modal content */
|
|
.modal-content {
|
|
@apply bg-dark-bg-secondary border border-dark-border rounded-xl p-8;
|
|
@apply shadow-2xl shadow-black/50;
|
|
}
|
|
|
|
/* Labels */
|
|
.form-label {
|
|
@apply text-dark-text-muted text-sm font-medium mb-2 flex items-center gap-2;
|
|
}
|
|
}
|
|
|
|
/* Fira Code Variable Font */
|
|
@font-face {
|
|
font-family: 'Fira Code';
|
|
font-style: normal;
|
|
font-weight: 300 700;
|
|
font-display: swap;
|
|
src:
|
|
url('/fonts/FiraCode-VF.woff2') format('woff2-variations'),
|
|
url('/fonts/FiraCode-VF.ttf') format('truetype-variations');
|
|
font-variation-settings: 'wght' 400;
|
|
}
|
|
|
|
/* Hack Nerd Font */
|
|
@font-face {
|
|
font-family: 'Hack Nerd Font Mono';
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url('/fonts/HackNerdFontMono-Regular.ttf') format('truetype');
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Hack Nerd Font Mono';
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
src: url('/fonts/HackNerdFontMono-Bold.ttf') format('truetype');
|
|
}
|
|
|
|
/* Override Tailwind's font-mono to use Hack Nerd Font */
|
|
.font-mono {
|
|
font-family:
|
|
'Hack Nerd Font Mono', 'Fira Code', ui-monospace, SFMono-Regular, 'SF Mono', Consolas,
|
|
'Liberation Mono', Menlo, monospace !important;
|
|
}
|
|
|
|
/* Mobile scroll and touch behavior fixes */
|
|
html,
|
|
body {
|
|
overscroll-behavior: none;
|
|
touch-action: pan-x pan-y;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
/* Prevent pull-to-refresh on mobile */
|
|
body {
|
|
overscroll-behavior-y: contain;
|
|
}
|
|
|
|
/* Terminal-specific touch handling */
|
|
.xterm {
|
|
touch-action: pan-y;
|
|
overscroll-behavior: none;
|
|
}
|
|
|
|
.xterm .xterm-viewport {
|
|
touch-action: pan-y;
|
|
overscroll-behavior-y: contain;
|
|
}
|
|
|
|
/* Fix XTerm text span touch scrolling issues */
|
|
.xterm .xterm-rows span {
|
|
touch-action: pan-y;
|
|
}
|
|
|
|
.xterm .xterm-screen {
|
|
touch-action: pan-y;
|
|
}
|
|
|
|
/* More aggressive fix for session cards (read-only snapshots) */
|
|
.session-preview .xterm .xterm-rows span {
|
|
pointer-events: none;
|
|
touch-action: pan-y;
|
|
}
|
|
|
|
/* Terminal container scroll prevention */
|
|
#terminal-container {
|
|
touch-action: pan-y;
|
|
overscroll-behavior: none;
|
|
}
|
|
|
|
/* Session cards - prevent pull-to-refresh */
|
|
.session-card {
|
|
overscroll-behavior: none;
|
|
}
|
|
|
|
/* App header - prevent pull-to-refresh when scrolling starts from header */
|
|
.app-header {
|
|
overscroll-behavior: none;
|
|
touch-action: pan-x pan-y;
|
|
}
|
|
|
|
/* XTerm terminal styling */
|
|
.xterm {
|
|
padding: 0 !important;
|
|
font-family:
|
|
'Hack Nerd Font Mono', 'Fira Code', ui-monospace, SFMono-Regular, 'SF Mono', Consolas,
|
|
'Liberation Mono', Menlo, monospace !important;
|
|
font-variant-ligatures: none;
|
|
font-feature-settings:
|
|
'liga' 0,
|
|
'clig' 0,
|
|
'calt' 0;
|
|
text-rendering: optimizeSpeed;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* Terminal container styling */
|
|
.terminal-container {
|
|
color: #e4e4e4;
|
|
white-space: pre;
|
|
overflow: hidden;
|
|
background-color: #0a0a0a;
|
|
}
|
|
|
|
/* Terminal line styling */
|
|
.terminal-line {
|
|
display: block;
|
|
white-space: pre;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Terminal character specific styling */
|
|
.terminal-char {
|
|
display: inline-block;
|
|
font-family: inherit;
|
|
font-variant-ligatures: none;
|
|
font-feature-settings: 'liga' 0;
|
|
white-space: pre;
|
|
}
|
|
|
|
/* Terminal text decoration support */
|
|
.terminal-char.bold {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.terminal-char.italic {
|
|
font-style: italic;
|
|
}
|
|
|
|
.terminal-char.underline {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.terminal-char.dim {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.terminal-char.strikethrough {
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
.terminal-char.overline {
|
|
text-decoration: overline;
|
|
}
|
|
|
|
.terminal-char.inverse {
|
|
filter: invert(1);
|
|
}
|
|
|
|
.terminal-char.invisible {
|
|
opacity: 0;
|
|
}
|
|
|
|
/* Cursor styling */
|
|
.terminal-char.cursor {
|
|
animation: cursor-blink 1s infinite;
|
|
}
|
|
|
|
@keyframes cursor-blink {
|
|
0%,
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
51%,
|
|
100% {
|
|
opacity: 0.3;
|
|
}
|
|
}
|
|
|
|
.xterm .xterm-viewport {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
/* Ensure terminal container has proper size */
|
|
#terminal-player,
|
|
#interactive-terminal {
|
|
min-height: 480px;
|
|
min-width: 640px;
|
|
width: 100%;
|
|
}
|
|
|
|
/* Terminal focus indicator */
|
|
.terminal-focused {
|
|
box-shadow: 0 0 0 2px #00ff88;
|
|
border-color: #00ff88 !important;
|
|
}
|
|
|
|
/* Keyboard capture indicator */
|
|
.keyboard-capture-indicator {
|
|
position: fixed;
|
|
top: 10px;
|
|
right: 10px;
|
|
background: rgba(0, 255, 136, 0.1);
|
|
border: 1px solid #00ff88;
|
|
color: #00ff88;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 12px;
|
|
z-index: 1000;
|
|
}
|
|
|
|
/* Force XTerm terminal to fit within session card bounds */
|
|
.session-preview .xterm {
|
|
min-width: unset !important;
|
|
min-height: unset !important;
|
|
max-width: 100% !important;
|
|
max-height: 100% !important;
|
|
width: 100% !important;
|
|
height: 100% !important;
|
|
overflow: hidden !important;
|
|
}
|
|
|
|
.session-preview .xterm .xterm-screen {
|
|
max-width: 100% !important;
|
|
max-height: 100% !important;
|
|
}
|
|
|
|
.session-preview .xterm .xterm-viewport {
|
|
overflow: hidden !important;
|
|
}
|
|
|
|
.xterm .xterm-helper-textarea {
|
|
opacity: 0 !important;
|
|
}
|
|
|
|
/* Terminal color palette - Bright colors for dark backgrounds */
|
|
:root {
|
|
--terminal-color-0: #000000;
|
|
--terminal-color-1: #f14c4c;
|
|
--terminal-color-2: #23d18b;
|
|
--terminal-color-3: #f5f543;
|
|
--terminal-color-4: #3b8eea;
|
|
--terminal-color-5: #d670d6;
|
|
--terminal-color-6: #29b8db;
|
|
--terminal-color-7: #e5e5e5;
|
|
--terminal-color-8: #666666;
|
|
--terminal-color-9: #ff6b6b;
|
|
--terminal-color-10: #5af78e;
|
|
--terminal-color-11: #f4f99d;
|
|
--terminal-color-12: #70a5ed;
|
|
--terminal-color-13: #d670d6;
|
|
--terminal-color-14: #5fb3d3;
|
|
--terminal-color-15: #ffffff;
|
|
--terminal-color-16: #000000;
|
|
--terminal-color-17: #00005f;
|
|
--terminal-color-18: #000087;
|
|
--terminal-color-19: #0000af;
|
|
--terminal-color-20: #0000d7;
|
|
--terminal-color-21: #0000ff;
|
|
--terminal-color-22: #005f00;
|
|
--terminal-color-23: #005f5f;
|
|
--terminal-color-24: #005f87;
|
|
--terminal-color-25: #005faf;
|
|
--terminal-color-26: #005fd7;
|
|
--terminal-color-27: #005fff;
|
|
--terminal-color-28: #008700;
|
|
--terminal-color-29: #00875f;
|
|
--terminal-color-30: #008787;
|
|
--terminal-color-31: #0087af;
|
|
--terminal-color-32: #0087d7;
|
|
--terminal-color-33: #0087ff;
|
|
--terminal-color-34: #00af00;
|
|
--terminal-color-35: #00af5f;
|
|
--terminal-color-36: #00af87;
|
|
--terminal-color-37: #00afaf;
|
|
--terminal-color-38: #00afd7;
|
|
--terminal-color-39: #00afff;
|
|
--terminal-color-40: #00d700;
|
|
--terminal-color-41: #00d75f;
|
|
--terminal-color-42: #00d787;
|
|
--terminal-color-43: #00d7af;
|
|
--terminal-color-44: #00d7d7;
|
|
--terminal-color-45: #00d7ff;
|
|
--terminal-color-46: #00ff00;
|
|
--terminal-color-47: #00ff5f;
|
|
--terminal-color-48: #00ff87;
|
|
--terminal-color-49: #00ffaf;
|
|
--terminal-color-50: #00ffd7;
|
|
--terminal-color-51: #00ffff;
|
|
--terminal-color-52: #5f0000;
|
|
--terminal-color-53: #5f005f;
|
|
--terminal-color-54: #5f0087;
|
|
--terminal-color-55: #5f00af;
|
|
--terminal-color-56: #5f00d7;
|
|
--terminal-color-57: #5f00ff;
|
|
--terminal-color-58: #5f5f00;
|
|
--terminal-color-59: #5f5f5f;
|
|
--terminal-color-60: #5f5f87;
|
|
--terminal-color-61: #5f5faf;
|
|
--terminal-color-62: #5f5fd7;
|
|
--terminal-color-63: #5f5fff;
|
|
--terminal-color-64: #5f8700;
|
|
--terminal-color-65: #5f875f;
|
|
--terminal-color-66: #5f8787;
|
|
--terminal-color-67: #5f87af;
|
|
--terminal-color-68: #5f87d7;
|
|
--terminal-color-69: #5f87ff;
|
|
--terminal-color-70: #5faf00;
|
|
--terminal-color-71: #5faf5f;
|
|
--terminal-color-72: #5faf87;
|
|
--terminal-color-73: #5fafaf;
|
|
--terminal-color-74: #5fafd7;
|
|
--terminal-color-75: #5fafff;
|
|
--terminal-color-76: #5fd700;
|
|
--terminal-color-77: #5fd75f;
|
|
--terminal-color-78: #5fd787;
|
|
--terminal-color-79: #5fd7af;
|
|
--terminal-color-80: #5fd7d7;
|
|
--terminal-color-81: #5fd7ff;
|
|
--terminal-color-82: #5fff00;
|
|
--terminal-color-83: #5fff5f;
|
|
--terminal-color-84: #5fff87;
|
|
--terminal-color-85: #5fffaf;
|
|
--terminal-color-86: #5fffd7;
|
|
--terminal-color-87: #5fffff;
|
|
--terminal-color-88: #870000;
|
|
--terminal-color-89: #87005f;
|
|
--terminal-color-90: #870087;
|
|
--terminal-color-91: #8700af;
|
|
--terminal-color-92: #8700d7;
|
|
--terminal-color-93: #8700ff;
|
|
--terminal-color-94: #875f00;
|
|
--terminal-color-95: #875f5f;
|
|
--terminal-color-96: #875f87;
|
|
--terminal-color-97: #875faf;
|
|
--terminal-color-98: #875fd7;
|
|
--terminal-color-99: #875fff;
|
|
--terminal-color-100: #878700;
|
|
--terminal-color-101: #87875f;
|
|
--terminal-color-102: #878787;
|
|
--terminal-color-103: #8787af;
|
|
--terminal-color-104: #8787d7;
|
|
--terminal-color-105: #8787ff;
|
|
--terminal-color-106: #87af00;
|
|
--terminal-color-107: #87af5f;
|
|
--terminal-color-108: #87af87;
|
|
--terminal-color-109: #87afaf;
|
|
--terminal-color-110: #87afd7;
|
|
--terminal-color-111: #87afff;
|
|
--terminal-color-112: #87d700;
|
|
--terminal-color-113: #87d75f;
|
|
--terminal-color-114: #87d787;
|
|
--terminal-color-115: #87d7af;
|
|
--terminal-color-116: #87d7d7;
|
|
--terminal-color-117: #87d7ff;
|
|
--terminal-color-118: #87ff00;
|
|
--terminal-color-119: #87ff5f;
|
|
--terminal-color-120: #87ff87;
|
|
--terminal-color-121: #87ffaf;
|
|
--terminal-color-122: #87ffd7;
|
|
--terminal-color-123: #87ffff;
|
|
--terminal-color-124: #af0000;
|
|
--terminal-color-125: #af005f;
|
|
--terminal-color-126: #af0087;
|
|
--terminal-color-127: #af00af;
|
|
--terminal-color-128: #af00d7;
|
|
--terminal-color-129: #af00ff;
|
|
--terminal-color-130: #af5f00;
|
|
--terminal-color-131: #af5f5f;
|
|
--terminal-color-132: #af5f87;
|
|
--terminal-color-133: #af5faf;
|
|
--terminal-color-134: #af5fd7;
|
|
--terminal-color-135: #af5fff;
|
|
--terminal-color-136: #af8700;
|
|
--terminal-color-137: #af875f;
|
|
--terminal-color-138: #af8787;
|
|
--terminal-color-139: #af87af;
|
|
--terminal-color-140: #af87d7;
|
|
--terminal-color-141: #af87ff;
|
|
--terminal-color-142: #afaf00;
|
|
--terminal-color-143: #afaf5f;
|
|
--terminal-color-144: #afaf87;
|
|
--terminal-color-145: #afafaf;
|
|
--terminal-color-146: #afafd7;
|
|
--terminal-color-147: #afafff;
|
|
--terminal-color-148: #afd700;
|
|
--terminal-color-149: #afd75f;
|
|
--terminal-color-150: #afd787;
|
|
--terminal-color-151: #afd7af;
|
|
--terminal-color-152: #afd7d7;
|
|
--terminal-color-153: #afd7ff;
|
|
--terminal-color-154: #afff00;
|
|
--terminal-color-155: #afff5f;
|
|
--terminal-color-156: #afff87;
|
|
--terminal-color-157: #afffaf;
|
|
--terminal-color-158: #afffd7;
|
|
--terminal-color-159: #afffff;
|
|
--terminal-color-160: #d70000;
|
|
--terminal-color-161: #d7005f;
|
|
--terminal-color-162: #d70087;
|
|
--terminal-color-163: #d700af;
|
|
--terminal-color-164: #d700d7;
|
|
--terminal-color-165: #d700ff;
|
|
--terminal-color-166: #d75f00;
|
|
--terminal-color-167: #d75f5f;
|
|
--terminal-color-168: #d75f87;
|
|
--terminal-color-169: #d75faf;
|
|
--terminal-color-170: #d75fd7;
|
|
--terminal-color-171: #d75fff;
|
|
--terminal-color-172: #d78700;
|
|
--terminal-color-173: #d7875f;
|
|
--terminal-color-174: #d78787;
|
|
--terminal-color-175: #d787af;
|
|
--terminal-color-176: #d787d7;
|
|
--terminal-color-177: #d787ff;
|
|
--terminal-color-178: #d7af00;
|
|
--terminal-color-179: #d7af5f;
|
|
--terminal-color-180: #d7af87;
|
|
--terminal-color-181: #d7afaf;
|
|
--terminal-color-182: #d7afd7;
|
|
--terminal-color-183: #d7afff;
|
|
--terminal-color-184: #d7d700;
|
|
--terminal-color-185: #d7d75f;
|
|
--terminal-color-186: #d7d787;
|
|
--terminal-color-187: #d7d7af;
|
|
--terminal-color-188: #d7d7d7;
|
|
--terminal-color-189: #d7d7ff;
|
|
--terminal-color-190: #d7ff00;
|
|
--terminal-color-191: #d7ff5f;
|
|
--terminal-color-192: #d7ff87;
|
|
--terminal-color-193: #d7ffaf;
|
|
--terminal-color-194: #d7ffd7;
|
|
--terminal-color-195: #d7ffff;
|
|
--terminal-color-196: #ff0000;
|
|
--terminal-color-197: #ff005f;
|
|
--terminal-color-198: #ff0087;
|
|
--terminal-color-199: #ff00af;
|
|
--terminal-color-200: #ff00d7;
|
|
--terminal-color-201: #ff00ff;
|
|
--terminal-color-202: #ff5f00;
|
|
--terminal-color-203: #ff5f5f;
|
|
--terminal-color-204: #ff5f87;
|
|
--terminal-color-205: #ff5faf;
|
|
--terminal-color-206: #ff5fd7;
|
|
--terminal-color-207: #ff5fff;
|
|
--terminal-color-208: #ff8700;
|
|
--terminal-color-209: #ff875f;
|
|
--terminal-color-210: #ff8787;
|
|
--terminal-color-211: #ff87af;
|
|
--terminal-color-212: #ff87d7;
|
|
--terminal-color-213: #ff87ff;
|
|
--terminal-color-214: #ffaf00;
|
|
--terminal-color-215: #ffaf5f;
|
|
--terminal-color-216: #ffaf87;
|
|
--terminal-color-217: #ffafaf;
|
|
--terminal-color-218: #ffafd7;
|
|
--terminal-color-219: #ffafff;
|
|
--terminal-color-220: #ffd700;
|
|
--terminal-color-221: #ffd75f;
|
|
--terminal-color-222: #ffd787;
|
|
--terminal-color-223: #ffd7af;
|
|
--terminal-color-224: #ffd7d7;
|
|
--terminal-color-225: #ffd7ff;
|
|
--terminal-color-226: #ffff00;
|
|
--terminal-color-227: #ffff5f;
|
|
--terminal-color-228: #ffff87;
|
|
--terminal-color-229: #ffffaf;
|
|
--terminal-color-230: #ffffd7;
|
|
--terminal-color-231: #ffffff;
|
|
--terminal-color-232: #080808;
|
|
--terminal-color-233: #121212;
|
|
--terminal-color-234: #1c1c1c;
|
|
--terminal-color-235: #262626;
|
|
--terminal-color-236: #303030;
|
|
--terminal-color-237: #3a3a3a;
|
|
--terminal-color-238: #444444;
|
|
--terminal-color-239: #4e4e4e;
|
|
--terminal-color-240: #585858;
|
|
--terminal-color-241: #626262;
|
|
--terminal-color-242: #6c6c6c;
|
|
--terminal-color-243: #767676;
|
|
--terminal-color-244: #808080;
|
|
--terminal-color-245: #8a8a8a;
|
|
--terminal-color-246: #949494;
|
|
--terminal-color-247: #9e9e9e;
|
|
--terminal-color-248: #a8a8a8;
|
|
--terminal-color-249: #b2b2b2;
|
|
--terminal-color-250: #bcbcbc;
|
|
--terminal-color-251: #c6c6c6;
|
|
--terminal-color-252: #d0d0d0;
|
|
--terminal-color-253: #dadada;
|
|
--terminal-color-254: #e4e4e4;
|
|
--terminal-color-255: #eeeeee;
|
|
}
|
|
|
|
/* Terminal link styling */
|
|
.terminal-link {
|
|
color: #4fc3f7;
|
|
text-decoration: underline;
|
|
cursor: pointer;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.terminal-link:hover {
|
|
background-color: rgba(79, 195, 247, 0.2);
|
|
}
|
|
|
|
/* Scroll to bottom button */
|
|
.scroll-to-bottom {
|
|
position: absolute;
|
|
bottom: 12px;
|
|
left: 12px;
|
|
width: 48px;
|
|
height: 48px;
|
|
background: rgba(26, 26, 26, 0.9);
|
|
border: 1px solid #2a2a2a;
|
|
border-radius: 6px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
color: #e4e4e4;
|
|
font-size: 24px;
|
|
transition: all 0.2s ease;
|
|
user-select: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.scroll-to-bottom:hover {
|
|
background: rgba(26, 26, 26, 1);
|
|
border-color: #00ff88;
|
|
color: #00ff88;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 0 10px rgba(0, 255, 136, 0.3);
|
|
}
|
|
|
|
.scroll-to-bottom:active {
|
|
transform: translateY(0px);
|
|
}
|
|
|
|
/* Debug overlay */
|
|
.debug-overlay {
|
|
position: absolute;
|
|
bottom: 8px;
|
|
right: 8px;
|
|
background: rgba(26, 26, 26, 0.9);
|
|
border: 1px solid #2a2a2a;
|
|
border-radius: 4px;
|
|
padding: 8px 12px;
|
|
font-family: 'Fira Code', monospace;
|
|
font-size: 11px;
|
|
color: #e4e4e4;
|
|
user-select: none;
|
|
z-index: 10;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.debug-overlay .metric {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
min-width: 120px;
|
|
}
|
|
|
|
.debug-overlay .metric-label {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.debug-overlay .metric-value {
|
|
font-weight: bold;
|
|
margin-left: 8px;
|
|
}
|
|
|
|
/* Fit toggle button */
|
|
.fit-toggle {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 12px;
|
|
width: 48px;
|
|
height: 48px;
|
|
background: rgba(26, 26, 26, 0.9);
|
|
border: 1px solid #2a2a2a;
|
|
border-radius: 6px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
color: #e4e4e4;
|
|
font-size: 20px;
|
|
transition: all 0.2s ease;
|
|
user-select: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.fit-toggle:hover {
|
|
background: rgba(26, 26, 26, 1);
|
|
border-color: #00ff88;
|
|
color: #00ff88;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 0 10px rgba(0, 255, 136, 0.3);
|
|
}
|
|
|
|
.fit-toggle:active {
|
|
transform: translateY(0px);
|
|
}
|
|
|
|
.fit-toggle.active {
|
|
border-color: #00ff88;
|
|
color: #00ff88;
|
|
box-shadow: 0 0 10px rgba(0, 255, 136, 0.3);
|
|
}
|
|
|
|
/* View Transitions */
|
|
@supports (view-transition-name: none) {
|
|
::view-transition {
|
|
/* Set the transition duration to 0.1s as requested */
|
|
--transition-duration: 100ms;
|
|
}
|
|
|
|
::view-transition-group(*) {
|
|
animation-duration: var(--transition-duration);
|
|
animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
::view-transition-old(*),
|
|
::view-transition-new(*) {
|
|
animation-duration: var(--transition-duration);
|
|
mix-blend-mode: normal;
|
|
}
|
|
|
|
/* Specific styling for terminal transitions */
|
|
::view-transition-old(terminal-*) {
|
|
animation: view-transition-fade-out var(--transition-duration) cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
::view-transition-new(terminal-*) {
|
|
animation: view-transition-fade-in var(--transition-duration) cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
@keyframes view-transition-fade-out {
|
|
from {
|
|
opacity: 1;
|
|
}
|
|
to {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes view-transition-fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|