nexus-ai / static /style.css
Jeetandar N Silwani
Initial Nexus AI release
7ee22ad
Raw History Blame Contribute Delete
9.11 kB
*{ margin:0; padding:0; box-sizing:border-box; font-family:Segoe UI; }
body{
background:#050816;
color:white;
display:flex;
overflow:hidden;
}
/* BG */
.bg{
position:fixed; inset:0;
background:
radial-gradient(circle at top left, rgba(34,197,94,0.12), transparent 30%),
radial-gradient(circle at bottom right, rgba(59,130,246,0.08), transparent 30%);
z-index:-2;
pointer-events:none;
}
/* MOBILE TOGGLE */
.mobile-toggle{
display:none;
position:fixed;
top:16px;
left:16px;
z-index:100;
width:44px;
height:44px;
border:none;
border-radius:14px;
background:rgba(255,255,255,0.06);
color:white;
font-size:20px;
cursor:pointer;
backdrop-filter:blur(12px);
border:1px solid rgba(255,255,255,0.06);
transition:0.2s;
}
.mobile-toggle:hover{
background:rgba(34,197,94,0.15);
}
.sidebar.open{
display:flex !important;
}
.sidebar-overlay{
display:none;
}
/* SIDEBAR */
.sidebar{
width:260px;
height:100vh;
background:rgba(255,255,255,0.04);
border-right:1px solid rgba(255,255,255,0.05);
backdrop-filter:blur(18px);
padding:25px;
display:flex;
flex-direction:column;
position:relative;
z-index:2;
transition:transform 0.3s ease;
}
.logo{
font-size:32px;
font-weight:bold;
color:#22c55e;
margin-bottom:30px;
}
.sidebar-btn{
padding:16px;
border:none;
border-radius:18px;
background:rgba(255,255,255,0.05);
color:white;
margin-bottom:14px;
cursor:pointer;
transition:0.25s;
font-size:14px;
text-align:left;
}
.sidebar-btn:hover{
background:rgba(34,197,94,0.16);
transform:translateY(-2px);
}
.sidebar-bottom{
margin-top:auto;
}
/* CHAT LIST */
#chatList{
flex:1;
overflow-y:auto;
margin-top:10px;
}
.chat-item{
display:flex;
justify-content:space-between;
align-items:center;
padding:14px;
margin-bottom:12px;
border-radius:18px;
background:rgba(255,255,255,0.04);
border:1px solid transparent;
transition:0.2s;
}
.chat-item:hover{
background:rgba(255,255,255,0.07);
}
.chat-item.active{
border-color:rgba(34,197,94,0.35);
background:rgba(34,197,94,0.12);
}
.chat-title{
cursor:pointer;
flex:1;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
.delete-chat-btn{
border:none;
background:none;
color:rgba(255,255,255,0.5);
cursor:pointer;
font-size:16px;
padding:4px 8px;
border-radius:8px;
transition:0.2s;
}
.delete-chat-btn:hover{
color:#ef4444;
background:rgba(239,68,68,0.1);
}
/* MAIN */
.main{
flex:1;
display:flex;
flex-direction:column;
height:100vh;
position:relative;
z-index:2;
}
/* CHAT */
.chat{
flex:1;
overflow-y:auto;
padding:30px;
display:flex;
flex-direction:column;
gap:20px;
}
/* Welcome screen */
.welcome-screen{
flex:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
gap:20px;
padding:40px;
}
.welcome-orb{
width:100px;
height:100px;
border-radius:50%;
background:radial-gradient(circle at 40% 35%, #4ade80, #14532d);
box-shadow:0 0 60px rgba(34,197,94,0.2), 0 0 120px rgba(34,197,94,0.08);
animation:idleFloat 4s ease-in-out infinite;
}
.welcome-screen h2{
font-size:28px;
color:rgba(255,255,255,0.9);
}
.welcome-screen p{
color:rgba(255,255,255,0.45);
font-size:16px;
max-width:400px;
line-height:1.7;
}
@keyframes idleFloat{
0%{ transform:translateY(0px); }
50%{ transform:translateY(-8px); }
100%{ transform:translateY(0px); }
}
/* MESSAGES */
.message{
display:flex;
gap:14px;
align-items:flex-end;
animation:messageSlide 0.3s ease;
}
@keyframes messageSlide{
from{ opacity:0; transform:translateY(12px); }
to{ opacity:1; transform:translateY(0); }
}
.message.user{
justify-content:flex-end;
}
.avatar{
width:42px;
height:42px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
background:rgba(255,255,255,0.08);
flex-shrink:0;
font-size:16px;
}
.bubble{
max-width:70%;
padding:16px 18px;
border-radius:24px;
background:rgba(255,255,255,0.06);
line-height:1.7;
border:1px solid rgba(255,255,255,0.04);
word-wrap:break-word;
font-size:15px;
box-shadow:0 2px 12px rgba(0,0,0,0.1);
}
.message.user .bubble{
background:rgba(34,197,94,0.1);
border-color:rgba(34,197,94,0.15);
}
/* TYPING INDICATOR */
.typing-dots{
display:flex; gap:4px; padding:16px 18px; align-items:center;
max-width:70%;
}
.typing-dots span{
width:8px; height:8px; border-radius:50%;
background:rgba(34,197,94,0.5);
animation:dotBounce 1.2s infinite;
}
.typing-dots span:nth-child(2){ animation-delay:0.2s; }
.typing-dots span:nth-child(3){ animation-delay:0.4s; }
@keyframes dotBounce{
0%,100%{ transform:translateY(0); opacity:0.4; }
50%{ transform:translateY(-6px); opacity:1; }
}
/* INPUT */
.input-area{
width:100%;
display:flex;
gap:14px;
padding:22px;
border-top:1px solid rgba(255,255,255,0.05);
background:rgba(255,255,255,0.03);
backdrop-filter:blur(18px);
}
.input-area input{
flex:1;
border:none;
outline:none;
border-radius:18px;
background:rgba(255,255,255,0.05);
padding:18px;
color:white;
font-size:15px;
transition:0.2s;
}
.input-area input:focus{
background:rgba(255,255,255,0.08);
}
.input-area input::placeholder{
color:rgba(255,255,255,0.35);
}
.action-btn,
.send-btn{
width:56px;
height:56px;
border:none;
border-radius:18px;
cursor:pointer;
font-size:18px;
transition:0.25s;
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
}
.action-btn{
background:rgba(255,255,255,0.05);
color:white;
}
.send-btn{
background:#22c55e;
color:black;
font-weight:bold;
font-size:20px;
}
.action-btn:hover{
transform:translateY(-3px);
background:rgba(34,197,94,0.12);
}
.send-btn:hover{
transform:translateY(-3px) scale(1.04);
box-shadow:0 6px 24px rgba(34,197,94,0.35);
}
.send-btn:active{
transform:scale(0.95);
}
/* IMAGE VIEWER */
#imageViewer{
position:fixed;
inset:0;
background:rgba(0,0,0,0.92);
display:none;
align-items:center;
justify-content:center;
z-index:9999;
cursor:zoom-out;
backdrop-filter:blur(8px);
}
#viewerImage{
max-width:90%;
max-height:90%;
border-radius:24px;
animation:viewerFade 0.3s ease;
}
@keyframes viewerFade{
from{ opacity:0; transform:scale(0.9); }
to{ opacity:1; transform:scale(1); }
}
/* LOADING SPINNER */
.loading-spinner{
display:flex;
align-items:center;
justify-content:center;
padding:40px;
}
.spinner{
width:32px;
height:32px;
border:3px solid rgba(34,197,94,0.1);
border-top-color:#22c55e;
border-radius:50%;
animation:spin 0.8s linear infinite;
}
@keyframes spin{
to{ transform:rotate(360deg); }
}
/* CHAT IMAGE */
.chat-img-wrap{
position:relative;
display:inline-block;
max-width:280px;
}
.chat-image{
max-width:280px;
border-radius:14px;
cursor:pointer;
border:1px solid rgba(255,255,255,0.06);
transition:0.2s;
display:block;
}
.chat-image:hover{
opacity:0.9;
}
.chat-dl-btn{
position:absolute;
top:8px;
right:8px;
width:36px;
height:36px;
border:none;
border-radius:10px;
background:rgba(0,0,0,0.6);
color:white;
font-size:16px;
cursor:pointer;
opacity:0;
transition:0.2s;
display:flex;
align-items:center;
justify-content:center;
backdrop-filter:blur(6px);
border:1px solid rgba(255,255,255,0.1);
}
.chat-img-wrap:hover .chat-dl-btn{
opacity:1;
}
.chat-dl-btn:hover{
background:rgba(34,197,94,0.4);
transform:scale(1.1);
}
/* RESPONSIVE */
@media(max-width:900px){
.sidebar{
display:none;
position:fixed;
left:0;
top:0;
height:100vh;
z-index:50;
width:280px;
background:rgba(5,8,22,0.98);
backdrop-filter:blur(20px);
}
.mobile-toggle{
display:flex;
align-items:center;
justify-content:center;
}
.bubble{
max-width:90%;
}
.chat{
padding:20px;
padding-top:60px;
}
.input-area{
padding:14px;
}
.sidebar-overlay{
display:none;
position:fixed;
inset:0;
background:rgba(0,0,0,0.6);
z-index:49;
backdrop-filter:blur(4px);
}
.sidebar-overlay.open{
display:block;
}
}
/* PARTICLES */
#particleCanvas{
position:fixed;
inset:0;
width:100vw;
height:100vh;
z-index:0;
pointer-events:none;
}
/* =========================
GLOBAL THEMES
========================= */
body.dark{ background:#020617; }
body.emerald{ background:#021b12; }
body.emerald .logo{ color:#22c55e; }
body.emerald .send-btn,
body.emerald .main-btn,
body.emerald .launch-btn{
background:#22c55e;
}
body.blue{ background:#07111f; }
body.blue .logo{ color:#3b82f6; }
body.blue .send-btn,
body.blue .main-btn,
body.blue .launch-btn{
background:#3b82f6;
color:white;
}
body.purple{ background:#13071f; }
body.purple .logo{ color:#a855f7; }
body.purple .send-btn,
body.purple .main-btn,
body.purple .launch-btn{
background:#a855f7;
color:white;
}
body.red{ background:#1f0707; }
body.red .logo{ color:#ef4444; }
body.red .send-btn,
body.red .main-btn,
body.red .launch-btn{
background:#ef4444;
color:white;
}