jekyll-theme-mdui 0.1.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37823d72bb0e12190af9bb7fee9285daeff95aa7
4
- data.tar.gz: bd56fa645ca7589344d837c411480847d569ecf0
3
+ metadata.gz: 62f035c4acfe1721d2c3b36b1fe38379d9840e2b
4
+ data.tar.gz: 8056e5c007bba4b39d9023d5a26f189f02214a33
5
5
  SHA512:
6
- metadata.gz: 6dc4dac37916ee769ff5660577e0e55147d82626305f687d182c7e918a8865def8095d1e7425c5e609522b6de8e4544bf8b815685c14e27095303871b568636f
7
- data.tar.gz: 17159d657f5a7fc3abdcdca07f359dd071414e45072bbc6785f5561c9d9be52078ba70e2af244b4a6e0e8a2a27823f45e598d2ce0d0d705f093e24caef0c401d
6
+ metadata.gz: 29b083f7bba618039bfa30e5ad8c3400a600e1ca7a3a81a9a8093dd7e98c7daa7efa7636f30b510dc21e680b2ed32d6663958343263e3f686d35efe10dfc1118
7
+ data.tar.gz: 06c729a31f96fd1d7c333782c509111dc1c5e4a1933a4d1600528c2db14ac4fe7bd2a1b1ef3ce44640f10de1b891134c2b329445e00f73963a1cd9b0d4dea911
data/README.md CHANGED
@@ -4,6 +4,14 @@ A Jekyll theme based on mdui
4
4
 
