toadstool 0.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/Gemfile +11 -0
  2. data/Rakefile +4 -0
  3. data/config.rb +42 -0
  4. data/config.ru +6 -0
  5. data/doc-src/SASS-Guidelines.md +222 -0
  6. data/doc-src/What-Is-Toadstool.md +44 -0
  7. data/doc-src/changelog.md +29 -0
  8. data/doc-src/config.md +18 -0
  9. data/doc-src/mit_license.md +7 -0
  10. data/doc-src/mixin_directory.md +17 -0
  11. data/doc-src/sass.md +4 -0
  12. data/lib/RackServer.rb +93 -0
  13. data/lib/bin/toadstool +99 -0
  14. data/public/fonts/fontawesome-webfont.eot +0 -0
  15. data/public/fonts/fontawesome-webfont.svg +255 -0
  16. data/public/fonts/fontawesome-webfont.ttf +0 -0
  17. data/public/fonts/fontawesome-webfont.woff +0 -0
  18. data/public/fonts/zocial-regular-webfont.eot +0 -0
  19. data/public/fonts/zocial-regular-webfont.svg +138 -0
  20. data/public/fonts/zocial-regular-webfont.ttf +0 -0
  21. data/public/fonts/zocial-regular-webfont.woff +0 -0
  22. data/public/images/toadstool-logo.png +0 -0
  23. data/public/javascripts/application.js +74 -0
  24. data/public/javascripts/css_browser_selector.js +8 -0
  25. data/public/javascripts/lang-apollo.js +2 -0
  26. data/public/javascripts/lang-clj.js +18 -0
  27. data/public/javascripts/lang-css.js +2 -0
  28. data/public/javascripts/lang-go.js +1 -0
  29. data/public/javascripts/lang-hs.js +2 -0
  30. data/public/javascripts/lang-lisp.js +3 -0
  31. data/public/javascripts/lang-lua.js +2 -0
  32. data/public/javascripts/lang-ml.js +2 -0
  33. data/public/javascripts/lang-n.js +4 -0
  34. data/public/javascripts/lang-proto.js +1 -0
  35. data/public/javascripts/lang-scala.js +2 -0
  36. data/public/javascripts/lang-sql.js +2 -0
  37. data/public/javascripts/lang-tex.js +1 -0
  38. data/public/javascripts/lang-vb.js +2 -0
  39. data/public/javascripts/lang-vhdl.js +3 -0
  40. data/public/javascripts/lang-wiki.js +2 -0
  41. data/public/javascripts/lang-xq.js +3 -0
  42. data/public/javascripts/lang-yaml.js +2 -0
  43. data/public/javascripts/modernizr.mods.js +22 -0
  44. data/public/javascripts/prettify.js +28 -0
  45. data/public/javascripts/selectivizr-min.js +5 -0
  46. data/public/stylesheets/style.css +615 -0
  47. data/public/stylesheets/toadstool.css +1643 -0
  48. data/readme.md +37 -0
  49. data/sass/_buttons.scss +20 -0
  50. data/sass/_config.scss +216 -0
  51. data/sass/_design.scss +6 -0
  52. data/sass/_forms.scss +18 -0
  53. data/sass/_modules.scss +12 -0
  54. data/sass/_reset.scss +5 -0
  55. data/sass/_typography.scss +93 -0
  56. data/sass/_ui_patterns.scss +0 -0
  57. data/sass/_web_fonts.scss +32 -0
  58. data/sass/buttons/_cupid_config.scss +20 -0
  59. data/sass/buttons/_minimal_config.scss +15 -0
  60. data/sass/color/_color_math.scss +63 -0
  61. data/sass/color/_extends.scss +291 -0
  62. data/sass/color/_grayscale_math.scss +10 -0
  63. data/sass/modules/example_module/_extends.scss +0 -0
  64. data/sass/modules/example_module/_mixins.scss +0 -0
  65. data/sass/modules/example_module/readme.md +96 -0
  66. data/sass/style.scss +45 -0
  67. data/sass/toadstool.scss +14 -0
  68. data/sass/ui_patterns/_color_grid.scss +286 -0
  69. data/sass/ui_patterns/_example.scss +0 -0
  70. data/toadstool.rb +84 -0
  71. data/views/abstract_colors.erb +1 -0
  72. data/views/alerts.erb +1 -0
  73. data/views/buttons.erb +1 -0
  74. data/views/color_palettes.erb +221 -0
  75. data/views/forms.erb +24 -0
  76. data/views/forms/disabled_button.erb +18 -0
  77. data/views/forms/password_input.erb +22 -0
  78. data/views/forms/primary_button.erb +18 -0
  79. data/views/forms/username_input.erb +23 -0
  80. data/views/grid.erb +127 -0
  81. data/views/grid24.erb +59 -0
  82. data/views/grids/grid_arguments.erb +22 -0
  83. data/views/grids/use_definition.erb +12 -0
  84. data/views/layout.erb +58 -0
  85. data/views/modules/example_module/module.erb +0 -0
  86. data/views/modules/example_module/module.js +0 -0
  87. data/views/modules/example_module/readme.md +29 -0
  88. data/views/modules/example_module/view.erb +0 -0
  89. data/views/modules/readme.md +10 -0
  90. data/views/semantic_colors.erb +1 -0
  91. data/views/shared/_html_example.erb +31 -0
  92. data/views/shared/_main_footer.erb +12 -0
  93. data/views/shared/_main_header.erb +4 -0
  94. data/views/shared/_main_nav.erb +16 -0
  95. data/views/shared/_sass_example.erb +10 -0
  96. data/views/shared/_toadstool_subheader.erb +6 -0
  97. data/views/typography.erb +17 -0
  98. data/views/typography/body_copy.erb +19 -0
  99. data/views/typography/body_links.erb +18 -0
  100. data/views/typography/general_typography.erb +19 -0
  101. data/views/typography/headings.erb +65 -0
  102. data/views/typography/vertical_rhythm.erb +13 -0
  103. data/views/typography/web_fonts.erb +11 -0
  104. data/views/ui_patterns/example.erb +1 -0
  105. data/views/ui_patterns/forms/text_input.erb +10 -0
  106. data/views/ui_patterns/readme.md +14 -0
  107. metadata +216 -0
