Index: admin/js/_blogs.js
===================================================================
--- admin/js/_blogs.js	(revision 3880)
+++ admin/js/_blogs.js	(revision 4007)
@@ -8,4 +8,5 @@
   $('#form-blogs td input[type=checkbox]').enableShiftClick();
   dotclear.condSubmit('#form-blogs td input[type=checkbox]', '#form-blogs #do-action');
+  dotclear.responsiveCellHeaders(document.querySelector('#form-blogs table'), '#form-blogs table', 1);
   $('#form-blogs').submit(function() {
     const action = $(this).find('select[name="action"]').val();
Index: admin/js/_comments.js
===================================================================
--- admin/js/_comments.js	(revision 3880)
+++ admin/js/_comments.js	(revision 4007)
@@ -54,4 +54,5 @@
   dotclear.commentsActionsHelper();
   dotclear.condSubmit('#form-comments td input[type=checkbox]', '#form-comments #do-action');
+  dotclear.responsiveCellHeaders(document.querySelector('#form-comments table'), '#form-comments table', 1);
   $('form input[type=submit][name=delete_all_spam]').click(function() {
     return window.confirm(dotclear.msg.confirm_spam_delete);
Index: admin/js/_posts_list.js
===================================================================
--- admin/js/_posts_list.js	(revision 3880)
+++ admin/js/_posts_list.js	(revision 4007)
@@ -55,3 +55,4 @@
   dotclear.condSubmit('#form-entries td input[type=checkbox]', '#form-entries #do-action');
   dotclear.postsActionsHelper();
+  dotclear.responsiveCellHeaders(document.querySelector('#form-entries table'), '#form-entries table', 1);
 });
Index: admin/js/_users.js
===================================================================
--- admin/js/_users.js	(revision 3880)
+++ admin/js/_users.js	(revision 4007)
@@ -7,4 +7,5 @@
   });
   dotclear.condSubmit('#form-users input[type="checkbox"]', '#form-users #do-action');
+  dotclear.responsiveCellHeaders(document.querySelector('#form-users table'), '#form-users table', 1);
   $('#form-users').submit(function() {
     const action = $(this).find('select[name="action"]').val();
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 3930)
+++ admin/js/common.js	(revision 4007)
@@ -460,4 +460,37 @@
       window.open($(this).attr('href'));
     });
+  },
+
+  /**
+   * Add headers on each cells (responsive tables)
+   *
+   * @param      DOM elt   table         The table
+   * @param      string    selector      The selector
+   * @param      number    [offset=0]    The offset = number of firsts columns to ignore
+   * @param      boolean   [thead=false] True if titles are in thead rather than in the first tr of the body
+   */
+  responsiveCellHeaders: function(table, selector, offset = 0, thead = false) {
+    try {
+      let THarray = [];
+      const ths = table.getElementsByTagName("th");
+      for (let i = 0; i < ths.length; i++) {
+        for (let colspan = ths[i].colSpan; colspan > 0; colspan--) {
+          THarray.push(ths[i].innerText.replace('►', ''));
+        }
+      }
+      let styleElm = document.createElement("style");
+      let styleSheet;
+      document.head.appendChild(styleElm);
+      styleSheet = styleElm.sheet;
+      for (let i = offset; i < THarray.length; i++) {
+        styleSheet.insertRule(
+          selector + " td:nth-child(" + (i + 1) + ')::before {content:"' + THarray[i] + ' ";}',
+          styleSheet.cssRules.length
+        );
+      }
+      table.className += (table.className !== '' ? ' ' : '') + 'rch' + (thead ? ' rch-thead' : '');
+    } catch (e) {
+      console.log("responsiveCellHeaders(): " + e);
+    }
   },
 
Index: admin/style/default-dark.css
===================================================================
--- admin/style/default-dark.css	(revision 3969)
+++ admin/style/default-dark.css	(revision 4007)
@@ -1954,9 +1954,7 @@
   padding-right: 34px; }
 
