318 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			318 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| @import url('https://fonts.googleapis.com/css?family=Open+Sans|Source+Code+Pro');
 | |
| $primary-color: #53C0FA;
 | |
| $primary-color-highlight: #4298C7;
 | |
| $primary-color-light: #9FDBFB;
 | |
| 
 | |
| $background-color: #1b1e21;
 | |
| $background-color-light: lighten($background-color, 4%);
 | |
| $background-color-dark: darken($background-color, 4%);
 | |
| 
 | |
| $error-color: #f01d43;
 | |
| $error-color-dark: darken(#f01d43, 10%);
 | |
| 
 | |
| $active-input-color: #282d30;
 | |
| $active-input-border-color: $primary-color;
 | |
| $inactive-input-color: darken($active-input-color, 3%);
 | |
| $inactive-input-border-color: darken($inactive-input-color, 10%);
 | |
| 
 | |
| $transition-duration: .125s;
 | |
| 
 | |
| $inset-shadow: inset 0px 0px 5px rgba(0, 0, 0, .25);
 | |
| 
 | |
| html, body {
 | |
|     height: 100vh;
 | |
| }
 | |
| 
 | |
| body {
 | |
|     font-family: 'Open Sans', sans-serif;
 | |
|     margin: 0px;
 | |
|     background-color: $background-color;
 | |
|     font-size: 12px;
 | |
|     color: white;
 | |
| }
 | |
| 
 | |
| @mixin input-common {
 | |
|     padding: 5px;
 | |
|     border-radius: 3px;
 | |
|     outline: none;
 | |
| 
 | |
|     transition: background-color $transition-duration;
 | |
|     font-family: inherit;
 | |
|     font-size: inherit;
 | |
| }
 | |
| 
 | |
| input, textarea {
 | |
|     @include input-common();
 | |
|     background-color: $inactive-input-color;
 | |
|     color: white;
 | |
|     border: .5px solid $inactive-input-border-color;
 | |
| 
 | |
|     &:focus {
 | |
|         background-color: $active-input-color;
 | |
|         border-color: $active-input-border-color;
 | |
|     }
 | |
| }
 | |
| 
 | |
| button {
 | |
|     @include input-common();
 | |
|     border: none;
 | |
|     background-color: $primary-color;
 | |
|     color: white;
 | |
|     text-transform: uppercase;
 | |
| 
 | |
|     &:hover, &:focus {
 | |
|         background-color: $primary-color-highlight;
 | |
|     }
 | |
| }
 | |
| 
 | |
| a {
 | |
|     text-decoration: none;
 | |
|     color: $primary-color;
 | |
| 
 | |
|     &:hover {
 | |
|         color: $primary-color-highlight;
 | |
|     }
 | |
| }
 | |
| 
 | |
| h2, h3 {
 | |
|     margin: 0px;
 | |
|     margin-bottom: 3px;
 | |
| }
 | |
| 
 | |
| a.file-wrapper {
 | |
|     padding: 5px 0px 5px 0px;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
| 
 | |
|     .feather-icon {
 | |
|         height: 30px;
 | |
|         width: 30px;
 | |
|         margin-right: 10px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| div.errors-wrapper {
 | |
|     position: fixed;
 | |
|     pointer-events: none;
 | |
|     top: 0px;
 | |
|     bottom: 0px;
 | |
|     left: 0px;
 | |
|     right: 0px;
 | |
| 
 | |
|     overflow: hidden;
 | |
| }
 | |
| 
 | |
| div.error-wrapper {
 | |
|     pointer-events: auto;
 | |
|     width: 400px;
 | |
|     box-shadow: 0px 0px 5px rgba(0, 0, 0, .25);
 | |
|     padding: 5px;
 | |
|     background-color: $error-color;
 | |
|     border: 1px solid $error-color-dark;
 | |
|     color: white;
 | |
|     margin: auto;
 | |
|     margin-top: 10px;
 | |
|     margin-bottom: 10px;
 | |
|     font-size: 14px;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
| 
 | |
|     .feather-icon {
 | |
|         margin-right: 10px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Login Screen
 | |
|  */
 | |
| div.login-wrapper {
 | |
|     display: flex;
 | |
|     flex-direction: column;
 | |
|     max-width: 300px;
 | |
|     margin: auto;
 | |
|     margin-top: 20px;
 | |
| 
 | |
|     input, button {
 | |
|         margin: 3px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Base View
 | |
|  */
 | |
| div.base-wrapper {
 | |
|     display: flex;
 | |
|     height: 100%;
 | |
| 
 | |
|     > div {
 | |
|         padding: 10px;
 | |
|         box-sizing: border-box;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * The list of rooms
 | |
|  */
 | |
| div.rooms-wrapper {
 | |
|     flex-shrink: 0;
 | |
|     background-color: $background-color-light;
 | |
| }
 | |
| 
 | |
| div.room-link-wrapper {
 | |
|     whitespace: nowrap;
 | |
|     display: flex;
 | |
|     padding: 0px;
 | |
| 
 | |
|     span, a {
 | |
|         margin-right: 5px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| div.reconnect-wrapper {
 | |
|     position: fixed;
 | |
|     bottom: 20px;
 | |
|     left: 20px;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     background-color: $inactive-input-color;
 | |
|     border: 1px solid $inactive-input-border-color;
 | |
|     border-radius: 3px;
 | |
| 
 | |
|     .feather-icon {
 | |
|         margin-right: 10px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * The current room, if any.
 | |
|  */
 | |
| div.room-wrapper {
 | |
|     flex-grow: 1;
 | |
|     display: flex;
 | |
|     height: 100%;
 | |
|     flex-direction: column;  
 | |
|     box-shadow: $inset-shadow;
 | |
|     padding: 5px;
 | |
| }
 | |
| 
 | |
| div.typing-wrapper {
 | |
|     padding: 5px;
 | |
|     height: 12px;
 | |
|     flex-shrink: 0;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * The message input and send button.
 | |
|  */
 | |
| div.message-wrapper {
 | |
|     display: flex;
 | |
|     flex-shrink: 0;
 | |
| 
 | |
|     input, textarea {
 | |
|         flex-grow: 12;   
 | |
|         margin: 3px;
 | |
|     }
 | |
| 
 | |
|     button {
 | |
|         flex-grow: 1;
 | |
|         margin: 3px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| div.messages-wrapper {
 | |
|     overflow-y: scroll;
 | |
|     flex-grow: 1;
 | |
| 
 | |
|     a.history-link {
 | |
|         display: block;
 | |
|         width: 100%;
 | |
|         text-align: center;
 | |
|         box-sizing: border-box;
 | |
|         padding: 5px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| table.messages-table {
 | |
|     border-collapse: collapse;
 | |
|     width: 100%;
 | |
|     table-layout: fixed;
 | |
| 
 | |
|     td {
 | |
|         padding: 5px;
 | |
|         vertical-align: top;
 | |
|     }
 | |
| 
 | |
|     img {
 | |
|         max-width: 90%;
 | |
|         max-height: 400px;
 | |
|     }
 | |
| 
 | |
|     video {
 | |
|         max-width: 90%;
 | |
|         max-height: 400px;
 | |
|     }
 | |
| 
 | |
|     td:nth-child(1) {
 | |
|         width: 10%;
 | |
|         @media screen and (min-width: 1000px) {
 | |
|             width: 100px;
 | |
|         }
 | |
|         white-space: nowrap;
 | |
|     }
 | |
| }
 | |
| 
 | |
| div.message {
 | |
|     p {
 | |
|         margin: 0px;
 | |
|     }
 | |
| 
 | |
|     blockquote {
 | |
|         margin: 0px 0px 0px 0px;
 | |
|         padding-left: 5px;
 | |
|         border-left: 4px solid $primary-color;
 | |
|     }
 | |
| 
 | |
|     code {
 | |
|         font-family: Iosevka, "Source Code Pro", monospace, 
 | |
|     }
 | |
| 
 | |
|     pre code {
 | |
|         width: 100%;
 | |
|         overflow: auto;
 | |
|         display: block;
 | |
|         box-sizing: border-box;
 | |
|         padding: 10px;
 | |
|         background-color: $background-color;
 | |
|         border-radius: 3px;
 | |
|         box-shadow: $inset-shadow;
 | |
|     }
 | |
| }
 | |
| 
 | |
| span.sender-wrapper {
 | |
|     border-radius: 3px;
 | |
|     padding-left: 5px;
 | |
|     padding-right: 5px;
 | |
|     display: inline-block;
 | |
|     box-sizing: border-box;
 | |
|     text-align: right;
 | |
|     font-weight: 800;
 | |
|     width: 100%;
 | |
|     text-overflow: ellipsis;
 | |
|     overflow: hidden;
 | |
|     vertical-align: bottom; /* Fix for overflow changing element height */
 | |
|     color: black;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Icons
 | |
|  */
 | |
| .feather-icon {
 | |
|     stroke: currentColor;
 | |
|     stroke-width: 2;
 | |
|     stroke-linecap: round;
 | |
|     stroke-linejoin: round;
 | |
|     fill: none;
 | |
|     height: 20px;
 | |
|     width: 20px;
 | |
| }
 |