Files
im_webapp/css/base.css
T
2016-01-27 10:39:24 -08:00

547 lines
9.6 KiB
CSS

* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
/* Basic elements defined */
html, body {
height:100%;
width:100%;
font-family: 'Roboto', Arial, sans-serif;
font-size: 10pt;
color: #666;
overflow: hidden;
background-color: silver;
box-shadow: inset 0 10em #3949AB; /* the deep-plue stripe accross the top */
}
a {
color: #2196f3;
text-decoration: none;
}
a:hover,
a:focus {
color: #0a6ebd;
text-decoration: underline;
}
a:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
form {
font-size: 1.2rem;
}
/* Input fields and buttons */
button {
display: inline-block;
font-family: inherit;
font-size: 1.1rem;
height: 2.2em;
line-height: 2.2em;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
border: 1px solid transparent;
white-space: nowrap;
padding-left: 2em;
padding-right: 2em;
border-radius: 2px;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.25);
text-transform: uppercase;
}
button[disabled],
html input[disabled] {
cursor: default;
opacity: 0.65;
box-shadow: none;
}
button.round {
border-radius: 50%;
width: 3rem;
height: 3rem;
padding: 0;
line-height: 1;
outline: none; /* otherwise a square outline is shown */
box-shadow: 0 2px 0.5rem 0 rgba(0, 0, 0, 0.25);
z-index: 2;
}
button:focus, button:hover, button:active {
color: #fff;
}
button:active {
box-shadow: inset 0 3px 0.5rem rgba(0, 0, 0, 0.125);
}
button.blue {
background-color: #1e88e5; /* blue 600 */
color: white;
}
button.blue:focus, button.blue:hover, button.blue:active {
background-color: #1976d2;
}
textarea, input {
font-family: inherit;
background: transparent;
border: none;
border-bottom: 1px solid #ccc;
border-radius: 0.2em;
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
width: 100%;
margin: 0.25em 0;
padding: 0 0.125em;
outline: none;
transition: all 0.2s ease-in-out;
box-sizing: border-box;
color: #666;
}
textarea:focus,input:focus {
border-bottom: 1px solid #2196f3;
box-shadow: 0 1px 0 rgba(33, 150, 243, 0.25);
}
input {
height: 2.5em;
}
textarea {
resize: none;
}
/* Scrollbar styling for Chrome. Firefox does not support scrollbar styling. */
::-webkit-scrollbar {
width: 0.6rem;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2);
background-color: rgba(255,255,255,0.1);
}
::-webkit-scrollbar-thumb {
background-color: rgba(0,0,0,0.3);
}
/* END of input and buttons */
form {
padding: 0.5em 1em;
line-height: 1.75;
font-size: 1.2rem;
}
/* END of basic elements */
#mountPoint {
height: 100%;
padding-top: 1em;
padding-bottom: 3em;
}
/* Top-level application layout style: sidepanel + main view */
#app-container {
position: relative;
display: flex;
height: 100%;
width: 80em;
overflow: hidden;
margin-left: auto;
margin-right: auto;
border-radius: 0.25em;
box-shadow: 1px 2px 0.3em gray;
background-color: white;
}
#sidepanel {
position: relative;
display: flex;
flex-direction: column;
width: 30em;
height: 100%;
}
#topic-view {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
}
/* END of top-level layout */
/* Sidepanel styles */
.panel-title {
font-size: 1.4rem;
}
.dialog-buttons {
display: flex;
padding: 0.5em;
justify-content: flex-end;
}
#side-caption-panel {
display: flex;
align-items: center;
x-justify-content: space-between;
flex: none;
padding: 0.5em;
height: 4em;
background-color: #2196f3; /* blue 500 */
color: #bbdefb; /* light-blue 100 */
box-shadow: 0 1px 2px gray;
z-index: 1; /* otherwise the shadow becomes invisible */
}
#side-caption-panel a {
color: #bbdefb; /* blue 100 */
padding-left: 0.5em;
vertical-align: -1em; /* icons are bigger than the declared font size */
}
#side-caption-panel :hover {
color: white;
}
#sidepanel-title {
margin-right: auto;
margin-left: 0.5em;
}
#self-avatar {
width: 3rem;
height: auto;
flex: none;
}
/* Area which displays an error message */
#alert-box {
padding: 0.5em;
background-color: transparent;
}
#alert-box.error-alert {
background-color: #ffcdd2;
border-color: #d32f2f;
color: #600;
}
/* List of contacts */
#contacts-panel {
overflow-y: auto;
margin-bottom: auto;
}
#contact-box {
list-style: none;
}
#contact-box li {
display: flex;
padding: 0.35rem 0.25rem 0.5rem 0.35rem;
min-height: 3.5rem;
overflow: hidden;
}
#contact-box li:hover {
background-color: #eceff1; /* blue-gray 50 highlight */
}
#contact-box li.selected {
background-color: #cfd8dc; /* blue-gray 100 highlight */
}
#contact-box .contact-title {
font-size: 1.05rem;
}
/* Avatar and online-offline indicator */
#contact-box .avatar-box {
margin-right: 0.5rem;
position: relative;
width: 3rem;
height: 3rem;
overflow: hidden;
padding: 0;
}
#contact-box .avatar {
width: 3rem;
height: auto;
}
/* Online-offline indicator positioned inside avatar-box */
#contact-box .online, .offline {
font-size: 1.5em;
line-height: 1;
position: absolute;
right: 0;
bottom: 0;
}
#contact-box .online {
color: #4caf50;
}
#contact-box .offline {
color: #888;
}
#add-topic {
position: absolute;
right: 1em;
bottom: 1em;
}
/* END of avatar box */
/* END of sidepanel styles */
/* Topic/messages view */
#topic-caption-panel {
display: flex;
align-items: baseline;
justify-content: space-between;
flex: none;
padding: 0.5em;
height: 4em;
background-color: #b0bec5;
box-shadow: 0 1px 2px gray;
z-index: 1; /* otherwise the shadow becomes invisible */
}
/*
#topic-title {
}
#topic-last-seen {
}
*/
/* Scrollable panel where the messages are shown */
#messages-panel {
padding: 0.75em;
overflow-y: scroll;
background-color: #eceff1;
height: 100%;
background-image: url("../img/ignasi_pattern_s.png");
}
/* Footer-panel with the input for the new message */
#send-message-panel {
display: flex;
align-items: center;
flex: none;
padding: 0.5em;
background-color: #eceff1;
box-shadow: 0 -1px rgba(0,0,0,0.1); /* Faint shadow above panel */
z-index: 2;
}
/* A static panel shown when no topic is selected */
#dummy-view {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background-color: #e0f7fa;
}
/* Talk bubbles */
.chat-box {
list-style: none;
padding: 0 0 3.5em 0;
margin: 0 1em 0 1em;
}
.chat-box li {
display: flex;
margin: 0;
padding: 0;
align-items: flex-end;
}
.chat-box li.right {
justify-content: flex-end;
}
.chat-box .bubble {
position: relative;
max-width: 32em;
min-width: 16em;
height: auto;
padding: 0.75em 0.5em 0.75em 1.25em;
margin: 0;
text-align: left;
border-radius: 0.5em;
-webkit-border-radius: 0.5em;
-moz-border-radius: 0.5em;
/* tested in chrome 47 on mac - performance sucks
-webkit-filter: drop-shadow(0px 1px 1px -1px rgba(0,0,0,0.3));
-filter: drop-shadow(0px 1px 1px -1px rgba(0,0,0,0.3));
*/
}
.chat-box li.single {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.chat-box li.first {
margin-top: 0.75em;
margin-bottom: 0.15em;
}
.chat-box li.middle {
margin-top: 0.15em;
margin-bottom: 0.15em;
}
.chat-box li.last {
margin-top: 0.15em;
margin-bottom: 0.75em;
}
/* Left triangle placed bottom left flush. */
.chat-box li.left .tip::before {
content: '';
position: absolute;
width: 0;
height: 0;
right: auto;
left: -10px;
top: auto;
bottom: 0;
border: 10px solid;
border-top-color: transparent;
border-right-color: transparent;
border-bottom-color: inherit;
border-left-color: transparent;
}
/* Right triangle placed bottom right flush. */
.chat-box li.right .tip::before {
content: '';
position: absolute;
width: 0;
height: 0;
left: auto;
right: -10px;
top: auto;
bottom: 0;
border: 10px solid;
border-top-color: transparent;
border-right-color: transparent;
border-bottom-color: inherit;
border-left-color: transparent;
}
.chat-box .avatar {
width: 40px;
text-align: center;
}
.chat-box .avatar img {
width: 32px;
display: block;
position: relative;
left: 4px;
border-radius: 50%;
}
.chat-box .bubble p {
margin: 0;
}
/* Typing notification bubble */
.chat-box .typing {
display: inline-block;
border-radius: 0.5em;
width: 2em;
padding: 0.25em 0.35em;
vertical-align: middle;
text-align: center;
color: #aaa;
}
.chat-box li.single .typing {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.chat-box li.last .typing {
margin-top: 0.15em;
margin-bottom: 0.75em;
}
.chat-box .timestamp {
font-size: 80%;
color: #777;
padding-left: 1.5em;
padding-top: 0.5em;
}
/* END of talk bubbles */
/* END of topic/mesages view */
/* Modal dialog */
.overlay {
position: absolute;
display: flex;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
background-color: rgba(0,0,0,0.5);
}
.modal-dialog {
background-color: white;
margin: auto;
}
/* END of modal dialog */
/* Miscellaneous */
/* Badge with the number of unread messages */
.badge {
display: inline-block;
font-size: 0.8rem;
font-weight: bold;
background-color: #0097A7;
color: white;
border-radius: 1em;
padding: 0.25em;
min-width: 1.5em;
text-align: center;
}
/* Color of buttons */
.blue {
color: #2196f3; /* blue 500 */
}
/* Material icons resized from the default 24pt */
.material-icons {
font-size: 1.4rem;
line-height: 1;
}
.material-icons.small {
font-size: 1rem;
}
#self-avatar.material-icons, .avatar-box .material-icons {
font-size: 2.8rem;
}
.avatar-box .material-icons {
color: rgba(250, 250, 250, 0.8); /* #fafafa, gray 50 */
background-color: #bdbdbd;
border-radius: 2pt;
}