data/views/forms.erb ADDED
@@ -0,0 +1,24 @@
1
+ <header class="toadstool_header">
2
+ <h1>form</h1>
3
+ </header>
4
+
5
+ <section id="text_inputs">
6
+ <%= partial :'shared/_toadstool_subheader', :locals => {
7
+ :header => 'text inputs', :text => 'The following form input text types are supported <code>input[type=email]</code>, <code>input[type=password]</code>, <code>input[type=text]</code> and <code>input[type=number]</code>'
8
+ } %>
9
+ <%= partial :'shared/_html_example', :locals => { :path => 'ui_patterns/forms/text_input.erb' } %>
10
+ <%= partial :'shared/_sass_example', :locals => { :path => 'sass/_forms.scss' } %>
11
+ </section>
12
+
13
+
14
+ <%#= partial :"forms/username_input" %>
15
+
16
+ <%#= partial :"forms/password_input" %>
17
+
18
+ <%#= partial :"forms/primary_button" %>
19
+
20
+ <%#= partial :"forms/disabled_button" %>
21
+
22
+
23
+
24
+ <footer class="toadstool_footer"></footer>
@@ -0,0 +1,18 @@
1
+ <section id="disabled_button">
2
+ <header class="toadstool_subheader">
3
+ <h2>disabled button</h2>
4
+ <article>
5
+ <p>Copy goes here about how form inputs work</p>
6
+ <!-- <p><a href="#" class="click_more_typography">Read more ...</a></p> -->
7
+ </article>
8
+ <article class="read_more_inputs hidden"></article>
9
+ </header>
10
+
11
+ <article class="element_example">
12
+ <form>
13
+ <fieldset>
14
+ <button disabled>Sign in</button>
15
+ </fieldset>
16
+ </form>
17
+ </article>
18
+ </section>
@@ -0,0 +1,22 @@
1
+ <section id="password_inputs">
2
+ <header class="toadstool_subheader">
3
+ <h2>password inputs</h2>
4
+ <article>
5
+ <p>Copy goes here about how form inputs work</p>
6
+ <!-- <p><a href="#" class="click_more_typography">Read more ...</a></p> -->
7
+ </article>
8
+ <article class="read_more_inputs hidden"></article>
9
+ </header>
10
+
11
+ <article class="element_example">
12
+ <form>
13
+ <fieldset>
14
+ <ol>
15
+ <li>
16
+ <label for="login_password">Password</label>
17
+ <input type="password" name="password" id="login_password" placeholder="password" tabindex="2" />
18
+ </li>
19
+ </ol>
20
+ </form>
21
+ </article>
22
+ </section>
@@ -0,0 +1,18 @@
1
+ <section id="primary_button">
2
+ <header class="toadstool_subheader">
3
+ <h2>primary button</h2>
4
+ <article>
5
+ <p>Copy goes here about how form inputs work</p>
6
+ <!-- <p><a href="#" class="click_more_typography">Read more ...</a></p> -->
7
+ </article>
8
+ <article class="read_more_inputs hidden"></article>
9
+ </header>
10
+
11
+ <article class="element_example">
12
+ <form>
13
+ <fieldset>
14
+ <button>Sign in</button>
15
+ </fieldset>
16
+ </form>
17
+ </article>
18
+ </section>
@@ -0,0 +1,23 @@
1
+ <section id="username_inputs">
2
+ <header class="toadstool_subheader">
3
+ <h2>username inputs</h2>
4
+ <article>
5
+ <p>Copy goes here about how form inputs work</p>
6
+ <!-- <p><a href="#" class="click_more_typography">Read more ...</a></p> -->
7
+ </article>
8
+ <article class="read_more_inputs hidden"></article>
9
+ </header>
10
+
11
+ <article class="element_example">
12
+ <form>
13
+ <fieldset>
14
+ <ol>
15
+ <li>
16
+ <label for="login_username">Username</label>
17
+ <input type="text" autocapitalize="off" autocorrect="off" name="username" id="login_username" placeholder="username" />
18
+ </li>
19
+ </ol>
20
+ </fieldset>
21
+ </form>
22
+ </article>
23
+ </section>
data/views/grid.erb ADDED
@@ -0,0 +1,127 @@
1
+ <header class="toadstool_header">
2
+ <h1>grids</h1>
3
+ </header>
4
+
5
+ <%= partial :"grids/use_definition" %>
6
+
7
+ <article class="element_example col_12_grid shift">
8
+ <ul>
9
+ <li class="grid-1">1 col</li>
10
+ <li class="grid-11">11 col</li>
11
+ </ul>
12
+ <ul>
13
+ <li class="grid-2">2 col</li>
14
+ <li class="grid-10">10 col</li>
15
+ </ul>
16
+ <ul>
17
+ <li class="grid-3">3 col</li>
18
+ <li class="grid-9">9 col</li>
19
+ </ul>
20
+ <ul>
21
+ <li class="grid-4">4 col</li>
22
+ <li class="grid-8">8 col</li>
23
+ </ul>
24
+ <ul>
25
+ <li class="grid-5">5 col</li>
26
+ <li class="grid-7">7 col</li>
27
+ </ul>
28
+ <ul>
29
+ <li class="grid-6">6 col</li>
30
+ <li class="grid-6">6 col</li>
31
+ </ul>
32
+ <ul>
33
+ <li class="grid-7">7 col</li>
34
+ <li class="grid-5">5 col</li>
35
+ </ul>
36
+ <ul>
37
+ <li class="grid-8">8 col</li>
38
+ <li class="grid-4">4 col</li>
39
+ </ul>
40
+ <ul>
41
+ <li class="grid-9">9 col</li>
42
+ <li class="grid-3">3 col</li>
43
+ </ul>
44
+ <ul>
45
+ <li class="grid-10">10 col</li>
46
+ <li class="grid-2">2 col</li>
47
+ </ul>
48
+ <ul>
49
+ <li class="grid-11">11 col</li>
50
+ <li class="grid-1">1 col</li>
51
+ </ul>
52
+ <ul>
53
+ <li class="grid-12">12 col</li>
54
+ </ul>
55
+ </article>
56
+
57
+ <article class="element_example col_10_grid">
58
+ <ul>
59
+ <li class="grid-1">1 col</li>
60
+ <li class="grid-9">9 col</li>
61
+ </ul>
62
+ <ul>
63
+ <li class="grid-2">2 col</li>
64
+ <li class="grid-8">8 col</li>
65
+ </ul>
66
+ <ul>
67
+ <li class="grid-3">3 col</li>
68
+ <li class="grid-7">7 col</li>
69
+ </ul>
70
+ <ul>
71
+ <li class="grid-4">4 col</li>
72
+ <li class="grid-6">6 col</li>
73
+ </ul>
74
+ <ul>
75
+ <li class="grid-5">5 col</li>
76
+ <li class="grid-5">5 col</li>
77
+ </ul>
78
+ <ul>
79
+ <li class="grid-6">6 col</li>
80
+ <li class="grid-4">4 col</li>
81
+ </ul>
82
+ <ul>
83
+ <li class="grid-7">7 col</li>
84
+ <li class="grid-3">3 col</li>
85
+ </ul>
86
+ <ul>
87
+ <li class="grid-8">8 col</li>
88
+ <li class="grid-2">2 col</li>
89
+ </ul>
90
+ <ul>
91
+ <li class="grid-9">9 col</li>
92
+ <li class="grid-1">1 col</li>
93
+ </ul>
94
+ <ul>
95
+ <li class="grid-10">10 col</li>
96
+ <li class="grid-11">11 col</li>
97
+ <li class="grid-12">12 col</li>
98
+ </ul>
99
+ </article>
100
+
101
+ <article class="element_example col_4_grid">
102
+ <ul>
103
+ <li class="grid-1">1 col</li>
104
+ <li class="grid-3">3 col</li>
105
+ </ul>
106
+ <ul>
107
+ <li class="grid-2">2 col</li>
108
+ <li class="grid-2">2 col</li>
109
+ </ul>
110
+ <ul>
111
+ <li class="grid-3">3 col</li>
112
+ <li class="grid-1">1 col</li>
113
+ </ul>
114
+ <ul>
115
+ <li class="grid-4">4 col</li>
116
+ <li class="grid-5">5 col</li>
117
+ <li class="grid-6">6 col</li>
118
+ <li class="grid-7">7 col</li>
119
+ <li class="grid-8">8 col</li>
120
+ <li class="grid-9">9 col</li>
121
+ <li class="grid-10">10 col</li>
122
+ <li class="grid-11">11 col</li>
123
+ <li class="grid-12">12 col</li>
124
+ </ul>
125
+ </article>
126
+
127
+ <%= partial :"grids/grid_arguments" %>
data/views/grid24.erb ADDED
@@ -0,0 +1,59 @@
1
+ <header class="toadstool_header">
2
+ <h1>grids</h1>
3
+ </header>
4
+
5
+ <%= partial :"grids/use_definition" %>
6
+
7
+ <article class="element_example col_24_grid shift">
8
+ <ul>
9
+ <li class="grid-1-24">1</li>
10
+ <li class="grid-23-24">23 col</li>
11
+ </ul>
12
+ <ul>
13
+ <li class="grid-2-24">2 col</li>
14
+ <li class="grid-22-24">22 col</li>
15
+ </ul>
16
+ <ul>
17
+ <li class="grid-3-24">3 col</li>
18
+ <li class="grid-21-24">21 col</li>
19
+ </ul>
20
+ <ul>
21
+ <li class="grid-4-24">4 col</li>
22
+ <li class="grid-20-24">20 col</li>
23
+ </ul>
24
+ <ul>
25
+ <li class="grid-5-24">5 col</li>
26
+ <li class="grid-19-24">19 col</li>
27
+ </ul>
28
+ <ul>
29
+ <li class="grid-6-24">6 col</li>
30
+ <li class="grid-18-24">18 col</li>
31
+ </ul>
32
+ <ul>
33
+ <li class="grid-7-24">7 col</li>
34
+ <li class="grid-17-24">17 col</li>
35
+ </ul>
36
+ <ul>
37
+ <li class="grid-8-24">8 col</li>
38
+ <li class="grid-16-24">16 col</li>
39
+ </ul>
40
+ <ul>
41
+ <li class="grid-9-24">9 col</li>
42
+ <li class="grid-15-24">15 col</li>
43
+ </ul>
44
+ <ul>
45
+ <li class="grid-10-24">10 col</li>
46
+ <li class="grid-14-24">14 col</li>
47
+ </ul>
48
+ <ul>
49
+ <li class="grid-11-24">11 col</li>
50
+ <li class="grid-13-24">13 col</li>
51
+ </ul>
52
+ <ul>
53
+ <li class="grid-12-24">12 col</li>
54
+ <li class="grid-12-24">12 col</li>
55
+ </ul>
56
+ </article>
57
+
58
+
59
+ <%= partial :"grids/grid_arguments" %>
@@ -0,0 +1,22 @@
1
+ <section id="grid_arguments">
2
+ <header class="toadstool_subheader">
3
+ <h2>grid arguments</h2>
4
+ <article>
5
+ <p>Additional arguments can be passed into the grid mixin to include <code>$grid_padding_l, $grid_padding_r, $grid_padding_tb, $grid_border, $grid_uom, $col_gutter, $grid_type, $grid_align, $grid_context</code></p>
6
+
7
+ <ul>
8
+ <li><code>$grid_padding_l</code> => adds padding LEFT, takes integer value</li>
9
+ <li><code>$grid_padding_r</code> => adds padding RIGHT, takes integer value</li>
10
+ <li><code>$grid_padding_tb</code> => adds padding TOP and BOTTOM, takes integer value</li>
11
+ <li><code>$grid_border</code> => takes integer value, adds border using <code>$border_color</code> and <code>$standard_border_style</code> configs found in <code>_config.scss</code>.</li>
12
+ <li><code>$border_place</code> => options are <code>left</code> and <code>right</code>. Argument will place a single border on either the left or right side of the block.</li>
13
+ <li><code>$grid_uom</code> => set to percent by default, accepts <code>em</code> as argument.</li>
14
+ <li><code>$col_gutter</code> => takes integer to adjust col gutter</li>
15
+ <li><code>$grid_type</code> => set to 12 col by default, allows for on-the-fly adjustment to grid type <b>Feature is currently inoperable</b></li>
16
+ <li><code>$grid_align</code> => takes <code>center</code> as argument</li>
17
+ <li><code>$grid_context</code> => Adjusts column widths based on nested grid context. Necessary when calcuclating with percentages</li>
18
+ </ul>
19
+ <p>Stipe uses the <code>box-size</code> CSS property, but this is not supported by IE7. By entereing values like <code>$grid_padding_l, $grid_padding_r, $grid_border</code>, Stipe will calculate a width that IE7 can use.</p>
20
+ </article>
21
+ </header>
22
+ </section>
@@ -0,0 +1,12 @@
1
+ <section id="grid_use_definition">
2
+ <header class="toadstool_subheader">
3
+ <h2>grid use definition</h2>
4
+ <article>
5
+ <p>To use grids in Toadstool, Stipe comes with some awesome Mixins for easy creation of custom grids as well as commonly used silent classes.</p>
6
+ <p>Stipe's grid system is based on the original 960.gs solution; there are concepts like columns, gutters and nesting. For the most part when framing a UI, simply extend already pre-defined <a href="http://goo.gl/W1QlA" target="_blank">silent classes</a> like <code>@extend %grid_4</code>. These pre-formatted silent classes already come with additional support for mobile devices. </p>
7
+ <p>If you require more customization of a given grid, use <code>@include grid($col_count)</code>, replacing <code>$col_count</code> with the number of colums you need. </p>
8
+ <p>For nested grids, Stipe supports 'alpha' and 'omega' concepts. For added spice, if you want to remove both margins, 'alphaomega' works too. Example <code>@include grid(5, alpha)</code>.</p>
9
+ <p>Since Stipe's grid is pure math, you can pass in floating point numbers as well. Example, using <code>@include grid(12, alphaomega)</code> will remove the margin on the outside of the grid, but will not be 100% across. Increasing the value fractionally (<code>@include grid(12.25, alphaomega)</code>) will address the missing space. </p>
10
+ </article>
11
+ </header>
12
+ </section>
data/views/layout.erb ADDED
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+
7
+ <title>Toadstool - Sinatra based styleguide bootstrap</title>
8
+
9
+ <meta http-equiv="Content-Language" content="en-us" />
10
+ <meta name="description" content="">
11
+ <meta name="keywords" content="">
12
+ <meta name="author" content="">
13
+
14
+ <!-- Mobile Viewport Fix, use at own risk -->
15
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5 maximum-scale=1.0">
16
+ <meta name="apple-mobile-web-app-capable" content="yes">
17
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
18
+
19
+ <!-- Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references -->
20
+ <link rel="shortcut icon" href="/images/favicon.ico">
21
+ <link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
22
+
23
+ <!-- CSS : implied media="screen" -->
24
+ <link rel="stylesheet" href="/stylesheets/style.css" />
25
+ <link rel="stylesheet" href="/stylesheets/toadstool.css" />
26
+
27
+ <!--[if lte IE 8]>
28
+ <link rel="stylesheet" media="all" href="/styles/ie.css"/><![endif]-->
29
+
30
+ <script src="http://code.jquery.com/jquery-latest.js"></script>
31
+ <script src="http://modernizr.com/downloads/modernizr.js"></script>
32
+ <script src="/javascripts/modernizr.mods.js"></script>
33
+ <script src="/javascripts/prettify.js"></script>
34
+ <script src="/javascripts/application.js"></script>
35
+
36
+ </head>
37
+
38
+ <body onload="prettyPrint()">
39
+ <section class="styleguide_main_content">
40
+ <%= partial :"shared/_main_header" %>
41
+ <%= partial :"shared/_main_nav" %>
42
+
43
+ <article class="styleguide_article">
44
+ <%= yield %>
45
+ </article>
46
+
47
+ <%= partial :"shared/_main_footer" %>
48
+ </section>
49
+ </body>
50
+
51
+
52
+
53
+ <div class="emBox">
54
+ <span class="screen-width">0</span> / <span class="screen-width-px">0</span>
55
+ </div>
56
+ </html>
57
+
58
+
File without changes
File without changes
@@ -0,0 +1,29 @@
1
+ #Build a module
2
+
3
+ One of the core concepts of Toadstool is the law of abstraction. The Achilles heel of UI dev is the lack of abstraction of code from the visual application. We have been trained over the years that content and UI has a single application and any re-work will require editing of the markup. But the latest techniques and technologies have shown us otherwise.
4
+
5
+ ##Definition a module
6
+ A module is a single UI element that serves the purpose of either delivering content and/or interaction. A module is a self-contained series of design elements and possibly UI patterns. Regardless of fixed, fluid or responsive experience, the module itself does not have a defined space. It should always take up 100% width and it's height dictated by the content continued within.
7
+
8
+ When developers subscribe to this engineering method, then the application of module to a view should never require any additional coding. The structure of the view will dictate placement via a grid system.
9
+
10
+ ##Know when you are doing it wrong
11
+ If you find yourself coding elemental and/or UI patterns within a module, this should be a smell to refactor.
12
+
13
+ ###Here is a simple example of a reusable module
14
+ ```html
15
+ <article class="information_panels">
16
+ <h2>Salvia high life sartorial</h2>
17
+ <div>
18
+ <h3>Quinoa echo park salvia high life sartorial</h3>
19
+ <p>Skateboard tattooed cliche 8-bit banh mi blog biodiesel, freegan locavore vice
20
+ wayfarers salvia keytar yr. Mustache iphone mixtape, cliche keytar vegan blog etsy
21
+ beard retro banh mi letterpress next level echo park.</p>
22
+ </div>
23
+ <div>
24
+ <h3>Quinoa echo park salvia high life sartorial</h3>
25
+ <p>Skateboard tattooed cliche 8-bit banh mi blog biodiesel, freegan locavore vice
26
+ wayfarers salvia keytar yr. Mustache iphone mixtape, cliche keytar vegan blog etsy
27
+ beard retro banh mi letterpress next level echo park.</p>
28
+ </div>
29
+ </article>
File without changes
@@ -0,0 +1,10 @@
1
+ #What is a module
2
+
3
+ In Toadstool's eyes, the module is the single most important things you can build. It is the final object that will be placed in the view to create the experience. But the module is not the starting point, but a destination.
4
+
5
+ Starting with the elemental building blocks of the UI, then depending on the size of the module you will either assemble the final module here or using a combination of elements and UI patterns will then assemble the module.
6
+
7
+ The idea behind the module is keeping your code DRY.
8
+
9
+ ##Refactoring is the KEY!
10
+ The difference between modules and UI patterns are really in the eye of the beholder. There is no clear divisional line between the two. The only assistance I can offer is ... if the module feels large and there are repeated objects within, then there is a good chance that you have an opportunity to peal out a UI pattern within that module.