2023-01-27 04:34:58 +00:00
|
|
|
html {
|
|
|
|
height: 100vh;
|
|
|
|
}
|
|
|
|
body {
|
|
|
|
min-height: 100vh;
|
|
|
|
}
|
|
|
|
|
2023-02-05 08:53:50 +00:00
|
|
|
.float-right {
|
|
|
|
float: right;
|
|
|
|
}
|
|
|
|
|
2023-02-06 01:42:09 +00:00
|
|
|
.cursor-default {
|
|
|
|
cursor: default;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Bulma override */
|
|
|
|
.media-content {
|
|
|
|
overflow: hidden !important;
|
|
|
|
}
|
|
|
|
|
2023-01-27 04:34:58 +00:00
|
|
|
/************************
|
|
|
|
* Main CSS Grid Layout *
|
|
|
|
************************/
|
|
|
|
|
|
|
|
.chat-container {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
bottom: 0;
|
|
|
|
padding: 10px;
|
|
|
|
|
2023-02-06 04:26:00 +00:00
|
|
|
background: rgb(190,190,190);
|
|
|
|
background: linear-gradient(0deg, rgb(172, 172, 172) 0%, rgb(214, 214, 214) 100%);
|
|
|
|
|
2023-01-27 04:34:58 +00:00
|
|
|
display: grid;
|
|
|
|
column-gap: 10px;
|
|
|
|
row-gap: 10px;
|
2023-02-06 01:42:09 +00:00
|
|
|
grid-template-columns: 260px 1fr 280px;
|
2023-02-06 04:26:00 +00:00
|
|
|
grid-template-rows: auto 1fr auto;
|
|
|
|
}
|
|
|
|
|
2023-02-06 23:34:10 +00:00
|
|
|
@media (prefers-color-scheme: dark) {
|
|
|
|
.chat-container {
|
|
|
|
background: rgb(39, 39, 39);
|
|
|
|
background: linear-gradient(0deg, rgb(39, 39, 39) 0%, rgb(66, 66, 66) 100%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-06 04:26:00 +00:00
|
|
|
/* Header row */
|
|
|
|
.chat-container > .chat-header {
|
|
|
|
grid-column: 1 / 4;
|
|
|
|
grid-row: 1;
|
2023-01-27 04:34:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Left column: DMs and channels */
|
|
|
|
.chat-container > .left-column {
|
|
|
|
grid-column: 1;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Main column: chat history */
|
|
|
|
.chat-container > .chat-column {
|
|
|
|
grid-column: 2;
|
2023-02-06 04:26:00 +00:00
|
|
|
grid-row: 2;
|
2023-01-27 04:34:58 +00:00
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Footer row: message entry box */
|
|
|
|
.chat-container > .chat-footer {
|
|
|
|
grid-column: 1 / 4;
|
2023-02-06 04:26:00 +00:00
|
|
|
grid-row: 3;
|
2023-01-27 04:34:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Right column: Who List */
|
|
|
|
.chat-container > .right-column {
|
|
|
|
grid-column: 3;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
2023-02-05 08:53:50 +00:00
|
|
|
/* Responsive CSS styles */
|
|
|
|
@media screen and (min-width: 1024px) {
|
|
|
|
.mobile-only {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@media screen and (max-width: 1024px) {
|
|
|
|
.chat-container {
|
|
|
|
grid-template-columns: 0px 1fr 0px;
|
|
|
|
column-gap: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.left-column {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.right-column {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-27 04:34:58 +00:00
|
|
|
/***********************************************
|
|
|
|
* Reusable CSS Grid-based Bulma Card layouts *
|
|
|
|
* with a fixed header, full size scrollable *
|
|
|
|
* content, and (optionally) video-feeds under *
|
|
|
|
* the header (main chat card only) *
|
|
|
|
***********************************************/
|
|
|
|
|
|
|
|
.grid-card {
|
|
|
|
height: 100%;
|
|
|
|
display: grid;
|
|
|
|
grid-template-columns: 1fr;
|
|
|
|
grid-template-rows: auto auto 1fr;
|
|
|
|
}
|
|
|
|
|
|
|
|
.grid-card > .card-header {
|
|
|
|
grid-row: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
.grid-card > .video-feeds {
|
|
|
|
grid-row: 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
.grid-card > .card-content {
|
|
|
|
grid-row: 3;
|
|
|
|
/* background-color: magenta; */
|
|
|
|
overflow-y: scroll;
|
2023-02-09 05:30:01 +00:00
|
|
|
|
|
|
|
/* Work around Safari bug: the chat history would just lengthen the full
|
|
|
|
web page every time cuz it doesn't do grids well, so add a max height
|
|
|
|
of 90% viewport height to mitigate it a bit. */
|
|
|
|
max-height: 90vh;
|
2023-01-27 04:34:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*******************
|
|
|
|
* Video Feeds CSS *
|
|
|
|
*******************/
|
|
|
|
|
|
|
|
.video-feeds {
|
2023-02-06 04:26:00 +00:00
|
|
|
background-color: #222;
|
2023-01-27 04:34:58 +00:00
|
|
|
width: 100%;
|
|
|
|
max-width: 100%;
|
|
|
|
overflow-x: scroll;
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
align-items: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds > .feed {
|
2023-02-06 04:26:00 +00:00
|
|
|
position: relative;
|
2023-02-11 06:46:39 +00:00
|
|
|
flex: 0 0 168px;
|
2023-02-06 04:26:00 +00:00
|
|
|
width: 168px;
|
|
|
|
height: 112px;
|
2023-01-27 04:34:58 +00:00
|
|
|
background-color: black;
|
|
|
|
margin: 5px;
|
2023-02-06 04:26:00 +00:00
|
|
|
}
|
|
|
|
|
2023-02-10 07:03:06 +00:00
|
|
|
.video-feeds.x1 > .feed {
|
2023-02-11 06:46:39 +00:00
|
|
|
flex: 0 0 252px;
|
2023-02-10 07:03:06 +00:00
|
|
|
width: 252px;
|
|
|
|
height: 168px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds.x2 > .feed {
|
2023-02-11 06:46:39 +00:00
|
|
|
flex: 0 0 336px;
|
2023-02-10 07:03:06 +00:00
|
|
|
width: 336px;
|
|
|
|
height: 224px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds.x3 > .feed {
|
2023-02-11 06:46:39 +00:00
|
|
|
flex: 0 0 504px;
|
2023-02-10 07:03:06 +00:00
|
|
|
width: 504px;
|
|
|
|
height: 336px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds.x4 > .feed {
|
2023-02-11 06:46:39 +00:00
|
|
|
flex: 0 0 672px;
|
2023-02-10 07:03:06 +00:00
|
|
|
width: 672px;
|
|
|
|
height: 448px;
|
|
|
|
}
|
|
|
|
|
2023-02-06 04:26:00 +00:00
|
|
|
.video-feeds > .feed > video {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds > .feed > .controls {
|
|
|
|
position: absolute;
|
|
|
|
background: rgba(0, 0, 0, 0.75);
|
|
|
|
right: 4px;
|
|
|
|
bottom: 4px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds > .feed > .close {
|
|
|
|
position: absolute;
|
|
|
|
right: 4px;
|
|
|
|
top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-feeds > .feed > .caption {
|
|
|
|
position: absolute;
|
|
|
|
background: rgba(0, 0, 0, 0.75);
|
|
|
|
color: #fff;
|
|
|
|
top: 4px;
|
|
|
|
left: 4px;
|
|
|
|
font-size: small;
|
|
|
|
padding: 2px 4px;
|
2023-01-27 04:34:58 +00:00
|
|
|
}
|