You've already forked Nano-Banana-AI-Image-Editor
235 lines
3.7 KiB
CSS
235 lines
3.7 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* Toast animations */
|
|
@keyframes slide-in-from-top-full {
|
|
0% {
|
|
transform: translateY(-100%);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in-from-right {
|
|
0% {
|
|
transform: translateX(100%);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: translateX(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-out-to-right {
|
|
0% {
|
|
transform: translateX(0);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: translateX(100%);
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in-from-left {
|
|
0% {
|
|
transform: translateX(-100%);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: translateX(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes scale-in {
|
|
0% {
|
|
transform: scale(0.95);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes scale-out {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(0.95);
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-down {
|
|
0% {
|
|
transform: translateY(-10px);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes pulse-click {
|
|
0% {
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
transform: scale(0.95);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
.animate-in {
|
|
animation-duration: 300ms;
|
|
animation-fill-mode: both;
|
|
}
|
|
|
|
.slide-in-from-top-full {
|
|
animation-name: slide-in-from-top-full;
|
|
}
|
|
|
|
.slide-in-from-right {
|
|
animation-name: slide-in-from-right;
|
|
}
|
|
|
|
.slide-out-to-right {
|
|
animation-name: slide-out-to-right;
|
|
}
|
|
|
|
.slide-in-from-left {
|
|
animation-name: slide-in-from-left;
|
|
}
|
|
|
|
.fade-in {
|
|
animation-name: fade-in;
|
|
}
|
|
|
|
.scale-in {
|
|
animation-name: scale-in;
|
|
}
|
|
|
|
.scale-out {
|
|
animation-name: scale-out;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Inter', sans-serif;
|
|
font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
|
|
overflow: hidden;
|
|
background-color: #FFFFFF;
|
|
color: #212529;
|
|
}
|
|
|
|
/* Custom scrollbar for light theme */
|
|
::-webkit-scrollbar {
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: #F8F9FA;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: #E9ECEF;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: #DEE2E6;
|
|
}
|
|
|
|
/* Custom range slider styling */
|
|
.slider::-webkit-slider-thumb {
|
|
appearance: none;
|
|
height: 16px;
|
|
width: 16px;
|
|
border-radius: 50%;
|
|
background: #FDE047;
|
|
cursor: pointer;
|
|
border: 2px solid #FFFFFF;
|
|
}
|
|
|
|
.slider::-moz-range-thumb {
|
|
height: 16px;
|
|
width: 16px;
|
|
border-radius: 50%;
|
|
background: #FDE047;
|
|
cursor: pointer;
|
|
border: 2px solid #FFFFFF;
|
|
}
|
|
|
|
/* Marching ants animation */
|
|
@keyframes marching-ants {
|
|
0% { stroke-dashoffset: 0; }
|
|
100% { stroke-dashoffset: 10; }
|
|
}
|
|
|
|
.marching-ants {
|
|
stroke-dasharray: 5 5;
|
|
animation: marching-ants 0.5s linear infinite;
|
|
}
|
|
|
|
/* Focus styles for accessibility */
|
|
*:focus-visible {
|
|
outline: 2px solid #FDE047;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Smooth transitions */
|
|
* {
|
|
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
|
|
transition-duration: 200ms;
|
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
/* Animation classes */
|
|
.slide-down {
|
|
animation-name: slide-down;
|
|
}
|
|
|
|
.pulse-click {
|
|
animation-name: pulse-click;
|
|
}
|
|
|
|
/* Card styles */
|
|
.card {
|
|
@apply bg-white rounded-xl shadow-card border border-gray-100 overflow-hidden;
|
|
backdrop-filter: blur(10px);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.card-hover {
|
|
@apply shadow-card-hover;
|
|
}
|
|
|
|
.card-lg {
|
|
@apply shadow-card-lg;
|
|
} |