jekyll_patternbot 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +12 -0
  3. data/.gitattributes +13 -0
  4. data/.gitignore +73 -0
  5. data/CHANGELOG.md +68 -0
  6. data/Gemfile +16 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +39 -0
  9. data/Rakefile +1 -0
  10. data/_config.yml +54 -0
  11. data/_data/locales/en-ca.yml +5 -0
  12. data/_includes/patternbot_icons.html +38 -0
  13. data/_includes/patternbot_pattern_brand_color_swatches.html +48 -0
  14. data/_includes/patternbot_pattern_brand_typeface.html +32 -0
  15. data/_includes/patternbot_pattern_brand_typeface_weight.html +15 -0
  16. data/_includes/patternbot_pattern_copy_script.html +22 -0
  17. data/_includes/patternbot_patternlib_pattern.html +241 -0
  18. data/_layouts/patternbot_pattern_internal.html +94 -0
  19. data/_layouts/patternbot_pattern_lib.html +214 -0
  20. data/_layouts/patternbot_pattern_user.html +27 -0
  21. data/_patterns/brand/colors.html +23 -0
  22. data/_patterns/brand/config.yml +22 -0
  23. data/_patterns/brand/logos.html +43 -0
  24. data/_patterns/brand/typefaces.html +18 -0
  25. data/_patterns/grid/config.yml +14 -0
  26. data/_patterns/grid/grid-sizes.html +47 -0
  27. data/_patterns/icons/config.yml +13 -0
  28. data/_patterns/icons/icons.html +91 -0
  29. data/_patterns/modules/config.yml +32 -0
  30. data/_patterns/modules/embed.html +23 -0
  31. data/_patterns/modules/list-groups.html +21 -0
  32. data/_patterns/modules/media-objects.html +16 -0
  33. data/_patterns/typography/config.yml +55 -0
  34. data/_patterns/typography/emphasis-and-edits.html +80 -0
  35. data/_patterns/typography/font-sizes.html +90 -0
  36. data/_patterns/typography/headings.html +31 -0
  37. data/_patterns/typography/horizontal-spacing.html +46 -0
  38. data/_patterns/typography/links.html +11 -0
  39. data/_patterns/typography/lists.html +43 -0
  40. data/_patterns/typography/quotations.html +17 -0
  41. data/_patterns/typography/size-adjustments.html +20 -0
  42. data/_patterns/typography/typesetting.html +32 -0
  43. data/_patterns/typography/vertical-spacing.html +55 -0
  44. data/_patterns/utilities/config.yml +11 -0
  45. data/_patterns/utilities/utilities.html +18 -0
  46. data/_plugins/jekyll_patternbot/config.rb +19 -0
  47. data/_plugins/jekyll_patternbot/filters/color.rb +87 -0
  48. data/_plugins/jekyll_patternbot/filters/number.rb +11 -0
  49. data/_plugins/jekyll_patternbot/filters/pattern.rb +15 -0
  50. data/_plugins/jekyll_patternbot/filters/text.rb +33 -0
  51. data/_plugins/jekyll_patternbot/finders/finder.rb +34 -0
  52. data/_plugins/jekyll_patternbot/finders/icons.rb +25 -0
  53. data/_plugins/jekyll_patternbot/finders/logos.rb +26 -0
  54. data/_plugins/jekyll_patternbot/finders/patterns.rb +69 -0
  55. data/_plugins/jekyll_patternbot/finders/sample_pages.rb +18 -0
  56. data/_plugins/jekyll_patternbot/generators/internal_patterns.rb +56 -0
  57. data/_plugins/jekyll_patternbot/generators/pattern_lib.rb +27 -0
  58. data/_plugins/jekyll_patternbot/generators/user_patterns.rb +57 -0
  59. data/_plugins/jekyll_patternbot/helpers/color.rb +26 -0
  60. data/_plugins/jekyll_patternbot/helpers/file.rb +17 -0
  61. data/_plugins/jekyll_patternbot/helpers/jekyll.rb +60 -0
  62. data/_plugins/jekyll_patternbot/helpers/pattern.rb +36 -0
  63. data/_plugins/jekyll_patternbot/hooks/pattern_lib.rb +57 -0
  64. data/_plugins/jekyll_patternbot/loggers/patternbot.rb +24 -0
  65. data/_plugins/jekyll_patternbot/parsers/css_color.rb +54 -0
  66. data/_plugins/jekyll_patternbot/parsers/css_font.rb +109 -0
  67. data/_plugins/jekyll_patternbot/parsers/css_utility.rb +27 -0
  68. data/_plugins/jekyll_patternbot/parsers/gridifier.rb +22 -0
  69. data/_plugins/jekyll_patternbot/parsers/icons.rb +27 -0
  70. data/_plugins/jekyll_patternbot/parsers/modulifier.rb +10 -0
  71. data/_plugins/jekyll_patternbot/parsers/theme.rb +39 -0
  72. data/_plugins/jekyll_patternbot/parsers/typografier.rb +21 -0
  73. data/_plugins/jekyll_patternbot/parsers/web_dev_tool.rb +41 -0
  74. data/_plugins/jekyll_patternbot/processors/brand.rb +22 -0
  75. data/_plugins/jekyll_patternbot/processors/modules.rb +35 -0
  76. data/_plugins/jekyll_patternbot/tags/pattern.rb +19 -0
  77. data/_plugins/jekyll_patternbot/tags/pattern_css.rb +27 -0
  78. data/_plugins/jekyll_patternbot/tags/pattern_js.rb +27 -0
  79. data/_plugins/jekyll_patternbot.rb +55 -0
  80. data/_sass/.gitignore +0 -0
  81. data/assets/.gitignore +0 -0
  82. data/assets/_patternbot/common/common.css +223 -0
  83. data/assets/_patternbot/common/common.min.css +1 -0
  84. data/assets/_patternbot/common/gridifier.css +1175 -0
  85. data/assets/_patternbot/common/gridifier.min.css +1 -0
  86. data/assets/_patternbot/common/modulifier.css +539 -0
  87. data/assets/_patternbot/common/modulifier.min.css +1 -0
  88. data/assets/_patternbot/common/typografier.css +1787 -0
  89. data/assets/_patternbot/common/typografier.min.css +1 -0
  90. data/assets/_patternbot/images/placeholder-16by9.svg +1 -0
  91. data/assets/_patternbot/images/placeholder-1by1.svg +1 -0
  92. data/assets/_patternbot/patterns/brand/brand.css +79 -0
  93. data/assets/_patternbot/patterns/brand/brand.min.css +1 -0
  94. data/assets/_patternbot/patterns/grid/grid.css +27 -0
  95. data/assets/_patternbot/patterns/grid/grid.min.css +1 -0
  96. data/assets/_patternbot/patterns/icons/icons.css +41 -0
  97. data/assets/_patternbot/patterns/icons/icons.min.css +1 -0
  98. data/assets/_patternbot/patterns/modules/modules.css +4 -0
  99. data/assets/_patternbot/patterns/modules/modules.min.css +1 -0
  100. data/assets/_patternbot/patterns/typography/typography.css +11 -0
  101. data/assets/_patternbot/patterns/typography/typography.min.css +1 -0
  102. data/assets/_patternbot/patterns/utilities/utilities.css +4 -0
  103. data/assets/_patternbot/patterns/utilities/utilities.min.css +1 -0
  104. data/assets/_patternbot/ui/gridifier.css +1175 -0
  105. data/assets/_patternbot/ui/main.css +513 -0
  106. data/assets/_patternbot/ui/main.js +301 -0
  107. data/assets/_patternbot/ui/modulifier.css +725 -0
  108. data/assets/_patternbot/ui/pattern-lib.css +4 -0
  109. data/assets/_patternbot/ui/pattern-lib.min.css +1 -0
  110. data/assets/_patternbot/ui/pattern-lib.min.js +1 -0
  111. data/assets/_patternbot/ui/typografier.css +1787 -0
  112. data/jekyll_patternbot.gemspec +34 -0
  113. data/package.json +35 -0
  114. data/version.rb +3 -0
  115. data/yarn.lock +2783 -0
  116. metadata +312 -0
