Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

header.scss 8.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. /**
  2. * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
  3. * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
  4. * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
  5. * @copyright Copyright (c) 2016, Jos Poortvliet <jos@opensuse.org>
  6. * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
  7. * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
  8. * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
  9. * @copyright Copyright (c) 2015, Jan-Christoph Borchardt <hey@jancborchardt.net>
  10. * @copyright Copyright (c) 2015, Volker E <volker.e@temporaer.net>
  11. *
  12. * @license GNU AGPL version 3 or any later version
  13. *
  14. */
  15. /* prevent ugly selection effect on accidental selection */
  16. #header,
  17. #navigation,
  18. #expanddiv {
  19. -webkit-user-select: none;
  20. -moz-user-select: none;
  21. -ms-user-select: none;
  22. }
  23. /* removed until content-focusing issue is fixed */
  24. #skip-to-content a {
  25. position: absolute;
  26. left: -10000px;
  27. top: auto;
  28. width: 1px;
  29. height: 1px;
  30. overflow: hidden;
  31. &:focus {
  32. left: 76px;
  33. top: -9px;
  34. color: #fff;
  35. width: auto;
  36. height: auto;
  37. }
  38. }
  39. /* HEADERS ------------------------------------------------------------------ */
  40. #body-user #header,
  41. #body-settings #header,
  42. #body-public #header {
  43. display: inline-flex;
  44. position: fixed;
  45. top: 0;
  46. left: 0;
  47. right: 0;
  48. z-index: 2000;
  49. height: 45px;
  50. background-color: #0082c9;
  51. box-sizing: border-box;
  52. justify-content: space-between;
  53. }
  54. /* LOGO and APP NAME -------------------------------------------------------- */
  55. #nextcloud {
  56. padding: 5px;
  57. padding-bottom: 0;
  58. height: 45px;
  59. /* header height */
  60. box-sizing: border-box;
  61. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  62. opacity: 1;
  63. &:focus {
  64. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
  65. opacity: .75;
  66. }
  67. &:hover, &:active {
  68. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  69. opacity: 1;
  70. }
  71. }
  72. #header {
  73. .logo {
  74. background-image: url('../img/logo-icon.svg?v=1');
  75. background-repeat: no-repeat;
  76. background-size: 175px;
  77. background-position: center;
  78. width: 252px;
  79. height: 120px;
  80. margin: 0 auto;
  81. }
  82. .logo-icon {
  83. /* display logo so appname can be shown next to it */
  84. display: inline-block;
  85. background-image: url('../img/logo-icon.svg?v=1');
  86. background-repeat: no-repeat;
  87. background-position: center center;
  88. width: 62px;
  89. height: 34px;
  90. }
  91. .header-appname-container {
  92. display: inline-block;
  93. padding-top: 22px;
  94. padding-right: 10px;
  95. flex-shrink: 0;
  96. }
  97. /* show caret indicator next to logo to make clear it is tappable */
  98. .icon-caret {
  99. display: inline-block;
  100. width: 12px;
  101. height: 12px;
  102. margin: 0;
  103. margin-top: -21px;
  104. padding: 0;
  105. vertical-align: middle;
  106. }
  107. #header-left,
  108. #header-right {
  109. display: inline-flex;
  110. align-items: center;
  111. }
  112. #header-left {
  113. flex: 0 0;
  114. flex-grow: 1;
  115. }
  116. #header-right {
  117. justify-content: flex-end;
  118. }
  119. }
  120. /* hover effect for app switcher label */
  121. .header-appname-container .header-appname {
  122. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
  123. opacity: .75;
  124. }
  125. .menutoggle {
  126. .icon-caret {
  127. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
  128. opacity: .75;
  129. }
  130. &:hover {
  131. .header-appname, .icon-caret {
  132. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  133. opacity: 1;
  134. }
  135. }
  136. &:focus {
  137. .header-appname, .icon-caret {
  138. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  139. opacity: 1;
  140. }
  141. }
  142. &.active {
  143. .header-appname, .icon-caret {
  144. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  145. opacity: 1;
  146. }
  147. }
  148. }
  149. /* show appname next to logo */
  150. .header-appname {
  151. display: inline-block;
  152. position: relative;
  153. color: #fff;
  154. font-size: 16px;
  155. font-weight: 300;
  156. margin: 0;
  157. margin-top: -27px;
  158. padding: 7px 0 7px 5px;
  159. vertical-align: middle;
  160. }
  161. /* do not show menu toggle on public share links as there is no menu */
  162. #body-public #header .icon-caret {
  163. display: none;
  164. }
  165. /* NAVIGATION --------------------------------------------------------------- */
  166. #navigation {
  167. position: fixed;
  168. top: 45px;
  169. left: 10px;
  170. width: 265px;
  171. max-height: 85%;
  172. margin-top: 0;
  173. padding-bottom: 10px;
  174. background-color: rgba(255, 255, 255, 0.97);
  175. box-shadow: 0 1px 10px rgba(150, 150, 150, 0.75);
  176. border-radius: 3px;
  177. border-top-left-radius: 0;
  178. border-top-right-radius: 0;
  179. display: none;
  180. box-sizing: border-box;
  181. /*overflow-y: auto;
  182. overflow-x: hidden;*/
  183. z-index: 2000;
  184. &:after {
  185. bottom: 100%;
  186. border: solid transparent;
  187. content: ' ';
  188. height: 0;
  189. width: 0;
  190. position: absolute;
  191. pointer-events: none;
  192. border-color: rgba(0, 0, 0, 0);
  193. border-bottom-color: rgba(255, 255, 255, 0.97);
  194. border-width: 10px;
  195. margin-left: -10px;
  196. left: 47%;
  197. }
  198. * {
  199. box-sizing: border-box;
  200. }
  201. li {
  202. display: inline-block;
  203. }
  204. a {
  205. position: relative;
  206. width: 80px;
  207. height: 80px;
  208. display: inline-block;
  209. text-align: center;
  210. padding: 20px 0;
  211. span {
  212. display: inline-block;
  213. font-size: 13px;
  214. padding-bottom: 0;
  215. padding-left: 0;
  216. width: 80px;
  217. text-align: center;
  218. color: #000;
  219. white-space: nowrap;
  220. overflow: hidden;
  221. text-overflow: ellipsis;
  222. }
  223. svg,
  224. span {
  225. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
  226. opacity: .5;
  227. }
  228. &:hover svg,
  229. &:focus svg,
  230. &:hover span,
  231. &:focus span {
  232. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  233. opacity: 1;
  234. }
  235. &.active {
  236. svg, span {
  237. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  238. opacity: 1;
  239. }
  240. }
  241. }
  242. .app-icon {
  243. margin: 0 auto;
  244. padding: 0;
  245. max-height: 32px;
  246. max-width: 32px;
  247. }
  248. /* loading feedback for apps */
  249. .app-loading {
  250. .icon-loading-dark {
  251. display: inline !important;
  252. position: absolute;
  253. top: 20px;
  254. left: 24px;
  255. width: 32px;
  256. height: 32px;
  257. }
  258. .app-icon {
  259. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
  260. opacity: 0;
  261. }
  262. }
  263. }
  264. /* Apps management */
  265. #apps-management {
  266. min-height: initial;
  267. height: initial;
  268. margin: 0;
  269. a {
  270. svg,
  271. span {
  272. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=30)';
  273. opacity: .3;
  274. }
  275. /* icon opacity and hover effect */
  276. &:hover svg,
  277. &:focus svg,
  278. &.active svg,
  279. &:hover span,
  280. &:focus span,
  281. &.active span {
  282. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  283. opacity: 1;
  284. }
  285. }
  286. }
  287. #apps {
  288. max-height: calc(100vh - 100px);
  289. overflow: auto;
  290. }
  291. /* USER MENU -----------------------------------------------------------------*/
  292. #settings {
  293. display: inline-block;
  294. color: #ddd;
  295. cursor: pointer;
  296. .icon-loading-small-dark {
  297. display: inline-block;
  298. margin-bottom: -3px;
  299. margin-right: 6px;
  300. background-size: 16px 16px;
  301. }
  302. flex: 0 0 auto;
  303. }
  304. /* User menu on the right */
  305. #expand {
  306. display: flex;
  307. align-items: center;
  308. padding: 7px 30px 6px 10px;
  309. cursor: pointer;
  310. * {
  311. cursor: pointer;
  312. }
  313. img {
  314. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
  315. opacity: .7;
  316. margin-bottom: -2px;
  317. }
  318. &:hover,
  319. &:focus,
  320. &:active {
  321. color: #fff;
  322. img {
  323. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  324. opacity: 1;
  325. }
  326. }
  327. .icon-caret {
  328. margin-top: 0;
  329. }
  330. /* Profile picture in header */
  331. .avatardiv {
  332. margin-right: 8px;
  333. cursor: pointer;
  334. height: 32px;
  335. width: 32px;
  336. img {
  337. opacity: 1;
  338. cursor: pointer;
  339. }
  340. /* do not show display name when profile picture is present */
  341. &.avatardiv-shown + #expandDisplayName {
  342. display: none;
  343. }
  344. }
  345. }
  346. #expanddiv {
  347. position: absolute;
  348. right: 13px;
  349. top: 45px;
  350. z-index: 2000;
  351. display: none;
  352. background: rgb(255, 255, 255);
  353. box-shadow: 0 1px 10px rgba(150, 150, 150, 0.75);
  354. border-radius: 3px;
  355. border-top-left-radius: 0;
  356. border-top-right-radius: 0;
  357. box-sizing: border-box;
  358. &:after {
  359. /* position of dropdown arrow */
  360. right: 15px;
  361. border: 10px solid transparent;
  362. border-color: transparent;
  363. border-bottom-color: #fff;
  364. bottom: 100%;
  365. content: ' ';
  366. height: 0;
  367. width: 0;
  368. position: absolute;
  369. pointer-events: none;
  370. margin-left: -10px;
  371. }
  372. a {
  373. display: block;
  374. height: 40px;
  375. color: #000;
  376. padding: 10px 12px 0;
  377. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
  378. opacity: .5;
  379. box-sizing: border-box;
  380. img {
  381. margin-bottom: -3px;
  382. margin-right: 6px;
  383. }
  384. &:hover,
  385. &:focus,
  386. &:active,
  387. &.active {
  388. -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
  389. opacity: 1;
  390. }
  391. }
  392. }