| | @@ -9,14 +9,18 @@ |
| 9 | 9 | border: none; |
| 10 | 10 | display: flex; |
| 11 | 11 | flex-direction: column; |
| 12 | 12 | border: none; |
| 13 | 13 | align-items: flex-start; |
| 14 | +} |
| 15 | +body.chat .message-widget:last-of-type { |
| 16 | + /* Latest message: reduce bottom gap */ |
| 17 | + margin-bottom: 0.1em; |
| 14 | 18 | } |
| 15 | 19 | body.chat.my-messages-right .message-widget.mine { |
| 16 | 20 | /* Right-aligns a user's own chat messages, similar to how |
| 17 | | - most mobile messaging apps do it. */ |
| 21 | + most/some mobile messaging apps do it. */ |
| 18 | 22 | align-items: flex-end; |
| 19 | 23 | } |
| 20 | 24 | body.chat.my-messages-right .message-widget.notification { |
| 21 | 25 | /* Center-aligns a system-level notification message. */ |
| 22 | 26 | align-items: center; |
| | @@ -77,10 +81,12 @@ |
| 77 | 81 | display: flex; |
| 78 | 82 | flex-direction: column; |
| 79 | 83 | align-items: stretch; |
| 80 | 84 | padding: 0.25em; |
| 81 | 85 | margin-top: 0.25em; |
| 86 | + border: 1px outset; |
| 87 | + border-radius: 0.5em; |
| 82 | 88 | } |
| 83 | 89 | /* Full message timestamps. */ |
| 84 | 90 | body.chat .chat-message-popup > span { white-space: nowrap; } |
| 85 | 91 | /* Container for the message deletion buttons. */ |
| 86 | 92 | body.chat .chat-message-popup > .toolbar { |
| | @@ -137,11 +143,10 @@ |
| 137 | 143 | |
| 138 | 144 | /** Container for the list of /chat messages. */ |
| 139 | 145 | body.chat #chat-messages-wrapper { |
| 140 | 146 | overflow: auto; |
| 141 | 147 | padding: 0 0.25em; |
| 142 | | - margin-bottom: 0.5em; |
| 143 | 148 | } |
| 144 | 149 | body.chat #chat-messages-wrapper.loading > * { |
| 145 | 150 | /* An attempt at reducing flicker when loading lots of messages. */ |
| 146 | 151 | visibility: hidden; |
| 147 | 152 | } |
| | @@ -267,10 +272,11 @@ |
| 267 | 272 | max-height: 45%; |
| 268 | 273 | } |
| 269 | 274 | body.chat .chat-view { |
| 270 | 275 | flex: 20 1 auto |
| 271 | 276 | /*ensure that these grow more than the non-.chat-view elements*/; |
| 277 | + margin-bottom: 0.2em; |
| 272 | 278 | } |
| 273 | 279 | body.chat #chat-config, |
| 274 | 280 | body.chat #chat-preview { |
| 275 | 281 | /* /chat configuration widget */ |
| 276 | 282 | display: flex; |
| | @@ -327,33 +333,53 @@ |
| 327 | 333 | } |
| 328 | 334 | |
| 329 | 335 | body.chat #chat-user-list-wrapper { |
| 330 | 336 | /* Safari can't do fieldsets right, so we emulate one. */ |
| 331 | 337 | border-radius: 0.5em; |
| 332 | | - margin: 0.55em 0 0.2em 0; |
| 333 | | - padding: 0.25em 0.5em; |
| 334 | | - font-size: 85%; |
| 338 | + margin: 1em 0 0.2em 0; |
| 339 | + padding: 0 0.5em; |
| 335 | 340 | border-style: inset; |
| 336 | 341 | border-width: 0 1px 1px 1px/*else collides with the LEGEND*/; |
| 337 | 342 | } |
| 338 | | -body.chat #chat-user-list-wrapper > legend { |
| 343 | +body.chat #chat-user-list-wrapper.collapsed { |
| 344 | + padding: 0; |
| 345 | + margin-bottom: 0; |
| 346 | +} |
| 347 | +body.chat #chat-user-list-wrapper > .legend { |
| 339 | 348 | font-weight: initial; |
| 340 | | - padding: 0 0.5em; |
| 349 | + padding: 0 0.5em 0 0.5em; |
| 341 | 350 | position: relative; |
| 342 | | - top: -1.75ex; |
| 351 | + top: -1.75ex/* place it like a fieldset legend */; |
| 352 | + cursor: pointer; |
| 353 | +} |
| 354 | +body.chat #chat-user-list-wrapper > .legend > * { |
| 355 | + vertical-align: middle; |
| 356 | +} |
| 357 | +body.chat #chat-user-list-wrapper > .legend > *:nth-child(2){ |
| 358 | + /* Title label */ |
| 343 | 359 | opacity: 0.6; |
| 360 | + font-size: 0.8em; |
| 361 | +} |
| 362 | +body.chat #chat-user-list-wrapper.collapsed > .legend > *:nth-child(2)::after { |
| 363 | + content: " (tap to toggle)"; |
| 364 | +} |
| 365 | +body.chat #chat-user-list-wrapper .help-buttonlet { |
| 366 | + margin: 0; |
| 367 | +} |
| 368 | +body.chat #chat-user-list-wrapper.collapsed #chat-user-list { |
| 369 | + position: absolute !important; |
| 370 | + opacity: 0 !important; |
| 371 | + pointer-events: none !important; |
| 372 | + display: none !important; |
| 344 | 373 | } |
| 345 | 374 | body.chat #chat-user-list { |
| 346 | 375 | margin-top: -1.25ex; |
| 347 | 376 | display: flex; |
| 348 | 377 | flex-direction: row; |
| 349 | 378 | flex-wrap: wrap; |
| 350 | 379 | align-items: center; |
| 351 | 380 | } |
| 352 | | -body.chat #chat-user-list .help-buttonlet { |
| 353 | | - margin: 0.2em 0.5em 0.2em 0; |
| 354 | | -} |
| 355 | 381 | body.chat #chat-user-list .chat-user { |
| 356 | 382 | margin: 0.2em; |
| 357 | 383 | padding: 0.1em 0.5em 0.2em 0.5em; |
| 358 | 384 | border-radius: 0.5em; |
| 359 | 385 | cursor: pointer; |
| | @@ -374,34 +400,39 @@ |
| 374 | 400 | |
| 375 | 401 | body.chat .anim-rotate-360 { |
| 376 | 402 | animation: rotate-360 750ms linear; |
| 377 | 403 | } |
| 378 | 404 | @keyframes rotate-360 { |
| 379 | | - from { |
| 380 | | - transform: rotate(0deg); |
| 381 | | - } |
| 382 | | - to { |
| 383 | | - transform: rotate(360deg); |
| 384 | | - } |
| 405 | + from { transform: rotate(0deg); } |
| 406 | + to { transform: rotate(360deg); } |
| 385 | 407 | } |
| 386 | 408 | body.chat .anim-flip-h { |
| 387 | 409 | animation: flip-h 750ms linear; |
| 388 | 410 | } |
| 389 | 411 | @keyframes flip-h{ |
| 390 | | - from{ |
| 391 | | - transform: rotateY(0deg); |
| 392 | | - } |
| 393 | | - to{ |
| 394 | | - transform: rotateY(360deg); |
| 395 | | - } |
| 412 | + from { transform: rotateY(0deg); } |
| 413 | + to { transform: rotateY(360deg); } |
| 396 | 414 | } |
| 397 | 415 | body.chat .anim-flip-v { |
| 398 | 416 | animation: flip-v 750ms linear; |
| 399 | 417 | } |
| 400 | 418 | @keyframes flip-v{ |
| 401 | | - from{ |
| 402 | | - transform: rotateX(0deg); |
| 403 | | - } |
| 404 | | - to{ |
| 405 | | - transform: rotateX(360deg); |
| 406 | | - } |
| 419 | + from { transform: rotateX(0deg); } |
| 420 | + to { transform: rotateX(360deg); } |
| 421 | +} |
| 422 | +body.chat .anim-fade-in { |
| 423 | + animation: fade-in 750ms linear; |
| 424 | +} |
| 425 | +body.chat .anim-fade-in-fast { |
| 426 | + animation: fade-in 350ms linear; |
| 427 | +} |
| 428 | +@keyframes fade-in { |
| 429 | + from { opacity: 0; } |
| 430 | + to { opacity: 1; } |
| 431 | +} |
| 432 | +body.chat .anim-fade-out-fast { |
| 433 | + animation: fade-out 250ms linear; |
| 434 | +} |
| 435 | +@keyframes fade-out { |
| 436 | + from { opacity: 1; } |
| 437 | + to { opacity: 0; } |
| 407 | 438 | } |
| 408 | 439 | |