|
341 | 341 | } |
342 | 342 |
|
343 | 343 | .detail-header { |
344 | | - padding: 18px 20px 16px; |
345 | | - border-bottom: 1px solid var(--embed-border); |
346 | | - background: var(--embed-surface-soft); |
| 344 | + padding: 20px 20px 6px; |
347 | 345 | } |
348 | 346 |
|
349 | | -.detail-subject { |
350 | | - font-size: 17px; |
351 | | - font-weight: 600; |
352 | | - margin-bottom: 8px; |
353 | | - letter-spacing: -0.01em; |
| 347 | +.detail-top-row { |
| 348 | + display: flex; |
| 349 | + justify-content: space-between; |
| 350 | + align-items: flex-start; |
| 351 | + margin-bottom: 14px; |
| 352 | + gap: 12px; |
354 | 353 | } |
355 | 354 |
|
356 | | -.detail-meta { |
357 | | - font-size: 13px; |
358 | | - color: var(--embed-muted); |
359 | | - line-height: 1.6; |
| 355 | +.detail-row { |
| 356 | + margin-bottom: 14px; |
| 357 | + font-size: 14px; |
| 358 | + line-height: 1.5; |
360 | 359 | } |
361 | 360 |
|
362 | | -.detail-header-top { |
363 | | - display: flex; |
364 | | - align-items: center; |
365 | | - gap: 12px; |
366 | | - margin-bottom: 8px; |
| 361 | +.detail-row strong, |
| 362 | +.detail-top-row strong { |
| 363 | + color: var(--embed-text); |
| 364 | +} |
| 365 | + |
| 366 | +.detail-divider { |
| 367 | + border: none; |
| 368 | + border-top: 1px solid var(--embed-border); |
| 369 | + margin: 0; |
367 | 370 | } |
368 | 371 |
|
369 | 372 | .detail-back { |
|
388 | 391 | line-height: 1.6; |
389 | 392 | } |
390 | 393 |
|
| 394 | +.mail-body-container { |
| 395 | + background: #f8f9fa; |
| 396 | + padding: 0; |
| 397 | + border-radius: 8px; |
| 398 | + overflow: hidden; |
| 399 | +} |
| 400 | + |
| 401 | +.mail-body-container pre { |
| 402 | + padding: 16px 20px; |
| 403 | + margin: 0; |
| 404 | +} |
| 405 | + |
391 | 406 | .detail-body iframe { |
392 | 407 | width: 100%; |
393 | 408 | border: none; |
394 | | - min-height: 300px; |
| 409 | + min-height: 200px; |
395 | 410 | background: #fff; |
396 | | - border-radius: 8px; |
397 | 411 | } |
398 | 412 |
|
399 | 413 | .detail-attachments { |
400 | 414 | padding: 12px 20px; |
401 | | - border-top: 1px solid var(--embed-border); |
402 | 415 | font-size: 14px; |
403 | 416 | background: rgba(245,249,247,0.65); |
404 | 417 | } |
@@ -1551,26 +1564,25 @@ <h3 data-i18n="modalTitle">连接 IMAP 邮箱</h3> |
1551 | 1564 |
|
1552 | 1565 | el.innerHTML = |
1553 | 1566 | '<div class="detail-header">' + |
1554 | | - '<div class="detail-header-top">' + |
1555 | | - '<button type="button" class="detail-back" onclick="showMailListView()">' + t('backToList') + '</button>' + |
1556 | | - '<div class="detail-subject">' + esc(data.subject) + '</div>' + |
1557 | | - '</div>' + |
1558 | | - '<div class="detail-actions">' + |
1559 | | - '<button class="action-btn" onclick="toggleReadDetail()" title="' + esc(t(isSeen ? 'markUnread' : 'markRead')) + '"><i class="bi bi-envelope' + (isSeen ? '-open' : '') + '"></i> ' + esc(t(isSeen ? 'markUnread' : 'markRead')) + '</button>' + |
1560 | | - '<button class="action-btn" onclick="toggleStarDetail()" title="' + esc(t(isFlagged ? 'unstar' : 'star')) + '"><i class="bi bi-star' + (isFlagged ? '-fill' : '') + '"' + (isFlagged ? ' style="color:#e8a73d"' : '') + '></i> ' + esc(t(isFlagged ? 'unstar' : 'star')) + '</button>' + |
1561 | | - '<button class="action-btn" onclick="moveMailDetail(\'Trash\')" title="' + esc(t('moveToTrash')) + '"><i class="bi bi-trash"></i> ' + esc(t('moveToTrash')) + '</button>' + |
1562 | | - '<button class="action-btn danger" onclick="deleteMailDetail()" title="' + esc(t('deleteButton')) + '"><i class="bi bi-x-circle"></i> ' + esc(t('deleteButton')) + '</button>' + |
1563 | | - '<select class="action-select" onchange="moveMailDetail(this.value); this.selectedIndex=0;"><option value="">' + esc(t('moveToFolder')) + '</option>' + moveOptions + '</select>' + |
1564 | | - '</div>' + |
1565 | | - '<div class="detail-meta">' + |
1566 | | - t('from') + ': ' + makeCopyable(data.from) + '<br>' + |
1567 | | - t('to') + ': ' + makeCopyable(data.to) + '<br>' + |
1568 | | - (data.cc ? t('cc') + ': ' + makeCopyable(data.cc) + '<br>' : '') + |
1569 | | - t('date') + ': ' + date + |
| 1567 | + '<button type="button" class="detail-back" onclick="showMailListView()">' + t('backToList') + '</button>' + |
| 1568 | + '<div class="detail-top-row">' + |
| 1569 | + '<div><strong>' + t('from') + ':</strong> ' + makeCopyable(data.from) + '</div>' + |
| 1570 | + '<div class="detail-actions">' + |
| 1571 | + '<button class="action-btn" onclick="toggleReadDetail()" title="' + esc(t(isSeen ? 'markUnread' : 'markRead')) + '"><i class="bi bi-envelope' + (isSeen ? '-open' : '') + '"></i> ' + esc(t(isSeen ? 'markUnread' : 'markRead')) + '</button>' + |
| 1572 | + '<button class="action-btn" onclick="toggleStarDetail()" title="' + esc(t(isFlagged ? 'unstar' : 'star')) + '"><i class="bi bi-star' + (isFlagged ? '-fill' : '') + '"' + (isFlagged ? ' style="color:#e8a73d"' : '') + '></i> ' + esc(t(isFlagged ? 'unstar' : 'star')) + '</button>' + |
| 1573 | + '<button class="action-btn" onclick="moveMailDetail(\'Trash\')" title="' + esc(t('moveToTrash')) + '"><i class="bi bi-trash"></i> ' + esc(t('moveToTrash')) + '</button>' + |
| 1574 | + '<button class="action-btn danger" onclick="deleteMailDetail()" title="' + esc(t('deleteButton')) + '"><i class="bi bi-x-circle"></i> ' + esc(t('deleteButton')) + '</button>' + |
| 1575 | + '<select class="action-select" onchange="moveMailDetail(this.value); this.selectedIndex=0;"><option value="">' + esc(t('moveToFolder')) + '</option>' + moveOptions + '</select>' + |
| 1576 | + '</div>' + |
1570 | 1577 | '</div>' + |
| 1578 | + '<div class="detail-row"><strong>' + t('to') + ':</strong> ' + makeCopyable(data.to) + '</div>' + |
| 1579 | + (data.cc ? '<div class="detail-row"><strong>' + t('cc') + ':</strong> ' + makeCopyable(data.cc) + '</div>' : '') + |
| 1580 | + '<div class="detail-row"><strong>' + t('subject') + ':</strong> ' + esc(data.subject) + '</div>' + |
| 1581 | + '<div class="detail-row"><strong>' + t('date') + ':</strong> ' + date + '</div>' + |
1571 | 1582 | '</div>' + |
| 1583 | + '<hr class="detail-divider">' + |
1572 | 1584 | attachHtml + |
1573 | | - '<div class="detail-body">' + bodyHtml + '</div>'; |
| 1585 | + '<div class="detail-body"><div class="mail-body-container">' + bodyHtml + '</div></div>'; |
1574 | 1586 | if (data.html) { |
1575 | 1587 | var iframe = document.getElementById('mail-iframe'); |
1576 | 1588 | iframe.onload = function() { |
|
0 commit comments