├── .gitignore ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── config.rb ├── data └── categories.yml └── source ├── CNAME ├── confirmation.html.erb ├── images ├── context.svg ├── envelope.png ├── envelope.svg ├── favicon.png ├── icons │ ├── icon_10612.svg │ ├── icon_11589.svg │ ├── icon_1171.svg │ ├── icon_1541.svg │ ├── icon_2835.svg │ ├── icon_7231.svg │ └── icon_8541.svg ├── shadow.png ├── source.svg └── support.png ├── index.html.erb ├── javascripts ├── all.js ├── init.js └── plugins │ ├── modernizr.js │ └── prism.js ├── layouts ├── interior.erb ├── layout.erb └── pattern.erb ├── partials ├── footer.html.erb ├── header-home.html.erb └── header.html.erb ├── patterns ├── accordions │ ├── full-to-accordion.html.erb │ └── show-more.html.erb ├── grid-blocks │ ├── double-wide-v1.html.erb │ ├── double-wide-v2.html.erb │ ├── double-wide-v3.html.erb │ └── with-title-sections.html.erb ├── layout │ ├── 2-equal-width-columns-v2.html.erb │ ├── 2-equal-width-columns.html.erb │ ├── 3-equal-width-columns.html.erb │ ├── column-drop.html.erb │ ├── image-surround.html.erb │ ├── layout-shifter.html.erb │ ├── main-column-with-sidebar.html.erb │ ├── shrink-wrap.html.erb │ └── source-order-shift.html.erb ├── lists │ ├── list-with-thumbnails-and-summary-hide.html.erb │ ├── list-with-thumbnails-and-summary-stack.erb │ ├── list-with-thumbnails-v2.erb │ └── list-with-thumbnails.erb ├── media │ ├── basic-fluid-image.html.erb │ ├── connecting-fallback.jpg │ ├── description-overlay-bottom.html.erb │ ├── description-overlay-right.html.erb │ ├── espana_alleyway.jpg │ ├── fluid-video.html.erb │ ├── image-center-crop.html.erb │ ├── image-grid.html.erb │ ├── image-left-crop.html.erb │ ├── image-right-crop.html.erb │ ├── image-vertical-crop.html.erb │ ├── lindsey.jpg │ ├── meat.jpg │ ├── souk.jpg │ ├── spain.jpg │ └── tattoos.jpg └── navigation │ ├── drop-below.html.erb │ ├── footer-anchor.html.erb │ ├── hide-everything.html.erb │ ├── reduce-v2.html.erb │ ├── reduce.html.erb │ ├── stacked-split-links.html.erb │ ├── stacked-top-links-4-up.html.erb │ ├── stacked-top-links.html.erb │ ├── toggle.html │ ├── toggle2.html │ ├── toggle3.html │ └── top-links.html.erb ├── stylesheets ├── Partials │ ├── _branding.scss │ ├── _footer.scss │ ├── _forms.scss │ ├── _grid.scss │ ├── _header.scss │ ├── _pattern.scss │ ├── _support.scss │ └── _utilities.scss ├── all.css.scss └── prism.css ├── submit-pattern.html.erb └── support.html.erb /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all logfiles and tempfiles. 2 | /log/*.log 3 | /tmp 4 | .sass-cache 5 | .cache 6 | .bundle 7 | *.DS_Store -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # If you have OpenSSL installed, we recommend updating 2 | # the following line to use "https" 3 | source 'http://rubygems.org' 4 | 5 | gem "middleman" 6 | gem "compass-normalize" 7 | gem 'middleman-gh-pages' 8 | 9 | require 'rbconfig' -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: http://rubygems.org/ 3 | specs: 4 | activesupport (4.0.4) 5 | i18n (~> 0.6, >= 0.6.9) 6 | minitest (~> 4.2) 7 | multi_json (~> 1.3) 8 | thread_safe (~> 0.1) 9 | tzinfo (~> 0.3.37) 10 | chunky_png (1.3.0) 11 | coffee-script (2.2.0) 12 | coffee-script-source 13 | execjs 14 | coffee-script-source (1.7.0) 15 | compass (0.12.5) 16 | chunky_png (~> 1.2) 17 | fssm (>= 0.2.7) 18 | sass (~> 3.2.19) 19 | compass-import-once (1.0.4) 20 | sass (>= 3.2, < 3.5) 21 | compass-normalize (1.5) 22 | compass (>= 0.12.0) 23 | erubis (2.7.0) 24 | execjs (2.0.2) 25 | ffi (1.9.3) 26 | fssm (0.2.10) 27 | haml (4.0.5) 28 | tilt 29 | hike (1.2.3) 30 | hooks (0.4.0) 31 | uber (~> 0.0.4) 32 | i18n (0.6.9) 33 | json (1.8.1) 34 | kramdown (1.3.3) 35 | listen (1.3.1) 36 | rb-fsevent (>= 0.9.3) 37 | rb-inotify (>= 0.9) 38 | rb-kqueue (>= 0.2) 39 | middleman (3.3.1) 40 | coffee-script (~> 2.2.0) 41 | compass (>= 0.12.4) 42 | compass-import-once (~> 1.0.4) 43 | execjs (~> 2.0) 44 | haml (>= 4.0.5) 45 | kramdown (~> 1.2) 46 | middleman-core (= 3.3.1) 47 | middleman-sprockets (>= 3.1.2) 48 | sass (>= 3.2.17, < 4.0) 49 | uglifier (~> 2.5) 50 | middleman-core (3.3.1) 51 | activesupport (~> 4.0.1) 52 | bundler (~> 1.1) 53 | erubis 54 | hooks (~> 0.3) 55 | i18n (~> 0.6.9) 56 | listen (~> 1.1) 57 | padrino-helpers (~> 0.12.1) 58 | rack (>= 1.4.5, < 2.0) 59 | rack-test (~> 0.6.2) 60 | thor (>= 0.15.2, < 2.0) 61 | tilt (~> 1.4.1, < 2.0) 62 | middleman-gh-pages (0.0.3) 63 | rake (> 0.9.3) 64 | middleman-sprockets (3.3.2) 65 | middleman-core (>= 3.2) 66 | sprockets (~> 2.2) 67 | sprockets-helpers (~> 1.1.0) 68 | sprockets-sass (~> 1.0.0) 69 | minitest (4.7.5) 70 | multi_json (1.9.2) 71 | padrino-helpers (0.12.1) 72 | i18n (~> 0.6, >= 0.6.7) 73 | padrino-support (= 0.12.1) 74 | tilt (~> 1.4.1) 75 | padrino-support (0.12.1) 76 | activesupport (>= 3.1) 77 | rack (1.5.2) 78 | rack-test (0.6.2) 79 | rack (>= 1.0) 80 | rake (10.3.0) 81 | rb-fsevent (0.9.4) 82 | rb-inotify (0.9.3) 83 | ffi (>= 0.5.0) 84 | rb-kqueue (0.2.2) 85 | ffi (>= 0.5.0) 86 | sass (3.2.19) 87 | sprockets (2.12.0) 88 | hike (~> 1.2) 89 | multi_json (~> 1.0) 90 | rack (~> 1.0) 91 | tilt (~> 1.1, != 1.3.0) 92 | sprockets-helpers (1.1.0) 93 | sprockets (~> 2.0) 94 | sprockets-sass (1.0.3) 95 | sprockets (~> 2.0) 96 | tilt (~> 1.1) 97 | thor (0.19.1) 98 | thread_safe (0.3.2) 99 | tilt (1.4.1) 100 | tzinfo (0.3.39) 101 | uber (0.0.4) 102 | uglifier (2.5.0) 103 | execjs (>= 0.3.0) 104 | json (>= 1.8.0) 105 | 106 | PLATFORMS 107 | ruby 108 | 109 | DEPENDENCIES 110 | compass-normalize 111 | middleman 112 | middleman-gh-pages 113 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Responsive Email Patterns 2 | ======================= 3 | 4 | A collection of patterns and modules for responsive emails. 5 | Responsive Email Patterns Website 6 | 7 | Based on Brad Frost's 'This is Responsive' Responsive Patterns. 8 | 9 | ## Layout 10 |
<%= current_page.data.pattern_desc %>
33 |
37 |
38 | <%= escape_html(yield_content :source) %>
39 |
40 |
41 | <%= data.page.desc %>
11 | 12 | <% if data.page.submit == true %> 13 | Submit A Pattern 14 | <% end %> 15 |
41 | Story 142 |43 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 44 | 45 | 46 | |
47 |
50 | Story 251 |52 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 53 | 54 | 55 | |
56 |
59 | Story 360 |61 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 62 | 63 | 64 | |
65 |
63 | Story 164 |65 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 66 | 67 | 68 | |
69 |
72 | Story 273 |74 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 75 | 76 | 77 | |
78 |
81 | Story 382 |83 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 84 | 85 | 86 | |
87 |
43 |
|
120 |
43 |
|
122 |
49 |
|
105 |
51 |
|
77 |
30 |
|
76 |
37 |
|
124 |
22 | Column 123 |24 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 25 | 26 | |
27 | |
30 | Column 231 |32 | Nunc tempus felis vitae urna. Vivamus porttitor, neque at volutpat rutrum, purus nisi eleifend libero, a tempus libero lectus feugiat felis. Morbi diam mauris, viverra in, gravida eu, mattis in, ante. Morbi eget arcu. Morbi porta, libero id ullamcorper nonummy, nibh ligula pulvinar metus, eget consectetuer augue nisi quis lacus. Ut ac mi quis lacus mollis aliquam. Curabitur iaculis tempus eros. Curabitur vel mi sit amet magna malesuada ultrices. Ut nisi erat, fermentum vel, congue id, euismod in, elit. Fusce ultricies, orci ac feugiat suscipit, leo massa sodales velit, et scelerisque mi tortor at ipsum. Proin orci odio, commodo ac, gravida non, tristique vel, tellus. Pellentesque nibh libero, ultricies eu, sagittis non, mollis sed, justo. Praesent metus ipsum, pulvinar pulvinar, porta id, fringilla at, est. 33 | 34 | |
35 |
36 | Column 337 |38 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In posuere felis nec tortor. Pellentesque faucibus. Ut accumsan ultricies elit. Maecenas at justo id velit placerat molestie. Donec dictum lectus non odio. Cras a ante vitae enim iaculis aliquam. Mauris nunc quam, venenatis nec, euismod sit amet, egestas placerat, est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras id elit. Integer quis urna. Ut ante enim, dapibus malesuada, fringilla eu, condimentum quis, tellus. Aenean porttitor eros vel dolor. Donec convallis pede venenatis nibh. Duis quam. Nam eget lacus. Aliquam erat volutpat. Quisque dignissim congue leo. 39 | 40 | |
41 |
50 |
|
124 |
25 | Column 126 |27 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros. 28 | 29 | |
30 |
31 |
|
50 |
21 |
|
72 |
41 |
|
71 |
33 |
|
90 |
47 |
|
104 |
47 |
|
106 |
55 |
|
112 |
27 |
32 |
|
58 |
29 |
30 |
32 | ![]() |
33 |
34 |
|
53 |
32 |
|
42 |
45 |
46 |
48 | ![]() |
49 |
35 |
|
58 | ||||||
61 | |
63 |
54 | |
63 | ||||||
66 |
|
89 | ||||||
92 | |
94 |
21 |
|
44 | ||||||
47 | |
49 |
32 |
|
55 | ||||||
58 | |
60 |
31 |
|
54 | ||||||
57 | |
59 |
58 |
|
87 | ||||||||
90 | |
92 | ||||||||
95 | |
123 |
42 |
|
59 | ||||
62 | |
64 |
29 |
|
46 | ||||
49 | |
51 |
22 |
|
51 | ||||||||
54 | |
56 |
Email Client | 11 |12 | Support Level 13 | | 14 |
---|---|
iPhone 3GS iOS5 | 17 |Full | 18 |
iPhone 4S iOS6 | 21 |Full | 22 |
iPhone 5 iOS6 | 25 |Full | 26 |
iPhone 5s iOS7 | 29 |Full | 30 |
iPad iOS6 | 33 |Full | 34 |
iPad (Retina) iOS7 | 37 |Full | 38 |
iPad Mini iOS7 | 41 |Full | 42 |
Apple Mail 5 OS X 10.7 | 45 |Full | 46 |
Apple Mail 6 OS X 10.8 | 49 |Full | 50 |
Android 2.3 Native Client | 53 |Full | 54 |
Android 4.0 Native Client | 57 |Full | 58 |
Android Outlook Exchange via Native Client | 61 |Working | 62 |
Android Gmail App | 65 |Working | 66 |
Outlook 2000 | 69 |Working | 70 |
Outlook 2007 | 73 |Working | 74 |
Outlook 2010 | 77 |Working | 78 |
Outlook 2011 OS X 10.7 | 81 |Working | 82 |
Outlook 2013 | 85 |Working | 86 |
Gmail Chrome | 89 |Working | 90 |
Gmail IE | 93 |Working | 94 |
Gmail Firefox | 97 |Working | 98 |
Hotmail/Outlook.com Chrome | 101 |Working | 102 |
Hotmail/Outlook.com IE | 105 |Working | 106 |
Hotmail/Outlook.com Firefox | 109 |Working | 110 |
Yahoo! Mail Chrome | 113 |Working | 114 |
Yahoo! Mail IE | 117 |Working | 118 |
Yahoo! Mail Firefox | 121 |Working | 122 |
Windows Phone 7 | 125 |Working | 126 |
Windows Mobile 6.1 | 129 |None | 130 |
BlackBerry OS4 | 133 |None | 134 |
BlackBerry OS5 | 137 |None | 138 |