feat: implement copy and link
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
.copy-channel-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 1000;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: var(--space-5);
|
||||
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
animation: copy-channel-fade-in var(--dur-base) var(--ease-standard);
|
||||
}
|
||||
|
||||
@keyframes copy-channel-fade-in {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.copy-channel-modal {
|
||||
width: 100%;
|
||||
max-width: 440px;
|
||||
max-height: 90vh;
|
||||
overflow-y: auto;
|
||||
|
||||
animation: copy-channel-scale-in var(--dur-base) var(--ease-standard);
|
||||
}
|
||||
|
||||
@keyframes copy-channel-scale-in {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: scale(0.96);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.copy-channel-modal__header {
|
||||
margin-bottom: var(--space-5);
|
||||
}
|
||||
|
||||
.copy-channel-modal__header h2 {
|
||||
margin: 0;
|
||||
font-size: var(--font-md);
|
||||
font-weight: var(--font-weight-semibold);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.copy-channel-modal__header p {
|
||||
margin: var(--space-1) 0 0;
|
||||
font-size: var(--font-sm);
|
||||
line-height: 1.4;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* Source -> destination */
|
||||
|
||||
.copy-channel-modal__transfer {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
gap: var(--space-3);
|
||||
}
|
||||
|
||||
.copy-channel-modal__field {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-2);
|
||||
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.copy-channel-modal__field label {
|
||||
font-size: var(--font-sm);
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.copy-channel-modal__arrow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
height: var(--card-control-height);
|
||||
color: var(--text-muted);
|
||||
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.copy-channel-modal__arrow svg {
|
||||
width: var(--space-5);
|
||||
height: var(--space-5);
|
||||
}
|
||||
|
||||
.copy-channel-modal__summary {
|
||||
margin: var(--space-3) 0 var(--space-5);
|
||||
|
||||
font-size: var(--font-sm);
|
||||
line-height: 1.4;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* Footer actions */
|
||||
|
||||
.copy-channel-modal__actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: var(--space-3);
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.copy-channel-modal__transfer {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.copy-channel-modal__arrow {
|
||||
height: auto;
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user