Nora / frontend /index.css
GitHub Action
Deploy clean version of Nora
59bd45e
/* Global styles for SoulMate AI Companion */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Nunito', -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;
overscroll-behavior: none;
}
#root {
width: 100%;
height: 100vh;
overflow: hidden;
}
/* Scrollbar styles */
.no-scrollbar::-webkit-scrollbar {
display: none;
}
.no-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* Smooth scroll */
.scroll-smooth {
scroll-behavior: smooth;
}
/* Custom animations */
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeSlideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20px) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes slideDown {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}
/* Animation utilities */
.animate-fadeIn {
animation: fadeIn 0.3s ease-out;
}
.animate-fadeSlideUp {
animation: fadeSlideUp 0.5s ease-out;
}
.animate-slideUp {
animation: slideUp 0.3s ease-out;
}
.animate-slideDown {
animation: slideDown 0.3s ease-out;
}
.animate-scaleIn {
animation: scaleIn 0.3s ease-out;
}
/* Delay utilities */
.delay-100 {
animation-delay: 100ms;
}
.delay-200 {
animation-delay: 200ms;
}
.delay-300 {
animation-delay: 300ms;
}
.delay-400 {
animation-delay: 400ms;
}
.delay-500 {
animation-delay: 500ms;
}
.delay-700 {
animation-delay: 700ms;
}
/* Bounce In Animation for AI greeting */
@keyframes bounceIn {
0% {
opacity: 0;
transform: translateX(-50%) scale(0.3) translateY(20px);
}
50% {
opacity: 1;
transform: translateX(-50%) scale(1.05) translateY(-5px);
}
70% {
transform: translateX(-50%) scale(0.95) translateY(0);
}
100% {
opacity: 1;
transform: translateX(-50%) scale(1) translateY(0);
}
}