/* ============================================ UX ENHANCEMENTS STYLES - Optimized ============================================ */ /* Keyboard Shortcuts Hint */ .keyboard-hint { position: fixed; bottom: 20px; right: 20px; z-index: 1000; background: #2a2a2a; border: 1px solid #4a4a4a; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); } .hint-toggle { display: block; padding: 10px 15px; cursor: pointer; font-size: 24px; background: none; border: none; transition: transform 0.2s; } .hint-toggle:hover { transform: scale(1.1); } .hint-content { padding: 15px; max-width: 300px; } .hint-content h4 { margin: 0 0 10px 0; color: #4CAF50; font-size: 14px; } .hint-content ul { list-style: none; padding: 0; margin: 0; } .hint-content li { padding: 5px 0; font-size: 12px; color: #cccccc; } .hint-content kbd { background: #1a1a1a; border: 1px solid #555; border-radius: 3px; padding: 2px 6px; font-family: 'Consolas', monospace; font-size: 11px; color: #ffffff; margin-right: 8px; } /* Compact Mode Toggle Button */ .compact-toggle { background: #2a2a2a; border: 1px solid #4a4a4a; border-radius: 4px; color: #cccccc; padding: 8px 15px; cursor: pointer; font-size: 12px; transition: all 0.2s; } .compact-toggle:hover { background: #3a3a3a; border-color: #666666; color: #ffffff; } /* Compact Mode Styles - Condensed */ body.compact-mode .section { padding: 10px; } body.compact-mode .section h2 { font-size: 14px; margin-bottom: 8px; } body.compact-mode .input-group { margin-bottom: 8px; } body.compact-mode .input-group label { font-size: 11px; } body.compact-mode .input-group input { padding: 4px 8px; font-size: 12px; } body.compact-mode .result-item { padding: 6px 10px; } body.compact-mode .result-label, body.compact-mode .result-value { font-size: 11px; } body.compact-mode .hex-calculator { display: none; } body.compact-mode .tab { padding: 6px 12px; font-size: 12px; } body.compact-mode .formula-item { padding: 4px 8px; font-size: 11px; } /* Context Menu - Condensed */ .context-menu { position: fixed; background: #2a2a2a; border: 1px solid #4a4a4a; border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); z-index: 10000; min-width: 250px; padding: 4px 0; } .context-menu-header { padding: 8px 12px; font-size: 11px; color: #888888; font-weight: bold; border-bottom: 1px solid #3a3a3a; text-transform: uppercase; } .context-menu-item { display: flex; justify-content: space-between; padding: 8px 12px; cursor: pointer; transition: background-color 0.2s; font-size: 12px; } .context-menu-item:hover { background: #3a3a3a; } .format-label { color: #888888; font-weight: bold; margin-right: 15px; } .format-value { color: #4CAF50; font-family: 'Consolas', monospace; font-weight: bold; } /* Notification System - Condensed */ .notification { position: fixed; top: 20px; right: 20px; padding: 12px 20px; background: #2a2a2a; border: 1px solid #4a4a4a; border-radius: 6px; color: #ffffff; font-size: 13px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); z-index: 10001; opacity: 0; transform: translateX(400px); transition: all 0.3s ease; } .notification.show { opacity: 1; transform: translateX(0); } .notification-success { border-left: 4px solid #4CAF50; } .notification-info { border-left: 4px solid #2196F3; } .notification-warning { border-left: 4px solid #FF9800; } .notification-error { border-left: 4px solid #F44336; } /* Hover effects & Responsive - Condensed */ .result-value, .conv-value { cursor: pointer; transition: background-color 0.3s; } .result-value:hover, .conv-value:hover { background-color: rgba(76, 175, 80, 0.1); } button:focus-visible, input:focus-visible, .tab:focus-visible { outline: 2px solid #4CAF50; outline-offset: 2px; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } /* Responsive */ @media (max-width: 768px) { .keyboard-hint, .notification { bottom: 10px; right: 10px; } .notification { top: 10px; max-width: calc(100% - 20px); } } @media print { .keyboard-hint, .compact-toggle, .context-menu, .notification { display: none !important; } }