view default/static/styles.css @ 84:b2ef34e602cf

base, js (websocket), css (main style): dynamic pages implementation, first draft: this patch introduces the browser part of dynamic pages. Dynamic pages work by establishing a websocket between server and the current page, if requested by server (which means that needed arguments are present in template). Once the connection is established, the server can, for now, reload the page, append HTML elements, or receive arbitrary data (without reloading the page, in opposition to data post). If connection can't be established, a popup will be displayed and connection will be retried many times after variable timeouts. The browser will finally give up and display an alert to client if the number of retries is too high (20 for now).
author Goffi <goffi@goffi.org>
date Wed, 03 Jan 2018 01:12:16 +0100
parents 3eec00136867
children 92ca411ee635
line wrap: on
line source

html {
    font-family: "sat-base-font";
}

body {
    margin: 0;
    padding: 0;
    display: flex;
    height: 100vh;
    flex-direction: column;
    box-sizing: border-box;
}

#main_side_bar {
    
}

#main_area {
    flex: 1;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

#body {
    flex: 1;
    position: relative;
}

footer {
    text-align: center;
    font-size: 0.7em;
    font-weight: bold;
}

.box {
    background-color: #edf2ff;
    border-radius: 0;
    border-color: silver;
}

.title {
    font-weight: bold;
    text-align: center;
}

.post_confirm {
    text-align: center;
    background-color: lightgreen;
    padding: 1em;
    font-size: 1.2em;
    font-weight: bold;
    width: 60%;
    margin: 1.5em auto;
}

/*** Generic ***/

.button:hover {
    background-color: #bc0000;
}

/*** Messages ***/

.message_info {
    max-width: 500px;
    margin: 0 auto;
    padding: 1em;
    text-align: justify;
}

.message_info pre {
    background: #ddd;
    padding: 1em;
}

/*** Menus ***/

.menu ul {
    display: flex;
    padding: 0;
    margin-top: 8px;
    list-style: none;
}

.menu a {
    display: block;
    color: inherit;
    text-decoration: none;
    font-variant: small-caps;
}

.main_menu {
    min-width: 200px;
    /* background-color: #eaeaea; */
    background-color: #333;
    color: white;
}

.main_menu ul {
    flex-direction: row;
    flex-wrap: wrap;
}

.main_menu li {
    flex: 1;
    padding: 0;
    margin: 0 1em;
}

.main_menu a {
    display: inline;
    white-space: nowrap;
}

.main_menu a:hover {
    background-color: initial;
    text-shadow: 1px 1px 2px;
    font-weight: bold;
}

.category_menu ul {
    justify-content: center;
}

.category_menu li {
    margin: 0.5em;
    text-align: center;
}

.category_menu a {
    border: solid 1px;
    padding: 0.5em;
    border-radius: 0.2em;
    background: #eee;
}

/*** containers ***/

/* tabs */

.tab_container {
    max-width: 1000px;
    margin: 0 auto;
}

.tab_header {
    background-color: white;
    border-bottom: 1px solid lightgrey;
}

.tab_header ul {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
    background-color: white;
}

.tab_page {
    box-sizing: border-box;
    padding-top: 2em;
    border: 1px solid lightgrey;
    border-top: none;
    display: None;
}

.tab_page.clicked {
    display: block;
}

.tab_button {
    display: inline;
    color: grey;
    background-color: white;
    border-top: 1px solid lightgrey;
    border-left: 1px solid lightgrey;
    border-bottom: 1px solid lightgrey;
    padding: 0 1em;
    cursor: pointer;
    /* we go down by 1px to remove bottom border from .tab_header */
    margin-bottom: -1px;
}

.tab_button.clicked {
    /* background: lightgrey; */
    color: inherit;
    border-bottom: none;
}

li.tab_button:last-child {
    border-right: 1px solid lightgrey;
}

.tab_button input {
    display: None;
}

.tab_button label {
    margin: 1em;
}

.tab_button input:checked + label {
    font-weight: bold;
}

/*** Forms ***/

.form_submit {
    margin: 1em auto 0;
    display: block;
}

/*** XMLUI ***/

.xmlui_cont_vertical>* {
    display: block;
    box-sizing: border-box;
}

.xmlui_cont_vertical>.xmlui_widget {
    width: 100%;
    min-height: 1em;
    min-width: 1px;
}

label.xmlui_label {
    font-weight: bold;
}

td a {
  /* we use <a> for non JS links in table
   * so we don't want specific color/text-decoration by default
   */
  color: inherit;
  text-decoration: inherit;
}


/*** Notifications ***/

.notification.retry {
	position: fixed;
	top: 1rem;
	margin: auto;
	width: 80%;
	background: #DB1616;
	border: 3px solid silver;
	left: 10%;
	text-align: center;
}

#retry_counter {
	font-weight: bold;
}

#retry_now {
	color: blue;
	text-decoration: underline;
	cursor: pointer;
}

@media (min-width: 800px) {
    html {
        background-size: auto;
    }

    body {
        flex-direction: row;
    }

    #main_area {
        overflow: auto;
    }

    .box {
        border-radius: 1em;
        box-shadow: 10px 10px 16px -5px rgba(0,0,0,0.5);
    }

    .main_menu a {
        display: block;
        padding: 2em 0;
    }

    .main_menu ul {
        flex-direction: column;
        padding-left: 2em;
    }
}