Feature #19097

Updated by Jan from Planio www.plan.io over 2 years ago

There have been a number of attempts to make Redmine more mobile-friendly, most of which have been incorporated in themes.

However, I believe that "mobile-friendliness" (e.g. a "responsive layout":http://alistapart.com/article/responsive-web-design) has nothing to do with the main purpose of themes.

IMO, the main purpose of themes is adding a custom design, like colors, icons, fonts, etc. Mobile-friendlyness on the other hand, should be a core feature for any modern web application. At "Planio":https://plan.io/, we've been developing such a responsive layout during the past weeks and I would like to contribute this back to the Redmine community. In fact, I would really enjoy seeing this go into the Redmine core.

It has *no dependencies* on Planio itself or on any theme. In fact, it also tries to also cause *minimal disruption to existing themes*. On the standard (desktop, i.e. >900px) view, existing themes should just work like before.

Moreover, only a few *minimal changes* should be required by theme developers to *make their existing themes work and look good on smaller screens*.

h3. Current status

The patch consists of a few changes to the base layout, some JavaScript (for the right side fly-out menu) and a self-contained stylesheet file. In this first step, the stylesheet tries to reach a minimum setup in order to achieve basic responsiveness for Redmine. The following things were kept in mind:

* In Redmine, anything that is below 900px has a horizontal scrollbar anyways and therefore does not fit in viewport, so start adding responsiveness here
* Use as little JavaScript as possible -> try CSS solution first
* Don't use workarounds for IE below 9 to keep things easy

h3. How to make existing themes work

Almost all existing themes we tested, work great on regular desktop screens. In fact, they also work with the mobile layout out of the box. To make them more beautiful, only a few tweaks to the respective theme CSS are required:

The colors mentioned here are all standard Redmine theme colors. That should make a find & replace for existing theme developers easier.

<pre><code class="css">
/* Header background color */
#wrapper #header {
background-color: #628db6;

/* Mobile toggle button colors */
#wrapper #header a.mobile-toggle-button {
border-left-color: #dddddd;
color: #f8f8f8;

/* Flyout menu colors */
#wrapper .flyout-menu {
color: #ffffff;
background-color: #3e5b76;

/* Flyout menu border color */
#wrapper .flyout-menu__avatar, #wrapper .flyout-menu ul li a {
border-top-color: rgba(255,255,255,.1); /* white with alpha transparency */

/* Flyout menu link color */
#wrapper .flyout-menu a, #wrapper .flyout-menu__avatar a {
color: #ffffff;

/* Flyout menu headings background */
#wrapper .flyout-menu h3 {
background-color: #628db6;

/* Flyout menu headings text color */
#wrapper .flyout-menu h3, #wrapper .flyout-menu h4 {
color: #ffffff;

/* Search magnifying glass label color */
#wrapper .search-magnifier {
color: #bbbbbb;

/* Project menu dropdown arrow color */
#wrapper .jump-box-arrow {
color: #ffffff;

These are all CSS classes which we believe most existing theme developers should need to adapt in order to make their theme look good work with the responsive layout.

h3. What's left to to?

We will be working on making individual views more mobile-friendly as well. This will be a step-by-step process where we will try to work on the important parts (issues list, issue forms) first and then work our way back to the not so important views.

However, since this patch already improves the status quo on mobile devices and is self-contained, I'd say it could already be committed.