YOLO mode effects

This commit is contained in:
Auto
2026-01-09 08:08:59 +02:00
parent 45ba266f71
commit a195d6de08
2 changed files with 60 additions and 16 deletions

View File

@@ -1,4 +1,4 @@
import { Play, Square, Loader2, Flame } from 'lucide-react' import { Play, Square, Loader2 } from 'lucide-react'
import { import {
useStartAgent, useStartAgent,
useStopAgent, useStopAgent,
@@ -40,8 +40,6 @@ export function AgentControl({ projectName, status }: AgentControlProps) {
> >
{isLoading ? ( {isLoading ? (
<Loader2 size={18} className="animate-spin" /> <Loader2 size={18} className="animate-spin" />
) : yoloMode ? (
<Flame size={18} />
) : ( ) : (
<Play size={18} /> <Play size={18} />
)} )}
@@ -50,9 +48,11 @@ export function AgentControl({ projectName, status }: AgentControlProps) {
<button <button
onClick={handleStop} onClick={handleStop}
disabled={isLoading} disabled={isLoading}
className="neo-btn neo-btn-danger text-sm py-2 px-3" className={`neo-btn text-sm py-2 px-3 ${
title="Stop Agent" yoloMode ? 'neo-btn-yolo' : 'neo-btn-danger'
aria-label="Stop Agent" }`}
title={yoloMode ? 'Stop Agent (YOLO Mode)' : 'Stop Agent'}
aria-label={yoloMode ? 'Stop Agent in YOLO Mode' : 'Stop Agent'}
> >
{isLoading ? ( {isLoading ? (
<Loader2 size={18} className="animate-spin" /> <Loader2 size={18} className="animate-spin" />

View File

@@ -163,21 +163,29 @@
transform: none; transform: none;
} }
/* YOLO Mode Button - Fiery gradient for when YOLO mode is enabled */ /* YOLO Mode Button - Animated fire effect for when YOLO mode is enabled */
/* Uses darker orange colors for better contrast with white text (WCAG AA) */
.neo-btn-yolo { .neo-btn-yolo {
background: linear-gradient(135deg, #d64500, #e65c00); background: linear-gradient(
0deg,
#8b0000 0%,
#d64500 30%,
#ff6a00 60%,
#ffa500 100%
);
background-size: 100% 200%;
color: #ffffff; color: #ffffff;
box-shadow: animation: fireGlow 0.8s ease-in-out infinite, fireGradient 1.5s ease-in-out infinite;
4px 4px 0 var(--color-neo-border),
0 0 12px rgba(255, 84, 0, 0.4);
} }
.neo-btn-yolo:hover { .neo-btn-yolo:hover {
background: linear-gradient(135deg, #ff5400, #ff6a00); background: linear-gradient(
box-shadow: 0deg,
6px 6px 0 var(--color-neo-border), #a00000 0%,
0 0 16px rgba(255, 84, 0, 0.5); #e65c00 30%,
#ff7800 60%,
#ffb700 100%
);
background-size: 100% 200%;
} }
/* Inputs */ /* Inputs */
@@ -371,6 +379,42 @@
} }
} }
@keyframes fireGlow {
0%, 100% {
box-shadow:
4px 4px 0 var(--color-neo-border),
0 0 10px rgba(255, 100, 0, 0.5),
0 0 20px rgba(255, 60, 0, 0.3);
}
25% {
box-shadow:
4px 4px 0 var(--color-neo-border),
0 0 15px rgba(255, 80, 0, 0.6),
0 0 30px rgba(255, 40, 0, 0.4);
}
50% {
box-shadow:
4px 4px 0 var(--color-neo-border),
0 0 12px rgba(255, 120, 0, 0.7),
0 0 25px rgba(255, 50, 0, 0.5);
}
75% {
box-shadow:
4px 4px 0 var(--color-neo-border),
0 0 18px rgba(255, 70, 0, 0.55),
0 0 35px rgba(255, 30, 0, 0.35);
}
}
@keyframes fireGradient {
0%, 100% {
background-position: 0% 100%;
}
50% {
background-position: 100% 0%;
}
}
/* ============================================================================ /* ============================================================================
Utilities Layer Utilities Layer
============================================================================ */ ============================================================================ */