$bg: hsla(228, 12%, 12%, 1); $bg0: hsla(228, 12%, 15%, 1); $bg1: hsla(228, 12%, 18%, 1); $bg2: hsla(228, 12%, 30%, 1); $bg3: hsla(228, 12%, 36%, 1); $bg4: hsla(228, 12%, 60%, 1); $bg5: hsla(228, 12%, 100%, 1); $red: #CC6666; $amber: #DE935F; $yellow: #F0C674; $green: #B5BD68; $cyan: #8ABEB7; $blue: #81A2BE; $purple: #B294BB; $brown: #A3685A; $accent: $blue; $spacing: 0.7rem; $borderwidth: 0.2rem; @font-face { font-family: "Open Sans"; font-weight: normal; src: local('Open Sans Regular'), local('OpenSans-Regular'), url(OpenSans-Regular.ttf) format("truetype"); } @font-face { font-family: "Open Sans"; font-weight: bold; src: local('Open Sans Bold'), local('OpenSans-Bold'), url(OpenSans-Bold.ttf) format("truetype"); } html, body { margin: 0; padding: 0; background: $bg; color: white; font-family: "Open Sans"; font-size: 110%; } .list { background: $bg0; } .roomListItem { background: $bg0; &:hover { background: $bg1; } &.active { background: $bg1; } } .chat, .info, .input { background: $bg1; } .input, .info { background: $bg2; } input { // override gtk styling font-family: "Open Sans", sans-serif; } body { height: 100vh; display: flex; } #root { height: 100vh; width: 100vw; display: flex; justify-content: center; } .loginwrapper { margin-top: -15rem; display: flex; justify-content: center; flex-direction: column; input, label, button, span { font-size: 140%; } img { height: 15rem; width: 15rem; text-align: center; align-self: center; } } .errorMessage { color: $red; font-size: 140%; } .login { align-self: center; display: inline-grid; grid-template-columns: 1fr 1fr; $grey: #999; label, input, button, span { margin: 0.3em; padding: 0.3em; } label { background: $blue; justify-self: left; } label.inactive { background: $grey; } label.error { background: $red; & ~ input, & ~ span { border-color: $red; } } label.validated { background: $green; & ~ input, & ~ span { border-color: $green; } } span { display: inline-block; border: 0.05rem solid $grey; } input { border: 0.1rem solid $blue; background: transparent; color: white; } button { grid-column-start: 2; background: $blue; color: white; justify-self: right; border: none; } } .main { flex: 1 1 auto; } .sidebar, .main { margin: $spacing; display: flex; flex-direction: column; & > div:nth-child(2) { // Room list & Chat flex: 1 1 auto; overflow-y: auto; } } .sidebar { margin-right: 0; flex: 0 0 15vw; max-width: 15vw; .filter { border: none; border-bottom: $borderwidth solid transparent; width: 100%; box-sizing: border-box; padding: $spacing; color: white; font-size: 1rem; margin: 0; font-weight: bold; } } .list { div { cursor: pointer; } } .roomListItem { height: 2rem + 2.5 * $spacing; display: grid; grid-template-columns: 2rem + 2*$spacing - 0.2rem auto; align-items: center; width: 100%; box-sizing: border-box; //border-bottom: 1px solid lighten($bg1, 3); padding: 1/4 * $spacing; transition: 0.2s; &.active { #avatar, #name { transition: 0.2s; } #avatar { border: 3px solid $accent; transform: rotate(-5deg); } #name { color: $accent; font-weight: bold; } } #avatar { box-sizing: border-box; height: calc(100% - 6px); object-fit: cover; border: 3px solid lighten($bg0, 10); border-radius: 0.4rem; margin: 3px; } #name { font-size: 1rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding: $spacing; padding-right: $spacing/4; } } .info { padding: $spacing; color: $accent; font-size: 1rem; font-weight: bold; border-bottom: $borderwidth solid transparent; box-sizing: border-box; } .chat { padding: 0 $spacing; position: relative; box-sizing: border-box; .events { display: flex; flex-direction: column; justify-content: flex-end; min-height: 100%; .eventGroup { padding-top: $spacing; display: grid; grid-template-columns: 3rem auto; grid-template-areas: "avatar content"; margin-bottom: $spacing/2; #name { font-weight: bold; padding-left: $spacing/2; } #avatar { height: 3rem; width: 3rem; object-fit: cover; box-sizing: border-box; object-fit: cover; border: 0.2rem solid lighten($bg0, 10); position: sticky; top: $spacing; //align-self: flex-end; //bottom: $spacing; } .col { grid-area: content; padding-left: $spacing * 1.2; .local { color: $bg4; } .body { padding: $spacing/4; padding-left: $spacing/2; white-space: pre-wrap; img { max-height: 40vh; max-width: 90%; object-fit: contain; } } .body:hover { border-radius: 0.1rem; background-color: hsla(0, 100%, 100%, 0.05); transition: 0.1s; } } } } } .input { display: flex; border-top: $borderwidth solid transparent; textarea { background: transparent; box-sizing: border-box; flex: 1 1 auto; padding: $spacing; font-size: 1.2rem; border: none; resize: none; overflow: hidden; overflow-y: auto; outline: none; max-height: 150px; } } .sidebar .filter, .info, .input { border-color: $bg1; } .noselect { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; user-select: none; } .fg-palet-red { color: $red; } .fg-palet-green { color: $green; } .fg-palet-yellow { color: $yellow; } .fg-palet-blue { color: $blue; } .fg-palet-purple { color: $purple; } .fg-palet-cyan { color: $cyan; }