287 lines
4.2 KiB
CSS
287 lines
4.2 KiB
CSS
/**
|
|
* AGC AI Document Search Interface
|
|
* Animation Styles
|
|
*/
|
|
|
|
/* Typing Animation */
|
|
.typing-dot {
|
|
display: inline-block;
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
margin-right: 4px;
|
|
background-color: currentColor;
|
|
animation: typing-animation 1.4s infinite ease-in-out both;
|
|
}
|
|
|
|
.typing-dot:nth-child(1) {
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.typing-dot:nth-child(2) {
|
|
animation-delay: 0.2s;
|
|
}
|
|
|
|
.typing-dot:nth-child(3) {
|
|
animation-delay: 0.4s;
|
|
}
|
|
|
|
@keyframes typing-animation {
|
|
0%,
|
|
80%,
|
|
100% {
|
|
transform: scale(0.6);
|
|
opacity: 0.6;
|
|
}
|
|
40% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
/* Hover Animations */
|
|
.hover-float {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.hover-float:hover {
|
|
transform: translateY(-5px);
|
|
}
|
|
|
|
.hover-grow {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.hover-grow:hover {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.hover-shine {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.hover-shine::before {
|
|
position: absolute;
|
|
top: 0;
|
|
left: -75%;
|
|
z-index: 2;
|
|
display: block;
|
|
content: "";
|
|
width: 50%;
|
|
height: 100%;
|
|
background: linear-gradient(
|
|
to right,
|
|
rgba(255, 255, 255, 0) 0%,
|
|
rgba(255, 255, 255, 0.3) 100%
|
|
);
|
|
transform: skewX(-25deg);
|
|
transition: all 0.75s;
|
|
}
|
|
|
|
.hover-shine:hover::before {
|
|
animation: shine 0.75s;
|
|
}
|
|
|
|
@keyframes shine {
|
|
100% {
|
|
left: 125%;
|
|
}
|
|
}
|
|
|
|
/* Page Transitions */
|
|
.page-transition-fade {
|
|
animation: pageFade 0.5s ease-in-out;
|
|
}
|
|
|
|
@keyframes pageFade {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.page-transition-slide-up {
|
|
animation: pageSlideUp 0.5s ease-in-out;
|
|
}
|
|
|
|
@keyframes pageSlideUp {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Focus Effect */
|
|
.focus-effect {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.focus-effect:focus-within {
|
|
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
|
|
border-color: #3b82f6;
|
|
}
|
|
|
|
/* Loading Animations */
|
|
.loading-spinner {
|
|
display: inline-block;
|
|
width: 50px;
|
|
height: 50px;
|
|
border: 3px solid rgba(59, 130, 246, 0.3);
|
|
border-radius: 50%;
|
|
border-top-color: #3b82f6;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
.loading-dots {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.loading-dots span {
|
|
display: inline-block;
|
|
width: 8px;
|
|
height: 8px;
|
|
margin: 0 2px;
|
|
background-color: #3b82f6;
|
|
border-radius: 50%;
|
|
animation: loading-dots 1.4s infinite ease-in-out both;
|
|
}
|
|
|
|
.loading-dots span:nth-child(1) {
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.loading-dots span:nth-child(2) {
|
|
animation-delay: 0.2s;
|
|
}
|
|
|
|
.loading-dots span:nth-child(3) {
|
|
animation-delay: 0.4s;
|
|
}
|
|
|
|
@keyframes loading-dots {
|
|
0%,
|
|
80%,
|
|
100% {
|
|
transform: scale(0);
|
|
}
|
|
40% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
/* Card Hover Animations */
|
|
.card-hover-3d {
|
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
transform-style: preserve-3d;
|
|
}
|
|
|
|
.card-hover-3d:hover {
|
|
transform: translateY(-10px) rotateX(5deg);
|
|
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Button Animations */
|
|
.btn-pulse {
|
|
position: relative;
|
|
}
|
|
|
|
.btn-pulse::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background-color: currentColor;
|
|
opacity: 0.6;
|
|
z-index: -1;
|
|
animation: pulse 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 0.6;
|
|
}
|
|
50% {
|
|
transform: scale(1.1);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
/* Animation Utilities */
|
|
.rotate-90 {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.scale-90 {
|
|
transform: scale(0.9);
|
|
}
|
|
|
|
.scale-95 {
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.scale-105 {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.scale-110 {
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.scale-125 {
|
|
transform: scale(1.25);
|
|
}
|
|
|
|
.animation-delay-100 {
|
|
animation-delay: 100ms;
|
|
}
|
|
|
|
.animation-delay-200 {
|
|
animation-delay: 200ms;
|
|
}
|
|
|
|
.animation-delay-300 {
|
|
animation-delay: 300ms;
|
|
}
|
|
|
|
.animation-delay-500 {
|
|
animation-delay: 500ms;
|
|
}
|
|
|
|
.animation-delay-700 {
|
|
animation-delay: 700ms;
|
|
}
|
|
|
|
.animation-delay-1000 {
|
|
animation-delay: 1000ms;
|
|
}
|
|
|
|
/* Animation for fade out */
|
|
@keyframes fadeOut {
|
|
from {
|
|
opacity: 1;
|
|
}
|
|
to {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.animate-fade-out {
|
|
animation: fadeOut var(--transition-normal);
|
|
}
|