1 | /*! |
---|
2 | * FullCalendar v2.6.1 Stylesheet |
---|
3 | * Docs & License: http://fullcalendar.io/ |
---|
4 | * (c) 2015 Adam Shaw |
---|
5 | */ |
---|
6 | |
---|
7 | |
---|
8 | .fc { |
---|
9 | direction: ltr; |
---|
10 | text-align: left; |
---|
11 | } |
---|
12 | |
---|
13 | .fc-rtl { |
---|
14 | text-align: right; |
---|
15 | } |
---|
16 | |
---|
17 | body .fc { /* extra precedence to overcome jqui */ |
---|
18 | font-size: 1em; |
---|
19 | } |
---|
20 | |
---|
21 | |
---|
22 | /* Colors |
---|
23 | --------------------------------------------------------------------------------------------------*/ |
---|
24 | |
---|
25 | .fc-unthemed th, |
---|
26 | .fc-unthemed td, |
---|
27 | .fc-unthemed thead, |
---|
28 | .fc-unthemed tbody, |
---|
29 | .fc-unthemed .fc-divider, |
---|
30 | .fc-unthemed .fc-row, |
---|
31 | .fc-unthemed .fc-popover { |
---|
32 | border-color: #ddd; |
---|
33 | } |
---|
34 | |
---|
35 | .fc-unthemed .fc-popover { |
---|
36 | background-color: #fff; |
---|
37 | } |
---|
38 | |
---|
39 | .fc-unthemed .fc-divider, |
---|
40 | .fc-unthemed .fc-popover .fc-header { |
---|
41 | background: #eee; |
---|
42 | } |
---|
43 | |
---|
44 | .fc-unthemed .fc-popover .fc-header .fc-close { |
---|
45 | color: #666; |
---|
46 | } |
---|
47 | |
---|
48 | .fc-unthemed .fc-today { |
---|
49 | background: #fcf8e3; |
---|
50 | } |
---|
51 | |
---|
52 | .fc-highlight { /* when user is selecting cells */ |
---|
53 | background: #bce8f1; |
---|
54 | opacity: .3; |
---|
55 | filter: alpha(opacity=30); /* for IE */ |
---|
56 | } |
---|
57 | |
---|
58 | .fc-bgevent { /* default look for background events */ |
---|
59 | background: rgb(143, 223, 130); |
---|
60 | opacity: .3; |
---|
61 | filter: alpha(opacity=30); /* for IE */ |
---|
62 | } |
---|
63 | |
---|
64 | .fc-nonbusiness { /* default look for non-business-hours areas */ |
---|
65 | /* will inherit .fc-bgevent's styles */ |
---|
66 | background: #d7d7d7; |
---|
67 | } |
---|
68 | |
---|
69 | |
---|
70 | /* Icons (inline elements with styled text that mock arrow icons) |
---|
71 | --------------------------------------------------------------------------------------------------*/ |
---|
72 | |
---|
73 | .fc-icon { |
---|
74 | display: inline-block; |
---|
75 | width: 1em; |
---|
76 | height: 1em; |
---|
77 | line-height: 1em; |
---|
78 | font-size: 1em; |
---|
79 | text-align: center; |
---|
80 | overflow: hidden; |
---|
81 | font-family: "Courier New", Courier, monospace; |
---|
82 | |
---|
83 | /* don't allow browser text-selection */ |
---|
84 | -webkit-touch-callout: none; |
---|
85 | -webkit-user-select: none; |
---|
86 | -khtml-user-select: none; |
---|
87 | -moz-user-select: none; |
---|
88 | -ms-user-select: none; |
---|
89 | user-select: none; |
---|
90 | } |
---|
91 | |
---|
92 | /* |
---|
93 | Acceptable font-family overrides for individual icons: |
---|
94 | "Arial", sans-serif |
---|
95 | "Times New Roman", serif |
---|
96 | |
---|
97 | NOTE: use percentage font sizes or else old IE chokes |
---|
98 | */ |
---|
99 | |
---|
100 | .fc-icon:after { |
---|
101 | position: relative; |
---|
102 | margin: 0 -1em; /* ensures character will be centered, regardless of width */ |
---|
103 | } |
---|
104 | |
---|
105 | .fc-icon-left-single-arrow:after { |
---|
106 | content: "\02039"; |
---|
107 | font-weight: bold; |
---|
108 | font-size: 200%; |
---|
109 | top: -7%; |
---|
110 | left: 3%; |
---|
111 | } |
---|
112 | |
---|
113 | .fc-icon-right-single-arrow:after { |
---|
114 | content: "\0203A"; |
---|
115 | font-weight: bold; |
---|
116 | font-size: 200%; |
---|
117 | top: -7%; |
---|
118 | left: -3%; |
---|
119 | } |
---|
120 | |
---|
121 | .fc-icon-left-double-arrow:after { |
---|
122 | content: "\000AB"; |
---|
123 | font-size: 160%; |
---|
124 | top: -7%; |
---|
125 | } |
---|
126 | |
---|
127 | .fc-icon-right-double-arrow:after { |
---|
128 | content: "\000BB"; |
---|
129 | font-size: 160%; |
---|
130 | top: -7%; |
---|
131 | } |
---|
132 | |
---|
133 | .fc-icon-left-triangle:after { |
---|
134 | content: "\25C4"; |
---|
135 | font-size: 125%; |
---|
136 | top: 3%; |
---|
137 | left: -2%; |
---|
138 | } |
---|
139 | |
---|
140 | .fc-icon-right-triangle:after { |
---|
141 | content: "\25BA"; |
---|
142 | font-size: 125%; |
---|
143 | top: 3%; |
---|
144 | left: 2%; |
---|
145 | } |
---|
146 | |
---|
147 | .fc-icon-down-triangle:after { |
---|
148 | content: "\25BC"; |
---|
149 | font-size: 125%; |
---|
150 | top: 2%; |
---|
151 | } |
---|
152 | |
---|
153 | .fc-icon-x:after { |
---|
154 | content: "\000D7"; |
---|
155 | font-size: 200%; |
---|
156 | top: 6%; |
---|
157 | } |
---|
158 | |
---|
159 | |
---|
160 | /* Buttons (styled <button> tags, normalized to work cross-browser) |
---|
161 | --------------------------------------------------------------------------------------------------*/ |
---|
162 | |
---|
163 | .fc button { |
---|
164 | /* force height to include the border and padding */ |
---|
165 | -moz-box-sizing: border-box; |
---|
166 | -webkit-box-sizing: border-box; |
---|
167 | box-sizing: border-box; |
---|
168 | |
---|
169 | /* dimensions */ |
---|
170 | margin: 0; |
---|
171 | height: 2.1em; |
---|
172 | padding: 0 .6em; |
---|
173 | |
---|
174 | /* text & cursor */ |
---|
175 | font-size: 1em; /* normalize */ |
---|
176 | white-space: nowrap; |
---|
177 | cursor: pointer; |
---|
178 | } |
---|
179 | |
---|
180 | /* Firefox has an annoying inner border */ |
---|
181 | .fc button::-moz-focus-inner { margin: 0; padding: 0; } |
---|
182 | |
---|
183 | .fc-state-default { /* non-theme */ |
---|
184 | border: 1px solid; |
---|
185 | } |
---|
186 | |
---|
187 | .fc-state-default.fc-corner-left { /* non-theme */ |
---|
188 | border-top-left-radius: 4px; |
---|
189 | border-bottom-left-radius: 4px; |
---|
190 | } |
---|
191 | |
---|
192 | .fc-state-default.fc-corner-right { /* non-theme */ |
---|
193 | border-top-right-radius: 4px; |
---|
194 | border-bottom-right-radius: 4px; |
---|
195 | } |
---|
196 | |
---|
197 | /* icons in buttons */ |
---|
198 | |
---|
199 | .fc button .fc-icon { /* non-theme */ |
---|
200 | position: relative; |
---|
201 | top: -0.05em; /* seems to be a good adjustment across browsers */ |
---|
202 | margin: 0 .2em; |
---|
203 | vertical-align: middle; |
---|
204 | } |
---|
205 | |
---|
206 | /* |
---|
207 | button states |
---|
208 | borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/) |
---|
209 | */ |
---|
210 | |
---|
211 | .fc-state-default { |
---|
212 | background-color: #f5f5f5; |
---|
213 | background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); |
---|
214 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); |
---|
215 | background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); |
---|
216 | background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); |
---|
217 | background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); |
---|
218 | background-repeat: repeat-x; |
---|
219 | border-color: #e6e6e6 #e6e6e6 #bfbfbf; |
---|
220 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); |
---|
221 | color: #333; |
---|
222 | text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); |
---|
223 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); |
---|
224 | } |
---|
225 | |
---|
226 | .fc-state-hover, |
---|
227 | .fc-state-down, |
---|
228 | .fc-state-active, |
---|
229 | .fc-state-disabled { |
---|
230 | color: #333333; |
---|
231 | background-color: #e6e6e6; |
---|
232 | } |
---|
233 | |
---|
234 | .fc-state-hover { |
---|
235 | color: #333333; |
---|
236 | text-decoration: none; |
---|
237 | background-position: 0 -15px; |
---|
238 | -webkit-transition: background-position 0.1s linear; |
---|
239 | -moz-transition: background-position 0.1s linear; |
---|
240 | -o-transition: background-position 0.1s linear; |
---|
241 | transition: background-position 0.1s linear; |
---|
242 | } |
---|
243 | |
---|
244 | .fc-state-down, |
---|
245 | .fc-state-active { |
---|
246 | background-color: #cccccc; |
---|
247 | background-image: none; |
---|
248 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); |
---|
249 | } |
---|
250 | |
---|
251 | .fc-state-disabled { |
---|
252 | cursor: default; |
---|
253 | background-image: none; |
---|
254 | opacity: 0.65; |
---|
255 | filter: alpha(opacity=65); |
---|
256 | box-shadow: none; |
---|
257 | } |
---|
258 | |
---|
259 | |
---|
260 | /* Buttons Groups |
---|
261 | --------------------------------------------------------------------------------------------------*/ |
---|
262 | |
---|
263 | .fc-button-group { |
---|
264 | display: inline-block; |
---|
265 | } |
---|
266 | |
---|
267 | /* |
---|
268 | every button that is not first in a button group should scootch over one pixel and cover the |
---|
269 | previous button's border... |
---|
270 | */ |
---|
271 | |
---|
272 | .fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */ |
---|
273 | float: left; |
---|
274 | margin: 0 0 0 -1px; |
---|
275 | } |
---|
276 | |
---|
277 | .fc .fc-button-group > :first-child { /* same */ |
---|
278 | margin-left: 0; |
---|
279 | } |
---|
280 | |
---|
281 | |
---|
282 | /* Popover |
---|
283 | --------------------------------------------------------------------------------------------------*/ |
---|
284 | |
---|
285 | .fc-popover { |
---|
286 | position: absolute; |
---|
287 | box-shadow: 0 2px 6px rgba(0,0,0,.15); |
---|
288 | } |
---|
289 | |
---|
290 | .fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */ |
---|
291 | padding: 2px 4px; |
---|
292 | } |
---|
293 | |
---|
294 | .fc-popover .fc-header .fc-title { |
---|
295 | margin: 0 2px; |
---|
296 | } |
---|
297 | |
---|
298 | .fc-popover .fc-header .fc-close { |
---|
299 | cursor: pointer; |
---|
300 | } |
---|
301 | |
---|
302 | .fc-ltr .fc-popover .fc-header .fc-title, |
---|
303 | .fc-rtl .fc-popover .fc-header .fc-close { |
---|
304 | float: left; |
---|
305 | } |
---|
306 | |
---|
307 | .fc-rtl .fc-popover .fc-header .fc-title, |
---|
308 | .fc-ltr .fc-popover .fc-header .fc-close { |
---|
309 | float: right; |
---|
310 | } |
---|
311 | |
---|
312 | /* unthemed */ |
---|
313 | |
---|
314 | .fc-unthemed .fc-popover { |
---|
315 | border-width: 1px; |
---|
316 | border-style: solid; |
---|
317 | } |
---|
318 | |
---|
319 | .fc-unthemed .fc-popover .fc-header .fc-close { |
---|
320 | font-size: .9em; |
---|
321 | margin-top: 2px; |
---|
322 | } |
---|
323 | |
---|
324 | /* jqui themed */ |
---|
325 | |
---|
326 | .fc-popover > .ui-widget-header + .ui-widget-content { |
---|
327 | border-top: 0; /* where they meet, let the header have the border */ |
---|
328 | } |
---|
329 | |
---|
330 | |
---|
331 | /* Misc Reusable Components |
---|
332 | --------------------------------------------------------------------------------------------------*/ |
---|
333 | |
---|
334 | .fc-divider { |
---|
335 | border-style: solid; |
---|
336 | border-width: 1px; |
---|
337 | } |
---|
338 | |
---|
339 | hr.fc-divider { |
---|
340 | height: 0; |
---|
341 | margin: 0; |
---|
342 | padding: 0 0 2px; /* height is unreliable across browsers, so use padding */ |
---|
343 | border-width: 1px 0; |
---|
344 | } |
---|
345 | |
---|
346 | .fc-clear { |
---|
347 | clear: both; |
---|
348 | } |
---|
349 | |
---|
350 | .fc-bg, |
---|
351 | .fc-bgevent-skeleton, |
---|
352 | .fc-highlight-skeleton, |
---|
353 | .fc-helper-skeleton { |
---|
354 | /* these element should always cling to top-left/right corners */ |
---|
355 | position: absolute; |
---|
356 | top: 0; |
---|
357 | left: 0; |
---|
358 | right: 0; |
---|
359 | } |
---|
360 | |
---|
361 | .fc-bg { |
---|
362 | bottom: 0; /* strech bg to bottom edge */ |
---|
363 | } |
---|
364 | |
---|
365 | .fc-bg table { |
---|
366 | height: 100%; /* strech bg to bottom edge */ |
---|
367 | } |
---|
368 | |
---|
369 | |
---|
370 | /* Tables |
---|
371 | --------------------------------------------------------------------------------------------------*/ |
---|
372 | |
---|
373 | .fc table { |
---|
374 | width: 100%; |
---|
375 | table-layout: fixed; |
---|
376 | border-collapse: collapse; |
---|
377 | border-spacing: 0; |
---|
378 | font-size: 1em; /* normalize cross-browser */ |
---|
379 | } |
---|
380 | |
---|
381 | .fc th { |
---|
382 | text-align: center; |
---|
383 | } |
---|
384 | |
---|
385 | .fc th, |
---|
386 | .fc td { |
---|
387 | border-style: solid; |
---|
388 | border-width: 1px; |
---|
389 | padding: 0; |
---|
390 | vertical-align: top; |
---|
391 | } |
---|
392 | |
---|
393 | .fc td.fc-today { |
---|
394 | border-style: double; /* overcome neighboring borders */ |
---|
395 | } |
---|
396 | |
---|
397 | |
---|
398 | /* Fake Table Rows |
---|
399 | --------------------------------------------------------------------------------------------------*/ |
---|
400 | |
---|
401 | .fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */ |
---|
402 | /* no visible border by default. but make available if need be (scrollbar width compensation) */ |
---|
403 | border-style: solid; |
---|
404 | border-width: 0; |
---|
405 | } |
---|
406 | |
---|
407 | .fc-row table { |
---|
408 | /* don't put left/right border on anything within a fake row. |
---|
409 | the outer tbody will worry about this */ |
---|
410 | border-left: 0 hidden transparent; |
---|
411 | border-right: 0 hidden transparent; |
---|
412 | |
---|
413 | /* no bottom borders on rows */ |
---|
414 | border-bottom: 0 hidden transparent; |
---|
415 | } |
---|
416 | |
---|
417 | .fc-row:first-child table { |
---|
418 | border-top: 0 hidden transparent; /* no top border on first row */ |
---|
419 | } |
---|
420 | |
---|
421 | |
---|
422 | /* Day Row (used within the header and the DayGrid) |
---|
423 | --------------------------------------------------------------------------------------------------*/ |
---|
424 | |
---|
425 | .fc-row { |
---|
426 | position: relative; |
---|
427 | } |
---|
428 | |
---|
429 | .fc-row .fc-bg { |
---|
430 | z-index: 1; |
---|
431 | } |
---|
432 | |
---|
433 | /* highlighting cells & background event skeleton */ |
---|
434 | |
---|
435 | .fc-row .fc-bgevent-skeleton, |
---|
436 | .fc-row .fc-highlight-skeleton { |
---|
437 | bottom: 0; /* stretch skeleton to bottom of row */ |
---|
438 | } |
---|
439 | |
---|
440 | .fc-row .fc-bgevent-skeleton table, |
---|
441 | .fc-row .fc-highlight-skeleton table { |
---|
442 | height: 100%; /* stretch skeleton to bottom of row */ |
---|
443 | } |
---|
444 | |
---|
445 | .fc-row .fc-highlight-skeleton td, |
---|
446 | .fc-row .fc-bgevent-skeleton td { |
---|
447 | border-color: transparent; |
---|
448 | } |
---|
449 | |
---|
450 | .fc-row .fc-bgevent-skeleton { |
---|
451 | z-index: 2; |
---|
452 | |
---|
453 | } |
---|
454 | |
---|
455 | .fc-row .fc-highlight-skeleton { |
---|
456 | z-index: 3; |
---|
457 | } |
---|
458 | |
---|
459 | /* |
---|
460 | row content (which contains day/week numbers and events) as well as "helper" (which contains |
---|
461 | temporary rendered events). |
---|
462 | */ |
---|
463 | |
---|
464 | .fc-row .fc-content-skeleton { |
---|
465 | position: relative; |
---|
466 | z-index: 4; |
---|
467 | padding-bottom: 2px; /* matches the space above the events */ |
---|
468 | } |
---|
469 | |
---|
470 | .fc-row .fc-helper-skeleton { |
---|
471 | z-index: 5; |
---|
472 | } |
---|
473 | |
---|
474 | .fc-row .fc-content-skeleton td, |
---|
475 | .fc-row .fc-helper-skeleton td { |
---|
476 | /* see-through to the background below */ |
---|
477 | background: none; /* in case <td>s are globally styled */ |
---|
478 | border-color: transparent; |
---|
479 | |
---|
480 | /* don't put a border between events and/or the day number */ |
---|
481 | border-bottom: 0; |
---|
482 | } |
---|
483 | |
---|
484 | .fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */ |
---|
485 | .fc-row .fc-helper-skeleton tbody td { |
---|
486 | /* don't put a border between event cells */ |
---|
487 | border-top: 0; |
---|
488 | } |
---|
489 | |
---|
490 | |
---|
491 | /* Scrolling Container |
---|
492 | --------------------------------------------------------------------------------------------------*/ |
---|
493 | |
---|
494 | .fc-scroller { /* this class goes on elements for guaranteed vertical scrollbars */ |
---|
495 | overflow-y: scroll; |
---|
496 | overflow-x: hidden; |
---|
497 | } |
---|
498 | |
---|
499 | .fc-scroller > * { /* we expect an immediate inner element */ |
---|
500 | position: relative; /* re-scope all positions */ |
---|
501 | width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */ |
---|
502 | overflow: hidden; /* don't let negative margins or absolute positioning create further scroll */ |
---|
503 | } |
---|
504 | |
---|
505 | |
---|
506 | /* Global Event Styles |
---|
507 | --------------------------------------------------------------------------------------------------*/ |
---|
508 | |
---|
509 | .fc-event { |
---|
510 | position: relative; /* for resize handle and other inner positioning */ |
---|
511 | display: block; /* make the <a> tag block */ |
---|
512 | font-size: .85em; |
---|
513 | line-height: 1.3; |
---|
514 | border-radius: 3px; |
---|
515 | border: 1px solid #3a87ad; /* default BORDER color */ |
---|
516 | background-color: #3a87ad; /* default BACKGROUND color */ |
---|
517 | font-weight: normal; /* undo jqui's ui-widget-header bold */ |
---|
518 | } |
---|
519 | |
---|
520 | /* overpower some of bootstrap's and jqui's styles on <a> tags */ |
---|
521 | .fc-event, |
---|
522 | .fc-event:hover, |
---|
523 | .ui-widget .fc-event { |
---|
524 | color: #fff; /* default TEXT color */ |
---|
525 | text-decoration: none; /* if <a> has an href */ |
---|
526 | } |
---|
527 | |
---|
528 | .fc-event[href], |
---|
529 | .fc-event.fc-draggable { |
---|
530 | cursor: pointer; /* give events with links and draggable events a hand mouse pointer */ |
---|
531 | } |
---|
532 | |
---|
533 | .fc-not-allowed, /* causes a "warning" cursor. applied on body */ |
---|
534 | .fc-not-allowed .fc-event { /* to override an event's custom cursor */ |
---|
535 | cursor: not-allowed; |
---|
536 | } |
---|
537 | |
---|
538 | .fc-event .fc-bg { /* the generic .fc-bg already does position */ |
---|
539 | z-index: 1; |
---|
540 | background: #fff; |
---|
541 | opacity: .25; |
---|
542 | filter: alpha(opacity=25); /* for IE */ |
---|
543 | } |
---|
544 | |
---|
545 | .fc-event .fc-content { |
---|
546 | position: relative; |
---|
547 | z-index: 2; |
---|
548 | } |
---|
549 | |
---|
550 | .fc-event .fc-resizer { |
---|
551 | position: absolute; |
---|
552 | z-index: 3; |
---|
553 | } |
---|
554 | |
---|
555 | |
---|
556 | /* Horizontal Events |
---|
557 | --------------------------------------------------------------------------------------------------*/ |
---|
558 | |
---|
559 | /* events that are continuing to/from another week. kill rounded corners and butt up against edge */ |
---|
560 | |
---|
561 | .fc-ltr .fc-h-event.fc-not-start, |
---|
562 | .fc-rtl .fc-h-event.fc-not-end { |
---|
563 | margin-left: 0; |
---|
564 | border-left-width: 0; |
---|
565 | padding-left: 1px; /* replace the border with padding */ |
---|
566 | border-top-left-radius: 0; |
---|
567 | border-bottom-left-radius: 0; |
---|
568 | } |
---|
569 | |
---|
570 | .fc-ltr .fc-h-event.fc-not-end, |
---|
571 | .fc-rtl .fc-h-event.fc-not-start { |
---|
572 | margin-right: 0; |
---|
573 | border-right-width: 0; |
---|
574 | padding-right: 1px; /* replace the border with padding */ |
---|
575 | border-top-right-radius: 0; |
---|
576 | border-bottom-right-radius: 0; |
---|
577 | } |
---|
578 | |
---|
579 | /* resizer */ |
---|
580 | |
---|
581 | .fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */ |
---|
582 | top: -1px; |
---|
583 | bottom: -1px; |
---|
584 | left: -1px; |
---|
585 | right: -1px; |
---|
586 | width: 5px; |
---|
587 | } |
---|
588 | |
---|
589 | /* left resizer */ |
---|
590 | .fc-ltr .fc-h-event .fc-start-resizer, |
---|
591 | .fc-ltr .fc-h-event .fc-start-resizer:before, |
---|
592 | .fc-ltr .fc-h-event .fc-start-resizer:after, |
---|
593 | .fc-rtl .fc-h-event .fc-end-resizer, |
---|
594 | .fc-rtl .fc-h-event .fc-end-resizer:before, |
---|
595 | .fc-rtl .fc-h-event .fc-end-resizer:after { |
---|
596 | right: auto; /* ignore the right and only use the left */ |
---|
597 | cursor: w-resize; |
---|
598 | } |
---|
599 | |
---|
600 | /* right resizer */ |
---|
601 | .fc-ltr .fc-h-event .fc-end-resizer, |
---|
602 | .fc-ltr .fc-h-event .fc-end-resizer:before, |
---|
603 | .fc-ltr .fc-h-event .fc-end-resizer:after, |
---|
604 | .fc-rtl .fc-h-event .fc-start-resizer, |
---|
605 | .fc-rtl .fc-h-event .fc-start-resizer:before, |
---|
606 | .fc-rtl .fc-h-event .fc-start-resizer:after { |
---|
607 | left: auto; /* ignore the left and only use the right */ |
---|
608 | cursor: e-resize; |
---|
609 | } |
---|
610 | |
---|
611 | |
---|
612 | /* DayGrid events |
---|
613 | ---------------------------------------------------------------------------------------------------- |
---|
614 | We use the full "fc-day-grid-event" class instead of using descendants because the event won't |
---|
615 | be a descendant of the grid when it is being dragged. |
---|
616 | */ |
---|
617 | |
---|
618 | .fc-day-grid-event { |
---|
619 | margin: 1px 2px 0; /* spacing between events and edges */ |
---|
620 | padding: 0 1px; |
---|
621 | } |
---|
622 | |
---|
623 | |
---|
624 | .fc-day-grid-event .fc-content { /* force events to be one-line tall */ |
---|
625 | white-space: nowrap; |
---|
626 | overflow: hidden; |
---|
627 | } |
---|
628 | |
---|
629 | .fc-day-grid-event .fc-time { |
---|
630 | font-weight: bold; |
---|
631 | } |
---|
632 | |
---|
633 | .fc-day-grid-event .fc-resizer { /* enlarge the default hit area */ |
---|
634 | left: -3px; |
---|
635 | right: -3px; |
---|
636 | width: 7px; |
---|
637 | } |
---|
638 | |
---|
639 | |
---|
640 | /* Event Limiting |
---|
641 | --------------------------------------------------------------------------------------------------*/ |
---|
642 | |
---|
643 | /* "more" link that represents hidden events */ |
---|
644 | |
---|
645 | a.fc-more { |
---|
646 | margin: 1px 3px; |
---|
647 | font-size: .85em; |
---|
648 | cursor: pointer; |
---|
649 | text-decoration: none; |
---|
650 | } |
---|
651 | |
---|
652 | a.fc-more:hover { |
---|
653 | text-decoration: underline; |
---|
654 | } |
---|
655 | |
---|
656 | .fc-limited { /* rows and cells that are hidden because of a "more" link */ |
---|
657 | display: none; |
---|
658 | } |
---|
659 | |
---|
660 | /* popover that appears when "more" link is clicked */ |
---|
661 | |
---|
662 | .fc-day-grid .fc-row { |
---|
663 | z-index: 1; /* make the "more" popover one higher than this */ |
---|
664 | } |
---|
665 | |
---|
666 | .fc-more-popover { |
---|
667 | z-index: 2; |
---|
668 | width: 220px; |
---|
669 | } |
---|
670 | |
---|
671 | .fc-more-popover .fc-event-container { |
---|
672 | padding: 10px; |
---|
673 | } |
---|
674 | |
---|
675 | |
---|
676 | /* Now Indicator |
---|
677 | --------------------------------------------------------------------------------------------------*/ |
---|
678 | |
---|
679 | .fc-now-indicator { |
---|
680 | position: absolute; |
---|
681 | border: 0 solid red; |
---|
682 | } |
---|
683 | |
---|
684 | /* Toolbar |
---|
685 | --------------------------------------------------------------------------------------------------*/ |
---|
686 | |
---|
687 | .fc-toolbar { |
---|
688 | text-align: center; |
---|
689 | margin-bottom: 1em; |
---|
690 | } |
---|
691 | |
---|
692 | .fc-toolbar .fc-left { |
---|
693 | float: left; |
---|
694 | } |
---|
695 | |
---|
696 | .fc-toolbar .fc-right { |
---|
697 | float: right; |
---|
698 | } |
---|
699 | |
---|
700 | .fc-toolbar .fc-center { |
---|
701 | display: inline-block; |
---|
702 | } |
---|
703 | |
---|
704 | /* the things within each left/right/center section */ |
---|
705 | .fc .fc-toolbar > * > * { /* extra precedence to override button border margins */ |
---|
706 | float: left; |
---|
707 | margin-left: .75em; |
---|
708 | } |
---|
709 | |
---|
710 | /* the first thing within each left/center/right section */ |
---|
711 | .fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */ |
---|
712 | margin-left: 0; |
---|
713 | } |
---|
714 | |
---|
715 | /* title text */ |
---|
716 | |
---|
717 | .fc-toolbar h2 { |
---|
718 | margin: 0; |
---|
719 | } |
---|
720 | |
---|
721 | /* button layering (for border precedence) */ |
---|
722 | |
---|
723 | .fc-toolbar button { |
---|
724 | position: relative; |
---|
725 | } |
---|
726 | |
---|
727 | .fc-toolbar .fc-state-hover, |
---|
728 | .fc-toolbar .ui-state-hover { |
---|
729 | z-index: 2; |
---|
730 | } |
---|
731 | |
---|
732 | .fc-toolbar .fc-state-down { |
---|
733 | z-index: 3; |
---|
734 | } |
---|
735 | |
---|
736 | .fc-toolbar .fc-state-active, |
---|
737 | .fc-toolbar .ui-state-active { |
---|
738 | z-index: 4; |
---|
739 | } |
---|
740 | |
---|
741 | .fc-toolbar button:focus { |
---|
742 | z-index: 5; |
---|
743 | } |
---|
744 | |
---|
745 | |
---|
746 | /* View Structure |
---|
747 | --------------------------------------------------------------------------------------------------*/ |
---|
748 | |
---|
749 | /* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ |
---|
750 | /* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ |
---|
751 | .fc-view-container *, |
---|
752 | .fc-view-container *:before, |
---|
753 | .fc-view-container *:after { |
---|
754 | -webkit-box-sizing: content-box; |
---|
755 | -moz-box-sizing: content-box; |
---|
756 | box-sizing: content-box; |
---|
757 | } |
---|
758 | |
---|
759 | .fc-view, /* scope positioning and z-index's for everything within the view */ |
---|
760 | .fc-view > table { /* so dragged elements can be above the view's main element */ |
---|
761 | position: relative; |
---|
762 | z-index: 1; |
---|
763 | } |
---|
764 | |
---|
765 | /* BasicView |
---|
766 | --------------------------------------------------------------------------------------------------*/ |
---|
767 | |
---|
768 | /* day row structure */ |
---|
769 | |
---|
770 | .fc-basicWeek-view .fc-content-skeleton, |
---|
771 | .fc-basicDay-view .fc-content-skeleton { |
---|
772 | /* we are sure there are no day numbers in these views, so... */ |
---|
773 | padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */ |
---|
774 | padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */ |
---|
775 | } |
---|
776 | |
---|
777 | .fc-basic-view .fc-body .fc-row { |
---|
778 | min-height: 4em; /* ensure that all rows are at least this tall */ |
---|
779 | } |
---|
780 | |
---|
781 | /* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */ |
---|
782 | |
---|
783 | .fc-row.fc-rigid { |
---|
784 | overflow: hidden; |
---|
785 | } |
---|
786 | |
---|
787 | .fc-row.fc-rigid .fc-content-skeleton { |
---|
788 | position: absolute; |
---|
789 | top: 0; |
---|
790 | left: 0; |
---|
791 | right: 0; |
---|
792 | } |
---|
793 | |
---|
794 | /* week and day number styling */ |
---|
795 | |
---|
796 | .fc-basic-view .fc-week-number, |
---|
797 | .fc-basic-view .fc-day-number { |
---|
798 | padding: 0 2px; |
---|
799 | } |
---|
800 | |
---|
801 | .fc-basic-view td.fc-week-number span, |
---|
802 | .fc-basic-view td.fc-day-number { |
---|
803 | padding-top: 2px; |
---|
804 | padding-bottom: 2px; |
---|
805 | } |
---|
806 | |
---|
807 | .fc-basic-view .fc-week-number { |
---|
808 | text-align: center; |
---|
809 | } |
---|
810 | |
---|
811 | .fc-basic-view .fc-week-number span { |
---|
812 | /* work around the way we do column resizing and ensure a minimum width */ |
---|
813 | display: inline-block; |
---|
814 | min-width: 1.25em; |
---|
815 | } |
---|
816 | |
---|
817 | .fc-ltr .fc-basic-view .fc-day-number { |
---|
818 | text-align: right; |
---|
819 | } |
---|
820 | |
---|
821 | .fc-rtl .fc-basic-view .fc-day-number { |
---|
822 | text-align: left; |
---|
823 | } |
---|
824 | |
---|
825 | .fc-day-number.fc-other-month { |
---|
826 | opacity: 0.3; |
---|
827 | filter: alpha(opacity=30); /* for IE */ |
---|
828 | /* opacity with small font can sometimes look too faded |
---|
829 | might want to set the 'color' property instead |
---|
830 | making day-numbers bold also fixes the problem */ |
---|
831 | } |
---|
832 | |
---|
833 | /* AgendaView all-day area |
---|
834 | --------------------------------------------------------------------------------------------------*/ |
---|
835 | |
---|
836 | .fc-agenda-view .fc-day-grid { |
---|
837 | position: relative; |
---|
838 | z-index: 2; /* so the "more.." popover will be over the time grid */ |
---|
839 | } |
---|
840 | |
---|
841 | .fc-agenda-view .fc-day-grid .fc-row { |
---|
842 | min-height: 3em; /* all-day section will never get shorter than this */ |
---|
843 | } |
---|
844 | |
---|
845 | .fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton { |
---|
846 | padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */ |
---|
847 | padding-bottom: 1em; /* give space underneath events for clicking/selecting days */ |
---|
848 | } |
---|
849 | |
---|
850 | |
---|
851 | /* TimeGrid axis running down the side (for both the all-day area and the slot area) |
---|
852 | --------------------------------------------------------------------------------------------------*/ |
---|
853 | |
---|
854 | .fc .fc-axis { /* .fc to overcome default cell styles */ |
---|
855 | vertical-align: middle; |
---|
856 | padding: 0 4px; |
---|
857 | white-space: nowrap; |
---|
858 | } |
---|
859 | |
---|
860 | .fc-ltr .fc-axis { |
---|
861 | text-align: right; |
---|
862 | } |
---|
863 | |
---|
864 | .fc-rtl .fc-axis { |
---|
865 | text-align: left; |
---|
866 | } |
---|
867 | |
---|
868 | .ui-widget td.fc-axis { |
---|
869 | font-weight: normal; /* overcome jqui theme making it bold */ |
---|
870 | } |
---|
871 | |
---|
872 | |
---|
873 | /* TimeGrid Structure |
---|
874 | --------------------------------------------------------------------------------------------------*/ |
---|
875 | |
---|
876 | .fc-time-grid-container, /* so scroll container's z-index is below all-day */ |
---|
877 | .fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */ |
---|
878 | position: relative; |
---|
879 | z-index: 1; |
---|
880 | } |
---|
881 | |
---|
882 | .fc-time-grid { |
---|
883 | min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */ |
---|
884 | } |
---|
885 | |
---|
886 | .fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */ |
---|
887 | border: 0 hidden transparent; |
---|
888 | } |
---|
889 | |
---|
890 | .fc-time-grid > .fc-bg { |
---|
891 | z-index: 1; |
---|
892 | } |
---|
893 | |
---|
894 | .fc-time-grid .fc-slats, |
---|
895 | .fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */ |
---|
896 | position: relative; |
---|
897 | z-index: 2; |
---|
898 | } |
---|
899 | |
---|
900 | .fc-time-grid .fc-content-col { |
---|
901 | position: relative; /* because now-indicator lives directly inside */ |
---|
902 | } |
---|
903 | |
---|
904 | .fc-time-grid .fc-content-skeleton { |
---|
905 | position: absolute; |
---|
906 | z-index: 3; |
---|
907 | top: 0; |
---|
908 | left: 0; |
---|
909 | right: 0; |
---|
910 | } |
---|
911 | |
---|
912 | /* divs within a cell within the fc-content-skeleton */ |
---|
913 | |
---|
914 | .fc-time-grid .fc-business-container { |
---|
915 | position: relative; |
---|
916 | z-index: 1; |
---|
917 | } |
---|
918 | |
---|
919 | .fc-time-grid .fc-bgevent-container { |
---|
920 | position: relative; |
---|
921 | z-index: 2; |
---|
922 | } |
---|
923 | |
---|
924 | .fc-time-grid .fc-highlight-container { |
---|
925 | position: relative; |
---|
926 | z-index: 3; |
---|
927 | } |
---|
928 | |
---|
929 | .fc-time-grid .fc-event-container { |
---|
930 | position: relative; |
---|
931 | z-index: 4; |
---|
932 | } |
---|
933 | |
---|
934 | .fc-time-grid .fc-now-indicator-line { |
---|
935 | z-index: 5; |
---|
936 | } |
---|
937 | |
---|
938 | .fc-time-grid .fc-helper-container { /* also is fc-event-container */ |
---|
939 | position: relative; |
---|
940 | z-index: 6; |
---|
941 | } |
---|
942 | |
---|
943 | |
---|
944 | /* TimeGrid Slats (lines that run horizontally) |
---|
945 | --------------------------------------------------------------------------------------------------*/ |
---|
946 | |
---|
947 | .fc-time-grid .fc-slats td { |
---|
948 | height: 1.5em; |
---|
949 | border-bottom: 0; /* each cell is responsible for its top border */ |
---|
950 | } |
---|
951 | |
---|
952 | .fc-time-grid .fc-slats .fc-minor td { |
---|
953 | border-top-style: dotted; |
---|
954 | } |
---|
955 | |
---|
956 | .fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */ |
---|
957 | background: none; /* see through to fc-bg */ |
---|
958 | } |
---|
959 | |
---|
960 | |
---|
961 | /* TimeGrid Highlighting Slots |
---|
962 | --------------------------------------------------------------------------------------------------*/ |
---|
963 | |
---|
964 | .fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */ |
---|
965 | position: relative; /* scopes the left/right of the fc-highlight to be in the column */ |
---|
966 | } |
---|
967 | |
---|
968 | .fc-time-grid .fc-highlight { |
---|
969 | position: absolute; |
---|
970 | left: 0; |
---|
971 | right: 0; |
---|
972 | /* top and bottom will be in by JS */ |
---|
973 | } |
---|
974 | |
---|
975 | |
---|
976 | /* TimeGrid Event Containment |
---|
977 | --------------------------------------------------------------------------------------------------*/ |
---|
978 | |
---|
979 | .fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */ |
---|
980 | margin: 0 2.5% 0 2px; |
---|
981 | } |
---|
982 | |
---|
983 | .fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */ |
---|
984 | margin: 0 2px 0 2.5%; |
---|
985 | } |
---|
986 | |
---|
987 | .fc-time-grid .fc-event, |
---|
988 | .fc-time-grid .fc-bgevent { |
---|
989 | position: absolute; |
---|
990 | z-index: 1; /* scope inner z-index's */ |
---|
991 | } |
---|
992 | |
---|
993 | .fc-time-grid .fc-bgevent { |
---|
994 | /* background events always span full width */ |
---|
995 | left: 0; |
---|
996 | right: 0; |
---|
997 | } |
---|
998 | |
---|
999 | |
---|
1000 | /* Generic Vertical Event |
---|
1001 | --------------------------------------------------------------------------------------------------*/ |
---|
1002 | |
---|
1003 | .fc-v-event.fc-not-start { /* events that are continuing from another day */ |
---|
1004 | /* replace space made by the top border with padding */ |
---|
1005 | border-top-width: 0; |
---|
1006 | padding-top: 1px; |
---|
1007 | |
---|
1008 | /* remove top rounded corners */ |
---|
1009 | border-top-left-radius: 0; |
---|
1010 | border-top-right-radius: 0; |
---|
1011 | } |
---|
1012 | |
---|
1013 | .fc-v-event.fc-not-end { |
---|
1014 | /* replace space made by the top border with padding */ |
---|
1015 | border-bottom-width: 0; |
---|
1016 | padding-bottom: 1px; |
---|
1017 | |
---|
1018 | /* remove bottom rounded corners */ |
---|
1019 | border-bottom-left-radius: 0; |
---|
1020 | border-bottom-right-radius: 0; |
---|
1021 | } |
---|
1022 | |
---|
1023 | |
---|
1024 | /* TimeGrid Event Styling |
---|
1025 | ---------------------------------------------------------------------------------------------------- |
---|
1026 | We use the full "fc-time-grid-event" class instead of using descendants because the event won't |
---|
1027 | be a descendant of the grid when it is being dragged. |
---|
1028 | */ |
---|
1029 | |
---|
1030 | .fc-time-grid-event { |
---|
1031 | overflow: hidden; /* don't let the bg flow over rounded corners */ |
---|
1032 | } |
---|
1033 | |
---|
1034 | .fc-time-grid-event .fc-time, |
---|
1035 | .fc-time-grid-event .fc-title { |
---|
1036 | padding: 0 1px; |
---|
1037 | } |
---|
1038 | |
---|
1039 | .fc-time-grid-event .fc-time { |
---|
1040 | font-size: .85em; |
---|
1041 | white-space: nowrap; |
---|
1042 | } |
---|
1043 | |
---|
1044 | /* short mode, where time and title are on the same line */ |
---|
1045 | |
---|
1046 | .fc-time-grid-event.fc-short .fc-content { |
---|
1047 | /* don't wrap to second line (now that contents will be inline) */ |
---|
1048 | white-space: nowrap; |
---|
1049 | } |
---|
1050 | |
---|
1051 | .fc-time-grid-event.fc-short .fc-time, |
---|
1052 | .fc-time-grid-event.fc-short .fc-title { |
---|
1053 | /* put the time and title on the same line */ |
---|
1054 | display: inline-block; |
---|
1055 | vertical-align: top; |
---|
1056 | } |
---|
1057 | |
---|
1058 | .fc-time-grid-event.fc-short .fc-time span { |
---|
1059 | display: none; /* don't display the full time text... */ |
---|
1060 | } |
---|
1061 | |
---|
1062 | .fc-time-grid-event.fc-short .fc-time:before { |
---|
1063 | content: attr(data-start); /* ...instead, display only the start time */ |
---|
1064 | } |
---|
1065 | |
---|
1066 | .fc-time-grid-event.fc-short .fc-time:after { |
---|
1067 | content: "\000A0-\000A0"; /* seperate with a dash, wrapped in nbsp's */ |
---|
1068 | } |
---|
1069 | |
---|
1070 | .fc-time-grid-event.fc-short .fc-title { |
---|
1071 | font-size: .85em; /* make the title text the same size as the time */ |
---|
1072 | padding: 0; /* undo padding from above */ |
---|
1073 | } |
---|
1074 | |
---|
1075 | /* resizer */ |
---|
1076 | |
---|
1077 | .fc-time-grid-event .fc-resizer { |
---|
1078 | left: 0; |
---|
1079 | right: 0; |
---|
1080 | bottom: 0; |
---|
1081 | height: 8px; |
---|
1082 | overflow: hidden; |
---|
1083 | line-height: 8px; |
---|
1084 | font-size: 11px; |
---|
1085 | font-family: monospace; |
---|
1086 | text-align: center; |
---|
1087 | cursor: s-resize; |
---|
1088 | } |
---|
1089 | |
---|
1090 | .fc-time-grid-event .fc-resizer:after { |
---|
1091 | content: "="; |
---|
1092 | } |
---|
1093 | |
---|
1094 | |
---|
1095 | /* Now Indicator |
---|
1096 | --------------------------------------------------------------------------------------------------*/ |
---|
1097 | |
---|
1098 | .fc-time-grid .fc-now-indicator-line { |
---|
1099 | border-top-width: 1px; |
---|
1100 | left: 0; |
---|
1101 | right: 0; |
---|
1102 | } |
---|
1103 | |
---|
1104 | /* arrow on axis */ |
---|
1105 | |
---|
1106 | .fc-time-grid .fc-now-indicator-arrow { |
---|
1107 | margin-top: -5px; /* vertically center on top coordinate */ |
---|
1108 | } |
---|
1109 | |
---|
1110 | .fc-ltr .fc-time-grid .fc-now-indicator-arrow { |
---|
1111 | left: 0; |
---|
1112 | /* triangle pointing right... */ |
---|
1113 | border-width: 5px 0 5px 6px; |
---|
1114 | border-top-color: transparent; |
---|
1115 | border-bottom-color: transparent; |
---|
1116 | } |
---|
1117 | |
---|
1118 | .fc-rtl .fc-time-grid .fc-now-indicator-arrow { |
---|
1119 | right: 0; |
---|
1120 | /* triangle pointing left... */ |
---|
1121 | border-width: 5px 6px 5px 0; |
---|
1122 | border-top-color: transparent; |
---|
1123 | border-bottom-color: transparent; |
---|
1124 | } |
---|