Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

_toolbars.scss 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633
  1. /**
  2. * Round badge.
  3. */
  4. .badge-round {
  5. background-color: $toolbarBadgeBackground;
  6. border-radius: 50%;
  7. box-sizing: border-box;
  8. color: $toolbarBadgeColor;
  9. // Do not inherit the font-family from the toolbar button, because it's an
  10. // icon style.
  11. font-family: $baseFontFamily;
  12. font-size: 9px;
  13. font-weight: 700;
  14. line-height: 13px;
  15. min-width: 13px;
  16. overflow: hidden;
  17. text-align: center;
  18. text-overflow: ellipsis;
  19. vertical-align: middle;
  20. }
  21. .use-new-toolbox {
  22. .cxGWJB{
  23. bottom: calc(#{$newToolbarSize} + 15px);
  24. }
  25. .gXSEsl:nth-child(n+2) {
  26. transform: translateX(0) translateY(100%) translateY(calc(#{$newToolbarSize} + 25px));
  27. -ms-transform: translateX(0) translateY(100%) translateY(calc(#{$newToolbarSize} + 25px));
  28. -webkit-transform: translateX(0) translateY(100%) translateY(calc(#{$newToolbarSize} + 25px));
  29. }
  30. }
  31. .toolbar-container {
  32. display: block;
  33. left:0;
  34. min-height: 100px;
  35. opacity: 0;
  36. pointer-events: none;
  37. position: absolute;
  38. right:0;
  39. text-align: center;
  40. top:0;
  41. z-index: $toolbarZ;
  42. }
  43. /**
  44. * Common toolbar styles.
  45. */
  46. .toolbar {
  47. height: 100%;
  48. pointer-events: auto;
  49. position: relative;
  50. z-index: $toolbarZ;
  51. /**
  52. * Ensure nested elements that don't have a button class, maybe because they
  53. * are wrapped in a React Element, still display in a line.
  54. */
  55. > div {
  56. display: inline-block;
  57. }
  58. /**
  59. * Always on top overrides.
  60. */
  61. &.always-on-top {
  62. /**
  63. * Toolbar button styles for always on top.
  64. */
  65. .button {
  66. font-size: $alwaysOnTopToolbarFontSize;
  67. height: $alwaysOnTopToolbarSize;
  68. line-height: $alwaysOnTopToolbarSize;
  69. width: $alwaysOnTopToolbarSize;
  70. &_hangup, &_hangup:hover {
  71. font-size: $alwaysOnTopToolbarFontSize;
  72. }
  73. }
  74. }
  75. /**
  76. * Toolbar button styles.
  77. */
  78. .button {
  79. color: $toolbarButtonColor;
  80. cursor: pointer;
  81. z-index: $zindex1;
  82. display: inline-block;
  83. font-size: $toolbarFontSize;
  84. height: $defaultToolbarSize;
  85. line-height: $defaultToolbarSize;
  86. position: relative;
  87. text-align: center;
  88. top:0px;
  89. vertical-align: middle;
  90. width: $defaultToolbarSize;
  91. &[disabled] {
  92. opacity: 0.5;
  93. }
  94. &:hover, &:active {
  95. color: $toolbarButtonColor;
  96. cursor: pointer;
  97. text-decoration: none;
  98. }
  99. &_hangup, &_hangup:hover {
  100. color: $hangupColor;
  101. font-size: $hangupFontSize;
  102. }
  103. &:not(.toggled) {
  104. &:hover, &:active {
  105. // sum opacity with background layer should give us 0.8
  106. background: $toolbarSelectBackground;
  107. }
  108. }
  109. &.toggled {
  110. background: $toolbarToggleBackground;
  111. &.icon-camera {
  112. @extend .icon-camera-disabled;
  113. }
  114. &.icon-full-screen {
  115. @extend .icon-exit-full-screen;
  116. }
  117. &.icon-microphone {
  118. @extend .icon-mic-disabled;
  119. }
  120. }
  121. &.unclickable {
  122. cursor: default;
  123. &:hover, &:active, &.selected {
  124. background: none;
  125. cursor: default;
  126. }
  127. }
  128. }
  129. /**
  130. * Primary toolbar styles.
  131. */
  132. &_primary {
  133. background-color: $toolbarBackground;
  134. position: absolute;
  135. left: 50%;
  136. top: 30px;
  137. display: inline-block;
  138. width: auto;
  139. height: $defaultToolbarSize;
  140. border-radius: 3px;
  141. opacity: 0;
  142. &.always-on-top {
  143. height: $alwaysOnTopToolbarSize;
  144. top: 10px;
  145. }
  146. @include transform(translateX(-50%));
  147. > a:first-child.button,
  148. > div:first-child .button {
  149. border-bottom-left-radius: 3px;
  150. border-top-left-radius: 3px;
  151. }
  152. > a:last-child.button,
  153. > div:last-child .button {
  154. border-bottom-right-radius: 3px;
  155. border-top-right-radius: 3px;
  156. }
  157. }
  158. &_primary a.button:last-child::after {
  159. content: none;
  160. }
  161. /**
  162. * Secondary toolbar styles.
  163. */
  164. &_secondary {
  165. background-color: $secondaryToolbarBg;
  166. position: absolute;
  167. align-items: center;
  168. box-sizing: border-box;
  169. display: -moz-box;
  170. display: -ms-flexbox;
  171. display: -webkit-box;
  172. display: -webkit-flex;
  173. display: flex;
  174. flex-direction: column;
  175. flex-wrap: nowrap;
  176. height: 100%;
  177. justify-content: flex-start;
  178. left: 0;
  179. padding-top: 24px;
  180. pointer-events: none;
  181. top: 0;
  182. transform: translateX(-100%);
  183. width: $defaultToolbarSize;
  184. -webkit-transform: translateX(-100%);
  185. .button {
  186. font-size: $secToolbarFontSize;
  187. height: $secToolbarLineHeight;
  188. line-height: $secToolbarLineHeight;
  189. }
  190. > * {
  191. pointer-events: auto
  192. }
  193. .button.toggled:not(.icon-raised-hand):not(.button-active) {
  194. background: $secondaryToolbarBg;
  195. cursor: pointer;
  196. text-decoration: none;
  197. &.unclickable {
  198. cursor: default;
  199. &:hover, &:active, &.selected {
  200. background: none;
  201. cursor: default;
  202. }
  203. }
  204. }
  205. }
  206. /**
  207. * Styles the toolbar in filmstrip-only mode.
  208. */
  209. &_filmstrip-only {
  210. background-color: $toolbarBackground;
  211. border-radius: 3px;
  212. display: inline-block;
  213. height: auto;
  214. width: $defaultFilmStripOnlyToolbarSize;
  215. .button {
  216. height: 37px;
  217. line-height: 37px !important;
  218. width: 37px;
  219. }
  220. .button-popover-message {
  221. width: 100px;
  222. }
  223. .toolbar-button-wrapper:first-child .button {
  224. border-top-left-radius: 3px;
  225. border-top-right-radius: 3px;
  226. }
  227. .toolbar-button-wrapper:last-child .button {
  228. border-bottom-right-radius: 3px;
  229. border-bottom-left-radius: 3px;
  230. }
  231. }
  232. /**
  233. * Toolbar specific round badge.
  234. */
  235. .badge-round {
  236. bottom: 9px;
  237. position: absolute;
  238. right: 9px;
  239. }
  240. }
  241. /**
  242. * TODO: when the old filmstrip has been removed, remove the "new-" prefix.
  243. */
  244. .new-toolbox {
  245. background-color: $newToolbarBackgroundColor;
  246. bottom: calc((#{$newToolbarSize} * 2) * -1);
  247. box-sizing: border-box;
  248. display: flex;
  249. justify-content: space-between;
  250. padding: 5px 20px;
  251. position: absolute;
  252. transition: bottom .3s ease-in;
  253. width: 100%;
  254. z-index: $toolbarZ;
  255. &.visible {
  256. bottom: 0;
  257. }
  258. &.no-buttons {
  259. display: none;
  260. }
  261. .button-group-center,
  262. .button-group-left,
  263. .button-group-right {
  264. display: flex;
  265. width: 33%;
  266. }
  267. .button-group-center {
  268. justify-content: center;
  269. }
  270. .button-group-right {
  271. justify-content: flex-end;
  272. }
  273. /**
  274. * Overwrite font-awesome styling to match jitsi-icon styling.
  275. */
  276. .fa {
  277. font-size: 1.22em;
  278. }
  279. i {
  280. border-radius: 5px;
  281. cursor: pointer;
  282. display: block;
  283. height: 100%;
  284. line-height: inherit;
  285. width: 100%;
  286. }
  287. i:hover {
  288. background-color: $newToolbarButtonHoverColor;
  289. }
  290. i.toggled {
  291. background: $newToolbarButtonToggleColor;
  292. }
  293. i.toggled:hover {
  294. background-color: $newToolbarButtonHoverColor;
  295. }
  296. i.disabled {
  297. cursor: initial
  298. }
  299. i.disabled:hover {
  300. background-color: initial;
  301. }
  302. .icon-hangup {
  303. color: $hangupColor;
  304. }
  305. .overflow-menu {
  306. font-size: 1.2em;
  307. list-style-type: none;
  308. /**
  309. * Undo atlaskit padding by reducing margins.
  310. */
  311. margin: -15px -24px;
  312. padding: 0;
  313. .overflow-menu-item {
  314. align-items: center;
  315. cursor: pointer;
  316. display: flex;
  317. padding: 5px 10px;
  318. &:hover {
  319. background: rgba(0255, 255, 255, 0.2);
  320. }
  321. &.unclickable {
  322. cursor: default;
  323. }
  324. &.unclickable:hover {
  325. background: inherit;
  326. }
  327. }
  328. .overflow-menu-item-icon {
  329. margin-right: 10px;
  330. i {
  331. display: inline;
  332. }
  333. i:hover {
  334. background-color: initial;
  335. }
  336. img {
  337. max-width: 18px;
  338. max-height: 18px;
  339. }
  340. }
  341. .profile-text {
  342. max-width: 150px;
  343. text-overflow: ellipsis;
  344. overflow: hidden;
  345. white-space: nowrap;
  346. }
  347. }
  348. .toolbox-button {
  349. color: $toolbarButtonColor;
  350. cursor: pointer;
  351. display: inline-block;
  352. font-size: $newToolbarFontSize;
  353. line-height: $newToolbarSize;
  354. margin: 0 10px;
  355. text-align: center;
  356. }
  357. .toolbar-button-with-badge {
  358. position: relative;
  359. .badge-round {
  360. bottom: 9px;
  361. position: absolute;
  362. right: 9px;
  363. }
  364. }
  365. .toolbox-button-wth-dialog {
  366. display: inline-block;
  367. }
  368. .toolbox-icon {
  369. height: $newToolbarSize;
  370. width: $newToolbarSize;
  371. }
  372. }
  373. .filmstrip-toolbox {
  374. background-color: $newToolbarBackgroundColor;
  375. box-sizing: border-box;
  376. display: flex;
  377. flex-direction: column;
  378. z-index: $toolbarZ;
  379. i {
  380. cursor: pointer;
  381. display: block;
  382. font-size: $newToolbarFontSize;
  383. height: 37px;
  384. line-height: 37px;
  385. width: 37px;
  386. }
  387. i:hover {
  388. background-color: $newToolbarButtonHoverColor;
  389. }
  390. i.toggled {
  391. background: $newToolbarButtonToggleColor;
  392. }
  393. i.toggled:hover {
  394. background-color: $newToolbarButtonHoverColor;
  395. }
  396. .icon-hangup {
  397. color: $hangupColor;
  398. }
  399. .toolbox-button {
  400. color: $toolbarButtonColor;
  401. cursor: pointer;
  402. text-align: center;
  403. }
  404. border-radius: 3px;
  405. .toolbox-button:first-child i {
  406. border-top-left-radius: 3px;
  407. border-top-right-radius: 3px;
  408. }
  409. .toolbox-button:last-child i {
  410. border-bottom-left-radius: 3px;
  411. border-bottom-right-radius: 3px;
  412. }
  413. }
  414. .filmstrip-only {
  415. .toolbox,
  416. .toolbox-toolbars {
  417. align-items: center;
  418. display: flex;
  419. }
  420. }
  421. .subject {
  422. background: linear-gradient(to bottom, rgba(255,255,255,.85) , rgba(255,255,255,.35));
  423. border-bottom-left-radius: 12px;
  424. border-bottom-right-radius: 12px;
  425. box-shadow: 0 0 2px #000000, 0 0 10px #000000;
  426. margin-left: 40%;
  427. margin-right: 40%;
  428. padding: 5px;
  429. position: relative;
  430. text-align: center;
  431. width: auto;
  432. z-index: $zindex3;
  433. &.subject_slide-in {
  434. top: 80px;
  435. @include transition(top .3s ease-in);
  436. }
  437. &.subject_slide-out {
  438. top: 0;
  439. @include transition(top .3s ease-out);
  440. }
  441. }
  442. #toolbar_button_profile {
  443. height: $toolbarAvatarSize + 2*$toolbarAvatarPadding;
  444. }
  445. a.button>#avatar {
  446. border-radius: 50%;
  447. padding-bottom: $toolbarAvatarPadding;
  448. padding-top: $toolbarAvatarPadding;
  449. width: $toolbarAvatarSize;
  450. }
  451. #feedbackButton {
  452. margin-top: auto;
  453. }
  454. /**
  455. * START of slide in animation for extended toolbar.
  456. */
  457. @include keyframes(slideInX) {
  458. 0% { transform: translateX(-100%); }
  459. 100% { transform: translateX(0%); }
  460. }
  461. .slideInX {
  462. @include animation('slideInX .5s forwards');
  463. }
  464. @include keyframes(slideOutX) {
  465. 0% { transform: translateX(0%); }
  466. 100% { transform: translateX(-100%); }
  467. }
  468. .slideOutX {
  469. @include animation('slideOutX .5s forwards');
  470. }
  471. @include keyframes(slideInExtX) {
  472. 0% { transform: translateX(-500%); }
  473. 100% { transform: translateX(0%); }
  474. }
  475. .slideInExtX {
  476. @include animation('slideInExtX .5s forwards');
  477. }
  478. @include keyframes(slideOutExtX) {
  479. 0% { transform: translateX(0%); }
  480. 100% { transform: translateX(-500%); }
  481. }
  482. .slideOutExtX {
  483. @include animation('slideOutExtX .5s forwards');
  484. }
  485. /**
  486. * END of slide out animation for extended toolbar.
  487. */
  488. /**
  489. * START of slide in / out animation for main toolbar.
  490. */
  491. @include keyframes(slideInY) {
  492. 100% { transform: translateY(0%); }
  493. }
  494. .slideInY {
  495. @include animation('slideInY .5s forwards');
  496. }
  497. @include keyframes(slideOutY) {
  498. 0% { transform: translateY(0%); }
  499. 100% { transform: translateY(-100%); }
  500. }
  501. .slideOutY {
  502. @include animation('slideOutY .5s forwards');
  503. }
  504. /**
  505. * END of slide in / out animation for main toolbar.
  506. */
  507. /**
  508. * START of slide in animation for extended toolbar panel.
  509. */
  510. @include keyframes(slideInExt) {
  511. from { width: 0px; }
  512. to { width: $sidebarWidth; } // TO FIX: Make this value a percentage.
  513. }
  514. .slideInExt {
  515. @include animation("slideInExt .5s forwards");
  516. }
  517. @include keyframes(slideOutExt) {
  518. from { width: $sidebarWidth; } // TO FIX: Make this value a percentage.
  519. to { width: 0px; }
  520. }
  521. .slideOutExt {
  522. @include animation("slideOutExt .5s forwards");
  523. }
  524. /**
  525. * START of fade in animation for main toolbar
  526. */
  527. .fadeIn {
  528. opacity: 1;
  529. @include transition(all .3s ease-in);
  530. }
  531. .fadeOut {
  532. opacity: 0;
  533. @include transition(all .3s ease-out);
  534. }