luci-theme-openwrt: modal/progressbar rules, mobile improvements
authorJo-Philipp Wich <jo@mein.io>
Tue, 13 Nov 2018 15:12:00 +0000 (16:12 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 14 Nov 2018 19:46:04 +0000 (20:46 +0100)
 - Add rules for modal dialogs and progress bar widgets
 - Increase button and input size on mobile devices
 - Convert pt to px units
 - Add label and h5 styles
 - Add common flash and spin utility classes

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css

index a88d678f6dbfdb2bc615e23ba87edb77f5e70450..acd711a1ea06fa6bfa07e90fd0b628974d65e079 100644 (file)
@@ -19,7 +19,7 @@ body {
        background-position: bottom center;
        background-repeat: repeat-x;
        font-family: Arial, Verdana, sans-serif;
-       font-size: 10pt;
+       font-size: 13px;
        padding-bottom: 1.5em;
 }
 
@@ -86,7 +86,7 @@ a img {
        background: #f5f5f5;
        border: 1px solid #444;
        border-width: 0 0 1px 1px;
-       font-size: 11pt;
+       font-size: 15px;
        padding-bottom: 1em;
 }
 
@@ -199,6 +199,59 @@ hr {
        margin-left: 2em;
 }
 
+#modal_overlay {
+       position: fixed;
+       top: 0;
+       bottom: 0;
+       left: -10000px;
+       right: 10000px;
+       background: rgba(0, 0, 0, 0.7);
+       z-index: 900;
+       overflow-y: scroll;
+       -webkit-overflow-scrolling: touch;
+       transition: opacity .125s ease-in;
+       opacity: 0;
+}
+
+.modal {
+       width: 90%;
+       margin: 5em auto;
+       display: flex;
+       flex-wrap: wrap;
+       min-height: 32px;
+       max-width: 600px;
+       align-items: center;
+       border-radius: 3px;
+       background: #f5f5f5;
+       border: 1px solid #000;
+       padding: .5em .5em .25em .5em;
+       max-height: 2400px;
+       min-width: 270px;
+       color: #444;
+}
+
+.modal > * {
+       flex-basis: 100%;
+       line-height: normal;
+       margin-bottom: .5em;
+}
+
+.modal > pre,
+.modal > textarea {
+       white-space: pre-wrap;
+       overflow: auto;
+}
+
+body.modal-overlay-active {
+       overflow: hidden;
+}
+
+body.modal-overlay-active #modal_overlay {
+       left: 0;
+       right: 0;
+       opacity: 1;
+}
+
 .warning {
        color: red;
        background-color: white;
@@ -234,19 +287,29 @@ hr {
        margin: 0 0 .5em 0;
 }
 
-.alert-message, .cbi-tooltip.error {
+.label {
+       padding: 1px 2px;
+       font-size: 10px;
+       color: #fff;
+       text-transform: uppercase;
+       white-space: nowrap;
+       background-color: #aaa;
+       border-radius: 3px;
+}
+
+.alert-message, .cbi-tooltip.error, .label.error {
        border-color: #a22;
        background: #fee;
        color: #a22;
 }
 
-.alert-message.notice, .cbi-tooltip.notice {
+.alert-message.notice, .cbi-tooltip.notice, .label.notice {
        border-color: #15a;
        background: #e6f6ff;
        color: #15a;
 }
 
-.alert-message.warning, .cbi-tooltip.warning {
+.alert-message.warning, .cbi-tooltip.warning, .label.warning {
        border-color: #ed5;
        background: #fe9;
        color: #650;
@@ -392,7 +455,7 @@ textarea#syslog {
        direction: rtl;
 }
 
-h2, h3, h4, legend {
+h2, h3, h4, h5, legend {
        font-size: 150%;
        font-family: Trebuchet MS, Verdana, sans-serif;
        font-weight: bold;
@@ -411,6 +474,10 @@ h4 {
        font-size: 112%;
 }
 
+h5 {
+       font-size: 105%;
+}
+
 fieldset { border: none; }
 fieldset > legend { float: left; }
 fieldset > legend + * { clear: both; }
@@ -499,7 +566,7 @@ input[type=text],
 input[type=password],
 .cbi-dropdown {
        width: 20em;
-       font-size: 10pt;
+       font-size: 12px;
        height: 22px;
 }
 
@@ -514,6 +581,12 @@ input.cbi-input-password + img {
        vertical-align: middle;
 }
 
+label > input[type="checkbox"],
+label > input[type="radio"] {
+       vertical-align: bottom;
+       margin: 0;
+}
+
 .td select,
 .td .cbi-dropdown,
 .td input[type=text],
@@ -543,8 +616,9 @@ img.cbi-image-button {
        background: #fff;
        text-align: center;
        font-weight: bold;
-       line-height: 13pt;
-       height: 16pt;
+       line-height: 12px;
+       height: 22px;
+       line-height: 20px;
        box-sizing: border-box;
        cursor: pointer;
 }
@@ -777,16 +851,6 @@ div.cbi-optionals {
        margin: 0;
 }
 
-@keyframes flash {
-       0% { opacity: 1; }
-       50% { opacity: .5; }
-       100% { opacity: 1; }
-}
-
-.tr.cbi-section-table-row.flash {
-       animation: flash .35s;
-}
-
 .tr.cbi-section-table-descr .th {
        font-weight: normal;
        font-size: 90%;
@@ -800,7 +864,6 @@ div.cbi-optionals {
 
 .th.cbi-section-actions,
 .td.cbi-section-actions {
-       overflow: visible;
        align-self: center;
        vertical-align: middle;
 }
@@ -1205,12 +1268,12 @@ input[type="password"] + .cbi-button,
 select + .cbi-button {
        border-radius: 0 3px 3px 0;
        border: 1px outset #000;
-       margin: 0 0 1px -2px;
+       margin: 0 0 0 -2px;
        padding: 0 6px;
        vertical-align: top;
        display: inline-block;
        height: 22px;
-       font-size: 10pt;
+       font-size: 12px;
        line-height: 20px;
 }
 
@@ -1230,6 +1293,7 @@ select + .cbi-button {
        transition: opacity .25s ease-out;
        pointer-events: none;
        box-shadow: 0 0 2px #444;
+       color: #444;
 }
 
 .cbi-tooltip-container:hover .cbi-tooltip {
@@ -1239,6 +1303,39 @@ select + .cbi-button {
        white-space: normal;
 }
 
+.cbi-progressbar {
+       background: #ddd;
+       border: 1px solid #bbb;
+       border-radius: 3px;
+       position: relative;
+       min-width: 170px;
+       height: 20px;
+       margin: 4px 0;
+       line-height: 20px;
+}
+
+.cbi-progressbar > div {
+       background: #90c0e0;
+       height: 100%;
+       transition: width .25s ease-in;
+       width: 0%;
+}
+
+.cbi-progressbar::after {
+       position: absolute;
+       bottom: 0;
+       top: 0;
+       right: 0;
+       left: 0;
+       text-align: center;
+       text-shadow: 0 0 2px #fff;
+       content: attr(title);
+       white-space: pre;
+       overflow: hidden;
+       text-overflow: ellipsis;
+}
+
+
 .zonebadge .cbi-tooltip {
        padding: 1px;
        background: inherit;
@@ -1332,7 +1429,7 @@ select + .cbi-button {
 }
 
 .ifacebadge > * {
-       align-self: flex-start;
+       align-self: center;
 }
 
 .ifacebadge > img,
@@ -1528,6 +1625,32 @@ select + .cbi-button {
 }
 
 
+@keyframes flash {
+       0% { opacity: 1; }
+       50% { opacity: .5; }
+       100% { opacity: 1; }
+}
+
+.flash {
+       animation: flash .35s;
+}
+
+.spinning {
+       position: relative;
+       padding-left: 32px !important;
+}
+
+.spinning::before {
+       position: absolute;
+       top: 0;
+       left: 0;
+       bottom: 0;
+       width: 32px;
+       content: " ";
+       background: url(../resources/icons/loading.gif) no-repeat center;
+       background-size: 16px;
+}
+
 }
 
 @media screen and (max-width: 992px) {
@@ -1732,29 +1855,36 @@ select + .cbi-button {
 
 @media screen and (max-width: 480px) {
        body {
-               font-size: 12pt;
+               font-size: 16px;
        }
 
-       input, textarea, select, .cbi-button {
-               font-size: 12pt !important;
+       input, textarea, select, .cbi-button, .cbi-dropdown {
+               font-size: 16px !important;
                line-height: 30px;
        }
 
        select, input[type="text"], input[type="password"] {
                width: 100%;
                height: 30px;
+               border-radius: 3px;
        }
 
        input[type="text"] + .cbi-button,
        input[type="password"] + .cbi-button,
        select + .cbi-button {
                height: 30px;
-               line-height: 28px;
+               line-height: 30px;
+               margin-left: -5px;
+               min-width: 30px;
        }
 
        input.cbi-input-password,
        [data-dynlist] > .add-item > input {
-               width: calc(100% - 20px);
+               width: calc(100% - 25px);
+       }
+
+       .label {
+               font-size: 14px;
        }
 
        .cbi-dynlist,
@@ -1771,8 +1901,11 @@ select + .cbi-button {
        }
 
        .btn, .cbi-button {
-               font-size: 9pt !important;
-               line-height: 13pt;
+               font-size: 16px !important;
+               line-height: 30px;
+               height: 30px;
+               overflow: hidden;
+               text-overflow: ellipsis;
        }
 
        #maincontent {
@@ -1839,11 +1972,6 @@ select + .cbi-button {
                padding: 0 3px;
        }
 
-       ul.cbi-tabmenu li {
-               font-size: 90%;
-               margin: 0 1px -1px 0;
-       }
-
        .hide-xs {
                display: none;
        }
@@ -1861,4 +1989,9 @@ select + .cbi-button {
                width: 100%;
                margin-top: .5em;
        }
+
+       #cbi-firewall-rule .td[data-type="fvalue"],
+       #cbi-firewall-redirect .td[data-type="fvalue"] {
+               display: none;
+       }
 }