skip to main content
10.1145/3079368.3079404acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

Modular Responsive Web Design: An Experience Report

Published:03 April 2017Publication History

ABSTRACT

Responsive Web Design (RWD) enables web applications to adapt to the characteristics of different devices such as screen size which is important for mobile browsing. Today, the only W3C standard to support this adaptability is CSS media queries. However, using media queries it is impossible to create applications in a modular way, because responsive elements then always depend on the global context. Hence, responsive elements can only be reused if the global context is exactly the same. This makes it extremely challenging to develop large responsive applications, because the lack of true modularity makes certain requirement changes either impossible or expensive to realize.

In this paper we extend RWD to also include responsive modules, i.e., modules that adapt their design based on their local context, independently of the global context. We present the ELQ project that includes an approach to enabling modular responsivity, and a novel implementation of resize detection of DOM elements. ELQ provides an implementation of element queries which generalize CSS media queries. Importantly, our design conforms to existing web specifications, enabling adoption on a large scale. ELQ is designed to be heavily extensible using plugins. Experimental results show speed-ups of the core algorithms of up to 37x compared to previous approaches.

References

  1. Chris Ashton. 2015. Localised CSS. (2015). Retrieved April 29, 2015 from https://github.com/ChrisBAshton/localised-cssGoogle ScholarGoogle Scholar
  2. Greg J Badros, Alan Borning, Kim Marriott, and Peter Stuckey. 1999. Constraint cascading style sheets for the web. In Proceedings of the 12th annual ACM symposium on User interface software and technology. ACM, 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Daniel Buchner. 2013. Cross-Browser, Event-based, Element Resize Detection. (2013). Retrieved March 23, 2015 from http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/Google ScholarGoogle Scholar
  4. Daniel Buchner. 2015. Element Queries. (2015). Retrieved April 29, 2015 from https://github.com/csuwildcat/element-queriesGoogle ScholarGoogle Scholar
  5. Gabriel Felipe. 2015. MagicHTML. (2015). Retrieved April 29, 2015 from https://github.com/gabriel-felipe/MagicHTMLGoogle ScholarGoogle Scholar
  6. Lyza Gardner. 2012. The EMs have it: Proportional Media Queries FTW! (2012). Retrieved March 2, 2015 from http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/Google ScholarGoogle Scholar
  7. Grid Style Sheets. 2015. Element queries with precompilation. (2015). Retrieved June, 8 2015 from https://github.com/gss/engine/issues/178Google ScholarGoogle Scholar
  8. Daniel Hägglund. 2015. breaks2000. (2015). Retrieved April 29, 2015 from https://github.com/judas-christ/breaks2000Google ScholarGoogle Scholar
  9. Tommy Hodgins and Maxime Euzière. 2015. EQCSS. (2015). Retrieved April 29, 2015 from http://elementqueries.com/Google ScholarGoogle Scholar
  10. Andy Hume. 2015. Selector queries and responsive containers. (2015). Retrieved April 29, 2015 from https://github.com/ahume/selector-queries/Google ScholarGoogle Scholar
  11. Kumail Hunaid. 2015. Responsive Elements. (2015). Retrieved April 29, 2015 from https://github.com/kumailht/responsive-elementsGoogle ScholarGoogle Scholar
  12. Tyson Matanich. 2015. ElementQuery. (2015). Retrieved April 29, 2015 from https://github.com/tysonmatanich/elementQueryGoogle ScholarGoogle Scholar
  13. Jonathan Neal. 2015. MediaClass. (2015). Retrieved April 29, 2015 from https://github.com/jonathantneal/MediaClassGoogle ScholarGoogle Scholar
  14. Truong Nguyen. 2015. SickleS. (2015). Retrieved April 29, 2015 from http://singggum3b.github.io/SickleS/Google ScholarGoogle Scholar
  15. Mark Otto and Jacob Thornton. 2016. Bootstrap. (2016). Retrieved January 15, 2016 from http://getbootstrap.com/Google ScholarGoogle Scholar
  16. David Lorge Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (1972), 1053--1058. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. François Remy. 2015. prollyfill-min-width. (2015). Retrieved April 29, 2015 from https://github.com/FremyCompany/prollyfill-min-width/Google ScholarGoogle Scholar
  18. Sam Richard. 2015. eq.js. (2015). Retrieved April 29, 2015 from github.com/Snugug/eq.jsGoogle ScholarGoogle Scholar
  19. Marc J. Schmidt. 2015. CSS Element Queries. (2015). Retrieved April 29, 2015 from https://github.com/marcj/css-element-queriesGoogle ScholarGoogle Scholar
  20. Alexis Sellier. 2015. LESS. (2015). Retrieved March 9, 2015 from http://lesscss.org/Google ScholarGoogle Scholar
  21. Joshua Stoutenburg. 2015. breakpoints.js. (2015). Retrieved April 29, 2015 from https://github.com/reusables/breakpoints.jsGoogle ScholarGoogle Scholar
  22. Matt Stow. 2015. Class Query. (2015). Retrieved April 29, 2015 from https://github.com/stowball/Class-QueryGoogle ScholarGoogle Scholar
  23. Dan Tocchini. 2015. Grid Style Sheets 2.0. (2015). Retrieved April 29, 2015 from http://gridstylesheets.org/Google ScholarGoogle Scholar
  24. W3C. 2000. Document Object Model Events. (2000). Retrieved March 14, 2015 from http://www.w3.org/TR/DOM-Level-2/events.htmlGoogle ScholarGoogle Scholar
  25. W3C. 2012. Media Queries. (2012). Retrieved May 19, 2015 from http://www.w3.org/TR/css3-mediaqueries/Google ScholarGoogle Scholar
  26. W3C. 2013. W3C public mail archive: The:min-width/:max-width pseudo-classes. (2013). Retrieved April 28, 2015 from https://lists.w3.org/Archives/Public/www-style/2013Mar/0368.htmlGoogle ScholarGoogle Scholar
  27. Lucas Wiener. 2015. ELQ: Extensible Element Queries for Modular Responsive Web Components. Master's thesis. KTH Royal Institute of Technology, Sweden.Google ScholarGoogle Scholar
  28. Lucas Wiener, Tomas Ekholm, and Philipp Haller. 2015. Modular Responsive Web Design using Element Queries. CoRR abs/1511.01223 (2015). http://arxiv.org/abs/1511.01223Google ScholarGoogle Scholar
  29. Corey Worrell. 2015. Responsive Elements. (2015). Retrieved April 29, 2015 from https://github.com/coreyworrell/responsive-elementsGoogle ScholarGoogle Scholar

Index Terms

  1. Modular Responsive Web Design: An Experience Report

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          Programming '17: Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming
          April 2017
          193 pages
          ISBN:9781450348362
          DOI:10.1145/3079368

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 3 April 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader