main.scss 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. $black: #000 !default
  2. $darkgray: #888 !default
  3. $gray: #a9a9a9 !default
  4. $lightgray: #d3d3d3 !default
  5. $bg-color: #eee !default
  6. $white: #fff !default
  7. $font-color: $black !default
  8. $font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif !default
  9. $font-disabled-color: $gray !default
  10. $panel-bg-color: $white !default
  11. $panel-border-color: $lightgray !default
  12. $channel-tree-color: $lightgray !default
  13. $channel-hover-bg-color: $lightgray !default
  14. $channel-selected-bg-color: lightblue !default
  15. $channel-selected-border-color: $darkgray !default
  16. $tooltip-border-color: $darkgray !default
  17. $chat-channel-color: orange !default
  18. $chat-user-color: green !default
  19. $chat-input-color: $font-color !default
  20. $mic-volume-border-color: $black !default
  21. $talk-outline-color: green !default
  22. $whisper-outline-color: purple !default
  23. $shout-outline-color: cyan !default
  24. $toolbar-hover-bg-color: $lightgray !default
  25. $toolbar-hover-border-color: $gray !default
  26. $toolbar-active-bg-color: $white !default
  27. $toolbar-active-border-color: $toolbar-hover-bg-color !default
  28. $toolbar-divider-color: $lightgray !default
  29. $dialog-header-color: $white !default
  30. $dialog-header-bg-color: $darkgray !default
  31. $dialog-header-border-bottom-color: $gray !default
  32. $dialog-bg-color: $bg-color !default
  33. $dialog-border-color: $darkgray !default
  34. $dialog-color: $font-color !default
  35. $dialog-button-border-color: $darkgray !default
  36. $dialog-button-bg-color: $white !default
  37. $dialog-button-color: $dialog-color !default
  38. $dialog-input-border-color: $darkgray !default
  39. $dialog-input-bg-color: $white !default
  40. $dialog-input-color: $dialog-color !default
  41. $context-menu-bg-color: $bg-color !default
  42. $context-menu-border-color: $panel-border-color !default
  43. $context-menu-hover-bg-color: $toolbar-hover-bg-color !default
  44. $tooltip-bg-color: $panel-bg-color !default
  45. $channels-bg-color: $panel-bg-color !default
  46. $channels-border-color: $panel-border-color !default
  47. $chat-bg-color: $panel-bg-color !default
  48. $chat-border-color: $panel-border-color !default
  49. html, body {
  50. background-color: $bg-color;
  51. color: $font-color;
  52. font-family: $font-family;
  53. margin: 0;
  54. overflow: hidden;
  55. height: 100%
  56. }
  57. #container {
  58. height: 100%;
  59. }
  60. .channel-root-container {
  61. text-size: 16px;
  62. margin-left: 2px;
  63. background-color: $channels-bg-color;
  64. border: 1px solid $channels-border-color;
  65. float: left;
  66. border-radius: 3px;
  67. overflow-x: hidden;
  68. overflow-y: auto;
  69. }
  70. .toolbar-horizontal ~ .channel-root-container {
  71. margin-top: 2px;
  72. width: calc(59% - 6px);
  73. height: calc(98% - 38px);
  74. }
  75. .toolbar-vertical ~ .channel-root-container {
  76. margin-top: 1%;
  77. width: calc(59% - 6px);
  78. height: calc(98% - 6px);
  79. }
  80. .chat {
  81. margin-right: 2px;
  82. float: left;
  83. }
  84. .toolbar-horizontal ~ .chat {
  85. margin-top: 2px;
  86. margin-left: 1%;
  87. width: 39%;
  88. height: calc(98% - 38px);
  89. }
  90. .toolbar-vertical ~ .chat {
  91. margin-top: 1%;
  92. margin-left: 2px;
  93. width: calc(39% - 36px);
  94. height: calc(98% - 4px);
  95. }
  96. .log {
  97. background-color: $chat-bg-color;
  98. height: calc(100% - 42px);
  99. padding: 5px;
  100. border: 1px $chat-border-color solid;
  101. border-radius: 3px;
  102. overflow-x: hidden;
  103. overflow-y: scroll;
  104. }
  105. .branch img {
  106. height: 19px;
  107. }
  108. .branch {
  109. position: absolute;
  110. padding-top: 3px;
  111. padding-bottom: 3px;
  112. background-color: $channels-bg-color;
  113. }
  114. .channel-sub {
  115. margin-left: 9px;
  116. border-left: 1px transparent solid;
  117. padding-left: 9px;
  118. }
  119. .channel-wrapper:nth-last-child(n + 2) > .branch:not(:empty) + .channel-sub {
  120. border-left: 1px $channel-tree-color solid;
  121. }
  122. .channel-tree,
  123. .user-wrapper {
  124. margin-left: 9px;
  125. }
  126. .channel-tree,
  127. .user-tree {
  128. position: absolute;
  129. }
  130. .channel-tree::before,
  131. .user-tree::before {
  132. content: "";
  133. display: block;
  134. position: relative;
  135. width: 9px;
  136. border-left: 1px $channel-tree-color solid;
  137. border-bottom: 1px $channel-tree-color solid;
  138. height: 14px;
  139. }
  140. .channel-wrapper:nth-last-child(n + 2) > .channel-tree:after,
  141. .user-wrapper:nth-last-child(n + 2) .user-tree:after {
  142. content: "";
  143. display: block;
  144. position: relative;
  145. width: 0px;
  146. border-left: 1px $channel-tree-color solid;
  147. height: 14px;
  148. }
  149. .user {
  150. margin-left: 9px;
  151. }
  152. .user-avatar, .user-talk {
  153. vertical-align: middle;
  154. }
  155. @mixin drop-shadow-4x($size, $blur, $color) {
  156. filter: drop-shadow(#{+$size} #{+$size} $blur $color)
  157. drop-shadow(#{+$size} #{-$size} $blur $color)
  158. drop-shadow(#{-$size} #{+$size} $blur $color)
  159. drop-shadow(#{-$size} #{-$size} $blur $color);
  160. }
  161. @mixin user-avatar-drop-shadow($color) {
  162. @include drop-shadow-4x(1px, 1px, $color);
  163. }
  164. .user-avatar-talk-on {
  165. @include user-avatar-drop-shadow($talk-outline-color);
  166. }
  167. .user-avatar-talk-whisper {
  168. @include user-avatar-drop-shadow($whisper-outline-color);
  169. }
  170. .user-avatar-talk-shout {
  171. @include user-avatar-drop-shadow($shout-outline-color);
  172. }
  173. .user-status, .channel-status {
  174. float: right;
  175. }
  176. .user,.channel{
  177. height: 23px;
  178. line-height: 23px;
  179. padding: 2px;
  180. border: 1px solid transparent;
  181. }
  182. .selected {
  183. background-color: $channel-selected-bg-color !important;
  184. border: 1px solid $channel-selected-border-color;
  185. border-radius: 3px;
  186. }
  187. .user:hover,.channel:hover {
  188. background-color: $channel-hover-bg-color;
  189. }
  190. .thisClient {
  191. font-weight: bold
  192. }
  193. .currentChannel {
  194. font-weight: bold
  195. }
  196. .user-status img, .channel-status img {
  197. margin-top: 2px;
  198. width: 19px;
  199. height: 19px
  200. }
  201. .channel img, .user img {
  202. width: auto;
  203. height: 19px;
  204. }
  205. .channel-name, .user-name {
  206. display: inline;
  207. }
  208. .channel:hover .tooltip, .user:hover .tooltip {
  209. visibility: visible;
  210. height: auto;
  211. transition-delay: 1s;
  212. }
  213. .tooltip {
  214. visibility: hidden;
  215. height: 0px;
  216. background: $tooltip-bg-color;
  217. border: 1px solid $tooltip-border-color;
  218. margin-top: 16px;
  219. margin-left: 30px;
  220. padding: 10px;
  221. position: absolute;
  222. z-index: 100;
  223. }
  224. .context-menu {
  225. position: absolute;
  226. z-index: 50;
  227. background: $context-menu-bg-color;
  228. border: 1px solid $context-menu-border-color;
  229. margin: 0;
  230. padding: 0;
  231. list-style: none;
  232. & > li {
  233. padding: 5px 20px;
  234. padding-left: 10px;
  235. &::before {
  236. display: inline-block;
  237. width: 10px;
  238. padding-right: 5px;
  239. content: '';
  240. }
  241. &.checked::before {
  242. content: '✓';
  243. }
  244. &:hover {
  245. background: $context-menu-hover-bg-color;
  246. }
  247. &.disabled {
  248. background: $context-menu-bg-color;
  249. color: $font-disabled-color;
  250. }
  251. }
  252. }
  253. .avatar-view {
  254. position: absolute;
  255. z-index: 200;
  256. max-width: 90%;
  257. max-height: 90%;
  258. top: 0;
  259. bottom: 0;
  260. left: 0;
  261. right: 0;
  262. margin: auto;
  263. }
  264. .toolbar {
  265. display: flex;
  266. align-items: center;
  267. }
  268. .toolbar img {
  269. height: 28px;
  270. width: 28px;
  271. padding: 2px;
  272. border: 1px solid transparent;
  273. border-radius: 3px;
  274. }
  275. .toolbar img:hover {
  276. border: 1px solid $toolbar-hover-bg-color;
  277. background-color: $toolbar-hover-border-color;
  278. }
  279. .toolbar .tb-active {
  280. border: 1px solid $toolbar-active-bg-color;
  281. background-color: $toolbar-active-border-color;
  282. }
  283. .toolbar-horizontal {
  284. flex-direction: row;
  285. height: 36px;
  286. margin-top: 4px;
  287. margin-left: 1%;
  288. padding-left: 5px;
  289. }
  290. .toolbar-vertical {
  291. flex-direction: column;
  292. width: 36px;
  293. margin-top: 1%;
  294. margin-left: 4px;
  295. padding-top: 5px;
  296. float: left;
  297. }
  298. .toolbar-horizontal > * {
  299. margin-right: 5px;
  300. }
  301. .toolbar-vertical > * {
  302. margin-bottom: 5px;
  303. }
  304. .divider {
  305. display: inline-block;
  306. }
  307. .toolbar-horizontal .divider {
  308. height: 32px;
  309. border-left: 1px $toolbar-divider-color solid;
  310. }
  311. .toolbar-vertical .divider {
  312. width: 32px;
  313. border-top: 1px $toolbar-divider-color solid;
  314. }
  315. .toolbar-horizontal .handle-horizontal {
  316. width: auto !important;
  317. border: none !important;
  318. background-color: $bg-color !important;
  319. }
  320. .toolbar-horizontal .handle-vertical {
  321. display: none;
  322. }
  323. .toolbar-vertical .handle-vertical {
  324. height: auto !important;
  325. border: none !important;
  326. background-color: $bg-color !important;
  327. }
  328. .toolbar-vertical .handle-horizontal {
  329. display: none;
  330. }
  331. .channel-icon .channel-icon-active {
  332. display: none;
  333. }
  334. .channel-tag {
  335. font-weight: bold;
  336. color: $chat-channel-color;
  337. }
  338. .user-tag {
  339. font-weight: bold;
  340. color: $chat-user-color;
  341. }
  342. #message-box {
  343. width: 100%;
  344. border: none;
  345. background: none;
  346. color: $chat-input-color;
  347. margin: 5px 0 5px 0;
  348. padding: 0;
  349. height: 20px;
  350. }
  351. form {
  352. margin: 0;
  353. padding: 0;
  354. }
  355. .message-content p {
  356. margin: 0;
  357. }
  358. .tb-information.disabled, .tb-record, .tb-comment {
  359. filter: grayscale(100%);
  360. }
  361. .dialog-header {
  362. height: 20px;
  363. width: calc(100% - 10px);
  364. padding: 5px;
  365. text-align: center;
  366. color: $dialog-header-color;
  367. background-color: $dialog-header-bg-color;
  368. border-bottom: 1px solid $dialog-header-border-bottom-color;
  369. }
  370. .dialog-footer {
  371. width: calc(100% - 20px);
  372. margin: 10px;
  373. }
  374. .dialog-submit {
  375. float: right;
  376. }
  377. .dialog-close, .dialog-submit {
  378. width: 45%;
  379. font-size: 15px;
  380. border: 1px $dialog-button-border-color solid;
  381. border-radius: 3px;
  382. background-color: $dialog-button-bg-color;
  383. color: $dialog-button-color;
  384. padding: 1px;
  385. }
  386. .connect-dialog table {
  387. text-align: center;
  388. width: 100%
  389. }
  390. .dialog {
  391. position: absolute;
  392. max-height: calc(100% - 20px);
  393. max-width: calc(100% - 20px);
  394. top: 50%;
  395. left: 50%;
  396. transform: translate(-50%, -50%);
  397. overflow: auto;
  398. background-color: $dialog-bg-color;
  399. color: $dialog-color;
  400. border: 1px $dialog-border-color solid;
  401. box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
  402. z-index: 20;
  403. }
  404. .settings-dialog table {
  405. width: 100%;
  406. padding: 5px;
  407. }
  408. .settings-dialog td {
  409. width: 50%;
  410. }
  411. .settings-dialog table select {
  412. width: 100%;
  413. }
  414. .settings-dialog table input {
  415. width: 100%;
  416. margin: 0px;
  417. }
  418. .settings-dialog table input[type="checkbox"] {
  419. width: auto;
  420. margin: auto;
  421. }
  422. .settings-dialog .mic-volume-container {
  423. height: 10px;
  424. border: 3px solid $mic-volume-border-color;
  425. }
  426. .settings-dialog .mic-volume {
  427. height: 100%;
  428. }
  429. .join-dialog {
  430. width: 300px;
  431. height: 100px;
  432. top: 50%;
  433. left: 50%;
  434. }
  435. .join-dialog .dialog-submit {
  436. float: none;
  437. width: 200px;
  438. position: absolute;
  439. top: calc(50% - 10px);
  440. left: calc(50% - 100px);
  441. }
  442. .connect-dialog input[type=text], select {
  443. font-size: 15px;
  444. border: 1px $dialog-input-border-color solid;
  445. border-radius: 3px;
  446. background-color: $dialog-input-bg-color;
  447. color: $dialog-input-color;
  448. padding: 2px;
  449. width: calc(100% - 8px);
  450. }
  451. .connect-dialog input[type=password] {
  452. font-size: 15px;
  453. border: 1px $dialog-input-border-color solid;
  454. border-radius: 3px;
  455. background-color: $dialog-input-bg-color;
  456. color: $dialog-input-color;
  457. padding: 2px;
  458. width: calc(100% - 8px);
  459. }
  460. .connection-info-dialog {
  461. h3 {
  462. margin-bottom: 5px;
  463. }
  464. .dialog-content {
  465. padding-left: 20px;
  466. }
  467. }
  468. /****************/
  469. /* Minimal view */
  470. /****************/
  471. .minimal .toolbar-horizontal ~ .channel-root-container {
  472. width: calc(98% - 6px);
  473. }
  474. .minimal .toolbar-vertical ~ .channel-root-container {
  475. width: calc(98% - 42px);
  476. }
  477. .minimal .handle-horizontal {
  478. display: none;
  479. }
  480. .minimal .handle-vertical {
  481. display: none;
  482. }
  483. .minimal .divider {
  484. display: none;
  485. }
  486. .minimal .tb-connect {
  487. display: none;
  488. }
  489. .minimal .tb-information {
  490. display: none;
  491. }
  492. .minimal .tb-record {
  493. display: none;
  494. }
  495. .minimal .tb-comment {
  496. display: none;
  497. }
  498. .minimal .tb-settings {
  499. display: none;
  500. }
  501. .minimal .tb-sourcecode {
  502. display: none;
  503. }
  504. .minimal .chat {
  505. display: none;
  506. }
  507. .minimal .channel-wrapper {
  508. display: none;
  509. }
  510. .minimal .channel {
  511. display: none;
  512. }
  513. .minimal .user-tree {
  514. display: none;
  515. }
  516. .minimal .user-wrapper {
  517. margin-left: 0px;
  518. }
  519. .minimal .user {
  520. margin-left: 0px;
  521. padding-top: 0px;
  522. padding-bottom: 0px;
  523. border: none;
  524. height: 19px;
  525. line-height: 19px;
  526. }
  527. .minimal .user-status {
  528. height: 19px;
  529. }