dispatch/client/src/css/style.css

816 lines
11 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Roboto Mono, monospace;
background: #f0f0f0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: Montserrat, sans-serif;
font-weight: 400;
}
h1 {
font-weight: 700;
}
input {
font: 16px Roboto Mono, monospace;
border: none;
outline: none;
background: #fff;
}
input::-ms-clear {
display: none;
}
button {
width: 100%;
height: 50px;
background: #6bb758;
color: #fff;
font: 16px Montserrat, sans-serif;
border: none;
outline: none;
user-select: none;
cursor: pointer;
}
button:hover {
background: #7bbf6a;
}
button:active {
background: #6bb758;
}
input[type='checkbox'] {
position: absolute;
left: -99999px;
opacity: 0;
}
input[type='checkbox'] + span {
width: 20px;
height: 20px;
border: 2px solid #777;
display: inline-block;
position: relative;
}
input[type='checkbox']:checked + span {
background: #6bb758;
border-color: #6bb758;
}
input[type='checkbox']:checked + span:before {
content: '';
width: 5px;
height: 10px;
border-right: 3px solid #fff;
border-bottom: 3px solid #fff;
position: absolute;
color: #fff;
transform: rotate(45deg);
left: 4px;
}
p {
line-height: 1.5;
}
i[class^='icon-']:before,
i[class*=' icon-']:before {
margin: 0;
}
::selection {
background: #ddd;
color: #000;
}
.success {
color: #6bb758 !important;
}
.error {
color: #f6546a !important;
}
.textinput {
display: block;
position: relative;
}
.textinput input {
padding: 25px 15px 10px;
}
.textinput span {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
user-select: none;
transform: translateZ(0);
transition: all 0.2s, color 0s;
color: #777;
}
.textinput-1 {
font: 12px 'Montserrat', sans-serif;
margin: 15px;
opacity: 0;
transform: translateY(10px);
}
.textinput input:focus + .textinput-1,
.textinput-1.value {
opacity: 1;
transform: translateY(0);
}
.textinput-2 {
margin: 22.5px 15px;
}
.textinput input:focus + .textinput-1 + .textinput-2,
.textinput-2.value {
opacity: 0;
transform: translateY(10px);
}
.form-error {
font-family: 'Montserrat', sans-serif;
background: #f6546a;
color: #fff;
padding: 6px 15px;
font-size: 14px;
}
.wrap {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-direction: column;
}
.app-info {
width: 100%;
font-family: Montserrat, sans-serif;
background: #f6546a;
color: #fff;
height: 50px;
line-height: 50px;
text-align: center;
}
.app-container {
position: relative;
flex: 1;
}
.tablist {
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 200px;
background: #222;
color: #fff;
font-family: Montserrat, sans-serif;
transition: transform 0.2s;
user-select: none;
}
.tab-container {
position: absolute;
top: 50px;
bottom: 50px;
width: 100%;
overflow: auto;
}
.tablist p {
height: 30px;
padding: 3px 15px;
padding-right: 10px;
cursor: pointer;
}
.tablist p:last-child {
margin-bottom: 10px;
}
.tablist p:hover {
background: #111;
}
.tablist p.selected {
padding-left: 10px;
border-left: 5px solid #6bb758;
}
.tab-content {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.tab-server {
display: flex;
align-items: center;
color: #999;
margin-top: 10px !important;
}
.tab-server .tab-content {
flex: 1;
margin-right: 5px;
}
.tab-label {
margin-top: 10px;
margin-left: 15px;
margin-bottom: 5px;
font-size: 12px;
color: #999;
}
.side-buttons {
position: absolute;
bottom: 0;
height: 50px;
width: 200px;
text-align: center;
}
.side-buttons i {
display: inline-block;
color: #999;
width: 50%;
line-height: 50px;
cursor: pointer;
font-size: 20px;
border-top: 1px solid #1d1d1d;
}
.side-buttons i:not(:first-child) {
border-left: 1px solid #1d1d1d;
}
.side-buttons i:hover {
color: #ccc;
background: #1d1d1d;
}
.main-container {
position: absolute;
left: 200px;
top: 0;
bottom: 0;
right: 0;
transition: left 0.2s, transform 0.2s;
}
.connect {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
width: 100%;
bottom: 0;
overflow: auto;
}
.connect .navicon,
.settings .navicon {
position: fixed;
top: 0;
left: 0;
}
.connect-form {
margin: auto 20px;
padding-top: 20px;
width: 350px;
text-align: center;
}
.connect-form h1 {
text-align: center;
margin-bottom: 15px;
}
.connect-details {
color: #999;
text-align: center;
margin-bottom: 15px;
}
.connect-details h2 {
color: #6bb758;
}
.connect-form input {
margin-top: 5px;
width: 100%;
}
input[type='number'] {
appearance: textfield;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
margin: 0;
}
.connect-form label {
user-select: none;
cursor: default;
}
.connect-form button {
margin-bottom: 20px;
}
.connect-form-address {
display: flex;
}
.connect-form-address .textinput:nth-child(1) {
flex: 1;
}
.connect-form-address .textinput:nth-child(2) {
width: 65px;
}
.connect-form-address input {
padding-right: 0;
}
.connect-form-address label {
margin-top: 5px;
font: 12px 'Montserrat', sans-serif;
padding: 10px;
padding-bottom: 0;
text-align: center;
background: #fff;
color: #777;
}
.connect-form i {
display: block;
cursor: pointer;
color: #999;
text-align: center;
font-size: 24px;
padding: 5px 0;
}
.connect-form i:hover {
color: #666;
}
.chat-title-bar {
font-family: Montserrat, sans-serif;
position: absolute;
left: 0;
top: 0;
right: 0;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #ddd;
display: flex;
font-size: 20px;
}
.chat-channel .chat-title-bar {
right: 200px;
}
.navicon {
display: none;
padding: 0 15px;
line-height: 50px;
font-size: 20px;
cursor: pointer;
}
.chat-title-bar i {
padding: 0 15px;
cursor: pointer;
}
.chat-server .icon-search {
display: none;
}
.chat-server .userlist,
.chat-private .userlist {
display: none;
}
.chat-server .userlist-bar,
.chat-private .userlist-bar {
display: none;
}
.button-leave {
border-left: 1px solid #ddd;
}
.button-leave:hover {
background: #ddd;
}
.button-userlist {
display: none;
border-left: 1px solid #ddd;
}
.chat-server .button-userlist,
.chat-private .button-userlist {
display: none;
}
.chat-title {
margin-left: 10px;
padding: 0 5px;
font: 24px Montserrat, sans-serif;
white-space: nowrap;
line-height: 50px;
}
.chat-server .chat-title {
cursor: pointer;
}
input.chat-title {
background: none;
cursor: text !important;
}
.chat-topic-wrap {
flex: 1;
position: relative;
margin: 0 15px;
}
.chat-topic {
position: absolute;
width: 100%;
top: 3px;
font-size: 16px;
color: #999;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.chat-topic a {
color: #999;
text-decoration: none;
}
.chat-topic a:hover {
text-decoration: underline;
}
.userlist-bar {
position: absolute;
top: 0;
right: 0;
width: 200px;
height: 50px;
border-left: 1px solid #ddd;
border-bottom: 1px solid #ddd;
line-height: 50px;
text-align: center;
padding: 0 15px;
font-family: Montserrat, sans-serif;
}
.userlist-bar i {
margin-right: 3px;
}
.search {
display: none;
position: absolute;
left: 0;
top: 50px;
bottom: 50px;
right: 200px;
z-index: 3;
background: #f0f0f0;
}
.chat-server .search {
display: none;
}
.chat-private .search {
right: 0;
}
.search-input-wrap {
display: flex;
width: 100%;
background: #fff;
border-bottom: 1px solid #ddd;
}
.search i {
padding: 15px;
color: #ddd;
}
.search-input {
flex: 1;
padding: 15px;
padding-left: 0;
}
.search-results {
position: absolute;
top: 50px;
bottom: 0;
width: 100%;
overflow: auto;
padding: 10px 15px;
}
.search-result:not(:last-child) {
margin-bottom: 5px;
}
.messagebox {
position: absolute;
left: 0;
top: 50px;
bottom: 50px;
right: 0;
z-index: 1;
overflow: hidden;
}
.chat-channel .messagebox {
right: 200px;
}
.messagebox-top-indicator {
color: #999;
height: 100px;
text-align: center;
padding-top: 40px;
}
.VirtualScroll {
overflow-x: hidden !important;
}
.message {
padding: 4px 15px;
}
.message-info {
color: #999;
}
.message-error {
color: #f6546a;
}
.message-prompt {
font-weight: 700;
font-style: italic;
color: #6bb758;
}
.message-action {
color: #ff6698;
}
.message-time {
font-style: normal;
font-weight: 400;
color: #999;
}
.message-sender {
font-weight: 700;
color: #6bb758;
cursor: pointer;
}
.message a {
text-decoration: none;
color: #0066ff;
}
.message a:hover {
text-decoration: underline;
}
.message-input-wrap {
position: absolute;
left: 0;
bottom: 0;
right: 0;
height: 50px;
z-index: 1;
display: flex;
border-top: 1px solid #ddd;
background: #fff;
}
.message-input-nick {
display: block;
margin: 10px;
line-height: 30px;
height: 30px;
padding: 0 10px;
background: #6bb758;
color: #fff;
font-family: Montserrat, sans-serif !important;
margin-right: 0;
cursor: pointer;
}
input.message-input-nick {
cursor: text;
}
input.message-input-nick.invalid {
background: #f6546a;
}
.message-input {
flex: 1;
width: 100%;
height: 100%;
padding: 0 15px;
}
.userlist {
position: absolute;
top: 50px;
bottom: 50px;
right: 0;
width: 200px;
border-left: 1px solid #ddd;
background: #f0f0f0;
z-index: 2;
transition: transform 0.2s;
}
.userlist p {
padding: 0px 15px;
cursor: pointer;
}
.userlist p:hover {
background: #ddd;
}
.settings {
text-align: center;
overflow: auto;
}
.settings p {
color: #999;
}
.settings h1 {
margin: 20px;
}
.settings h2 {
margin: 15px;
}
.settings button {
margin: 5px;
width: 200px;
}
.settings div {
display: inline-block;
}
.settings .error {
margin: 10px;
color: #f6546a;
}
.input-file {
color: #fff;
background: #222 !important;
padding: 10px;
margin: 5px;
width: 200px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ReactVirtualized__List {
box-sizing: content-box !important;
outline: none;
}
.rvlist-messages {
padding: 7px 0;
overflow-y: scroll !important;
}
.rvlist-users {
padding: 10px 0;
}
@media (max-width: 600px) {
.app-info {
font-size: 12px;
}
.tablist {
width: 200px;
transform: translateX(-200px);
}
.main-container {
transform: translateX(0);
left: 0;
}
.navicon {
display: inline-block;
}
.main-container.off-canvas {
transform: translateX(200px);
}
.tablist.off-canvas {
transform: translateX(0);
}
.chat-title {
margin-left: 0;
}
.chat-topic {
font-size: 12px;
}
.userlist-bar {
display: none;
}
.userlist {
transform: translateX(200px);
}
.userlist.off-canvas {
transform: translateX(0);
}
.chat-channel .chat-title-bar,
.chat-channel .messagebox {
right: 0;
}
.button-userlist {
display: inline-block;
}
.search {
right: 0;
}
.connect-form {
width: 100%;
margin: auto 50px;
max-width: 400px;
}
}