Cyberpluis's picture
// android-app/app/src/main/java/com/ainexus/studio/core/AgentManager.kt
dda68f3 verified
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
background: #cbd5e1;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #94a3b8;
}
/* Smooth scrolling */
html {
scroll-behavior: smooth;
}
/* Animation classes */
@keyframes float {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 20px rgba(139, 92, 246, 0.3);
}
50% {
box-shadow: 0 0 40px rgba(139, 92, 246, 0.6);
}
}
.animate-float {
animation: float 3s ease-in-out infinite;
}
.animate-pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
}
/* Gradient text animation */
.gradient-text {
background: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 50%, #c4b5fd 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Card hover effect */
.card-hover {
transition: all 0.3s ease;
}
.card-hover:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
/* Button shine effect */
.btn-shine {
position: relative;
overflow: hidden;
}
.btn-shine::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transition: left 0.5s ease;
}
.btn-shine:hover::after {
left: 100%;
}
/* Loading skeleton */
.skeleton {
background: linear-gradient(
90deg,
#f1f5f9 25%,
#e2e8f0 50%,
#f1f5f9 75%
);
background-size: 200% 100%;
animation: skeleton-loading 1.5s infinite;
}
@keyframes skeleton-loading {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
/* Focus styles */
*:focus {
outline: none;
}
*:focus-visible {
outline: 2px solid #8b5cf6;
outline-offset: 2px;
}
/* Selection color */
::selection {
background: rgba(139, 92, 246, 0.2);
color: #1e293b;
}
/* Code block styling */
pre {
counter-reset: line;
}
code {
counter-increment: line;
}
/* Responsive typography */
@media (max-width: 640px) {
html {
font-size: 14px;
}
}
/* Glass morphism effect */
.glass {
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
/* Gradient border */
.gradient-border {
position: relative;
background: white;
border-radius: 1rem;
}
.gradient-border::before {
content: '';
position: absolute;
inset: -2px;
border-radius: 1.1rem;
background: linear-gradient(135deg, #8b5cf6, #a78bfa, #c4b5fd);
z-index: -1;
}
/* Typing animation */
.typing-cursor::after {
content: '|';
animation: blink 1s step-end infinite;
}
@keyframes blink {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0;
}
}