gluon-luci-theme: new theme, still magenta/yellow
This is the initial version of our new configmode theme. It's far from finished but at least configmode looks good. There are lots of declarations copied from OpenWRT's default theme so most other luci modules would be somewhat usable when shown using this theme.
This commit is contained in:
parent
5e0048ae84
commit
40c4659e18
39
package/gluon-luci-theme/Makefile
Normal file
39
package/gluon-luci-theme/Makefile
Normal file
@ -0,0 +1,39 @@
|
||||
# Copyright (C) 2013 Nils Schneider <nils at nilsschneider.net>
|
||||
# This is free software, licensed under the Apache 2.0 license.
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gluon-luci-theme
|
||||
PKG_VERSION:=0.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/gluon-luci-theme
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Luci theme for Gluon
|
||||
DEPENDS:=
|
||||
endef
|
||||
|
||||
define Package/gluon-luci-theme/description
|
||||
Luci based config mode
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/gluon-luci-theme/install
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,gluon-luci-theme))
|
6
package/gluon-luci-theme/files/etc/uci-defaults/luci-theme-gluon
Executable file
6
package/gluon-luci-theme/files/etc/uci-defaults/luci-theme-gluon
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
uci batch <<-EOF
|
||||
set luci.themes.Gluon=/luci-static/gluon
|
||||
commit luci
|
||||
EOF
|
||||
|
@ -0,0 +1,19 @@
|
||||
<%#
|
||||
LuCI - Lua Configuration Interface
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
$Id$
|
||||
|
||||
-%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,164 @@
|
||||
<%#
|
||||
LuCI - Lua Configuration Interface
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2010 Jo-Philipp Wich <xm@subsignal.org>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
$Id$
|
||||
|
||||
-%>
|
||||
<%
|
||||
local sys = require "luci.sys"
|
||||
local http = require "luci.http"
|
||||
local disp = require "luci.dispatcher"
|
||||
|
||||
local hostname = sys.hostname()
|
||||
local load1, load5, load15 = sys.loadavg()
|
||||
|
||||
local request = disp.context.path
|
||||
local request2 = disp.context.request
|
||||
|
||||
local category = request[1]
|
||||
local cattree = category and disp.node(category)
|
||||
|
||||
local leaf = request2[#request2]
|
||||
|
||||
local tree = disp.node()
|
||||
local node = disp.context.dispatched
|
||||
|
||||
local categories = disp.node_childs(tree)
|
||||
|
||||
local c = tree
|
||||
local i, r
|
||||
|
||||
-- tag all nodes leading to this page
|
||||
for i, r in ipairs(request) do
|
||||
if c.nodes and c.nodes[r] then
|
||||
c = c.nodes[r]
|
||||
c._menu_selected = true
|
||||
end
|
||||
end
|
||||
|
||||
http.prepare_content("application/xhtml+xml")
|
||||
|
||||
local function nodeurl(prefix, name, query)
|
||||
local url = controller .. prefix .. name .. "/"
|
||||
if query then
|
||||
url = url .. http.build_querystring(query)
|
||||
end
|
||||
return pcdata(url)
|
||||
end
|
||||
|
||||
local function subtree(prefix, node, level)
|
||||
if not level then
|
||||
level = 1
|
||||
end
|
||||
|
||||
local childs = disp.node_childs(node)
|
||||
if #childs > 0 then
|
||||
%>
|
||||
<div class="tabmenu<%=level%>">
|
||||
<ul class="tabmenu l<%=level%>">
|
||||
<%
|
||||
local selected_node
|
||||
local selected_name
|
||||
local i, v
|
||||
|
||||
for i, v in ipairs(childs) do
|
||||
local nnode = node.nodes[v]
|
||||
if nnode._menu_selected then
|
||||
selected_node = nnode
|
||||
selected_name = v
|
||||
end
|
||||
%>
|
||||
<li class="tabmenu-item-<%=v%><% if nnode._menu_selected or (node.leaf and v == leaf) then %> active<% end %>">
|
||||
<a href="<%=nodeurl(prefix, v, nnode.query)%>"><%=striptags(translate(nnode.title))%></a>
|
||||
</li>
|
||||
<%
|
||||
end
|
||||
%>
|
||||
</ul>
|
||||
<br style="clear:both" />
|
||||
<%
|
||||
if selected_node then
|
||||
subtree(prefix .. selected_name .. "/", selected_node, level + 1)
|
||||
end
|
||||
%>
|
||||
</div>
|
||||
<%
|
||||
end
|
||||
end
|
||||
-%>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=luci.i18n.context.lang%>" lang="<%=luci.i18n.context.lang%>">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
|
||||
<% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" />
|
||||
<% end -%>
|
||||
<% if css then %><style title="text/css">
|
||||
<%= css %>
|
||||
</style>
|
||||
<% end -%>
|
||||
<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
|
||||
<title><%=striptags( hostname .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
|
||||
</head>
|
||||
<body class="lang_<%=luci.i18n.context.lang%>">
|
||||
|
||||
<div id="menubar">
|
||||
<div class="hostinfo">
|
||||
<%=hostname%>
|
||||
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
|
||||
| <%:Auto Refresh%>:
|
||||
<span id="xhr_poll_status_on"><%:on%></span>
|
||||
<span id="xhr_poll_status_off" style="display:none"><%:off%></span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<% if #categories > 1 then %>
|
||||
<ul id="modemenu">
|
||||
<% for i, r in ipairs(categories) do %>
|
||||
<li><a<% if request[1] == r then %> class="active"<%end%> href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<%
|
||||
if tree.nodes[category] and tree.nodes[category].ucidata then
|
||||
local ucic = 0
|
||||
for i, j in pairs(require("luci.model.uci").cursor():changes()) do
|
||||
for k, l in pairs(j) do
|
||||
for m, n in pairs(l) do
|
||||
ucic = ucic + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
-%>
|
||||
<div id="savemenu">
|
||||
<% if ucic > 0 then %>
|
||||
<a class="warning" href="<%=controller%>/<%=category%>/uci/changes/?redir=<%=luci.http.urlencode(luci.http.formvalue("redir") or REQUEST_URI)%>"><%:Unsaved Changes%>: <%=ucic%></a>
|
||||
<%- else -%>
|
||||
<a href="#"><%:Changes%>: 0</a>
|
||||
<% end -%>
|
||||
</div><% end %>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="maincontainer">
|
||||
<% if category then subtree("/" .. category .. "/", cattree) end %>
|
||||
|
||||
<div id="maincontent">
|
||||
<noscript>
|
||||
<div class="errorbox">
|
||||
<strong><%:Java Script required!%></strong><br />
|
||||
<%:You must enable Java Script in your browser or LuCI will not work properly.%>
|
||||
</div>
|
||||
</noscript>
|
804
package/gluon-luci-theme/files/www/luci-static/gluon/cascade.css
Normal file
804
package/gluon-luci-theme/files/www/luci-static/gluon/cascade.css
Normal file
@ -0,0 +1,804 @@
|
||||
@charset "UTF-8";
|
||||
.lang_he {
|
||||
direction: RTL;
|
||||
unicode-bidi: embed; }
|
||||
|
||||
.hidden {
|
||||
display: none; }
|
||||
|
||||
html {
|
||||
min-height: 100%;
|
||||
height: auto;
|
||||
position: relative; }
|
||||
|
||||
body {
|
||||
font-family: 'Open Sans', Arial, sans-serif;
|
||||
font-size: 12pt;
|
||||
color: #4d4e53;
|
||||
line-height: 1.5em;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
background-color: #f3f3f3; }
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
text-decoration: none; }
|
||||
|
||||
.tabmenu1 {
|
||||
text-align: center; }
|
||||
|
||||
ul.tabmenu {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 2em 0;
|
||||
display: inline-flex; }
|
||||
|
||||
ul.tabmenu li {
|
||||
white-space: nowrap;
|
||||
margin: 0 0.5em;
|
||||
padding: 0;
|
||||
text-align: center; }
|
||||
ul.tabmenu li a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
padding: 1em;
|
||||
margin: 0;
|
||||
color: #333;
|
||||
border-radius: 2em; }
|
||||
ul.tabmenu li a:hover {
|
||||
background: #ffe9b3; }
|
||||
ul.tabmenu li.active a {
|
||||
font-weight: bold;
|
||||
background: white;
|
||||
color: #333; }
|
||||
|
||||
abbr,
|
||||
acronym {
|
||||
font-style: normal;
|
||||
font-variant: normal; }
|
||||
|
||||
abbr[title],
|
||||
acronym[title] {
|
||||
border-bottom: 1px dotted;
|
||||
cursor: help; }
|
||||
|
||||
a:link abbr[title],
|
||||
a:visited abbr[title],
|
||||
a:link acronym[title],
|
||||
a:visited acronym[title] {
|
||||
cursor: pointer; }
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
white-space: pre; }
|
||||
|
||||
#maincontent ul {
|
||||
margin-left: 2em; }
|
||||
|
||||
.warning {
|
||||
color: red;
|
||||
background-color: white;
|
||||
font-weight: bold; }
|
||||
|
||||
.clear {
|
||||
clear: both; }
|
||||
|
||||
.error {
|
||||
color: #ff0000;
|
||||
background-color: white; }
|
||||
|
||||
div.hostinfo {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 80%;
|
||||
padding: 0.5em;
|
||||
flex: 1;
|
||||
font-weight: bold; }
|
||||
|
||||
#xhr_poll_status {
|
||||
cursor: pointer; }
|
||||
|
||||
#xhr_poll_status #xhr_poll_status_off {
|
||||
font-weight: bold;
|
||||
color: #FF0000; }
|
||||
|
||||
#xhr_poll_status #xhr_poll_status_on {
|
||||
font-weight: bold;
|
||||
color: #00FF00; }
|
||||
|
||||
#menubar {
|
||||
display: flex;
|
||||
background: #dc0067;
|
||||
color: #ffffff; }
|
||||
|
||||
#menubar .warning {
|
||||
color: red;
|
||||
background-color: #557788; }
|
||||
|
||||
#menubar a:link,
|
||||
#menubar a:visited {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
text-decoration: none;
|
||||
font-size: 80%;
|
||||
font-weight: normal;
|
||||
color: white; }
|
||||
|
||||
#menubar a:link:hover,
|
||||
#menubar a:visited:hover,
|
||||
#menubar a:link:focus,
|
||||
#menubar a:visited:focus {
|
||||
background: #ffb400;
|
||||
color: black; }
|
||||
|
||||
#menubar a:link.active,
|
||||
#menubar a:visited.active {
|
||||
background: #ffb400;
|
||||
color: black;
|
||||
font-weight: bold; }
|
||||
|
||||
#menubar a:link.warning,
|
||||
#menubar a:visited.warning {
|
||||
background: #000000;
|
||||
color: red;
|
||||
font-weight: bold; }
|
||||
|
||||
#modemenu {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
|
||||
#modemenu li {
|
||||
display: inline-block; }
|
||||
|
||||
.lang_de #submenu_admin_uci {
|
||||
width: 12em; }
|
||||
|
||||
.lang_ru #submenu_admin_uci {
|
||||
width: 11.5em; }
|
||||
|
||||
textarea#syslog {
|
||||
width: 98%;
|
||||
min-height: 500px;
|
||||
border: 3px solid #cccccc;
|
||||
padding: 5px;
|
||||
font-family: monospace; }
|
||||
|
||||
#maincontent {
|
||||
padding: 0 1em 2em;
|
||||
max-width: 60em;
|
||||
min-width: 40em;
|
||||
margin: 1em auto; }
|
||||
|
||||
.lang_he #maincontent {
|
||||
direction: rtl; }
|
||||
|
||||
#maincontent p {
|
||||
margin-bottom: 1em; }
|
||||
|
||||
.cbi-section {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none; }
|
||||
|
||||
.cbi-section legend {
|
||||
font-size: 1.4em;
|
||||
font-weight: bold;
|
||||
color: #dc0067;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5em; }
|
||||
|
||||
.cbi-section h2 {
|
||||
margin: 0em 0 0.5em -0.5em !important; }
|
||||
|
||||
.cbi-section h3 {
|
||||
text-decoration: none !important;
|
||||
font-weight: bold !important;
|
||||
color: #555555 !important;
|
||||
margin: 0.25em !important;
|
||||
font-size: 100% !important; }
|
||||
|
||||
.cbi-section-descr {
|
||||
margin-bottom: 2em; }
|
||||
|
||||
.cbi-title-ref {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
padding-right: 18px;
|
||||
background: url("../resources/cbi/link.gif") no-repeat scroll right center;
|
||||
background-color: inherit; }
|
||||
|
||||
ul.cbi-apply {
|
||||
font-size: 90%; }
|
||||
|
||||
input:-webkit-input-placeholder {
|
||||
color: #AAAAAA; }
|
||||
|
||||
input:-moz-placeholder {
|
||||
color: #AAAAAA; }
|
||||
|
||||
input:-ms-input-placeholder {
|
||||
color: #AAAAAA; }
|
||||
|
||||
input[type=checkbox] {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
appearance: none;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
margin: 0; }
|
||||
input[type=checkbox]:checked {
|
||||
position: relative; }
|
||||
input[type=checkbox]:checked::after {
|
||||
content: '✔';
|
||||
color: #dc0067;
|
||||
vertical-align: middle;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
margin-top: -0.5em;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 1.7em; }
|
||||
|
||||
input[type=submit],
|
||||
input[type=reset],
|
||||
input[type=image],
|
||||
input[type=button] {
|
||||
cursor: pointer; }
|
||||
|
||||
select,
|
||||
input,
|
||||
textarea {
|
||||
color: #003247;
|
||||
border: none;
|
||||
background: #ffe199;
|
||||
border-radius: 3pt;
|
||||
padding: 0.5em; }
|
||||
|
||||
input[type=image] {
|
||||
border: none; }
|
||||
|
||||
select,
|
||||
input[type=text],
|
||||
input[type=password] {
|
||||
width: 20em; }
|
||||
|
||||
td select,
|
||||
td input[type=text],
|
||||
td input[type=password] {
|
||||
width: 99%; }
|
||||
|
||||
img.cbi-image-button {
|
||||
cursor: pointer;
|
||||
margin: 0 2px;
|
||||
vertical-align: middle; }
|
||||
|
||||
input.cbi-button {
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
line-height: normal;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
-webkit-user-drag: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
font-size: 100%;
|
||||
padding: 0.5em 1em;
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
border: none rgba(0, 0, 0, 0);
|
||||
background-color: #E6E6E6;
|
||||
text-decoration: none;
|
||||
border-radius: 2px;
|
||||
/* Transitions */
|
||||
-webkit-transition: 0.1s linear -webkit-box-shadow;
|
||||
-moz-transition: 0.1s linear -moz-box-shadow;
|
||||
-ms-transition: 0.1s linear box-shadow;
|
||||
-o-transition: 0.1s linear box-shadow;
|
||||
transition: 0.1s linear box-shadow;
|
||||
background-repeat: no-repeat; }
|
||||
input.cbi-button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
input.cbi-button:active {
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.2) inset; }
|
||||
input.cbi-button:focus {
|
||||
outline: 0; }
|
||||
input.cbi-button:hover, input.cbi-button:focus {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.1)));
|
||||
background-image: -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.1));
|
||||
background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1));
|
||||
background-image: -o-linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.1));
|
||||
background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.1)); }
|
||||
input.cbi-button[disabled] {
|
||||
border: none;
|
||||
background-image: none;
|
||||
opacity: 0.40;
|
||||
cursor: not-allowed;
|
||||
box-shadow: none; }
|
||||
|
||||
input.cbi-input-user {
|
||||
background-image: url("../resources/cbi/user.gif");
|
||||
background-repeat: no-repeat;
|
||||
background-position: 1px center;
|
||||
color: #000000;
|
||||
text-indent: 17px; }
|
||||
|
||||
input.cbi-input-find,
|
||||
input.cbi-button-find {
|
||||
background-image: url("../resources/cbi/find.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px; }
|
||||
|
||||
input.cbi-input-reload {
|
||||
background-image: url("../resources/cbi/reload.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px; }
|
||||
|
||||
input.cbi-input-add,
|
||||
input.cbi-button-add {
|
||||
background-image: url("../resources/cbi/add.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-input-fieldadd,
|
||||
input.cbi-button-fieldadd {
|
||||
background-image: url(../resources/cbi/fieldadd.gif);
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-input-reset,
|
||||
input.cbi-button-reset {
|
||||
background-color: #ee3300;
|
||||
color: #fff; }
|
||||
|
||||
input.cbi-input-save,
|
||||
input.cbi-button-save {
|
||||
background-color: #009ee0;
|
||||
color: #fff; }
|
||||
|
||||
input.cbi-input-apply,
|
||||
input.cbi-button-apply {
|
||||
background-color: #009ee0;
|
||||
color: #fff; }
|
||||
|
||||
input.cbi-input-link,
|
||||
input.cbi-button-link {
|
||||
background-image: url("../resources/cbi/link.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-input-download,
|
||||
input.cbi-button-download {
|
||||
background-image: url("../resources/cbi/download.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-input-remove,
|
||||
div.cbi-section-remove input {
|
||||
background-image: url("../resources/cbi/remove.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-button-up {
|
||||
background-image: url("../resources/cbi/up.gif");
|
||||
padding-left: 11px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-button-down {
|
||||
background-image: url("../resources/cbi/down.gif");
|
||||
padding-left: 11px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-button-edit {
|
||||
background-image: url("../resources/cbi/edit.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-button-reload {
|
||||
background-image: url("../resources/cbi/reload.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
input.cbi-button-remove {
|
||||
background-image: url("../resources/cbi/remove.gif");
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
padding-right: 1px; }
|
||||
|
||||
.cbi-input-invalid {
|
||||
background: #ee3300 !important;
|
||||
color: white; }
|
||||
|
||||
div.cbi-section-remove input {
|
||||
border-bottom: none; }
|
||||
|
||||
textarea {
|
||||
margin-left: -1px;
|
||||
margin-bottom: 0.5em; }
|
||||
|
||||
form > div > input[type=submit],
|
||||
form > div > input[type=reset] {
|
||||
margin-left: 0.5em; }
|
||||
|
||||
table td,
|
||||
table th {
|
||||
color: #000000; }
|
||||
|
||||
table.smalltext {
|
||||
background: #f5f5f5;
|
||||
color: #000000;
|
||||
border-top: 1px solid #666666;
|
||||
border-right: 1px solid #666666;
|
||||
border-bottom: 1px solid #666666;
|
||||
font-size: 90%;
|
||||
width: 80%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-collapse: collapse; }
|
||||
|
||||
table.smalltext tr:hover td {
|
||||
background-color: #bbddee;
|
||||
color: #000000; }
|
||||
|
||||
table.smalltext tr th {
|
||||
padding: 0 0.25em;
|
||||
border-left: 1px solid #666666;
|
||||
text-align: left; }
|
||||
|
||||
table.smalltext tr td {
|
||||
padding: 0 0.25em;
|
||||
border-top: 1px solid #666666;
|
||||
border-left: 1px solid #666666; }
|
||||
|
||||
table.cbi-section-table .cbi-rowstyle-1 {
|
||||
background-color: #eeeeff;
|
||||
color: #000000; }
|
||||
|
||||
table.cbi-section-table .cbi-rowstyle-1:hover,
|
||||
table.cbi-section-table .cbi-rowstyle-2:hover {
|
||||
background-color: #b2c8d4;
|
||||
color: #000000; }
|
||||
|
||||
table.cbi-section-table .cbi-section-table-cell {
|
||||
padding: 3px;
|
||||
white-space: nowrap; }
|
||||
|
||||
.cbi-section .cbi-rowstyle-1 h3 {
|
||||
background-color: #eeeeff;
|
||||
color: #555555; }
|
||||
|
||||
.cbi-rowstyle-2 {
|
||||
color: #000000; }
|
||||
|
||||
div.cbi-value {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 0.5em; }
|
||||
|
||||
.cbi-value-title {
|
||||
flex: 2;
|
||||
text-align: right;
|
||||
padding-top: 0.39em;
|
||||
padding-right: 1em;
|
||||
font-weight: bold; }
|
||||
|
||||
div.cbi-value-field {
|
||||
flex: 3; }
|
||||
|
||||
div.cbi-value-description {
|
||||
font-size: 8pt; }
|
||||
|
||||
div.cbi-section-create {
|
||||
clear: left;
|
||||
white-space: nowrap;
|
||||
vertical-align: top; }
|
||||
|
||||
div.cbi-section-create .cbi-button {
|
||||
margin: 0.25em; }
|
||||
|
||||
input.cbi-section-create-name {
|
||||
margin-right: -0.25em; }
|
||||
|
||||
div.cbi-map-descr {
|
||||
margin-bottom: 1em; }
|
||||
|
||||
.cbi-map-descr:empty, .cbi-section-descr:empty {
|
||||
display: none; }
|
||||
|
||||
.cbi-map-descr, .cbi-section-descr, .cbi-page-actions {
|
||||
padding: 1em;
|
||||
background: #ececec; }
|
||||
|
||||
.cbi-page-actions {
|
||||
text-align: right;
|
||||
display: flex;
|
||||
display: -moz-flex;
|
||||
-moz-flex-flow: row-reverse;
|
||||
flex-flow: row-reverse; }
|
||||
|
||||
div.cbi-optionals {
|
||||
padding: 0.25em;
|
||||
border-bottom: 1px dotted #bbbbbb; }
|
||||
|
||||
div.cbi-section-remove {
|
||||
float: right; }
|
||||
|
||||
.cbi-section-node {
|
||||
clear: both;
|
||||
position: relative;
|
||||
border: none; }
|
||||
|
||||
.cbi-section-node-tabbed {
|
||||
border-top-left-radius: 0; }
|
||||
|
||||
.cbi-section-node .cbi-value-last {
|
||||
border-bottom: none; }
|
||||
|
||||
.cbi-section-node table div {
|
||||
padding-bottom: 0;
|
||||
border-bottom: none; }
|
||||
|
||||
.cbi-section-node div.cbi-section-table-row {
|
||||
margin: 0.25em; }
|
||||
|
||||
table.cbi-section-table {
|
||||
width: 100%;
|
||||
font-size: 95%; }
|
||||
|
||||
table.cbi-section-table th,
|
||||
table.cbi-section-table td {
|
||||
text-align: center; }
|
||||
|
||||
tr.cbi-section-table-descr th {
|
||||
font-weight: normal;
|
||||
font-size: 90%;
|
||||
vertical-align: top; }
|
||||
|
||||
td.cbi-section-table-optionals {
|
||||
text-align: left !important;
|
||||
padding-top: 1em; }
|
||||
|
||||
.cbi-value-helpicon img {
|
||||
display: none; }
|
||||
|
||||
div.cbi-error {
|
||||
font-size: 95%;
|
||||
font-weight: bold;
|
||||
color: #ff0000;
|
||||
background-color: #ffffff; }
|
||||
|
||||
td.cbi-value-error {
|
||||
border-color: red; }
|
||||
|
||||
.cbi-value-error input,
|
||||
.cbi-value-error select {
|
||||
color: red;
|
||||
background-color: #ffcccc; }
|
||||
|
||||
.cbi-section-error {
|
||||
color: red;
|
||||
background-color: white;
|
||||
font-size: 95%;
|
||||
border: 1px dotted red;
|
||||
margin: 3px;
|
||||
padding: 3px; }
|
||||
|
||||
.cbi-value-field var {
|
||||
color: #2222FF; }
|
||||
|
||||
ul.cbi-tabmenu {
|
||||
padding: 3px 0;
|
||||
margin-left: 0 !important;
|
||||
list-style-type: none;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
top: 4px;
|
||||
line-height: 20px; }
|
||||
|
||||
ul.cbi-tabmenu li.cbi-tab,
|
||||
ul.cbi-tabmenu li.cbi-tab-disabled {
|
||||
display: inline;
|
||||
margin: 0; }
|
||||
|
||||
ul.cbi-tabmenu li.cbi-tab a,
|
||||
ul.cbi-tabmenu li.cbi-tab-disabled a {
|
||||
text-decoration: none;
|
||||
padding: 3px 7px;
|
||||
margin-right: 3px;
|
||||
border: 1px solid #BBBBBB;
|
||||
border-bottom: none;
|
||||
border-radius: 3px 3px 0 0;
|
||||
background-color: #EEEEEE;
|
||||
color: #BBBBBB; }
|
||||
|
||||
ul.cbi-tabmenu li.cbi-tab-highlighted a {
|
||||
color: #000000;
|
||||
background-color: #FFEEAA; }
|
||||
|
||||
ul.cbi-tabmenu li a:hover {
|
||||
color: #000000; }
|
||||
|
||||
ul.cbi-tabmenu li.cbi-tab a {
|
||||
padding-top: 4px;
|
||||
color: #000000;
|
||||
background-color: #FFFFFF; }
|
||||
|
||||
div.cbi-tab-descr {
|
||||
background-image: url(/luci-static/resources/cbi/help.gif);
|
||||
background-position: 0.25em 50%;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
margin: 0.25em 0.25em 2em;
|
||||
padding: 0.5em 0.5em 0.5em 2em; }
|
||||
|
||||
.left {
|
||||
text-align: left !important; }
|
||||
|
||||
.right {
|
||||
text-align: right !important; }
|
||||
|
||||
.luci {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 1em;
|
||||
height: 1.5em;
|
||||
font-size: 80%; }
|
||||
|
||||
.luci a:link,
|
||||
.luci a:visited {
|
||||
background-color: transparent;
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
font-size: 70%; }
|
||||
|
||||
.inline {
|
||||
display: inline; }
|
||||
|
||||
.error500 {
|
||||
white-space: normal;
|
||||
border: 1px dotted #ff0000;
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
padding: 0.5em; }
|
||||
|
||||
.errorbox {
|
||||
border: 1px solid #FF0000;
|
||||
background-color: #FFCCCC;
|
||||
padding: 5px;
|
||||
margin-bottom: 5px; }
|
||||
|
||||
.errorbox a {
|
||||
color: #000000 !important; }
|
||||
|
||||
.ifacebox {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #CCCCCC;
|
||||
margin: 0 10px;
|
||||
text-align: center;
|
||||
white-space: nowrap; }
|
||||
|
||||
.ifacebox .ifacebox-head {
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
padding: 2px; }
|
||||
|
||||
.ifacebox .ifacebox-body {
|
||||
padding: 2px; }
|
||||
|
||||
.ifacebadge {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #CCCCCC;
|
||||
padding: 2px;
|
||||
margin-left: 2px;
|
||||
display: inline-block; }
|
||||
|
||||
.ifacebadge-active {
|
||||
border-color: #000000;
|
||||
font-weight: bold; }
|
||||
|
||||
.zonebadge {
|
||||
padding: 2px;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
cursor: pointer; }
|
||||
|
||||
.zonebadge em,
|
||||
.zonebadge strong {
|
||||
margin: 3px;
|
||||
display: inline-block; }
|
||||
|
||||
.zonebadge input {
|
||||
width: 6em;
|
||||
height: 1.5em; }
|
||||
|
||||
.zonebadge-empty {
|
||||
border: 1px dashed #AAAAAA;
|
||||
color: #AAAAAA;
|
||||
font-style: italic;
|
||||
font-size: smaller; }
|
||||
|
||||
.uci-change-list {
|
||||
font-family: monospace; }
|
||||
|
||||
.uci-change-list ins,
|
||||
.uci-change-legend-label ins {
|
||||
text-decoration: none;
|
||||
border: 1px solid #00FF00;
|
||||
background-color: #CCFFCC;
|
||||
display: block;
|
||||
padding: 2px; }
|
||||
|
||||
.uci-change-list del,
|
||||
.uci-change-legend-label del {
|
||||
text-decoration: none;
|
||||
border: 1px solid #FF0000;
|
||||
background-color: #FFCCCC;
|
||||
display: block;
|
||||
font-style: normal;
|
||||
padding: 2px; }
|
||||
|
||||
.uci-change-list var,
|
||||
.uci-change-legend-label var {
|
||||
text-decoration: none;
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #EEEEEE;
|
||||
display: block;
|
||||
font-style: normal;
|
||||
padding: 2px; }
|
||||
|
||||
.uci-change-list var ins,
|
||||
.uci-change-list var del {
|
||||
/*display: inline;*/
|
||||
border: none;
|
||||
white-space: pre;
|
||||
font-style: normal;
|
||||
padding: 0px; }
|
||||
|
||||
.uci-change-legend {
|
||||
padding: 5px; }
|
||||
|
||||
.uci-change-legend-label {
|
||||
width: 150px;
|
||||
float: left;
|
||||
font-size: 80%; }
|
||||
|
||||
.uci-change-legend-label > ins,
|
||||
.uci-change-legend-label > del,
|
||||
.uci-change-legend-label > var {
|
||||
float: left;
|
||||
margin-right: 4px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: block; }
|
||||
|
||||
.uci-change-legend-label var ins,
|
||||
.uci-change-legend-label var del {
|
||||
line-height: 6px;
|
||||
border: none; }
|
||||
|
||||
.cbi-input-password + img {
|
||||
display: none; }
|
||||
|
||||
.the-key {
|
||||
text-align: left;
|
||||
font-size: 1.4em;
|
||||
background: #ffe9b3;
|
||||
border: 3pt dashed #dc0067;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.5em; }
|
1014
package/gluon-luci-theme/sass/cascade.scss
Normal file
1014
package/gluon-luci-theme/sass/cascade.scss
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user