Files
frontend/src/widgets/swap-form/ui/SwapConfirmModal.module.css
2026-06-29 19:57:36 +03:00

181 lines
3.1 KiB
CSS

.overlay {
position: fixed;
inset: 0;
background: rgba(10, 11, 46, 0.75);
backdrop-filter: blur(4px);
display: flex;
align-items: center;
justify-content: center;
z-index: 100;
animation: overlayIn 0.2s ease;
}
.overlay.closing {
animation: overlayOut 0.2s ease forwards;
}
.card {
background: var(--bg-mid);
border: 1px solid var(--glass-border);
border-radius: 24px;
padding: 32px;
width: 100%;
max-width: 420px;
display: flex;
flex-direction: column;
gap: 24px;
animation: cardIn 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}
.card.closing {
animation: cardOut 0.2s cubic-bezier(0.55, 0, 1, 0.45) forwards;
}
@keyframes overlayIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes overlayOut {
from { opacity: 1; }
to { opacity: 0; }
}
@keyframes cardIn {
from { opacity: 0; transform: translateY(16px) scale(0.96); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes cardOut {
from { opacity: 1; transform: translateY(0) scale(1); }
to { opacity: 0; transform: translateY(16px) scale(0.96); }
}
.header {
display: flex;
align-items: center;
justify-content: space-between;
}
.title {
font-size: 18px;
font-weight: 700;
color: var(--text-primary);
}
.closeBtn {
background: none;
border: none;
color: var(--text-secondary);
font-size: 22px;
cursor: pointer;
line-height: 1;
padding: 0;
font-family: var(--font-sans);
}
.closeBtn:hover {
color: var(--text-primary);
}
.flow {
display: flex;
flex-direction: column;
gap: 8px;
}
.token {
background: var(--glass-bg);
border: 1px solid var(--glass-border);
border-radius: 14px;
padding: 16px 20px;
display: flex;
flex-direction: column;
gap: 4px;
}
.tokenLabel {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 1px;
color: var(--text-secondary);
font-weight: 700;
}
.tokenAmount {
font-size: 24px;
font-weight: 700;
color: var(--text-primary);
}
.tokenUsd {
font-size: 13px;
color: var(--text-secondary);
}
.arrow {
text-align: center;
color: var(--text-secondary);
font-size: 18px;
line-height: 1;
}
.details {
display: flex;
flex-direction: column;
gap: 10px;
}
.row {
display: flex;
align-items: center;
justify-content: space-between;
}
.rowLabel {
font-size: 13px;
color: var(--text-secondary);
}
.rowValue {
font-size: 13px;
color: var(--text-primary);
font-weight: 600;
}
.impact {
color: var(--error);
}
.warning {
margin: 0;
padding: 12px 16px;
border-radius: 12px;
background: rgba(255, 70, 70, 0.1);
border: 1px solid var(--error);
color: var(--error);
font-size: 13px;
line-height: 1.4;
font-weight: 600;
}
.confirmBtn {
width: 100%;
height: 56px;
background: linear-gradient(135deg, var(--grad-edge), var(--grad-center));
border: none;
border-radius: 14px;
color: var(--text-primary);
font-size: 17px;
font-weight: 700;
cursor: pointer;
font-family: var(--font-sans);
letter-spacing: 0.3px;
transition: filter 0.25s, box-shadow 0.25s;
}
.confirmBtn:hover {
filter: brightness(1.15);
box-shadow: 0 0 24px rgba(91, 61, 184, 0.5);
}