154 lines
2.9 KiB
CSS
154 lines
2.9 KiB
CSS
.bubble {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--spacing-sm, 10px);
|
|
width: min(72vw, 280px);
|
|
padding: var(--spacing-md, 12px) clamp(12px, 2.593vw, 14px);
|
|
border-radius: var(--responsive-card-radius-sm, 20px);
|
|
box-shadow: var(--shadow-input-box, 0 1px 2px rgba(0, 0, 0, 0.1));
|
|
}
|
|
|
|
.bubbleAi {
|
|
border-top-left-radius: 0;
|
|
background: #ffffff;
|
|
color: var(--color-text-foreground, #171717);
|
|
}
|
|
|
|
.bubbleUser {
|
|
border-top-right-radius: 0;
|
|
background: linear-gradient(
|
|
to right,
|
|
var(--color-button-gradient-start, #ff67e0),
|
|
var(--color-button-gradient-end, #ff52a2)
|
|
);
|
|
color: #ffffff;
|
|
}
|
|
|
|
.locked {
|
|
border: 1px solid rgba(246, 87, 160, 0.2);
|
|
background:
|
|
linear-gradient(180deg, rgba(255, 244, 248, 0.95), rgba(255, 255, 255, 0.95)),
|
|
#ffffff;
|
|
color: #3c3b3b;
|
|
}
|
|
|
|
.playButton {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: clamp(32px, 6.296vw, 34px);
|
|
height: clamp(32px, 6.296vw, 34px);
|
|
border: 0;
|
|
border-radius: 50%;
|
|
background: rgba(246, 87, 160, 0.14);
|
|
color: #f657a0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.bubbleUser .playButton {
|
|
background: rgba(255, 255, 255, 0.22);
|
|
color: #ffffff;
|
|
}
|
|
|
|
.locked .playButton {
|
|
background: linear-gradient(135deg, #ff8fc7 0%, #f657a0 100%);
|
|
color: #ffffff;
|
|
}
|
|
|
|
.playButton:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.playButton:focus-visible {
|
|
outline: 2px solid currentColor;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.body {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1 1 auto;
|
|
flex-direction: column;
|
|
gap: var(--spacing-sm, 8px);
|
|
}
|
|
|
|
.wave {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--responsive-inline-gap-xs, 4px);
|
|
height: clamp(32px, 6.296vw, 34px);
|
|
}
|
|
|
|
.wave span {
|
|
display: block;
|
|
width: clamp(3px, 0.741vw, 4px);
|
|
border-radius: 999px;
|
|
background: currentColor;
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.wave span:nth-child(1) {
|
|
height: clamp(10px, 2.222vw, 12px);
|
|
}
|
|
|
|
.wave span:nth-child(2) {
|
|
height: clamp(18px, 4.074vw, 22px);
|
|
}
|
|
|
|
.wave span:nth-child(3) {
|
|
height: clamp(24px, 5.556vw, 30px);
|
|
}
|
|
|
|
.wave span:nth-child(4) {
|
|
height: clamp(15px, 3.333vw, 18px);
|
|
}
|
|
|
|
.wave span:nth-child(5) {
|
|
height: clamp(21px, 4.815vw, 26px);
|
|
}
|
|
|
|
.error {
|
|
margin: 0;
|
|
color: var(--color-error, #ff4d4f);
|
|
font-size: var(--responsive-micro, var(--font-size-sm, 12px));
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.bubbleUser .error {
|
|
color: #ffffff;
|
|
}
|
|
|
|
.hint {
|
|
margin: 0;
|
|
color: #3c3b3b;
|
|
font-size: var(--responsive-body, 14px);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.unlockButton {
|
|
align-self: flex-start;
|
|
margin-top: 2px;
|
|
padding:
|
|
clamp(8px, 1.667vw, 9px)
|
|
clamp(12px, 2.593vw, 14px);
|
|
border: 0;
|
|
border-radius: 999px;
|
|
background: linear-gradient(90deg, #ff67e0, #ff52a2);
|
|
color: #ffffff;
|
|
cursor: pointer;
|
|
font-size: var(--responsive-body, 14px);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.unlockButton:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.65;
|
|
}
|
|
|
|
.unlockButton:focus-visible {
|
|
outline: 2px solid #f657a0;
|
|
outline-offset: 3px;
|
|
}
|