apps.scss 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. /* APP STYLING -------------------------------------------------------------- */
  2. #app {
  3. height: 100%;
  4. width: 100%;
  5. * {
  6. box-sizing: border-box;
  7. }
  8. }
  9. /* APP-NAVIGATION ------------------------------------------------------------*/
  10. /* Navigation: folder like structure */
  11. #app-navigation {
  12. width: 250px;
  13. height: 100%;
  14. float: left;
  15. box-sizing: border-box;
  16. background-color: #fff;
  17. padding-bottom: 44px;
  18. -webkit-user-select: none;
  19. -moz-user-select: none;
  20. -ms-user-select: none;
  21. user-select: none;
  22. border-right: 1px solid #eee;
  23. > ul {
  24. position: relative;
  25. height: 100%;
  26. width: inherit;
  27. overflow: auto;
  28. box-sizing: border-box;
  29. }
  30. li {
  31. position: relative;
  32. width: 100%;
  33. box-sizing: border-box;
  34. }
  35. &.without-app-settings {
  36. padding-bottom: 0;
  37. }
  38. .active.with-menu > a, .with-counter > a {
  39. padding-right: 50px;
  40. }
  41. .active.with-menu.with-counter > a {
  42. padding-right: 90px;
  43. }
  44. .with-icon a, .app-navigation-entry-loading a {
  45. padding-left: 44px;
  46. background-size: 16px 16px;
  47. background-position: 14px center;
  48. background-repeat: no-repeat;
  49. }
  50. li > a {
  51. display: block;
  52. width: 100%;
  53. line-height: 44px;
  54. min-height: 44px;
  55. padding: 0 12px;
  56. overflow: hidden;
  57. box-sizing: border-box;
  58. white-space: nowrap;
  59. text-overflow: ellipsis;
  60. color: #000;
  61. opacity: .57;
  62. }
  63. .active {
  64. opacity: 1;
  65. a {
  66. opacity: 1;
  67. }
  68. }
  69. li {
  70. &:hover > a, &:focus > a {
  71. opacity: 1;
  72. }
  73. }
  74. a:focus {
  75. opacity: 1;
  76. }
  77. .selected {
  78. opacity: 1;
  79. a {
  80. opacity: 1;
  81. }
  82. }
  83. .collapse {
  84. display: none;
  85. /* hide collapse button initially */
  86. }
  87. .collapsible {
  88. > .collapse {
  89. position: absolute;
  90. height: 44px;
  91. width: 44px;
  92. margin: 0;
  93. padding: 0;
  94. background: none;
  95. background-image: url('../img/actions/triangle-s.svg?v=1');
  96. background-size: 16px;
  97. background-repeat: no-repeat;
  98. background-position: center;
  99. border: none;
  100. border-radius: 0;
  101. outline: none !important;
  102. box-shadow: none;
  103. }
  104. &:hover > a, &:focus > a {
  105. background-image: none;
  106. }
  107. &:hover > .collapse, &:focus > .collapse {
  108. display: block;
  109. }
  110. .collapse {
  111. -webkit-transform: rotate(-90deg);
  112. -ms-transform: rotate(-90deg);
  113. transform: rotate(-90deg);
  114. }
  115. &.open {
  116. .collapse {
  117. -webkit-transform: rotate(0);
  118. -ms-transform: rotate(0);
  119. transform: rotate(0);
  120. }
  121. background-image: linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%);
  122. background-image: -webkit-linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%);
  123. background-image: -ms-linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%);
  124. }
  125. }
  126. > {
  127. ul ul {
  128. display: none;
  129. li > a {
  130. padding-left: 32px;
  131. }
  132. }
  133. .with-icon ul li {
  134. > a, &.app-navigation-entry-loading > a {
  135. padding-left: 68px;
  136. background-position: 44px center;
  137. }
  138. }
  139. }
  140. > ul .collapsible.open {
  141. &:hover, &:focus {
  142. box-shadow: inset 0 0 3px #ddd;
  143. }
  144. ul {
  145. display: block;
  146. }
  147. }
  148. .app-navigation-entry-deleted {
  149. display: inline-block;
  150. height: 44px;
  151. width: 100%;
  152. }
  153. .app-navigation-entry-deleted-description {
  154. padding-left: 12px;
  155. position: relative;
  156. white-space: nowrap;
  157. text-overflow: ellipsis;
  158. overflow: hidden;
  159. display: inline-block;
  160. width: calc(100% - 49px);
  161. line-height: 44px;
  162. float: left;
  163. }
  164. .app-navigation-entry-deleted-button {
  165. margin: 0;
  166. height: 44px;
  167. width: 44px;
  168. line-height: 44px;
  169. border: 0;
  170. display: inline-block;
  171. background-color: transparent;
  172. opacity: .5;
  173. &:hover, &:focus {
  174. opacity: 1;
  175. }
  176. }
  177. .utils {
  178. position: absolute;
  179. padding: 7px 7px 0 0;
  180. right: 0;
  181. top: 0;
  182. bottom: 0;
  183. font-size: 12px;
  184. button, .counter {
  185. width: 44px;
  186. height: 44px;
  187. padding-top: 12px;
  188. }
  189. }
  190. .drag-and-drop {
  191. -webkit-transition: padding-bottom 500ms ease 0s;
  192. transition: padding-bottom 500ms ease 0s;
  193. padding-bottom: 40px;
  194. }
  195. .error {
  196. color: #dd1144;
  197. }
  198. .app-navigation-separator {
  199. border-bottom: 1px solid #ddd;
  200. }
  201. .app-navigation-entry-utils {
  202. position: absolute;
  203. top: 0;
  204. right: 0;
  205. z-index: 105;
  206. ul {
  207. display: block !important;
  208. }
  209. li {
  210. float: left;
  211. width: 44px !important;
  212. height: 44px;
  213. line-height: 44px;
  214. }
  215. }
  216. .active > .app-navigation-entry-utils li {
  217. display: inline-block;
  218. }
  219. .app-navigation-entry-utils button {
  220. height: 38px;
  221. width: 38px;
  222. line-height: 38px;
  223. float: left;
  224. }
  225. .app-navigation-entry-utils-menu-button {
  226. display: none;
  227. button {
  228. border: 0;
  229. opacity: .5;
  230. background-color: transparent;
  231. background-repeat: no-repeat;
  232. background-position: center;
  233. background-image: url('../img/actions/more.svg?v=1');
  234. }
  235. &:hover button, &:focus button {
  236. background-color: transparent;
  237. opacity: 1;
  238. }
  239. }
  240. .app-navigation-entry-utils-counter {
  241. overflow: hidden;
  242. text-overflow: hidden;
  243. text-align: right;
  244. font-size: 9pt;
  245. width: 38px;
  246. line-height: 44px;
  247. padding: 0 10px;
  248. }
  249. .app-navigation-entry-utils ul, .app-navigation-entry-menu ul {
  250. list-style-type: none;
  251. }
  252. }
  253. /* Second level nesting for lists */
  254. /* Deleted entries with undo button */
  255. /* counter and actions, legacy code */
  256. /* drag and drop */
  257. /**
  258. * App navigation utils, buttons and counters for drop down menu
  259. */
  260. /* menu bubble / popover */
  261. .bubble, #app-navigation .app-navigation-entry-menu {
  262. position: absolute;
  263. background-color: #fff;
  264. color: #333;
  265. border-radius: 3px;
  266. border-top-right-radius: 0;
  267. z-index: 110;
  268. margin: 5px;
  269. margin-top: -5px;
  270. right: 0;
  271. -webkit-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
  272. -moz-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
  273. -ms-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
  274. -o-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
  275. filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
  276. }
  277. .ie {
  278. .bubble, #app-navigation .app-navigation-entry-menu, .bubble:after, #app-navigation .app-navigation-entry-menu:after {
  279. border: 1px solid #eee;
  280. }
  281. }
  282. .edge {
  283. .bubble, #app-navigation .app-navigation-entry-menu, .bubble:after, #app-navigation .app-navigation-entry-menu:after {
  284. border: 1px solid #eee;
  285. }
  286. }
  287. /* miraculous border arrow stuff */
  288. .bubble:after, #app-navigation .app-navigation-entry-menu:after {
  289. bottom: 100%;
  290. right: 6px;
  291. /* change this to adjust the arrow position */
  292. border: solid transparent;
  293. content: ' ';
  294. height: 0;
  295. width: 0;
  296. position: absolute;
  297. pointer-events: none;
  298. }
  299. .bubble:after, #app-navigation .app-navigation-entry-menu:after {
  300. border-color: rgba(238, 238, 238, 0);
  301. border-bottom-color: #fff;
  302. border-width: 10px;
  303. }
  304. .bubble .action {
  305. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)' !important;
  306. filter: alpha(opacity = 50) !important;
  307. opacity: .5 !important;
  308. &:hover, &:focus, &.active {
  309. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)' !important;
  310. filter: alpha(opacity = 100) !important;
  311. opacity: 1 !important;
  312. }
  313. }
  314. #app-navigation {
  315. .app-navigation-entry-menu {
  316. display: none;
  317. &.open {
  318. display: block;
  319. }
  320. ul {
  321. display: block !important;
  322. }
  323. li {
  324. float: left;
  325. width: 38px !important;
  326. button {
  327. float: right;
  328. width: 36px !important;
  329. height: 36px;
  330. line-height: 36px;
  331. border: 0;
  332. opacity: .5;
  333. background-color: transparent;
  334. &:hover, &:focus {
  335. opacity: 1;
  336. background-color: transparent;
  337. }
  338. }
  339. }
  340. }
  341. .app-navigation-entry-edit {
  342. padding-left: 5px;
  343. padding-right: 5px;
  344. display: inline-block;
  345. height: 39px;
  346. width: 100%;
  347. input {
  348. border-bottom-right-radius: 0;
  349. border-top-right-radius: 0;
  350. width: calc(100% - 36px);
  351. padding: 5px;
  352. margin-right: 0;
  353. height: 38px;
  354. float: left;
  355. border: 1px solid rgba(190, 190, 190, 0.9);
  356. }
  357. button, input[type='submit'] {
  358. width: 36px;
  359. height: 38px;
  360. float: left;
  361. }
  362. .icon-checkmark {
  363. border-bottom-left-radius: 0;
  364. border-top-left-radius: 0;
  365. border-left: 0;
  366. margin-right: 0;
  367. }
  368. }
  369. }
  370. /* list of options for an entry */
  371. /* editing an entry */
  372. /* APP-CONTENT ---------------------------------------------------------------*/
  373. /* Part where the content will be loaded into */
  374. #app-content {
  375. position: relative;
  376. height: 100%;
  377. overflow-y: auto;
  378. }
  379. #app-content-wrapper {
  380. min-width: 100%;
  381. min-height: 100%;
  382. }
  383. /* APP-SIDEBAR ----------------------------------------------------------------*/
  384. /*
  385. Sidebar: a sidebar to be used within #app-content
  386. have it as first element within app-content in order to shrink other
  387. sibling containers properly. Compare Files app for example.
  388. */
  389. #app-sidebar {
  390. position: fixed;
  391. top: 45px;
  392. right: 0;
  393. left: auto;
  394. bottom: 0;
  395. width: 27%;
  396. min-width: 300px;
  397. display: block;
  398. background: #fff;
  399. border-left: 1px solid #eee;
  400. -webkit-transition: margin-right 300ms;
  401. transition: margin-right 300ms;
  402. overflow-x: hidden;
  403. overflow-y: auto;
  404. visibility: visible;
  405. z-index: 500;
  406. }
  407. #app-content.with-app-sidebar {
  408. margin-right: 27%;
  409. }
  410. #app-sidebar.disappear {
  411. visibility: hidden;
  412. }
  413. /* APP-SETTINGS ---------------------------------------------------------------*/
  414. /* settings area */
  415. #app-settings {
  416. position: fixed;
  417. width: 250px;
  418. /* change to 100% when layout positions are absolute */
  419. bottom: 0;
  420. z-index: 140;
  421. &.open #app-settings-content, &.opened #app-settings-content {
  422. display: block;
  423. }
  424. }
  425. #app-settings-content {
  426. display: none;
  427. padding: 10px;
  428. background-color: #fff;
  429. /* restrict height of settings and make scrollable */
  430. max-height: 300px;
  431. overflow-y: auto;
  432. border-right: 1px solid #eee;
  433. width: 250px;
  434. box-sizing: border-box;
  435. }
  436. #app-settings-header {
  437. border-right: 1px solid #eee;
  438. width: 250px;
  439. box-sizing: border-box;
  440. }
  441. /* display input fields at full width */
  442. #app-settings-content input[type='text'] {
  443. width: 93%;
  444. }
  445. .settings-button {
  446. display: block;
  447. height: 44px;
  448. width: 100%;
  449. padding: 0;
  450. margin: 0;
  451. background-color: #fff;
  452. background-image: url('../img/actions/settings.svg?v=1');
  453. background-position: 14px center;
  454. background-repeat: no-repeat;
  455. box-shadow: none;
  456. border: 0;
  457. border-radius: 0;
  458. text-align: left;
  459. padding-left: 42px;
  460. font-weight: normal;
  461. &:hover, &:focus {
  462. background-color: #fff;
  463. }
  464. &.opened {
  465. &:hover, &:focus {
  466. background-color: #fff;
  467. }
  468. }
  469. }
  470. /* buttons */
  471. button.loading {
  472. background-image: url('../img/loading.gif');
  473. background-position: right 10px center;
  474. background-repeat: no-repeat;
  475. background-size: 16px;
  476. padding-right: 30px;
  477. }
  478. /* general styles for the content area */
  479. .section {
  480. display: block;
  481. padding: 30px;
  482. color: #555;
  483. margin-bottom: 24px;
  484. &.hidden {
  485. display: none !important;
  486. }
  487. }
  488. .sub-section {
  489. position: relative;
  490. margin-top: 10px;
  491. margin-left: 27px;
  492. margin-bottom: 10px;
  493. }
  494. /* no top border for first settings item */
  495. #app-content > .section:first-child {
  496. border-top: none;
  497. }
  498. /* heading styles */
  499. h2 {
  500. font-size: 20px;
  501. font-weight: 300;
  502. margin-bottom: 12px;
  503. line-height: 140%;
  504. }
  505. h3 {
  506. font-size: 15px;
  507. font-weight: 300;
  508. margin: 12px 0;
  509. }
  510. /* slight position correction of checkboxes and radio buttons */
  511. .section input {
  512. &[type='checkbox'], &[type='radio'] {
  513. vertical-align: -2px;
  514. margin-right: 4px;
  515. }
  516. }
  517. .appear {
  518. opacity: 1;
  519. -webkit-transition: opacity 500ms ease 0s;
  520. -moz-transition: opacity 500ms ease 0s;
  521. -ms-transition: opacity 500ms ease 0s;
  522. -o-transition: opacity 500ms ease 0s;
  523. transition: opacity 500ms ease 0s;
  524. &.transparent {
  525. opacity: 0;
  526. }
  527. }
  528. /* do not use italic typeface style, instead lighter color */
  529. em {
  530. font-style: normal;
  531. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
  532. opacity: .5;
  533. }
  534. /* generic dropdown style */
  535. .dropdown {
  536. background: #eee;
  537. border-bottom-left-radius: 5px;
  538. border-bottom-right-radius: 5px;
  539. box-shadow: 0 1px 1px #777;
  540. display: block;
  541. margin-right: 0;
  542. position: absolute;
  543. right: 0;
  544. width: 420px;
  545. z-index: 500;
  546. padding: 16px;
  547. }
  548. /* generic tab styles */
  549. .tabHeaders {
  550. display: inline-block;
  551. margin: 15px;
  552. .tabHeader {
  553. float: left;
  554. padding: 5px;
  555. cursor: pointer;
  556. color: #888;
  557. margin-bottom: 1px;
  558. a {
  559. color: #888;
  560. margin-bottom: 1px;
  561. }
  562. &.selected {
  563. font-weight: 600;
  564. border-bottom: 1px solid #333;
  565. }
  566. &:hover {
  567. border-bottom: 1px solid #333;
  568. }
  569. &.selected, &:hover {
  570. margin-bottom: 0px;
  571. color: #000;
  572. a {
  573. margin-bottom: 0px;
  574. color: #000;
  575. }
  576. }
  577. }
  578. }
  579. .tabsContainer {
  580. clear: left;
  581. .tab {
  582. padding: 0 15px 15px;
  583. }
  584. }
  585. /* popover menu styles (use together with 'bubble' class) */
  586. .popovermenu {
  587. .menuitem {
  588. cursor: pointer;
  589. vertical-align: middle;
  590. > span {
  591. cursor: pointer;
  592. vertical-align: middle;
  593. }
  594. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
  595. filter: alpha(opacity = 50);
  596. opacity: .5;
  597. &:hover, &:focus, &.active {
  598. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  599. filter: alpha(opacity = 100);
  600. opacity: 1;
  601. }
  602. img {
  603. padding: initial;
  604. }
  605. }
  606. a.menuitem, label.menuitem, .menuitem {
  607. padding: 10px !important;
  608. width: auto;
  609. }
  610. &.hidden {
  611. display: none;
  612. }
  613. .menuitem {
  614. display: flex !important;
  615. line-height: 30px;
  616. color: #000;
  617. align-items: center;
  618. .icon, .no-icon {
  619. display: inline-block;
  620. width: 16px;
  621. height: 16px;
  622. margin-right: 10px;
  623. vertical-align: middle;
  624. }
  625. opacity: 0.5;
  626. }
  627. li:hover .menuitem {
  628. opacity: 1;
  629. }
  630. }