@@ -0,0 +1,15 @@
1
+ <ul class="patternbot-code-details patternbot-list-group list-group-inline micro push-1-2 pad-t">
2
+ <li><code>font-weight: {{include.weight.weight}};</code></li>
3
+ <li><code>font-style: {{include.style}};</code></li>
4
+ </ul>
5
+ <div class="grid grid-middle" style="font-weight:{{include.weight.weight}};">
6
+ <div class="patternbot-type-sample-large unit [ xs-1 m-1-5 ]">
7
+ <p class="yotta push-0" style="font-family:var({{include.font_var}});">Aa Gg<br>Ss Zz</p>
8
+ </div>
9
+ <div class="unit [ xs-1 m-4-5 ]">
10
+ <p class="giga push-0" style="font-family:var({{include.font_var}});">a b c d e f g h i j k l m n o p q r s t u v w x y z</p>
11
+ <p class="giga push-0" style="font-family:var({{include.font_var}});">A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</p>
12
+ <p class="tera push-0" style="font-family:var({{include.font_var}});">1 2 3 4 5 6 7 8 9 0</p>
13
+ <p class="exa push-0" style="font-family:var({{include.font_var}});">&amp; % $ # @ ! * ? , . ; — – - ( ) “ ” ‘ ’ « »</p>
14
+ </div>
15
+ </div>
@@ -0,0 +1,22 @@
1
+ <script>
2
+ /*
3
+ ================================================
4
+ COPY BUTTONS
5
+ ================================================
6
+ */
7
+ (function () {
8
+ 'use strict';
9
+
10
+ var copyBtns = document.querySelectorAll('.pattern-copy-btn');
11
+
12
+ if (!copyBtns) return;
13
+
14
+ if (ClipboardJS.isSupported()) {
15
+ [].forEach.call(copyBtns, function (btn) {
16
+ btn.removeAttribute('hidden');
17
+ });
18
+
19
+ new ClipboardJS('.pattern-copy-btn');
20
+ }
21
+ }());
22
+ </script>
@@ -0,0 +1,241 @@
1
+ {% assign show_sub_headings = false %}
2
+ {% assign total_patterns = include.pattern.config.patterns | size %}
3
+ {% if total_patterns > 1 %}
4
+ {% assign show_sub_headings = true %}
5
+ {% endif %}
6
+
7
+ {% assign first_pattern_name = false %}
8
+ {% assign first_pattern = false %}
9
+ {% for pattern in include.pattern.config.patterns %}
10
+ {% assign first_pattern_name = pattern[0] %}
11
+ {% assign first_pattern = pattern[1] %}
12
+ {% break %}
13
+ {% endfor %}
14
+
15
+ {% assign first_pattern_has_bg = false %}
16
+ {% assign first_pattern_bg = false %}
17
+ {% if first_pattern.background %}
18
+ {% assign first_pattern_has_bg = true %}
19
+ {% assign first_pattern_bg = first_pattern.background %}
20
+ {% endif %}
21
+
22
+ {% assign internal_first_pattern_has_bg = first_pattern_name | has_pattern_background_color:include.pattern.name %}
23
+ {% if internal_first_pattern_has_bg %}
24
+ {% assign first_pattern_has_bg = true %}
25
+ {% assign first_pattern_bg = first_pattern_name | get_pattern_background_color:include.pattern.name %}
26
+ {% endif %}
27
+
28
+ {% if first_pattern_has_bg %}
29
+ <style>
30
+ #{{include.pattern.name}},
31
+ #{{include.pattern.name}} * {
32
+ --color-patternbot-interface: {{first_pattern_bg | get_interface_color | as_rgb_digit}};
33
+ --color-patternbot-interface-opposite: {{first_pattern_bg | get_interface_color_opposite | as_rgb_digit}};
34
+ --color-patternbot-interface-background: {{first_pattern_bg | as_hex}};
35
+ --color-patternbot-interface-accent: {{first_pattern_bg | get_interface_color | as_hex}};
36
+ }
37
+
38
+ #{{include.pattern.name}}.patternbot-override-color,
39
+ #{{include.pattern.name}} .patternbot-override-color {
40
+ color: {{first_pattern_bg | get_interface_color | as_hex}};
41
+ background-color: var(--color-patternbot-interface-background);
42
+ }
43
+ </style>
44
+ {% endif %}
45
+
46
+ <section class="pattern {% unless show_sub_headings %}patternbot-override-color{% endunless %}" id="{{include.pattern.name}}" role="tabpanel" hidden aria-hidden="true">
47
+ <div class="pattern-toolbar gutter pad-t-1-4 pad-b-1-8 relative">
48
+ <h2 class="pattern-name exa push-1-4">{% if include.pattern.config.title %}{{include.pattern.config.title}}{% else %}{{include.pattern.name | as_title}}{% endif %}</h2>
49
+ {% if show_sub_headings %}
50
+ <nav class="pattern-nav">
51
+ <ol class="list-group-inline push-1-4 pad-b-1-4">
52
+ {% for pattern in include.pattern.config.patterns %}
53
+ <li><a href="#{{include.pattern.name}}--{{pattern[0]}}">{% if pattern[1].title %}{{pattern[1].title}}{% else %}{{pattern[0] | as_title}}{% endif %}</a></li>
54
+ {% endfor %}
55
+ </ol>
56
+ </nav>
57
+ {% endif %}
58
+ {% unless show_sub_headings %}
59
+ <ul class="list-group-inline gutter absolute pin-cr">
60
+ {% if first_pattern._code != false %}
61
+ <li>
62
+ <button class="center-contents-vertical pattern-tool-btn pattern-code-btn" title="Show code" aria-label="Show code" aria-pressed="false" aria-controls="{{include.pattern.name}}-{{first_pattern_name}}-code-sample">
63
+ <i class="icon i-18">
64
+ <svg><use xlink:href="#icon-code"></use></svg>
65
+ </i>
66
+ </button>
67
+ </li>
68
+ {% endif %}
69
+ {% if first_pattern._popout_button != false %}
70
+ <li>
71
+ <a class="center-contents-vertical pattern-tool-btn pattern-pop-btn" href="/{{page._PatternbotConfig.patternbot.destination}}/patterns/{{include.pattern.name}}/{{first_pattern_name | normalize_filename}}" target="_blank" title="Open pattern in a new tab" aria-label="Open pattern in a new tab">
72
+ <i class="icon i-18">
73
+ <svg><use xlink:href="#icon-pop-out"></use></svg>
74
+ </i>
75
+ </a>
76
+ </li>
77
+ {% endif %}
78
+ </ul>
79
+ {% endunless %}
80
+ </div>
81
+
82
+ {% if include.pattern.config.description %}
83
+ <div class="pattern-desc milli island {% unless show_sub_headings %}patternbot-override-color{% endunless %}">
84
+ <div class="max-length">{{include.pattern.config.description | markdownify | sub_web_dev_tool_urls}}</div>
85
+ </div>
86
+ {% else %}
87
+ {% if first_pattern.description %}
88
+ <div class="pattern-desc milli island {% unless show_sub_headings %}patternbot-override-color{% endunless %}">
89
+ <div class="max-length">{{first_pattern.description | markdownify | sub_web_dev_tool_urls}}</div>
90
+ </div>
91
+ {% endif %}
92
+ {% endif %}
93
+
94
+ {% for pattern in include.pattern.config.patterns %}
95
+ {% assign pattern_name = pattern[0] %}
96
+ {% assign pattern_data = pattern[1] %}
97
+ {% assign pattern_has_bg = false %}
98
+ {% assign pattern_bg = false %}
99
+ {% if pattern_data.background %}
100
+ {% assign pattern_has_bg = true %}
101
+ {% assign pattern_bg = pattern_data.background %}
102
+ {% endif %}
103
+ {% assign internal_pattern_has_bg = pattern_name | has_pattern_background_color: include.pattern.name %}
104
+ {% if internal_pattern_has_bg %}
105
+ {% assign pattern_has_bg = true %}
106
+ {% assign pattern_bg = pattern_name | get_pattern_background_color: include.pattern.name %}
107
+ {% endif %}
108
+ {% if pattern_has_bg %}
109
+ <style>
110
+ #{{include.pattern.name}}--{{pattern_name}},
111
+ #{{include.pattern.name}}--{{pattern_name}} * {
112
+ --color-patternbot-interface: {{pattern_bg | get_interface_color | as_rgb_digit}};
113
+ --color-patternbot-interface-opposite: {{pattern_bg | get_interface_color_opposite | as_rgb_digit}};
114
+ --color-patternbot-interface-background: {{pattern_bg | as_hex}};
115
+ --color-patternbot-interface-accent: {{pattern_bg | get_interface_color | as_hex}};
116
+ }
117
+
118
+ #{{include.pattern.name}}--{{pattern_name}}.patternbot-override-color,
119
+ #{{include.pattern.name}}--{{pattern_name}} .patternbot-override-color {
120
+ color: {{pattern_bg | get_interface_color | as_hex}};
121
+ background-color: var(--color-patternbot-interface-background);
122
+ }
123
+ </style>
124
+ {% endif %}
125
+ <div class="pattern-details {% if pattern_has_bg %}patternbot-override-color{% endif %}" id="{{include.pattern.name}}--{{pattern_name}}">
126
+ {% if show_sub_headings %}
127
+ <div class="pattern-toolbar pattern-toolbar-inner relative gutter pad-t-1-4 pad-b-1-4">
128
+ <h3 class="pattern-name tera push-1-8">{% if pattern_data.title %}{{pattern_data.title}}{% else %}{{pattern_name | as_title}}{% endif %}</h3>
129
+ <ul class="list-group-inline gutter absolute pin-cr">
130
+ {% if pattern_data._code != false %}
131
+ <li>
132
+ <button class="center-contents-vertical pattern-tool-btn pattern-code-btn" title="Show code" aria-label="Show code" aria-pressed="false" aria-controls="{{include.pattern.name}}-{{pattern_name}}-code-sample">
133
+ <i class="icon i-18">
134
+ <svg><use xlink:href="#icon-code"></use></svg>
135
+ </i>
136
+ </button>
137
+ </li>
138
+ {% endif %}
139
+ {% if pattern_data._popout_button != false %}
140
+ <li>
141
+ <a class="btn center-contents-vertical pattern-tool-btn pattern-pop-btn" href="/{{page._PatternbotConfig.patternbot.destination}}/patterns/{{include.pattern.name}}/{{pattern_name | normalize_filename}}" target="_blank" title="Open pattern in a new tab" aria-label="Open pattern in a new tab">
142
+ <i class="icon i-18">
143
+ <svg><use xlink:href="#icon-pop-out"></use></svg>
144
+ </i>
145
+ </a>
146
+ </li>
147
+ {% endif %}
148
+ </ul>
149
+ </div>
150
+ {% if pattern_data.description %}
151
+ <div class="pattern-desc milli island">
152
+ <div class="max-length">{{pattern_data.description | markdownify | sub_web_dev_tool_urls}}</div>
153
+ </div>
154
+ {% endif %}
155
+ {% endif %}
156
+
157
+ <div class="pattern-examples pad-t-1-2 pad-b-1-2">
158
+ <div class="gutter{% if pattern_data._resizable != false %}-2{% endif %} pad-t-1-2 pad-b-1-2">
159
+ <div class="resizeable-pattern relative" style="{% if pattern_data.width %}width:{{pattern_data.width}}px{% endif %}">
160
+ <i class="icon i-32 patternbot-iframe-loading-gears absolute pin-c"><svg><use xlink:href="#patternbot-iframe-loading-gears"></use></svg></i>
161
+ <iframe data-src="/{{page._PatternbotConfig.patternbot.destination}}/patterns/{{include.pattern.name}}/{{pattern_name | normalize_filename}}" scrolling="no" data-inject-css="{% if pattern_data.padding %}body { padding:{{pattern_data.padding}}; }{% endif %}" {% if pattern_data.height %}data-min-height="{{pattern_data.height}}"{% endif %}></iframe>
162
+ {% if pattern_data._resizable != false %}
163
+ <div class="resizeable-pattern-length">
164
+ <div class="resize-handle resize-handle-left">
165
+ <i class="icon i-18">
166
+ <svg><use xlink:href="#icon-resize-handle"></use></svg>
167
+ </i>
168
+ </div>
169
+ <div class="resize-handle resize-handle-right">
170
+ <i class="icon i-18">
171
+ <svg><use xlink:href="#icon-resize-handle"></use></svg>
172
+ </i>
173
+ </div>
174
+ </div>
175
+ {% endif %}
176
+ </div>
177
+ </div>
178
+
179
+ {% if pattern_data._code != false %}
180
+ <div class="pattern-code-wrap gutter pad-t-1-2 pad-b-1-2" hidden aria-hidden="true" id="{{include.pattern.name}}-{{pattern_name}}-code-sample" tabindex="-1">
181
+ <div class="pattern-code relative milli island-1-2">
182
+ <button class="center-contents-vertical pattern-tool-btn pattern-copy-btn absolute pin-tr" title="Copy code" aria-label="Copy code" data-clipboard-target="#{{include.pattern.name}}-{{pattern_name}}-code-sample-copy-chunk" hidden>
183
+ <i class="icon i-18">
184
+ <svg><use xlink:href="#icon-copy"></use></svg>
185
+ </i>
186
+ </button>
187
+ <code><pre id="{{include.pattern.name}}-{{pattern_name}}-code-sample-copy-chunk">{{pattern_name | pattern_code:include.pattern.name, pattern_data | escape}}</pre></code>
188
+ {% if pattern_data.fields %}
189
+ <div class="pad-t-1-2">
190
+ <hr class="pattern-code-sep push-1-2">
191
+ <table class="pattern-code-fields nano push-0">
192
+ <thead>
193
+ <tr>
194
+ <th class="not-bold pico" scope="col" colspan="7">Field name</th>
195
+ <th class="not-bold pico" scope="col" colspan="6">Data type</th>
196
+ <th class="not-bold pico" scope="col" colspan="11">Example</th>
197
+ </tr>
198
+ </thead>
199
+ <tbody>
200
+ {% for field in pattern_data.fields %}
201
+ <tr>
202
+ <th scope="row" colspan="7">
203
+ <code class="pattern-code-field valign-middle {% if field.required == false %}not-bold{% endif %}">{{field.name | escape}}</code>
204
+ {% unless field.required == false %}<span class="ib pico not-bold italic valign-middle">required</span>{% endunless %}
205
+ </th>
206
+ <td scope="col" colspan="6">
207
+ <code class="pattern-code-field">
208
+ {% if field.data %}
209
+ object
210
+ {% else %}
211
+ {{field.type | escape}}
212
+ {% endif %}
213
+ </code>
214
+ </td>
215
+ <td scope="col" colspan="11">
216
+ {% if field.data %}
217
+ <code class="pattern-code-field">{{field.data.type | escape}}</code>
218
+ {% else %}
219
+ {% if field.classes %}
220
+ {% for class in field.classes %}
221
+ <code class="pattern-code-field">{{class | escape}}</code>
222
+ {% endfor %}
223
+ {% else %}
224
+ {% if field.example %}<span>"{{field.example | escape}}"</span>{% endif %}
225
+ {% endif %}
226
+ {% endif %}
227
+ </td>
228
+ </tr>
229
+ {% endfor %}
230
+ </tbody>
231
+ </table>
232
+ </div>
233
+ {% endif %}
234
+ </div>
235
+ </div>
236
+ {% endif %}
237
+ </div>
238
+ </div>
239
+ {% endfor %}
240
+
241
+ </section>
@@ -0,0 +1,94 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-ca">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>{{page.title}}</title>
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
7
+ {% if page._pattern_data.config._user_modulifier %}
8
+ <link href="{{site.baseurl}}/{{page._PatternbotConfig.patternbot.css.source}}/{{page._PatternbotConfig.patternbot.css.modulifier}}?v={{site.time | date:'%s'}}" rel="stylesheet">
9
+ {% else %}
10
+ <link href="{{site.baseurl}}/assets/_patternbot/common/modulifier.min.css?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
11
+ {% endif %}
12
+ {% if page._pattern_data.config._user_gridifier %}
13
+ <link href="{{site.baseurl}}/{{page._PatternbotConfig.patternbot.css.source}}/{{page._PatternbotConfig.patternbot.css.gridifier}}?v={{site.time | date:'%s'}}" rel="stylesheet">
14
+ {% else %}
15
+ <link href="{{site.baseurl}}/assets/_patternbot/common/gridifier.min.css?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
16
+ {% endif %}
17
+ {% if page._pattern_data.config._user_typografier %}
18
+ <link href="{{site.baseurl}}/{{page._PatternbotConfig.patternbot.css.source}}/{{page._PatternbotConfig.patternbot.css.typografier}}?v={{site.time | date:'%s'}}" rel="stylesheet">
19
+ {% else %}
20
+ <link href="{{site.baseurl}}/assets/_patternbot/common/typografier.min.css?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
21
+ {% endif %}
22
+ {% if page._PatternbotData.css.theme %}
23
+ <link href="{{site.baseurl}}/{{page._PatternbotConfig.patternbot.css.source}}/{{page._PatternbotConfig.patternbot.css.theme}}?v={{site.time | date:'%s'}}" rel="stylesheet">
24
+ {% endif %}
25
+ <link href="{{site.baseurl}}/assets/_patternbot/common/common.min.css?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
26
+ {% for css in page._pattern_data.config._extra_css %}
27
+ <link href="{{site.baseurl}}/assets/_patternbot/patterns/{{css}}?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
28
+ {% endfor %}
29
+ <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700" rel="stylesheet">
30
+ <style>
31
+ {% assign has_bg = page._subpattern | has_pattern_background_color: page._pattern %}
32
+ {% if has_bg %}
33
+ :root {
34
+ --color-patternbot-interface: {{page._subpattern | get_pattern_interface_color: page._pattern | as_rgb_digit}};
35
+ --color-patternbot-interface-opposite: {{page._subpattern | get_pattern_interface_color_opposite: page._pattern | as_rgb_digit}};
36
+ --color-patternbot-interface-background: {{page._subpattern | get_pattern_background_color: page._pattern | as_hex}};
37
+ --color-patternbot-interface-accent: {{page._subpattern | get_pattern_interface_color: page._pattern | as_hex}};
38
+ }
39
+ html {
40
+ color: {{page._subpattern | get_pattern_interface_color: page._pattern}};
41
+ }
42
+ {% else %}
43
+ :root {
44
+ --color-patternbot-interface: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color | as_rgb_digit}};
45
+ --color-patternbot-interface-opposite: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color_opposite | as_rgb_digit}};
46
+ --color-patternbot-interface-background: {{page._PatternbotConfig.patternbot.colors.background | as_hex}};
47
+ {% if page._PatternbotConfig.patternbot.colors.accent %}
48
+ --color-patternbot-interface-accent: {{page._PatternbotConfig.patternbot.colors.accent | as_hex}};
49
+ {% else %}
50
+ {% if page._PatternbotData.css.theme.colors.primary %}
51
+ --color-patternbot-interface-accent: {{page._PatternbotData.css.theme.colors.primary[0].hex}};
52
+ {% else %}
53
+ --color-patternbot-interface-accent: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color | as_hex}};
54
+ {% endif %}
55
+ {% endif %}
56
+ }
57
+ html {
58
+ color: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color}};
59
+ }
60
+ {% endif %}
61
+ {% if page._PatternbotData.css.theme.fonts.primary.css_name %}
62
+ :root {
63
+ --font-patternbot-primary: {{page._PatternbotData.css.theme.fonts.primary.css_name}}, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
64
+ }
65
+ html {
66
+ font-family: {{page._PatternbotData.css.theme.fonts.primary.css_name}}, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
67
+ }
68
+ {% endif %}
69
+ {% if page._PatternbotData.css.theme.fonts.secondary.css_name %}
70
+ :root {
71
+ --font-patternbot-secondary: {{page._PatternbotData.css.theme.fonts.secondary.css_name}}, var(--font-patternbot-primary), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
72
+ }
73
+ {% endif %}
74
+ </style>
75
+
76
+
77
+ {% if page._PatternbotConfig.patternbot.font_url %}
78
+ <link href="{{page._PatternbotConfig.patternbot.font_url}}" rel="stylesheet">
79
+ {% endif %}
80
+ </head>
81
+ <body>
82
+
83
+ {% include patternbot_icons.html %}
84
+
85
+ <div id="patternbot-pattern-include">
86
+ {{content}}
87
+ </div>
88
+
89
+ <script src="{{site.baseurl}}/assets/_patternbot/vendor/iframe-resizer-content-window.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
90
+ <script src="{{site.baseurl}}/assets/_patternbot/vendor/clipboard.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
91
+ {% include patternbot_pattern_copy_script.html %}
92
+
93
+ </body>
94
+ </html>
@@ -0,0 +1,214 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-ca">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>{% if page._PatternbotConfig.patternbot.title %}{{page._PatternbotConfig.patternbot.title}} · {% endif %}{{page._PatternbotLocale.patternlib.title}}</title>
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
7
+ <meta name="description" content="{% if page._PatternbotConfig.patternbot.title %}{{page._PatternbotConfig.patternbot.title}} {% endif %}{{page._PatternbotLocale.patternlib.title}} — {% if page._PatternbotConfig.patternbot.description %}{{page._PatternbotConfig.patternbot.description | strip | strip_newlines}}{% else %}{{page._PatternbotLocale.patternlib.description | strip | strip_newlines}}{% endif %}">
8
+ <meta name="generator" content="jekyll_patternbot/{{page._PatternbotConfig.patternbot.version}}">
9
+ <link href="{{site.baseurl}}/assets/_patternbot/ui/pattern-lib.min.css?v={{page._PatternbotConfig.patternbot.version}}" rel="stylesheet">
10
+ <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700" rel="stylesheet">
11
+ <style>
12
+ :root {
13
+ --color-patternbot-interface: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color | as_rgb_digit}};
14
+ --color-patternbot-interface-opposite: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color_opposite | as_rgb_digit}};
15
+ --color-patternbot-interface-background: {{page._PatternbotConfig.patternbot.colors.background | as_hex}};
16
+ {% if page._PatternbotConfig.patternbot.colors.accent %}
17
+ --color-patternbot-interface-accent: {{page._PatternbotConfig.patternbot.colors.accent | as_hex}};
18
+ {% else %}
19
+ {% if page._PatternbotData.css.theme.colors.primary %}
20
+ --color-patternbot-interface-accent: {{page._PatternbotData.css.theme.colors.primary[0].hex}};
21
+ {% else %}
22
+ --color-patternbot-interface-accent: {{page._PatternbotConfig.patternbot.colors.background | get_interface_color | as_hex}};
23
+ {% endif %}
24
+ {% endif %}
25
+ {% if page._PatternbotData.css.theme.fonts.primary.css_name %}
26
+ --font-patternbot-primary: {{page._PatternbotData.css.theme.fonts.primary.css_name}}, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
27
+ {% endif %}
28
+ {% if page._PatternbotData.css.theme.fonts.secondary.css_name %}
29
+ --font-patternbot-secondary: {{page._PatternbotData.css.theme.fonts.secondary.css_name}}, var(--font-patternbot-primary), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
30
+ {% endif %}
31
+ }
32
+
33
+ {% if page._PatternbotData.css.theme.fonts.primary %}
34
+ html {
35
+ font-family: {{page._PatternbotData.css.theme.fonts.primary.css_name}}, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
36
+ }
37
+ {% endif %}
38
+
39
+ body {
40
+ background-color: var(--color-patternbot-interface-background);
41
+ }
42
+ </style>
43
+ {% if page._PatternbotConfig.patternbot.font_url %}
44
+ <link href="{{page._PatternbotConfig.patternbot.font_url}}" rel="stylesheet">
45
+ {% endif %}
46
+ </head>
47
+ <body>
48
+
49
+ {% include patternbot_icons.html %}
50
+
51
+ <div class="wrapper">
52
+
53
+ <header class="masthead-s">
54
+ <button class="nav-btn" aria-controls="nav" aria-expanded="false" aria-label="Open nav">
55
+ <svg class="nav-icon-open"><use xlink:href="#nav-icon"></use></svg>
56
+ <svg class="nav-icon-close"><use xlink:href="#nav-icon-close"></use></svg>
57
+ </button>
58
+ <h1 class="masthead-title kilo pad-t-1-8 pad-b-1-8 push-0">
59
+ {% if page._PatternbotConfig.patternbot.title %}
60
+ {{page._PatternbotConfig.patternbot.title}}
61
+ <span class="block normal milli">{{page._PatternbotLocale.patternlib.title}}</span>
62
+ {% else %}
63
+ {{page._PatternbotLocale.patternlib.title}}
64
+ {% endif %}
65
+ </h1>
66
+ </header>
67
+
68
+ <header class="masthead-m" aria-hidden="true" id="patternbot-nav">
69
+ <h1 class="masthead-title tera gutter pad-t pad-b push-0">
70
+ {% if page._PatternbotConfig.patternbot.title %}
71
+ {{page._PatternbotConfig.patternbot.title}}
72
+ <span class="block normal mega pad-t-1-4">{{page._PatternbotLocale.patternlib.title}}</span>
73
+ {% else %}
74
+ {{page._PatternbotLocale.patternlib.title}}
75
+ {% endif %}
76
+ </h1>
77
+ <hr>
78
+ <h2 class="italic kilo normal gutter push-1-2">Patterns</h2>
79
+ <nav class="nav mega">
80
+ <ul class="list-group" role="tablist">
81
+ <li role="presentation">
82
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="brand" href="#brand">
83
+ <div class="relative">
84
+ <span>Brand</span>
85
+ <i class="icon i-18 absolute pin-cr">
86
+ <svg><use xlink:href="#icon-active"></use></svg>
87
+ </i>
88
+ </div>
89
+ </a>
90
+ </li>
91
+ {% if page._PatternbotData.css.typografier contains 'url' %}
92
+ <li role="presentation">
93
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="typography" href="#typography">
94
+ <div class="relative">
95
+ <span>Typography</span>
96
+ <i class="icon i-18 absolute pin-cr">
97
+ <svg><use xlink:href="#icon-active"></use></svg>
98
+ </i>
99
+ </div>
100
+ </a>
101
+ </li>
102
+ {% endif %}
103
+ {% if page._PatternbotData.css.gridifier contains 'url' %}
104
+ <li role="presentation">
105
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="grid" href="#grid">
106
+ <div class="relative">
107
+ <span>Grid</span>
108
+ <i class="icon i-18 absolute pin-cr">
109
+ <svg><use xlink:href="#icon-active"></use></svg>
110
+ </i>
111
+ </div>
112
+ </a>
113
+ </li>
114
+ {% endif %}
115
+ {% if page._PatternbotData.css.modulifier contains 'url' %}
116
+ <li role="presentation">
117
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="modules" href="#modules">
118
+ <div class="relative">
119
+ <span>Modules</span>
120
+ <i class="icon i-18 absolute pin-cr">
121
+ <svg><use xlink:href="#icon-active"></use></svg>
122
+ </i>
123
+ </div>
124
+ </a>
125
+ </li>
126
+ {% endif %}
127
+ {% if page._PatternbotData.css.theme.utilities %}
128
+ <li role="presentation">
129
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="utilities" href="#utilities">
130
+ <div class="relative">
131
+ <span>Utilities</span>
132
+ <i class="icon i-18 absolute pin-cr">
133
+ <svg><use xlink:href="#icon-active"></use></svg>
134
+ </i>
135
+ </div>
136
+ </a>
137
+ </li>
138
+ {% endif %}
139
+ {% unless page._PatternbotData.icons == empty %}
140
+ <li role="presentation">
141
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="icons" href="#icons">
142
+ <div class="relative">
143
+ <span>Icons</span>
144
+ <i class="icon i-18 absolute pin-cr">
145
+ <svg><use xlink:href="#icon-active"></use></svg>
146
+ </i>
147
+ </div>
148
+ </a>
149
+ </li>
150
+ {% endunless %}
151
+ {% for pattern in page._PatternbotData.patterns.user %}
152
+ {% assign pattern_data = pattern[1] %}
153
+ {% unless pattern.config.hide_nav %}
154
+ <li role="presentation">
155
+ <a class="gutter pad-t-1-4 pad-b-1-4 block" role="tab" aria-controls="{{pattern_data.name}}" href="#{{pattern_data.name}}">
156
+ <div class="relative">
157
+ <span>{% if pattern_data.config.title %}{{pattern_data.config.title}}{% else %}{{pattern[0] | as_title}}{% endif %}</span>
158
+ <i class="icon i-18 absolute pin-cr">
159
+ <svg><use xlink:href="#icon-active"></use></svg>
160
+ </i>
161
+ </div>
162
+ </a>
163
+ </li>
164
+ {% endunless %}
165
+ {% endfor %}
166
+ <li class="pad-t-1-2" role="presentation">
167
+ <button class="nav-show-all gutter pad-t-1-4 pad-b-1-4 block kilo" id="patternbot-nav-show-all" aria-pressed="false" title="Show all patterns" aria-label="Show all patterns">
168
+ <span class="nav-show-all-wrap relative block">Show all</span>
169
+ </button>
170
+ </li>
171
+ </ul>
172
+ </nav>
173
+ {% if page._PatternbotData.pages %}
174
+ <hr>
175
+ <h2 class="italic kilo normal gutter push-1-2">Sample pages</h2>
176
+ <nav class="nav mega">
177
+ <ul class="list-group">
178
+ {% for expage in page._PatternbotData.pages %}
179
+ <li>
180
+ <a class="gutter pad-t-1-4 pad-b-1-4 block page-pop" href="{{site.baseurl}}/{{page._PatternbotConfig.patternbot.sample_pages.source}}/{{expage | normalize_filename}}" target="_blank">
181
+ <div class="relative">
182
+ <span>{{expage | replace:'.html', '' | as_title}}</span>
183
+ <i class="icon i-18 absolute pin-cr">
184
+ <svg><use xlink:href="#icon-pop-out"></use></svg>
185
+ </i>
186
+ </div>
187
+ </a>
188
+ </li>
189
+ {% endfor %}
190
+ </ul>
191
+ </nav>
192
+ {% endif %}
193
+ </header>
194
+
195
+ <main class="main">
196
+ {% for pattern in page._PatternbotData.patterns.internal %}
197
+ {% assign pattern_data=pattern[1] %}
198
+ {% include patternbot_patternlib_pattern.html pattern=pattern_data %}
199
+ {% endfor %}
200
+ {% for pattern in page._PatternbotData.patterns.user %}
201
+ {% assign pattern_data=pattern[1] %}
202
+ {% include patternbot_patternlib_pattern.html pattern=pattern_data %}
203
+ {% endfor %}
204
+ </main>
205
+
206
+ </div>
207
+
208
+ <script src="{{site.baseurl}}/assets/_patternbot/vendor/iframe-resizer.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
209
+ <script src="{{site.baseurl}}/assets/_patternbot/vendor/interact.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
210
+ <script src="{{site.baseurl}}/assets/_patternbot/vendor/clipboard.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
211
+ {% include patternbot_pattern_copy_script.html %}
212
+ <script src="{{site.baseurl}}/assets/_patternbot/ui/pattern-lib.min.js?v={{page._PatternbotConfig.patternbot.version}}"></script>
213
+ </body>
214
+ </html>