From 433b5f9259e71044a3149a81b791a4948fba120b Mon Sep 17 00:00:00 2001
From: KenanZhu <3471685733@qq.com>
Date: Fri, 26 Jun 2026 14:27:38 +0800
Subject: [PATCH] fix(ink): prevent content overflow on mobile viewports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Five targeted fixes applied to all 11 ink templates:
1. Convert table/tr/tbody to display:block on mobile so the
block-level stacking of
elements works correctly.
2. Add box-sizing:border-box to all | elements to prevent
padding from pushing content beyond the viewport width.
3. Add word-break:break-word + overflow-wrap:break-word to
table, td, th elements to force long text to wrap.
4. Add white-space:pre-wrap + word-break:break-all to
and to prevent horizontal scroll from code blocks.
5. Add max-width:100% + height:auto to all images, and
max-width:100% to nested tables.
6. Remove invalid table-layout:fixed from tag
(was CSS property on wrong element — had no effect).
Also reduced mobile padding from 28px to 16px for more
usable content width on narrow screens.
Co-Authored-By: Claude
---
themes/ink/mail/org/team_invite.tmpl | 14 +++++++++++---
themes/ink/mail/repo/actions/workflow_run.tmpl | 14 +++++++++++---
themes/ink/mail/repo/collaborator.tmpl | 14 +++++++++++---
themes/ink/mail/repo/issue/assigned.tmpl | 14 +++++++++++---
themes/ink/mail/repo/issue/default.tmpl | 14 +++++++++++---
themes/ink/mail/repo/release.tmpl | 14 +++++++++++---
themes/ink/mail/repo/transfer.tmpl | 14 +++++++++++---
themes/ink/mail/user/auth/activate.tmpl | 14 +++++++++++---
themes/ink/mail/user/auth/activate_email.tmpl | 14 +++++++++++---
themes/ink/mail/user/auth/register_notify.tmpl | 14 +++++++++++---
themes/ink/mail/user/auth/reset_passwd.tmpl | 14 +++++++++++---
11 files changed, 121 insertions(+), 33 deletions(-)
diff --git a/themes/ink/mail/org/team_invite.tmpl b/themes/ink/mail/org/team_invite.tmpl
index 2669387..8b84826 100644
--- a/themes/ink/mail/org/team_invite.tmpl
+++ b/themes/ink/mail/org/team_invite.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/actions/workflow_run.tmpl b/themes/ink/mail/repo/actions/workflow_run.tmpl
index 27659bd..6460b76 100644
--- a/themes/ink/mail/repo/actions/workflow_run.tmpl
+++ b/themes/ink/mail/repo/actions/workflow_run.tmpl
@@ -54,17 +54,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/collaborator.tmpl b/themes/ink/mail/repo/collaborator.tmpl
index f290f30..8462017 100644
--- a/themes/ink/mail/repo/collaborator.tmpl
+++ b/themes/ink/mail/repo/collaborator.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/issue/assigned.tmpl b/themes/ink/mail/repo/issue/assigned.tmpl
index 991ac38..e14cb60 100644
--- a/themes/ink/mail/repo/issue/assigned.tmpl
+++ b/themes/ink/mail/repo/issue/assigned.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/issue/default.tmpl b/themes/ink/mail/repo/issue/default.tmpl
index 7b3fc92..dc50865 100644
--- a/themes/ink/mail/repo/issue/default.tmpl
+++ b/themes/ink/mail/repo/issue/default.tmpl
@@ -62,17 +62,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/release.tmpl b/themes/ink/mail/repo/release.tmpl
index 1506422..302170f 100644
--- a/themes/ink/mail/repo/release.tmpl
+++ b/themes/ink/mail/repo/release.tmpl
@@ -57,17 +57,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/repo/transfer.tmpl b/themes/ink/mail/repo/transfer.tmpl
index 2d34c47..7bd8c25 100644
--- a/themes/ink/mail/repo/transfer.tmpl
+++ b/themes/ink/mail/repo/transfer.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/user/auth/activate.tmpl b/themes/ink/mail/user/auth/activate.tmpl
index d33016f..443821d 100644
--- a/themes/ink/mail/user/auth/activate.tmpl
+++ b/themes/ink/mail/user/auth/activate.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/user/auth/activate_email.tmpl b/themes/ink/mail/user/auth/activate_email.tmpl
index fd29051..cfa5a37 100644
--- a/themes/ink/mail/user/auth/activate_email.tmpl
+++ b/themes/ink/mail/user/auth/activate_email.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/user/auth/register_notify.tmpl b/themes/ink/mail/user/auth/register_notify.tmpl
index a6a82ab..d2eae40 100644
--- a/themes/ink/mail/user/auth/register_notify.tmpl
+++ b/themes/ink/mail/user/auth/register_notify.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
diff --git a/themes/ink/mail/user/auth/reset_passwd.tmpl b/themes/ink/mail/user/auth/reset_passwd.tmpl
index c3978c8..ae28745 100644
--- a/themes/ink/mail/user/auth/reset_passwd.tmpl
+++ b/themes/ink/mail/user/auth/reset_passwd.tmpl
@@ -52,17 +52,25 @@
/* Responsive */
@media only screen and (max-width:480px) {
+ /* Stack layout — convert table rows to blocks */
+ .email-wrap,.email-wrap tbody,.email-wrap tr{ display:block!important;width:100%!important }
+ .email-wrap td{ box-sizing:border-box!important }
.email-header { padding-left:16px!important;padding-right:16px!important }
- .email-card { width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important }
- .email-sidebar { width:100%!important;display:block!important;padding:0 28px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
+ .email-card { width:100%!important;display:block!important;border-left:none!important;padding:0 16px 16px!important }
+ .email-sidebar { width:100%!important;display:block!important;padding:0 16px 16px!important;border-left:none!important;border-top:1px solid #ddd!important }
.email-btn { display:block!important;width:auto!important;text-align:center!important }
.email-footer { padding-left:16px!important;padding-right:16px!important }
+ /* Prevent content overflow */
+ .email-wrap,.email-wrap td,.email-wrap th{ word-break:break-word!important;overflow-wrap:break-word!important }
+ img{ max-width:100%!important;height:auto!important }
+ pre,code{ white-space:pre-wrap!important;word-break:break-all!important }
+ table{ max-width:100%!important }
}
-
+
|