maximus-im / contextual_hints.css
lattmamb's picture
Upload 47 files
8beb2b1
/* Contextual Hints System - With Quantum Styling
-------------------------------------------------- */
:root {
--hint-bg-color: rgba(30, 30, 35, 0.95);
--hint-border-color: rgba(111, 66, 193, 0.7);
--hint-text-color: rgba(255, 255, 255, 0.9);
--hint-shadow-color: rgba(218, 75, 134, 0.3);
--hint-icon-color: rgba(13, 202, 240, 0.9);
--hint-glow-color: rgba(111, 66, 193, 0.5);
--hint-btn-color: rgba(13, 202, 240, 0.8);
--hint-transition-time: 0.3s;
}
/* Main Hint Container */
.contextual-hint {
position: absolute;
width: auto;
max-width: 300px;
min-width: 230px;
padding: 15px;
background: var(--hint-bg-color);
color: var(--hint-text-color);
border-radius: 8px;
border: 1px solid var(--hint-border-color);
box-shadow: 0 3px 15px var(--hint-shadow-color),
0 0 8px var(--hint-glow-color);
z-index: 9999;
opacity: 0;
transform: translateY(15px) scale(0.95);
transition: opacity var(--hint-transition-time) ease,
transform var(--hint-transition-time) ease;
backdrop-filter: blur(8px);
pointer-events: none;
}
/* Hint that is currently shown */
.contextual-hint.active {
opacity: 1;
transform: translateY(0) scale(1);
pointer-events: auto;
}
/* Hint Title */
.contextual-hint-title {
display: flex;
align-items: center;
margin-bottom: 10px;
padding-bottom: 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.contextual-hint-title i {
color: var(--hint-icon-color);
margin-right: 8px;
font-size: 1.1rem;
}
.contextual-hint-title h5 {
margin: 0;
font-size: 1rem;
font-weight: 600;
color: var(--hint-text-color);
}
/* Hint Content */
.contextual-hint-content {
font-size: 0.95rem;
line-height: 1.4;
margin-bottom: 15px;
}
/* Hint Actions */
.contextual-hint-actions {
display: flex;
justify-content: space-between;
align-items: center;
}
.hint-button {
background: transparent;
color: var(--hint-btn-color);
border: 1px solid var(--hint-btn-color);
padding: 5px 10px;
border-radius: 4px;
font-size: 0.8rem;
cursor: pointer;
transition: all var(--hint-transition-time) ease;
}
.hint-button:hover {
background: var(--hint-btn-color);
color: #000;
}
.hint-button-primary {
background: var(--hint-btn-color);
color: #000;
}
.hint-button-primary:hover {
background: transparent;
color: var(--hint-btn-color);
}
.hint-dont-show {
font-size: 0.8rem;
color: rgba(255, 255, 255, 0.5);
cursor: pointer;
transition: color var(--hint-transition-time) ease;
}
.hint-dont-show:hover {
color: var(--hint-text-color);
}
/* Hint Arrow */
.contextual-hint::before {
content: '';
position: absolute;
width: 10px;
height: 10px;
background: var(--hint-bg-color);
border: 1px solid var(--hint-border-color);
transform: rotate(45deg);
}
/* Position variations */
.contextual-hint.position-top::before {
bottom: -6px;
border-top: none;
border-left: none;
}
.contextual-hint.position-bottom::before {
top: -6px;
border-bottom: none;
border-right: none;
}
.contextual-hint.position-left::before {
right: -6px;
border-left: none;
border-bottom: none;
}
.contextual-hint.position-right::before {
left: -6px;
border-right: none;
border-top: none;
}
/* Hover target styling */
.hint-target {
position: relative;
}
.hint-target::after {
content: '';
position: absolute;
top: -3px;
right: -3px;
bottom: -3px;
left: -3px;
border: 2px dashed transparent;
border-radius: 5px;
transition: border-color var(--hint-transition-time) ease;
pointer-events: none;
}
.hint-target.hint-highlight::after {
border-color: var(--hint-icon-color);
}
/* Pulse animation for important hints */
@keyframes hint-pulse {
0% {
box-shadow: 0 0 0 0 rgba(13, 202, 240, 0.4);
}
70% {
box-shadow: 0 0 0 10px rgba(13, 202, 240, 0);
}
100% {
box-shadow: 0 0 0 0 rgba(13, 202, 240, 0);
}
}
.contextual-hint.important {
animation: hint-pulse 2s infinite;
}
/* LED tracer on hints */
.contextual-hint .led-tracer {
position: absolute;
height: 2px;
background: linear-gradient(90deg,
transparent,
rgba(218, 75, 134, 0.7),
rgba(13, 202, 240, 0.7),
transparent);
width: 100%;
left: 0;
bottom: 0;
animation: led-trace 2s infinite linear;
}
@keyframes led-trace {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
/* Quantum particle effect for hints */
.contextual-hint.has-particles {
overflow: hidden;
}
.hint-particles {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.hint-particle {
position: absolute;
width: 3px;
height: 3px;
background: var(--hint-icon-color);
border-radius: 50%;
opacity: 0.5;
animation: float-particle 3s infinite ease-in-out;
}
@keyframes float-particle {
0%, 100% {
transform: translateY(0) translateX(0);
opacity: 0.2;
}
50% {
transform: translateY(-15px) translateX(5px);
opacity: 0.5;
}
}