5
5
  [demo](https://blog.kejun.space)
6
6
 
7
+ [![Version](https://img.shields.io/badge/version-0.1.0-green.svg?style=flat-square)]()
8
+ [![Jekyll](https://img.shields.io/badge/Jekyll-3.4+-green.svg?style=flat-square)](https://jekyllrb.com/)
9
+
10
+ [![Build Status](https://img.shields.io/travis/KeJunMao/jekyll-theme-mdui.svg?style=flat-square)](https://travis-ci.org/KeJunMao/jekyll-theme-mdui)
11
+ [![Gem](https://img.shields.io/gem/dt/jekyll-theme-mdui.svg?style=flat-square)](https://rubygems.org/gems/jekyll-theme-mdui/)
12
+
13
+ [![Author](https://img.shields.io/badge/author-KeJun-blue.svg?style=flat-square)](https://blog.kejun.space)
14
+
7
15
  ## Installation
8
16
 
9
17
  We have two ways to install themes.
@@ -88,6 +96,12 @@ gems: # paginate gem
88
96
  url: /pages/menus/search.html # path
89
97
  icon: search # icon from https://www.mdui.org/docs/material_icon
90
98
  ```
99
+ Default does not display the editor.If you want the editor to appear in the menu:
100
+ ```yml
101
+ - name: Editor # name
102
+ url: /pages/editor.html # path
103
+ icon: edit # icon from https://www.mdui.org/docs/material_icon
104
+ ```
91
105
  * sns.yml
92
106
  ```yml
93
107
  - name: bilibili # name,supported:bilibili,facebook,github,gplus,instagram,linkedin,telegram,tumblr,twitter,weibo,zhihu
@@ -190,6 +204,7 @@ If you use the first method to install, you need to download the following files
190
204
  * sw.js
191
205
  * search.json
192
206
  * feed.xml
207
+ * mainifest.json
193
208
  * _data/friends.yml
194
209
  * _data/menus.yml
195
210
  * _data/sns.yml
@@ -17,9 +17,9 @@
17
17
  <div class="mdui-col mdui-text-center" style="line-height:48px">
18
18
  Copyright ©<script>var fd=new Date;document.write("&nbsp;"+fd.getFullYear()+"&nbsp;")</script> {{site.title}}
19
19
  </div>
20
- <div class="mdui-col mdui-text-center">
21
- <div>Powered by Jekyll</div>
22
- <div>Theme-jekyll-theme-mdui</div>
20
+ <div class="mdui-col mdui-text-center mdui-typo">
21
+ <div>Powered by <a href="https://jekyllrb.com">Jekyll</a></div>
22
+ <div>Theme <a href="https://github.com/KeJunMao/jekyll-theme-mdui">jekyll-theme-mdui</a></div>
23
23
  </div>
24
24
  </div>
25
25
  </div>
data/_includes/head.html CHANGED
@@ -19,6 +19,12 @@
19
19
  <link rel="preload" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/styles/default.min.css" as="style" onload="this.rel='stylesheet'">
20
20
  <noscript><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/styles/default.min.css"></noscript>
21
21
  {% endif %}
22
+ {% if page.layout == "editor" %}
23
+ <link rel="preload" href="{{ "/assets/css/pickerdata.css" | prepend: site.baseurl }}" as="style" onload="this.rel='stylesheet'">
24
+ <noscript><link rel="stylesheet" href="{{ "/assets/css/pickerdata.css" | prepend: site.baseurl }}"></noscript>
25
+ <link rel="preload" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css" as="style" onload="this.rel='stylesheet'">
26
+ <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"></noscript>
27
+ {% endif %}
22
28
  <script>
23
29
  /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
24
30
  !function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
@@ -5,6 +5,118 @@
5
5
  {% if page.layout =='search' %}
6
6
  <script src="{{ "/assets/js/jquery.typeahead.min.js" | prepend: site.baseurl }}"></script>
7
7
  {% endif %}
8
+ {% if page.layout =='editor' %}
9
+ <script src="{{ "/assets/js/pickerdata.js" | prepend: site.baseurl }}"></script>
10
+ <script src="{{ "/assets/js/chips.js" | prepend: site.baseurl }}"></script>
11
+ <script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>
12
+ <script>
13
+ $(function(){
14
+ $('.datepicker').pickadate({
15
+ selectMonths: true,
16
+ selectYears: 15
17
+ });
18
+
19
+ $('input:radio[name="group1"]').on("click",function(){
20
+ var categories = $('input:radio[name="group1"]:checked').val();
21
+ if (categories ==="radio_custom"){
22
+
23
+ }
24
+ });
25
+ $('.chips').material_chip();
26
+ $('.chips-initial').material_chip({
27
+ data: [],
28
+ });
29
+ $('.chips-placeholder').material_chip({
30
+ placeholder: 'Enter a tag',
31
+ secondaryPlaceholder: '+Tag',
32
+ });
33
+ $("#imgurl").blur(function(){
34
+ var text = $("#imgurl").val().toLowerCase();
35
+ if (text.indexOf("jpg") >= 0 || text.indexOf("jpeg") >= 0 || text.indexOf("png") >= 0 || text.indexOf("gif") >= 0 || text.indexOf("svg") >= 0 || text.indexOf("webp") >= 0){
36
+ $("#img").attr('src',$("#imgurl").val());
37
+ }
38
+ });
39
+ var simplemde = new SimpleMDE({
40
+ autosave: {
41
+ enabled: true,
42
+ unique_id: "newposts",
43
+ }
44
+ });
45
+ function k_getDate(e,t){
46
+ var date = new Date(e);
47
+ var Y = date.getFullYear() + '-';
48
+ var M = date.getMonth()+1 + '-';
49
+ var D = date.getDate();
50
+ if(t=== true){
51
+ var h = date.getHours() + ':';
52
+ var m = date.getMinutes() + ':';
53
+ var s = date.getSeconds() + ' +0800';
54
+ return Y+M+D+' '+h+m+s;
55
+ }else{
56
+ return Y+M+D;
57
+ }
58
+ };
59
+ function k_getCategores(e){
60
+ if (e.val() == "radio_custom"){
61
+ return $("input[name='radio_custom']").val();
62
+ }else{
63
+ return e.val();
64
+ }
65
+ }
66
+ function k_getTags(e){
67
+ var tags = "";
68
+ for (x in e){
69
+ tags += e[x].tag+" ";
70
+ }
71
+ return tags;
72
+ }
73
+ function k_getFiletitle(e){
74
+ var title = e.toLowerCase().split(" ");
75
+ var newtitle = "";
76
+ for (x in title){
77
+ if (parseInt(x)+1 == title.length){
78
+ newtitle += title[x];
79
+ }else{
80
+ newtitle += title[x]+"-";
81
+ }
82
+ }
83
+ return newtitle;
84
+ }
85
+ var textFile = null,
86
+ makeTextFile = function (text) {
87
+ var data = new Blob([text], {
88
+ type: 'text/plain'
89
+ });
90
+ if (textFile !== null) {
91
+ window.URL.revokeObjectURL(textFile);
92
+ }
93
+
94
+ textFile = window.URL.createObjectURL(data);
95
+
96
+ return textFile;
97
+ };
98
+ var create = document.getElementById('create');
99
+ create.addEventListener('click', function () {
100
+ var filename,filecontent,title,date,categories,tags,img;
101
+ img = $('input[name=img]').val();
102
+ tags = k_getTags($('.chips-initial').material_chip('data'));
103
+ categories = k_getCategores($("input[name='group1']:checked"));
104
+ date = k_getDate($('input[name=date]').val(),true);
105
+ title = $('input[name=title]').val();
106
+ filecontent = "---\nlayout: post\ntitle: "+title+"\ndate: "+date+"\ncategories: "+categories+"\ntags: "+tags+"\nimg: "+img+"\n---\n"+simplemde.value();
107
+ title = k_getFiletitle(title);
108
+ filename = k_getDate($('input[name=date]').val(),false)+'-'+title+'.markdown';
109
+ $("#downloadlink").attr("download",filename);
110
+ var link = document.getElementById('downloadlink');
111
+ link.href = makeTextFile(filecontent);
112
+ link.style.display = 'block';
113
+ }, false);
114
+ $("#downloadlink").click(function(){
115
+ $(this).hide();
116
+ })
117
+ });
118
+ </script>
119
+ {% endif %}
8
120
  <script type="text/javascript">
9
121
  NProgress.configure({
10
122
  showSpinner: true
@@ -9,6 +9,8 @@ layout: compress
9
9
  {% include main.html %}
10
10
  {% include footer.html %}
11
11
  {% include script.html %}
12
+ {% if site.google_analytics != null %}
12
13
  {% include analytics.html %}
14
+ {% endif %}
13
15
  </body>
14
16
  </html>
@@ -0,0 +1,71 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="mdui-container k-editorcontainer">
6
+ <div class="k-posts-list"></div>
7
+ <h3>Title</h3>
8
+ <div class="mdui-textfield">
9
+ <input class="mdui-textfield-input" type="text" name=title maxlength="100"/>
10
+ </div>
11
+ <h3>Date</h3>
12
+ <div class="mdui-textfield">
13
+ <input class="mdui-textfield-input datepicker" name="date" type="date"/>
14
+ </div>
15
+ {% capture categories %}
16
+ {% for c in site.categories %}
17
+ {{c[0]}}
18
+ {% endfor %}
19
+ {% endcapture %}
20
+
21
+ {% assign sortedcategories = categories | split:' ' | sort %}
22
+ <h3>Categories</h3>
23
+ <div class="mdui-row-md-4">
24
+ {% for c in sortedcategories %}
25
+ <div class="mdui-col">
26
+ <label class="mdui-radio">
27
+ <input type="radio" value="{{c}}" name="group1"/>
28
+ <i class="mdui-radio-icon"></i>
29
+ {{c}}
30
+ </label>
31
+ </div>
32
+ {% endfor %}
33
+ <div class="mdui-col">
34
+ <label id="radio_custom" class="mdui-radio mdui-float-left">
35
+ <input type="radio" value="radio_custom" name="group1"/>
36
+ <i class="mdui-radio-icon"></i>
37
+ </label>
38
+ <div style="padding-top: 0px;" class="mdui-textfield">
39
+ <input class="mdui-textfield-input" name="radio_custom" type="text" placeholder="categories"/>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <h3>Tags</h3>
44
+ {% capture tags %}
45
+ {% for t in site.tags %}
46
+ {{t[0]}}
47
+ {% endfor %}
48
+ {% endcapture %}
49
+
50
+ {% assign sortedtags = tags | split:' ' | sort %}
51
+
52
+ {% for t in sortedtags %}
53
+
54
+ {% endfor %}
55
+
56
+ <div class="chips chips-initial"></div>
57
+ <h3>Image</h3>
58
+ <div class="mdui-textfield">
59
+ <input name="img" id="imgurl" class="mdui-textfield-input" type="text" placeholder="ImgUrl"/>
60
+ </div>
61
+ <img id="img" style="max-height:300px;" class="mdui-center" src="" alt="">
62
+ <h3>Content</h3>
63
+ <div class="mdui-textfield" style="z-index: 9999;">
64
+ <textarea class="mdui-textfield-input" placeholder="Description"></textarea>
65
+ </div>
66
+ <button class="mdui-btn mdui-btn-block" id="create">Create file</button>
67
+ <a class="mdui-btn" download="info.markdown" id="downloadlink" style="display: none">Download</a>
68
+ </div>
69
+
70
+
71
+
data/_layouts/post.html CHANGED
@@ -21,7 +21,9 @@ layout: default
21
21
  <div class="mdui-card-content mdui-typo">
22
22
  {{ content }}
23
23
  </div>
24
+ {% if site.disqus_shortname != null %}
24
25
  {% include disqus.html %}
26
+ {% endif %}
25
27
  </div>
26
28
  </div>
27
29
  <div class="mdui-col-md-3 mdui-hidden-sm-down">
data/assets/css/main.css CHANGED
@@ -228,4 +228,9 @@ body,header,#toc-card{
228
228
  width: 100%;
229
229
  padding: 0;
230
230
  }
231
+ }
232
+ @media screen and (max-width: 600px){
233
+ .k-editorcontainer{
234
+ width: 100%;
235
+ padding: 0 20px;
231
236
  }
@@ -0,0 +1,734 @@
1
+ /**
2
+ * The picker input element.
3
+ */
4
+ .picker__table th{
5
+ padding: 15px 5px;
6
+ padding-top: 15px;
7
+ padding-right: 5px;
8
+ padding-bottom: 15px;
9
+ padding-left: 5px;
10
+ display: table-cell;
11
+ text-align: left;
12
+ vertical-align: middle;
13
+ border-radius: 2px;
14
+ }
15
+ .picker__input {
16
+ cursor: default;
17
+ }
18
+
19
+ /**
20
+ * When the picker is opened, the input element is "activated".
21
+ */
22
+ .picker__input.picker__input--active {
23
+ border-color: #0089ec;
24
+ }
25
+
26
+ /**
27
+ * The holder is the only "scrollable" top-level container element.
28
+ */
29
+ .picker__holder {
30
+ width: 100%;
31
+ overflow-y: auto;
32
+ -webkit-overflow-scrolling: touch;
33
+ }
34
+
35
+ /*!
36
+ * Default mobile-first, responsive styling for pickadate.js
37
+ * Demo: http://amsul.github.io/pickadate.js
38
+ */
39
+ /**
40
+ * Note: the root picker element should *NOT* be styled more than what's here.
41
+ */
42
+ /**
43
+ * Make the holder and frame fullscreen.
44
+ */
45
+ .picker__holder,
46
+ .picker__frame {
47
+ bottom: 0;
48
+ left: 0;
49
+ right: 0;
50
+ top: 100%;
51
+ }
52
+
53
+ /**
54
+ * The holder should overlay the entire screen.
55
+ */
56
+ .picker__holder {
57
+ z-index: 10000;
58
+ position: fixed;
59
+ transition: background 0.15s ease-out, top 0s 0.15s;
60
+ -webkit-backface-visibility: hidden;
61
+ }
62
+
63
+ /**
64
+ * The frame that bounds the box contents of the picker.
65
+ */
66
+ .picker__frame {
67
+ position: absolute;
68
+ margin: 0 auto;
69
+ min-width: 256px;
70
+ width: 300px;
71
+ max-height: 350px;
72
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
73
+ filter: alpha(opacity=0);
74
+ -moz-opacity: 0;
75
+ opacity: 0;
76
+ transition: all 0.15s ease-out;
77
+ }
78
+
79
+ @media (min-height: 28.875em) {
80
+ .picker__frame {
81
+ overflow: visible;
82
+ top: auto;
83
+ bottom: -100%;
84
+ max-height: 80%;
85
+ }
86
+ }
87
+
88
+ @media (min-height: 40.125em) {
89
+ .picker__frame {
90
+ margin-bottom: 7.5%;
91
+ }
92
+ }
93
+
94
+ /**
95
+ * The wrapper sets the stage to vertically align the box contents.
96
+ */
97
+ .picker__wrap {
98
+ display: table;
99
+ width: 100%;
100
+ height: 100%;
101
+ }
102
+
103
+ @media (min-height: 28.875em) {
104
+ .picker__wrap {
105
+ display: block;
106
+ }
107
+ }
108
+
109
+ /**
110
+ * The box contains all the picker contents.
111
+ */
112
+ .picker__box {
113
+ background: #ffffff;
114
+ display: table-cell;
115
+ vertical-align: middle;
116
+ }
117
+
118
+ @media (min-height: 28.875em) {
119
+ .picker__box {
120
+ display: block;
121
+ border: 1px solid #777777;
122
+ border-top-color: #898989;
123
+ border-bottom-width: 0;
124
+ border-radius: 5px 5px 0 0;
125
+ box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
126
+ }
127
+ }
128
+
129
+ /**
130
+ * When the picker opens...
131
+ */
132
+ .picker--opened .picker__holder {
133
+ top: 0;
134
+ background: transparent;
135
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
136
+ zoom: 1;
137
+ background: rgba(0, 0, 0, 0.32);
138
+ transition: background 0.15s ease-out;
139
+ }
140
+
141
+ .picker--opened .picker__frame {
142
+ top: 0;
143
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
144
+ filter: alpha(opacity=100);
145
+ -moz-opacity: 1;
146
+ opacity: 1;
147
+ }
148
+
149
+ @media (min-height: 35.875em) {
150
+ .picker--opened .picker__frame {
151
+ top: 10%;
152
+ bottom: auto;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * For `large` screens, transform into an inline picker.
158
+ */
159
+ /* ==========================================================================
160
+ CUSTOM MATERIALIZE STYLES
161
+ ========================================================================== */
162
+ .picker__input.picker__input--active {
163
+ border-color: #E3F2FD;
164
+ }
165
+
166
+ .picker__frame {
167
+ margin: 0 auto;
168
+ max-width: 325px;
169
+ }
170
+
171
+ @media (min-height: 38.875em) {
172
+ .picker--opened .picker__frame {
173
+ top: 10%;
174
+ bottom: auto;
175
+ }
176
+ }
177
+
178
+ /* ==========================================================================
179
+ $BASE-DATE-PICKER
180
+ ========================================================================== */
181
+ /**
182
+ * The picker box.
183
+ */
184
+ .picker__box {
185
+ padding: 0 1em;
186
+ }
187
+
188
+ /**
189
+ * The header containing the month and year stuff.
190
+ */
191
+ .picker__header {
192
+ text-align: center;
193
+ position: relative;
194
+ margin-top: .75em;
195
+ }
196
+
197
+ /**
198
+ * The month and year labels.
199
+ */
200
+ .picker__month,
201
+ .picker__year {
202
+ display: inline-block;
203
+ margin-left: .25em;
204
+ margin-right: .25em;
205
+ }
206
+
207
+ /**
208
+ * The month and year selectors.
209
+ */
210
+ .picker__select--month,
211
+ .picker__select--year {
212
+ height: 2em;
213
+ padding: 0;
214
+ margin-left: .25em;
215
+ margin-right: .25em;
216
+ }
217
+
218
+ .picker__select--month.browser-default {
219
+ display: inline;
220
+ background-color: #FFFFFF;
221
+ width: 40%;
222
+ }
223
+
224
+ .picker__select--year.browser-default {
225
+ display: inline;
226
+ background-color: #FFFFFF;
227
+ width: 26%;
228
+ }
229
+
230
+ .picker__select--month:focus,
231
+ .picker__select--year:focus {
232
+ border-color: rgba(0, 0, 0, 0.05);
233
+ }
234
+
235
+ /**
236
+ * The month navigation buttons.
237
+ */
238
+ .picker__nav--prev,
239
+ .picker__nav--next {
240
+ position: absolute;
241
+ padding: .5em 1.25em;
242
+ width: 1em;
243
+ height: 1em;
244
+ box-sizing: content-box;
245
+ top: -0.25em;
246
+ }
247
+
248
+ .picker__nav--prev {
249
+ left: -1em;
250
+ padding-right: 1.25em;
251
+ }
252
+
253
+ .picker__nav--next {
254
+ right: -1em;
255
+ padding-left: 1.25em;
256
+ }
257
+
258
+ .picker__nav--disabled,
259
+ .picker__nav--disabled:hover,
260
+ .picker__nav--disabled:before,
261
+ .picker__nav--disabled:before:hover {
262
+ cursor: default;
263
+ background: none;
264
+ border-right-color: #f5f5f5;
265
+ border-left-color: #f5f5f5;
266
+ }
267
+
268
+ /**
269
+ * The calendar table of dates
270
+ */
271
+ .picker__table {
272
+ text-align: center;
273
+ border-collapse: collapse;
274
+ border-spacing: 0;
275
+ table-layout: fixed;
276
+ font-size: 1rem;
277
+ width: 100%;
278
+ margin-top: .75em;
279
+ margin-bottom: .5em;
280
+ }
281
+
282
+ .picker__table th, .picker__table td {
283
+ text-align: center;
284
+ }
285
+
286
+ .picker__table td {
287
+ margin: 0;
288
+ padding: 0;
289
+ }
290
+
291
+ /**
292
+ * The weekday labels
293
+ */
294
+ .picker__weekday {
295
+ width: 14.285714286%;
296
+ font-size: .75em;
297
+ padding-bottom: .25em;
298
+ color: #999999;
299
+ font-weight: 500;
300
+ /* Increase the spacing a tad */
301
+ }
302
+
303
+ @media (min-height: 33.875em) {
304
+ .picker__weekday {
305
+ padding-bottom: .5em;
306
+ }
307
+ }
308
+
309
+ /**
310
+ * The days on the calendar
311
+ */
312
+ .picker__day--today {
313
+ position: relative;
314
+ color: #595959;
315
+ letter-spacing: -.3;
316
+ padding: .75rem 0;
317
+ font-weight: 400;
318
+ border: 1px solid transparent;
319
+ }
320
+
321
+ .picker__day--disabled:before {
322
+ border-top-color: #aaaaaa;
323
+ }
324
+
325
+ .picker__day--infocus:hover {
326
+ cursor: pointer;
327
+ color: #000;
328
+ font-weight: 500;
329
+ }
330
+
331
+ .picker__day--outfocus {
332
+ display: none;
333
+ padding: .75rem 0;
334
+ color: #fff;
335
+ }
336
+
337
+ .picker__day--outfocus:hover {
338
+ cursor: pointer;
339
+ color: #dddddd;
340
+ font-weight: 500;
341
+ }
342
+
343
+ .picker__day--highlighted:hover,
344
+ .picker--focused .picker__day--highlighted {
345
+ cursor: pointer;
346
+ }
347
+
348
+ .picker__day--selected,
349
+ .picker__day--selected:hover,
350
+ .picker--focused .picker__day--selected {
351
+ border-radius: 50%;
352
+ -webkit-transform: scale(0.75);
353
+ transform: scale(0.75);
354
+ background: #0089ec;
355
+ color: #ffffff;
356
+ width: 40px;
357
+ }
358
+
359
+ .picker__day--disabled,
360
+ .picker__day--disabled:hover,
361
+ .picker--focused .picker__day--disabled {
362
+ background: #f5f5f5;
363
+ border-color: #f5f5f5;
364
+ color: #dddddd;
365
+ cursor: default;
366
+ }
367
+
368
+ .picker__day--highlighted.picker__day--disabled,
369
+ .picker__day--highlighted.picker__day--disabled:hover {
370
+ background: #bbbbbb;
371
+ }
372
+
373
+ /**
374
+ * The footer containing the "today", "clear", and "close" buttons.
375
+ */
376
+ .picker__footer {
377
+ text-align: center;
378
+ display: -webkit-flex;
379
+ display: -ms-flexbox;
380
+ display: flex;
381
+ -webkit-align-items: center;
382
+ -ms-flex-align: center;
383
+ align-items: center;
384
+ -webkit-justify-content: space-between;
385
+ -ms-flex-pack: justify;
386
+ justify-content: space-between;
387
+ }
388
+
389
+ .picker__button--today,
390
+ .picker__button--clear,
391
+ .picker__button--close {
392
+ border: 1px solid #ffffff;
393
+ background: #ffffff;
394
+ font-size: .8em;
395
+ padding: .66em 0;
396
+ font-weight: bold;
397
+ width: 33%;
398
+ display: inline-block;
399
+ vertical-align: bottom;
400
+ }
401
+
402
+ .picker__button--today:hover,
403
+ .picker__button--clear:hover,
404
+ .picker__button--close:hover {
405
+ cursor: pointer;
406
+ color: #000000;
407
+ background: #b1dcfb;
408
+ border-bottom-color: #b1dcfb;
409
+ }
410
+
411
+ .picker__button--today:focus,
412
+ .picker__button--clear:focus,
413
+ .picker__button--close:focus {
414
+ background: #b1dcfb;
415
+ border-color: rgba(0, 0, 0, 0.05);
416
+ outline: none;
417
+ }
418
+
419
+ .picker__button--today:before,
420
+ .picker__button--clear:before,
421
+ .picker__button--close:before {
422
+ position: relative;
423
+ display: inline-block;
424
+ height: 0;
425
+ }
426
+
427
+ .picker__button--today:before,
428
+ .picker__button--clear:before {
429
+ content: " ";
430
+ margin-right: .45em;
431
+ }
432
+
433
+ .picker__button--today:before {
434
+ top: -0.05em;
435
+ width: 0;
436
+ border-top: 0.66em solid #0059bc;
437
+ border-left: .66em solid transparent;
438
+ }
439
+
440
+ .picker__button--clear:before {
441
+ top: -0.25em;
442
+ width: .66em;
443
+ border-top: 3px solid #ee2200;
444
+ }
445
+
446
+ .picker__button--close:before {
447
+ content: "\D7";
448
+ top: -0.1em;
449
+ vertical-align: top;
450
+ font-size: 1.1em;
451
+ margin-right: .35em;
452
+ color: #777777;
453
+ }
454
+
455
+ .picker__button--today[disabled],
456
+ .picker__button--today[disabled]:hover {
457
+ background: #f5f5f5;
458
+ border-color: #f5f5f5;
459
+ color: #dddddd;
460
+ cursor: default;
461
+ }
462
+
463
+ .picker__button--today[disabled]:before {
464
+ border-top-color: #aaaaaa;
465
+ }
466
+
467
+ /* ==========================================================================
468
+ CUSTOM MATERIALIZE STYLES
469
+ ========================================================================== */
470
+ .picker__box {
471
+ border-radius: 2px;
472
+ overflow: hidden;
473
+ }
474
+
475
+ .picker__date-display {
476
+ text-align: center;
477
+ background-color: #26a69a;
478
+ color: #fff;
479
+ padding-bottom: 15px;
480
+ font-weight: 300;
481
+ }
482
+
483
+ .picker__nav--prev:hover,
484
+ .picker__nav--next:hover {
485
+ cursor: pointer;
486
+ color: #000000;
487
+ background: #a1ded8;
488
+ }
489
+
490
+ .picker__weekday-display {
491
+ background-color: #1f897f;
492
+ padding: 10px;
493
+ font-weight: 200;
494
+ letter-spacing: .5;
495
+ font-size: 1rem;
496
+ margin-bottom: 15px;
497
+ }
498
+
499
+ .picker__month-display {
500
+ text-transform: uppercase;
501
+ font-size: 2rem;
502
+ }
503
+
504
+ .picker__day-display {
505
+ font-size: 4.5rem;
506
+ font-weight: 400;
507
+ }
508
+
509
+ .picker__year-display {
510
+ font-size: 1.8rem;
511
+ color: rgba(255, 255, 255, 0.4);
512
+ }
513
+
514
+ .picker__box {
515
+ padding: 0;
516
+ }
517
+
518
+ .picker__calendar-container {
519
+ padding: 0 1rem;
520
+ }
521
+
522
+ .picker__calendar-container thead {
523
+ border: none;
524
+ }
525
+
526
+ .picker__table {
527
+ margin-top: 0;
528
+ margin-bottom: .5em;
529
+ }
530
+
531
+ .picker__day--infocus {
532
+ color: #595959;
533
+ letter-spacing: -.3;
534
+ padding: .75rem 0;
535
+ font-weight: 400;
536
+ border: 1px solid transparent;
537
+ }
538
+
539
+ .picker__day.picker__day--today {
540
+ color: #26a69a;
541
+ }
542
+
543
+ .picker__day.picker__day--today.picker__day--selected {
544
+ color: #fff;
545
+ }
546
+
547
+ .picker__weekday {
548
+ font-size: .9rem;
549
+ }
550
+
551
+ .picker__day--selected,
552
+ .picker__day--selected:hover,
553
+ .picker--focused .picker__day--selected {
554
+ border-radius: 50%;
555
+ -webkit-transform: scale(0.9);
556
+ transform: scale(0.9);
557
+ background-color: #26a69a;
558
+ color: #ffffff;
559
+ }
560
+
561
+ .picker__day--selected.picker__day--outfocus,
562
+ .picker__day--selected:hover.picker__day--outfocus,
563
+ .picker--focused .picker__day--selected.picker__day--outfocus {
564
+ background-color: #a1ded8;
565
+ }
566
+
567
+ .picker__footer {
568
+ text-align: right;
569
+ padding: 5px 10px;
570
+ }
571
+
572
+ .picker__close, .picker__today {
573
+ padding: 0 1rem;
574
+ }
575
+
576
+ .picker__nav--prev:before,
577
+ .picker__nav--next:before {
578
+ content: " ";
579
+ border-top: .5em solid transparent;
580
+ border-bottom: .5em solid transparent;
581
+ border-right: 0.75em solid #676767;
582
+ width: 0;
583
+ height: 0;
584
+ display: block;
585
+ margin: 0 auto;
586
+ }
587
+
588
+ .picker__nav--next:before {
589
+ border-right: 0;
590
+ border-left: 0.75em solid #676767;
591
+ }
592
+
593
+ button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
594
+ background-color: #a1ded8;
595
+ }
596
+
597
+ /* ==========================================================================
598
+ $BASE-TIME-PICKER
599
+ ========================================================================== */
600
+ /**
601
+ * The list of times.
602
+ */
603
+ .picker__list {
604
+ list-style: none;
605
+ padding: 0.75em 0 4.2em;
606
+ margin: 0;
607
+ }
608
+
609
+ /**
610
+ * The times on the clock.
611
+ */
612
+ .picker__list-item {
613
+ border-bottom: 1px solid #dddddd;
614
+ border-top: 1px solid #dddddd;
615
+ margin-bottom: -1px;
616
+ position: relative;
617
+ background: #ffffff;
618
+ padding: .75em 1.25em;
619
+ }
620
+
621
+ @media (min-height: 46.75em) {
622
+ .picker__list-item {
623
+ padding: .5em 1em;
624
+ }
625
+ }
626
+
627
+ /* Hovered time */
628
+ .picker__list-item:hover {
629
+ cursor: pointer;
630
+ color: #000000;
631
+ background: #b1dcfb;
632
+ border-color: #0089ec;
633
+ z-index: 10;
634
+ }
635
+
636
+ /* Highlighted and hovered/focused time */
637
+ .picker__list-item--highlighted {
638
+ border-color: #0089ec;
639
+ z-index: 10;
640
+ }
641
+
642
+ .picker__list-item--highlighted:hover,
643
+ .picker--focused .picker__list-item--highlighted {
644
+ cursor: pointer;
645
+ color: #000000;
646
+ background: #b1dcfb;
647
+ }
648
+
649
+ /* Selected and hovered/focused time */
650
+ .picker__list-item--selected,
651
+ .picker__list-item--selected:hover,
652
+ .picker--focused .picker__list-item--selected {
653
+ background: #0089ec;
654
+ color: #ffffff;
655
+ z-index: 10;
656
+ }
657
+
658
+ /* Disabled time */
659
+ .picker__list-item--disabled,
660
+ .picker__list-item--disabled:hover,
661
+ .picker--focused .picker__list-item--disabled {
662
+ background: #f5f5f5;
663
+ border-color: #f5f5f5;
664
+ color: #dddddd;
665
+ cursor: default;
666
+ border-color: #dddddd;
667
+ z-index: auto;
668
+ }
669
+
670
+ /**
671
+ * The clear button
672
+ */
673
+ .picker--time .picker__button--clear {
674
+ display: block;
675
+ width: 80%;
676
+ margin: 1em auto 0;
677
+ padding: 1em 1.25em;
678
+ background: none;
679
+ border: 0;
680
+ font-weight: 500;
681
+ font-size: .67em;
682
+ text-align: center;
683
+ text-transform: uppercase;
684
+ color: #666;
685
+ }
686
+
687
+ .picker--time .picker__button--clear:hover,
688
+ .picker--time .picker__button--clear:focus {
689
+ color: #000000;
690
+ background: #b1dcfb;
691
+ background: #ee2200;
692
+ border-color: #ee2200;
693
+ cursor: pointer;
694
+ color: #ffffff;
695
+ outline: none;
696
+ }
697
+
698
+ .picker--time .picker__button--clear:before {
699
+ top: -0.25em;
700
+ color: #666;
701
+ font-size: 1.25em;
702
+ font-weight: bold;
703
+ }
704
+
705
+ .picker--time .picker__button--clear:hover:before,
706
+ .picker--time .picker__button--clear:focus:before {
707
+ color: #ffffff;
708
+ }
709
+
710
+ /* ==========================================================================
711
+ $DEFAULT-TIME-PICKER
712
+ ========================================================================== */
713
+ /**
714
+ * The frame the bounds the time picker.
715
+ */
716
+ .picker--time .picker__frame {
717
+ min-width: 256px;
718
+ max-width: 320px;
719
+ }
720
+
721
+ /**
722
+ * The picker box.
723
+ */
724
+ .picker--time .picker__box {
725
+ font-size: 1em;
726
+ background: #f2f2f2;
727
+ padding: 0;
728
+ }
729
+
730
+ @media (min-height: 40.125em) {
731
+ .picker--time .picker__box {
732
+ margin-bottom: 5em;
733
+ }
734
+ }