Files
moteva/frontend/src/ui/components/SharePopover/index.css
T

208 lines
8.1 KiB
CSS

.share-popover {
width: min(390px, calc(100vw - 24px));
max-height: min(720px, calc(100vh - 88px));
padding: 0;
overflow: auto;
border: 1px solid rgba(25, 29, 36, 0.12);
border-radius: 16px;
color: #25272b;
background: rgba(255, 255, 255, 0.98);
box-shadow: 0 24px 70px rgba(25, 28, 34, 0.2), 0 3px 12px rgba(25, 28, 34, 0.08);
backdrop-filter: blur(24px);
}
.share-popover-header {
position: sticky;
z-index: 3;
top: 0;
height: 52px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 0 14px;
border-bottom: 1px solid #eceef1;
background: rgba(255, 255, 255, 0.96);
backdrop-filter: blur(18px);
}
.share-popover-header > div,
.share-header-trailing {
display: flex;
align-items: center;
gap: 6px;
}
.share-popover-header h2 {
margin: 0;
font-size: 15px;
font-weight: 760;
letter-spacing: -0.01em;
}
.share-popover-header button {
height: 30px;
min-width: 30px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0 7px;
border-radius: 8px;
color: #777d86;
background: transparent;
}
.share-popover-header button:hover { color: #202327; background: #f3f4f6; }
.share-popover-header .share-header-visitors { padding: 0 8px; font-size: 12px; font-weight: 650; }
.share-section {
padding: 15px 16px;
border-bottom: 1px solid #eceef1;
}
.share-section:last-child { border-bottom: 0; }
.share-section h3 { margin: 0 0 10px; font-size: 14px; font-weight: 760; }
.share-section p { margin: 7px 0 0; color: #8a9099; font-size: 12px; line-height: 1.55; }
.share-add-person {
width: 100%;
height: 40px;
display: flex;
align-items: center;
gap: 10px;
padding: 0 12px;
border-radius: 11px;
color: #8c929b;
background: #f6f7f8;
font-size: 14px;
font-weight: 650;
text-align: left;
}
.share-add-person:hover { color: #32353a; background: #f0f2f4; }
.share-avatar-stack { display: flex; align-items: center; padding-top: 12px; }
.share-avatar-stack .share-avatar,
.share-avatar-stack > button,
.share-avatar-more { margin-left: -4px; border: 2px solid #fff; }
.share-avatar-stack .share-avatar:first-child { margin-left: 0; }
.share-avatar-stack > button,
.share-avatar-more { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #7c828b; background: #f3f4f6; font-size: 11px; font-weight: 750; }
.share-avatar-stack > button:hover { color: #202327; background: #e9ebee; }
.share-avatar {
width: 34px;
height: 34px;
flex: 0 0 34px;
display: inline-grid;
place-items: center;
overflow: hidden;
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, #8d6f63, #b59586);
font-size: 12px;
font-weight: 720;
}
.share-avatar img { width: 100%; height: 100%; object-fit: cover; }
.share-access-row {
display: grid;
grid-template-columns: 34px minmax(0, 1fr) 116px;
align-items: center;
gap: 10px;
}
.share-access-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #7a818b; background: #f5f6f7; }
.share-audience-label { min-width: 0; display: grid; gap: 2px; }
.share-audience-label > span { overflow: hidden; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.share-audience-label small { overflow: hidden; color: #969ba3; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.share-popover select {
height: 34px;
min-width: 0;
padding: 0 30px 0 10px;
border: 1px solid #e1e4e8;
border-radius: 9px;
outline: none;
color: #303339;
background: #f8f9fa;
font: inherit;
font-size: 12px;
font-weight: 680;
}
.share-popover select:focus { border-color: #adb3bc; box-shadow: 0 0 0 3px rgba(33, 38, 45, 0.06); }
.share-actions-section { background: #fbfbfc; }
.share-copy-button {
width: 100%;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
border-radius: 12px;
color: #fff;
background: #232426;
box-shadow: 0 6px 16px rgba(19, 20, 22, 0.16);
font-size: 14px;
font-weight: 720;
}
.share-copy-button:hover { background: #111214; transform: translateY(-1px); }
.share-copy-button:disabled { opacity: 0.55; transform: none; }
.share-social-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.share-social-grid button { height: 38px; display: flex; align-items: center; gap: 10px; padding: 0 12px; border-radius: 10px; color: #34373c; background: #f2f3f5; font-size: 13px; font-weight: 670; }
.share-social-grid button:hover { color: #111214; background: #e9ebee; }
.share-social-grid button:disabled { color: #a5abb3; background: #f5f6f7; cursor: not-allowed; }
.share-social-grid svg { color: #8a9097; }
.share-viewer-summary { display: flex; align-items: flex-start; gap: 12px; }
.share-viewer-summary strong { display: block; font-size: 14px; }
.share-invite-section { border-bottom: 0; }
.share-invite-input { height: 42px; display: flex; align-items: center; gap: 9px; padding: 0 11px; border: 1px solid #dfe2e6; border-radius: 11px; color: #9197a0; background: #fff; }
.share-invite-input:focus-within { border-color: #aeb4bd; box-shadow: 0 0 0 3px rgba(33, 38, 45, 0.06); }
.share-invite-input input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 13px; }
.share-invite-controls { display: grid; grid-template-columns: minmax(0, 1fr) 88px; gap: 9px; margin-top: 10px; }
.share-invite-controls button { height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 9px; color: #fff; background: #27292c; font-size: 12px; font-weight: 720; }
.share-invite-controls button:disabled { color: #fff; background: #c8cbd0; }
.share-member-list { display: grid; gap: 2px; margin-top: 16px; padding-top: 10px; border-top: 1px solid #eceef1; }
.share-member-row { min-height: 50px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; }
.share-member-row > div { min-width: 0; display: grid; gap: 2px; }
.share-member-row strong,
.share-member-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.share-member-row strong { font-size: 12px; font-weight: 720; }
.share-member-row small { color: #979ca4; font-size: 10px; }
.share-member-row select { width: 98px; height: 30px; }
.share-owner-label { color: #8a9099; font-size: 11px; font-weight: 650; }
.share-member-remove { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: #a0a5ad; }
.share-member-remove:hover { color: #c43d43; background: #fff0f1; }
.share-visitors-section { max-height: 310px; overflow-y: auto; }
.share-empty-state { min-height: 112px; display: grid; place-items: center; border-radius: 12px; color: #9ba0a8; background: #f7f8f9; font-size: 13px; }
.share-visitor-list { display: grid; gap: 7px; }
.share-visitor-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.share-visitor-row > div { min-width: 0; display: grid; }
.share-visitor-row strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.share-visitor-row small,
.share-visitor-row > span { color: #989da5; font-size: 10px; }
.share-revoke-section p { margin-top: 0; }
.share-revoke-button { width: 100%; height: 38px; margin-top: 12px; border: 1px solid #e1e4e8; border-radius: 10px; color: #34373c; background: #f7f8f9; font-size: 13px; font-weight: 690; }
.share-revoke-button:hover { color: #a72f35; border-color: #f0c7ca; background: #fff5f5; }
.share-revoke-confirm { display: grid; grid-template-columns: 1fr 1.45fr; gap: 8px; margin-top: 12px; }
.share-revoke-confirm button { height: 36px; display: flex; align-items: center; justify-content: center; gap: 7px; border-radius: 9px; background: #f1f2f4; font-size: 12px; font-weight: 700; }
.share-revoke-confirm .danger { color: #fff; background: #b8343b; }
.share-loading { min-height: 150px; display: grid; place-items: center; color: #8c929b; }
@media (max-width: 520px) {
.share-popover { width: calc(100vw - 16px); max-height: calc(100vh - 72px); border-radius: 14px; }
.share-access-row { grid-template-columns: 34px minmax(0, 1fr); }
.share-access-row select { grid-column: 1 / -1; width: 100%; }
}