// ==============================================================================
// Shadow Design — MessageBubble & Chat Styles
// ==============================================================================
@use '../variables' as *;
@use '../mixins' as *;
@layer sd-components {
.sd-chat-bubble-container {
display: flex;
width: 100%;
margin-bottom: 10px;
background: transparent !important;
border: none !important;
box-shadow: none !important;
border-radius: 0 !important;
padding: 0 !important;
&--incoming,
&.sd-chat-bubble-container--incoming,
&.sd-chat-bubble--incoming {
justify-content: flex-start;
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
&--outgoing,
&.sd-chat-bubble-container--outgoing,
&.sd-chat-bubble--outgoing {
justify-content: flex-end;
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
}
.sd-chat-bubble {
position: relative;
display: flex;
flex-direction: column;
width: fit-content;
max-width: 78%;
min-width: 80px;
padding: 12px 18px;
font-family: $font-sans;
font-size: 13.5px;
line-height: 1.5;
border-radius: 18px;
box-sizing: border-box;
transition: transform $duration-fast ease, box-shadow $duration-fast ease;
&--incoming,
&.sd-chat-bubble--incoming {
background-color: #0e0e16;
border: 1px solid rgba(255, 255, 255, 0.10);
color: $zinc-100;
border-radius: 18px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
margin-right: auto;
}
&--outgoing,
&.sd-chat-bubble--outgoing {
background: linear-gradient(135deg, rgba(59, 7, 100, 0.65) 0%, rgba(22, 9, 38, 0.92) 100%);
border: 1px solid rgba(168, 85, 247, 0.35);
color: #ffffff;
border-radius: 18px;
box-shadow: 0 4px 22px rgba(0, 0, 0, 0.5), 0 0 18px rgba(107, 33, 168, 0.22);
margin-left: auto;
}
&__sender {
font-size: 11px;
font-weight: 600;
color: #c084fc;
margin-bottom: 4px;
letter-spacing: 0.02em;
}
&__content {
word-break: break-word;
}
&__meta {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
margin-top: 6px;
font-size: 10px;
color: $zinc-400;
user-select: none;
}
&__badge {
display: inline-flex;
align-items: center;
background: rgba(168, 85, 247, 0.25);
border: 1px solid rgba(168, 85, 247, 0.4);
color: #e9d5ff;
border-radius: 4px;
padding: 1px 5px;
font-size: 9px;
font-weight: 700;
letter-spacing: 0.05em;
}
&__time {
font-feature-settings: 'tnum';
opacity: 0.85;
}
&__status {
display: inline-flex;
align-items: center;
&--sending {
color: $zinc-500;
}
&--sent {
color: $zinc-400;
}
&--delivered {
color: #38bdf8;
}
&--failed {
color: #f43f5e;
}
}
}
}