contextflow-rl / frontend /src /index.css
namish10's picture
Upload frontend/src/index.css with huggingface_hub
28a3c38 verified
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
--primary: #6366f1;
--secondary: #8b5cf6;
--accent: #a855f7;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #0a0a0f;
color: #f9fafb;
min-height: 100vh;
}
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: #1f2937;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #374151;
}
.glass {
background: rgba(17, 24, 39, 0.8);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.card {
@apply glass rounded-xl p-6;
}
.btn-primary {
@apply px-6 py-3 bg-gradient-to-r from-primary to-secondary rounded-lg font-semibold
transition-all duration-200 hover:scale-105 hover:shadow-lg hover:shadow-primary/30;
}
.btn-secondary {
@apply px-4 py-2 bg-dark3 rounded-lg border border-white/10
transition-all duration-200 hover:bg-dark2 hover:border-primary;
}
.input {
@apply w-full px-4 py-3 bg-dark3 rounded-lg border border-white/10
focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30
transition-all duration-200;
}
.stat-card {
@apply glass rounded-xl p-4 text-center;
}
.prediction-card {
@apply glass rounded-lg p-4 border-l-4 border-primary cursor-pointer
transition-all duration-200 hover:scale-[1.02] hover:shadow-lg;
}
.confusion-bar {
height: 8px;
border-radius: 4px;
background: linear-gradient(90deg, #10b981, #f59e0b, #ef4444);
transition: width 0.3s ease;
}
@keyframes pulse-glow {
0%, 100% { box-shadow: 0 0 20px rgba(99, 102, 241, 0.4); }
50% { box-shadow: 0 0 40px rgba(99, 102, 241, 0.8); }
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
@keyframes swim {
0% { transform: translateX(-100%) scaleX(1); }
49% { transform: translateX(100%) scaleX(1); }
50% { transform: translateX(100%) scaleX(-1); }
99% { transform: translateX(-100%) scaleX(-1); }
100% { transform: translateX(-100%) scaleX(1); }
}
@keyframes rise {
0% { transform: translateY(100%); opacity: 0; }
50% { opacity: 1; }
100% { transform: translateY(-100%); opacity: 0; }
}
.glow { animation: pulse-glow 2s ease-in-out infinite; }
.float { animation: float 3s ease-in-out infinite; }
.swim { animation: swim 8s linear infinite; }
/* LLM Flow Styles */
.llm-response-card {
@apply glass rounded-lg p-4 border border-primary/30 transition-all duration-300;
}
.llm-response-card:hover {
@apply border-primary/60 shadow-lg shadow-primary/20;
}
.gesture-action-badge {
@apply inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium;
}
.gesture-badge-swipe {
@apply bg-blue-500/20 text-blue-400;
}
.gesture-badge-pinch {
@apply bg-purple-500/20 text-purple-400;
}
.gesture-badge-tap {
@apply bg-green-500/20 text-green-400;
}
.rate-limit-indicator {
@apply flex items-center gap-2 px-3 py-2 rounded-lg text-sm;
}
.rate-limit-ok {
@apply bg-green-500/20 text-green-400;
}
.rate-limit-warning {
@apply bg-yellow-500/20 text-yellow-400;
}
.rate-limit-error {
@apply bg-red-500/20 text-red-400;
}
.llm-provider-logo {
@apply w-8 h-8 rounded-lg flex items-center justify-center text-xs font-bold;
}
.provider-chatgpt {
@apply bg-green-500 text-white;
}
.provider-gemini {
@apply bg-blue-500 text-white;
}
.provider-claude {
@apply bg-orange-500 text-white;
}
.prompt-template-btn {
@apply px-3 py-2 rounded-lg text-sm transition-all duration-200;
}
.prompt-template-btn-active {
@apply bg-primary text-white;
}
.prompt-template-btn-inactive {
@apply bg-dark3 text-gray-400 hover:bg-dark2 hover:text-white;
}
@keyframes slide-in {
from { transform: translateX(-20px); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
.slide-in {
animation: slide-in 0.3s ease-out;
}
@keyframes typing {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}
.typing-indicator {
@apply flex items-center gap-1;
}
.typing-indicator span {
@apply w-2 h-2 rounded-full bg-primary;
animation: typing 1s ease-in-out infinite;
}
.typing-indicator span:nth-child(2) {
animation-delay: 0.2s;
}
.typing-indicator span:nth-child(3) {
animation-delay: 0.4s;
}
/* Settings Page Styles */
input[type="checkbox"] {
@apply w-5 h-5 rounded border-gray-500 text-primary focus:ring-primary bg-dark3;
}
input[type="checkbox"]:checked {
@apply bg-primary border-primary;
}
select {
@apply w-full px-4 py-3 bg-dark3 rounded-lg border border-white/10
focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30
transition-all duration-200;
}
input[type="number"] {
@apply px-4 py-2 bg-dark3 rounded-lg border border-white/10
focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30
transition-all duration-200;
}
/* Toast Notifications */
.llm-toast {
position: fixed;
bottom: 20px;
right: 20px;
padding: 12px 16px;
border-radius: 8px;
display: flex;
align-items: center;
gap: 8px;
z-index: 9999;
transform: translateY(100px);
opacity: 0;
transition: all 0.3s ease;
max-width: 350px;
}
.llm-toast.show {
transform: translateY(0);
opacity: 1;
}
.llm-toast-info {
background: rgba(99, 102, 241, 0.95);
color: white;
}
.llm-toast-success {
background: rgba(16, 185, 129, 0.95);
color: white;
}
.llm-toast-error {
background: rgba(239, 68, 68, 0.95);
color: white;
}
.llm-toast button {
background: none;
border: none;
color: white;
font-size: 18px;
cursor: pointer;
opacity: 0.8;
}
.llm-toast button:hover {
opacity: 1;
}