{"id":288,"date":"2022-03-10T19:24:49","date_gmt":"2022-03-10T19:24:49","guid":{"rendered":"https:\/\/www.mirobin.com\/blog\/?p=288"},"modified":"2022-03-10T20:01:07","modified_gmt":"2022-03-10T20:01:07","slug":"designing-data-table-for-mobile","status":"publish","type":"post","link":"https:\/\/www.mirobin.com\/blog\/designing-data-table-for-mobile\/","title":{"rendered":"Designing data table for mobile"},"content":{"rendered":"\n<p>The table comes in handy when we need to show big data set. It is the most effective way to see the big picture and to do comparative analysis on categorical objects.<\/p>\n\n\n\n<p>Most tables consist of a large amount of data in rows and columns which are effectively readable in desktop view nevertheless the problem occurs when trying to give a similar experience on a mobile phone. On a small screen, if there are too many columns in a table, the user needs to swipe a lot to see the data. And as a designer, we struggle to solve this problem.<\/p>\n\n\n\n<p>When we have no option, a common solution we provide is the horizontal scroll. But including that, there are a couple of other solutions we can use in our next project.<\/p>\n\n\n\n<p>Let&#8217;s get started with the usual one.<\/p>\n\n\n\n<h2>Allow Horizontal Scrolling<\/h2>\n\n\n\n<p>Horizontal Scrolling is probably the most common thing we usually do because it takes no effort to design. But it is a bad experience because we push oversized data into a small mobile screen. Of course, dual-axis scrolling is confusing because it&#8217;s a table where our eyes go from top to bottom or left to right, not a mobile map application where dual-axis scrolling is completely normal when we see it in mobile&#8217;s map app.<br>However, if you still need to use it on a table, try to fix column headers or row headers to provide some sense of place.<\/p>\n\n\n\n<p>Amazon used it very wisely.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/amazon-table-responsive-1.gif\" alt=\"\" class=\"wp-image-290\" width=\"313\" height=\"484\"\/><figcaption>Amazon<\/figcaption><\/figure><\/div>\n\n\n\n<h2>Responsive Tables<\/h2>\n\n\n\n<p>Another common approach we often see is a responsive tables view where each row becomes a small table consisting of two columns. One column is the header another is the value. This method is widely loved by developers because of its easy implementation. Just a few CSS codes and boom! It&#8217;s done.<\/p>\n\n\n\n<p>Here is the <a href=\"https:\/\/css-tricks.com\/responsive-data-tables\/\">code link<\/a> in case you came to this blog to get the job done. \ud83d\ude04<\/p>\n\n\n\n<p>But the problem is it doesn&#8217;t serve the purpose of a table anymore. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><strong>The table is for efficiently doing a comparative analysis on categorical objects.<\/strong><\/p><\/blockquote>\n\n\n\n<p>Since this is not a table anymore user can&#8217;t do the analysis. Even if users want, they need to scroll many times which is painful too.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble-1024x768.png\" alt=\"\" class=\"wp-image-291\" width=\"783\" height=\"587\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble-1024x768.png 1024w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble-300x225.png 300w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble-768x576.png 768w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble-1536x1152.png 1536w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/dribbble.png 1600w\" sizes=\"(max-width: 783px) 100vw, 783px\" \/><figcaption><a href=\"https:\/\/dribbble.com\/shots\/10160804-Mobile-responsive-table\" target=\"_blank\" rel=\"noreferrer noopener nofollow\" title=\"https:\/\/dribbble.com\/shots\/10160804-Mobile-responsive-table\">Mobile responsive table<\/a> by Zlatko Najdenovski<\/figcaption><\/figure><\/div>\n\n\n\n<p>Another example: <\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/responsive-table-1.gif\" alt=\"\" class=\"wp-image-292\" width=\"613\" height=\"345\"\/><\/figure><\/div>\n\n\n\n<h2>Carousel Columns for mobile view<\/h2>\n\n\n\n<p>This solution I found from Anthony in UX movement where he mentioned how we can utilize data comparing the method to make it better responsive. As mentioned in the article, user wants to compare the first column (Key ID value) with the rest of the column (Attribute Values).<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-1024x622.png\" alt=\"\" class=\"wp-image-293\" width=\"726\" height=\"440\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-1024x622.png 1024w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-300x182.png 300w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-768x466.png 768w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2.png 1248w\" sizes=\"(max-width: 726px) 100vw, 726px\" \/><figcaption><a href=\"https:\/\/uxmovement.com\/mobile\/how-to-display-large-data-tables-on-small-screens\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\" title=\"https:\/\/uxmovement.com\/mobile\/how-to-display-large-data-tables-on-small-screens\/\">UX Movement<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>The solution is simple &#8211; we will fix the &#8220;Key ID Value&#8221; and put all the &#8220;attribute values&#8221; in the carousel. The carousel will have navigation arrow keys to swap the column.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-2.png\" alt=\"\" class=\"wp-image-294\" width=\"376\" height=\"428\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-2.png 734w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-responsive2-2-263x300.png 263w\" sizes=\"(max-width: 376px) 100vw, 376px\" \/><figcaption><a href=\"https:\/\/uxmovement.com\/mobile\/how-to-display-large-data-tables-on-small-screens\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">UX Movement<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2>Accordion based table<\/h2>\n\n\n\n<p>When you need to display too much content in too little screen space, accordions are one of the most useful design elements. In this method, the table will only consist of 2\/3 columns and the rest of the column information will be inside the pane. This approach is also useful for desktop versions when you have too many columns and you want to avoid horizontal scroll. Check out Kendo UI to learn more. <a href=\"https:\/\/wpdatatables.com\/documentation\/table-examples\/premier-league-table\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">wpDataTables<\/a> also introduced this approach.<\/p>\n\n\n\n<div class=\"is-layout-flex wp-container-4 wp-block-columns\">\n<div class=\"is-layout-flow wp-block-column\">\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" loading=\"lazy\" width=\"1042\" height=\"798\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion.png\" alt=\"\" class=\"wp-image-295\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion.png 1042w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion-300x230.png 300w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion-1024x784.png 1024w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion-768x588.png 768w\" sizes=\"(max-width: 1042px) 100vw, 1042px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"is-layout-flow wp-block-column\">\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" loading=\"lazy\" width=\"1104\" height=\"798\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion2.png\" alt=\"\" class=\"wp-image-296\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion2.png 1104w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion2-300x217.png 300w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion2-1024x740.png 1024w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/table-accordion2-768x555.png 768w\" sizes=\"(max-width: 1104px) 100vw, 1104px\" \/><figcaption>Credit: <a href=\"https:\/\/www.behance.net\/gallery\/90059503\/Complex-data-tables-on-mobile\/modules\/520817793\">Viktoria Vass<\/a><\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"is-layout-flex wp-container-6 wp-block-columns\">\n<div class=\"is-layout-flow wp-block-column\" style=\"flex-basis:100%\"><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2>Removing unnecessary column<\/h2>\n\n\n\n<p>This one is understandable but the hardest one to apply. As a designer, it is a common rule to show only the necessary information but not always successful to convince the product owner to cut off less important information. They want to show all of it. But when it comes to showing on such a small screen it is better to consider omitting unnecessary information.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/bloomberg.png\" alt=\"\" class=\"wp-image-297\" width=\"944\" height=\"506\" srcset=\"https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/bloomberg.png 1024w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/bloomberg-300x161.png 300w, https:\/\/www.mirobin.com\/blog\/wp-content\/uploads\/2022\/03\/bloomberg-768x413.png 768w\" sizes=\"(max-width: 944px) 100vw, 944px\" \/><figcaption><a href=\"https:\/\/www.bloomberg.com\/markets\/stocks\/futures\" target=\"_blank\" rel=\"noreferrer noopener nofollow\" title=\"https:\/\/www.bloomberg.com\/markets\/stocks\/futures\" class=\"broken_link\">Bloomberg<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>To conclude, choosing the right solution completely depends on what kind of data you want to show. Keep in mind how information is consumed by the users. It also depends on how cooperative the development team is in building it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The table comes in handy when we need to show big data set. It is the most effective way to see the big picture and to do comparative analysis.<\/p>\n","protected":false},"author":1,"featured_media":299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[11],"tags":[38,36,37,31,29],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/posts\/288"}],"collection":[{"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/comments?post=288"}],"version-history":[{"count":16,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/posts\/288\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/posts\/288\/revisions\/317"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/media\/299"}],"wp:attachment":[{"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/media?parent=288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/categories?post=288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mirobin.com\/blog\/wp-json\/wp\/v2\/tags?post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}