+
diff --git a/frontend/src/index.css b/frontend/src/index.css
index d534b6d..9eb8e82 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -16,6 +16,19 @@
html.light body {
@apply bg-gray-100 text-gray-900;
}
+
+ /* Smooth focus transitions */
+ *:focus {
+ @apply outline-none transition-all duration-200;
+ }
+
+ *:focus-visible {
+ @apply ring-2 ring-claw-500 ring-offset-2 ring-offset-gray-900;
+ }
+
+ html.light *:focus-visible {
+ @apply ring-offset-gray-100;
+ }
}
@layer utilities {
@@ -54,6 +67,33 @@
background: rgba(0, 0, 0, 0.3);
}
+ /* Glassmorphism utilities */
+ .glass {
+ @apply backdrop-blur-md bg-white/10 border border-white/20;
+ }
+
+ .glass-dark {
+ @apply backdrop-blur-md bg-gray-900/50 border border-gray-700/50;
+ }
+
+ /* Gradient text */
+ .text-gradient {
+ @apply bg-clip-text text-transparent bg-gradient-to-r from-claw-400 to-claw-600;
+ }
+
+ .text-gradient-agent {
+ @apply bg-clip-text text-transparent bg-gradient-to-r from-agent-light to-agent;
+ }
+
+ /* Gradient backgrounds */
+ .bg-gradient-claw {
+ @apply bg-gradient-to-r from-claw-500 to-claw-600;
+ }
+
+ .bg-gradient-agent {
+ @apply bg-gradient-to-r from-agent-light to-agent;
+ }
+
/* Toast animation */
@keyframes slideIn {
from {
@@ -122,6 +162,34 @@
border-radius: 8px;
}
+ /* Button glow effect */
+ .btn-glow {
+ @apply relative overflow-hidden;
+ }
+
+ .btn-glow::before {
+ content: '';
+ @apply absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent -translate-x-full;
+ }
+
+ .btn-glow:hover::before {
+ @apply animate-shine;
+ }
+
+ /* Smooth transitions for interactive elements */
+ .transition-smooth {
+ @apply transition-all duration-200 ease-out;
+ }
+
+ /* Hover scale effect */
+ .hover-scale {
+ @apply transition-transform duration-200;
+ }
+
+ .hover-scale:hover {
+ @apply scale-105;
+ }
+
/* Markdown content styles */
.markdown-content p {
margin-bottom: 0.5em;
diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js
index 03a8160..f2efb98 100644
--- a/frontend/tailwind.config.js
+++ b/frontend/tailwind.config.js
@@ -25,7 +25,35 @@ export default {
light: '#34d399',
dark: '#059669',
}
- }
+ },
+ boxShadow: {
+ 'glow': '0 0 20px rgba(14, 165, 233, 0.3)',
+ 'glow-lg': '0 0 30px rgba(14, 165, 233, 0.4)',
+ 'glow-agent': '0 0 20px rgba(16, 185, 129, 0.3)',
+ 'glow-lg-agent': '0 0 30px rgba(16, 185, 129, 0.4)',
+ 'soft': '0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04)',
+ 'card': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
+ 'card-hover': '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
+ },
+ animation: {
+ 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
+ 'float': 'float 3s ease-in-out infinite',
+ 'shine': 'shine 2s linear infinite',
+ },
+ keyframes: {
+ float: {
+ '0%, 100%': { transform: 'translateY(0)' },
+ '50%': { transform: 'translateY(-5px)' },
+ },
+ shine: {
+ '0%': { backgroundPosition: '200% center' },
+ '100%': { backgroundPosition: '-200% center' },
+ },
+ },
+ backgroundImage: {
+ 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
+ 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
+ },
},
},
plugins: [],