sidebar.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. /*!
  2. * # Fomantic-UI - Sidebar
  3. * http://github.com/fomantic/Fomantic-UI/
  4. *
  5. *
  6. * Released under the MIT license
  7. * http://opensource.org/licenses/MIT
  8. *
  9. */
  10. /*******************************
  11. Sidebar
  12. *******************************/
  13. /* Sidebar Menu */
  14. .ui.sidebar {
  15. position: fixed;
  16. top: 0;
  17. left: 0;
  18. -webkit-backface-visibility: hidden;
  19. backface-visibility: hidden;
  20. -webkit-transition: none;
  21. transition: none;
  22. will-change: transform;
  23. -webkit-transform: translate3d(0, 0, 0);
  24. transform: translate3d(0, 0, 0);
  25. visibility: hidden;
  26. -webkit-overflow-scrolling: touch;
  27. height: 100% !important;
  28. max-height: 100%;
  29. border-radius: 0 !important;
  30. margin: 0 !important;
  31. overflow-y: auto !important;
  32. z-index: 102;
  33. }
  34. /* GPU Layers for Child Elements */
  35. .ui.sidebar > * {
  36. -webkit-backface-visibility: hidden;
  37. backface-visibility: hidden;
  38. }
  39. /*--------------
  40. Direction
  41. ---------------*/
  42. .ui.left.sidebar {
  43. right: auto;
  44. left: 0;
  45. -webkit-transform: translate3d(-100%, 0, 0);
  46. transform: translate3d(-100%, 0, 0);
  47. }
  48. .ui.right.sidebar {
  49. right: 0 !important;
  50. left: auto !important;
  51. -webkit-transform: translate3d(100%, 0, 0);
  52. transform: translate3d(100%, 0, 0);
  53. }
  54. .ui.top.sidebar,
  55. .ui.bottom.sidebar {
  56. width: 100% !important;
  57. height: auto !important;
  58. }
  59. .ui.top.sidebar {
  60. top: 0 !important;
  61. bottom: auto !important;
  62. -webkit-transform: translate3d(0, -100%, 0);
  63. transform: translate3d(0, -100%, 0);
  64. }
  65. .ui.bottom.sidebar {
  66. top: auto !important;
  67. bottom: 0 !important;
  68. -webkit-transform: translate3d(0, 100%, 0);
  69. transform: translate3d(0, 100%, 0);
  70. }
  71. /*--------------
  72. Pushable
  73. ---------------*/
  74. .pushable {
  75. height: 100%;
  76. overflow-x: hidden;
  77. padding: 0 !important;
  78. }
  79. /* Whole Page */
  80. body.pushable {
  81. background: #545454;
  82. }
  83. body.pushable.dimmed {
  84. background: inherit;
  85. }
  86. /* Page Context */
  87. .pushable:not(body) {
  88. -webkit-transform: translate3d(0, 0, 0);
  89. transform: translate3d(0, 0, 0);
  90. }
  91. .pushable:not(body) > .ui.sidebar,
  92. .pushable:not(body) > .fixed,
  93. .pushable:not(body) > .pusher:after {
  94. position: absolute;
  95. }
  96. /*--------------
  97. Fixed
  98. ---------------*/
  99. .pushable > .fixed {
  100. position: fixed;
  101. -webkit-backface-visibility: hidden;
  102. backface-visibility: hidden;
  103. -webkit-transition: -webkit-transform 500ms ease;
  104. transition: -webkit-transform 500ms ease;
  105. transition: transform 500ms ease;
  106. transition: transform 500ms ease, -webkit-transform 500ms ease;
  107. will-change: transform;
  108. z-index: 101;
  109. }
  110. /*--------------
  111. Page
  112. ---------------*/
  113. .pushable > .pusher {
  114. position: relative;
  115. -webkit-backface-visibility: hidden;
  116. backface-visibility: hidden;
  117. overflow: hidden;
  118. min-height: 100%;
  119. -webkit-transition: -webkit-transform 500ms ease;
  120. transition: -webkit-transform 500ms ease;
  121. transition: transform 500ms ease;
  122. transition: transform 500ms ease, -webkit-transform 500ms ease;
  123. z-index: 2;
  124. /* Pusher should inherit background from context */
  125. background: inherit;
  126. }
  127. body.pushable > .pusher {
  128. background: #FFFFFF;
  129. }
  130. /*--------------
  131. Dimmer
  132. ---------------*/
  133. .pushable > .pusher:after {
  134. position: fixed;
  135. top: 0;
  136. right: 0;
  137. content: '';
  138. background-color: rgba(0, 0, 0, 0.4);
  139. overflow: hidden;
  140. opacity: 0;
  141. -webkit-transition: opacity 500ms;
  142. transition: opacity 500ms;
  143. will-change: opacity;
  144. z-index: 1000;
  145. }
  146. /*--------------
  147. Coupling
  148. ---------------*/
  149. .ui.sidebar.menu .item {
  150. border-radius: 0 !important;
  151. }
  152. /*******************************
  153. States
  154. *******************************/
  155. /*--------------
  156. Dimmed
  157. ---------------*/
  158. .pushable > .pusher.dimmed:after {
  159. width: 100% !important;
  160. height: 100% !important;
  161. opacity: 1 !important;
  162. }
  163. /*--------------
  164. Animating
  165. ---------------*/
  166. .ui.animating.sidebar {
  167. visibility: visible;
  168. }
  169. /*--------------
  170. Visible
  171. ---------------*/
  172. .ui.visible.sidebar {
  173. visibility: visible;
  174. -webkit-transform: translate3d(0, 0, 0);
  175. transform: translate3d(0, 0, 0);
  176. }
  177. /* Shadow Direction */
  178. .ui.left.visible.sidebar,
  179. .ui.right.visible.sidebar {
  180. -webkit-box-shadow: 0 0 20px rgba(34, 36, 38, 0.15);
  181. box-shadow: 0 0 20px rgba(34, 36, 38, 0.15);
  182. }
  183. .ui.top.visible.sidebar,
  184. .ui.bottom.visible.sidebar {
  185. -webkit-box-shadow: 0 0 20px rgba(34, 36, 38, 0.15);
  186. box-shadow: 0 0 20px rgba(34, 36, 38, 0.15);
  187. }
  188. /* Visible On Load */
  189. .ui.visible.left.sidebar ~ .fixed,
  190. .ui.visible.left.sidebar ~ .pusher {
  191. -webkit-transform: translate3d(260px, 0, 0);
  192. transform: translate3d(260px, 0, 0);
  193. }
  194. .ui.visible.right.sidebar ~ .fixed,
  195. .ui.visible.right.sidebar ~ .pusher {
  196. -webkit-transform: translate3d(-260px, 0, 0);
  197. transform: translate3d(-260px, 0, 0);
  198. }
  199. .ui.visible.top.sidebar ~ .fixed,
  200. .ui.visible.top.sidebar ~ .pusher {
  201. -webkit-transform: translate3d(0, 36px, 0);
  202. transform: translate3d(0, 36px, 0);
  203. }
  204. .ui.visible.bottom.sidebar ~ .fixed,
  205. .ui.visible.bottom.sidebar ~ .pusher {
  206. -webkit-transform: translate3d(0, -36px, 0);
  207. transform: translate3d(0, -36px, 0);
  208. }
  209. /* opposite sides visible forces content overlay */
  210. .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
  211. .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
  212. .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
  213. .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {
  214. -webkit-transform: translate3d(0, 0, 0);
  215. transform: translate3d(0, 0, 0);
  216. }
  217. /*--------------
  218. iOS
  219. ---------------*/
  220. /*******************************
  221. Variations
  222. *******************************/
  223. /*--------------
  224. Width
  225. ---------------*/
  226. /* Left / Right */
  227. .ui.thin.left.sidebar,
  228. .ui.thin.right.sidebar {
  229. width: 150px;
  230. }
  231. .ui[class*="very thin"].left.sidebar,
  232. .ui[class*="very thin"].right.sidebar {
  233. width: 60px;
  234. }
  235. .ui.left.sidebar,
  236. .ui.right.sidebar {
  237. width: 260px;
  238. }
  239. .ui.wide.left.sidebar,
  240. .ui.wide.right.sidebar {
  241. width: 350px;
  242. }
  243. .ui[class*="very wide"].left.sidebar,
  244. .ui[class*="very wide"].right.sidebar {
  245. width: 475px;
  246. }
  247. /* Left Visible */
  248. .ui.visible.thin.left.sidebar ~ .fixed,
  249. .ui.visible.thin.left.sidebar ~ .pusher {
  250. -webkit-transform: translate3d(150px, 0, 0);
  251. transform: translate3d(150px, 0, 0);
  252. }
  253. .ui.visible[class*="very thin"].left.sidebar ~ .fixed,
  254. .ui.visible[class*="very thin"].left.sidebar ~ .pusher {
  255. -webkit-transform: translate3d(60px, 0, 0);
  256. transform: translate3d(60px, 0, 0);
  257. }
  258. .ui.visible.wide.left.sidebar ~ .fixed,
  259. .ui.visible.wide.left.sidebar ~ .pusher {
  260. -webkit-transform: translate3d(350px, 0, 0);
  261. transform: translate3d(350px, 0, 0);
  262. }
  263. .ui.visible[class*="very wide"].left.sidebar ~ .fixed,
  264. .ui.visible[class*="very wide"].left.sidebar ~ .pusher {
  265. -webkit-transform: translate3d(475px, 0, 0);
  266. transform: translate3d(475px, 0, 0);
  267. }
  268. /* Right Visible */
  269. .ui.visible.thin.right.sidebar ~ .fixed,
  270. .ui.visible.thin.right.sidebar ~ .pusher {
  271. -webkit-transform: translate3d(-150px, 0, 0);
  272. transform: translate3d(-150px, 0, 0);
  273. }
  274. .ui.visible[class*="very thin"].right.sidebar ~ .fixed,
  275. .ui.visible[class*="very thin"].right.sidebar ~ .pusher {
  276. -webkit-transform: translate3d(-60px, 0, 0);
  277. transform: translate3d(-60px, 0, 0);
  278. }
  279. .ui.visible.wide.right.sidebar ~ .fixed,
  280. .ui.visible.wide.right.sidebar ~ .pusher {
  281. -webkit-transform: translate3d(-350px, 0, 0);
  282. transform: translate3d(-350px, 0, 0);
  283. }
  284. .ui.visible[class*="very wide"].right.sidebar ~ .fixed,
  285. .ui.visible[class*="very wide"].right.sidebar ~ .pusher {
  286. -webkit-transform: translate3d(-475px, 0, 0);
  287. transform: translate3d(-475px, 0, 0);
  288. }
  289. /*******************************
  290. Animations
  291. *******************************/
  292. /*--------------
  293. Overlay
  294. ---------------*/
  295. /* Set-up */
  296. .ui.overlay.sidebar {
  297. z-index: 102;
  298. }
  299. /* Initial */
  300. .ui.left.overlay.sidebar {
  301. -webkit-transform: translate3d(-100%, 0, 0);
  302. transform: translate3d(-100%, 0, 0);
  303. }
  304. .ui.right.overlay.sidebar {
  305. -webkit-transform: translate3d(100%, 0, 0);
  306. transform: translate3d(100%, 0, 0);
  307. }
  308. .ui.top.overlay.sidebar {
  309. -webkit-transform: translate3d(0%, -100%, 0);
  310. transform: translate3d(0%, -100%, 0);
  311. }
  312. .ui.bottom.overlay.sidebar {
  313. -webkit-transform: translate3d(0%, 100%, 0);
  314. transform: translate3d(0%, 100%, 0);
  315. }
  316. /* Animation */
  317. .animating.ui.overlay.sidebar,
  318. .ui.visible.overlay.sidebar {
  319. -webkit-transition: -webkit-transform 500ms ease;
  320. transition: -webkit-transform 500ms ease;
  321. transition: transform 500ms ease;
  322. transition: transform 500ms ease, -webkit-transform 500ms ease;
  323. }
  324. /* End - Sidebar */
  325. .ui.visible.left.overlay.sidebar {
  326. -webkit-transform: translate3d(0%, 0, 0);
  327. transform: translate3d(0%, 0, 0);
  328. }
  329. .ui.visible.right.overlay.sidebar {
  330. -webkit-transform: translate3d(0%, 0, 0);
  331. transform: translate3d(0%, 0, 0);
  332. }
  333. .ui.visible.top.overlay.sidebar {
  334. -webkit-transform: translate3d(0%, 0, 0);
  335. transform: translate3d(0%, 0, 0);
  336. }
  337. .ui.visible.bottom.overlay.sidebar {
  338. -webkit-transform: translate3d(0%, 0, 0);
  339. transform: translate3d(0%, 0, 0);
  340. }
  341. /* End - Pusher */
  342. .ui.visible.overlay.sidebar ~ .fixed,
  343. .ui.visible.overlay.sidebar ~ .pusher {
  344. -webkit-transform: none !important;
  345. transform: none !important;
  346. }
  347. /*--------------
  348. Push
  349. ---------------*/
  350. /* Initial */
  351. .ui.push.sidebar {
  352. -webkit-transition: -webkit-transform 500ms ease;
  353. transition: -webkit-transform 500ms ease;
  354. transition: transform 500ms ease;
  355. transition: transform 500ms ease, -webkit-transform 500ms ease;
  356. z-index: 102;
  357. }
  358. /* Sidebar - Initial */
  359. .ui.left.push.sidebar {
  360. -webkit-transform: translate3d(-100%, 0, 0);
  361. transform: translate3d(-100%, 0, 0);
  362. }
  363. .ui.right.push.sidebar {
  364. -webkit-transform: translate3d(100%, 0, 0);
  365. transform: translate3d(100%, 0, 0);
  366. }
  367. .ui.top.push.sidebar {
  368. -webkit-transform: translate3d(0%, -100%, 0);
  369. transform: translate3d(0%, -100%, 0);
  370. }
  371. .ui.bottom.push.sidebar {
  372. -webkit-transform: translate3d(0%, 100%, 0);
  373. transform: translate3d(0%, 100%, 0);
  374. }
  375. /* End */
  376. .ui.visible.push.sidebar {
  377. -webkit-transform: translate3d(0%, 0, 0);
  378. transform: translate3d(0%, 0, 0);
  379. }
  380. /*--------------
  381. Uncover
  382. ---------------*/
  383. /* Initial */
  384. .ui.uncover.sidebar {
  385. -webkit-transform: translate3d(0, 0, 0);
  386. transform: translate3d(0, 0, 0);
  387. z-index: 1;
  388. }
  389. /* End */
  390. .ui.visible.uncover.sidebar {
  391. -webkit-transform: translate3d(0, 0, 0);
  392. transform: translate3d(0, 0, 0);
  393. -webkit-transition: -webkit-transform 500ms ease;
  394. transition: -webkit-transform 500ms ease;
  395. transition: transform 500ms ease;
  396. transition: transform 500ms ease, -webkit-transform 500ms ease;
  397. }
  398. /*--------------
  399. Slide Along
  400. ---------------*/
  401. /* Initial */
  402. .ui.slide.along.sidebar {
  403. z-index: 1;
  404. }
  405. /* Sidebar - Initial */
  406. .ui.left.slide.along.sidebar {
  407. -webkit-transform: translate3d(-50%, 0, 0);
  408. transform: translate3d(-50%, 0, 0);
  409. }
  410. .ui.right.slide.along.sidebar {
  411. -webkit-transform: translate3d(50%, 0, 0);
  412. transform: translate3d(50%, 0, 0);
  413. }
  414. .ui.top.slide.along.sidebar {
  415. -webkit-transform: translate3d(0, -50%, 0);
  416. transform: translate3d(0, -50%, 0);
  417. }
  418. .ui.bottom.slide.along.sidebar {
  419. -webkit-transform: translate3d(0%, 50%, 0);
  420. transform: translate3d(0%, 50%, 0);
  421. }
  422. /* Animation */
  423. .ui.animating.slide.along.sidebar {
  424. -webkit-transition: -webkit-transform 500ms ease;
  425. transition: -webkit-transform 500ms ease;
  426. transition: transform 500ms ease;
  427. transition: transform 500ms ease, -webkit-transform 500ms ease;
  428. }
  429. /* End */
  430. .ui.visible.slide.along.sidebar {
  431. -webkit-transform: translate3d(0%, 0, 0);
  432. transform: translate3d(0%, 0, 0);
  433. }
  434. /*--------------
  435. Slide Out
  436. ---------------*/
  437. /* Initial */
  438. .ui.slide.out.sidebar {
  439. z-index: 1;
  440. }
  441. /* Sidebar - Initial */
  442. .ui.left.slide.out.sidebar {
  443. -webkit-transform: translate3d(50%, 0, 0);
  444. transform: translate3d(50%, 0, 0);
  445. }
  446. .ui.right.slide.out.sidebar {
  447. -webkit-transform: translate3d(-50%, 0, 0);
  448. transform: translate3d(-50%, 0, 0);
  449. }
  450. .ui.top.slide.out.sidebar {
  451. -webkit-transform: translate3d(0%, 50%, 0);
  452. transform: translate3d(0%, 50%, 0);
  453. }
  454. .ui.bottom.slide.out.sidebar {
  455. -webkit-transform: translate3d(0%, -50%, 0);
  456. transform: translate3d(0%, -50%, 0);
  457. }
  458. /* Animation */
  459. .ui.animating.slide.out.sidebar {
  460. -webkit-transition: -webkit-transform 500ms ease;
  461. transition: -webkit-transform 500ms ease;
  462. transition: transform 500ms ease;
  463. transition: transform 500ms ease, -webkit-transform 500ms ease;
  464. }
  465. /* End */
  466. .ui.visible.slide.out.sidebar {
  467. -webkit-transform: translate3d(0%, 0, 0);
  468. transform: translate3d(0%, 0, 0);
  469. }
  470. /*--------------
  471. Scale Down
  472. ---------------*/
  473. /* Initial */
  474. .ui.scale.down.sidebar {
  475. -webkit-transition: -webkit-transform 500ms ease;
  476. transition: -webkit-transform 500ms ease;
  477. transition: transform 500ms ease;
  478. transition: transform 500ms ease, -webkit-transform 500ms ease;
  479. z-index: 102;
  480. }
  481. .ui.left.scale.down.sidebar {
  482. -webkit-transform: translate3d(-100%, 0, 0);
  483. transform: translate3d(-100%, 0, 0);
  484. }
  485. .ui.right.scale.down.sidebar {
  486. -webkit-transform: translate3d(100%, 0, 0);
  487. transform: translate3d(100%, 0, 0);
  488. }
  489. .ui.top.scale.down.sidebar {
  490. -webkit-transform: translate3d(0%, -100%, 0);
  491. transform: translate3d(0%, -100%, 0);
  492. }
  493. .ui.bottom.scale.down.sidebar {
  494. -webkit-transform: translate3d(0%, 100%, 0);
  495. transform: translate3d(0%, 100%, 0);
  496. }
  497. /* Pusher - Initial */
  498. .ui.scale.down.left.sidebar ~ .pusher {
  499. -webkit-transform-origin: 75% 50%;
  500. transform-origin: 75% 50%;
  501. }
  502. .ui.scale.down.right.sidebar ~ .pusher {
  503. -webkit-transform-origin: 25% 50%;
  504. transform-origin: 25% 50%;
  505. }
  506. .ui.scale.down.top.sidebar ~ .pusher {
  507. -webkit-transform-origin: 50% 75%;
  508. transform-origin: 50% 75%;
  509. }
  510. .ui.scale.down.bottom.sidebar ~ .pusher {
  511. -webkit-transform-origin: 50% 25%;
  512. transform-origin: 50% 25%;
  513. }
  514. /* Animation */
  515. .ui.animating.scale.down > .visible.ui.sidebar {
  516. -webkit-transition: -webkit-transform 500ms ease;
  517. transition: -webkit-transform 500ms ease;
  518. transition: transform 500ms ease;
  519. transition: transform 500ms ease, -webkit-transform 500ms ease;
  520. }
  521. .ui.visible.scale.down.sidebar ~ .pusher,
  522. .ui.animating.scale.down.sidebar ~ .pusher {
  523. display: block !important;
  524. width: 100%;
  525. height: 100%;
  526. overflow: hidden !important;
  527. }
  528. /* End */
  529. .ui.visible.scale.down.sidebar {
  530. -webkit-transform: translate3d(0, 0, 0);
  531. transform: translate3d(0, 0, 0);
  532. }
  533. .ui.visible.scale.down.sidebar ~ .pusher {
  534. -webkit-transform: scale(0.75);
  535. transform: scale(0.75);
  536. }
  537. /*******************************
  538. Theme Overrides
  539. *******************************/
  540. /*******************************
  541. Site Overrides
  542. *******************************/