🌈 Sync 2024-01-10 01:38
19
luci-app-argon-config/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-argon-config
|
||||
PKG_VERSION:=0.9
|
||||
PKG_RELEASE:=20220424
|
||||
|
||||
PKG_MAINTAINER:=jerrykuku <jerrykuku@qq.com>
|
||||
|
||||
LUCI_TITLE:=LuCI page for Argon Config
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+luci-compat +luci-lib-ipkg +luci-theme-argon
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/config/argon
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
4
luci-app-argon-config/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
# luci-app-argon-config
|
||||
Argon Theme Config Plugin
|
||||
|
||||
You can set the blur and transparency of the login page of argon theme, and manage the background pictures and videos.
|
10
luci-app-argon-config/luasrc/controller/argon-config.lua
Normal file
@ -0,0 +1,10 @@
|
||||
module("luci.controller.argon-config", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access('/www/luci-static/argon/css/cascade.css') then
|
||||
return
|
||||
end
|
||||
|
||||
local page = entry({"admin", "system", "argon-config"}, form("argon-config"), _("Argon Config"), 90)
|
||||
page.acl_depends = { "luci-app-argon-config" }
|
||||
end
|
217
luci-app-argon-config/luasrc/model/cbi/argon-config.lua
Normal file
@ -0,0 +1,217 @@
|
||||
local nxfs = require 'nixio.fs'
|
||||
local wa = require 'luci.tools.webadmin'
|
||||
local opkg = require 'luci.model.ipkg'
|
||||
local sys = require 'luci.sys'
|
||||
local http = require 'luci.http'
|
||||
local nutil = require 'nixio.util'
|
||||
local name = 'argon'
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
|
||||
local fstat = nxfs.statvfs(opkg.overlay_root())
|
||||
local space_total = fstat and fstat.blocks or 0
|
||||
local space_free = fstat and fstat.bfree or 0
|
||||
local space_used = space_total - space_free
|
||||
|
||||
local free_byte = space_free * fstat.frsize
|
||||
|
||||
local primary, dark_primary, blur_radius, blur_radius_dark, blur_opacity, mode
|
||||
if nxfs.access('/etc/config/argon') then
|
||||
primary = uci:get_first('argon', 'global', 'primary')
|
||||
dark_primary = uci:get_first('argon', 'global', 'dark_primary')
|
||||
blur_radius = uci:get_first('argon', 'global', 'blur')
|
||||
blur_radius_dark = uci:get_first('argon', 'global', 'blur_dark')
|
||||
blur_opacity = uci:get_first('argon', 'global', 'transparency')
|
||||
blur_opacity_dark = uci:get_first('argon', 'global', 'transparency_dark')
|
||||
mode = uci:get_first('argon', 'global', 'mode')
|
||||
bing_background = uci:get_first('argon', 'global', 'bing_background')
|
||||
end
|
||||
|
||||
function glob(...)
|
||||
local iter, code, msg = nxfs.glob(...)
|
||||
if iter then
|
||||
return nutil.consume(iter)
|
||||
else
|
||||
return nil, code, msg
|
||||
end
|
||||
end
|
||||
|
||||
local transparency_sets = {
|
||||
0,
|
||||
0.1,
|
||||
0.2,
|
||||
0.3,
|
||||
0.4,
|
||||
0.5,
|
||||
0.6,
|
||||
0.7,
|
||||
0.8,
|
||||
0.9,
|
||||
1
|
||||
}
|
||||
|
||||
-- [[ 模糊设置 ]]--
|
||||
br = SimpleForm('config', translate('Argon Config'), translate('Here you can set the blur and transparency of the login page of argon theme, and manage the background pictures and videos.[Chrome is recommended]'))
|
||||
br.reset = false
|
||||
br.submit = false
|
||||
s = br:section(SimpleSection)
|
||||
|
||||
o = s:option(ListValue, 'bing_background', translate('Wallpaper Source'))
|
||||
o:value('0', translate('Built-in'))
|
||||
o:value('1', translate('Bing Wallpapers'))
|
||||
o.default = bing_background
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, 'mode', translate('Theme mode'))
|
||||
o:value('normal', translate('Follow System'))
|
||||
o:value('light', translate('Force Light'))
|
||||
o:value('dark', translate('Force Dark'))
|
||||
o.default = mode
|
||||
o.rmempty = false
|
||||
o.description = translate('You can choose Theme color mode here')
|
||||
|
||||
o = s:option(Value, 'primary', translate('[Light mode] Primary Color'), translate('A HEX Color ; ( Default: #5e72e4 )'))
|
||||
o.default = primary
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
|
||||
|
||||
o = s:option(ListValue, 'transparency', translate('[Light mode] Transparency'), translate('0 transparent - 1 opaque ; ( Suggest: transparent: 0 or translucent preset: 0.5 )'))
|
||||
for _, v in ipairs(transparency_sets) do
|
||||
o:value(v)
|
||||
end
|
||||
o.default = blur_opacity
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, 'blur', translate('[Light mode] Frosted Glass Radius'), translate('Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )'))
|
||||
o.default = blur_radius
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, 'dark_primary', translate('[Dark mode] Primary Color'), translate('A HEX Color ; ( Default: #483d8b )'))
|
||||
o.default = dark_primary
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, 'transparency_dark', translate('[Dark mode] Transparency'), translate('0 transparent - 1 opaque ; ( Suggest: Black translucent preset: 0.5 )'))
|
||||
for _, v in ipairs(transparency_sets) do
|
||||
o:value(v)
|
||||
end
|
||||
o.default = blur_opacity_dark
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, 'blur_dark', translate('[Dark mode] Frosted Glass Radius'), translate('Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )'))
|
||||
o.default = blur_radius_dark
|
||||
o.datatype = ufloat
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Button, 'save', translate('Save Changes'))
|
||||
o.inputstyle = 'reload'
|
||||
|
||||
function br.handle(self, state, data)
|
||||
if (state == FORM_VALID and data.blur ~= nil and data.blur_dark ~= nil and data.transparency ~= nil and data.transparency_dark ~= nil and data.mode ~= nil) then
|
||||
nxfs.writefile('/tmp/aaa', data)
|
||||
for key, value in pairs(data) do
|
||||
uci:set('argon','@global[0]',key,value)
|
||||
end
|
||||
uci:commit('argon')
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
ful = SimpleForm('upload', translate('Upload (Free: ') .. wa.byte_format(free_byte) .. ')', translate("You can upload files such as jpg,png,gif,webp,mp4,webm files, To change the login page background."))
|
||||
ful.reset = false
|
||||
ful.submit = false
|
||||
|
||||
sul = ful:section(SimpleSection, '', translate("Upload file to '/www/luci-static/argon/background/'"))
|
||||
fu = sul:option(FileUpload, '')
|
||||
fu.template = 'argon-config/other_upload'
|
||||
um = sul:option(DummyValue, '', nil)
|
||||
um.template = 'argon-config/other_dvalue'
|
||||
|
||||
local dir, fd
|
||||
dir = '/www/luci-static/argon/background/'
|
||||
nxfs.mkdir(dir)
|
||||
http.setfilehandler(
|
||||
function(meta, chunk, eof)
|
||||
if not fd then
|
||||
if not meta then
|
||||
return
|
||||
end
|
||||
|
||||
if meta and chunk then
|
||||
fd = nixio.open(dir .. meta.file, 'w')
|
||||
end
|
||||
|
||||
if not fd then
|
||||
um.value = translate('Create upload file error.')
|
||||
return
|
||||
end
|
||||
end
|
||||
if chunk and fd then
|
||||
fd:write(chunk)
|
||||
end
|
||||
if eof and fd then
|
||||
fd:close()
|
||||
fd = nil
|
||||
um.value = translate('File saved to') .. ' "/www/luci-static/argon/background/' .. meta.file .. '"'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
if http.formvalue('upload') then
|
||||
local f = http.formvalue('ulfile')
|
||||
if #f <= 0 then
|
||||
um.value = translate('No specify upload file.')
|
||||
end
|
||||
end
|
||||
|
||||
local function getSizeStr(size)
|
||||
local i = 0
|
||||
local byteUnits = {' kB', ' MB', ' GB', ' TB'}
|
||||
repeat
|
||||
size = size / 1024
|
||||
i = i + 1
|
||||
until (size <= 1024)
|
||||
return string.format('%.1f', size) .. byteUnits[i]
|
||||
end
|
||||
|
||||
local inits, attr = {}
|
||||
for i, f in ipairs(glob(dir .. '*')) do
|
||||
attr = nxfs.stat(f)
|
||||
if attr then
|
||||
inits[i] = {}
|
||||
inits[i].name = nxfs.basename(f)
|
||||
inits[i].mtime = os.date('%Y-%m-%d %H:%M:%S', attr.mtime)
|
||||
inits[i].modestr = attr.modestr
|
||||
inits[i].size = getSizeStr(attr.size)
|
||||
inits[i].remove = 0
|
||||
inits[i].install = false
|
||||
end
|
||||
end
|
||||
|
||||
form = SimpleForm('filelist', translate('Background file list'), nil)
|
||||
form.reset = false
|
||||
form.submit = false
|
||||
|
||||
tb = form:section(Table, inits)
|
||||
nm = tb:option(DummyValue, 'name', translate('File name'))
|
||||
mt = tb:option(DummyValue, 'mtime', translate('Modify time'))
|
||||
sz = tb:option(DummyValue, 'size', translate('Size'))
|
||||
btnrm = tb:option(Button, 'remove', translate('Remove'))
|
||||
btnrm.render = function(self, section, scope)
|
||||
self.inputstyle = 'remove'
|
||||
Button.render(self, section, scope)
|
||||
end
|
||||
|
||||
btnrm.write = function(self, section)
|
||||
local v = nxfs.unlink(dir .. nxfs.basename(inits[section].name))
|
||||
if v then
|
||||
table.remove(inits, section)
|
||||
end
|
||||
return v
|
||||
end
|
||||
|
||||
return br, ful, form
|
@ -0,0 +1,7 @@
|
||||
<%+cbi/valueheader%>
|
||||
<% if self:cfgvalue(section) ~= false then %>
|
||||
<input class="cbi-button cbi-input-<%=self.inputstyle or "button" %>" style="display: <%= display %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> />
|
||||
<% else %>
|
||||
-
|
||||
<% end %>
|
||||
<%+cbi/valuefooter%>
|
@ -0,0 +1,8 @@
|
||||
<%+cbi/valueheader%>
|
||||
<span style="color: red">
|
||||
<%
|
||||
local val = self:cfgvalue(section) or self.default or ""
|
||||
write(pcdata(val))
|
||||
%>
|
||||
</span>
|
||||
<%+cbi/valuefooter%>
|
@ -0,0 +1,5 @@
|
||||
<%+cbi/valueheader%>
|
||||
<label class="cbi-value" style="display:inline-block; width: 130px" for="ulfile"><%:Choose local file:%></label>
|
||||
<input class="cbi-input-file" style="width: 400px" type="file" id="ulfile" name="ulfile" accept="image/png, image/jpeg, image/gif, image/webp, video/mp4, video/webm"/>
|
||||
<input type="submit" class="btn cbi-button cbi-input-apply" name="upload" value="<%:Upload%>" />
|
||||
<%+cbi/valuefooter%>
|
179
luci-app-argon-config/po/es/argon-config.po
Normal file
@ -0,0 +1,179 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2021-03-15 21:25-0300\n"
|
||||
"PO-Revision-Date: 2022-04-23 15:21-0300\n"
|
||||
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "0 transparent - 1 opaque ; ( Suggest: Black translucent preset: 0.5 )"
|
||||
msgstr ""
|
||||
"0 transparente - 1 opaco; (Sugerencia: negro translúcido preestablecido: 0.5)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid ""
|
||||
"0 transparent - 1 opaque ; ( Suggest: transparent: 0 or translucent preset: "
|
||||
"0.5 )"
|
||||
msgstr ""
|
||||
"0 transparente - 1 opaco; (Sugerencia: transparente: 0 o translúcido "
|
||||
"preestablecido: 0.5)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "A HEX Color ; ( Default: #483d8b )"
|
||||
msgstr "Un color HEX; (Predeterminado: #483d8b)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "A HEX Color ; ( Default: #5e72e4 )"
|
||||
msgstr "Un color HEX; (Predeterminado: #5e72e4)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/controller/argon-config.lua:8
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid "Argon Config"
|
||||
msgstr "Configuración de Argon"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:195
|
||||
msgid "Background file list"
|
||||
msgstr "Lista de archivos de fondo"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:60
|
||||
msgid "Bing Wallpapers"
|
||||
msgstr "Fondos de Bing"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:59
|
||||
msgid "Built-in"
|
||||
msgstr "Integrado"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:2
|
||||
msgid "Choose local file:"
|
||||
msgstr "Elija un archivo local:"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:149
|
||||
msgid "Create upload file error."
|
||||
msgstr "Crear archivo de error de carga."
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:200
|
||||
msgid "File name"
|
||||
msgstr "Nombre del archivo"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:159
|
||||
msgid "File saved to"
|
||||
msgstr "Archivo guardado en"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:65
|
||||
msgid "Follow System"
|
||||
msgstr "Seguir el sistema"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:67
|
||||
msgid "Force Dark"
|
||||
msgstr "Forzar oscuro"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:66
|
||||
msgid "Force Light"
|
||||
msgstr "Forzar claro"
|
||||
|
||||
#: applications/luci-app-argon-config/root/usr/share/rpcd/acl.d/luci-app-argon-config.json:3
|
||||
msgid "Grant UCI access for luci-app-argon-config"
|
||||
msgstr "Otorgar acceso UCI para luci-app-argon-config"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid ""
|
||||
"Here you can set the blur and transparency of the login page of argon theme, "
|
||||
"and manage the background pictures and videos.[Chrome is recommended]"
|
||||
msgstr ""
|
||||
"Aquí puede configurar el desenfoque y la transparencia de la página de "
|
||||
"inicio de sesión del tema argon y administrar las imágenes de fondo y los "
|
||||
"videos. [Se recomienda Chrome]"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid ""
|
||||
"Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )"
|
||||
msgstr ""
|
||||
"El valor más grande se verá más borroso; (Sugerencia: claro: 1 o desenfoque "
|
||||
"predeterminado: 10)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:201
|
||||
msgid "Modify time"
|
||||
msgstr "Modificar la hora"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:167
|
||||
msgid "No specify upload file."
|
||||
msgstr "No especificar archivo de carga."
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:203
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:110
|
||||
msgid "Save Changes"
|
||||
msgstr "Guardar cambios"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:202
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:64
|
||||
msgid "Theme mode"
|
||||
msgstr "Modo del tema"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:4
|
||||
msgid "Upload"
|
||||
msgstr "Cargar"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid "Upload (Free:"
|
||||
msgstr "Cargar (Libre:"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:128
|
||||
msgid "Upload file to '/www/luci-static/argon/background/'"
|
||||
msgstr "Subir archivo a '/www/luci-static/argon/background/'"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:58
|
||||
msgid "Wallpaper Source"
|
||||
msgstr "Fuente del fondo de pantalla"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:70
|
||||
msgid "You can choose Theme color mode here"
|
||||
msgstr "Puede elegir el modo de color del tema aquí"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid ""
|
||||
"You can upload files such as jpg,png,gif,webp,mp4,webm files, To change the login page "
|
||||
"background."
|
||||
msgstr ""
|
||||
"Puede cargar archivos como jpg, png, gif, webp, mp4, webm, para cambiar el fondo de la "
|
||||
"página de inicio de sesión."
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid "[Dark mode] Frosted Glass Radius"
|
||||
msgstr "[Modo oscuro] Radio de vidrio esmerilado"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "[Dark mode] Primary Color"
|
||||
msgstr "[Modo oscuro] Color primario"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "[Dark mode] Transparency"
|
||||
msgstr "[Modo oscuro] Transparencia"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
msgid "[Light mode] Frosted Glass Radius"
|
||||
msgstr "[Modo claro] Radio de vidrio esmerilado"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "[Light mode] Primary Color"
|
||||
msgstr "[Modo claro] Color primario"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid "[Light mode] Transparency"
|
||||
msgstr "[Modo claro] Transparencia"
|
||||
|
||||
#~ msgid "Luci Argon theme config"
|
||||
#~ msgstr "Configuración del tema Luci Argon"
|
155
luci-app-argon-config/po/templates/argon-config.pot
Normal file
@ -0,0 +1,155 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "0 transparent - 1 opaque ; ( Suggest: Black translucent preset: 0.5 )"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid ""
|
||||
"0 transparent - 1 opaque ; ( Suggest: transparent: 0 or translucent preset: "
|
||||
"0.5 )"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "A HEX Color ; ( Default: #483d8b )"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "A HEX Color ; ( Default: #5e72e4 )"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/controller/argon-config.lua:8
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid "Argon Config"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:195
|
||||
msgid "Background file list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:60
|
||||
msgid "Bing Wallpapers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:59
|
||||
msgid "Built-in"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:2
|
||||
msgid "Choose local file:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:149
|
||||
msgid "Create upload file error."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:200
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:159
|
||||
msgid "File saved to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:65
|
||||
msgid "Follow System"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:67
|
||||
msgid "Force Dark"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:66
|
||||
msgid "Force Light"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/root/usr/share/rpcd/acl.d/luci-app-argon-config.json:3
|
||||
msgid "Grant UCI access for luci-app-argon-config"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid ""
|
||||
"Here you can set the blur and transparency of the login page of argon theme, "
|
||||
"and manage the background pictures and videos.[Chrome is recommended]"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid ""
|
||||
"Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:201
|
||||
msgid "Modify time"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:167
|
||||
msgid "No specify upload file."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:203
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:110
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:202
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:64
|
||||
msgid "Theme mode"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:4
|
||||
msgid "Upload"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid "Upload (Free:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:128
|
||||
msgid "Upload file to '/www/luci-static/argon/background/'"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:58
|
||||
msgid "Wallpaper Source"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:70
|
||||
msgid "You can choose Theme color mode here"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid ""
|
||||
"You can upload files such as jpg,png,gif,webp,mp4,webm files, To change the login page "
|
||||
"background."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid "[Dark mode] Frosted Glass Radius"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "[Dark mode] Primary Color"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "[Dark mode] Transparency"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
msgid "[Light mode] Frosted Glass Radius"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "[Light mode] Primary Color"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid "[Light mode] Transparency"
|
||||
msgstr ""
|
129
luci-app-argon-config/po/zh-cn/argon-config.po
Normal file
@ -0,0 +1,129 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: dingpengyu <jerrykuku@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"X-Generator: Poedit 2.3.1\n"
|
||||
|
||||
msgid "Argon Config"
|
||||
msgstr "Argon 主题设置"
|
||||
|
||||
msgid "Here you can set the blur and transparency of the login page of argon theme, and manage the background pictures and videos.[Chrome is recommended]"
|
||||
msgstr "在这里你可以设置argon 主题的登录页面的模糊和透明度,并管理背景图片与视频。[建议使用 Chrome]"
|
||||
|
||||
msgid "Wallpaper Source"
|
||||
msgstr "壁纸来源"
|
||||
|
||||
msgid "Built-in"
|
||||
msgstr "内建"
|
||||
|
||||
msgid "Bing Wallpapers"
|
||||
msgstr "Bing 壁纸"
|
||||
|
||||
msgid "Theme mode"
|
||||
msgstr "主题模式"
|
||||
|
||||
msgid "Follow System"
|
||||
msgstr "跟随系统"
|
||||
|
||||
msgid "Force Light"
|
||||
msgstr "强制亮色"
|
||||
|
||||
msgid "Force Dark"
|
||||
msgstr "强制暗色"
|
||||
|
||||
msgid "You can choose Theme color mode here"
|
||||
msgstr "你可以选择喜欢的主题模式"
|
||||
|
||||
msgid "[Light mode] Primary Color"
|
||||
msgstr "[亮色模式] 主色调"
|
||||
|
||||
msgid "[Dark mode] Primary Color"
|
||||
msgstr "[暗色模式] 主色调"
|
||||
|
||||
msgid "A HEX Color ; ( Default: #5e72e4 )"
|
||||
msgstr "十六进制颜色值 ( 预设为:#5e72e4 )"
|
||||
|
||||
msgid "A HEX Color ; ( Default: #483d8b )"
|
||||
msgstr "十六进制颜色值 ( 预设为:#483d8b )"
|
||||
|
||||
msgid "[Light mode] Transparency"
|
||||
msgstr "[亮色模式] 透明度"
|
||||
|
||||
msgid "[Dark mode] Transparency"
|
||||
msgstr "[暗色模式] 透明度"
|
||||
|
||||
msgid "0 transparent - 1 opaque ; ( Suggest: transparent: 0 or translucent preset: 0.5 )"
|
||||
msgstr "0最透明 - 1不透明 ; ( 建议: 透明 0 或 半透明预设 0.5 )"
|
||||
|
||||
msgid "0 transparent - 1 opaque ; ( Suggest: Black translucent preset: 0.5 )"
|
||||
msgstr "0最透明 - 1不透明 ; ( 建议: 黑色半透明 0.5 )"
|
||||
|
||||
msgid "[Light mode] Frosted Glass Radius"
|
||||
msgstr "[亮色模式] 毛玻璃模糊半径"
|
||||
|
||||
msgid "[Dark mode] Frosted Glass Radius"
|
||||
msgstr "[暗色模式] 毛玻璃模糊半径"
|
||||
|
||||
msgid "Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )"
|
||||
msgstr "值越大越模糊; ( 建议: 清透 1 或 模糊预设 10 )"
|
||||
|
||||
msgid "You can upload files such as jpg,png,gif,webp,mp4,webm files, To change the login page background."
|
||||
msgstr "你可以上传jpg、png、gif、webp或mp4、webm文件,以创建自己喜欢的登录界面"
|
||||
|
||||
msgid "Save Changes"
|
||||
msgstr "保存更改"
|
||||
|
||||
msgid "Choose local file:"
|
||||
msgstr "选择本地文件:"
|
||||
|
||||
msgid "Couldn't open file:"
|
||||
msgstr "无法打开文件:"
|
||||
|
||||
msgid "Create upload file error."
|
||||
msgstr "创建上传文件失败。"
|
||||
|
||||
msgid "File name"
|
||||
msgstr "文件名"
|
||||
|
||||
msgid "File saved to"
|
||||
msgstr "文件保存到"
|
||||
|
||||
msgid "FileTransfer"
|
||||
msgstr "文件传输"
|
||||
|
||||
msgid "Install"
|
||||
msgstr "安装"
|
||||
|
||||
msgid "Attributes"
|
||||
msgstr "属性"
|
||||
|
||||
msgid "Modify time"
|
||||
msgstr "修改时间"
|
||||
|
||||
msgid "No specify upload file."
|
||||
msgstr "未指定上传文件。"
|
||||
|
||||
msgid "Path on Route:"
|
||||
msgstr "路由根目录:"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
msgid "Upload (Free:"
|
||||
msgstr "上传 (剩余空间:"
|
||||
|
||||
msgid "Background file list"
|
||||
msgstr "背景文件列表"
|
||||
|
||||
msgid "Upload file to '/www/luci-static/argon/background/'"
|
||||
msgstr "文件将上传到'/www/luci-static/argon/background/'"
|
165
luci-app-argon-config/po/zh-tw/argon-config.po
Normal file
@ -0,0 +1,165 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Victor Tseng <palatis@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "0 transparent - 1 opaque ; ( Suggest: Black translucent preset: 0.5 )"
|
||||
msgstr "0 全透明 - 1 不透明(建議:黑色半透明 0.5)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid ""
|
||||
"0 transparent - 1 opaque ; ( Suggest: transparent: 0 or translucent preset: 0.5 )"
|
||||
msgstr "0 全透明 - 1 不透明(建議:全透明 0,或半透明 0.5)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "A HEX Color ; ( Default: #483d8b )"
|
||||
msgstr "十六進制顏色(預設 #483d8b)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "A HEX Color ; ( Default: #5e72e4 )"
|
||||
msgstr "十六進制顏色(預設 #5e72e4)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/controller/argon-config.lua:8
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid "Argon Config"
|
||||
msgstr "Argon 設定"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:195
|
||||
msgid "Background file list"
|
||||
msgstr "背景檔案清單"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:60
|
||||
msgid "Bing Wallpapers"
|
||||
msgstr "必應桌布"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:59
|
||||
msgid "Built-in"
|
||||
msgstr "內建"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:2
|
||||
msgid "Choose local file:"
|
||||
msgstr "選擇本地檔案:"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:149
|
||||
msgid "Create upload file error."
|
||||
msgstr "建立上傳檔案錯誤。"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:200
|
||||
msgid "File name"
|
||||
msgstr "檔案名稱"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:159
|
||||
msgid "File saved to"
|
||||
msgstr "檔案已儲存至"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:65
|
||||
msgid "Follow System"
|
||||
msgstr "跟隨系統配色"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:67
|
||||
msgid "Force Dark"
|
||||
msgstr "強制深色"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:66
|
||||
msgid "Force Light"
|
||||
msgstr "強制淺色"
|
||||
|
||||
#: applications/luci-app-argon-config/root/usr/share/rpcd/acl.d/luci-app-argon-config.json:3
|
||||
msgid "Grant UCI access for luci-app-argon-config"
|
||||
msgstr "為 luci-app-argon-config 授予 UCI 權限"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:53
|
||||
msgid ""
|
||||
"Here you can set the blur and transparency of the login page of argon theme, and "
|
||||
"manage the background pictures and videos.[Chrome is recommended]"
|
||||
msgstr ""
|
||||
"您可以在此設定登入畫面的模糊度、透明度、以及管理背景圖片與影片(推薦使用 "
|
||||
"Chrome)。"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid "Larger value will more blurred ; ( Suggest: clear: 1 or blur preset: 10 )"
|
||||
msgstr "數值越大越模糊(建議:清晰 1,或模糊程度 10)"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:201
|
||||
msgid "Modify time"
|
||||
msgstr "修改時間"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:167
|
||||
msgid "No specify upload file."
|
||||
msgstr "沒有選擇要上傳的檔案。"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:203
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:110
|
||||
msgid "Save Changes"
|
||||
msgstr "保存變更"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:202
|
||||
msgid "Size"
|
||||
msgstr "容量"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:64
|
||||
msgid "Theme mode"
|
||||
msgstr "佈景主題模式"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/view/argon-config/other_upload.htm:4
|
||||
msgid "Upload"
|
||||
msgstr "上傳"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid "Upload (Free:"
|
||||
msgstr "上傳(剩餘空間:"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:128
|
||||
msgid "Upload file to '/www/luci-static/argon/background/'"
|
||||
msgstr "上傳檔案至「/www/luci-static/argon/background」"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:58
|
||||
msgid "Wallpaper Source"
|
||||
msgstr "桌布來源"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:70
|
||||
msgid "You can choose Theme color mode here"
|
||||
msgstr "您可以在此選擇佈景主題的顏色模式"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:124
|
||||
msgid ""
|
||||
"You can upload files such as jpg,png,gif,mp4,webm files, To change the login page "
|
||||
"background."
|
||||
msgstr "您可以上傳諸如 jpg、png、gif、mp4、webm 等類型的檔案來更換登入畫面的背景。"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:105
|
||||
msgid "[Dark mode] Frosted Glass Radius"
|
||||
msgstr "《深色模式》模糊效果半徑"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:92
|
||||
msgid "[Dark mode] Primary Color"
|
||||
msgstr "《深色模式》主色彩"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:97
|
||||
msgid "[Dark mode] Transparency"
|
||||
msgstr "《深色模式》透明度"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:87
|
||||
msgid "[Light mode] Frosted Glass Radius"
|
||||
msgstr "《淺色模式》模糊效果半徑"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:72
|
||||
msgid "[Light mode] Primary Color"
|
||||
msgstr "《淺色模式》主色彩"
|
||||
|
||||
#: applications/luci-app-argon-config/luasrc/model/cbi/argon-config.lua:79
|
||||
msgid "[Light mode] Transparency"
|
||||
msgstr "《淺色模式》透明度"
|
1
luci-app-argon-config/po/zh_Hans
Symbolic link
@ -0,0 +1 @@
|
||||
zh-cn
|
1
luci-app-argon-config/po/zh_Hant
Symbolic link
@ -0,0 +1 @@
|
||||
zh-tw
|
9
luci-app-argon-config/root/etc/config/argon
Normal file
@ -0,0 +1,9 @@
|
||||
config global
|
||||
option primary '#5e72e4'
|
||||
option dark_primary '#483d8b'
|
||||
option blur '10'
|
||||
option blur_dark '10'
|
||||
option transparency '0.5'
|
||||
option transparency_dark '0.5'
|
||||
option mode 'normal'
|
||||
option bing_background '0'
|
6
luci-app-argon-config/root/etc/uci-defaults/luci-argon-config
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
sed -i 's/cbi.submit\"] = true/cbi.submit\"] = \"1\"/g' /usr/lib/lua/luci/dispatcher.lua
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-argon-config": {
|
||||
"description": "Grant UCI access for luci-app-argon-config",
|
||||
"read": {
|
||||
"uci": [ "argon" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "argon" ]
|
||||
}
|
||||
}
|
||||
}
|
17
luci-theme-Light/Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
#
|
||||
# Copyright (C) 2020 Mod By-Ameng Openwrt
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=luci-theme-Light
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.6
|
||||
PKG_RELEASE:=202000308
|
||||
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
BIN
luci-theme-Light/htdocs/luci-static/Light/bg.jpg
Normal file
After Width: | Height: | Size: 45 KiB |
661
luci-theme-Light/htdocs/luci-static/Light/cascade.css
Normal file
@ -0,0 +1,661 @@
|
||||
/*
|
||||
* LuCI Bootstrap Theme
|
||||
* Author: Mod By_Ameng
|
||||
* Author URI:
|
||||
------------------------------------------------------- */
|
||||
/* Reset */ /* 页面背景 最上面的字体大小 */
|
||||
body,html{height:100%}
|
||||
body{background:#fff;color:#333;font-family:Helvetica,Arial,sans-serif;font-size:13.5px;line-height:1.8;margin:0;padding-top:47px;margin:unset} /* 状态和上面的距离和整个页面全部整体字体大小 */
|
||||
a{color:#08c;text-decoration:none;outline:0}
|
||||
a:hover{opacity:1}
|
||||
.cbi-map-descr,.cbi-section-descr,h1,h2,h3,h4,h5,h6,p{color:#906BDA;margin-top:0;margin-bottom:10px} /* 系统下面显示的配置路由器基础信息文字颜色 */
|
||||
ol,ul{margin:0;padding:0;list-style:none}
|
||||
.tr,tr{display:table-row}
|
||||
legend{color:#48D1CC;font-size:0.8pc;font-weight:600;padding:0 0 1px} /* 系统内存等字体大小及颜色 */
|
||||
.left{text-align:left!important}
|
||||
.right{text-align:right!important}
|
||||
.center{text-align:center!important}
|
||||
.top{vertical-align:top!important}
|
||||
.middle{vertical-align:middle!important}
|
||||
.bottom{vertical-align:bottom!important}
|
||||
.pull-left{float:left!important}
|
||||
.pull-right{float:right!important}
|
||||
.inline{display:inline}
|
||||
.hidden{display:none}
|
||||
|
||||
/* Style */
|
||||
.container:first-child{min-height:40px} /* 登陆主页上面蓝色横条宽度 */
|
||||
.container{max-width:75pc;margin:0 auto}
|
||||
|
||||
/* 隐藏登录用户栏 */
|
||||
#.container form[action$="/cgi-bin/luci"] .cbi-map fieldset fieldset div:first-child { display: none; }
|
||||
#.pull-left, .left { float: left; }#ff0000
|
||||
#.pull-right, .right { float: right; }
|
||||
#.inline { display: inline; }
|
||||
#.hidden { display: none; }
|
||||
|
||||
/* Header */ /* 顶栏横条 */
|
||||
header{font-size:14px;position:fixed;top:0;left:0;right:0;background:#71B7E6;box-shadow:0 2px 2px rgba(0,0,0,.1);z-index:100;border-bottom:2.5px solid #726bda}
|
||||
|
||||
/* .brand{float:left;color:#fff;font-size:24px;font-weight:400;line-height:40px;margin-right:20px;position:absolute;left:0;margin-left:20px} */
|
||||
.brand{float:left;color:#fff;font-size:24px;font-weight:450;line-height:40px;margin-right:20px; position:absolute;width:200px;left:50%;margin-left:-780px;} /* openwrt显示大小以及定死位置 */
|
||||
header:before{background:#000 linear-gradient(to left,#00FF00,#FF8C00,#FF7F00,#FFFF00,#00FF00,#00FF00,#FFFF00,#FF7F00,#FF8C00,#00FF00);content:"";height:2px;position:absolute;top:0;width:100%;min-width:5in} /* 最上面彩虹 */
|
||||
.brand:hover { opacity: 1; }
|
||||
.nav li { float: left; }
|
||||
.nav a { display: block; color:#404040; line-height: 48px; padding: 0 19px;} /* 顶栏中字体颜色 */
|
||||
|
||||
|
||||
/* .brand { display:none; } */
|
||||
.brand:hover{opacity:1}
|
||||
.nav li{float:left}
|
||||
.nav a{display:block;color:#404040;line-height:40px;padding:0 15px} /* 顶栏中字体颜色 */
|
||||
.nav a:hover {}
|
||||
|
||||
/* Dropdown */ /* 鼠标点击状态出现下面的字体 修改里面的背景和圆角还有颜色字体 */
|
||||
.dropdown{position:relative}
|
||||
.dropdown:hover{background-color:#71BCFA}/* 鼠标点击状态后面出现的背景颜色 */
|
||||
.dropdown:hover .dropdown-menu{display:block}
|
||||
.dropdown-menu{display:none;position:absolute;top:40px;background:#ffffff;border-radius:5px;padding:5px 0;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.3);}/* 鼠标点击状态下面选项的背景颜色 */
|
||||
.dropdown-menu:before{content:'';position:absolute;top:-6px;left:23px;border-bottom:6px solid #F8F8FF;border-left:7px solid transparent;border-right:7px solid transparent} /* 选择菜单出现的小三角形箭头颜色 */
|
||||
.dropdown-menu a { color: #454C59; line-height: 24px; min-width: 135px; font-size:13px; margin: 1px 0; padding: 0 20px; } /* 选择菜单横条间长度和间距和字体颜色 */
|
||||
.dropdown-menu a:hover { background: rgba(0,0,0,.1); color: #0099cc} /* 选择菜单鼠标放上后出现的字体颜色 */
|
||||
|
||||
.cbi-dropdown{display:inline-block;width:210px;height:30px;padding:4px;font-size:13px;line-height:18px;color:gray;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}
|
||||
.cbi-dropdown{border:1px solid #ccc;border-radius:3px;display:inline-flex;padding:0;cursor:pointer;height:auto;background:linear-gradient(#fff 0%,#e9e8e6 100%);position:relative;color:#404040}
|
||||
.cbi-dropdown{max-width:25pc;width:auto}
|
||||
.cbi-dropdown:focus{outline:2px solid #4b6e9b}
|
||||
.cbi-dropdown>ul{margin:0!important;padding:0;list-style:none;overflow-x:hidden;overflow-y:auto;display:flex;width:100%}
|
||||
.cbi-dropdown>ul.preview{display:none}
|
||||
.cbi-dropdown>.more,.cbi-dropdown>.open{flex-grow:0;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;text-align:center;line-height:2em;padding:0 .25em}
|
||||
.cbi-dropdown>.more,.cbi-dropdown>ul>li[placeholder]{color:#777;font-weight:700;text-shadow:1px 1px 0 #fff;display:none}
|
||||
.cbi-dropdown>ul>li{display:none;padding:.25em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;flex-grow:1;align-items:center;align-self:center;min-height:20px}
|
||||
.cbi-dropdown>ul>li .hide-open{display:block;display:initial}
|
||||
.cbi-dropdown>ul>li .hide-close{display:none}
|
||||
.cbi-dropdown>ul>li[display]:not([display="0"]){border-left:1px solid #ccc}
|
||||
.cbi-dropdown[empty]>ul{max-width:1px}
|
||||
.cbi-dropdown>ul>li>form{display:none;margin:0;padding:0;pointer-events:none}
|
||||
.cbi-dropdown>ul>li img{vertical-align:middle;margin-right:.25em}
|
||||
.cbi-dropdown>ul>li>form>input[type=checkbox]{margin:0}
|
||||
.cbi-dropdown>ul>li input[type=text]{height:20px}
|
||||
.cbi-dropdown[open]{position:relative}
|
||||
.cbi-dropdown[open]>ul.dropdown{display:block;background:#f6f6f5;border:1px solid #918e8c;box-shadow:0 0 4px #918e8c;position:absolute;z-index:1000;max-width:none;min-width:100%;width:auto}
|
||||
|
||||
.cbi-dropdown>ul>li[display],
|
||||
.cbi-dropdown[open]>ul.preview,
|
||||
.cbi-dropdown[open]>ul.dropdown>li,
|
||||
.cbi-dropdown[multiple]>ul>li>label,
|
||||
.cbi-dropdown[multiple][open]>ul.dropdown>li,
|
||||
.cbi-dropdown[multiple][more]>.more,
|
||||
.cbi-dropdown[multiple][empty]>.more {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.cbi-dropdown[empty]>ul>li,
|
||||
.cbi-dropdown[optional][open]>ul.dropdown>li[placeholder],
|
||||
.cbi-dropdown[multiple][open]>ul.dropdown>li>form {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li .hide-open {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li .hide-close {
|
||||
display: block;
|
||||
display: initial;
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li[selected] {
|
||||
background: #b0d0f0;
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li.focus {
|
||||
background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
|
||||
}
|
||||
|
||||
.cbi-dropdown[open]>ul.dropdown>li:last-child {
|
||||
margin-bottom: 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.cbi-dropdown[disabled] {
|
||||
pointer-events: none;
|
||||
opacity: .6;
|
||||
}
|
||||
|
||||
|
||||
/* Label */ /* 右上角自动刷新 */
|
||||
.label{border-radius:15px!important;display:inline-block;background:#bbb;border-bottom: 0.4px solid rgba(0,0,0,.0);border-radius:15px;color:#fff;font-size:10px;line-height:24px;text-transform:uppercase;margin-top:6px;padding:2px 9px;cursor:pointer}
|
||||
.label.success{background:#7ADD7A}
|
||||
.label.notice{background:#F48FB1}
|
||||
.label.important{background:#f00}
|
||||
.label.warning{background:#fc0}
|
||||
|
||||
/* Main */
|
||||
h2{margin-bottom:15px;padding:.2rem;width:180px;border-right:6px solid #6A5ACD;border-left:6px solid #FF1493;border-radius:40px 0;color:#2F4F4F;text-align:center;text-shadow:5px 2px 6px #708090;font-size:1.2pc;line-height:24px} /* 状态左右两边颜色和距离下面系统间距 */
|
||||
ul, ol { margin: 0; padding: 0; list-style: none; }
|
||||
h2 a { color: #333; }
|
||||
h2 a:hover { opacity: 1; }
|
||||
h2+.cbi-map-descr { margin-top: -10px; }
|
||||
.alert-message { position: relative; padding: 20px; margin-bottom: 20px; background: #fe8; border: 1px solid rgba(0, 0, 0, .1); border-width: 1px 0; border-radius:2px}
|
||||
.alert-message>h4,p{margin:0}
|
||||
.error,.errorbox{display:inline}
|
||||
.error{color:#f00}
|
||||
.errorbox{color:#3b3}
|
||||
#maincontainer { box-shadow: 0 0 1px rgba(0,0,0,.3); border-radius: 4px; width: 500px; margin: 120px auto 0; padding: 30px; }
|
||||
#syslog { background: #fafafa; color: #666; width: 100%; }
|
||||
|
||||
/* Change List */
|
||||
.uci-change-legend{padding-top:15px}
|
||||
.uci-change-legend-label{float:left;margin-right:100px}
|
||||
.uci-change-legend-label>del,.uci-change-legend-label>ins,.uci-change-legend-label>var{float:left;width:10px;height:10px;margin-top:3px;margin-right:6px}
|
||||
.uci-change-list{font-family:monospace}
|
||||
.uci-change-legend-label del,.uci-change-legend-label ins,.uci-change-legend-label var,.uci-change-list del,.uci-change-list ins,.uci-change-list var{display:block;text-decoration:none;padding:2px}
|
||||
.uci-change-legend-label ins,.uci-change-list ins{background:#cfc;border:2px solid #4f4}
|
||||
.uci-change-legend-label del,.uci-change-list del{background:#fcc;border:2px solid #f00}
|
||||
.uci-change-legend-label var,.uci-change-list var{background:#f2f2f2;border:2px solid #ccc}
|
||||
.uci-change-list var del,.uci-change-list var ins{border:0;white-space:pre;padding:0}
|
||||
.uci-change-legend-label var del,.uci-change-legend-label var ins{border:0;line-height:6px}
|
||||
|
||||
/* Tabs */ /* 系统属性下面文字颜色 */
|
||||
.cbi-tabmenu,.tabs{border-bottom:1px dashed #eee;margin-bottom:20px}
|
||||
.cbi-tabmenu li,.tabs li{display:inline-block}
|
||||
.cbi-tabmenu a,.tabs a{display:block;color:#19a4e6;line-height:34px;margin-bottom:-1px;margin-right:20px;padding:0 3px}
|
||||
.active a,.cbi-tab a{border-bottom:1px dashed #19a4e6;color:#19a4e6}
|
||||
|
||||
/* Fieldset */ /* 主页系统内存网络等字体颜色和错位问题#85d9ff */
|
||||
fieldset{border:0;margin:10px 0;padding:0}
|
||||
fieldset legend {
|
||||
margin: 5px 0;
|
||||
padding: 3px 20px;
|
||||
border: 1.8px dashed #1e7ace;
|
||||
border-radius: 20px;
|
||||
background: #fff;
|
||||
color: #1e7ace;
|
||||
font-weight: 700;
|
||||
transform:rotate(-4.2deg);
|
||||
-ms-transform:rotate(-4.2deg); /* IE 9 */
|
||||
-moz-transform:rotate(-4.2deg); /* Firefox */
|
||||
-webkit-transform:rotate(-4.2deg); /* Safari and Chrome */
|
||||
-o-transform:rotate(-4.2deg); /* Opera */
|
||||
} /* 修改系统天气内存字体角度添加阴影颜色 */
|
||||
fieldset fieldset{margin:0}
|
||||
.cbi-value{margin-bottom:10px;zoom:1;clear:both}
|
||||
.table .cbi-value-field,table .cbi-value-field{display:table-cell}
|
||||
.cbi-value-title{float:left;display:table-cell;margin-right:8px;padding-top:6px;width:180px;color:#595;text-align:right;line-height:15px;} /* app选项间隔大小和主机名时区颜色 */
|
||||
.cbi-value-field{color:#404040;display:table-cell}
|
||||
.cbi-section-table-cell{white-space:nowrap}
|
||||
.cbi-section-create{margin:-3px;display:inline-flex;align-items:center}
|
||||
.cbi-section-create>*{margin:3px;flex:1 1 auto}
|
||||
|
||||
/* Table */ /* 主机名 主机型号 里面的字体颜色 */
|
||||
/* .cbi-section table tbody tr:nth-child(odd) { background-color: #fdfdfd; } */
|
||||
.table,table{width:100%;display:table;margin:0 0 10px!important;border-radius:5px;border-collapse:collapse;position:relative}
|
||||
/* table tr:first-child, .table .tr:first-child { border-top: 1px solid #b0e6b9; } */
|
||||
/* table tr, .table .tr { border-bottom: 1px solid #b0e6b9; } */
|
||||
table tr:first-child { border-top: 1px dashed #D3D3D3; }
|
||||
.table .td,.table .th,table td,table th{color:#404040;padding:5px 3px!important} /* 主机名固件版本右侧字体颜色 */
|
||||
.table .tr+.tr .td,table tr+tr td{border-top:1px solid #fff} /* 间隔横条颜色 */
|
||||
.table .th,table th{text-align:left;font-weight:700}
|
||||
.table .td:first-child,table td:first-child{color:#333} /* 主机名固件版本等字体颜色 */
|
||||
.table[width="33%"],.td[width="33%"],.th[width="33%"]{width:33%}
|
||||
.table[width="100%"],.td[width="100%"],.th[width="100%"]{width:100%}
|
||||
.table .td,.table .th{display:table-cell;vertical-align:middle}
|
||||
.table .tr.placeholder{height:calc(3em + 20px)}
|
||||
.table .tr.placeholder>.td{position:absolute;left:0;right:0;bottom:0;text-align:center;line-height:3em}
|
||||
.td.cbi-section-actions>*{display:flex}
|
||||
.td.cbi-section-actions>*>*,.td.cbi-section-actions>*>form>*{flex:1 1 4em;margin:0 1px}
|
||||
.cbi-input-up,.td.cbi-section-actions>*>.cbi-button-up{background:unset}
|
||||
.cbi-input-down,.td.cbi-section-actions>*>.cbi-button-down{background:unset}
|
||||
|
||||
#cbi-network .tr,#cbi-network tr,#cbi-wireless .tr,#cbi-wireless tr,.tr .tr:first-child,tr tr:first-child{border-top:0}
|
||||
#cbi-network .tr,#cbi-network tr,#cbi-wireless .tr,#cbi-wireless tr,.tr .tr,tr tr{border-bottom:0}
|
||||
#conns,#cpu_free,#membuff,#memcache,#memfree,#memtotal,#swapfree,#swaptotal{line-height:18px}
|
||||
#conns>div,#cpu_free>div,#membuff>div,#memcache>div,#memfree>div,#memtotal>div,#swapfree>div,#swaptotal>div{border:1.4px dashed #aaa!important;border-radius:3px;width:220px!important}
|
||||
#conns>div>div,#cpu_free>div>div,#membuff>div>div,#memcache>div>div,#memfree>div>div,#memtotal>div>div,#swapfree>div>div,#swaptotal>div>div{background:#85d9ff!important;height:19px!important;border-radius:2px}
|
||||
|
||||
|
||||
/* Form */ /* 各个选项窗口圆角参数 solid实线 dashed虚线 */
|
||||
input,select,textarea{display:inline-block;box-sizing:border-box;padding:6px;width:190px;border:1px dashed #5F8CFF;border-radius:15px;color:#666;font:inherit;line-height:16px;} /* 选项窗口颜色 */
|
||||
.table.cbi-section-table input,.table.cbi-section-table select,.table.cbi-section-table textarea,table.cbi-section-table input,table.cbi-section-table select,table.cbi-section-table textarea{width:auto}
|
||||
#cbi-firewall-redirect select,#cbi-firewall-zone select,#cbi-network-switch_vlan select{width:auto}
|
||||
input:active, input:focus { outline: 0; border-color: #08c; }
|
||||
input[type=checkbox]:focus,input[type=file]:focus,select:focus,textarea:focus{outline:0}
|
||||
button,input[type=button],input[type=reset],input[type=submit]{width:auto!important}
|
||||
input[type=checkbox],input[type=radio]{width:auto;margin:0;vertical-align:middle;cursor:pointer}
|
||||
input[type=file]{padding:0;border:0}
|
||||
.cbi-input-invalid,.cbi-value-error input{color:#f00;border-color:#f00!important}
|
||||
.cbi-image-button{margin:10px 8px;vertical-align:middle}
|
||||
.uneditable-input{background:#fafafa;border-color:#f2f2f2;color:#ccc;cursor:not-allowed}
|
||||
.uneditable-input:active,.uneditable-input:focus{border-color:#f2f2f2}
|
||||
.cbi-value-description{background-image:url(/luci-static/resources/cbi/help.gif);background-position:0 .3em;background-repeat:no-repeat;padding:0 1.2rem}
|
||||
.cbi-value-description img{display:none;vertical-align:sub}
|
||||
.cbi-page-actions{text-align:light;padding:10px 0} /* 保存按钮设置为左侧 */
|
||||
.cbi-page-actions.right{float:inherit}
|
||||
|
||||
|
||||
/* Button */ /* 各个按钮圆角颜色及添加阴影 */
|
||||
.cbi-button { border-radius: 15px !important; display: inline-block; background: #fff; border: 2px solid #7ADD7A; border-radius: 2px; box-shadow: 0 4px 4px rgba(0, 0, 0, .0); color: #333; line-height: 16px; padding: 6px 12px; cursor: pointer; }
|
||||
.cbi-button:active, .cbi-button:focus { border-color: #bbb; } /* 扫描按钮 */
|
||||
|
||||
.cbi-button-up, .cbi-input-up {
|
||||
background-position: center;
|
||||
background-image: url('../resources/cbi/up.gif'), linear-gradient(#3BB8ED, #3BB8ED 50%, #3BB8ED);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.cbi-button-down, .cbi-input-down {
|
||||
background-position: center;
|
||||
background-image: url('../resources/cbi/down.gif'), linear-gradient(#3BB8ED, #3BB8ED 50%, #3BB8ED);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.cbi-button-add, .cbi-input-add { background: #63AFF2; border-color: #63AFF2;border: dashed #778899 1.5px; color: #fff; } /* 添加按钮 */
|
||||
.cbi-button-add:active, .cbi-button-add:focus, .cbi-input-add:active, .cbi-input-add:focus { border-color: #63AFF2; opacity: .8; }
|
||||
|
||||
.cbi-button-remove, .cbi-input-remove, .cbi-section-remove input { background: #B873B9; border-color: #B873B9;border: dashed #778899 1.5px; color: #fff; } /* 删除按钮 */
|
||||
.cbi-button-remove:active, .cbi-button-remove:focus, .cbi-input-remove:active, .cbi-input-remove:focus, .cbi-section-remove input:active, .cbi-section-remove input:focus { border-color: #B873B9; opacity: .8; }
|
||||
|
||||
.cbi-button-reload, .cbi-input-reload { background: rgb(255,157,89); border-color: rgb(255,157,89); border: dashed #778899 1.5px;color: #fff; } /* 重启按钮 */
|
||||
.cbi-button-reload:active, .cbi-button-reload:focus, .cbi-input-reload:active, .cbi-input-reload:focus { border-color: rgb(255,157,89); opacity: .8; }
|
||||
|
||||
.cbi-button-reset, .cbi-input-reset { background: #FF6060; border-color: #FF6060;border: dashed #778899 1.5px; color: #fff; } /* 复位按钮 */
|
||||
.cbi-button-reset:active, .cbi-button-reset:focus, .cbi-input-reset:active, .cbi-input-reset:focus { border-color: #FF6060; opacity: .8; }
|
||||
|
||||
.cbi-button-edit, .cbi-input-edit { background: #6B72D8; border-color: #6B72D8;border: dashed #696969 1.5px; color: #fff; } /* 编辑修改按钮 */
|
||||
.cbi-button-edit:active, .cbi-button-edit:focus, .cbi-input-edit:active, .cbi-input-edit:focus { border-color: #6B72D8; opacity: .8; }
|
||||
|
||||
.cbi-button-apply, .cbi-input-apply { background: rgb(129,192,128); border-color: rgb(129,192,128); border: dashed #778899 1.5px;color: #fff; } /* 保存应用按钮 */
|
||||
.cbi-button-apply:active, .cbi-button-apply:focus, .cbi-input-apply:active, .cbi-input-apply:focus { border-color: rgb(129,192,128); opacity: .8; }
|
||||
|
||||
.cbi-button-save, .cbi-input-save { background: rgb(95,140,255); border-color: rgb(95,140,255);border: dashed #778899 1.5px;color: #fff; } /* 保存按钮 */
|
||||
.cbi-button-save:active, .cbi-button-save:focus, .cbi-input-save:active, .cbi-input-save:focus { border-color: rgb(95,140,255); opacity: .8; }
|
||||
|
||||
|
||||
/* Input Error */
|
||||
.cbi-section-error{background:#fee;border:1px solid #f00;padding:10px}
|
||||
.cbi-section-error ul{padding-left:20px}
|
||||
.cbi-section-error ul li{color:#f00;list-style:disc}
|
||||
|
||||
/* Interface */
|
||||
.ifacebox{text-align:center;margin-right:60px}
|
||||
.ifacebox .ifacebox-head{border-bottom:1px solid #ccc;padding:2px;background:#eee}
|
||||
.ifacebox .ifacebox-head.active{background:#b9b6eb}
|
||||
.ifacebox .ifacebox-body{border:1px dashed #7B68EE;border-top:0;border-radius:0 0 4px 4px;padding:2px 10px}
|
||||
.network-status-table .ifacebox-body{display:flex;flex-direction:column;height:100%;text-align:left}
|
||||
.network-status-table .ifacebox{margin:.5em;flex-grow:1}
|
||||
.ifacebox .ifacebox-body{padding:.25em}
|
||||
|
||||
.ifacebox {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
margin: 0 10px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
line-height: 1.2em;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.ifacebadge {
|
||||
display: inline-block;
|
||||
flex-direction: row;
|
||||
white-space: nowrap;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
cursor: default;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
.ifacebadge.large,.network-status-table .ifacebox-body .ifacebadge{display:inline-flex;flex:1;padding:.25em;min-width:220px;margin:.125em;float:left}
|
||||
.ifacebadge img{width:16px;height:16px;vertical-align:middle}
|
||||
.ifacebadge.large>*,.ifacebadge>*{margin:0 .125em}
|
||||
.ifacebadge.large>*,.ifacebadge>*{margin:0 .125em}
|
||||
.network-status-table{position:absolute;z-index:1000;left:-625pc;box-shadow:0 0 2px #ccc;border-radius:3px;background:#fff;white-space:pre;opacity:0;transition:opacity .25s ease-in;padding:2px 5px}
|
||||
.cbi-tooltip{position:absolute;z-index:1000;left:-1000px;opacity:0;transition:opacity .25s ease-out}
|
||||
|
||||
.cbi-tooltip-container {
|
||||
/* cursor: help; */
|
||||
}
|
||||
|
||||
|
||||
/* Firewall */
|
||||
.zonebadge{display:inline-block;border-radius:4px;color:#333;white-space:nowrap;padding:0 8px;cursor:pointer}
|
||||
.zonebadge em,.zonebadge strong{margin:0 5px}
|
||||
.zonebadge-empty{border:2px dashed #ddd;color:#ddd;font-style:italic}
|
||||
.zone-forwards{display:flex;flex-wrap:wrap}
|
||||
.zone-forwards .zone-dest,.zone-forwards .zone-src{display:flex;flex-direction:column}
|
||||
.zone-forwards>span{flex-basis:10%;text-align:center}
|
||||
.zone-forwards>*{flex:1 1 40%;padding:1px}
|
||||
|
||||
/* Footer */ /* 最底栏颜色 */
|
||||
footer{border-top:1.5px dashed #726bda;color:#FF6060;font-size: 12px;margin-top:10px;padding:10px 0 ;text-align:center}
|
||||
footer a{color:#726bda}
|
||||
footer a:hover{color:#B873B9}
|
||||
|
||||
/* diy */
|
||||
|
||||
#wan4_i,
|
||||
#wan6_i {
|
||||
vertical-align: top;
|
||||
width: 50px !important;
|
||||
}
|
||||
|
||||
/* login */
|
||||
body.node-main-login {
|
||||
background-image:url(bg.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
-ms-background-size: cover; /* IE 9 */
|
||||
-moz-background-size: cover; /* Firefox */
|
||||
-webkit-background-size: cover; /* Safari and Chrome */
|
||||
-o-background-size: cover; /* Opera */
|
||||
|
||||
|
||||
/* Global values */
|
||||
-ms-padding-top: unset;
|
||||
-moz-padding-top: unset;
|
||||
-webkit-padding-top: unset;
|
||||
-o-padding-top: unset;
|
||||
}
|
||||
|
||||
body.node-main-login>header {
|
||||
background: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
body.node-main-login .alert-message {
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.node-main-login>.container>form {
|
||||
width: 20rem;
|
||||
display: inline-block;
|
||||
padding: 1rem 1rem;
|
||||
border-radius: .375rem;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.node-main-login>.container>form .errorbox {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.node-main-login > .container > form > .cbi-map > h2{
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
letter-spacing: 4px;
|
||||
display: block;
|
||||
margin: -100px auto 20px auto;
|
||||
padding: 0;
|
||||
text-indent: -500px;
|
||||
overflow: hidden;
|
||||
border-radius: 60px;
|
||||
border: #118af3 2px solid;
|
||||
background-image: url(wifi.png);
|
||||
background-size: cover;
|
||||
box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4);
|
||||
}
|
||||
|
||||
.node-main-login > .container > form input[name='luci_username'], .node-main-login > .container > form input[name='luci_password'] {
|
||||
background:unset;
|
||||
color: #32CD32;
|
||||
}
|
||||
|
||||
.node-main-login>.container>form>.cbi-map>.cbi-section {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.node-main-login>.container>footer {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
margin-top: 60px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.node-main-login>.container>form .cbi-page-actions {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* luci 19 */
|
||||
body.modal-overlay-active {
|
||||
overflow: hidden;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
body.modal-overlay-active #modal_overlay {
|
||||
visibility: visible;
|
||||
left: 0;
|
||||
right: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
body.modal-overlay-active #modal_overlay>.modal {
|
||||
align-items: center;
|
||||
box-shadow: 0 0 3px #444;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
max-height: unset;
|
||||
max-width: unset;
|
||||
min-height: 32px;
|
||||
min-width: 270px;
|
||||
background: #d9d6ff !important;
|
||||
border-radius: 3px;
|
||||
padding: 1em;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 15%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -15%);
|
||||
}
|
||||
|
||||
#modal_overlay {
|
||||
visibility: hidden;
|
||||
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_overlay>.modal.uci-dialog,
|
||||
#modal_overlay>.modal.cbi-modal {
|
||||
max-width: 900px;
|
||||
}
|
||||
|
||||
/*.modal.alert-message.notice {
|
||||
position: absolute;
|
||||
padding: 15px;
|
||||
margin-bottom: 10px;
|
||||
background: #d9d6ff;
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
border-width: 2px 0;
|
||||
}*/
|
||||
|
||||
.modal>* {
|
||||
flex-basis: 100%;
|
||||
line-height: normal;
|
||||
margin-bottom: .5em;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#modal_overlay .modal>* {
|
||||
flex-basis: 100%;
|
||||
line-height: normal;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
[data-tab-title] {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
[data-tab-active="true"],
|
||||
.cbi-filebrowser.open {
|
||||
height: auto;
|
||||
opacity: 1;
|
||||
overflow: visible;
|
||||
transition: opacity .25s ease-in;
|
||||
}
|
||||
|
||||
.tabs>li:not(.active),
|
||||
.cbi-tabmenu>.cbi-tab-disabled {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.cbi-dynlist {
|
||||
height: auto;
|
||||
min-height: 30px;
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.cbi-dropdown:not(.btn):not(.cbi-button),
|
||||
.cbi-dynlist {
|
||||
min-width: 210px;
|
||||
max-width: 400px;
|
||||
width: auto;
|
||||
background: white;
|
||||
border: 1px solid #118af3;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
padding: 0.3em !important;
|
||||
}
|
||||
|
||||
.cbi-dynlist>.item {
|
||||
margin-bottom: 4px;
|
||||
box-shadow: 0 0 2px #ccc;
|
||||
background: #fff;
|
||||
border: 1px solid #118af3;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
pointer-events: none;
|
||||
padding: 2px 2em 2px 4px;
|
||||
}
|
||||
|
||||
.cbi-dynlist>.item::after {
|
||||
content: "×";
|
||||
position: absolute;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
top: -1px;
|
||||
right: -1px;
|
||||
bottom: -1px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 0 3px 3px 0;
|
||||
font-weight: 700;
|
||||
color: #c44;
|
||||
pointer-events: auto;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.cbi-dynlist>.add-item,
|
||||
.td.cbi-section-actions>* {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.cbi-dynlist>.add-item>input,
|
||||
.cbi-dynlist>.add-item>button {
|
||||
flex: 1 1 auto;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cbi-dropdown.btn>.open,
|
||||
.cbi-dropdown.cbi-button>.open {
|
||||
margin-left: .5em;
|
||||
border-left: 1px solid;
|
||||
padding: 0 .5em;
|
||||
}
|
||||
|
||||
.cbi-dropdown.btn>ul:not(.dropdown),
|
||||
.cbi-dropdown.cbi-button>ul:not(.dropdown) {
|
||||
margin: 0 0 0 13px !important;
|
||||
}
|
||||
|
||||
.btn.primary,
|
||||
.cbi-button-action.important,
|
||||
.cbi-section-actions .cbi-button-edit {
|
||||
color: #fff;
|
||||
background: #726bda;
|
||||
border: 1px solid #726bda;
|
||||
}
|
||||
|
||||
.cbi-dropdown {
|
||||
display: inline-flex !important;
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
position: relative;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.cbi-progressbar {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
min-width: 170px;
|
||||
height: 20px;
|
||||
background: #f9f9f9;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
.cbi-progressbar>div {
|
||||
background: #d9d6ff;
|
||||
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;
|
||||
}
|
BIN
luci-theme-Light/htdocs/luci-static/Light/favicon.ico
Normal file
After Width: | Height: | Size: 2.5 KiB |
3
luci-theme-Light/htdocs/luci-static/Light/html5.js
Normal file
@ -0,0 +1,3 @@
|
||||
// HTML5 Shiv v3 | @jon_neal @afarkas @rem | MIT/GPL2 Licensed
|
||||
// Uncompressed source: https://github.com/aFarkas/html5shiv
|
||||
(function(a,b){function f(a){var c,d,e,f;b.documentMode>7?(c=b.createElement("font"),c.setAttribute("data-html5shiv",a.nodeName.toLowerCase())):c=b.createElement("shiv:"+a.nodeName);while(a.firstChild)c.appendChild(a.childNodes[0]);for(d=a.attributes,e=d.length,f=0;f<e;++f)d[f].specified&&c.setAttribute(d[f].nodeName,d[f].nodeValue);c.style.cssText=a.style.cssText,a.parentNode.replaceChild(c,a),c.originalElement=a}function g(a){var b=a.originalElement;while(a.childNodes.length)b.appendChild(a.childNodes[0]);a.parentNode.replaceChild(b,a)}function h(a,b){b=b||"all";var c=-1,d=[],e=a.length,f,g;while(++c<e){f=a[c],g=f.media||b;if(f.disabled||!/print|all/.test(g))continue;d.push(h(f.imports,g),f.cssText)}return d.join("")}function i(c){var d=new RegExp("(^|[\\s,{}])("+a.html5.elements.join("|")+")","gi"),e=c.split("{"),f=e.length,g=-1;while(++g<f)e[g]=e[g].split("}"),b.documentMode>7?e[g][e[g].length-1]=e[g][e[g].length-1].replace(d,'$1font[data-html5shiv="$2"]'):e[g][e[g].length-1]=e[g][e[g].length-1].replace(d,"$1shiv\\:$2"),e[g]=e[g].join("}");return e.join("{")}var c=function(a){return a.innerHTML="<x-element></x-element>",a.childNodes.length===1}(b.createElement("a")),d=function(a,b,c){return b.appendChild(a),(c=(c?c(a):a.currentStyle).display)&&b.removeChild(a)&&c==="block"}(b.createElement("nav"),b.documentElement,a.getComputedStyle),e={elements:"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "),shivDocument:function(a){a=a||b;if(a.documentShived)return;a.documentShived=!0;var f=a.createElement,g=a.createDocumentFragment,h=a.getElementsByTagName("head")[0],i=function(a){f(a)};c||(e.elements.join(" ").replace(/\w+/g,i),a.createElement=function(a){var b=f(a);return b.canHaveChildren&&e.shivDocument(b.document),b},a.createDocumentFragment=function(){return e.shivDocument(g())});if(!d&&h){var j=f("div");j.innerHTML=["x<style>","article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}","audio{display:none}","canvas,video{display:inline-block;*display:inline;*zoom:1}","[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}","mark{background:#FF0;color:#000}","</style>"].join(""),h.insertBefore(j.lastChild,h.firstChild)}return a}};e.shivDocument(b),a.html5=e;if(c||!a.attachEvent)return;a.attachEvent("onbeforeprint",function(){if(a.html5.supportsXElement||!b.namespaces)return;b.namespaces.shiv||b.namespaces.add("shiv");var c=-1,d=new RegExp("^("+a.html5.elements.join("|")+")$","i"),e=b.getElementsByTagName("*"),g=e.length,j,k=i(h(function(a,b){var c=[],d=a.length;while(d)c.unshift(a[--d]);d=b.length;while(d)c.unshift(b[--d]);c.sort(function(a,b){return a.sourceIndex-b.sourceIndex}),d=c.length;while(d)c[--d]=c[d].styleSheet;return c}(b.getElementsByTagName("style"),b.getElementsByTagName("link"))));while(++c<g)j=e[c],d.test(j.nodeName)&&f(j);b.appendChild(b._shivedStyleSheet=b.createElement("style")).styleSheet.cssText=k}),a.attachEvent("onafterprint",function(){if(a.html5.supportsXElement||!b.namespaces)return;var c=-1,d=b.getElementsByTagName("*"),e=d.length,f;while(++c<e)f=d[c],f.originalElement&&g(f);b._shivedStyleSheet&&b._shivedStyleSheet.parentNode.removeChild(b._shivedStyleSheet)})})(this,document)
|
21
luci-theme-Light/htdocs/luci-static/Light/mobile.css
Normal file
@ -0,0 +1,21 @@
|
||||
header h3 a, header .brand {
|
||||
display:none !important;
|
||||
}
|
||||
|
||||
@media screen and (max-device-width: 600px) {
|
||||
#maincontent.container {
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-device-width: 360px) {
|
||||
#maincontent.container {
|
||||
margin-top: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-device-width: 200px) {
|
||||
#maincontent.container {
|
||||
margin-top: 230px;
|
||||
}
|
||||
}
|
BIN
luci-theme-Light/htdocs/luci-static/Light/wifi.png
Normal file
After Width: | Height: | Size: 17 KiB |
55
luci-theme-Light/luasrc/view/themes/Light/footer.htm
Normal file
@ -0,0 +1,55 @@
|
||||
<%#
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
Copyright 2018-2019 By Ameng
|
||||
Licensed to the public under the Apache License 2.0.
|
||||
-%>
|
||||
|
||||
<%
|
||||
local ver = require "luci.version"
|
||||
local disp = require "luci.dispatcher"
|
||||
local request = disp.context.path
|
||||
local category = request[1]
|
||||
local tree = disp.node()
|
||||
local categories = disp.node_childs(tree)
|
||||
%>
|
||||
<footer>
|
||||
<a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> / <%= ver.distversion %>
|
||||
<% if #categories > 1 then %>
|
||||
<ul class="breadcrumb pull-right" id="modemenu">
|
||||
<% for i, r in ipairs(categories) do %>
|
||||
<li<% if request[1] == r then %> class="active"<%end%>><a href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a> <span class="divider">|</span></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
window.onload = function(){
|
||||
var content = document.getElementsByName("content");
|
||||
var luci_username = document.getElementsByName("luci_username");
|
||||
var luci_password = document.getElementsByName("luci_password");
|
||||
if (content.length == 1 && luci_username.length == 1 && luci_password.length == 1) {
|
||||
//需要登录
|
||||
document.body.classList.add('node-main-login');
|
||||
luci_username[0].parentElement.parentElement.classList.add('luci_username_div');
|
||||
luci_username[0].parentElement.parentElement.children[0].style.display = "none";
|
||||
luci_password[0].parentElement.parentElement.classList.add('luci_password_div');
|
||||
luci_password[0].parentElement.parentElement.children[0].style.display = "none";
|
||||
|
||||
var errorbox = document.getElementsByClassName("errorbox");
|
||||
if (errorbox.length == 1) {
|
||||
var tips = document.getElementsByClassName("cbi-map-descr");
|
||||
if (tips.length == 1) {
|
||||
tips[0].innerHTML = errorbox[0].innerHTML;
|
||||
tips[0].classList.add('errorbox');
|
||||
errorbox[0].style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</html>
|
204
luci-theme-Light/luasrc/view/themes/Light/header.htm
Normal file
@ -0,0 +1,204 @@
|
||||
<%#
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
Licensed to the public under the Apache License 2.0.
|
||||
-%>
|
||||
|
||||
<%
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
local http = require "luci.http"
|
||||
local disp = require "luci.dispatcher"
|
||||
|
||||
local boardinfo = util.ubus("system", "board")
|
||||
|
||||
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
|
||||
|
||||
-- send as HTML5
|
||||
http.prepare_content("text/html")
|
||||
|
||||
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
|
||||
|
||||
if level > 2 then
|
||||
%>
|
||||
<ul class="tabs">
|
||||
<%
|
||||
end
|
||||
|
||||
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
|
||||
if level > 2 then
|
||||
%>
|
||||
<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
|
||||
end
|
||||
|
||||
if level > 2 then
|
||||
%>
|
||||
</ul>
|
||||
<% end
|
||||
|
||||
if selected_node then
|
||||
subtree(prefix .. selected_name .. "/", selected_node, level + 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
-%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%=luci.i18n.context.lang%>">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
|
||||
<!--[if lt IE 9]><script src="<%=media%>/html5.js"></script><![endif]-->
|
||||
<meta name="viewport" content="initial-scale=1.0">
|
||||
<link rel="stylesheet" href="<%=media%>/cascade.css">
|
||||
<link rel="stylesheet" media="only screen and (max-device-width: 854px)" href="<%=media%>/mobile.css" type="text/css" />
|
||||
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
|
||||
<% if node and node.css then %><link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
|
||||
<% end -%>
|
||||
<% if css then %><style title="text/css">
|
||||
<%-= css %>
|
||||
</style>
|
||||
<% end -%>
|
||||
<script src="<%=resource%>/xhr.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="lang_<%=luci.i18n.context.lang%> <%- if node then %><%= striptags( node.title ) %><%- end %>">
|
||||
<header>
|
||||
<div class="fill">
|
||||
<div class="container">
|
||||
<a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
|
||||
<ul class="nav">
|
||||
<%-
|
||||
local function submenu(prefix, node)
|
||||
local childs = disp.node_childs(node)
|
||||
if #childs > 0 then
|
||||
%>
|
||||
<ul class="dropdown-menu">
|
||||
<%-
|
||||
for i, r in ipairs(childs) do
|
||||
local nnode = node.nodes[r]
|
||||
local href = controller .. prefix .. r ..
|
||||
(nnode.query and http.build_querystring(nnode.query) or "")
|
||||
%>
|
||||
<li><a href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(nnode.title)))%></a></li>
|
||||
<%-
|
||||
end
|
||||
%>
|
||||
</ul>
|
||||
<%-
|
||||
end
|
||||
end
|
||||
|
||||
childs = disp.node_childs(cattree)
|
||||
|
||||
if #childs > 0 then
|
||||
for i, r in ipairs(childs) do
|
||||
local nnode = cattree.nodes[r]
|
||||
local href = controller .. "/" .. category .. "/" .. r ..
|
||||
(nnode.query and http.build_querystring(k.query) or "")
|
||||
local grandchildren = disp.node_childs(nnode)
|
||||
|
||||
if #grandchildren > 0 then
|
||||
%>
|
||||
<li class="dropdown">
|
||||
<a class="menu" href="#"><%=pcdata(striptags(translate(nnode.title)))%></a>
|
||||
<%- submenu("/" .. category .. "/" .. r .. "/", nnode) %>
|
||||
</li>
|
||||
<% else %>
|
||||
<li>
|
||||
<a href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(nnode.title)))%></a>
|
||||
</li>
|
||||
<%
|
||||
end
|
||||
end
|
||||
end
|
||||
%>
|
||||
</ul>
|
||||
|
||||
<%
|
||||
-- calculate the number of unsaved changes
|
||||
if tree.nodes[category] and tree.nodes[category].ucidata then
|
||||
local ucichanges = 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
|
||||
ucichanges = ucichanges + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
%>
|
||||
<div class="pull-right">
|
||||
<% if ucichanges > 0 then %>
|
||||
<a class="label notice" href="<%=controller%>/<%=category%>/uci/changes"><%:Unsaved Changes%>: <%=ucichanges%></a>
|
||||
<% end %>
|
||||
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
|
||||
<span class="label success" id="xhr_poll_status_on"><%:Auto Refresh%> <%:on%></span>
|
||||
<span class="label" id="xhr_poll_status_off" style="display:none"><%:Auto Refresh%> <%:off%></span>
|
||||
</span>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
|
||||
<div class="container">
|
||||
<div class="alert-message warning">
|
||||
<h4><%:No password set!%></h4>
|
||||
<%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%><br>
|
||||
<a href="<%=pcdata(luci.dispatcher.build_url("admin/system/admin"))%>"><%:Go to password configuration...%></a>
|
||||
</div>
|
||||
</div>
|
||||
<%- end -%>
|
||||
|
||||
<div id="maincontent" class="container">
|
||||
<% if category then subtree("/" .. category .. "/", cattree) end %>
|
7
luci-theme-Light/root/etc/uci-defaults/luci-theme-Light
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
uci batch <<-EOF
|
||||
set luci.themes.Light=/luci-static/Light
|
||||
set luci.main.mediaurlbase=/luci-static/Light
|
||||
commit luci
|
||||
EOF
|
||||
exit 0
|
27
luci-theme-argon/Makefile
Normal file
@ -0,0 +1,27 @@
|
||||
#
|
||||
# Copyright (C) 2008-2019 Jerrykuku
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=Argon Theme
|
||||
LUCI_DEPENDS:=+curl +jsonfilter
|
||||
PKG_VERSION:=1.8.3
|
||||
PKG_RELEASE:=20230710
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
|
||||
define Package/luci-theme-argon/postinst
|
||||
#!/bin/sh
|
||||
sed -i ":a;$!N;s/tmpl.render.*sysauth_template.*return/local scope = { duser = default_user, fuser = user }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
|
||||
sed -i ":a;$!N;s/t.render.*sysauth_template.*return/local scope = { duser = h, fuser = a }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
|
||||
[ -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm /usr/lib/lua/luci/view/header_login.htm
|
||||
rm -Rf /var/luci-modulecache
|
||||
rm -Rf /var/luci-indexcache
|
||||
exit 0
|
||||
endef
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
123
luci-theme-argon/README.md
Normal file
@ -0,0 +1,123 @@
|
||||
<!-- markdownlint-configure-file {
|
||||
"MD013": {
|
||||
"code_blocks": false,
|
||||
"tables": false,
|
||||
"line_length":200
|
||||
},
|
||||
"MD033": false,
|
||||
"MD041": false
|
||||
} -->
|
||||
|
||||
[license]: /LICENSE
|
||||
[license-badge]: https://img.shields.io/github/license/jerrykuku/luci-theme-argon?style=flat-square&a=1
|
||||
[prs]: https://github.com/jerrykuku/luci-theme-argon/pulls
|
||||
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
|
||||
[issues]: https://github.com/jerrykuku/luci-theme-argon/issues/new
|
||||
[issues-badge]: https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=flat-square
|
||||
[release]: https://github.com/jerrykuku/luci-theme-argon/releases
|
||||
[release-badge]: https://img.shields.io/badge/release-v1.8.3-blue.svg?
|
||||
[download]: https://github.com/jerrykuku/luci-theme-argon/releases
|
||||
[download-badge]: https://img.shields.io/github/downloads/jerrykuku/luci-theme-argon/total?style=flat-square
|
||||
[contact]: https://t.me/jerryk6
|
||||
[contact-badge]: https://img.shields.io/badge/Contact-telegram-blue?style=flat-square
|
||||
[en-us-link]: /README.md
|
||||
[zh-cn-link]: /README_ZH.md
|
||||
[en-us-release-log]: /RELEASE.md
|
||||
[zh-cn-release-log]: /RELEASE_ZH.md
|
||||
[config-link]: https://github.com/jerrykuku/luci-app-argon-config/releases
|
||||
[lede]: https://github.com/coolsnowwolf/lede
|
||||
[official-luci-18.06]: https://github.com/openwrt/luci/tree/openwrt-18.06
|
||||
[immortalwrt]: https://github.com/immortalwrt/immortalwrt
|
||||
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon_title4.svg">
|
||||
|
||||
# A brand new OpenWrt LuCI theme
|
||||
### • This branch only matches [Lean's LEDE][lede] / [OpenWrt LuCI 18.06][official-luci-18.06] •
|
||||
|
||||
Argon is **a clean and tidy OpenWrt LuCI theme** that allows<br/>
|
||||
users to customize their login interface with images or videos.
|
||||
It also supports automatic and manual switching between light and dark modes.
|
||||
|
||||
[![license][license-badge]][license]
|
||||
[![prs][prs-badge]][prs]
|
||||
[![议题][issues-badge]][issues]
|
||||
[![release][release-badge]][release]
|
||||
[![download][download-badge]][download]
|
||||
[![contact][contact-badge]][contact]
|
||||
|
||||
**English** |
|
||||
[简体中文][zh-cn-link]
|
||||
|
||||
[Key Features](#key-features) •
|
||||
[Getting started](#getting-started) •
|
||||
[Screenshots](#screenshots) •
|
||||
[Contributors](#contributors) •
|
||||
[Credits](#credits)
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon2.gif">
|
||||
</div>
|
||||
|
||||
## Key Features
|
||||
|
||||
- Clean Layout.
|
||||
- Adapted to mobile display.
|
||||
- Customizable theme colors.
|
||||
- Support for using Bing images as login background.
|
||||
- Support for custom uploading of images or videos as login background.
|
||||
- Automatically switch between light and dark modes with the system, and can also be set to a fixed mode.
|
||||
- Settings plugin with extensions [luci-app-argon-config][config-link]
|
||||
|
||||
## Notice
|
||||
- Chrome & Edge browser is highly recommended. There are some new css3 features used in this theme, currently only Chrome & Edge has the best compatibility.
|
||||
- FireFox does not enable the backdrop-filter by default, [see here](https://developer.mozilla.org/zh-CN/docs/Web/CSS/backdrop-filter) for the opening method.
|
||||
|
||||
## Getting started
|
||||
|
||||
### Build for Lean's LEDE project
|
||||
|
||||
```bash
|
||||
cd lede
|
||||
rm -rf feeds/luci/themes/luci-theme-argon
|
||||
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/downloads/luci-theme-argon
|
||||
make menuconfig #choose LuCI->Themes->luci-theme-argon
|
||||
make -j1 V=s
|
||||
```
|
||||
|
||||
### Install for LuCI 18.06 ( Lean's LEDE )
|
||||
|
||||
```bash
|
||||
wget --no-check-certificate https://github.com/jerrykuku/luci-theme-argon/releases/download/v1.8.3/luci-theme-argon_1.8.3-20230710_all.ipk
|
||||
opkg install luci-theme-argon*.ipk
|
||||
```
|
||||
|
||||
### Install luci-app-argon-config
|
||||
|
||||
```bash
|
||||
wget --no-check-certificate https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-app-argon-config_0.9_all.ipk
|
||||
opkg install luci-app-argon-config*.ipk
|
||||
```
|
||||
|
||||
## Screenshots
|
||||
|
||||
![desktop](/Screenshots/screenshot_pc.jpg)
|
||||
![mobile](/Screenshots/screenshot_phone.jpg)
|
||||
|
||||
## Contributors
|
||||
|
||||
<a href="https://github.com/jerrykuku/luci-theme-argon/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=jerrykuku/luci-theme-argon" />
|
||||
</a>
|
||||
|
||||
Made with [contrib.rocks](https://contrib.rocks).
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [luci-app-argon-config](https://github.com/jerrykuku/luci-app-argon-config): Argon theme config plugin
|
||||
- [luci-app-vssr](https://github.com/jerrykuku/luci-app-vssr): An OpenWrt internet surfing plugin
|
||||
- [openwrt-package](https://github.com/jerrykuku/openwrt-package): My OpenWrt package
|
||||
- [CasaOS](https://github.com/IceWhaleTech/CasaOS): A simple, easy-to-use, elegant open-source Personal Cloud system (My current main project)
|
||||
|
||||
## Credits
|
||||
|
||||
[luci-theme-material](https://github.com/LuttyYang/luci-theme-material/)
|
126
luci-theme-argon/README_ZH.md
Normal file
@ -0,0 +1,126 @@
|
||||
<!-- markdownlint-configure-file {
|
||||
"MD013": {
|
||||
"code_blocks": false,
|
||||
"tables": false,
|
||||
"line_length":200
|
||||
},
|
||||
"MD033": false,
|
||||
"MD041": false
|
||||
} -->
|
||||
|
||||
[license]: /LICENSE
|
||||
[license-badge]: https://img.shields.io/github/license/jerrykuku/luci-theme-argon?style=flat-square&a=1
|
||||
[prs]: https://github.com/jerrykuku/luci-theme-argon/pulls
|
||||
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
|
||||
[issues]: https://github.com/jerrykuku/luci-theme-argon/issues/new
|
||||
[issues-badge]: https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=flat-square
|
||||
[release]: https://github.com/jerrykuku/luci-theme-argon/releases
|
||||
[release-badge]: https://img.shields.io/badge/release-v1.8.3-blue.svg?
|
||||
[download]: https://github.com/jerrykuku/luci-theme-argon/releases
|
||||
[download-badge]: https://img.shields.io/github/downloads/jerrykuku/luci-theme-argon/total?style=flat-square
|
||||
[contact]: https://t.me/jerryk6
|
||||
[contact-badge]: https://img.shields.io/badge/Contact-telegram-blue?style=flat-square
|
||||
[en-us-link]: /README.md
|
||||
[zh-cn-link]: /README_ZH.md
|
||||
[en-us-release-log]: /RELEASE.md
|
||||
[zh-cn-release-log]: /RELEASE_ZH.md
|
||||
[config-link]: https://github.com/jerrykuku/luci-app-argon-config/releases
|
||||
[lede]: https://github.com/coolsnowwolf/lede
|
||||
[official-luci-18.06]: https://github.com/openwrt/luci/tree/openwrt-18.06
|
||||
[immortalwrt]: https://github.com/immortalwrt/immortalwrt
|
||||
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon_title4.svg">
|
||||
|
||||
# 一个全新的 OpenWrt 主题
|
||||
### • 该分支只适配 [Lean's LEDE][lede] / [OpenWrt LuCI 18.06][official-luci-18.06] •
|
||||
|
||||
Argon 是**一款干净整洁的 OpenWrt LuCI 主题**,
|
||||
允许用户使用图片或视频自定义其登录界面。
|
||||
它还支持在浅色模式和深色模式之间自动或手动切换。
|
||||
|
||||
[![license][license-badge]][license]
|
||||
[![prs][prs-badge]][prs]
|
||||
[![议题][issues-badge]][issues]
|
||||
[![release][release-badge]][release]
|
||||
[![download][download-badge]][download]
|
||||
[![contact][contact-badge]][contact]
|
||||
|
||||
[English][en-us-link] |
|
||||
**简体中文**
|
||||
|
||||
[特色](#特色) •
|
||||
[快速开始](#快速开始) •
|
||||
[屏幕截图](#屏幕截图) •
|
||||
[贡献者](#贡献者) •
|
||||
[鸣谢](#鸣谢)
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon2.gif">
|
||||
</div>
|
||||
|
||||
## 特色
|
||||
|
||||
- 干净整洁的布局。
|
||||
- 适配移动端显示。
|
||||
- 可自定义主题颜色。
|
||||
- 支持使用 Bing 图片作为登录背景。
|
||||
- 支持自定义上传图片或视频作为登录背景。
|
||||
- 通过系统自动在明暗模式之间切换,也可设置为固定模式。
|
||||
- 带有扩展功能的设置插件 [luci-app-argon-config][config-link]
|
||||
|
||||
## 注意
|
||||
|
||||
- 强烈建议使用 Chrome 和 Edge 浏览器。该主题中使用了一些新的 css3 功能,目前只有 Chrome 和 Edge 浏览器有最好的兼容性。
|
||||
- FireFox 默认不启用 backdrop-filter,[见这里](https://developer.mozilla.org/zh-CN/docs/Web/CSS/backdrop-filter)的打开方法。
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 使用 Lean's LEDE 构建
|
||||
|
||||
```bash
|
||||
cd lede
|
||||
rm -rf feeds/luci/themes/luci-theme-argon
|
||||
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/downloads/luci-theme-argon
|
||||
make menuconfig #选择 LuCI->Themes->luci-theme-argon
|
||||
make -j1 V=s
|
||||
```
|
||||
|
||||
### 在 18.06 的 LuCI 上安装 ( Lean's LEDE )
|
||||
|
||||
```bash
|
||||
wget --no-check-certificate https://github.com/jerrykuku/luci-theme-argon/releases/download/v1.8.3/luci-theme-argon_1.8.3-20230710_all.ipk
|
||||
opkg install luci-theme-argon*.ipk
|
||||
```
|
||||
|
||||
### 安装 luci-app-argon-config
|
||||
|
||||
```bash
|
||||
wget --no-check-certificate https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-app-argon-config_0.9_all.ipk
|
||||
wget --no-check-certificate https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-i18n-argon-config-zh-cn_git-22.114.24542-d1474ba_all.ipk
|
||||
opkg install luci-app-argon-config*.ipk
|
||||
opkg install luci-i18n-argon-config*.ipk
|
||||
```
|
||||
|
||||
## 屏幕截图
|
||||
|
||||
![desktop](/Screenshots/screenshot_pc.jpg)
|
||||
![mobile](/Screenshots/screenshot_phone.jpg)
|
||||
|
||||
## 贡献者
|
||||
|
||||
<a href="https://github.com/jerrykuku/luci-theme-argon/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=jerrykuku/luci-theme-argon" />
|
||||
</a>
|
||||
|
||||
Made with [contrib.rocks](https://contrib.rocks).
|
||||
|
||||
## 相关项目
|
||||
|
||||
- [luci-app-argon-config](https://github.com/jerrykuku/luci-app-argon-config): Argon 主题的设置插件
|
||||
- [luci-app-vssr](https://github.com/jerrykuku/luci-app-vssr): 一个 OpenWrt 的互联网冲浪插件
|
||||
- [openwrt-package](https://github.com/jerrykuku/openwrt-package): 我的 OpenWrt Package
|
||||
- [CasaOS](https://github.com/IceWhaleTech/CasaOS): 一个简单、易用且优雅的开源个人家庭云系统(我目前主要开发的项目)
|
||||
|
||||
## 鸣谢
|
||||
|
||||
[luci-theme-material](https://github.com/LuttyYang/luci-theme-material/)
|
BIN
luci-theme-argon/Screenshots/screenshot_pc.jpg
Normal file
After Width: | Height: | Size: 658 KiB |
BIN
luci-theme-argon/Screenshots/screenshot_phone.jpg
Normal file
After Width: | Height: | Size: 456 KiB |
3361
luci-theme-argon/htdocs/luci-static/argon/css/cascade.css
Normal file
836
luci-theme-argon/htdocs/luci-static/argon/css/dark.css
Normal file
@ -0,0 +1,836 @@
|
||||
body {
|
||||
background: #1e1e1e;
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .brand {
|
||||
color: #adb5bd;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .input-group::before {
|
||||
color: #adb5bd;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .input-group .border {
|
||||
border-bottom: 1px var(--dark-primary) solid;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .input-group input {
|
||||
background-color: transparent !important;
|
||||
color: #adb5bd;
|
||||
border-bottom: #adb5bd 1px solid !important;
|
||||
border-radius: 0;
|
||||
border-top: none !important;
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .input-group input:focus {
|
||||
border-top: none !important;
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .cbi-button-apply {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.login-page .login-container .login-form .form-login .cbi-button-apply:hover,
|
||||
.login-page .login-container .login-form .form-login .cbi-button-apply:focus {
|
||||
opacity: .9;
|
||||
}
|
||||
|
||||
.login-page .login-container footer,
|
||||
.login-page .login-container footer a {
|
||||
color: #adb5bd;
|
||||
}
|
||||
|
||||
header::after {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
.main .main-left {
|
||||
background-color: #333333 !important;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.main .main-left .sidenav-header .brand {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu .active a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu:hover,
|
||||
.main .main-left .nav .slide .menu.active {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu[data-title=Status]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu[data-title=Control]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav li a {
|
||||
color: #cccccc !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav li a:hover {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.main .main-left::-webkit-scrollbar-thumb {
|
||||
background-color: #252526 !important;
|
||||
}
|
||||
|
||||
.main .main-right {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #ccc;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: #ccc;
|
||||
border-bottom: 0;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--dark_webkit-any-link);
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a, .cbi-button) {
|
||||
color: var(--dark_webkit-any-link) !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
background-color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-input-radio:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-value-field .cbi-input-apply,
|
||||
.cbi-button-apply,
|
||||
.cbi-button-edit {
|
||||
color: #fff !important;
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-section em {
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
header.bg-primary {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
.cbi-map-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-section {
|
||||
background: none;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35);
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
color: #ccc;
|
||||
background-color: #333333;
|
||||
border-bottom: 0px;
|
||||
}
|
||||
|
||||
table>tbody>tr>td,
|
||||
table>tfoot>tr>td,
|
||||
table>thead>tr>td {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
fieldset>table>tbody>tr:nth-of-type(2n) {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
table>tbody>tr>td,
|
||||
table>tfoot>tr>td,
|
||||
table>thead>tr>td {
|
||||
border-top: 1px solid #252526;
|
||||
}
|
||||
|
||||
#swaptotal>div>div,
|
||||
#swapfree>div>div,
|
||||
#memfree>div>div,
|
||||
#membuff>div>div,
|
||||
#conns>div>div,
|
||||
#memtotal>div>div {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
#swaptotal>div>div>div>small,
|
||||
#swapfree>div>div>div>small,
|
||||
#memfree>div>div>div>small,
|
||||
#membuff>div>div>div>small,
|
||||
#conns>div>div>div>small,
|
||||
#memtotal>div>div>div>small {
|
||||
color: #ccc !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last {
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] {
|
||||
border: 1px solid #999999 !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] div {
|
||||
background-color: #32325d !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
table>tbody>tr>th,
|
||||
table>tfoot>tr>th,
|
||||
table>thead>tr>th {
|
||||
background-color: #252526;
|
||||
border-top: none;
|
||||
border-bottom: black 1px solid !important;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-2 {
|
||||
background-color: #2c2c2c !important;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-1 {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.cbi-section>h3:first-child,
|
||||
.panel-title {
|
||||
color: #ccc;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
|
||||
background-color: #1e1e1f;
|
||||
}
|
||||
|
||||
.cbi-button {
|
||||
color: #ccc;
|
||||
background-color: #2c2c2c;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-2 .cbi-button-up,
|
||||
.cbi-rowstyle-2 .cbi-button-down {
|
||||
background-color: #252526 !important;
|
||||
}
|
||||
|
||||
.cbi-section-node {
|
||||
background: none;
|
||||
border-radius: 0 0 .375rem .375rem;
|
||||
padding: 0rem;
|
||||
}
|
||||
|
||||
abbr {
|
||||
color: #8898aa;
|
||||
}
|
||||
|
||||
div>table>tbody>tr:nth-of-type(2n),
|
||||
div>.table>.tbody>.tr:nth-of-type(2n) {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
/* file selector button */
|
||||
::file-selector-button {
|
||||
border: 1px solid darkseagreen !important;
|
||||
background-color: darkseagreen !important;
|
||||
}
|
||||
|
||||
/* Fix background color of table-titles */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-section-table-titles th {
|
||||
background-color: #1e1e1e;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color of table-descr */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-section-table-descr th {
|
||||
background-color: #333333;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color not change when the H tag is in the table rowstyle-1 */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-rowstyle-1 th {
|
||||
background-color: #252526;
|
||||
border-top: 1px solid #252526;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color not change when the H tag is in the table rowstyle-2 */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-rowstyle-2 th {
|
||||
background-color: #2c2c2c;
|
||||
border-top: 1px solid #252526;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
/* Change the color of the H label in the table to make it more visible */
|
||||
th h1, td h1,
|
||||
th h2, td h2,
|
||||
th h3, td h3,
|
||||
th h4, td h4,
|
||||
th h5, td h5,
|
||||
th h6, td h6 {
|
||||
background: var(--gray-dark);
|
||||
}
|
||||
|
||||
/* Improved the background color of each itemes in "UNSAVED CHANGES" (dark mode only) */
|
||||
.uci-change-list del,
|
||||
.uci-change-legend-label del {
|
||||
background-color: #fb74008c;
|
||||
}
|
||||
.uci-change-list var,
|
||||
.uci-change-legend-label var {
|
||||
background-color: #333333;
|
||||
}
|
||||
.uci-change-list ins,
|
||||
.uci-change-legend-label ins {
|
||||
background-color: #00ff0a45 !important;
|
||||
}
|
||||
|
||||
#content_syslog {
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35);
|
||||
}
|
||||
|
||||
#syslog {
|
||||
color: #ccc;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
#iwsvg,
|
||||
#iwsvg2,
|
||||
#bwsvg {
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35);
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.tabs>li:hover,
|
||||
.tabs>li[class~="active"],
|
||||
.cbi-tabmenu>li:hover,
|
||||
.cbi-tabmenu>li[class~="cbi-tab"] {
|
||||
border-bottom: .18751rem solid var(--dark-primary);
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
.tabs>li>a,
|
||||
.cbi-tabmenu>li>a {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu>li>a:hover,
|
||||
.cbi-tabmenu>li:hover>a,
|
||||
.cbi-tabmenu>.cbi-tab>a,
|
||||
.tabs>li>a:hover,
|
||||
.tabs>li:hover>a,
|
||||
.tabs>li[class~="active"]>a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu>li {
|
||||
background: #2d2d2d;
|
||||
}
|
||||
|
||||
.cbi-tabmenu {
|
||||
border-bottom: 0 solid #ddd !important;
|
||||
}
|
||||
|
||||
.cbi-tab-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-tabcontainer>.cbi-value:nth-of-type(2n),
|
||||
.cbi-tabcontainer>.cbi-value:nth-of-type(2n)>textarea {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.cbi-value-title {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
select,
|
||||
input {
|
||||
color: #ccc;
|
||||
background-color: transparent;
|
||||
border: 1px solid #3c3c3c !important;
|
||||
box-shadow: 0 3px 2px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
background-color: transparent;
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
select {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
#cbi-dropbear h2,
|
||||
#cbi-dropbear .cbi-map-descr,
|
||||
#cbi-dropbear .cbi-map-descr abbr,
|
||||
#cbi-rc h2,
|
||||
#cbi-rc .cbi-map-descr,
|
||||
#cbi-distfeedconf h2,
|
||||
#cbi-distfeedconf .cbi-map-descr,
|
||||
#cbi-customfeedconf h2,
|
||||
#cbi-customfeedconf .cbi-map-descr,
|
||||
#cbi-download h2,
|
||||
#cbi-filelist h2 {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.cbi-value-field>ul>li .ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
.cbi-section-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
/*textarea for dark mode*/
|
||||
textarea {
|
||||
border: 1px solid #3c3c3c !important;
|
||||
background-color: #1e1e1e;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-section-remove:nth-of-type(2n),
|
||||
.cbi-section-node:nth-of-type(2n) {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.node-system-packages>.main table tr td:nth-last-child(1) {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-value>pre {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.cbi-section-node .cbi-value {
|
||||
padding: 1rem 1rem .3rem 1rem;
|
||||
}
|
||||
|
||||
.ifacebox {
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #1e1e1e;
|
||||
}
|
||||
|
||||
.ifacebox-head {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.ifacebox-body {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.zonebadge strong {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.zonebadge>.ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
/* Fix firewall zone: "unspecified -or- create: " background color (dark mode only) */
|
||||
div[onclick$="._fwzone_new').checked=true"] {
|
||||
border: 1px solid #3c3c3c;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Improve the background color of "Any zone" and "Device" when ADD/EDIT Rules in Firewall > Traffic Rules (dark mode only) */
|
||||
label[for$=".src_any"],
|
||||
label[for$=".dest_empty"],
|
||||
label[for$=".dest_any"] {
|
||||
background-color: #2888db !important;
|
||||
}
|
||||
|
||||
/* Fix/add background color of wireless signal strength badge for dark mode */
|
||||
td>.ifacebadge,
|
||||
.td>.ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
/* Improved loading process gif color (dark mode only) */
|
||||
img[src="/luci-static/resources/icons/loading.gif"] {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
color: #483d8b;
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
#diag-rc-output>pre {
|
||||
color: #ccc;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.node-services-vssr .block {
|
||||
background-color: #1e1e1e !important;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35) !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .block h4 {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .status-bar {
|
||||
color: #ccc;
|
||||
background: #333333f0;
|
||||
box-shadow: #00000094 10px 10px 30px 5px;
|
||||
}
|
||||
|
||||
.node-services-vssr .cbi-section-table-row {
|
||||
color: #ccc;
|
||||
background-color: #3c3c3c !important;
|
||||
box-shadow: 0 0 5px 0 rgba(0,0,0,0.35);
|
||||
}
|
||||
|
||||
.node-services-vssr .cbi-section-table-row.fast {
|
||||
background: #483d8b !important;
|
||||
background: var(--dark-primary) !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.node-services-vssr .ssr-button {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.node-services-vssr .incon:nth-child(2) {
|
||||
border-right: #1e1e1e 1px solid;
|
||||
}
|
||||
|
||||
.main .main-right #maincontent .container p {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
#xhr_poll_status>.label.success {
|
||||
color: #ccc !important;
|
||||
background-color: darkolivegreen !important;
|
||||
}
|
||||
|
||||
/* Define the warning background-color breathe display animation (dark mode) */
|
||||
@keyframes warning-background-color-breathe-dark {
|
||||
0%{
|
||||
color: #fff;
|
||||
background-color: darkorange;
|
||||
}
|
||||
50%{
|
||||
color: #ccc;
|
||||
background-color: #333333;
|
||||
}
|
||||
100%{
|
||||
color: #fff;
|
||||
background-color: darkorange;
|
||||
}
|
||||
}
|
||||
.warning,
|
||||
.warning * {
|
||||
animation: warning-background-color-breathe-dark 1.5s ease-in-out infinite !important;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
/* Improved the aleart-message background color during device restart (dark mode only) */
|
||||
.errorbox,
|
||||
.alert-message {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.cbi-input-find,
|
||||
.cbi-input-save,
|
||||
.cbi-button-add,
|
||||
.cbi-button-save,
|
||||
.cbi-button-find,
|
||||
.cbi-input-reload,
|
||||
.cbi-button-reload {
|
||||
background-color: darkseagreen !important;
|
||||
border-color: darkseagreen !important;
|
||||
}
|
||||
|
||||
.cbi-button-reset,
|
||||
.cbi-input-remove {
|
||||
color: #fff !important;
|
||||
background-color: darkorange !important;
|
||||
border-color: darkorange !important;
|
||||
}
|
||||
|
||||
.cbi-page-actions .cbi-button-apply,
|
||||
.cbi-section-actions .cbi-button-edit,
|
||||
.cbi-button-edit.important,
|
||||
.cbi-button-apply.important,
|
||||
.cbi-button-reload.important,
|
||||
.cbi-button-action.important {
|
||||
border: 1px #483d8b solid !important;
|
||||
border: 1px var(--dark-primary) solid !important;
|
||||
}
|
||||
|
||||
fieldset[id^="cbi-apply-"] {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
#detail-bubble>div {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
padding: 5px;
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
/* Define the error text border breathe display animation (dark mode) */
|
||||
@keyframes error-border-breathe-dark {
|
||||
0%{
|
||||
border-color: darkorange;
|
||||
}
|
||||
50%{
|
||||
border-color: transparent;
|
||||
}
|
||||
100%{
|
||||
border-color: darkorange;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add border for error text box, and border breathe display animation to make it more noticeable (dark mode) */
|
||||
.cbi-section-error>ul>li {
|
||||
color: darkorange;
|
||||
border: 2px solid darkorange ;
|
||||
animation: error-border-breathe-dark 1.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.cbi-input-invalid,
|
||||
.cbi-value-error input {
|
||||
color: darkorange;
|
||||
border: 1px dashed darkorange !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .block h4 span {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
/* luci-app-passwall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
|
||||
/* luci-app-bypass */
|
||||
#cbi-bypass .status-bar {
|
||||
color: #ccc;
|
||||
background: #333333f0;
|
||||
box-shadow: #00000094 10px 10px 30px 5px;
|
||||
}
|
||||
|
||||
/* luci-app-clash */
|
||||
#cbi-clash .cbi-section .pure-u-1-4 .pure-g,
|
||||
#cbi-clash .cbi-section .siz .pure-g {
|
||||
background-color: #1e1e1e !important;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35) !important;
|
||||
}
|
||||
|
||||
/* luci-app-openclash */
|
||||
#cbi-openclash #eye-icon,
|
||||
#cbi-openclash img[title="刷新"] {
|
||||
filter: invert(100%);
|
||||
}
|
||||
#cbi-openclash #cbi-openclash-config fieldset[control-id="ControlID-46"],
|
||||
#cbi-openclash .CodeMirror-merge-copybuttons-right,
|
||||
.CodeMirror-scroll {
|
||||
background-color: #333333 !important;
|
||||
}
|
||||
#cbi-openclash .cbi-section .cbi-tabmenu li {
|
||||
border-right: 1px solid #3c3c3c !important;
|
||||
}
|
||||
#cbi-openclash .CodeMirror-merge {
|
||||
border: 1px solid transparent !important;
|
||||
}
|
||||
#cbi-openclash-config-clog .cbi-section {
|
||||
border: 1px solid #3c3c3c !important;
|
||||
}
|
||||
#cbi-openclash .CodeMirror-gutters {
|
||||
border-right: 1px solid #3c3c3c !important;
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
/* luci-app-dockerman */
|
||||
#cbi-dockerd .img-con img {
|
||||
filter: invert(0.4);
|
||||
}
|
||||
|
||||
/* luci-app-istorex (interface config[NetworkPort]) */
|
||||
#cbi-nfs-mount .app-container_status-label_bg {
|
||||
background: #333333;
|
||||
}
|
||||
#cbi-nfs-mount td svg {
|
||||
filter: invert(0.3);
|
||||
}
|
||||
#actioner .actioner-dns {
|
||||
background-color: #333333;
|
||||
}
|
||||
#actioner .actioner-dns_header,
|
||||
#actioner .actioner-container_header {
|
||||
border-bottom: 1px solid #cbcbcb !important;
|
||||
}
|
||||
#actioner .actioner-dns_footer {
|
||||
border-top: 1px solid #cbcbcb !important;
|
||||
}
|
||||
|
||||
/* luci-app-istorex (Network Guide) */
|
||||
#app #main #page .title,
|
||||
#app #main #page .desc {
|
||||
color: #cccccc;
|
||||
background-color: #333333;
|
||||
}
|
||||
#app #main #page .network-message li:not(span):not(a) {
|
||||
color: #8d8d8d;
|
||||
}
|
||||
#app #main #page code {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
/* luci-app-istorex (Quick Start) */
|
||||
#app #main #page .network-container_flow-container,
|
||||
#app #main #page .app-container_status-container,
|
||||
#app #main #page .nas-container .nas-container_card .app-container,
|
||||
#app #main #page .app-container {
|
||||
background-color: #333333;
|
||||
}
|
||||
#app #main #page .flow-data span,
|
||||
#app #main #page .app-container_status-label_block span,
|
||||
#app #main #page .app-container .item-label span:not(#app #main #page .app-container .progress-value span) {
|
||||
color: #cccccc;
|
||||
}
|
||||
#app #main #page .app-container_status-info span,
|
||||
#app #main #page .app-container_status-info span,
|
||||
#app #main #page .app-container_title span {
|
||||
color: #dddddd;
|
||||
}
|
||||
.app-container_body .app-container_status-label_bg {
|
||||
background-color: #282828 !important;
|
||||
}
|
||||
#app #main #page .item-label_value .progress {
|
||||
background-color: rgb(118, 118, 118);
|
||||
}
|
||||
#app #main #page .app-container_nas-menu button[class=""] {
|
||||
background-color: #8b8b8b;
|
||||
}
|
||||
#app #main #page .app-container_nas-menu button[class="on"] {
|
||||
background-color: #555555;
|
||||
}
|
||||
#app #main #page .app-container_title .DeviceBlock ul {
|
||||
background-color: #cccccc;
|
||||
}
|
||||
#actioner div.action,
|
||||
#actioner div.actioner-container {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
#actioner div.action .title {
|
||||
color: #cccccc;
|
||||
}
|
||||
#actioner div.action .desc {
|
||||
color: #cbcbcb;
|
||||
}
|
||||
#actioner div.action div.roots span,
|
||||
#actioner div.action div.move span:not(span.tip),
|
||||
#actioner div.action div.left span,
|
||||
#actioner div.action div.input_row span,
|
||||
#actioner div.label-item label span {
|
||||
color: #cbcbcb;
|
||||
}
|
||||
#actioner div.action span.tooltip-trigger svg path {
|
||||
fill: #cbcbcb;
|
||||
}
|
||||
#actioner div.actioner-dns_body div.label-item_value select {
|
||||
height: 43px;
|
||||
}
|
||||
#actioner div.actioner-container_footer div.close {
|
||||
color: #ffffff;
|
||||
}
|
||||
#app #main div.app-container div.app-container_title span a svg path,
|
||||
#app #main #page span.disk_infoicon svg g {
|
||||
fill: #8b8b8b;
|
||||
}
|
||||
|
||||
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
|
||||
.login-page .login-container .login-form {
|
||||
-webkit-backdrop-filter: blur(var(--blur-radius-dark));
|
||||
backdrop-filter: blur(var(--blur-radius-dark));
|
||||
background-color: rgba(0, 0, 0, var(--blur-opacity-dark));
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width:480px) {
|
||||
.node-status-iptables>.main div>.cbi-map>form {
|
||||
background-color: #1e1e1e;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35);
|
||||
}
|
||||
}
|
186
luci-theme-argon/htdocs/luci-static/argon/css/fonts.css
Normal file
11
luci-theme-argon/htdocs/luci-static/argon/css/pure-min.css
vendored
Normal file
BIN
luci-theme-argon/htdocs/luci-static/argon/favicon.ico
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.eot
Normal file
1191
luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.svg
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.ttf
Normal file
BIN
luci-theme-argon/htdocs/luci-static/argon/fonts/argon.eot
Normal file
38
luci-theme-argon/htdocs/luci-static/argon/fonts/argon.svg
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by IcoMoon</metadata>
|
||||
<defs>
|
||||
<font id="argon" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="expand_more" d="M708 572.667l60-60-256-256-256 256 60 60 196-196z" />
|
||||
<glyph unicode="" glyph-name="menu" d="M128 682.667h768v-86h-768v86zM128 384.667v84h768v-84h-768zM128 170.667v86h768v-86h-768z" />
|
||||
<glyph unicode="" glyph-name="favorite" d="M512 28.667l-62 56q-106 96-154 142t-107 114-81 123-22 113q0 98 67 166t167 68q116 0 192-90 76 90 192 90 100 0 167-68t67-166q0-78-52-162t-113-146-199-186z" />
|
||||
<glyph unicode="" glyph-name="spinner" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
|
||||
<glyph unicode="" glyph-name="delete" d="M125.458 707.971l32.017-640.746c0-72.474 59.964-131.225 133.93-131.225h442.45c73.965 0 133.936 58.75 133.936 131.225l30.8 640.746h-773.133zM936.022 753.424c0.132 27.023 0.212 28.82 0.212 30.63 0 70.468-41.716 109.142-97.69 109.142l-155.797-0.164c0 36.987-36.126 66.968-73.112 66.968h-193.946c-36.979 0-74.274-29.981-74.274-66.968l-155.958 0.164c-61.826 0-97.69-47.127-97.69-109.142 0-1.817 0.072-3.608 0.212-30.63h848.046zM646.026 539.594c0 20.428 16.556 36.986 36.979 36.986 20.428 0 36.986-16.558 36.986-36.986v-423.683c0-20.43-16.558-36.987-36.986-36.987-20.423 0-36.979 16.558-36.979 36.987v423.683zM475.011 539.594c0 20.428 16.563 36.986 36.987 36.986 20.428 0 36.986-16.558 36.986-36.986v-423.683c0-20.43-16.558-36.987-36.986-36.987-20.423 0-36.987 16.558-36.987 36.987v423.683zM304.113 539.594c0 20.428 16.558 36.986 36.987 36.986 20.422 0 36.986-16.558 36.986-36.986v-423.683c0-20.43-16.563-36.987-36.986-36.987-20.43 0-36.987 16.558-36.987 36.987v423.683z" />
|
||||
<glyph unicode="" glyph-name="edit" d="M272.359 84.325c-6.319-1.194-12.678-1.728-18.975-1.728-27.681 0-54.578 10.908-74.5 30.859-24.491 24.471-35.378 59.415-29.143 93.476 61.33 335.066 88.166 361.923 109.776 383.553l285.612 285.592-65.898 65.898h-416.008c-34.925 0-63.223-28.298-63.223-63.222v-878.107c0-34.946 28.299-63.223 63.223-63.223h634.405c34.927 0 63.225 28.276 63.225 63.223v298.383l-104.98-104.98c-21.589-21.568-48.445-48.404-383.512-109.723zM1005.077 783.632l-156.041 156.040c-25.211 25.211-66.104 25.211-91.313-0.021l-423.707-423.685c-25.212-25.232-80.633-328.009-80.633-328.009s302.777 55.423 328.009 80.633l423.685 423.707c25.232 25.212 25.232 66.104 0 91.336zM441.878 297.937l-47.643-16.134c-1.338-0.455-2.779-0.659-4.219-0.681-0.267 0-0.536 0.084-0.803 0.103-1.544 0.063-3.087 0.351-4.549 0.845-0.433 0.144-0.885 0.289-1.296 0.472-1.626 0.701-3.149 1.544-4.281 2.697l-28.462 28.463c-3.539 3.539-5.145 10.042-3.416 15.105l16.155 47.645c1.008 2.984 2.305 5.699 3.684 8.251 0.33 0.639 0.68 1.256 1.050 1.854 1.42 2.386 2.944 4.609 4.59 6.421 0.144 0.164 0.287 0.267 0.432 0.411 1.565 1.646 3.19 2.945 4.817 3.973 0.433 0.268 0.864 0.535 1.275 0.741 1.791 0.907 3.561 1.523 5.29 1.544 0.782 0 1.502-0.207 2.244-0.392 0.473-0.103 0.946-0.103 1.399-0.289 1.194-0.495 2.325-1.235 3.396-2.305l70.569-70.57c8.787-8.788-2.655-22.186-20.231-28.155zM888.078 726.727l-42.845-42.847c-8.233-8.232-21.569-8.232-29.802 0l-66.124 66.124c-8.231 8.233-8.231 21.568 0 29.801l42.849 42.847c8.231 8.232 21.567 8.232 29.8 0l66.122-66.124c8.233-8.233 8.233-21.568 0-29.801z" />
|
||||
<glyph unicode="" glyph-name="use" d="M0 426.667l384-384 640 640-170.667 170.667-469.333-469.333-213.333 213.333z" />
|
||||
<glyph unicode="" glyph-name="loading" d="M870.623 198.711c0-3.451 2.797-6.248 6.248-6.248s6.248 2.797 6.248 6.248c0 0 0 0.001 0 0.001 0 3.45-2.797 6.247-6.247 6.247 0 0-0.001 0-0.001 0v0c0 0-0.001 0-0.001 0-3.45 0-6.247-2.797-6.247-6.247 0 0 0-0.001 0-0.001v0zM732.694 56.388c0-6.863 5.563-12.427 12.427-12.427s12.427 5.563 12.427 12.427-5.563 12.427-12.427 12.427-12.427-5.563-12.427-12.427zM546.774-16.868c0-10.313 8.361-18.674 18.674-18.674s18.674 8.361 18.674 18.674-8.361 18.674-18.674 18.674-18.674-8.361-18.674-18.674zM346.643-7.050c0-13.726 11.128-24.853 24.853-24.853s24.853 11.128 24.853 24.853-11.128 24.853-24.853 24.853-24.853-11.128-24.853-24.853zM169.099 84.056c0-17.177 13.924-31.101 31.101-31.101s31.101 13.924 31.101 31.101-13.924 31.101-31.101 31.101-31.101-13.924-31.101-31.101zM46.137 238.943c0-20.627 16.722-37.349 37.349-37.349s37.349 16.722 37.349 37.349-16.722 37.349-37.349 37.349-37.349-16.722-37.349-37.349zM0 429.12c0-24.040 19.487-43.528 43.528-43.528s43.528 19.487 43.528 43.528-19.487 43.528-43.528 43.528-43.528-19.487-43.528-43.528zM37.967 618.060c0-27.49 22.285-49.775 49.775-49.775s49.775 22.285 49.775 49.775c0 27.49-22.285 49.775-49.775 49.775s-49.775-22.285-49.775-49.775zM151.866 770.407c0-30.941 25.082-56.023 56.023-56.023s56.023 25.082 56.023 56.023c0 30.941-25.082 56.023-56.023 56.023s-56.023-25.082-56.023-56.023zM319.112 857.669c0-34.354 27.848-62.202 62.202-62.202s62.202 27.848 62.202 62.202-27.848 62.202-62.202 62.202-62.202-27.848-62.202-62.202zM506.954 863.092c0-37.804 30.646-68.45 68.45-68.45s68.45 30.646 68.45 68.45c0 37.804-30.646 68.45-68.45 68.45s-68.45-30.646-68.45-68.45zM678.936 785.717c0-41.216 33.413-74.629 74.629-74.629s74.629 33.413 74.629 74.629-33.413 74.629-74.629 74.629-74.629-33.413-74.629-74.629zM801.144 640.373c0-44.667 36.209-80.876 80.876-80.876s80.876 36.209 80.876 80.876-36.209 80.876-80.876 80.876-80.876-36.209-80.876-80.876zM849.752 452.119c0-48.117 39.007-87.124 87.124-87.124s87.124 39.007 87.124 87.124c0 48.117-39.007 87.124-87.124 87.124s-87.124-39.007-87.124-87.124z" />
|
||||
<glyph unicode="" glyph-name="switch" d="M275.2 486.4v-512h121.6v947.2l-396.8-435.2zM748.8 409.6v512h-121.6v-947.2l396.8 435.2z" />
|
||||
<glyph unicode="" glyph-name="error" d="M0.001 886.857l73.143 73.143 950.855-950.855-73.142-73.143-950.857 950.855zM73.146-63.998l-73.142 73.143 950.855 950.855 73.142-73.142-950.855-950.857z" />
|
||||
<glyph unicode="" glyph-name="dashboard" d="M567.979 960h456.021v-341.333h-456.021v341.333zM567.979-64v567.979h456.021v-567.979h-456.021zM0-64v341.333h456.021v-341.333h-456.021zM0 392.021v567.979h456.021v-567.979h-456.021z" />
|
||||
<glyph unicode="" glyph-name="logout" d="M764.839 182.518v164.346h-353.976v202.272h353.976v164.346l265.482-265.482-265.482-265.482zM562.568 953.68c55.624 0 101.136-45.511 101.136-101.136v-202.272h-101.136v202.272h-455.112v-809.088h455.112v202.272h101.136v-202.272c0-55.624-45.511-101.136-101.136-101.136h-455.112c-55.624 0-101.136 45.511-101.136 101.136v809.088c0 55.624 45.511 101.136 101.136 101.136h455.112z" />
|
||||
<glyph unicode="" glyph-name="Network" d="M384 192h256v-256h-256zM384 959.999h256v-256h-256zM768 192h256v-256h-256zM0.001 192h256v-256h-256zM480.001 640h64v-160h-64zM480.001 448h64v-192h-64zM928 256h-64v160h-704v-160h-64v224h832z" />
|
||||
<glyph unicode="" glyph-name="services" d="M548.901 208.144c2.306 9.225 2.306 20.757 2.306 32.289s0 20.757-2.306 32.289l64.576 46.126c6.919 4.613 9.225 13.838 4.613 20.757l-62.27 106.090c-4.613 6.919-11.532 9.225-18.451 6.919l-71.495-34.595c-16.144 13.838-34.595 23.063-55.351 32.289l-6.919 78.414c0 6.919-6.919 13.838-13.838 13.838h-122.235c-6.919 0-13.838-6.919-13.838-13.838l-9.225-80.721c-20.757-6.919-36.901-18.451-55.351-32.289l-71.495 32.289c-6.919 2.306-16.144 0-18.451-6.919l-62.27-106.090c-4.613-6.919-2.306-16.144 4.613-20.757l64.576-46.126c-2.306-9.225-2.306-20.757-2.306-32.289s0-20.757 2.306-32.289l-64.576-46.126c-6.919-4.613-9.225-13.838-4.613-20.757l62.27-106.090c4.613-6.919 11.532-9.225 18.451-6.919l71.495 32.289c16.144-13.838 34.595-23.063 55.351-32.289l6.919-78.414c0-6.919 6.919-13.838 13.838-13.838h122.235c6.919 0 13.838 6.919 13.838 13.838l6.919 78.414c20.757 6.919 36.901 18.451 55.351 32.289l71.495-32.289c6.919-2.306 16.144 0 18.451 6.919l62.27 106.090c4.613 6.919 2.306 16.144-4.613 20.757l-62.27 50.738zM327.495 125.117c-64.576 0-115.316 50.738-115.316 115.316s50.738 115.316 115.316 115.316 115.316-50.738 115.316-115.316-50.738-115.316-115.316-115.316zM924.829 648.649c2.306 11.532 2.306 20.757 2.306 29.982s0 18.451-2.306 29.982l57.657 41.514c6.919 4.613 6.919 11.532 4.613 18.451l-57.657 99.171c-4.613 6.919-11.532 9.225-18.451 4.613l-66.883-29.982c-16.144 11.532-32.289 20.757-50.738 29.982l-6.919 71.495c2.306 6.919-2.306 11.532-9.225 11.532h-113.009c-6.919 0-13.838-4.613-13.838-11.532l-6.919-71.495c-18.451-6.919-34.595-16.144-50.738-29.982l-66.883 29.982c-6.919 2.306-13.838 0-18.451-4.613l-57.657-99.171c-4.613-6.919-2.306-13.838 4.613-18.451l57.657-41.514v-29.982c0-9.225 0-18.451 2.306-29.982l-57.657-41.514c-6.919-4.613-6.919-11.532-4.613-18.451l57.657-99.171c4.613-6.919 11.532-9.225 18.451-4.613l66.883 29.982c16.144-11.532 32.289-20.757 50.738-29.982l6.919-71.495c0-6.919 6.919-11.532 13.838-11.532h113.009c6.919 0 13.838 4.613 13.838 11.532l6.919 71.495c18.451 6.919 34.595 16.144 50.738 29.982l66.883-29.982c6.919-2.306 13.838 0 18.451 4.613l57.657 99.171c4.613 6.919 2.306 13.838-4.613 18.451l-64.576 41.514zM719.568 563.316c-64.576 0-115.316 50.738-115.316 115.316s50.738 115.316 115.316 115.316 115.316-50.738 115.316-115.316-50.738-115.316-115.316-115.316z" />
|
||||
<glyph unicode="" glyph-name="system" d="M512 191.089c-142.121 0-255.089 112.968-255.089 255.089s112.968 255.089 255.089 255.089 255.089-112.968 255.089-255.089-112.968-255.089-255.089-255.089zM1022.178 362.363v167.63c-32.797 7.288-69.238 14.577-109.324 18.221-10.932 40.085-25.509 76.527-43.73 109.324 25.509 32.797 47.374 61.95 65.594 91.103l-120.256 120.256c-29.153-18.221-58.306-40.085-91.103-61.95-32.797 18.221-69.238 36.441-109.324 43.73-3.644 40.085-10.932 76.527-18.221 109.324h-167.63c-7.288-32.797-14.577-69.238-18.221-109.324-40.085-10.932-76.527-25.509-109.324-43.73-32.797 18.221-61.95 40.085-91.103 58.306l-116.612-116.612c18.221-29.153 40.085-58.306 61.95-91.103-18.221-32.797-36.441-69.238-43.73-109.324-40.085-3.644-76.527-10.932-109.324-18.221v-167.63c32.797-7.288 69.238-14.577 109.324-18.221 10.932-40.085 25.509-76.527 43.73-109.324-25.509-32.797-47.374-61.95-61.95-91.103l120.256-120.256c29.153 18.221 58.306 40.085 91.103 65.594 32.797-18.221 69.238-36.441 109.324-43.73 3.644-40.085 10.932-76.527 18.221-109.324h167.63c7.288 32.797 14.577 69.238 18.221 109.324 40.085 10.932 76.527 25.509 109.324 43.73 32.797-25.509 61.95-47.374 91.103-65.594l120.256 120.256c-18.221 29.153-40.085 58.306-65.594 91.103 18.221 32.797 36.441 69.238 43.73 109.324 36.441 3.644 72.883 10.932 105.68 18.221z" />
|
||||
<glyph unicode="" glyph-name="vpn" d="M977.454 820.363v23.272c0 65.163-51.2 116.364-116.364 116.364s-116.364-51.2-116.364-116.364v-23.272c-27.927 0-46.546-18.619-46.546-46.546v-186.182c0-27.927 18.619-46.546 46.546-46.546h232.727c27.927 0 46.546 18.619 46.546 46.546v186.182c0 27.927-18.619 46.546-46.546 46.546zM940.217 820.363h-158.255v23.272c0 41.891 37.236 79.127 79.127 79.127s79.127-37.236 79.127-79.127v-23.272zM833.163 448c0-13.964 4.655-32.582 4.655-46.546 0-97.745-37.236-186.182-97.745-251.345-13.964 37.236-46.546 65.163-88.437 65.163h-46.546v139.636c0 27.927-18.619 46.546-46.546 46.546h-279.272v93.090h93.090c27.927 0 46.546 18.619 46.546 46.546v93.090h93.090c51.2 0 93.090 41.891 93.090 93.090v116.364c-41.891 13.964-93.090 23.272-139.636 23.272-256 0-465.454-209.454-465.454-465.454s209.454-465.454 465.454-465.454 465.454 209.454 465.454 465.454c0 13.964 0 32.582-4.655 46.546h-93.090zM418.91 33.746c-181.527 23.272-325.818 181.527-325.818 367.709 0 27.927 4.655 55.854 9.309 83.782l223.418-223.418v-46.546c0-51.2 41.891-93.090 93.090-93.090v-88.437z" />
|
||||
<glyph unicode="" glyph-name="storage" d="M512 521.152c90.304 0 174.656 8.192 253.12 24.576s140.416 40.576 185.728 72.576v-97.152c0-26.304-19.648-50.688-58.88-73.152s-92.544-40.32-160-53.44c-67.392-13.12-140.736-19.712-219.968-19.712s-152.576 6.592-220.032 19.712c-67.392 13.184-120.704 30.976-160 53.44-39.232 22.464-58.88 46.848-58.88 73.152v97.152c45.312-32 107.264-56.192 185.728-72.576 78.528-16.384 162.88-24.576 253.184-24.576v0 0zM512 82.304c90.304 0 174.656 8.192 253.12 24.576s140.416 40.576 185.728 72.576v-97.152c0-26.304-19.648-50.688-58.88-73.152s-92.544-40.32-160-53.44c-67.392-13.12-140.736-19.712-219.968-19.712s-152.576 6.592-220.032 19.712c-67.456 13.12-120.768 30.976-160 53.44s-58.88 46.848-58.88 73.152v97.152c45.312-32 107.264-56.192 185.728-72.576 78.528-16.384 162.88-24.576 253.184-24.576v0 0zM512 301.696c90.304 0 174.656 8.192 253.12 24.576s140.416 40.576 185.728 72.576v-97.152c0-26.304-19.648-50.688-58.88-73.152s-92.544-40.256-160-53.44c-67.392-13.12-140.736-19.648-219.968-19.648s-152.576 6.592-220.032 19.712c-67.456 13.12-120.768 30.976-160 53.44s-58.88 46.848-58.88 73.152v97.088c45.312-32 107.264-56.192 185.728-72.576 78.528-16.384 162.88-24.576 253.184-24.576v0 0zM512 960c79.232 0 152.576-6.592 220.032-19.712s120.768-30.976 160-53.44c39.232-22.464 58.88-46.848 58.88-73.152v-73.152c0-26.304-19.648-50.688-58.88-73.152s-92.544-40.256-160-53.44c-67.456-13.12-140.8-19.648-220.032-19.648s-152.576 6.592-220.032 19.712c-67.456 13.12-120.768 30.976-160 53.44s-58.88 46.848-58.88 73.152v73.088c0 26.304 19.648 50.688 58.88 73.152s92.544 40.32 160 53.44c67.456 13.12 140.8 19.712 220.032 19.712v0 0z" />
|
||||
<glyph unicode="" glyph-name="statistics" d="M933.842 916.59h-845.911c-48.973 0-89.044-40.069-89.044-89.044v-623.301c0-48.973 40.069-89.044 89.044-89.044h378.434v-66.783h-175.861c-22.261 0-42.296-15.583-46.748-37.844-4.452-28.939 17.808-51.2 44.521-51.2h442.991c22.261 0 42.296 15.583 46.748 37.844 4.452 28.939-17.808 51.2-44.521 51.2h-178.086v66.783h378.434c48.973 0 89.044 40.069 89.044 89.044v623.301c0 48.973-40.069 89.044-89.044 89.044zM800.277 471.374h-146.921l-51.2-151.373c-4.452-13.356-22.261-15.583-31.165-4.452l-160.278 222.61-20.035-51.2c-2.227-8.904-11.131-13.356-20.035-13.356h-169.182c-22.261 0-42.296 15.583-46.748 37.844-4.452 28.939 17.808 51.2 44.521 51.2h124.661l51.2 129.113c4.452 13.356 22.261 15.583 31.165 4.452l155.826-213.705 22.261 66.783c2.227 8.904 11.131 15.583 20.035 15.583h191.443c22.261 0 42.296-15.583 46.748-37.844 6.679-33.392-13.356-55.652-42.296-55.652z" />
|
||||
<glyph unicode="" glyph-name="hello-world" d="M490 960c14.6 0 29.4 0 44 0 4.2-0.8 8.2-2 12.4-2.6 23-3 46.4-4.4 69-9.2 105-22 194.8-71.8 268.2-149.8 77.6-82.6 123.2-180.4 135.8-293.2 1.4-11.8 3-23.4 4.6-35.2 0-14.6 0-29.4 0-44-0.8-4.2-2-8.2-2.6-12.4-3-23-4.4-46.4-9.2-69-22-105-71.8-194.8-149.8-268.2-82.6-77.6-180.4-123.2-293.2-135.8-11.8-1.4-23.4-3-35.2-4.6-14.6 0-29.4 0-44 0-4.2 0.8-8.2 2-12.4 2.6-23 3-46.4 4.4-69 9.2-105 22-194.8 71.8-268.2 149.8-77.6 82.6-123.2 180.4-135.8 293.2-1.4 11.8-3 23.4-4.6 35.2 0 14.6 0 29.4 0 44 0.8 4.2 2 8.2 2.6 12.4 3 23 4.4 46.4 9.2 69 22 105 71.8 194.8 149.8 268.2 82.6 77.6 180.4 123.2 293.2 135.8 11.8 1.4 23.4 3 35.2 4.6zM337.6 321c6.6-22.4 12.2-41.8 18.2-61.2 3.6-12 11.6-18.4 22-18.4 9.8 0 19 7 23 17.8 2 5.6 3.6 11.4 5.4 17.2 11.2 35.8 22.6 71.6 33.6 107.6 5 16.4-6.4 30.8-21.6 27.8-9.6-2-15.8-7.6-18.6-17.4-6.4-23-13.2-45.8-20.6-71-6.4 22.4-12.2 42.4-18 62.6-3.6 12.6-11.4 19.8-21.8 20.2-10.8 0.4-20.2-7.4-24-20.2-2-6.6-3.8-13.4-5.8-20.2-4.4-15.4-8.6-30.6-13.6-48-7.2 23.8-13.6 45-20.4 66.2-4 13-14 18.4-26 14.8-11.6-3.4-18.2-15.4-14.6-27.6 2.8-9.2 5.8-18.4 8.8-27.6 9.8-30 19.6-60 29.6-90 4-12 11-17.8 21.2-18.2 10.4-0.4 20 6.8 24 17.8 1.2 3.2 1.8 6.4 2.8 9.6 4.8 18.6 10.2 37 16.4 58.2zM880.8 395.6c0 28.4 0 56.6 0 85 0 13-7.8 21.4-19.8 21.4s-21.8-9.2-22-21.2c-0.2-11-0.2-22 0-33 0.2-6.8-1-9-9-7.8-44.6 6.8-80.6-23.6-79.2-66.2 0.4-15.4 0.2-30.6 0.2-46 0.2-25.2 18.2-47.4 42.6-52.4 25.8-5.2 50.2 1.2 73.6 11.6 9.2 4 13.6 12 13.6 22.6 0 28.6 0 57.2 0 86zM184.8 586.4c0 10.2 0 22.4 0 34.6 0 13.2-7.6 21.4-19.6 21.6-11.8 0-22.2-9.4-22.2-21 0-61.6 0-123.4 0-185 0-8.8 4.4-14.4 12.4-17.4 14.2-5.4 29.2 4.8 29.4 20 0.2 29.6 0.4 59.4-0.2 89-0.2 9.8 3.8 14.6 12.2 17.8 21.8 8.4 35 0.2 36.2-23.2 0.2-2.4 0-4.6 0-7 0-23.6 0-47.4 0-71 0-13 7.2-20.8 19-20.6s20.6 8.8 20.6 21c0.2 30.4 0.2 60.6 0 91-0.2 23.2-17.4 46-40 49.8-14.8 2.8-30.4 0.6-47.8 0.4zM330 493.4c7.6 0.6 14.6 1.2 21.4 1.8 15.2 1.4 30.4 2.2 45.6 4.2 10.2 1.4 18 8.2 19 18 1.4 12.8 1.8 26.2-1 38.6-6.6 29.6-28.2 43.6-62.8 42.8-36.2-0.8-65-29.8-65.2-65.8 0-15.6-0.2-31.2 0-47 0.2-25.4 18.8-47.6 43.4-52.8 24.4-5.2 46.8 1 68.2 11.8 11.2 5.6 15.2 18 10 27.8s-15.8 12.4-27.6 7.6c-8-3.2-16-6.4-24.4-8.4-16-4.2-24.8 2.8-26.6 21.4zM687.8 538.8c-0.4 0-0.6 0-1 0 0 8 0.2 16 0 24-1 20.4-9.8 36.6-27.2 47.2-39.2 23.6-95.8 1.4-105.8-43.2-4.2-18.8-2.4-39-2.4-58.6 0-20 9-36 25.8-47 38.4-25 96.2-3.2 107.4 41 2.8 11.8 2.2 24.4 3.2 36.6zM579.8 339.6c-0.6 0-1.2 0-1.8 0 0 11 1.8 22.2-0.4 32.8-6.2 30.6-29.6 46.8-64 46.2-39-0.6-68-29.4-68.4-68.2-0.2-14.6-0.2-29.4 0-44 0.2-14.2 5-26.8 15-37 18.8-19.2 42-21.8 66.4-15.8 25.6 6.4 43.2 22.4 49.6 48.2 3.2 12.4 2.6 25.2 3.6 37.8zM693.2 379c0-30.2 0-60.6 0-90.8 0-14 6.6-21.2 19.2-21.4 13.6-0.2 22.6 8.4 22.6 22.2 0 60.6 0 121.2 0 181.8 0 10.4-5.8 18-14.6 19.8-14 3-27-7.2-27-21.6-0.4-30-0.2-60-0.2-90zM433.2 550c0-30 0-60 0-90 0-12.6 6.8-20.4 17.8-20.8 11.8-0.6 21.8 8 21.8 19.8 0.2 62.4 0.2 124.6 0 187 0 8.8-4.8 14.2-13 16.8-13.4 4.2-26.6-5.6-26.6-19.8-0.2-31 0-62 0-93zM495.2 556c0-30.4 0-60.6 0-91 0-12.8 7.2-21.2 18.4-21.6 11.4-0.4 21.2 9.4 21.2 21.8 0 61.4 0.2 122.6-0.2 184 0 4.8-2.6 10.4-5.8 14-5.6 6.2-13.4 7-21 3.4-7.8-3.6-12.6-9.4-12.6-18.6 0-30.6 0-61.4 0-92zM595.2 329.8c0-17.4-0.6-34.6 0.4-51.8 0.4-5.4 4-13 8.4-15.2 5.4-2.8 13.6-2.6 19.6-0.8 7.8 2.4 11.4 9.6 11.4 18.2-0.2 27.6 0 55.2 0 82.8 0 25.8 0 25.8 25.6 24.4 12-0.6 21.8 7.2 23.4 18.6 1.6 10.4-5.2 19.6-17.4 21.6-7.8 1.4-16 1.4-23.8 0.8-27.6-2-47.6-24.2-47.6-51.8 0-15.6 0-31.2 0-46.8zM839.2 356.2c0 10.6 0.2 21.2-0.2 32 0 2.8-0.6 6.8-2.4 8-8.6 6.4-18.8 6.4-28.6 3.8-8.6-2.4-15-8.2-15.4-17.6-0.6-17.6-1-35 0-52.6 0.8-12.2 9-18 21.2-17 6.2 0.6 12.6 1.4 18.4 3.6 3 1.2 6.2 5.6 6.6 8.8 0.8 10.4 0.4 20.8 0.4 31zM647.8 537.4c-0.8 7.4-1 14.8-2.2 22-2.2 13.8-9.8 20-23.8 20-14.8-0.2-25.6-8.2-27-21.2-1.2-12.8-2-25.8-1.6-38.8 0.4-8.6-0.4-19 9-24 16.6-8.8 42.2-2.6 43.4 19.4 0.4 7.6 1.4 15 2.2 22.6zM539.8 337.6c-0.6 7.2-1 14.6-2 21.8-2.2 13.8-9.8 20.2-23.8 20-14.8-0.2-26.2-8.2-27-21.2-1-16.8-0.8-33.8 0.2-50.6 0.2-4.6 4.8-11 9-13 18.8-8.6 41.4 0.4 41.8 21 0 7.4 1 14.6 1.8 22zM839.2 356.2c0-10.4 0.6-20.6-0.4-31-0.2-3.2-3.6-7.6-6.6-8.8-5.8-2.2-12.2-3.2-18.4-3.6-12.2-1-20.4 4.8-21.2 17-1 17.4-0.6 35 0 52.6 0.4 9.4 6.8 15.2 15.4 17.6 9.8 2.6 20 2.6 28.6-3.8 1.8-1.4 2.4-5.4 2.4-8 0.2-10.6 0.2-21.2 0.2-32zM330.4 533c1 19.4 10.2 27.6 28.2 26.2 8.6-0.8 16.6-8.6 16.2-17.2-0.2-2-3.8-5.2-6-5.4-12.6-1.6-25.2-2.4-38.4-3.6zM647.8 537.4c-0.6-7.6-1.6-15-2-22.6-1.2-22-26.8-28.4-43.4-19.4-9.4 5-8.8 15.4-9 24-0.4 12.8 0.4 25.8 1.6 38.8s12.2 21 27 21.2c14 0.2 21.6-6 23.8-20 1-7.2 1.2-14.6 2-22zM539.8 337.6c-0.6-7.4-1.8-14.6-1.8-21.8-0.4-20.6-23-29.6-41.8-21-4.2 2-8.6 8.4-9 13-1 16.8-1.2 33.8-0.2 50.6 0.8 13 12.2 21 27 21.2 14 0.2 21.6-6.2 23.8-20 1-7.6 1.2-14.8 2-22z" />
|
||||
<glyph unicode="" glyph-name="angle-right" d="M704.6 414l-272-272c-18.8-18.8-49.2-18.8-67.8 0l-45.2 45.2c-18.8 18.8-18.8 49.2 0 67.8l192.8 192.8-192.8 192.8c-18.8 18.8-18.8 49.2 0 67.8l45 45.6c18.8 18.8 49.2 18.8 67.8 0l272-272c19-18.8 19-49.2 0.2-68z" />
|
||||
<glyph unicode="" glyph-name="password" d="M196.923 603.569v0zM827.077 507.077h-512v92.554c0 104.369 78.769 196.923 183.138 202.831 96.492 5.908 177.231-55.138 202.831-141.785 1.969-7.877 9.846-15.754 19.692-15.754h80.738c11.815 0 21.662 11.815 19.692 23.631-31.508 149.662-165.415 259.938-324.923 252.062-167.385-7.877-295.385-151.631-299.323-317.046v-96.492c-43.323 0-78.769-35.446-78.769-78.769v-374.154c0-43.323 35.446-78.769 78.769-78.769h630.154c43.323 0 78.769 35.446 78.769 78.769v374.154c0 43.323-35.446 78.769-78.769 78.769zM602.585 119.138c3.938-11.815-5.908-25.6-19.692-25.6h-143.754c-13.785 0-23.631 11.815-19.692 25.6l35.446 118.154c-29.538 19.692-47.262 55.138-39.385 94.523 7.877 37.415 37.415 66.954 76.8 74.831 63.015 11.815 118.154-33.477 118.154-92.554 0-31.508-15.754-61.046-41.354-76.8l33.477-118.154z" />
|
||||
<glyph unicode="" glyph-name="docker" d="M537 896l87 2 14-14 1-89-14-13-87-2-14 13-1 90 14 13zM270 756l87 2 14-13 1-90-14-13-87-2-13 14-1 89 13 13zM404 758l88 1 13-14 1-88-13-14-88-1-13 13-1 90 13 13zM538 760l87 1 14-14v-88l-12-14-87-1-14 13-1 89 13 14zM874 675q44-14 102-108 84 2 134-53v-6q-68-104-159-105-199-323-519-327l-74-1q-235-3-311 269l-7 69-1 53 13 15 744 9q34 0 40 21l-1 75q13 89 39 89zM138 618l87 2 14-15v-88l-13-13-87-2-14 13-1 89 14 14zM272 620l86 1 15-14 1-88-14-14-87-1-13 13-1 89 13 14zM405 622l88 1 13-14 1-89-13-13-87-1-13 13-1 89 12 14zM540 624l87 1 13-14 1-89-13-13-87-1-14 13-1 88 14 15zM674 625l86 2 15-14 1-89-14-14-87-1-13 14-1 88 13 14z" />
|
||||
<glyph unicode="" glyph-name="control" d="M1024.001-23.040v942.081c0 22.656-18.304 40.96-40.96 40.96h-942.081c-22.656 0-40.96-18.304-40.96-40.96v-942.081c0-22.656 18.304-40.96 40.96-40.96h942.081c22.656 0 40.96 18.304 40.96 40.96zM293.119 586.241h-98.56c-5.632 0-10.24 4.608-10.24 10.24v61.44c0 5.632 4.608 10.24 10.24 10.24h98.56c17.408 53.376 67.584 92.16 126.72 92.16s109.44-38.785 126.72-92.16h282.88c5.632 0 10.24-4.608 10.24-10.24v-61.44c0-5.632-4.608-10.24-10.24-10.24h-282.88c-17.408-53.376-67.584-92.16-126.72-92.16s-109.44 38.785-126.72 92.16zM477.312 228.352c0-0.256 0.128-0.384 0.128-0.512h-282.88c-5.632 0-10.24 4.608-10.24 10.24v61.44c0 5.632 4.608 10.24 10.24 10.24h282.88c0-0.256-0.128-0.384-0.128-0.512 17.152 53.76 67.457 92.672 126.848 92.672s109.696-38.912 126.848-92.672c0 0.256-0.128 0.384-0.128 0.512h98.56c5.632 0 10.24-4.608 10.24-10.24v-61.44c0-5.632-4.608-10.24-10.24-10.24h-98.56c0 0.256 0.128 0.384 0.128 0.512-17.152-53.76-67.457-92.672-126.848-92.672s-109.696 38.912-126.848 92.672zM604.16 314.88c-25.45 0-46.080-20.63-46.080-46.080s20.63-46.080 46.080-46.080v0c25.45 0 46.080 20.63 46.080 46.080s-20.63 46.080-46.080 46.080v0zM442.24 587.008l3.072 1.92c0.128 0 0.128 0.128 0.256 0.128l1.536 1.152c0.128 0.128 0.256 0.256 0.384 0.256 1.664 1.28 3.2 2.56 4.608 4.096l0.256 0.256c0.512 0.512 1.024 1.024 1.408 1.536 1.024 1.024 1.92 2.176 2.688 3.328v0.128l1.152 1.536c0.128 0.128 0.256 0.384 0.384 0.512 1.024 1.536 2.048 3.2 2.816 4.992 0.128 0.256 0.256 0.64 0.512 0.896 0.256 0.512 0.384 0.896 0.64 1.408 0.128 0.384 0.384 0.896 0.512 1.28 0.256 0.64 0.512 1.28 0.64 1.92 0.128 0.512 0.384 1.152 0.512 1.664l0.384 1.152 0.384 1.792c0.128 0.256 0.128 0.64 0.256 0.896 0.128 0.896 0.384 1.792 0.512 2.688 0 0.256 0 0.512 0.128 0.768 0.128 0.768 0.128 1.408 0.256 2.176 0 0.256 0 0.512 0.128 0.896 0 1.024 0.128 1.92 0.128 2.944s0 1.92-0.128 2.944c0 0.256 0 0.512-0.128 0.896 0 0.768-0.128 1.536-0.256 2.176 0 0.256 0 0.512-0.128 0.768-0.128 0.896-0.256 1.792-0.512 2.688-0.128 0.256-0.128 0.64-0.256 0.896l-0.384 1.792-0.384 1.152c-0.128 0.512-0.384 1.152-0.512 1.664-0.256 0.64-0.512 1.28-0.64 1.92-0.128 0.384-0.384 0.896-0.512 1.28-0.256 0.512-0.384 0.896-0.64 1.408-0.128 0.256-0.256 0.64-0.512 0.896-0.896 1.664-1.792 3.328-2.816 4.992-0.128 0.128-0.256 0.384-0.384 0.512l-1.152 1.536v0.128c-0.896 1.152-1.792 2.304-2.688 3.328-0.512 0.512-0.896 1.024-1.408 1.536l-0.256 0.256c-1.425 1.384-2.925 2.724-4.483 3.997l-0.125 0.1c-0.128 0.128-0.256 0.256-0.384 0.256l-1.536 1.152c-0.128 0-0.128 0.128-0.256 0.128l-3.072 1.92c-0.256 0.128-0.384 0.256-0.64 0.384-6.528 3.456-13.952 5.504-21.76 5.504s-15.36-2.048-21.76-5.504c-0.256-0.128-0.384-0.256-0.64-0.384l-3.072-1.92c-0.128 0-0.128-0.128-0.256-0.128l-1.536-1.152c-0.128-0.128-0.256-0.256-0.384-0.256-1.664-1.28-3.2-2.56-4.608-4.096l-0.256-0.256c-0.512-0.512-1.024-1.024-1.408-1.536-1.024-1.024-1.92-2.176-2.688-3.328v-0.128l-1.152-1.536c-0.128-0.128-0.256-0.384-0.384-0.512-1.024-1.536-2.048-3.2-2.816-4.992-0.128-0.256-0.256-0.64-0.512-0.896-0.256-0.512-0.384-0.896-0.64-1.408-0.128-0.384-0.384-0.896-0.512-1.28-0.256-0.64-0.512-1.28-0.64-1.92-0.128-0.512-0.384-1.152-0.512-1.664l-0.384-1.152-0.384-1.792c-0.128-0.256-0.128-0.64-0.256-0.896-0.128-0.896-0.384-1.792-0.512-2.688 0-0.256 0-0.512-0.128-0.768-0.128-0.768-0.128-1.408-0.256-2.176 0-0.256 0-0.512-0.128-0.896 0-1.024-0.128-1.92-0.128-2.944s0-1.92 0.128-2.944c0-0.256 0-0.512 0.128-0.896 0-0.768 0.128-1.536 0.256-2.176 0-0.256 0-0.512 0.128-0.768 0.128-0.896 0.256-1.792 0.512-2.688 0.128-0.256 0.128-0.64 0.256-0.896l0.384-1.792 0.384-1.152c0.128-0.512 0.384-1.152 0.512-1.664 0.256-0.64 0.512-1.28 0.64-1.92 0.128-0.384 0.384-0.896 0.512-1.28 0.256-0.512 0.384-0.896 0.64-1.408 0.128-0.256 0.256-0.64 0.512-0.896 0.896-1.664 1.792-3.328 2.816-4.992 0.128-0.128 0.256-0.384 0.384-0.512l1.152-1.536v-0.128c0.896-1.152 1.792-2.304 2.688-3.328 0.512-0.512 0.896-1.024 1.408-1.536l0.256-0.256c1.408-1.408 3.072-2.816 4.608-4.096 0.128-0.128 0.256-0.256 0.384-0.256l1.536-1.152c0.128 0 0.128-0.128 0.256-0.128l3.072-1.92c0.256-0.128 0.384-0.256 0.64-0.384 6.528-3.456 13.952-5.504 21.76-5.504s15.36 2.048 21.76 5.504c0.256 0.128 0.512 0.256 0.64 0.384z" />
|
||||
<glyph unicode="" glyph-name="statistics1" d="M242.692 27.226v606.954c0 24.204-18.621 42.82-40.959 42.82h-122.884c-22.336 0-40.959-20.476-40.959-42.82v-606.954h204.8zM503.346 27.226v867.607c0 24.206-18.617 44.687-40.96 44.687h-122.884c-22.336 0-40.959-20.482-40.959-44.687v-867.607h204.802zM763.999 27.226v383.538c0 24.204-18.615 44.681-40.959 44.681h-122.877c-22.343 0-40.967-20.476-40.967-44.681v-383.538h204.802zM1024.653 27.226v606.954c0 24.204-18.615 42.82-40.959 42.82h-122.877c-22.343 0-40.959-20.476-40.959-42.82v-606.954h204.793z" />
|
||||
<glyph unicode="" glyph-name="asterisk" d="M956.42 291.814l-284.42 156.186 284.42 156.186c23.59 12.954 31.922 42.768 18.464 66.074l-38.96 67.482c-13.456 23.306-43.44 30.998-66.454 17.046l-277.47-168.224 6.95 324.408c0.576 26.906-21.076 49.028-47.99 49.028h-77.92c-26.912 0-48.566-22.122-47.988-49.028l6.948-324.408-277.47 168.222c-23.012 13.952-52.998 6.26-66.454-17.046l-38.96-67.482c-13.456-23.306-5.124-53.12 18.466-66.074l284.418-156.184-284.42-156.186c-23.59-12.954-31.922-42.768-18.464-66.074l38.96-67.482c13.456-23.306 43.442-30.998 66.454-17.046l277.47 168.224-6.95-324.408c-0.576-26.906 21.078-49.028 47.99-49.028h77.922c26.912 0 48.566 22.122 47.99 49.028l-6.952 324.408 277.47-168.222c23.012-13.952 52.998-6.26 66.454 17.046l38.96 67.482c13.456 23.306 5.126 53.118-18.464 66.072z" />
|
||||
<glyph unicode="" glyph-name="app" d="M417.786-56.315c28.674-16.897 51.203-5.633 51.203 28.674v398.871c0 34.306-23.041 68.612-51.203 85.509l-330.259 205.324c-28.674 11.264-51.203 0-51.203-28.674v-398.871c0-34.306 23.041-68.612 51.203-85.509l330.259-205.324zM138.731 787.511c-28.674-16.897-28.674-39.938 0-56.835l325.139-205.324c28.674-16.897 68.612-16.897 96.774-5.633l325.139 165.386c28.674 16.897 28.674 39.938 0 56.835l-342.547 205.324c-23.041 16.897-68.612 16.897-96.774 0l-307.73-159.753zM560.643-27.642c0-34.306 23.041-45.571 51.203-28.674l325.139 165.386c28.674 16.897 51.203 51.203 51.203 85.509v399.383c0 34.306-23.041 45.571-51.203 28.674l-325.139-165.386c-28.674-16.897-51.203-51.203-51.203-85.509v-399.383z" />
|
||||
<glyph unicode="" glyph-name="user" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" />
|
||||
<glyph unicode="" glyph-name="question" horiz-adv-x="878" d="M512 164.571v109.714q0 8-5.143 13.143t-13.143 5.143h-109.714q-8 0-13.143-5.143t-5.143-13.143v-109.714q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143zM658.286 548.571q0 50.286-31.714 93.143t-79.143 66.286-97.143 23.429q-138.857 0-212-121.714-8.571-13.714 4.571-24l75.429-57.143q4-3.429 10.857-3.429 9.143 0 14.286 6.857 30.286 38.857 49.143 52.571 19.429 13.714 49.143 13.714 27.429 0 48.857-14.857t21.429-33.714q0-21.714-11.429-34.857t-38.857-25.714q-36-16-66-49.429t-30-71.714v-20.571q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143q0 10.857 12.286 28.286t31.143 28.286q18.286 10.286 28 16.286t26.286 20 25.429 27.429 16 34.571 7.143 46.286zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
|
||||
</font></defs></svg>
|
After Width: | Height: | Size: 28 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/fonts/argon.ttf
Normal file
BIN
luci-theme-argon/htdocs/luci-static/argon/fonts/argon.woff
Normal file
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.9 KiB |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
BIN
luci-theme-argon/htdocs/luci-static/argon/icon/favicon-16x16.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/icon/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/icon/favicon-96x96.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
41
luci-theme-argon/htdocs/luci-static/argon/icon/manifest.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "Openwrt",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 6.4 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/add.webp
Normal file
After Width: | Height: | Size: 690 B |
37
luci-theme-argon/htdocs/luci-static/argon/img/argon.svg
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 256 256"
|
||||
style="enable-background:new 0 0 256 256;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:url(#svg_2_00000009581766544743910510000007087157279682564742_);}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:url(#svg_3_00000013155245276689480680000010334395393893521599_);}
|
||||
.st2{fill:#FFFFFF;}
|
||||
</style>
|
||||
<g>
|
||||
<g id="svg_1">
|
||||
|
||||
<linearGradient id="svg_2_00000043442590260727270070000016472210641679865270_" gradientUnits="userSpaceOnUse" x1="11.1563" y1="247.3437" x2="245.4437" y2="13.0563" gradientTransform="matrix(1 0 0 -1 0 258)">
|
||||
<stop offset="0" style="stop-color:#5E72E4"/>
|
||||
<stop offset="1" style="stop-color:#778AFF"/>
|
||||
</linearGradient>
|
||||
|
||||
<path id="svg_2" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#svg_2_00000043442590260727270070000016472210641679865270_);" d="
|
||||
M36.4,0.2h183.8c19.7,0,35.7,16,35.7,35.7v183.8c0,19.7-16,35.7-35.7,35.7H36.4c-19.7,0-35.7-16-35.7-35.7V35.9
|
||||
C0.7,16.2,16.7,0.2,36.4,0.2z"/>
|
||||
|
||||
<linearGradient id="svg_3_00000010280352489557108120000000938545297310085033_" gradientUnits="userSpaceOnUse" x1="0.7" y1="257.8" x2="0.7" y2="257.8" gradientTransform="matrix(1 0 0 -1 0 258)">
|
||||
<stop offset="0" style="stop-color:#5E72E4"/>
|
||||
<stop offset="1" style="stop-color:#778AFF"/>
|
||||
</linearGradient>
|
||||
|
||||
<path id="svg_3" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#svg_3_00000010280352489557108120000000938545297310085033_);" d="
|
||||
M0.7,0.2"/>
|
||||
</g>
|
||||
<path id="svg_4" class="st2" d="M128.3,45.4c-46.7,0-84.4,37.8-84.4,84.4c0,32.2,18.1,60.2,44.6,74.4c6.8,3.7,15.3-0.2,17.2-7.7
|
||||
l4.3-17.6c1.5-6.2-1-12.6-6.1-16.4c-10-7.4-16.4-19.3-16.4-32.7c0-22.5,18.3-40.7,40.7-40.7c22.5,0,40.7,18.3,40.7,40.7
|
||||
c0,13.4-6.4,25.2-16.4,32.7c-5.1,3.8-7.6,10.2-6.1,16.5l4.4,17.6c1.9,7.5,10.3,11.4,17.2,7.7c26.6-14.2,44.6-42.2,44.6-74.5
|
||||
C212.8,83.3,174.9,45.4,128.3,45.4L128.3,45.4z"/>
|
||||
</g>
|
||||
<circle class="st2" cx="128.3" cy="131.6" r="18.3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg
Normal file
After Width: | Height: | Size: 156 KiB |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/blank.png
Normal file
After Width: | Height: | Size: 938 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/edit.webp
Normal file
After Width: | Height: | Size: 632 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/fieldadd.webp
Normal file
After Width: | Height: | Size: 664 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/file.webp
Normal file
After Width: | Height: | Size: 566 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/find.webp
Normal file
After Width: | Height: | Size: 674 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/folder.webp
Normal file
After Width: | Height: | Size: 252 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/link.webp
Normal file
After Width: | Height: | Size: 480 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/reload.webp
Normal file
After Width: | Height: | Size: 848 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/remove.webp
Normal file
After Width: | Height: | Size: 682 B |
BIN
luci-theme-argon/htdocs/luci-static/argon/img/trafficbar.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1597500707209" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9192" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M484.430769 51.2L236.307692 354.461538H118.153846c-43.323077 0-78.769231 35.446154-78.769231 78.769231v157.538462c0 43.323077 35.446154 78.769231 78.769231 78.769231h118.153846l248.123077 303.261538c25.6 25.6 66.953846 7.876923 66.953846-27.569231V78.769231c0-35.446154-43.323077-53.169231-66.953846-27.569231z m354.461539 120.123077c-7.876923-7.876923-19.692308-7.876923-27.569231 0l-27.569231 27.569231c-7.876923 7.876923-7.876923 21.661538 0 27.56923C858.584615 299.323077 905.846154 399.753846 905.846154 512c0 112.246154-47.261538 212.676923-122.092308 285.538462-7.876923 7.876923-7.876923 19.692308 0 27.56923l27.569231 27.569231c7.876923 7.876923 19.692308 7.876923 27.569231 0C927.507692 768 984.615385 645.907692 984.615385 512c0-133.907692-55.138462-256-145.723077-340.676923z m-124.061539 126.030769c-7.876923-7.876923-19.692308-7.876923-27.569231 0l-27.56923 27.569231c-7.876923 7.876923-7.876923 19.692308 0 27.569231 43.323077 39.384615 68.923077 96.492308 68.923077 159.507692 0 63.015385-27.569231 120.123077-70.892308 159.507692-7.876923 7.876923-7.876923 19.692308 0 27.569231l27.569231 27.569231c7.876923 7.876923 19.692308 7.876923 27.56923 0 57.107692-53.169231 94.523077-129.969231 94.523077-216.615385 0-82.707692-35.446154-159.507692-92.553846-212.676923z" p-id="9193" fill="#ffffff"></path></svg>
|
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1597500723732" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9385" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M484.430769 51.2L236.307692 354.461538H118.153846c-43.323077 0-78.769231 35.446154-78.769231 78.769231v157.538462c0 43.323077 35.446154 78.769231 78.769231 78.769231h118.153846l248.123077 303.261538c25.6 25.6 66.953846 7.876923 66.953846-27.569231V78.769231c0-35.446154-43.323077-53.169231-66.953846-27.569231zM882.215385 512l96.492307-96.492308c7.876923-7.876923 7.876923-19.692308 0-27.56923l-27.56923-27.569231c-7.876923-7.876923-19.692308-7.876923-27.569231 0L827.076923 456.861538l-96.492308-96.492307c-7.876923-7.876923-19.692308-7.876923-27.56923 0l-27.569231 27.569231c-7.876923 7.876923-7.876923 19.692308 0 27.56923l96.492308 96.492308-96.492308 96.492308c-7.876923 7.876923-7.876923 19.692308 0 27.56923l27.569231 27.569231c7.876923 7.876923 19.692308 7.876923 27.56923 0l96.492308-96.492307 96.492308 96.492307c7.876923 7.876923 19.692308 7.876923 27.569231 0l27.56923-27.569231c7.876923-7.876923 7.876923-19.692308 0-27.56923L882.215385 512z" p-id="9386" fill="#ffffff"></path></svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* The background color of the [Light Mode] subtabs follow the custom primary color and reduce its transparency
|
||||
* Author: SpeedPartner
|
||||
*/
|
||||
|
||||
/*
|
||||
* Get hex for the [Light mode] Primary Color ,then reduce it to 25% transparency and convert it to RGBA value
|
||||
*/
|
||||
const hexColor_primary_light = getComputedStyle(document.documentElement).getPropertyValue('--primary').replace(/\s/, "");
|
||||
const hexToRgba_primary_light = (hex) => {
|
||||
const r = parseInt(hex.substring(1, 3), 16);
|
||||
const g = parseInt(hex.substring(3, 5), 16);
|
||||
const b = parseInt(hex.substring(5, 7), 16);
|
||||
const a = 0.15
|
||||
return [r, g, b].map(x => x.toFixed()).concat(a);
|
||||
};
|
||||
const rgbaColor_primary_light = hexToRgba_primary_light(hexColor_primary_light);
|
||||
console.log(rgbaColor_primary_light);
|
||||
|
||||
/*
|
||||
* Constitute a css color variable named light-subtabs-background
|
||||
*/
|
||||
document.documentElement.style.setProperty('--light-subtabs-background', `rgba(`+rgbaColor_primary_light+`)`);
|
||||
|
||||
|
||||
/*
|
||||
* Improved link font color that follows custom [Dark mode] Primary Color
|
||||
* Author: SpeedPartner
|
||||
*/
|
||||
|
||||
/*
|
||||
* Get hex for the [Dark mode] Primary Color ,then reduce it to 70% transparency and convert it to RGB value
|
||||
*/
|
||||
const hexColor_primary = getComputedStyle(document.documentElement).getPropertyValue('--dark-primary').replace(/\s/, "");
|
||||
const hexToRgb_primary = (hex) => {
|
||||
const r = parseInt(hex.substring(1, 3), 16);
|
||||
const g = parseInt(hex.substring(3, 5), 16);
|
||||
const b = parseInt(hex.substring(5, 7), 16);
|
||||
const a = 0.7
|
||||
return [r*a, g*a, b*a].map(x => x.toFixed(2));
|
||||
};
|
||||
const rgbColor_primary = hexToRgb_primary(hexColor_primary);
|
||||
//console.log(rgbColor_primary);
|
||||
|
||||
/*
|
||||
* Constitute overlay color #cccccc, then reduce it to 30% transparency and convert it to RGB value
|
||||
*/
|
||||
const hexColor_overlay = "#cccccc";
|
||||
const hexToRgb_overlay = (hex) => {
|
||||
const r = parseInt(hex.substring(1, 3), 16);
|
||||
const g = parseInt(hex.substring(3, 5), 16);
|
||||
const b = parseInt(hex.substring(5, 7), 16);
|
||||
const a = 0.3
|
||||
return [r*a, g*a, b*a].map(x => x.toFixed(2));
|
||||
};
|
||||
const rgbColor_overlay = hexToRgb_overlay(hexColor_overlay);
|
||||
//console.log(rgbColor_overlay);
|
||||
|
||||
/*
|
||||
* Overlay the RGB value of two colors
|
||||
*/
|
||||
const New_Color = [
|
||||
Math.round(Number(rgbColor_primary[0]) + Number(rgbColor_overlay[0])),
|
||||
Math.round(Number(rgbColor_primary[1]) + Number(rgbColor_overlay[1])),
|
||||
Math.round(Number(rgbColor_primary[2]) + Number(rgbColor_overlay[2]))
|
||||
];
|
||||
//console.log(New_Color);
|
||||
|
||||
/*
|
||||
* Constitute a css color variable named dark_webkit-any-link
|
||||
*/
|
||||
document.documentElement.style.setProperty('--dark_webkit-any-link', `rgb(`+New_Color+`)`);
|
2
luci-theme-argon/htdocs/luci-static/argon/js/jquery.min.js
vendored
Normal file
168
luci-theme-argon/htdocs/luci-static/argon/js/menu-argon.js
Normal file
@ -0,0 +1,168 @@
|
||||
/**
|
||||
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
|
||||
*
|
||||
* luci-theme-argon
|
||||
* Copyright 2023 Jerrykuku <jerrykuku@qq.com>
|
||||
*
|
||||
* Have a bug? Please create an issue here on GitHub!
|
||||
* https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
*
|
||||
* luci-theme-bootstrap:
|
||||
* Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
* Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
*
|
||||
* MUI:
|
||||
* https://github.com/muicss/mui
|
||||
*
|
||||
* luci-theme-material:
|
||||
* https://github.com/LuttyYang/luci-theme-material/
|
||||
*
|
||||
* Argon Theme
|
||||
* https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
*
|
||||
* Login background
|
||||
* https://unsplash.com/
|
||||
*
|
||||
* Licensed to the public under the Apache License 2.0
|
||||
*/
|
||||
|
||||
var lastNode = undefined;
|
||||
var mainNodeName = undefined;
|
||||
|
||||
var nodeUrl = "";
|
||||
(function (node) {
|
||||
if (node[0] == "admin") {
|
||||
luciLocation = [node[1], node[2]];
|
||||
} else {
|
||||
luciLocation = node;
|
||||
}
|
||||
|
||||
for (var i in luciLocation) {
|
||||
nodeUrl += luciLocation[i];
|
||||
if (i != luciLocation.length - 1) {
|
||||
nodeUrl += "/";
|
||||
}
|
||||
}
|
||||
})(luciLocation);
|
||||
|
||||
/**
|
||||
* get the current node by Burl (primary)
|
||||
* @returns {boolean} success?
|
||||
*/
|
||||
function getCurrentNodeByUrl() {
|
||||
var ret = false;
|
||||
const urlReg = new RegExp(nodeUrl + "$")
|
||||
if (!$('body').hasClass('logged-in')) {
|
||||
luciLocation = ["Main", "Login"];
|
||||
return true;
|
||||
}
|
||||
$(".main > .main-left > .nav > .slide > .active").next(".slide-menu").stop(true).slideUp("fast");
|
||||
$(".main > .main-left > .nav > .slide > .menu").removeClass("active");
|
||||
$(".main > .main-left > .nav > .slide > .menu").each(function () {
|
||||
var ulNode = $(this);
|
||||
|
||||
ulNode.next().find("a").each(function () {
|
||||
var that = $(this);
|
||||
var href = that.attr("href");
|
||||
|
||||
if (urlReg.test(href)) {
|
||||
ulNode.click();
|
||||
ulNode.next(".slide-menu").stop(true, true);
|
||||
lastNode = that.parent();
|
||||
lastNode.addClass("active");
|
||||
ret = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* menu click
|
||||
*/
|
||||
$(".main > .main-left > .nav > .slide > .menu").click(function () {
|
||||
var ul = $(this).next(".slide-menu");
|
||||
var menu = $(this);
|
||||
if (!menu.hasClass("exit")) {
|
||||
$(".main > .main-left > .nav > .slide > .active").next(".slide-menu").stop(true).slideUp("fast");
|
||||
$(".main > .main-left > .nav > .slide > .menu").removeClass("active");
|
||||
if (!ul.is(":visible")) {
|
||||
menu.addClass("active");
|
||||
ul.addClass("active");
|
||||
ul.stop(true).slideDown("fast");
|
||||
} else {
|
||||
ul.stop(true).slideUp("fast", function () {
|
||||
menu.removeClass("active");
|
||||
ul.removeClass("active");
|
||||
});
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* hook menu click and add the hash
|
||||
*/
|
||||
$(".main > .main-left > .nav > .slide > .slide-menu > li > a").click(function () {
|
||||
if (lastNode != undefined)
|
||||
lastNode.removeClass("active");
|
||||
$(this).parent().addClass("active");
|
||||
$(".main > .loading").fadeIn("fast");
|
||||
return true;
|
||||
});
|
||||
|
||||
/**
|
||||
* fix menu click
|
||||
*/
|
||||
$(".main > .main-left > .nav > .slide > .slide-menu > li").click(function () {
|
||||
if (lastNode != undefined)
|
||||
lastNode.removeClass("active");
|
||||
$(this).addClass("active");
|
||||
$(".main > .loading").fadeIn("fast");
|
||||
window.location = $($(this).find("a")[0]).attr("href");
|
||||
return false;
|
||||
});
|
||||
|
||||
/**
|
||||
* fix submenu click
|
||||
*/
|
||||
$("#maincontent > .container > .tabs > li").click(function () {
|
||||
$(".main > .loading").fadeIn("fast");
|
||||
window.location = $($(this).find("a")[0]).attr("href");
|
||||
return false;
|
||||
});
|
||||
|
||||
/**
|
||||
* get current node and open it
|
||||
*/
|
||||
if (getCurrentNodeByUrl()) {
|
||||
mainNodeName = "node-" + luciLocation[0] + "-" + luciLocation[1];
|
||||
mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g, "_").toLowerCase();
|
||||
$("body").addClass(mainNodeName);
|
||||
}
|
||||
|
||||
if (mainNodeName != undefined) {
|
||||
console.log(mainNodeName);
|
||||
switch (mainNodeName) {
|
||||
case "node-status-system_log":
|
||||
case "node-status-kernel_log":
|
||||
$("#syslog").focus(function () {
|
||||
$("#syslog").blur();
|
||||
$(".main-right").focus();
|
||||
$(".main-right").blur();
|
||||
});
|
||||
break;
|
||||
case "node-status-firewall":
|
||||
var button = $(".node-status-firewall > .main fieldset li > a");
|
||||
button.addClass("cbi-button cbi-button-reset a-to-btn");
|
||||
break;
|
||||
case "node-system-reboot":
|
||||
var button = $(".node-system-reboot > .main > .main-right p > a");
|
||||
button.addClass("cbi-button cbi-input-reset a-to-btn");
|
||||
break;
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
/**
|
||||
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
|
||||
*
|
||||
* luci-theme-argon
|
||||
* Copyright 2023 Jerrykuku <jerrykuku@qq.com>
|
||||
*
|
||||
* Have a bug? Please create an issue here on GitHub!
|
||||
* https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
*
|
||||
* luci-theme-bootstrap:
|
||||
* Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
* Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
*
|
||||
* MUI:
|
||||
* https://github.com/muicss/mui
|
||||
*
|
||||
* luci-theme-material:
|
||||
* https://github.com/LuttyYang/luci-theme-material/
|
||||
*
|
||||
* Argon Theme
|
||||
* https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
*
|
||||
* Login background
|
||||
* https://unsplash.com/
|
||||
*
|
||||
* Licensed to the public under the Apache License 2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Sidebar expand
|
||||
*/
|
||||
var showSide = false;
|
||||
$(".showSide").click(function () {
|
||||
if (showSide) {
|
||||
$(".darkMask").stop(true).fadeOut("fast");
|
||||
$(".main-left").width(0);
|
||||
$(".main-right").css("overflow-y", "auto");
|
||||
showSide = false;
|
||||
} else {
|
||||
$(".darkMask").stop(true).fadeIn("fast");
|
||||
$(".main-left").width("15rem");
|
||||
$(".main-right").css("overflow-y", "hidden");
|
||||
showSide = true;
|
||||
}
|
||||
});
|
||||
|
||||
$(".darkMask").click(function () {
|
||||
if (showSide) {
|
||||
showSide = false;
|
||||
$(".darkMask").stop(true).fadeOut("fast");
|
||||
$(".main-left").width(0);
|
||||
$(".main-right").css("overflow-y", "auto");
|
||||
}
|
||||
});
|
||||
|
||||
$(window).resize(function () {
|
||||
if ($(window).width() > 921) {
|
||||
$(".main-left").css("width", "");
|
||||
$(".darkMask").stop(true);
|
||||
$(".darkMask").css("display", "none");
|
||||
showSide = false;
|
||||
}
|
||||
});
|
103
luci-theme-argon/htdocs/luci-static/argon/js/styles-argon.js
Normal file
@ -0,0 +1,103 @@
|
||||
/**
|
||||
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
|
||||
*
|
||||
* luci-theme-argon
|
||||
* Copyright 2023 Jerrykuku <jerrykuku@qq.com>
|
||||
*
|
||||
* Have a bug? Please create an issue here on GitHub!
|
||||
* https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
*
|
||||
* luci-theme-bootstrap:
|
||||
* Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
* Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
*
|
||||
* MUI:
|
||||
* https://github.com/muicss/mui
|
||||
*
|
||||
* luci-theme-material:
|
||||
* https://github.com/LuttyYang/luci-theme-material/
|
||||
*
|
||||
* Argon Theme
|
||||
* https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
*
|
||||
* Login background
|
||||
* https://unsplash.com/
|
||||
*
|
||||
* Licensed to the public under the Apache License 2.0
|
||||
*/
|
||||
|
||||
/*
|
||||
* Font generate by Icomoon<icomoon.io>
|
||||
*/
|
||||
(function ($) {
|
||||
$(".main > .loading").fadeOut();
|
||||
|
||||
/**
|
||||
* trim text, Remove spaces, wrap
|
||||
* @param text
|
||||
* @returns {string}
|
||||
*/
|
||||
function trimText(text) {
|
||||
return text.replace(/[ \t\n\r]+/g, " ");
|
||||
}
|
||||
|
||||
// define what element should be observed by the observer
|
||||
// and what types of mutations trigger the callback
|
||||
const observer = new MutationObserver(() => {
|
||||
console.log("callback that runs when observer is triggered");
|
||||
});
|
||||
if ($("#cbi-dhcp-lan-ignore").length > 0) {
|
||||
observer.observe(document.getElementById("cbi-dhcp-lan-ignore"), {
|
||||
subtree: true,
|
||||
attributes: true
|
||||
});
|
||||
}
|
||||
|
||||
$(".cbi-button-up").val("");
|
||||
$(".cbi-button-down").val("");
|
||||
|
||||
/**
|
||||
* hook other "A Label" and add hash to it.
|
||||
*/
|
||||
$("#maincontent > .container").find("a").each(function () {
|
||||
var that = $(this);
|
||||
var onclick = that.attr("onclick");
|
||||
if (onclick == undefined || onclick == "") {
|
||||
that.click(function () {
|
||||
var href = that.attr("href");
|
||||
if (href.indexOf("#") == -1) {
|
||||
$(".main > .loading").fadeIn("fast");
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* fix legend position
|
||||
*/
|
||||
$("legend").each(function () {
|
||||
var that = $(this);
|
||||
that.after("<span class='panel-title'>" + that.text() + "</span>");
|
||||
});
|
||||
|
||||
$(".cbi-section-table-titles, .cbi-section-table-descr, .cbi-section-descr").each(function () {
|
||||
var that = $(this);
|
||||
if (that.text().trim() == "") {
|
||||
that.css("padding", "0px");
|
||||
}
|
||||
});
|
||||
|
||||
$(".node-main-login > .main .cbi-value.cbi-value-last .cbi-input-text").focus(function () {
|
||||
//$(".node-main-login > .main > .main-right > .login-bg").addClass("blur");
|
||||
});
|
||||
$(".node-main-login > .main .cbi-value.cbi-value-last .cbi-input-text").blur(function () {
|
||||
//$(".node-main-login > .main > .main-right > .login-bg").removeClass("blur");
|
||||
});
|
||||
|
||||
$(".main-right").focus();
|
||||
$(".main-right").blur();
|
||||
$("input").attr("size", "0");
|
||||
|
||||
})(jQuery);
|
4133
luci-theme-argon/htdocs/luci-static/argon/less/cascade.less
Normal file
908
luci-theme-argon/htdocs/luci-static/argon/less/dark.less
Normal file
@ -0,0 +1,908 @@
|
||||
/**
|
||||
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
|
||||
*
|
||||
* luci-theme-argon
|
||||
* Copyright 2020 Jerryk <jerrykuku@gmail.com>
|
||||
*
|
||||
* Have a bug? Please create an issue here on GitHub!
|
||||
* https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
*
|
||||
* luci-theme-bootstrap:
|
||||
* Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
* Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
*
|
||||
* MUI:
|
||||
* https://github.com/muicss/mui
|
||||
*
|
||||
* luci-theme-material:
|
||||
* https://github.com/LuttyYang/luci-theme-material/
|
||||
*
|
||||
* Argon Theme
|
||||
* https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
*
|
||||
* Login background
|
||||
* https://unsplash.com/
|
||||
*
|
||||
* Licensed to the public under the Apache License 2.0
|
||||
*/
|
||||
|
||||
body {
|
||||
background: #1e1e1e;
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.login-page .login-container {
|
||||
|
||||
.login-form {
|
||||
background-color: #1e1e1e;
|
||||
|
||||
.brand {
|
||||
color: #adb5bd;
|
||||
}
|
||||
|
||||
.form-login {
|
||||
.input-group {
|
||||
&::before {
|
||||
color: #adb5bd;
|
||||
}
|
||||
|
||||
.border {
|
||||
border-bottom: 1px var(--dark-primary) solid;
|
||||
}
|
||||
|
||||
input {
|
||||
background-color: transparent !important;
|
||||
color: #adb5bd;
|
||||
border-bottom: #adb5bd 1px solid !important;
|
||||
border-radius: 0;
|
||||
border-top: none !important;
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
box-shadow: none;
|
||||
|
||||
&:focus {
|
||||
border-top: none !important;
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cbi-button-apply {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
&:hover,
|
||||
&:focus {
|
||||
opacity: 0.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
footer {
|
||||
color: #adb5bd;
|
||||
a {
|
||||
color: #adb5bd;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
header::after {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
||||
.main {
|
||||
.main-left {
|
||||
|
||||
background-color: #333333 !important;
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .15);
|
||||
|
||||
.sidenav-header .brand {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.nav {
|
||||
.slide {
|
||||
.slide-menu {
|
||||
|
||||
.active {
|
||||
a {
|
||||
color: #fff !important;
|
||||
|
||||
&::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
a {
|
||||
color: #cccccc;
|
||||
|
||||
&:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
&::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu {
|
||||
&:hover,
|
||||
&.active {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.menu[data-title=Status]:before,
|
||||
.menu[data-title=Control]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
a {
|
||||
color: #cccccc !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: #252526 !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.main-right {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #ccc;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: #ccc;
|
||||
border-bottom: 0;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--dark_webkit-any-link);
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a, .cbi-button) {
|
||||
color: var(--dark_webkit-any-link) !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
background-color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-input-radio:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-value-field .cbi-input-apply,
|
||||
.cbi-button-apply,
|
||||
.cbi-button-edit {
|
||||
color: #fff !important;
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-section em {
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
header.bg-primary {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.cbi-map-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-section {
|
||||
background: none;
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35)
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
color: #ccc;
|
||||
background-color: #333333;
|
||||
border-bottom: 0px;
|
||||
}
|
||||
|
||||
table>tbody>tr>td,
|
||||
table>tfoot>tr>td,
|
||||
table>thead>tr>td {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
fieldset>table>tbody>tr:nth-of-type(2n) {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
table>tbody>tr>td,
|
||||
table>tfoot>tr>td,
|
||||
table>thead>tr>td {
|
||||
border-top: 1px solid #252526;
|
||||
}
|
||||
|
||||
#swaptotal>div>div,
|
||||
#swapfree>div>div,
|
||||
#memfree>div>div,
|
||||
#membuff>div>div,
|
||||
#conns>div>div,
|
||||
#memtotal>div>div {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
#swaptotal>div>div>div>small,
|
||||
#swapfree>div>div>div>small,
|
||||
#memfree>div>div>div>small,
|
||||
#membuff>div>div>div>small,
|
||||
#conns>div>div>div>small,
|
||||
#memtotal>div>div>div>small {
|
||||
color: #ccc !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last {
|
||||
line-height: 1.8em;
|
||||
|
||||
div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] {
|
||||
border: 1px solid #999999 !important;
|
||||
background-color: transparent !important;
|
||||
|
||||
div {
|
||||
background-color: #32325d !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
table>tbody>tr>th,
|
||||
table>tfoot>tr>th,
|
||||
table>thead>tr>th {
|
||||
background-color: #252526;
|
||||
border-top: none;
|
||||
border-bottom: black 1px solid !important;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-2 {
|
||||
background-color: #2c2c2c !important;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-1 {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.cbi-section>h3:first-child,
|
||||
.panel-title {
|
||||
color: #ccc;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
|
||||
background-color: #1e1e1f;
|
||||
}
|
||||
|
||||
.cbi-button {
|
||||
color: #ccc;
|
||||
background-color: #2c2c2c;
|
||||
}
|
||||
|
||||
.cbi-rowstyle-2 .cbi-button-up,
|
||||
.cbi-rowstyle-2 .cbi-button-down {
|
||||
background-color: #252526 !important;
|
||||
}
|
||||
|
||||
.cbi-section-node {
|
||||
background: none;
|
||||
border-radius: 0 0 .375rem .375rem;
|
||||
padding: 0rem;
|
||||
}
|
||||
|
||||
abbr {
|
||||
color: #8898aa;
|
||||
}
|
||||
|
||||
div>table>tbody>tr:nth-of-type(2n),
|
||||
div>.table>.tbody>.tr:nth-of-type(2n) {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
/* file selector button */
|
||||
::file-selector-button {
|
||||
border: 1px solid darkseagreen !important;
|
||||
background-color: darkseagreen !important;
|
||||
}
|
||||
|
||||
/* Fix background color of table-titles */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-section-table-titles th {
|
||||
background-color: #1e1e1e;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color of table-descr */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-section-table-descr th {
|
||||
background-color: #333333;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color not change when the H tag is in the table rowstyle-1 */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-rowstyle-1 th {
|
||||
background-color: #252526;
|
||||
border-top: 1px solid #252526;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
/* Fix background color not change when the H tag is in the table rowstyle-2 */
|
||||
.cbi-section-node>.cbi-section-table>tbody>.cbi-rowstyle-2 th {
|
||||
background-color: #2c2c2c;
|
||||
border-top: 1px solid #252526;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
/* Change the color of the H label in the table to make it more visible */
|
||||
th h1, td h1,
|
||||
th h2, td h2,
|
||||
th h3, td h3,
|
||||
th h4, td h4,
|
||||
th h5, td h5,
|
||||
th h6, td h6 {
|
||||
background: var(--gray-dark);
|
||||
}
|
||||
|
||||
/* Improved the background color of each itemes in "UNSAVED CHANGES" (dark mode only) */
|
||||
.uci-change-list del,
|
||||
.uci-change-legend-label del {
|
||||
background-color: #fb74008c;
|
||||
}
|
||||
.uci-change-list var,
|
||||
.uci-change-legend-label var {
|
||||
background-color: #333333;
|
||||
}
|
||||
.uci-change-list ins,
|
||||
.uci-change-legend-label ins {
|
||||
background-color: #00ff0a45 !important;
|
||||
}
|
||||
|
||||
#content_syslog {
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35)
|
||||
}
|
||||
|
||||
#syslog {
|
||||
color: #ccc;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
#iwsvg,
|
||||
#iwsvg2,
|
||||
#bwsvg {
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.tabs>li:hover,
|
||||
.tabs>li[class~="active"],
|
||||
.cbi-tabmenu>li:hover,
|
||||
.cbi-tabmenu>li[class~="cbi-tab"] {
|
||||
border-bottom: .18751rem solid var(--dark-primary);
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
.tabs>li>a,
|
||||
.cbi-tabmenu>li>a {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu>li>a:hover,
|
||||
.cbi-tabmenu>li:hover>a,
|
||||
.cbi-tabmenu>.cbi-tab>a,
|
||||
.tabs>li>a:hover,
|
||||
.tabs>li:hover>a,
|
||||
.tabs>li[class~="active"]>a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.cbi-tabmenu>li {
|
||||
background: #2d2d2d;
|
||||
}
|
||||
|
||||
.cbi-tabmenu {
|
||||
border-bottom: 0px solid #ddd !important;
|
||||
}
|
||||
|
||||
.cbi-tab-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-tabcontainer>.cbi-value:nth-of-type(2n),
|
||||
.cbi-tabcontainer>.cbi-value:nth-of-type(2n)>textarea {
|
||||
background-color: #252526;
|
||||
}
|
||||
|
||||
.cbi-value-title {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
select,
|
||||
input {
|
||||
color: #ccc;
|
||||
background-color: transparent;
|
||||
border: 1px solid #3c3c3c !important;
|
||||
box-shadow: 0 3px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
background-color: transparent;
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
select {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
#cbi-dropbear h2,
|
||||
#cbi-dropbear .cbi-map-descr,
|
||||
#cbi-dropbear .cbi-map-descr abbr,
|
||||
#cbi-rc h2,
|
||||
#cbi-rc .cbi-map-descr,
|
||||
#cbi-distfeedconf h2,
|
||||
#cbi-distfeedconf .cbi-map-descr,
|
||||
#cbi-customfeedconf h2,
|
||||
#cbi-customfeedconf .cbi-map-descr,
|
||||
#cbi-download h2,
|
||||
#cbi-filelist h2 {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.cbi-value-field>ul>li .ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
.cbi-section-descr {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
/*textarea for dark mode*/
|
||||
textarea {
|
||||
border: 1px solid #3c3c3c !important;
|
||||
background-color: #1e1e1e;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.cbi-section-remove:nth-of-type(2n),
|
||||
.cbi-section-node:nth-of-type(2n) {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.node-system-packages>.main table tr td:nth-last-child(1) {
|
||||
color: #ccc;
|
||||
}
|
||||
.node-system-packages > .main .cbi-value > pre {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.cbi-section-node .cbi-value {
|
||||
padding: 1rem 1rem 0.3rem 1rem;
|
||||
}
|
||||
|
||||
.ifacebox {
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #1e1e1e;
|
||||
}
|
||||
|
||||
.ifacebox-head {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.ifacebox-body {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.zonebadge strong {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.zonebadge>.ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
/* Fix firewall zone: "unspecified -or- create: " background color (dark mode only) */
|
||||
div[onclick$="._fwzone_new').checked=true"] {
|
||||
border: 1px solid #3c3c3c;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Improve the background color of "Any zone" and "Device" when ADD/EDIT Rules in Firewall > Traffic Rules (dark mode only) */
|
||||
label[for$=".src_any"],
|
||||
label[for$=".dest_empty"],
|
||||
label[for$=".dest_any"] {
|
||||
background-color: #2888db !important;
|
||||
}
|
||||
|
||||
/* Fix/add background color of wireless signal strength badge for dark mode */
|
||||
td>.ifacebadge,
|
||||
.td>.ifacebadge {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
|
||||
/* Improved loading process gif color (dark mode only) */
|
||||
img[src="/luci-static/resources/icons/loading.gif"] {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
color: #483d8b;
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
#diag-rc-output>pre {
|
||||
color: #ccc;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.node-services-vssr .block {
|
||||
background-color: #1e1e1e !important;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35) !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .block h4 {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .status-bar {
|
||||
color: #ccc;
|
||||
background: #333333f0;
|
||||
box-shadow: #00000094 10px 10px 30px 5px;
|
||||
}
|
||||
|
||||
.node-services-vssr .cbi-section-table-row {
|
||||
color: #ccc;
|
||||
background-color: #3c3c3c !important;
|
||||
box-shadow: 0 0 5px 0 rgba(0, 0, 0, .35)
|
||||
}
|
||||
|
||||
.node-services-vssr .cbi-section-table-row.fast {
|
||||
background: #483d8b !important;
|
||||
background: var(--dark-primary) !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.node-services-vssr .ssr-button {
|
||||
color: #ccc;
|
||||
|
||||
}
|
||||
|
||||
.node-services-vssr .incon:nth-child(2) {
|
||||
border-right: #1e1e1e 1px solid;
|
||||
}
|
||||
|
||||
.main .main-right #maincontent .container p {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
#xhr_poll_status>.label.success {
|
||||
color: #ccc !important;
|
||||
|
||||
background-color: darkolivegreen !important;
|
||||
}
|
||||
|
||||
/* Define the warning background-color breathe display animation (dark mode) */
|
||||
@keyframes warning-background-color-breathe-dark {
|
||||
0%{
|
||||
color: #fff;
|
||||
background-color: darkorange;
|
||||
}
|
||||
50%{
|
||||
color: #ccc;
|
||||
background-color: #333333;
|
||||
}
|
||||
100%{
|
||||
color: #fff;
|
||||
background-color: darkorange;
|
||||
}
|
||||
}
|
||||
.warning,
|
||||
.warning * {
|
||||
animation: warning-background-color-breathe-dark 1.5s ease-in-out infinite !important;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
/* Improved the aleart-message background color during device restart (dark mode only) */
|
||||
.errorbox,
|
||||
.alert-message {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.cbi-input-find,
|
||||
.cbi-input-save,
|
||||
.cbi-button-add,
|
||||
.cbi-button-save,
|
||||
.cbi-button-find,
|
||||
.cbi-input-reload,
|
||||
.cbi-button-reload {
|
||||
background-color: darkseagreen !important;
|
||||
border-color: darkseagreen !important;
|
||||
}
|
||||
|
||||
.cbi-button-reset,
|
||||
.cbi-input-remove {
|
||||
color: #fff !important;
|
||||
background-color: darkorange !important;
|
||||
border-color: darkorange !important;
|
||||
}
|
||||
|
||||
.cbi-page-actions .cbi-button-apply,
|
||||
.cbi-section-actions .cbi-button-edit,
|
||||
.cbi-button-edit.important,
|
||||
.cbi-button-apply.important,
|
||||
.cbi-button-reload.important,
|
||||
.cbi-button-action.important {
|
||||
border: 1px #483d8b solid !important;
|
||||
border: 1px var(--dark-primary) solid !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
fieldset[id^="cbi-apply-"] {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
#detail-bubble>div {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
padding: 5px;
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
/* Define the error text border breathe display animation (dark mode) */
|
||||
@keyframes error-border-breathe-dark {
|
||||
0%{
|
||||
border-color: darkorange;
|
||||
}
|
||||
50%{
|
||||
border-color: transparent;
|
||||
}
|
||||
100%{
|
||||
border-color: darkorange;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add border for error text box, and border breathe display animation to make it more noticeable (dark mode) */
|
||||
.cbi-section-error>ul>li {
|
||||
color: darkorange;
|
||||
border: 2px solid darkorange ;
|
||||
animation: error-border-breathe-dark 1.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.cbi-input-invalid,
|
||||
.cbi-value-error input {
|
||||
color: darkorange;
|
||||
border: 1px dashed darkorange !important;
|
||||
}
|
||||
|
||||
.node-services-vssr .block h4 span{
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
/* luci-app-passwall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
|
||||
/* luci-app-bypass */
|
||||
#cbi-bypass .status-bar {
|
||||
color: #ccc;
|
||||
background: #333333f0;
|
||||
box-shadow: #00000094 10px 10px 30px 5px;
|
||||
}
|
||||
|
||||
/* luci-app-clash */
|
||||
#cbi-clash .cbi-section .pure-u-1-4 .pure-g,
|
||||
#cbi-clash .cbi-section .siz .pure-g {
|
||||
background-color: #1e1e1e !important;
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35) !important;
|
||||
}
|
||||
|
||||
/* luci-app-openclash */
|
||||
#cbi-openclash #eye-icon,
|
||||
#cbi-openclash img[title="刷新"] {
|
||||
filter: invert(100%);
|
||||
}
|
||||
#cbi-openclash #cbi-openclash-config fieldset[control-id="ControlID-46"],
|
||||
#cbi-openclash .CodeMirror-merge-copybuttons-right,
|
||||
.CodeMirror-scroll {
|
||||
background-color: #333333 !important;
|
||||
}
|
||||
#cbi-openclash .cbi-section .cbi-tabmenu li {
|
||||
border-right: 1px solid #3c3c3c !important;
|
||||
}
|
||||
#cbi-openclash .CodeMirror-merge {
|
||||
border: 1px solid transparent !important;
|
||||
}
|
||||
#cbi-openclash-config-clog .cbi-section {
|
||||
border: 1px solid #3c3c3c !important;
|
||||
}
|
||||
#cbi-openclash .CodeMirror-gutters {
|
||||
border-right: 1px solid #3c3c3c !important;
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
/* luci-app-dockerman */
|
||||
#cbi-dockerd .img-con img {
|
||||
filter: invert(0.4);
|
||||
}
|
||||
|
||||
/* luci-app-istorex (interface config[NetworkPort]) */
|
||||
#cbi-nfs-mount .app-container_status-label_bg {
|
||||
background: #333333;
|
||||
}
|
||||
#cbi-nfs-mount td svg {
|
||||
filter: invert(0.3);
|
||||
}
|
||||
#actioner .actioner-dns {
|
||||
background-color: #333333;
|
||||
}
|
||||
#actioner .actioner-dns_header,
|
||||
#actioner .actioner-container_header {
|
||||
border-bottom: 1px solid #cbcbcb !important;
|
||||
}
|
||||
#actioner .actioner-dns_footer {
|
||||
border-top: 1px solid #cbcbcb !important;
|
||||
}
|
||||
|
||||
/* luci-app-istorex (Network Guide) */
|
||||
#app #main #page .title,
|
||||
#app #main #page .desc {
|
||||
color: #cccccc;
|
||||
background-color: #333333;
|
||||
}
|
||||
#app #main #page .network-message li:not(span):not(a) {
|
||||
color: #8d8d8d;
|
||||
}
|
||||
#app #main #page code {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
/* luci-app-istorex (Quick Start) */
|
||||
#app #main #page .network-container_flow-container,
|
||||
#app #main #page .app-container_status-container,
|
||||
#app #main #page .nas-container .nas-container_card .app-container,
|
||||
#app #main #page .app-container {
|
||||
background-color: #333333;
|
||||
}
|
||||
#app #main #page .flow-data span,
|
||||
#app #main #page .app-container_status-label_block span,
|
||||
#app #main #page .app-container .item-label span:not(#app #main #page .app-container .progress-value span) {
|
||||
color: #cccccc;
|
||||
}
|
||||
#app #main #page .app-container_status-info span,
|
||||
#app #main #page .app-container_status-info span,
|
||||
#app #main #page .app-container_title span {
|
||||
color: #dddddd;
|
||||
}
|
||||
.app-container_body .app-container_status-label_bg {
|
||||
background-color: #282828 !important;
|
||||
}
|
||||
#app #main #page .item-label_value .progress {
|
||||
background-color: rgb(118, 118, 118);
|
||||
}
|
||||
#app #main #page .app-container_nas-menu button[class=""] {
|
||||
background-color: #8b8b8b;
|
||||
}
|
||||
#app #main #page .app-container_nas-menu button[class="on"] {
|
||||
background-color: #555555;
|
||||
}
|
||||
#app #main #page .app-container_title .DeviceBlock ul {
|
||||
background-color: #cccccc;
|
||||
}
|
||||
#actioner div.action,
|
||||
#actioner div.actioner-container {
|
||||
background-color: #3c3c3c;
|
||||
}
|
||||
#actioner div.action .title {
|
||||
color: #cccccc;
|
||||
}
|
||||
#actioner div.action .desc {
|
||||
color: #cbcbcb;
|
||||
}
|
||||
#actioner div.action div.roots span,
|
||||
#actioner div.action div.move span:not(span.tip),
|
||||
#actioner div.action div.left span,
|
||||
#actioner div.action div.input_row span,
|
||||
#actioner div.label-item label span {
|
||||
color: #cbcbcb;
|
||||
}
|
||||
#actioner div.action span.tooltip-trigger svg path {
|
||||
fill: #cbcbcb;
|
||||
}
|
||||
#actioner div.actioner-dns_body div.label-item_value select {
|
||||
height: 43px;
|
||||
}
|
||||
#actioner div.actioner-container_footer div.close {
|
||||
color: #ffffff;
|
||||
}
|
||||
#app #main div.app-container div.app-container_title span a svg path,
|
||||
#app #main #page span.disk_infoicon svg g {
|
||||
fill: #8b8b8b;
|
||||
}
|
||||
|
||||
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
|
||||
.login-page .login-container .login-form {
|
||||
-webkit-backdrop-filter: blur(var(--blur-radius-dark));
|
||||
backdrop-filter: blur(var(--blur-radius-dark));
|
||||
background-color: rgba(0, 0, 0, var(--blur-opacity-dark));
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 480px) {
|
||||
.node-status-iptables>.main div>.cbi-map>form {
|
||||
background-color: #1e1e1e;
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
|
||||
}
|
||||
}
|
79
luci-theme-argon/luasrc/view/themes/argon/footer.htm
Normal file
@ -0,0 +1,79 @@
|
||||
<%#
|
||||
Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material Argon Template
|
||||
|
||||
luci-theme-argon
|
||||
Copyright 2020 Jerrykuku <jerrykuku@qq.com>
|
||||
|
||||
Have a bug? Please create an issue here on GitHub!
|
||||
https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
|
||||
luci-theme-bootstrap:
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
|
||||
MUI:
|
||||
https://github.com/muicss/mui
|
||||
|
||||
luci-theme-material:
|
||||
https://github.com/LuttyYang/luci-theme-material/
|
||||
|
||||
Argon Theme
|
||||
https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
|
||||
Login background
|
||||
https://unsplash.com/
|
||||
|
||||
Font generate by Icomoon
|
||||
https://icomoon.io/
|
||||
|
||||
Licensed to the public under the Apache License 2.0
|
||||
-%>
|
||||
|
||||
<%
|
||||
local ver = require "luci.version"
|
||||
local disp = require "luci.dispatcher"
|
||||
local request = disp.context.path
|
||||
local category = request[1]
|
||||
local tree = disp.node()
|
||||
local categories = disp.node_childs(tree)
|
||||
%>
|
||||
</div>
|
||||
<footer>
|
||||
<div class="ftc">
|
||||
<a class="luci-link" href="https://github.com/openwrt/luci" target="_blank">Powered by <%= ver.luciname %>
|
||||
(<%= ver.luciversion %>)</a> /
|
||||
<a href="https://github.com/jerrykuku/luci-theme-argon" target="_blank">ArgonTheme <%# vPKG_VERSION %></a> /
|
||||
<%= ver.distversion %>
|
||||
<% if #categories > 1 then %>
|
||||
<ul class="breadcrumb pull-right" id="modemenu">
|
||||
<% for i, r in ipairs(categories) do %>
|
||||
<li<% if request[1] == r then %> class="active" <%end%>><a
|
||||
href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a> <span
|
||||
class="divider">|</span></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
if (window.innerHeight < 660) {
|
||||
document.getElementsByClassName("ftc")[0].style.display = "none";
|
||||
} else {
|
||||
document.getElementsByClassName("ftc")[0].style.display = "block";
|
||||
}
|
||||
|
||||
window.addEventListener('resize', function() {
|
||||
if (window.innerHeight < 660) {
|
||||
document.getElementsByClassName("ftc")[0].style.display = "none";
|
||||
} else {
|
||||
document.getElementsByClassName("ftc")[0].style.display = "block";
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<script src="<%=media%>/js/styles-argon.js<%# ?v=PKG_VERSION %>"></script>
|
||||
</body>
|
||||
</html>
|
331
luci-theme-argon/luasrc/view/themes/argon/header.htm
Normal file
@ -0,0 +1,331 @@
|
||||
<%#
|
||||
Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI and Argon Template
|
||||
|
||||
luci-theme-argon
|
||||
Copyright 2020 Jerryk <jerrykuku@gmail.com>
|
||||
|
||||
Have a bug? Please create an issue here on GitHub!
|
||||
https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
|
||||
luci-theme-bootstrap:
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
|
||||
MUI:
|
||||
https://github.com/muicss/mui
|
||||
|
||||
Argon Theme
|
||||
https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
|
||||
Licensed to the public under the Apache License 2.0
|
||||
-%>
|
||||
|
||||
<%
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
local http = require "luci.http"
|
||||
local disp = require "luci.dispatcher"
|
||||
local fs = require "nixio.fs"
|
||||
local nutil = require "nixio.util"
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
|
||||
local boardinfo = util.ubus("system", "board")
|
||||
|
||||
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
|
||||
|
||||
-- send as HTML5
|
||||
http.prepare_content("text/html")
|
||||
|
||||
local function nodeurl(prefix, name, query)
|
||||
local u = url(prefix, name)
|
||||
if query then
|
||||
u = u .. http.build_querystring(query)
|
||||
end
|
||||
return pcdata(u)
|
||||
end
|
||||
|
||||
local function render_tabmenu(prefix, node, level)
|
||||
if not level then
|
||||
level = 1
|
||||
end
|
||||
|
||||
local childs = disp.node_childs(node)
|
||||
if #childs > 0 then
|
||||
if level > 2 then
|
||||
write('<ul class="tabs">')
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
if level > 2 then
|
||||
write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
|
||||
v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
|
||||
nodeurl(prefix, v, nnode.query),
|
||||
striptags(translate(nnode.title))
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if level > 2 then
|
||||
write('</ul>')
|
||||
end
|
||||
|
||||
if selected_node then
|
||||
render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function render_submenu(prefix, node)
|
||||
local childs = disp.node_childs(node)
|
||||
if #childs > 0 then
|
||||
write('<ul class="slide-menu">')
|
||||
|
||||
for i, r in ipairs(childs) do
|
||||
local nnode = node.nodes[r]
|
||||
local title = pcdata(striptags(translate(nnode.title)))
|
||||
|
||||
write('<li><a data-title="%s" href="%s">%s</a></li>' %{
|
||||
title,
|
||||
nodeurl(prefix, r, nnode.query),
|
||||
title
|
||||
})
|
||||
end
|
||||
|
||||
write('</ul>')
|
||||
end
|
||||
end
|
||||
|
||||
local function render_topmenu()
|
||||
local childs = disp.node_childs(cattree)
|
||||
if #childs > 0 then
|
||||
write('<ul class="nav">')
|
||||
|
||||
for i, r in ipairs(childs) do
|
||||
local nnode = cattree.nodes[r]
|
||||
local grandchildren = disp.node_childs(nnode)
|
||||
|
||||
if #grandchildren > 0 then
|
||||
local title = pcdata(striptags(translate(nnode.title)))
|
||||
local en_title = pcdata(striptags(string.gsub(nnode.title," ","_")))
|
||||
write('<li class="slide"><a class="menu" data-title="%s" href="#">%s</a>' %{
|
||||
en_title,
|
||||
title
|
||||
})
|
||||
|
||||
render_submenu(category .. "/" .. r, nnode)
|
||||
write('</li>')
|
||||
else
|
||||
local title = pcdata(striptags(translate(nnode.title)))
|
||||
local en_title = pcdata(striptags(nnode.title))
|
||||
write('<li class="slide"><a class="menu exit" data-title="%s" href="%s">%s</a></li>' %{
|
||||
en_title,
|
||||
nodeurl(category, r, nnode.query),
|
||||
title
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
write('</ul>')
|
||||
end
|
||||
end
|
||||
|
||||
local function render_changes()
|
||||
-- calculate the number of unsaved changes
|
||||
if tree.nodes[category] and tree.nodes[category].ucidata then
|
||||
local ucichanges = 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
|
||||
ucichanges = ucichanges + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ucichanges > 0 then
|
||||
write('<a class="uci_change_indicator label notice" href="%s?redir=%s">%s: %d</a>' %{
|
||||
url(category, 'uci/changes'),
|
||||
http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
|
||||
translate('Unsaved Changes'),
|
||||
ucichanges
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
math.randomseed(os.time())
|
||||
|
||||
-- Custom settings
|
||||
local mode = 'normal'
|
||||
local dark_css = fs.readfile('/www/luci-static/argon/css/dark.css')
|
||||
local bar_color = '#5e72e4'
|
||||
local primary, dark_primary, blur_radius, blur_radius_dark, blur_opacity
|
||||
if fs.access('/etc/config/argon') then
|
||||
primary = uci:get_first('argon', 'global', 'primary')
|
||||
dark_primary = uci:get_first('argon', 'global', 'dark_primary')
|
||||
blur_radius = uci:get_first('argon', 'global', 'blur')
|
||||
blur_radius_dark = uci:get_first('argon', 'global', 'blur_dark')
|
||||
blur_opacity = uci:get_first('argon', 'global', 'transparency')
|
||||
blur_opacity_dark = uci:get_first('argon', 'global', 'transparency_dark')
|
||||
mode = uci:get_first('argon', 'global', 'mode')
|
||||
bar_color = mode == 'dark' and dark_primary or primary
|
||||
end
|
||||
|
||||
|
||||
-%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%=luci.i18n.context.lang%>">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>
|
||||
<%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %>
|
||||
- LuCI</title>
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
|
||||
<meta name="format-detection" content="telephone=no, email=no" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="x5-fullscreen" content="true">
|
||||
<meta name="full-screen" content="yes">
|
||||
<meta name="x5-page-mode" content="app">
|
||||
<meta name="browsermode" content="application">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="msapplication-TileColor" content="<%=bar_color%>">
|
||||
|
||||
<meta name="application-name" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
|
||||
<meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="<%=media%>/icon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="<%=media%>/icon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="<%=media%>/icon/apple-icon-144x144.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="<%=media%>/icon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="<%=media%>/icon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="<%=media%>/icon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<%=media%>/icon/favicon-16x16.png">
|
||||
<link rel="manifest" href="<%=media%>/icon/manifest.json" crossorigin="use-credentials">
|
||||
<meta name="msapplication-TileColor" content="<%=bar_color%>">
|
||||
<meta name="msapplication-TileImage" content="<%=media%>/icon/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="<%=bar_color%>">
|
||||
<link rel="stylesheet" href="<%=media%>/css/cascade.css<%# ?v=PKG_VERSION %>">
|
||||
<style title="text/css">
|
||||
<% if mode == 'normal' then %>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
<%=dark_css%>
|
||||
}
|
||||
<% elseif mode == 'dark' then %>
|
||||
<%=dark_css%>
|
||||
<% end -%>
|
||||
<% if fs.access('/etc/config/argon') then %>
|
||||
:root {
|
||||
--primary: <%=primary%>;
|
||||
--dark-primary: <%=dark_primary%>;
|
||||
--blur-radius:<%=blur_radius%>px;
|
||||
--blur-opacity:<%=blur_opacity%>;
|
||||
--blur-radius-dark:<%=blur_radius_dark%>px;
|
||||
--blur-opacity-dark:<%=blur_opacity_dark%>;
|
||||
}
|
||||
<% end -%>
|
||||
</style>
|
||||
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
|
||||
<% if node and node.css then %>
|
||||
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
|
||||
<% end -%>
|
||||
<% if css then %>
|
||||
<style title="text/css"><%=css %></style>
|
||||
<% end -%>
|
||||
<script src="<%=resource%>/cbi.js<%# ?v=PKG_VERSION %>"></script>
|
||||
<script src="<%=resource%>/xhr.js<%# ?v=PKG_VERSION %>"></script>
|
||||
<script src="<%=media%>/js/jquery.min.js?v=3.5.1"></script>
|
||||
<script src="<%=media%>/js/color_calc-argon.js<%# ?v=PKG_VERSION %>"></script>
|
||||
</head>
|
||||
|
||||
<body
|
||||
class="<%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %> lang_<%=luci.i18n.context.lang%> <%=mode %> ">
|
||||
|
||||
<div class="main">
|
||||
<div class="main-left">
|
||||
<div class="sidenav-header d-flex align-items-center">
|
||||
<a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
|
||||
</div>
|
||||
<% render_topmenu() %>
|
||||
</div>
|
||||
<div class="main-right">
|
||||
<header class="bg-primary">
|
||||
<div class="fill">
|
||||
<div class="container">
|
||||
<a class="showSide"></a>
|
||||
<a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
|
||||
<div class="pull-right">
|
||||
<% render_changes() %>
|
||||
<span id="xhr_poll_status" style="display:none"
|
||||
onclick="XHR.running() ? XHR.halt() : XHR.run()">
|
||||
<span class="label success" id="xhr_poll_status_on"><span
|
||||
class="mobile-hide"><%:Auto Refresh%></span> <%:on%></span>
|
||||
<span class="label" id="xhr_poll_status_off" style="display:none"><span
|
||||
class="mobile-hide"><%:Auto Refresh%></span> <%:off%></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="darkMask"></div>
|
||||
<div id="maincontent">
|
||||
<div class="container">
|
||||
<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
|
||||
<div class="alert-message warning">
|
||||
<h4><%:No password set!%></h4>
|
||||
<p><%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%>
|
||||
</p>
|
||||
<div class="right"><a class="btn"
|
||||
href="<%=url("admin/system/admin")%>"><%:Go to password configuration...%></a></div>
|
||||
</div>
|
||||
<%- end -%>
|
||||
|
||||
<noscript>
|
||||
<div class="alert-message warning">
|
||||
<h4><%:JavaScript required!%></h4>
|
||||
<p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
<% if category then render_tabmenu(category, cattree) end %>
|
||||
|
||||
<script>
|
||||
// thanks for Jo-Philipp Wich <jow@openwrt.org>
|
||||
var luciLocation = <%= luci.http.write_json(luci.dispatcher.context.path) %>;
|
||||
</script>
|
||||
|
||||
<script src="<%=media%>/js/menu-argon.js<%# ?v=PKG_VERSION %>"></script>
|
||||
|
||||
<script src="<%=media%>/js/sidebar-argon.js<%# ?v=PKG_VERSION %>"></script>
|
136
luci-theme-argon/luasrc/view/themes/argon/header_login.htm
Normal file
@ -0,0 +1,136 @@
|
||||
<%#
|
||||
Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI and Argon Template
|
||||
|
||||
luci-theme-argon
|
||||
Copyright 2020 Jerrykuku <jerrykuku@qq.com>
|
||||
|
||||
Have a bug? Please create an issue here on GitHub!
|
||||
https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
|
||||
luci-theme-bootstrap:
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
|
||||
MUI:
|
||||
https://github.com/muicss/mui
|
||||
|
||||
Argon Theme
|
||||
https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
|
||||
Licensed to the public under the Apache License 2.0
|
||||
-%>
|
||||
|
||||
<%
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
local http = require "luci.http"
|
||||
local disp = require "luci.dispatcher"
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local nutil = require "nixio.util"
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
local boardinfo = util.ubus("system", "board")
|
||||
|
||||
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
|
||||
|
||||
math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 9)))
|
||||
|
||||
-- Custom settings
|
||||
local mode = 'normal'
|
||||
local dark_css = fs.readfile('/www/luci-static/argon/css/dark.css')
|
||||
local bar_color = '#5e72e4'
|
||||
local primary, dark_primary, blur_radius, blur_radius_dark, blur_opacity
|
||||
if fs.access('/etc/config/argon') then
|
||||
primary = uci:get_first('argon', 'global', 'primary')
|
||||
dark_primary = uci:get_first('argon', 'global', 'dark_primary')
|
||||
blur_radius = uci:get_first('argon', 'global', 'blur')
|
||||
blur_radius_dark = uci:get_first('argon', 'global', 'blur_dark')
|
||||
blur_opacity = uci:get_first('argon', 'global', 'transparency')
|
||||
blur_opacity_dark = uci:get_first('argon', 'global', 'transparency_dark')
|
||||
mode = uci:get_first('argon', 'global', 'mode')
|
||||
bar_color = mode == 'dark' and dark_primary or primary
|
||||
end
|
||||
-%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%=luci.i18n.context.lang%>">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>
|
||||
<%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI
|
||||
</title>
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
|
||||
<meta name="format-detection" content="telephone=no, email=no" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="x5-fullscreen" content="true">
|
||||
<meta name="full-screen" content="yes">
|
||||
<meta name="x5-page-mode" content="app">
|
||||
<meta name="browsermode" content="application">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="msapplication-TileColor" content="<%=bar_color%>">
|
||||
<meta name="application-name" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
|
||||
<meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="<%=media%>/icon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="<%=media%>/icon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="<%=media%>/icon/apple-icon-144x144.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="<%=media%>/icon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="<%=media%>/icon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="<%=media%>/icon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<%=media%>/icon/favicon-16x16.png">
|
||||
<link rel="manifest" href="<%=media%>/icon/manifest.json" crossorigin="use-credentials">
|
||||
<meta name="msapplication-TileColor" content="<%=bar_color%>">
|
||||
<meta name="msapplication-TileImage" content="<%=media%>/icon/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="<%=bar_color%>">
|
||||
<link rel="stylesheet" href="<%=media%>/css/cascade.css<%# ?v=PKG_VERSION %>">
|
||||
<style title="text/css">
|
||||
<% if mode == 'normal' then %>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
<%=dark_css%>
|
||||
}
|
||||
<% elseif mode == 'dark' then %>
|
||||
<%=dark_css%>
|
||||
<% end -%>
|
||||
<% if fs.access('/etc/config/argon') then %>
|
||||
:root {
|
||||
--primary: <%=primary%>;
|
||||
--dark-primary: <%=dark_primary%>;
|
||||
--blur-radius:<%=blur_radius%>px;
|
||||
--blur-opacity:<%=blur_opacity%>;
|
||||
--blur-radius-dark:<%=blur_radius_dark%>px;
|
||||
--blur-opacity-dark:<%=blur_opacity_dark%>;
|
||||
}
|
||||
<% end -%>
|
||||
</style>
|
||||
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
|
||||
<% if node and node.css then %>
|
||||
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
|
||||
<% end -%>
|
||||
<% if css then %>
|
||||
<style title="text/css">
|
||||
<%=css %>
|
||||
</style>
|
||||
<% end -%>
|
||||
<script src="<%=resource%>/cbi.js<%# ?v=PKG_VERSION %>"></script>
|
||||
<script src="<%=resource%>/xhr.js<%# ?v=PKG_VERSION %>"></script>
|
||||
<script src="<%=media%>/js/jquery.min.js?v=3.5.1"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="<%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %> lang_<%=luci.i18n.context.lang%> ">
|
||||
|
@ -0,0 +1,12 @@
|
||||
<%#
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2019 Jo-Philipp Wich <jo@mein.io>
|
||||
Licensed to the public under the Apache License 2.0.
|
||||
-%>
|
||||
|
||||
<%
|
||||
if not luci.dispatcher.context.template_header_sent then
|
||||
include("themes/" .. theme .. "/header_login")
|
||||
luci.dispatcher.context.template_header_sent = true
|
||||
end
|
||||
%>
|
186
luci-theme-argon/luasrc/view/themes/argon/sysauth.htm
Normal file
@ -0,0 +1,186 @@
|
||||
<%#
|
||||
Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI and Argon Template
|
||||
|
||||
luci-theme-argon
|
||||
Copyright 2021 Jerryk <jerrykuku@gmail.com>
|
||||
|
||||
Have a bug? Please create an issue here on GitHub!
|
||||
https://github.com/jerrykuku/luci-theme-argon/issues
|
||||
|
||||
luci-theme-bootstrap:
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Copyright 2012 David Menting <david@nut-bolt.nl>
|
||||
|
||||
MUI:
|
||||
https://github.com/muicss/mui
|
||||
|
||||
Argon Theme
|
||||
https://demos.creative-tim.com/argon-dashboard/index.html
|
||||
|
||||
Licensed to the public under the Apache License 2.0
|
||||
-%>
|
||||
|
||||
<%+header_login%>
|
||||
<%
|
||||
local util = require "luci.util"
|
||||
local fs = require "nixio.fs"
|
||||
local nutil = require "nixio.util"
|
||||
local json = require "luci.jsonc"
|
||||
local sys = require "luci.sys"
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
|
||||
-- Fetch Local Background Media
|
||||
|
||||
local function glob(...)
|
||||
local iter, code, msg = fs.glob(...)
|
||||
if iter then
|
||||
return nutil.consume(iter)
|
||||
else
|
||||
return nil, code, msg
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local imageTypes = " jpg png gif webp "
|
||||
local videoTypes = " mp4 webm "
|
||||
local allTypes = imageTypes .. videoTypes
|
||||
local function fetchMedia(path, themeDir)
|
||||
local backgroundTable = {}
|
||||
local backgroundCount = 0
|
||||
for i, f in ipairs(glob(path)) do
|
||||
attr = fs.stat(f)
|
||||
if attr then
|
||||
local ext = fs.basename(f):match(".+%.(%w+)$")
|
||||
if ext ~= nil then
|
||||
ext = ext:lower()
|
||||
end
|
||||
if ext ~= nil and string.match(allTypes, " "..ext.." ") ~= nil then
|
||||
local bg = {}
|
||||
bg.type = ext
|
||||
bg.url = themeDir .. fs.basename(f)
|
||||
table.insert(backgroundTable, bg)
|
||||
backgroundCount = backgroundCount + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
return backgroundTable, backgroundCount
|
||||
end
|
||||
local function selectBackground(themeDir)
|
||||
local bgUrl = media .. "/img/bg1.jpg"
|
||||
local backgroundType = "Image"
|
||||
local mimeType = ""
|
||||
|
||||
if fs.access("/etc/config/argon") then
|
||||
local online_wallpaper = uci:get_first('argon', 'global', 'online_wallpaper') or (uci:get_first('argon', 'global', 'bing_background') == '1' and 'bing')
|
||||
if (online_wallpaper and online_wallpaper ~= "none") then
|
||||
local picurl = sys.exec("/usr/libexec/argon/online_wallpaper")
|
||||
if (picurl and picurl ~= '') then
|
||||
return picurl, "Image", ""
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local backgroundTable, backgroundCount = fetchMedia("/www" .. themeDir .. "*", themeDir)
|
||||
if ( backgroundCount > 0 ) then
|
||||
local currentBg = backgroundTable[math.random(1, backgroundCount)]
|
||||
bgUrl = currentBg.url
|
||||
if (string.match(videoTypes, " "..currentBg.type.." ") ~= nil) then
|
||||
backgroundType = "Video"
|
||||
mimeType = "video/" .. currentBg.type
|
||||
end
|
||||
end
|
||||
|
||||
return bgUrl, backgroundType, mimeType
|
||||
end
|
||||
|
||||
local boardinfo = util.ubus("system", "board")
|
||||
local themeDir = media .. "/background/"
|
||||
local bgUrl, backgroundType, mimeType = selectBackground(themeDir)
|
||||
%>
|
||||
<!-- Login Page Start -->
|
||||
<div class="login-page">
|
||||
<% if ( backgroundType == "Video" ) then %>
|
||||
<!-- Video Player Start -->
|
||||
<div class="video">
|
||||
<video autoplay loop muted id="video">
|
||||
<source src="<%=bgUrl%>" type="<%=mimeType%>">
|
||||
</video>
|
||||
</div>
|
||||
<div class="volume-control mute"></div>
|
||||
<script>
|
||||
$(".volume-control").click(function(){
|
||||
if($(this).hasClass("mute")){
|
||||
$(this).removeClass("mute")
|
||||
$("#video").prop('muted', false);
|
||||
}else{
|
||||
$(this).addClass("mute")
|
||||
$("#video").prop('muted', true);
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- Video Player End -->
|
||||
<% else %>
|
||||
<!-- Image Background Start -->
|
||||
<div class="main-bg" id="main-bg" style="background-image:url(<%=bgUrl%>)"></div>
|
||||
<!-- Image Background End -->
|
||||
<% end %>
|
||||
<!-- Login Container Start -->
|
||||
<div class="login-container">
|
||||
<div class="login-form">
|
||||
<!-- Logo Start -->
|
||||
<a class="brand" href="/"><img src="<%=media%>/img/argon.svg" class="icon"></a>
|
||||
<span class="brand-text"><%=striptags( (boardinfo.hostname or "?") ) %></span>
|
||||
<!-- Logo End -->
|
||||
<!-- Login Form Start -->
|
||||
<form class="form-login" method="post" action="<%=pcdata(luci.http.getenv("REQUEST_URI"))%>">
|
||||
|
||||
<%- if fuser then %>
|
||||
<div class="errorbox"><%:Invalid username and/or password! Please try again.%></div>
|
||||
<% end -%>
|
||||
|
||||
<div class="input-container">
|
||||
<div class="input-group user-icon">
|
||||
<input class="cbi-input-user" id="cbi-input-user" type="text" name="luci_username" value="<%=duser%>" />
|
||||
<label class="border" for="cbi-input-user"></label>
|
||||
</div>
|
||||
<div class="input-group pass-icon">
|
||||
<input class="cbi-input-password" id="cbi-input-password" type="password" name="luci_password" />
|
||||
<label class="border" for="cbi-input-password"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<input type="submit" value="<%:Login%>" class="cbi-button cbi-button-apply" />
|
||||
</div>
|
||||
</form>
|
||||
<!-- Login Form End -->
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
var input = document.getElementsByName('luci_password')[0];
|
||||
if (input)
|
||||
input.focus();
|
||||
//]]></script>
|
||||
<%
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
local fs = require "nixio.fs"
|
||||
local https_key = uci:get("uhttpd", "main", "key")
|
||||
local https_port = uci:get("uhttpd", "main", "listen_https")
|
||||
if type(https_port) == "table" then
|
||||
https_port = https_port[1]
|
||||
end
|
||||
|
||||
if https_port and fs.access(https_key) then
|
||||
https_port = https_port:match("(%d+)$")
|
||||
%>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
if (document.location.protocol != 'https:') {
|
||||
var url = 'https://' + window.location.hostname + ':' + '<%=https_port%>' + window.location.pathname;
|
||||
var img = new Image;
|
||||
img.onload = function () { window.location = url };
|
||||
img.src = 'https://' + window.location.hostname + ':' + '<%=https_port%>' + '<%=resource%>/cbi/up.gif?' + Math.random();;
|
||||
setTimeout(function () {
|
||||
img.src = ''
|
||||
}, 5000);
|
||||
}
|
||||
//]]></script>
|
||||
<% end %>
|
||||
<%+footer%>
|
12
luci-theme-argon/root/etc/uci-defaults/90_luci-theme-argon
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
sed -i ":a;$!N;s/tmpl.render.*sysauth_template.*return/local scope = { duser = default_user, fuser = user }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
|
||||
sed -i ":a;$!N;s/t.render.*sysauth_template.*return/local scope = { duser = h, fuser = a }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
|
||||
[ -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm /usr/lib/lua/luci/view/header_login.htm
|
||||
rm -Rf /var/luci-modulecache
|
||||
rm -Rf /var/luci-indexcache
|
||||
uci batch <<-EOF
|
||||
set luci.themes.Argon=/luci-static/argon
|
||||
set luci.main.mediaurlbase=/luci-static/argon
|
||||
commit luci
|
||||
EOF
|
||||
exit 0
|
70
luci-theme-argon/root/usr/libexec/argon/online_wallpaper
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/sh
|
||||
# author jjm2473
|
||||
|
||||
# the script will be excuted when `argon.@global[0].bing_background == '1'`
|
||||
# defaults to 'bing' to be compatible with old config
|
||||
WEB_PIC_SRC=$(uci -q get argon.@global[0].online_wallpaper || echo 'bing')
|
||||
CACHE=/var/run/argon_${WEB_PIC_SRC}.url
|
||||
WRLOCK=/var/lock/argon_${WEB_PIC_SRC}.lock
|
||||
|
||||
fetch_pic_url() {
|
||||
case $WEB_PIC_SRC in
|
||||
bing)
|
||||
local picpath=$(curl -fks --max-time 3 \
|
||||
"https://www.bing.com/HPImageArchive.aspx?format=js&n=1" |
|
||||
jsonfilter -q -e '@.images[0].url')
|
||||
[ -n "${picpath}" ] && echo "//www.bing.com${picpath}"
|
||||
;;
|
||||
unsplash)
|
||||
curl -fks --max-time 3 \
|
||||
"https://source.unsplash.com/1920x1080/daily?wallpapers" |
|
||||
sed -E 's#^.*href="([^?]+)\?.*$#\1?fm=jpg\&fit=crop\&w=1920\&h=1080#'
|
||||
;;
|
||||
unsplash_*)
|
||||
local collection_id=${WEB_PIC_SRC#unsplash_}
|
||||
curl -fks --max-time 3 \
|
||||
"https://source.unsplash.com/collection/${collection_id}/1920x1080" |
|
||||
sed -E 's#^.*href="([^?]+)\?.*$#\1?fm=jpg\&fit=crop\&w=1920\&h=1080#'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
try_update() {
|
||||
local lock="$WRLOCK"
|
||||
exec 200>$lock
|
||||
|
||||
if flock -n 200 >/dev/null 2>&1; then
|
||||
local picurl=$(fetch_pic_url)
|
||||
if [ -n "$picurl" ]; then
|
||||
echo "${picurl}" | tee "$CACHE"
|
||||
else
|
||||
if [ -s "$CACHE" ]; then
|
||||
cat "$CACHE"
|
||||
else
|
||||
touch "$CACHE"
|
||||
fi
|
||||
fi
|
||||
flock -u 200 >/dev/null 2>&1
|
||||
elif [ -s "$CACHE" ]; then
|
||||
cat "$CACHE"
|
||||
fi
|
||||
}
|
||||
|
||||
get_url() {
|
||||
if [ -f "$CACHE" ]; then
|
||||
local idle_t=$(($(date '+%s') - $(date -r "$CACHE" '+%s' 2>/dev/null || echo '0')))
|
||||
if [ -s "$CACHE" ]; then
|
||||
if [ $idle_t -le 43200 ]; then
|
||||
cat "$CACHE"
|
||||
return
|
||||
fi
|
||||
else
|
||||
if [ $idle_t -le 120 ]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
try_update
|
||||
}
|
||||
|
||||
get_url
|
201
luci-theme-atmaterial/LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
55
luci-theme-atmaterial/Makefile
Normal file
@ -0,0 +1,55 @@
|
||||
# LuCI Material Theme
|
||||
# Copyright 2015 Lutty Yang <lutty@wcan.in>
|
||||
#
|
||||
# Licensed under the Apache License v2.0
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
THEME_NAME:=atmaterial
|
||||
THEME_TITLE:=ATMaterial
|
||||
|
||||
PKG_NAME:=luci-theme-$(THEME_NAME)
|
||||
PKG_VERSION:=0.2.17
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/luci-theme-$(THEME_NAME)
|
||||
SECTION:=luci
|
||||
CATEGORY:=LuCI
|
||||
SUBMENU:=4. Themes
|
||||
DEPENDS:=+libc
|
||||
TITLE:=Advanced Tomato Material
|
||||
URL:=http://wcan.in/
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/luci-theme-$(THEME_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/30_luci-theme-$(THEME_NAME) $(1)/etc/uci-defaults/luci-theme-$(THEME_NAME)
|
||||
$(INSTALL_DIR) $(1)/www/luci-static/$(THEME_NAME)
|
||||
$(CP) -a ./files/htdocs/* $(1)/www/luci-static/$(THEME_NAME)/ 2>/dev/null || true
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)
|
||||
$(CP) -a ./files/templates/* $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)/ 2>/dev/null || true
|
||||
endef
|
||||
|
||||
define Package/luci-theme-$(THEME_NAME)/postinst
|
||||
#!/bin/sh
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
if [ -f /etc/uci-defaults/luci-theme-$(THEME_NAME) ]; then
|
||||
( . /etc/uci-defaults/luci-theme-$(THEME_NAME) ) && \
|
||||
rm -f /etc/uci-defaults/luci-theme-$(THEME_NAME)
|
||||
fi
|
||||
rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
|
||||
fi
|
||||
exit 0
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,luci-theme-$(THEME_NAME)))
|
2
luci-theme-atmaterial/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# luci-theme-atmaterial
|
||||
Advanced Tomato Material Theme for OpenWrt
|
7
luci-theme-atmaterial/files/30_luci-theme-atmaterial
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
uci batch <<-EOF
|
||||
set luci.themes.ATMaterial=/luci-static/atmaterial
|
||||
set luci.main.mediaurlbase=/luci-static/atmaterial
|
||||
commit luci
|
||||
EOF
|
||||
exit 0
|
2101
luci-theme-atmaterial/files/htdocs/css/style.css
Normal file
BIN
luci-theme-atmaterial/files/htdocs/favicon.ico
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
luci-theme-atmaterial/files/htdocs/fonts/advancedtomato.eot
Normal file
53
luci-theme-atmaterial/files/htdocs/fonts/advancedtomato.svg
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by Fontastic.me</metadata>
|
||||
<defs>
|
||||
<font id="advancedtomato" horiz-adv-x="512">
|
||||
<font-face font-family="advancedtomato" units-per-em="512" ascent="480" descent="-32"/>
|
||||
<missing-glyph horiz-adv-x="512" />
|
||||
|
||||
<glyph unicode="" d="M317 169c9-9 9-17 0-25-9-8-17-8-24 0 0 0-99 100-99 100-8 8-8 16 0 25 0 0 99 100 99 100 7 9 15 9 24 0 9-8 9-16 0-25 0 0-80-88-80-88 0 0 80-87 80-87"/>
|
||||
<glyph unicode="" d="M195 169c0 0 81 87 81 87 0 0-81 88-81 88-9 9-9 17 0 25 9 9 17 9 24 0 0 0 99-100 99-100 8-9 8-17 0-25 0 0-99-100-99-100-7-8-15-8-24 0-9 8-9 16 0 25"/>
|
||||
<glyph unicode="" d="M169 195c-9-8-17-8-26 0-8 8-8 16 0 25 0 0 101 97 101 97 9 9 17 9 24 0 0 0 101-97 101-97 8-9 8-17 0-25-9-8-17-8-26 0 0 0-87 80-87 80 0 0-87-80-87-80"/>
|
||||
<glyph unicode="" d="M344 317c8 9 16 9 25 0 9-7 9-15 0-24 0 0-101-98-101-98-7-8-15-8-24 0 0 0-101 98-101 98-9 9-9 17 0 24 9 9 17 9 26 0 0 0 87-79 87-79 0 0 88 79 88 79"/>
|
||||
<glyph unicode="" d="M141 148c0 0 60 60 60 60 0 0 0-150 0-150 0 0-142 9-142 9 0 0 45 44 45 44-39 41-59 91-58 148 1 57 21 107 62 148 34 34 75 53 122 59 0 0 2-52 2-52-34-6-63-21-88-45-30-30-45-67-46-109 0-43 14-80 43-112m170 307c0 0 142-9 142-9 0 0-45-44-45-44 39-41 59-91 58-148-1-57-21-107-62-148-32-33-73-53-122-60 0 0-1 53-1 53 33 6 62 21 87 45 30 30 45 67 46 109 0 43-14 80-43 112 0 0-59-60-59-60 0 0-1 150-1 150"/>
|
||||
<glyph unicode="" d="M283 77c0 0 0 51 0 51 0 0 50 0 50 0 0 0 0-51 0-51 0-14-5-26-15-36-10-10-22-15-36-15 0 0-205 0-205 0-14 0-26 5-36 15-10 10-15 22-15 36 0 0 0 358 0 358 0 15 5 27 15 37 10 9 22 14 36 14 0 0 205 0 205 0 14 0 26-5 36-14 10-10 15-22 15-37 0 0 0-77 0-77 0 0-50 0-50 0 0 0 0 77 0 77 0 0-206 0-206 0 0 0 0-358 0-358 0 0 206 0 206 0m203 167c0 0-101-101-101-101 0 0 0 62 0 62 0 0-230 0-230 0 0 0 0 77 0 77 0 0 230 0 230 0 0 0 0 61 0 61 0 0 101-99 101-99"/>
|
||||
<glyph unicode="" d="M212 77c-11 0-21 5-28 14 0 0-92 121-92 121-6 8-8 17-6 27 1 9 5 17 13 23 7 6 16 9 26 7 10-1 18-6 24-14 0 0 60-79 60-79 0 0 152 243 152 243 5 8 13 13 22 15 9 2 18 1 27-4 8-5 13-13 15-22 3-9 1-18-4-27 0 0-179-287-179-287-7-11-16-16-28-16 0 0-2-1-2-1"/>
|
||||
<glyph unicode="" d="M372 410c25 0 38-11 38-33 0 0 0-241 0-241 0-22-13-34-38-34 0 0-231 0-231 0-26 0-39 12-39 34 0 0 0 241 0 241 0 12 3 21 10 25 6 5 16 8 29 8 0 0 231 0 231 0"/>
|
||||
<glyph unicode="" d="M377 269c5-3 7-8 7-13 0-5-2-9-7-12 0 0-219-136-219-136-8-6-15-7-21-4-6 4-9 11-9 21 0 0 0 263 0 263 0 10 3 17 9 21 6 3 13 2 21-3 0 0 219-137 219-137"/>
|
||||
<glyph unicode="" d="M79 336c-3-3-4-7-6-11-1-5-1-9-1-13 0-4 0-6-1-6-1-1-4-3-9-8-5-4-8-7-9-8-6-5-11-4-15 2 0 0-36 39-36 39-3 4-3 8 1 12 1 1 4 3 10 7 5 4 8 7 10 8 2 2 6 3 14 3 7 0 13 3 19 8 4 4 7 11 9 19 1 8 3 13 5 15 1 0 2 2 5 4 2 2 6 6 13 11 6 5 13 11 21 16 46 31 77 47 95 49 42 0 67 0 76-1 4 0 3-1-4-4-41-18-67-31-78-39-27-19-34-38-19-58 12-16 19-24 20-25 3-2 2-5-1-7-1-1-7-6-20-18-12-11-18-17-19-18-5-2-8-3-9-2-15 17-27 27-37 31-9 4-21 2-34-6m147-13c0 0 209-244 209-244 7-8 6-14-1-20 0 0-24-21-24-21-8-5-14-4-20 2 0 0-212 242-212 242-2 2-2 6 0 10 0 0 37 32 37 32 4 2 8 2 11-1m283 103c6-36 3-64-8-85-17-30-43-41-79-32-19 4-36-1-51-16 0 0-42-40-42-40 0 0-35 40-35 40 0 0 35 36 35 36 8 8 13 17 16 27 2 10 3 21 3 33 0 12 0 22 2 30 5 19 28 38 72 57 4 2 7 2 9-1 2-3 3-6 1-8-4-4-12-18-23-41-5-3-7-9-6-18 0-8 7-18 20-27 20-14 36-10 49 11 2 4 7 11 14 21 6 10 10 16 11 17 1 3 4 5 7 5 3-1 5-4 5-9m-439-350c0 0 130 127 130 127 0 0 39-44 39-44 0 0-126-124-126-124-7-7-13-8-20-2 0 0-23 23-23 23-8 6-8 13 0 20"/>
|
||||
<glyph unicode="" d="M478 232c9-15 11-31 7-49 0 0-17-94-17-94-1-7-4-13-10-18-6-5-13-8-20-8 0 0-365 0-365 0-7 0-13 3-19 8-6 5-10 11-10 18 0 0-18 94-18 94-3 18 0 34 7 49 0 0 81 192 81 192 8 16 20 23 37 23 0 0 209 0 209 0 17 0 30-7 38-23 0 0 80-192 80-192m-35-67c1 7-1 14-5 19-4 6-10 9-18 9 0 0-329 0-329 0-8 0-14-3-18-9-4-5-6-12-5-19 0 0 7-38 7-38 1-8 4-14 10-19 6-5 13-8 20-8 0 0 302 0 302 0 8 0 14 3 20 8 6 5 9 11 10 19 0 0 6 38 6 38"/>
|
||||
<glyph unicode="" d="M256 448c-106 0-192-86-192-192 0-106 86-192 192-192 106 0 192 86 192 192 0 106-86 192-192 192z m0-333c-78 0-141 63-141 141 0 34 12 66 33 90l198-198c-24-21-56-33-90-33z m108 51l-198 198c24 21 56 33 90 33 78 0 141-63 141-141 0-34-12-66-33-90z"/>
|
||||
<glyph unicode="" d="M256 502c68 0 126-24 174-72 48-49 72-106 72-174 0-68-24-126-72-174-48-48-106-72-174-72-68 0-125 24-174 72-48 48-72 106-72 174 0 68 24 125 72 174 49 48 106 72 174 72m210-246c0 45-13 86-40 122-27 37-61 62-103 77-7-9-9-14-9-17 2-13 5-21 10-26 4-4 9-5 15-3 0 0 16 6 16 6 0 0 4 0 11 1 7-8 7-16 0-24-8-8-16-18-23-29-8-11-8-24-1-39 12-22 28-33 49-33 10-1 17-7 22-19 5-11 8-22 9-33 3-28 1-52-7-72-8-15-5-28 7-39 29 38 44 81 44 128m-239 207c-38-5-72-19-102-43-29-24-51-54-65-89 2 0 6-1 12-1 5-1 10-1 14-2 4 0 9-1 13-2 5-1 9-2 13-4 3-2 5-4 6-7 1-4-1-11-7-23-7-11-10-21-10-31 0-10 7-20 20-29 13-8 19-16 19-23 0-10 2-21 4-35 3-14 4-21 4-22 0-5 7-14 19-28 12-14 21-22 27-22 3 0 5 4 5 12 1 7 0 16-1 27-1 11-1 18-1 21 0 11 2 23 7 38 4 14 14 26 30 36 16 9 25 17 28 23 6 12 7 22 5 31-3 10-6 17-9 22-3 6-9 11-17 15-9 4-16 7-21 8-6 2-12 4-19 5-7 1-11 2-12 2-5 2-12 3-21 4-9 0-15-1-18-2-4-1-9 1-14 6-6 5-9 10-9 15 0 3 3 8 8 13 5 6 11 12 18 19 6 7 11 12 14 16 3 4 6 8 9 10 3 3 6 6 11 9 4 3 9 6 14 10 1 2 5 5 13 9 7 5 11 8 13 12m-37-407c23-7 45-10 66-10 44 0 82 12 116 35-9 15-29 21-61 17-8 0-19-3-33-8-14-6-22-8-24-9-25-6-38-8-39-8-4-1-8-3-13-7-5-5-9-8-12-10"/>
|
||||
<glyph unicode="" d="M450 117c10-12 11-22 3-32 0 0-24-24-24-24-12-10-24-10-35 0 0 0-97 98-97 98-25-15-52-22-80-22-44 0-82 16-114 49-33 32-49 70-49 114 0 44 16 81 46 112 31 31 68 47 112 47 44 0 82-16 115-49 32-32 49-70 49-114 0-30-8-58-24-83 0 0 98-96 98-96m-348 183c0-30 12-57 35-80 23-23 50-35 80-35 30 0 56 11 77 33 22 21 33 47 33 78 0 30-12 56-35 79-23 23-50 35-80 35-30 0-56-11-77-33-22-21-33-47-33-77"/>
|
||||
<glyph unicode="" d="M425 249c0 0-98 0-98 0 0 0 0-179 0-179 0 0-142 0-142 0 0 0 0 179 0 179 0 0-98 0-98 0 0 0 169 194 169 194 0 0 169-194 169-194"/>
|
||||
<glyph unicode="" d="M425 264c0 0-169-194-169-194 0 0-169 194-169 194 0 0 98 0 98 0 0 0 0 179 0 179 0 0 142 0 142 0 0 0 0-179 0-179 0 0 98 0 98 0"/>
|
||||
<glyph unicode="" d="M302 206c-72 0-128-8-170-23-42-16-77-49-106-101 1 7 3 16 6 27 3 11 12 31 26 60 14 29 30 54 49 76 19 22 45 42 80 60 34 18 73 27 115 27 0 0 0 98 0 98 0 0 184-165 184-165 0 0-184-171-184-171 0 0 0 112 0 112"/>
|
||||
<glyph unicode="" d="M208 168c11 19 48 68 109 145 62 78 95 116 100 113 4-2-13-50-49-142-37-93-61-149-71-167-17-30-40-36-70-19-29 17-36 41-19 70m48 194c-57 0-106-21-145-65-40-43-60-96-60-159 0-10 1-18 1-23 1-8-1-14-6-19-5-5-10-8-17-9-7-1-13 1-19 6-5 5-8 11-9 18 0 2 0 7 0 13-1 6-1 11-1 14 0 77 25 143 74 196 50 53 110 80 182 80 25 0 47-3 69-10 0 0-36-44-36-44-14 2-25 2-33 2m185-31c47-53 71-117 71-193 0-13 0-22-1-28-1-7-3-13-8-17-5-5-11-7-18-7 0 0-2 0-2 0-7 1-13 5-18 10-4 6-6 12-5 19 0 4 1 12 1 23 0 51-14 97-41 137 2 5 5 14 10 27 5 12 9 22 11 29"/>
|
||||
<glyph unicode="" d="M376 255c40-13 60-36 60-70 0-34-21-68-65-101-43-32-97-48-160-48-55 0-103 13-146 40-43 26-64 60-64 100 0 44 25 92 75 143 31 32 63 54 95 67 32 12 55 12 69-2 12-12 14-32 5-59-2-5 0-8 4-8 0 0 8 1 8 1 25 12 48 18 69 18 20 0 34-6 43-18 8-12 7-29-1-51-2-6 0-10 8-12m-165-181c42 4 76 17 103 39 28 22 40 47 37 74-3 28-20 50-51 66-31 16-67 22-109 18-41-4-76-17-103-39-27-22-39-47-36-74 3-28 20-49 50-66 31-16 67-22 109-18m300 250c0 0 0-1 0-1 0-5-2-9-6-13-3-3-8-5-12-5-5 0-9 2-13 5-3 4-5 8-5 13 0 32-11 60-35 83-23 23-51 34-83 34-5 0-10 2-13 5-3 4-5 8-5 14 0 11 6 17 18 17 43 0 79-15 109-44 30-30 45-66 45-108m-72 2c2-5 1-10-2-14-2-5-6-7-11-8-12-1-19 4-22 14-2 13-8 25-18 34-10 10-21 16-34 19-11 2-16 9-13 20 3 12 10 17 21 15 20-5 37-14 52-29 14-14 23-32 27-51m-270-108c16 4 31 1 45-6 14-8 22-18 25-32 3-13 0-27-10-39-10-13-24-21-41-23-16-4-31-2-45 6-13 7-21 18-24 32-3 13 0 26 10 39 10 12 23 20 40 23"/>
|
||||
<glyph unicode="" d="M185 231l-133-133c-2-2-4-3-6-3-3 0-5 1-7 3l-14 14c-2 2-3 4-3 7 0 2 1 5 3 6l112 113-112 112c-2 2-3 4-3 7 0 2 1 4 3 6l14 14c2 2 4 3 7 3 2 0 4-1 6-3l133-133c2-2 3-4 3-6 0-3-1-5-3-7z m309-130l0-19c0-2-1-5-3-6-2-2-4-3-6-3l-275 0c-2 0-5 1-6 3-2 1-3 4-3 6l0 19c0 2 1 4 3 6 1 2 4 3 6 3l275 0c2 0 4-1 6-3 2-2 3-4 3-6z"/>
|
||||
<glyph unicode="" d="M389 282c10 0 15-9 15-26 0-17-5-26-15-26 0 0-266 0-266 0-10 0-15 9-15 26 0 17 5 26 15 26 0 0 266 0 266 0"/>
|
||||
<glyph unicode="" d="M256 474c0 0 133-125 133-125 0 0-84 0-84 0 0 0 0-131 0-131 0 0-97 0-97 0 0 0 0 131 0 131 0 0-85 0-85 0 0 0 133 125 133 125m239-296c7-3 11-9 14-16 3-8 4-15 2-21 0 0-14-79-14-79-2-6-6-12-12-16-6-5-13-7-20-7 0 0-418 0-418 0-8 0-14 2-21 7-6 4-9 10-11 16 0 0-14 79-14 79-4 17 2 29 16 37 0 0 81 55 81 55 0 0 50 0 50 0 0 0-87-66-87-66 0 0 91 0 91 0 3 0 5-1 7-4 0 0 20-57 20-57 0 0 154 0 154 0 0 0 20 57 20 57 3 3 5 4 6 4 0 0 91 0 91 0 0 0-87 66-87 66 0 0 51 0 51 0 0 0 81-55 81-55"/>
|
||||
<glyph unicode="" d="M495 178c7-3 11-9 14-16 3-8 4-15 2-21 0 0-14-79-14-79-2-6-6-12-12-16-6-5-13-7-20-7 0 0-418 0-418 0-8 0-14 2-21 7-6 4-9 10-11 16 0 0-14 79-14 79-4 17 2 29 16 37 0 0 81 55 81 55 0 0 50 0 50 0 0 0-87-66-87-66 0 0 91 0 91 0 3 0 5-1 7-4 0 0 20-57 20-57 0 0 154 0 154 0 0 0 20 57 20 57 3 3 5 4 6 4 0 0 91 0 91 0 0 0-87 66-87 66 0 0 51 0 51 0 0 0 81-55 81-55m-106 165c0 0-133-125-133-125 0 0-133 125-133 125 0 0 85 0 85 0 0 0 0 131 0 131 0 0 97 0 97 0 0 0 0-131 0-131 0 0 84 0 84 0"/>
|
||||
<glyph unicode="" d="M213 331c44 0 79-33 85-75l75 0c-1 10-3 20-5 29l61 35-43 74-61-35c-19 19-42 33-69 40l0 70-85 0 0-70c-27-7-51-21-70-40l-60 35-43-74 61-35c-4-12-6-26-6-40 0-13 2-27 6-40l-61-35 43-74 60 35c19-18 43-32 70-40l0-70 85 0 0 151c-13-7-27-12-43-12-47 0-85 38-85 85 0 47 38 86 85 86z m278-203c0 8-2 15-4 23l40 23-22 36-39-22c-11 11-24 18-39 22l0 46-43 0 0-46c-15-4-29-11-40-22l-39 22-21-36 39-23c-2-8-3-15-3-23 0-8 1-15 3-23l-39-23 21-36 39 22c11-11 25-18 40-22l0-46 43 0 0 46c15 4 28 11 39 22l40-22 21 36-40 23c2 8 4 15 4 23z m-86-43c-23 0-42 19-42 43 0 24 19 43 42 43 24 0 43-19 43-43 0-24-19-43-43-43z"/>
|
||||
<glyph unicode="" d="M318 512c17 0 29-5 38-14 9-9 14-21 14-35 0-17-7-32-20-45-14-13-30-20-49-20-16 0-29 5-38 14-9 9-13 21-12 37 0 15 6 30 18 43 12 13 28 20 49 20m-105-512c-34 0-43 30-28 91 0 0 31 130 31 130 5 19 5 29 0 29-4 0-13-3-28-9-14-7-26-13-36-20 0 0-14 23-14 23 31 26 63 48 97 64 34 17 60 25 77 25 27 0 33-28 19-83 0 0-36-136-36-136-6-22-5-33 3-33 15 0 35 10 60 31 0 0 16-21 16-21-29-29-59-52-90-67-31-16-55-24-71-24"/>
|
||||
<glyph unicode="" d="M457 302l0-55c0-8-3-14-8-20-5-5-12-8-19-8l-119 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 118-119 0c-7 0-14 3-19 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 19 8l119 0 0 119c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19l0-119 119 0c7 0 14-3 19-8 5-5 8-12 8-19z"/>
|
||||
<glyph unicode="" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-469c-118 0-213 95-213 213 0 118 95 213 213 213 118 0 213-95 213-213 0-118-95-213-213-213z m95 360c-11 5-23 1-29-9l-72-145-43 43c-8 9-22 9-30 0-8-8-8-21 0-30l64-64c4-4 9-6 15-6 1 0 2 0 3 0 7 1 13 6 16 12l85 170c6 11 1 24-9 29z m-116-296l42 0 0-22-42 0z m0 341l42 0 0-21-42 0z m-171-171l43 0 0-21-43 0z m341 0l43 0 0-21-43 0z"/>
|
||||
<glyph unicode="" d="M55 37l82 0 0 82-82 0z m100 0l92 0 0 82-92 0z m-100 100l82 0 0 92-82 0z m100 0l92 0 0 92-92 0z m-100 110l82 0 0 82-82 0z m210-210l92 0 0 82-92 0z m-110 210l92 0 0 82-92 0z m220-210l82 0 0 82-82 0z m-110 100l92 0 0 92-92 0z m-100 247l0 82c0 3-1 5-3 7-2 2-4 2-7 2l-18 0c-2 0-4 0-6-2-2-2-3-4-3-7l0-82c0-2 1-5 3-6 2-2 4-3 6-3l18 0c3 0 5 1 7 3 2 1 3 4 3 6z m210-247l82 0 0 92-82 0z m-110 110l92 0 0 82-92 0z m110 0l82 0 0 82-82 0z m9 137l0 82c0 3-1 5-3 7-2 2-4 2-6 2l-18 0c-3 0-5 0-7-2-2-2-3-4-3-7l0-82c0-2 1-5 3-6 2-2 4-3 7-3l18 0c2 0 4 1 6 3 2 1 3 4 3 6z m110 18l0-365c0-10-4-19-11-26-7-7-16-11-26-11l-402 0c-10 0-19 4-26 11-7 7-11 16-11 26l0 365c0 10 4 19 11 26 7 7 16 11 26 11l36 0 0 27c0 13 5 24 14 33 9 9 20 13 32 13l18 0c13 0 24-4 33-13 9-9 13-20 13-33l0-27 110 0 0 27c0 13 4 24 13 33 9 9 20 13 33 13l18 0c12 0 23-4 32-13 9-9 14-20 14-33l0-27 36 0c10 0 19-4 26-11 7-7 11-16 11-26z"/>
|
||||
<glyph unicode="" d="M55 37l402 0 0 292-402 0z m110 347l0 82c0 3-1 5-3 7-2 2-4 2-7 2l-18 0c-3 0-5 0-6-2-2-2-3-4-3-7l0-82c0-3 1-5 3-7 1-1 3-2 6-2l18 0c3 0 5 1 7 2 2 2 3 4 3 7z m219 0l0 82c0 3-1 5-3 7-1 2-3 2-6 2l-18 0c-3 0-5 0-7-2-2-2-3-4-3-7l0-82c0-3 1-5 3-7 2-1 4-2 7-2l18 0c3 0 5 1 6 2 2 2 3 4 3 7z m110 18l0-365c0-10-4-19-11-26-7-7-16-11-26-11l-402 0c-10 0-19 4-26 11-7 7-11 16-11 26l0 365c0 10 4 19 11 26 7 7 16 11 26 11l36 0 0 27c0 13 5 24 14 33 9 9 20 13 32 13l18 0c13 0 24-4 33-13 9-9 13-20 13-33l0-27 110 0 0 27c0 13 4 24 13 33 9 9 20 13 33 13l18 0c12 0 23-4 32-13 9-9 14-20 14-33l0-27 36 0c10 0 19-4 26-11 7-7 11-16 11-26z"/>
|
||||
<glyph unicode="" d="M407 461l27 0 0 51-370 0 0-51 32 0c4-96 39-159 101-180l0-53c-61-21-96-83-101-177l-32 0 0-51 370 0 0 51-27 0c-5 94-40 156-101 177l0 53c62 21 97 84 101 180m-116-255c67-17 87-90 91-155l-26 0-45 52-57 68-58-68-45-52-29 0c3 65 23 138 90 155l10 2 0 93-10 2c-69 17-88 92-91 158l261 0c-3-66-22-141-91-158l-10-2 0-93z m17 151l-105 0 26-31 27-30 26 30z"/>
|
||||
<glyph unicode="" d="M399 395c0-15-8-31-24-49-17-18-33-35-50-51-17-16-25-29-25-39 0-10 8-23 25-39 17-16 33-32 50-50 16-17 24-34 24-49 0 0 0-61 0-61 0-11-14-24-44-37-29-13-62-20-99-20-37 0-70 7-99 20-30 13-44 26-44 37 0 0 0 61 0 61 0 15 8 32 24 49 17 18 33 34 50 50 17 16 25 29 25 39 0 10-8 23-25 39-17 16-33 33-50 51-16 18-24 34-24 49 0 0 0 61 0 61 0 11 14 23 44 36 30 13 63 20 99 20 36 0 69-7 99-20 30-13 44-25 44-36 0 0 0-61 0-61m-246 58c0 0-10-8-10-8-1-2 0-5 2-7 32-17 69-26 111-26 45 0 83 8 113 25 4 4 2 9-9 16-32 18-67 27-103 27-41 0-76-9-104-27m116-197c0 6 1 12 2 17 2 5 5 11 10 17 4 6 8 10 10 13 2 2 7 7 16 15 8 9 13 13 15 15 31 31 47 52 47 62 0 0 1 26 1 26-34-19-72-28-114-28-42 0-80 9-114 28 0 0 2-26 2-26 0-11 16-31 46-62 3-2 6-6 12-11 5-5 9-9 12-11 0 0 9-10 9-10 0 0 3-4 9-11 6-7 8-10 6-10-2 0-1-4 4-12 5-8 6-12 2-12 0-3 0-7-1-10 0-3-1-6-3-9-2-3-3-6-4-8-1-3-3-5-6-9 0 0-6-8-6-8 0 0-2-2-7-8-6-5-8-8-9-7 0 0-3-3-9-9-6-5-9-8-9-8-30-30-46-51-46-62 0 0 0-34 0-34 3 1 14 5 34 12 20 6 36 14 47 22 12 8 18 18 18 29 0 11 4 16 13 16 9 0 13-5 13-16 0-11 6-21 17-29 11-8 28-16 48-22 21-7 33-11 35-12 0 0 0 34 0 34 0 10-16 31-47 62-2 2-5 5-11 10-6 6-10 10-11 11-2 2-5 5-10 10-4 5-7 8-9 11-2 3-4 6-6 10-2 5-4 8-5 12 0 4-1 8-1 12"/>
|
||||
<glyph unicode="" d="M256 458l0 1-172-100 0 0 0-118 0 0c2-97 77-178 172-188 96 10 170 91 172 188l0 118 0 0z m0-353l0 142-121 0 0 82 121 70 0-152 121 0 0-6 0 0c-2-69-54-127-121-136z"/>
|
||||
<glyph unicode="" d="M428 318l-167 129c-4 4-11 4-16 0l-161-129c-3-2-5-6-5-10l0-233c0-7 6-13 13-13l96 0c7 0 13 6 13 13l0 143 110 0 0-143c0-7 6-13 13-13l96 0c7 0 13 6 13 13l0 233c0 4-2 8-5 10z"/>
|
||||
<glyph unicode="" d="M442 392l-20-20-19-19-25-24c-13-1-26 4-36 13-9 10-14 23-13 36l63 64c1 1 1 3 0 4 0 1 0 1-1 1l0 0c0 0 0 0 0 0 0 0 0 0 0 0-14 6-29 10-45 10-61 0-111-50-111-111 0-12 2-23 6-33l-116-116c-39-1-70-32-70-71 0-39 32-71 71-71 39 0 70 31 71 70l116 116c10-4 21-6 33-6 61 0 111 50 111 111 0 16-4 31-10 45 0 0 0 0 0 0 0 0 0 1 0 1l0 0c0 0-1 0-1 0-1 1-3 1-4 0z m-286-266c0-16-14-29-30-29-16 0-29 13-29 29 0 16 13 30 29 30 16 0 30-14 30-30z"/>
|
||||
<glyph unicode="" d="M256 369c-20 0-34-12-34-31 0-18 14-30 34-30 21 0 34 12 34 30 0 19-13 31-34 31z m-32-81l64 0 0-145-64 0z m32 196c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z"/>
|
||||
<glyph unicode="" d="M512 128l0-37c0-5-2-9-5-12-4-4-8-6-13-6l-476 0c-5 0-9 2-13 6-3 3-5 7-5 12l0 37c0 5 2 9 5 13 4 3 8 5 13 5l476 0c5 0 9-2 13-5 3-4 5-8 5-13z m-110 110l0-37c0-5-2-9-5-13-4-3-8-5-13-5l-366 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 37c0 5 2 9 5 13 4 3 8 5 13 5l366 0c5 0 9-2 13-5 3-4 5-8 5-13z m73 109l0-36c0-5-1-9-5-13-4-4-8-5-13-5l-439 0c-5 0-9 1-13 5-3 4-5 8-5 13l0 36c0 5 2 10 5 13 4 4 8 6 13 6l439 0c5 0 9-2 13-6 4-3 5-8 5-13z m-109 110l0-36c0-5-2-10-6-13-3-4-8-6-13-6l-329 0c-5 0-9 2-13 6-3 3-5 8-5 13l0 36c0 5 2 9 5 13 4 4 8 5 13 5l329 0c5 0 10-1 13-5 4-4 6-8 6-13z"/>
|
||||
<glyph unicode="" d="M256 256c-18 0-32 14-32 32l0 160c0 18 14 32 32 32 18 0 32-14 32-32l0-160c0-18-14-32-32-32z m123 187c61-40 101-109 101-187 0-124-100-224-224-224-124 0-224 100-224 224 0 78 40 147 101 187 5 3 11 5 17 5 18 0 32-14 32-32 0-6-2-12-5-17-2-3-4-6-7-8-1-1-3-2-4-3-8-6-16-12-23-19-30-30-47-70-47-113 0-43 17-83 47-113 30-30 70-47 113-47 43 0 83 17 113 47 30 30 47 70 47 113 0 43-17 83-47 113-7 7-15 13-23 19-1 1-3 2-4 3-3 2-5 5-7 8-3 5-5 11-5 17 0 18 14 32 32 32 6 0 12-2 17-5z"/>
|
||||
<glyph unicode="" d="M444 125c3-3 4-6 4-10 0-4-1-7-4-10l-38-37c-3-3-5-4-9-4-4 0-7 1-10 4l-131 131-131-131c-3-3-5-4-9-4-4 0-7 1-10 4l-38 37c-3 3-4 6-4 10 0 4 1 7 4 10l132 131-132 130c-5 5-5 15 0 20l37 38c3 2 6 4 10 4 4 0 7-1 10-4l131-130 131 130c3 2 6 4 10 4 4 0 7-1 10-4l37-38c5-5 5-14 0-19l-132-130z"/>
|
||||
<glyph unicode="" d="M149 172l30-30c20 20 47 32 77 32 30 0 57-12 77-32l30 30c-27 28-65 45-107 45-42 0-80-17-107-45z m-69 69l30-30c38 37 89 60 146 60 57 0 108-23 146-60l30 30c-45 45-107 73-176 73-69 0-131-28-176-73z m176 170c-96 0-182-38-245-101l31-30c55 55 130 89 214 89 84 0 159-34 214-89l31 30c-63 63-149 101-245 101z m0-283c-18 0-32-14-32-32 0-18 14-32 32-32 18 0 32 14 32 32 0 18-14 32-32 32z"/>
|
||||
<glyph unicode="" d="M352 384l-96 0 0-320 96 0z m128-96l-96 0 0-224 96 0z m-448-256l0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-64 0 0-512 512 0 0 32z m192 192l-96 0 0-160 96 0z"/>
|
||||
<glyph unicode="" d="M288 192l0-96 64 0-96-96-96 96 64 0 0 96z m-64 128l0 96-64 0 96 96 96-96-64 0 0-96z m-32-96l-96 0 0-64-96 96 96 96 0-64 96 0z m128 64l96 0 0 64 96-96-96-96 0 64-96 0z"/>
|
||||
<glyph unicode="" d="M431 389c0 0 4-2 4-2 13-7 23-18 31-32 7-13 10-29 10-49 0-44-19-80-56-107-36-28-89-41-157-41 0 0-15 0-15 0-6 0-11-2-17-6-5-5-9-9-10-15 0 0-18-80-18-80-4-14-13-21-27-21 0 0-54 0-54 0-6 0-11 2-15 6-3 5-4 10-3 15 0 0 3 13 3 13 0 0 35 0 35 0 6 0 11 2 17 6 5 5 8 10 10 15 0 0 18 80 18 80 4 14 13 20 27 20 0 0 15 0 15 0 67 0 119 14 157 41 37 28 56 64 56 108 0 19-4 35-11 49m-297-264c-1-6-4-10-9-15-6-4-11-7-17-7 0 0-55 0-55 0-6 0-11 3-14 7-3 5-4 9-2 15 0 0 77 331 77 331 3 13 12 20 26 20 0 0 115 0 115 0 26 0 48-1 64-4 19-4 36-10 48-17 13-9 23-19 30-32 7-13 10-29 10-49 0-45-18-80-56-108-36-27-88-41-156-41 0 0-16 0-16 0-5 0-11-2-16-6-6-4-9-9-10-14 0 0-19-80-19-80m45 191c-1-5 0-10 3-14 4-4 8-6 13-6 0 0 15 0 15 0 29 0 52 6 68 18 17 12 25 29 25 51 0 15-5 25-15 32-11 7-27 11-49 11 0 0-17 0-17 0-14 0-23-7-27-21 0 0-16-71-16-71"/>
|
||||
<glyph unicode="" d="M293 119l0 54c0 3-1 5-3 7-2 2-4 3-7 3l-54 0c-3 0-5-1-7-3-2-2-3-4-3-7l0-54c0-3 1-5 3-7 2-1 4-2 7-2l54 0c3 0 5 1 7 2 2 2 3 4 3 7z m-1 107l5 131c0 2-1 4-3 6-2 2-4 3-7 3l-62 0c-3 0-5-1-7-3-2-2-3-4-3-6l5-131c0-2 1-3 3-5 1-1 4-2 6-2l53 0c3 0 5 1 7 2 2 2 3 3 3 5z m-4 267l219-402c7-12 7-24 0-36-3-6-8-10-13-14-6-3-12-4-19-4l-438 0c-7 0-13 1-19 4-5 4-10 8-13 14-7 12-7 24 0 36l219 402c3 6 8 10 13 14 6 3 12 5 19 5 7 0 13-2 19-5 5-4 10-8 13-14z"/>
|
||||
</font></defs></svg>
|
After Width: | Height: | Size: 19 KiB |
BIN
luci-theme-atmaterial/files/htdocs/fonts/advancedtomato.ttf
Normal file
BIN
luci-theme-atmaterial/files/htdocs/fonts/advancedtomato.woff
Normal file
BIN
luci-theme-atmaterial/files/htdocs/fonts/font.eot
Normal file
16
luci-theme-atmaterial/files/htdocs/fonts/font.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by IcoMoon</metadata>
|
||||
<defs>
|
||||
<font id="icomoon" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="expand_less" d="M512 596.667l256-256-60-60-196 196-196-196-60 60z" />
|
||||
<glyph unicode="" glyph-name="expand_more" d="M708 572.667l60-60-256-256-256 256 60 60 196-196z" />
|
||||
<glyph unicode="" glyph-name="menu" d="M128 682.667h768v-86h-768v86zM128 384.667v84h768v-84h-768zM128 170.667v86h768v-86h-768z" />
|
||||
<glyph unicode="" glyph-name="favorite" d="M512 28.667l-62 56q-106 96-154 142t-107 114-81 123-22 113q0 98 67 166t167 68q116 0 192-90 76 90 192 90 100 0 167-68t67-166q0-78-52-162t-113-146-199-186z" />
|
||||
<glyph unicode="" glyph-name="spinner9" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
|
||||
<glyph unicode="" glyph-name="question-circle" horiz-adv-x="878" d="M512 164.571v109.714q0 8-5.143 13.143t-13.143 5.143h-109.714q-8 0-13.143-5.143t-5.143-13.143v-109.714q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143zM658.286 548.571q0 50.286-31.714 93.143t-79.143 66.286-97.143 23.429q-138.857 0-212-121.714-8.571-13.714 4.571-24l75.429-57.143q4-3.429 10.857-3.429 9.143 0 14.286 6.857 30.286 38.857 49.143 52.571 19.429 13.714 49.143 13.714 27.429 0 48.857-14.857t21.429-33.714q0-21.714-11.429-34.857t-38.857-25.714q-36-16-66-49.429t-30-71.714v-20.571q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143q0 10.857 12.286 28.286t31.143 28.286q18.286 10.286 28 16.286t26.286 20 25.429 27.429 16 34.571 7.143 46.286zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
|
||||
</font></defs></svg>
|
After Width: | Height: | Size: 2.4 KiB |