-th img,
-tr.line img {
+th img, tr.line img {
   vertical-align: middle; }
-  th img.expand,
-  tr.line img.expand {
+  th img.expand, tr.line img.expand {
     margin-right: 6px;
     margin-bottom: -2px; }
@@ -1964,6 +1962,5 @@
 tr.line p {
   margin: 0; }
-tr.line input,
-tr.line select {
+tr.line input, tr.line select {
   vertical-align: middle;
   box-shadow: none; }
@@ -1980,8 +1977,5 @@
     border: none; }
 
-.noborder td,
-td.noborder,
-.noborder th,
-th.noborder {
+.noborder td, td.noborder, .noborder th, th.noborder {
   border-width: 0 0 1px 0;
   border-color: #dbdcdd;
@@ -1995,18 +1989,13 @@
   min-width: 50%; }
 
-table.settings,
-table.prefs {
+table.settings, table.prefs {
   margin-bottom: 3em; }
-  table.settings th:first-child,
-  table.prefs th:first-child {
+  table.settings th:first-child, table.prefs th:first-child {
     width: 20%; }
-  table.settings th + th,
-  table.prefs th + th {
+  table.settings th + th, table.prefs th + th {
     width: 30%; }
-    table.settings th + th + th,
-    table.prefs th + th + th {
+    table.settings th + th + th, table.prefs th + th + th {
       width: 10%; }
-  table.settings th:last-child,
-  table.prefs th:last-child {
+  table.settings th:last-child, table.prefs th:last-child {
     width: 40%; }
 
@@ -2025,4 +2014,42 @@
   padding-left: 15px; }
 
+/* Responsive Cell Header */
+.rch td::before {
+  display: none; }
+
+@media screen and (max-width: 44em), print and (max-width: 5in) {
+  table.rch {
+    display: block; }
+    table.rch caption, table.rch tbody, table.rch tr, table.rch td {
+      display: block; }
+    table.rch th, table.rch tr:first-of-type {
+      display: none; }
+    table.rch td:first-of-type {
+      border-top: 1px solid #ecedee;
+      color: #c9cbcf;
+      background: #595b5d; }
+    table.rch td::before {
+      display: inline;
+      font-weight: bold; }
+    table.rch td {
+      display: grid;
+      grid-template-columns: 10em auto;
+      grid-gap: 1em 0.5em;
+      text-align: left;
+      border: none; }
+    table.rch .maximal {
+      max-width: inherit; }
+    table.rch .nowrap {
+      white-space: inherit; }
+    table.rch td.expand {
+      grid-template-columns: auto !important;
+      color: #dcdee0;
+      background-color: #272b30;
+      border-top: 1px dashed #ecedee; }
+
+  table.rch-thead thead {
+    display: none; }
+  table.rch-thead tr:first-of-type {
+    display: block; } }
 a.form-control {
   display: none;
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 3969)
+++ admin/style/default.css	(revision 4007)
@@ -1954,9 +1954,7 @@
   padding-right: 34px; }
 
-th img,
-tr.line img {
+th img, tr.line img {
   vertical-align: middle; }
-  th img.expand,
-  tr.line img.expand {
+  th img.expand, tr.line img.expand {
     margin-right: 6px;
     margin-bottom: -2px; }
@@ -1964,6 +1962,5 @@
 tr.line p {
   margin: 0; }
-tr.line input,
-tr.line select {
+tr.line input, tr.line select {
   vertical-align: middle;
   box-shadow: none; }
@@ -1980,8 +1977,5 @@
     border: none; }
 
-.noborder td,
-td.noborder,
-.noborder th,
-th.noborder {
+.noborder td, td.noborder, .noborder th, th.noborder {
   border-width: 0 0 1px 0;
   border-color: #dbdbdb;
@@ -1995,18 +1989,13 @@
   min-width: 50%; }
 
-table.settings,
-table.prefs {
+table.settings, table.prefs {
   margin-bottom: 3em; }
-  table.settings th:first-child,
-  table.prefs th:first-child {
+  table.settings th:first-child, table.prefs th:first-child {
     width: 20%; }
-  table.settings th + th,
-  table.prefs th + th {
+  table.settings th + th, table.prefs th + th {
     width: 30%; }
-    table.settings th + th + th,
-    table.prefs th + th + th {
+    table.settings th + th + th, table.prefs th + th + th {
       width: 10%; }
-  table.settings th:last-child,
-  table.prefs th:last-child {
+  table.settings th:last-child, table.prefs th:last-child {
     width: 40%; }
 
@@ -2025,4 +2014,42 @@
   padding-left: 15px; }
 
+/* Responsive Cell Header */
+.rch td::before {
+  display: none; }
+
+@media screen and (max-width: 44em), print and (max-width: 5in) {
+  table.rch {
+    display: block; }
+    table.rch caption, table.rch tbody, table.rch tr, table.rch td {
+      display: block; }
+    table.rch th, table.rch tr:first-of-type {
+      display: none; }
+    table.rch td:first-of-type {
+      border-top: 1px solid #ececec;
+      color: #c9c9c9;
+      background: #595959; }
+    table.rch td::before {
+      display: inline;
+      font-weight: bold; }
+    table.rch td {
+      display: grid;
+      grid-template-columns: 10em auto;
+      grid-gap: 1em 0.5em;
+      text-align: left;
+      border: none; }
+    table.rch .maximal {
+      max-width: inherit; }
+    table.rch .nowrap {
+      white-space: inherit; }
+    table.rch td.expand {
+      grid-template-columns: auto !important;
+      color: #323232;
+      background-color: #fff;
+      border-top: 1px dashed #ececec; }
+
+  table.rch-thead thead {
+    display: none; }
+  table.rch-thead tr:first-of-type {
+    display: block; } }
 a.form-control {
   display: none;
Index: admin/style/scss/partials/_tables.scss
===================================================================
--- admin/style/scss/partials/_tables.scss	(revision 3779)
+++ admin/style/scss/partials/_tables.scss	(revision 4007)
@@ -1,122 +1,155 @@
 table {
-	.maximal {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		max-width: 1px;
-	}
-	.maximal,
-	&.maximal {
-		width: 100%;
-	}
-	.minimal {
-		width: 1px;
-	}
-	.nowrap {
-		white-space: nowrap;
-		vertical-align: top;
-	}
-	.count {
-		text-align: right;
-		padding-right: 1.5em;
-	}
+  .maximal {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    max-width: 1px;
+  }
+  .maximal, &.maximal {
+    width: 100%;
+  }
+  .minimal {
+    width: 1px;
+  }
+  .nowrap {
+    white-space: nowrap;
+    vertical-align: top;
+  }
+  .count {
+    text-align: right;
+    padding-right: 1.5em;
+  }
 }
-
 th.first input {
-	padding-right: 34px;
+  padding-right: 34px;
 }
-
-th,
+th, tr.line {
+  img {
+    vertical-align: middle;
+    &.expand {
+      margin-right: 6px;
+      margin-bottom: -2px;
+    }
+  }
+}
 tr.line {
-	img {
-		vertical-align: middle;
-		&.expand {
-			margin-right: 6px;
-			margin-bottom: -2px;
-		}
-	}
+  p {
+    margin: 0;
+  }
+  input, select {
+    vertical-align: middle;
+    box-shadow: none;
+  }
+  select {
+    width: 6em;
+  }
+  input[type=text] {
+    //    background: $line-input-background;
+  }
+  &:hover {
+    background: $line-background-over;
+  }
+  &:focus-within {
+    background-color: $line-focus-background;
+  }
 }
-
-tr.line {
-	p {
-		margin: 0;
-	}
-	input,
-	select {
-		vertical-align: middle;
-		box-shadow: none;
-	}
-	select {
-		width: 6em;
-	}
-	input[type=text] {
-//		background: $line-input-background;
-	}
-	&:hover {
-		background: $line-background-over;
-	}
-	&:focus-within {
-    background-color: $line-focus-background;
-	}
+td.status {
+  vertical-align: middle;
+  a {
+    border: none;
+  }
 }
-
-td.status {
-	vertical-align: middle;
-	a {
-		border: none;
-	}
+.noborder td, td.noborder, .noborder th, th.noborder {
+  border-width: 0 0 1px 0;
+  border-color: $cell-noborder-color;
+  line-height: 2em;
+  padding-bottom: 0;
 }
-
-.noborder td,
-td.noborder,
-.noborder th,
-th.noborder {
-	border-width: 0 0 1px 0;
-  border-color: $cell-noborder-color;
-	line-height: 2em;
-	padding-bottom: 0;
+.noborder p {
+  margin-bottom: 0;
 }
-
-.noborder p {
-	margin-bottom: 0;
+table.posts-list {
+  min-width: 50%;
 }
-
-table.posts-list {
-	min-width: 50%;
+table.settings, table.prefs {
+  margin-bottom: 3em;
+  th:first-child {
+    width: 20%;
+  }
+  th+th {
+    width: 30%;
+    +th {
+      width: 10%;
+    }
+  }
+  th:last-child {
+    width: 40%;
+  }
 }
-
-table.settings,
-table.prefs {
-	margin-bottom: 3em;
-	th:first-child {
-		width: 20%;
-	}
-	th + th {
-		width: 30%;
-		+ th {
-			width: 10%;
-		}
-	}
-	th:last-child {
-		width: 40%;
-	}
-}
-
-
 /* js */
 
 td.expand {
-	padding: 1em;
-	td {
-		border-bottom: none;
-	}
+  padding: 1em;
+  td {
+    border-bottom: none;
+  }
 }
+.handle {
+  padding: 0;
+}
+.handler {
+  cursor: move;
+  background: transparent url(drag.png) no-repeat 0 50%;
+  padding-left: 15px;
+}
+/* Responsive Cell Header */
 
-.handle {
-	padding: 0;
+.rch td::before {
+  display: none;
 }
-
-.handler {
-	cursor: move;
-	background: transparent url(drag.png) no-repeat 0 50%;
-	padding-left: 15px;
+@media screen and (max-width: $s-screen), print and (max-width: 5in) {
+  table.rch {
+    display: block;
+    caption, tbody, tr, td {
+      display: block;
+    }
+    th, tr:first-of-type {
+      display: none;
+    }
+    td:first-of-type {
+      border-top: 1px solid $gray-lighter;
+      color: $gray-light;
+      background: $gray-darker;
+    }
+    td::before {
+      display: inline;
+      font-weight: bold;
+    }
+    td {
+      display: grid;
+      grid-template-columns: 10em auto;
+      grid-gap: 1em 0.5em;
+      text-align: left;
+      border: none;
+    }
+    .maximal {
+      max-width: inherit;
+    }
+    .nowrap {
+      white-space: inherit;
+    }
+    td.expand {
+      grid-template-columns: auto !important;
+      color: $body-color;
+      background-color: $body-background;
+      border-top: 1px dashed $gray-lighter;
+    }
+  }
+  table.rch-thead {
+    thead {
+      display: none;
+    }
+    tr:first-of-type {
+      display: block;
+    }
+  }
 }
Index: plugins/aboutConfig/js/index.js
===================================================================
--- plugins/aboutConfig/js/index.js	(revision 3709)
+++ plugins/aboutConfig/js/index.js	(revision 4007)
@@ -1,3 +1,3 @@
-/*global $ */
+/*global $, dotclear */
 'use strict';
 
@@ -11,3 +11,5 @@
     window.location = $('#ls_nav option:selected').val();
   });
+  dotclear.responsiveCellHeaders(document.querySelector('table.settings'), 'table.settings', 0, true);
+  $('table.settings').addClass('rch rch-thead');
 });
Index: plugins/antispam/js/antispam.js
===================================================================
--- plugins/antispam/js/antispam.js	(revision 3987)
+++ plugins/antispam/js/antispam.js	(revision 4007)
@@ -31,3 +31,4 @@
     return window.confirm(dotclear.msg.confirm_spam_delete);
   });
+  dotclear.responsiveCellHeaders(document.querySelector('#filters-list-form table'), '#filters-list-form table', 1, true);
 });
Index: plugins/pages/js/list.js
===================================================================
--- plugins/pages/js/list.js	(revision 3995)
+++ plugins/pages/js/list.js	(revision 4007)
@@ -56,4 +56,5 @@
   $('#pageslist td input[type=checkbox]').enableShiftClick();
   dotclear.condSubmit('#pageslist td input[type=checkbox]', '#form-entries #do-action');
+  dotclear.responsiveCellHeaders(document.querySelector('#form-entries table'), '#form-entries table', 3, true);
 
   $('#pageslist tr.line td:not(.expander)').mousedown(function() {
Index: plugins/simpleMenu/js/simplemenu.js
===================================================================
--- plugins/simpleMenu/js/simplemenu.js	(revision 3880)
+++ plugins/simpleMenu/js/simplemenu.js	(revision 4007)
@@ -26,3 +26,4 @@
   $('#menuitemslist tr td.handle').addClass('handler');
   dotclear.condSubmit('#menuitems tr td input[name^=items_selected]', '#menuitems #remove-action');
+  dotclear.responsiveCellHeaders(document.querySelector('#menuitems table'), '#menuitems table', 2);
 });
Index: plugins/userPref/js/index.js
===================================================================
--- plugins/userPref/js/index.js	(revision 3709)
+++ plugins/userPref/js/index.js	(revision 4007)
@@ -1,3 +1,3 @@
-/*global $ */
+/*global $, dotclear */
 'use strict';
 
@@ -13,3 +13,5 @@
     window.location = $('#lp_nav option:selected').val();
   });
+  dotclear.responsiveCellHeaders(document.querySelector('table.prefs'), 'table.prefs', 0, true);
+  $('table.prefs').addClass('rch rch-thead');
 });
