Smail/frontend/src/views/components/SystemNotification/SystemNotification.css
smail 7d63907e06 优化系统发信账号列表布局
在不引入横向滚动的前提下增加账号授权区宽度,调整列比例和单元格间距,改善账号、名称和操作列的显示。
2026-09-27 15:42:43 +08:00

609 lines
18 KiB
CSS

.notification-settings {
display: flex;
flex-direction: column;
gap: 18px;
padding: 20px;
color: var(--el-text-color-primary);
}
.notification-header,
.notification-heading,
.notification-actions,
.notification-limits {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 16px;
}
.notification-header,
.notification-heading {
justify-content: space-between;
}
.notification-settings h2,
.notification-settings h3 {
margin: 0 0 10px;
}
.notification-header p,
.notification-hint {
margin: 6px 0 14px;
color: var(--el-text-color-secondary);
font-size: 13px;
line-height: 1.7;
}
.notification-panel {
min-height: 80px;
padding: 18px;
border: 1px solid var(--el-border-color-light);
border-radius: 10px;
background: var(--el-bg-color);
}
.notification-actions {
margin-bottom: 22px;
}
.notification-warning {
color: var(--el-color-warning-dark-2);
}
.notification-panel code {
overflow-wrap: anywhere;
user-select: all;
}
.notification-panel .el-pagination,
.notification-secret {
margin-top: 16px;
}
.notification-credential {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
padding: 10px 12px;
margin: 12px 0;
border: 1px solid var(--el-border-color-light);
border-radius: 8px;
background: var(--el-fill-color-light);
}
.notification-credential-label {
font-weight: 500;
}
.notification-credential-code {
flex: 1 1 320px;
min-width: 0;
font-size: 13px;
overflow-wrap: anywhere;
}
.notification-credential-mask {
letter-spacing: 2px;
color: var(--el-text-color-secondary);
}
.notification-credential-actions {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.notification-credential-actions :deep(.el-button + .el-button) {
margin-left: 0;
}
.notification-countdown {
color: var(--el-color-warning-dark-2);
font-size: 12px;
white-space: nowrap;
}
.notification-compact {
gap: 10px;
padding: 0;
}
.notification-compact .notification-header {
justify-content: flex-end;
}
.notification-compact .notification-panel {
padding: 0;
border: 0;
}
.notification-compact .notification-heading {
gap: 8px;
margin-bottom: 14px;
}
.notification-compact h3 {
margin: 0;
overflow-wrap: anywhere;
}
.notification-compact .notification-columns {
display: grid;
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
gap: 12px 22px;
align-items: start;
}
.notification-compact .notification-columns > :deep(.el-form) {
grid-column: 1;
grid-row: 1;
}
.notification-compact .notification-columns > :deep(.el-descriptions) {
grid-column: 1;
grid-row: 2;
min-width: 0;
}
.notification-compact .notification-columns > :deep(.el-descriptions ~ .el-descriptions) {
grid-column: 2;
grid-row: 1 / span 2;
}
.notification-compact .notification-hint {
grid-column: 1;
grid-row: 3;
margin: 0;
font-size: 12px;
line-height: 1.5;
}
.notification-compact .notification-columns > :deep(.el-descriptions ~ .el-descriptions + .notification-hint) {
grid-column: 2;
}
.notification-compact .notification-columns > :deep(.el-alert) {
grid-column: 1 / -1;
}
.notification-compact .notification-limits {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.notification-compact :deep(.el-form-item) {
min-width: 0;
margin-bottom: 12px;
}
.notification-compact :deep(.el-input-number) {
width: 100%;
}
.notification-compact .notification-actions {
gap: 8px;
margin-bottom: 0;
}
.notification-compact .notification-actions :deep(.el-button + .el-button) {
margin-left: 0;
}
.notification-compact :deep(.el-descriptions__header) {
margin-bottom: 8px;
}
.notification-compact :deep(.el-descriptions__table) {
table-layout: fixed;
}
.notification-compact :deep(.el-descriptions__label) {
width: 118px;
}
.notification-compact :deep(.el-descriptions__cell) {
overflow-wrap: anywhere;
}
@media (max-width: 720px) {
.notification-compact .notification-columns {
display: flex;
flex-direction: column;
}
.notification-compact .notification-columns > * {
width: 100%;
box-sizing: border-box;
}
}
/* Desktop manager layout: keep the authorization list and selected account settings visible together. */
.notification-settings:has(> .notification-manager-panel) {
display: grid;
grid-template-columns: minmax(260px, 0.44fr) minmax(0, 1.56fr);
align-items: start;
gap: 8px 10px;
min-width: 0;
padding: 12px 14px;
}
.notification-settings:has(> .notification-manager-panel) .notification-header p {
margin: 2px 0 0;
font-size: 12px;
line-height: 1.35;
}
.notification-settings:has(> .notification-manager-panel) .notification-header h2,
.notification-settings:has(> .notification-manager-panel) .notification-header h3 {
margin-bottom: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .el-alert {
padding: 8px 12px;
}
.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__title) {
font-size: 13px;
line-height: 1.3;
}
.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__description) {
margin-top: 2px;
font-size: 12px;
line-height: 1.35;
}
.notification-settings:has(> .notification-manager-panel) > .notification-header,
.notification-settings:has(> .notification-manager-panel) > .el-alert {
grid-column: 1 / -1;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel {
grid-column: 1;
min-width: 0;
padding: 10px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel {
grid-column: 2;
min-width: 0;
padding: 10px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3 {
margin-bottom: 8px;
}
.notification-settings:has(> .notification-manager-panel) :deep(.el-table .cell) {
padding-inline: 6px;
font-size: 12px;
line-height: 1.25;
}
.notification-settings:has(> .notification-manager-panel) :deep(.el-table__cell) {
padding-block: 5px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel .el-pagination {
margin-top: 8px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-heading {
margin-bottom: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-credential {
margin: 6px 0;
padding: 6px 8px;
font-size: 12px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns {
display: grid;
grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
gap: 6px 10px;
align-items: start;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-form) {
grid-column: 1;
grid-row: 1;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions) {
grid-column: 1;
grid-row: 2;
min-width: 0;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) {
grid-column: 2;
grid-row: 1 / span 2;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.notification-hint) {
grid-column: 1;
grid-row: 3;
margin: 0;
font-size: 12px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions + .notification-hint) {
grid-column: 2;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-alert) {
grid-column: 1 / -1;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item) {
margin-bottom: 6px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item__label) {
margin-bottom: 2px;
font-size: 12px;
line-height: 1.3;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits {
gap: 6px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__header) {
margin-bottom: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__title) {
font-size: 13px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__cell) {
padding: 4px 7px;
font-size: 12px;
line-height: 1.3;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__label) {
width: 96px;
white-space: nowrap;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-hint {
font-size: 11px;
line-height: 1.3;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert {
padding: 6px 10px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__title),
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__description) {
font-size: 12px;
line-height: 1.3;
}
@media (max-width: 920px) {
.notification-settings:has(> .notification-manager-panel) {
display: flex;
flex-direction: column;
}
.notification-settings:has(> .notification-manager-panel) > .notification-panel {
width: 100%;
box-sizing: border-box;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns {
display: flex;
flex-direction: column;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > * {
width: 100%;
box-sizing: border-box;
}
}
.notification-settings:has(> .notification-manager-panel) {
gap: 6px 8px;
padding: 8px 10px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel,
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel {
padding: 8px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3,
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel h3 {
margin-bottom: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns {
gap: 4px 8px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item) {
margin-bottom: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item__label) {
margin-bottom: 1px;
font-size: 11px;
line-height: 1.2;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits {
gap: 4px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions {
gap: 4px;
margin-top: 2px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions :deep(.el-button) {
min-height: 28px;
padding: 5px 10px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__header) {
margin-bottom: 2px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__title) {
font-size: 12px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__cell) {
padding: 3px 5px;
font-size: 11px;
line-height: 1.2;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__label) {
width: 88px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-hint {
margin: 2px 0;
font-size: 10px;
line-height: 1.2;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert {
padding: 4px 8px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__title),
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__description) {
font-size: 11px;
line-height: 1.2;
}
.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__description) {
display: none;
}
.notification-settings:has(> .notification-manager-panel) .notification-header p {
display: none;
}
/* The SMTP table is a dense read-only summary, so pair two records per row on desktop. */
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table {
display: block;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr {
display: grid;
grid-template-columns: 96px minmax(0, 1fr);
min-width: 0;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr > td {
min-width: 0;
overflow-wrap: break-word;
word-break: normal;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) code {
overflow-wrap: break-word;
word-break: normal;
white-space: normal;
}
@media (max-width: 920px) {
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table {
display: table;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody {
display: table-row-group;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr {
display: table-row;
}
}
/* Keep the manager table and SMTP summary inside the available dialog width. */
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table),
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__header-wrapper table),
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__body-wrapper table) {
width: 100% !important;
min-width: 0 !important;
table-layout: fixed;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(1)) {
width: 26% !important;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(2)) {
width: 24% !important;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(3)) {
width: 28% !important;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(4)) {
width: 22% !important;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table .cell) {
min-width: 0;
padding-inline: 3px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 11px;
}
.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table .el-tag) {
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions) {
width: 100%;
max-width: 100%;
min-width: 0;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions__body),
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions__table) {
width: 100%;
max-width: 100%;
min-width: 0;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody,
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr {
min-width: 0;
width: 100%;
max-width: 100%;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr > td {
min-width: 0;
max-width: 100%;
}
.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) code {
display: inline;
max-width: 100%;
overflow-wrap: anywhere;
}