WebProject / frontend /css /animations.css
Soheib31's picture
Upload 27 files
47a81c7 verified
/* Animations */
/* Spinner Animation */
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.spinner {
animation: spin 1s linear infinite;
}
/* Fade In Animation */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in {
animation: fadeIn 0.5s ease-in;
}
/* Slide Up Animation */
@keyframes slideUp {
from {
transform: translateY(20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.slide-up {
animation: slideUp 0.5s ease-out;
}
/* Pulse Animation */
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
.pulse {
animation: pulse 2s infinite;
}
/* Scale Animation */
@keyframes scale {
from { transform: scale(0.95); }
to { transform: scale(1); }
}
.scale {
animation: scale 0.3s ease-out;
}
/* Button Hover Effects */
.analyze-btn:not(:disabled):hover {
transform: translateY(-2px);
box-shadow: 0 4px 6px rgba(37, 99, 235, 0.25);
}
.analyze-btn:not(:disabled):active {
transform: translateY(0);
}
/* Card Hover Effects */
.feature-card:hover .feature-icon {
transform: scale(1.1);
background-color: rgba(37, 99, 235, 0.15);
}
/* File Upload Animation */
.upload-area.dragover {
transform: scale(1.02);
}
/* Tab Button Animation */
.tab-btn {
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.2s ease;
}
.tab-btn:hover:not(.active) {
transform: translateY(-2px);
}
.tab-btn.active {
transform: translateY(-3px);
}
/* Results Container Animation */
.results-container {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.results-container:hover {
box-shadow: var(--shadow-lg);
}
/* Section Transitions */
.section-title,
.feature-card,
.about-content p {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.5s ease, transform 0.5s ease;
}
/* These will be activated by JavaScript when elements come into view */
.appear {
opacity: 1;
transform: translateY(0);
}
/* Hero Section Animation */
.hero {
background-size: 200% 200%;
animation: gradientAnimation 15s ease infinite;
}
@keyframes gradientAnimation {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
/* Logo Animation */
.logo i {
transition: transform 0.3s ease;
}
.logo:hover i {
transform: rotate(15deg);
}
/* Action Buttons Animation */
.action-btn {
transition: all 0.2s ease;
}
.action-btn:hover {
transform: translateY(-2px);
}
.action-btn:active {
transform: translateY(0);
}
/* File Selected Animation */
.file-selected {
border-color: var(--success-color) !important;
background-color: rgba(16, 185, 129, 0.05) !important;
}
.file-selected i {
color: var(--success-color);
}