“vinit5112”
Add all code
deb090d
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
@apply bg-gray-100 dark:bg-gray-800;
}
::-webkit-scrollbar-thumb {
@apply bg-gray-300 dark:bg-gray-600 rounded-full;
}
::-webkit-scrollbar-thumb:hover {
@apply bg-gray-400 dark:bg-gray-500;
}
/* Loading dots animation */
.typing-indicator {
display: flex;
align-items: center;
gap: 4px;
}
.typing-indicator .dot {
width: 6px;
height: 6px;
border-radius: 50%;
background-color: currentColor;
opacity: 0.4;
animation: typing-dot 1.4s infinite ease-in-out;
}
.typing-indicator .dot:nth-child(1) {
animation-delay: 0s;
}
.typing-indicator .dot:nth-child(2) {
animation-delay: 0.2s;
}
.typing-indicator .dot:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes typing-dot {
0%, 60%, 100% {
opacity: 0.4;
transform: scale(1);
}
30% {
opacity: 1;
transform: scale(1.2);
}
}
/* Message bubble animations */
.message-enter {
opacity: 0;
transform: translateY(20px);
}
.message-enter-active {
opacity: 1;
transform: translateY(0);
transition: opacity 300ms ease-out, transform 300ms ease-out;
}
/* File upload hover effects */
.file-drop-zone {
transition: all 0.2s ease-in-out;
}
.file-drop-zone:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Glass morphism effect */
.glass {
backdrop-filter: blur(16px) saturate(180%);
-webkit-backdrop-filter: blur(16px) saturate(180%);
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(255, 255, 255, 0.125);
}
.glass.dark {
background-color: rgba(17, 24, 39, 0.8);
border: 1px solid rgba(75, 85, 99, 0.3);
}
/* Button hover effects */
.btn-primary {
@apply bg-primary-600 hover:bg-primary-700 focus:ring-primary-500;
transition: all 0.2s ease-in-out;
}
.btn-primary:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}
/* Code syntax highlighting overrides */
.prose pre {
@apply bg-gray-900 dark:bg-gray-950;
}
.prose code {
@apply bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-200 px-1 py-0.5 rounded text-sm;
}
/* Message content styling */
.message-content {
@apply prose prose-sm max-w-none dark:prose-invert;
}
.message-content p:last-child {
margin-bottom: 0;
}
.message-content ul, .message-content ol {
@apply my-2;
}
.message-content li {
@apply my-1;
}
/* Enhanced Chat Input Styles */
.chat-input-container {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
backdrop-filter: blur(10px);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.chat-input-container:focus-within {
transform: translateY(-1px);
box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.25);
}
.chat-input {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
font-weight: 400;
line-height: 1.6;
letter-spacing: 0.01em;
}
.chat-input::placeholder {
font-weight: 400;
opacity: 0.6;
transition: opacity 0.3s ease;
}
.chat-input:focus::placeholder {
opacity: 0.4;
}
/* Enhanced scrollbar for textarea */
.chat-input::-webkit-scrollbar {
width: 4px;
}
.chat-input::-webkit-scrollbar-track {
background: transparent;
}
.chat-input::-webkit-scrollbar-thumb {
background: rgba(156, 163, 175, 0.5);
border-radius: 2px;
}
.chat-input::-webkit-scrollbar-thumb:hover {
background: rgba(156, 163, 175, 0.8);
}
/* Input focus indicator animation */
.input-focus-indicator {
transform-origin: left;
animation: expand 0.3s ease-out;
}
@keyframes expand {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
/* Enhanced button glow effect */
.btn-glow {
position: relative;
overflow: visible;
}
.btn-glow::before {
content: '';
position: absolute;
inset: -2px;
border-radius: inherit;
background: linear-gradient(45deg, transparent, rgba(59, 130, 246, 0.3), transparent);
z-index: -1;
opacity: 0;
transition: opacity 0.3s ease;
}
.btn-glow:hover::before {
opacity: 1;
}
/* Smooth transitions for dark mode */
* {
transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
/* Enhanced tooltip styling */
.tooltip {
animation: tooltip-appear 0.2s ease-out;
}
@keyframes tooltip-appear {
from {
opacity: 0;
transform: translateX(-50%) translateY(4px);
}
to {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
}
/* Floating effect for input container */
.floating-input {
box-shadow:
0 10px 25px -5px rgba(0, 0, 0, 0.1),
0 4px 6px -2px rgba(0, 0, 0, 0.05);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.floating-input:hover {
box-shadow:
0 20px 40px -12px rgba(0, 0, 0, 0.15),
0 8px 16px -4px rgba(0, 0, 0, 0.1);
}
.floating-input:focus-within {
box-shadow:
0 25px 50px -12px rgba(59, 130, 246, 0.25),
0 10px 20px -5px rgba(0, 0, 0, 0.1);
}