common.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. /*!
  2. * <%= meta.title %> v<%= meta.version %> Stylesheet
  3. * Docs & License: <%= meta.homepage %>
  4. * (c) <%= meta.copyright %>
  5. */
  6. .fc {
  7. direction: ltr;
  8. text-align: left;
  9. }
  10. .fc-rtl {
  11. text-align: right;
  12. }
  13. body .fc { /* extra precedence to overcome jqui */
  14. font-size: 1em;
  15. }
  16. /* Colors
  17. --------------------------------------------------------------------------------------------------*/
  18. .fc-unthemed th,
  19. .fc-unthemed td,
  20. .fc-unthemed thead,
  21. .fc-unthemed tbody,
  22. .fc-unthemed .fc-divider,
  23. .fc-unthemed .fc-row,
  24. .fc-unthemed .fc-popover {
  25. border-color: #ddd;
  26. }
  27. .fc-unthemed .fc-popover {
  28. background-color: #fff;
  29. }
  30. .fc-unthemed .fc-divider,
  31. .fc-unthemed .fc-popover .fc-header {
  32. background: #eee;
  33. }
  34. .fc-unthemed .fc-popover .fc-header .fc-close {
  35. color: #666;
  36. }
  37. .fc-unthemed .fc-today {
  38. background: #fcf8e3;
  39. }
  40. .fc-highlight { /* when user is selecting cells */
  41. background: #bce8f1;
  42. opacity: .3;
  43. filter: alpha(opacity=30); /* for IE */
  44. }
  45. .fc-bgevent { /* default look for background events */
  46. background: rgb(143, 223, 130);
  47. opacity: .3;
  48. filter: alpha(opacity=30); /* for IE */
  49. }
  50. .fc-nonbusiness { /* default look for non-business-hours areas */
  51. /* will inherit .fc-bgevent's styles */
  52. background: #d7d7d7;
  53. }
  54. /* Icons (inline elements with styled text that mock arrow icons)
  55. --------------------------------------------------------------------------------------------------*/
  56. .fc-icon {
  57. display: inline-block;
  58. width: 1em;
  59. height: 1em;
  60. line-height: 1em;
  61. font-size: 1em;
  62. text-align: center;
  63. overflow: hidden;
  64. font-family: "Courier New", Courier, monospace;
  65. /* don't allow browser text-selection */
  66. -webkit-touch-callout: none;
  67. -webkit-user-select: none;
  68. -khtml-user-select: none;
  69. -moz-user-select: none;
  70. -ms-user-select: none;
  71. user-select: none;
  72. }
  73. /*
  74. Acceptable font-family overrides for individual icons:
  75. "Arial", sans-serif
  76. "Times New Roman", serif
  77. NOTE: use percentage font sizes or else old IE chokes
  78. */
  79. .fc-icon:after {
  80. position: relative;
  81. margin: 0 -1em; /* ensures character will be centered, regardless of width */
  82. }
  83. .fc-icon-left-single-arrow:after {
  84. content: "\02039";
  85. font-weight: bold;
  86. font-size: 200%;
  87. top: -7%;
  88. left: 3%;
  89. }
  90. .fc-icon-right-single-arrow:after {
  91. content: "\0203A";
  92. font-weight: bold;
  93. font-size: 200%;
  94. top: -7%;
  95. left: -3%;
  96. }
  97. .fc-icon-left-double-arrow:after {
  98. content: "\000AB";
  99. font-size: 160%;
  100. top: -7%;
  101. }
  102. .fc-icon-right-double-arrow:after {
  103. content: "\000BB";
  104. font-size: 160%;
  105. top: -7%;
  106. }
  107. .fc-icon-left-triangle:after {
  108. content: "\25C4";
  109. font-size: 125%;
  110. top: 3%;
  111. left: -2%;
  112. }
  113. .fc-icon-right-triangle:after {
  114. content: "\25BA";
  115. font-size: 125%;
  116. top: 3%;
  117. left: 2%;
  118. }
  119. .fc-icon-down-triangle:after {
  120. content: "\25BC";
  121. font-size: 125%;
  122. top: 2%;
  123. }
  124. .fc-icon-x:after {
  125. content: "\000D7";
  126. font-size: 200%;
  127. top: 6%;
  128. }
  129. /* Buttons (styled <button> tags, normalized to work cross-browser)
  130. --------------------------------------------------------------------------------------------------*/
  131. .fc button {
  132. /* force height to include the border and padding */
  133. -moz-box-sizing: border-box;
  134. -webkit-box-sizing: border-box;
  135. box-sizing: border-box;
  136. /* dimensions */
  137. margin: 0;
  138. height: 2.1em;
  139. padding: 0 .6em;
  140. /* text & cursor */
  141. font-size: 1em; /* normalize */
  142. white-space: nowrap;
  143. cursor: pointer;
  144. }
  145. /* Firefox has an annoying inner border */
  146. .fc button::-moz-focus-inner { margin: 0; padding: 0; }
  147. .fc-state-default { /* non-theme */
  148. border: 1px solid;
  149. }
  150. .fc-state-default.fc-corner-left { /* non-theme */
  151. border-top-left-radius: 4px;
  152. border-bottom-left-radius: 4px;
  153. }
  154. .fc-state-default.fc-corner-right { /* non-theme */
  155. border-top-right-radius: 4px;
  156. border-bottom-right-radius: 4px;
  157. }
  158. /* icons in buttons */
  159. .fc button .fc-icon { /* non-theme */
  160. position: relative;
  161. top: -0.05em; /* seems to be a good adjustment across browsers */
  162. margin: 0 .2em;
  163. vertical-align: middle;
  164. }
  165. /*
  166. button states
  167. borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
  168. */
  169. .fc-state-default {
  170. background-color: #f5f5f5;
  171. background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
  172. background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  173. background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
  174. background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
  175. background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
  176. background-repeat: repeat-x;
  177. border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  178. border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  179. color: #333;
  180. text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  181. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  182. }
  183. .fc-state-hover,
  184. .fc-state-down,
  185. .fc-state-active,
  186. .fc-state-disabled {
  187. color: #333333;
  188. background-color: #e6e6e6;
  189. }
  190. .fc-state-hover {
  191. color: #333333;
  192. text-decoration: none;
  193. background-position: 0 -15px;
  194. -webkit-transition: background-position 0.1s linear;
  195. -moz-transition: background-position 0.1s linear;
  196. -o-transition: background-position 0.1s linear;
  197. transition: background-position 0.1s linear;
  198. }
  199. .fc-state-down,
  200. .fc-state-active {
  201. background-color: #cccccc;
  202. background-image: none;
  203. box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  204. }
  205. .fc-state-disabled {
  206. cursor: default;
  207. background-image: none;
  208. opacity: 0.65;
  209. filter: alpha(opacity=65);
  210. box-shadow: none;
  211. }
  212. /* Buttons Groups
  213. --------------------------------------------------------------------------------------------------*/
  214. .fc-button-group {
  215. display: inline-block;
  216. }
  217. /*
  218. every button that is not first in a button group should scootch over one pixel and cover the
  219. previous button's border...
  220. */
  221. .fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */
  222. float: left;
  223. margin: 0 0 0 -1px;
  224. }
  225. .fc .fc-button-group > :first-child { /* same */
  226. margin-left: 0;
  227. }
  228. /* Popover
  229. --------------------------------------------------------------------------------------------------*/
  230. .fc-popover {
  231. position: absolute;
  232. box-shadow: 0 2px 6px rgba(0,0,0,.15);
  233. }
  234. .fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */
  235. padding: 2px 4px;
  236. }
  237. .fc-popover .fc-header .fc-title {
  238. margin: 0 2px;
  239. }
  240. .fc-popover .fc-header .fc-close {
  241. cursor: pointer;
  242. }
  243. .fc-ltr .fc-popover .fc-header .fc-title,
  244. .fc-rtl .fc-popover .fc-header .fc-close {
  245. float: left;
  246. }
  247. .fc-rtl .fc-popover .fc-header .fc-title,
  248. .fc-ltr .fc-popover .fc-header .fc-close {
  249. float: right;
  250. }
  251. /* unthemed */
  252. .fc-unthemed .fc-popover {
  253. border-width: 1px;
  254. border-style: solid;
  255. }
  256. .fc-unthemed .fc-popover .fc-header .fc-close {
  257. font-size: .9em;
  258. margin-top: 2px;
  259. }
  260. /* jqui themed */
  261. .fc-popover > .ui-widget-header + .ui-widget-content {
  262. border-top: 0; /* where they meet, let the header have the border */
  263. }
  264. /* Misc Reusable Components
  265. --------------------------------------------------------------------------------------------------*/
  266. .fc-divider {
  267. border-style: solid;
  268. border-width: 1px;
  269. }
  270. hr.fc-divider {
  271. height: 0;
  272. margin: 0;
  273. padding: 0 0 2px; /* height is unreliable across browsers, so use padding */
  274. border-width: 1px 0;
  275. }
  276. .fc-clear {
  277. clear: both;
  278. }
  279. .fc-bg,
  280. .fc-bgevent-skeleton,
  281. .fc-highlight-skeleton,
  282. .fc-helper-skeleton {
  283. /* these element should always cling to top-left/right corners */
  284. position: absolute;
  285. top: 0;
  286. left: 0;
  287. right: 0;
  288. }
  289. .fc-bg {
  290. bottom: 0; /* strech bg to bottom edge */
  291. }
  292. .fc-bg table {
  293. height: 100%; /* strech bg to bottom edge */
  294. }
  295. /* Tables
  296. --------------------------------------------------------------------------------------------------*/
  297. .fc table {
  298. width: 100%;
  299. table-layout: fixed;
  300. border-collapse: collapse;
  301. border-spacing: 0;
  302. font-size: 1em; /* normalize cross-browser */
  303. }
  304. .fc th {
  305. text-align: center;
  306. }
  307. .fc th,
  308. .fc td {
  309. border-style: solid;
  310. border-width: 1px;
  311. padding: 0;
  312. vertical-align: top;
  313. }
  314. .fc td.fc-today {
  315. border-style: double; /* overcome neighboring borders */
  316. }
  317. /* Fake Table Rows
  318. --------------------------------------------------------------------------------------------------*/
  319. .fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
  320. /* no visible border by default. but make available if need be (scrollbar width compensation) */
  321. border-style: solid;
  322. border-width: 0;
  323. }
  324. .fc-row table {
  325. /* don't put left/right border on anything within a fake row.
  326. the outer tbody will worry about this */
  327. border-left: 0 hidden transparent;
  328. border-right: 0 hidden transparent;
  329. /* no bottom borders on rows */
  330. border-bottom: 0 hidden transparent;
  331. }
  332. .fc-row:first-child table {
  333. border-top: 0 hidden transparent; /* no top border on first row */
  334. }
  335. /* Day Row (used within the header and the DayGrid)
  336. --------------------------------------------------------------------------------------------------*/
  337. .fc-row {
  338. position: relative;
  339. }
  340. .fc-row .fc-bg {
  341. z-index: 1;
  342. }
  343. /* highlighting cells & background event skeleton */
  344. .fc-row .fc-bgevent-skeleton,
  345. .fc-row .fc-highlight-skeleton {
  346. bottom: 0; /* stretch skeleton to bottom of row */
  347. }
  348. .fc-row .fc-bgevent-skeleton table,
  349. .fc-row .fc-highlight-skeleton table {
  350. height: 100%; /* stretch skeleton to bottom of row */
  351. }
  352. .fc-row .fc-highlight-skeleton td,
  353. .fc-row .fc-bgevent-skeleton td {
  354. border-color: transparent;
  355. }
  356. .fc-row .fc-bgevent-skeleton {
  357. z-index: 2;
  358. }
  359. .fc-row .fc-highlight-skeleton {
  360. z-index: 3;
  361. }
  362. /*
  363. row content (which contains day/week numbers and events) as well as "helper" (which contains
  364. temporary rendered events).
  365. */
  366. .fc-row .fc-content-skeleton {
  367. position: relative;
  368. z-index: 4;
  369. padding-bottom: 2px; /* matches the space above the events */
  370. }
  371. .fc-row .fc-helper-skeleton {
  372. z-index: 5;
  373. }
  374. .fc-row .fc-content-skeleton td,
  375. .fc-row .fc-helper-skeleton td {
  376. /* see-through to the background below */
  377. background: none; /* in case <td>s are globally styled */
  378. border-color: transparent;
  379. /* don't put a border between events and/or the day number */
  380. border-bottom: 0;
  381. }
  382. .fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
  383. .fc-row .fc-helper-skeleton tbody td {
  384. /* don't put a border between event cells */
  385. border-top: 0;
  386. }
  387. /* Scrolling Container
  388. --------------------------------------------------------------------------------------------------*/
  389. .fc-scroller {
  390. -webkit-overflow-scrolling: touch;
  391. }
  392. /* TODO: move to agenda/basic */
  393. .fc-scroller > .fc-day-grid,
  394. .fc-scroller > .fc-time-grid {
  395. position: relative; /* re-scope all positions */
  396. width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */
  397. overflow: hidden; /* don't let negative margins or absolute positioning create further scroll */
  398. }
  399. /* Global Event Styles
  400. --------------------------------------------------------------------------------------------------*/
  401. .fc-event {
  402. position: relative; /* for resize handle and other inner positioning */
  403. display: block; /* make the <a> tag block */
  404. font-size: .85em;
  405. line-height: 1.3;
  406. border-radius: 3px;
  407. border: 1px solid #3a87ad; /* default BORDER color */
  408. background-color: #3a87ad; /* default BACKGROUND color */
  409. font-weight: normal; /* undo jqui's ui-widget-header bold */
  410. }
  411. /* overpower some of bootstrap's and jqui's styles on <a> tags */
  412. .fc-event,
  413. .fc-event:hover,
  414. .ui-widget .fc-event {
  415. color: #fff; /* default TEXT color */
  416. text-decoration: none; /* if <a> has an href */
  417. }
  418. .fc-event[href],
  419. .fc-event.fc-draggable {
  420. cursor: pointer; /* give events with links and draggable events a hand mouse pointer */
  421. }
  422. .fc-not-allowed, /* causes a "warning" cursor. applied on body */
  423. .fc-not-allowed .fc-event { /* to override an event's custom cursor */
  424. cursor: not-allowed;
  425. }
  426. .fc-event .fc-bg { /* the generic .fc-bg already does position */
  427. z-index: 1;
  428. background: #fff;
  429. opacity: .25;
  430. filter: alpha(opacity=25); /* for IE */
  431. }
  432. .fc-event .fc-content {
  433. position: relative;
  434. z-index: 2;
  435. }
  436. .fc-event .fc-resizer {
  437. position: absolute;
  438. z-index: 3;
  439. }
  440. /* Horizontal Events
  441. --------------------------------------------------------------------------------------------------*/
  442. /* events that are continuing to/from another week. kill rounded corners and butt up against edge */
  443. .fc-ltr .fc-h-event.fc-not-start,
  444. .fc-rtl .fc-h-event.fc-not-end {
  445. margin-left: 0;
  446. border-left-width: 0;
  447. padding-left: 1px; /* replace the border with padding */
  448. border-top-left-radius: 0;
  449. border-bottom-left-radius: 0;
  450. }
  451. .fc-ltr .fc-h-event.fc-not-end,
  452. .fc-rtl .fc-h-event.fc-not-start {
  453. margin-right: 0;
  454. border-right-width: 0;
  455. padding-right: 1px; /* replace the border with padding */
  456. border-top-right-radius: 0;
  457. border-bottom-right-radius: 0;
  458. }
  459. /* resizer */
  460. .fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */
  461. top: -1px;
  462. bottom: -1px;
  463. left: -1px;
  464. right: -1px;
  465. width: 5px;
  466. }
  467. /* left resizer */
  468. .fc-ltr .fc-h-event .fc-start-resizer,
  469. .fc-ltr .fc-h-event .fc-start-resizer:before,
  470. .fc-ltr .fc-h-event .fc-start-resizer:after,
  471. .fc-rtl .fc-h-event .fc-end-resizer,
  472. .fc-rtl .fc-h-event .fc-end-resizer:before,
  473. .fc-rtl .fc-h-event .fc-end-resizer:after {
  474. right: auto; /* ignore the right and only use the left */
  475. cursor: w-resize;
  476. }
  477. /* right resizer */
  478. .fc-ltr .fc-h-event .fc-end-resizer,
  479. .fc-ltr .fc-h-event .fc-end-resizer:before,
  480. .fc-ltr .fc-h-event .fc-end-resizer:after,
  481. .fc-rtl .fc-h-event .fc-start-resizer,
  482. .fc-rtl .fc-h-event .fc-start-resizer:before,
  483. .fc-rtl .fc-h-event .fc-start-resizer:after {
  484. left: auto; /* ignore the left and only use the right */
  485. cursor: e-resize;
  486. }
  487. /* DayGrid events
  488. ----------------------------------------------------------------------------------------------------
  489. We use the full "fc-day-grid-event" class instead of using descendants because the event won't
  490. be a descendant of the grid when it is being dragged.
  491. */
  492. .fc-day-grid-event {
  493. margin: 1px 2px 0; /* spacing between events and edges */
  494. padding: 0 1px;
  495. }
  496. .fc-day-grid-event .fc-content { /* force events to be one-line tall */
  497. white-space: nowrap;
  498. overflow: hidden;
  499. }
  500. .fc-day-grid-event .fc-time {
  501. font-weight: bold;
  502. }
  503. .fc-day-grid-event .fc-resizer { /* enlarge the default hit area */
  504. left: -3px;
  505. right: -3px;
  506. width: 7px;
  507. }
  508. /* Event Limiting
  509. --------------------------------------------------------------------------------------------------*/
  510. /* "more" link that represents hidden events */
  511. a.fc-more {
  512. margin: 1px 3px;
  513. font-size: .85em;
  514. cursor: pointer;
  515. text-decoration: none;
  516. }
  517. a.fc-more:hover {
  518. text-decoration: underline;
  519. }
  520. .fc-limited { /* rows and cells that are hidden because of a "more" link */
  521. display: none;
  522. }
  523. /* popover that appears when "more" link is clicked */
  524. .fc-day-grid .fc-row {
  525. z-index: 1; /* make the "more" popover one higher than this */
  526. }
  527. .fc-more-popover {
  528. z-index: 2;
  529. width: 220px;
  530. }
  531. .fc-more-popover .fc-event-container {
  532. padding: 10px;
  533. }
  534. /* Now Indicator
  535. --------------------------------------------------------------------------------------------------*/
  536. .fc-now-indicator {
  537. position: absolute;
  538. border: 0 solid red;
  539. }