update 2026-09-24 16:56:26

This commit is contained in:
action committed 2026-09-24 16:56:26 +08:00
1 parent b31a5c3878
commit e4cee331e9
6885 files changed
+3240523

No files matched your search

@@ -0,0 +1,2 @@
/etc/aurora/device.key
/etc/aurora/device.hash
@@ -0,0 +1,135 @@
#!/bin/sh
readonly CONF_FILE="/etc/config/aurora"
readonly DEFAULT_TEMPLATE="/usr/share/aurora/default.template"
readonly SAGE_GREEN_TEMPLATE="/usr/share/aurora/sage-green.template"
readonly AMBER_SAND_TEMPLATE="/usr/share/aurora/amber-sand.template"
readonly MONOCHROME_TEMPLATE="/usr/share/aurora/monochrome.template"
readonly SKY_BLUE_TEMPLATE="/usr/share/aurora/sky-blue.template"
readonly LOG_TAG="aurora"
# Bump when the meaning of stored color tokens changes incompatibly.
# v2: two-layer flip -- light_/dark_ status inputs (success/info/warning/danger)
# went from "light surface" to "dark content", surfaces derived via
# oklch(from var(--token) ...). Pre-flip snapshots leave content the same
# colour as the derived surface -> invisible label text and icons.
# v3: fixes a re-seed bug in v2 that left ~14 colour keys empty (a nested
# command substitution inside a pipe-fed `while read` swallowed stdin and
# skipped keys). v3 re-runs a corrected re-seed, so devices stuck at v2
# with a half-migrated config are repaired.
# v4: single-plane token redesign. The two-layer taxonomy (canvas/content/
# surface_raised + ~57 derived expression tokens) is gone. The schema is now
# 10 editable inputs (canvas->bg, content->text, surface_raised dropped) plus
# 20 engine-derived flat colours. The re-seed prunes EVERY legacy light_/dark_
# key absent from the new template, clearing stale overrides that header.ut
# would otherwise inject against now-nonexistent CSS variables. Custom colours
# reset to the active template defaults (no value mapping).
# v5: broad config rework. Stored values are no longer migrated key-by-key --
# any schema mismatch triggers a full reset: the live config is overwritten
# wholesale with the active template. ALL prior customisation (colours,
# fonts, toolbar items, nav mode, icon, logo/favicon) is discarded so every
# upgraded device lands on the new defaults.
# v6: link now defaults to the brand colour in both modes (aurora-tokens
# 1.0.1). Seeded v5 snapshots still carry the legacy magenta/teal link,
# which header.ut would keep injecting over the new CSS defaults; per the
# v5 policy the mismatch triggers a full reset to the active template.
# v7: light-mode relight to the "snow x blue hour" palette (aurora-tokens
# 1.1.0, refined in 1.2.x: icy recessed fills, snow panel, control_bg
# + app_opacity_disabled): cool 235deg neutrals, purified status hues
# and a cool blue-black menu scrim. Seeded v6 snapshots carry the old
# 264deg purple-grey light tokens, which header.ut would keep injecting
# over the new CSS defaults; per the v5 policy the mismatch triggers a
# full reset to the active template.
readonly SCHEMA_VERSION="7"
log() {
logger -t "$LOG_TAG" "$1"
}
# Rename struct_container_max_width -> struct_content_width_centered, in place.
#
# Deliberately NOT a SCHEMA_VERSION bump: that triggers a full reset to the
# template (see the v5 policy above) and is reserved for incompatible *colour*
# semantics. A rename changes no meaning, so discarding every other
# customisation to accomplish it would be gratuitous.
#
# The width cap only ever applied to the centred (top-bar) layouts — the
# sidebar shell runs full-width — so the key was renamed to say which shell it
# governs. The old key must be deleted, not merely copied: header.ut re-emits
# every stored struct_* key as a CSS custom property, so leaving it behind would
# keep injecting a --container-max-width that nothing reads.
migrate_structure_keys() {
local old
old=$(uci -q get aurora.theme.struct_container_max_width)
[ -n "$old" ] || return 0
[ -n "$(uci -q get aurora.theme.struct_content_width_centered)" ] ||
uci -q set aurora.theme.struct_content_width_centered="$old"
uci -q delete aurora.theme.struct_container_max_width
uci -q commit aurora
log "Renamed struct_container_max_width -> struct_content_width_centered (${old})"
}
# Reset the whole config to the active template. Used when the stored schema
# version does not match: rather than migrating individual keys, the entire
# config is overwritten so no stale options survive.
migrate_color_schema() {
local template="$1" stored
stored=$(uci -q get aurora.theme.config_version)
[ "$stored" = "$SCHEMA_VERSION" ] && return 0
log "Schema changed (was '${stored:-unset}'); resetting config to template defaults"
if cp "$template" "$CONF_FILE"; then
chmod 644 "$CONF_FILE"
uci -q set aurora.theme.config_version="$SCHEMA_VERSION"
uci -q commit aurora
log "Config reset to schema v$SCHEMA_VERSION complete"
else
log "Config reset failed; leaving existing config untouched"
fi
}
main() {
log "Initializing Aurora theme configuration"
template=""
if [ -f "$DEFAULT_TEMPLATE" ]; then
template="$DEFAULT_TEMPLATE"
elif [ -f "$SAGE_GREEN_TEMPLATE" ]; then
template="$SAGE_GREEN_TEMPLATE"
elif [ -f "$AMBER_SAND_TEMPLATE" ]; then
template="$AMBER_SAND_TEMPLATE"
elif [ -f "$MONOCHROME_TEMPLATE" ]; then
template="$MONOCHROME_TEMPLATE"
elif [ -f "$SKY_BLUE_TEMPLATE" ]; then
template="$SKY_BLUE_TEMPLATE"
fi
if [ -z "$template" ]; then
log "Template missing: $DEFAULT_TEMPLATE, $SAGE_GREEN_TEMPLATE, $AMBER_SAND_TEMPLATE, $MONOCHROME_TEMPLATE, $SKY_BLUE_TEMPLATE"
exit 0
fi
if [ ! -f "$CONF_FILE" ]; then
if cp "$template" "$CONF_FILE"; then
chmod 644 "$CONF_FILE"
uci -q set aurora.theme.config_version="$SCHEMA_VERSION"
uci -q commit aurora
log "First-time initialization: Config created from template at schema v$SCHEMA_VERSION"
else
log "Failed to create config from template"
fi
else
log "Configuration already exists, checking colour token schema"
migrate_color_schema "$template"
# After a reset the config already matches the template, so this is a
# no-op; it only does work for configs that survived the check above.
migrate_structure_keys
fi
}
main
exit 0
@@ -0,0 +1,16 @@
#!/bin/sh
# Font system v2 migration: the font cache under /www is runtime state the
# package never ships, so upgrades from the v1 pipeline must regenerate the
# combined CSS (dropping the old remote @import fallback) and clear cache
# files for presets that no longer exist. Idempotent no-op on fresh installs
# and on already-migrated systems.
readonly RPCD_SCRIPT="/usr/libexec/rpcd/luci.aurora"
if [ -x "$RPCD_SCRIPT" ]; then
logger -t aurora "Running font cache migration"
"$RPCD_SCRIPT" migrate-fonts || logger -t aurora "Font cache migration failed"
fi
exit 0
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,94 @@
config aurora 'theme'
option light_bg '#faf9f5'
option light_surface '#faf9f5'
option light_text '#3d3929'
option light_brand '#c96442'
option light_on_brand '#fff'
option light_link '#c96442'
option light_info '#0e5794'
option light_warning '#653e00'
option light_success '#00523c'
option light_danger '#8d1925'
option light_text_muted '#7f7c70'
option light_text_subtle '#9a978c'
option light_surface_sunken '#f8f7f3'
option light_surface_overlay '#fffefa'
option light_hairline '#3d392921'
option light_hover_faint '#f0eeea'
option light_brand_hover '#b55230'
option light_brand_subtle '#f6e7df'
option light_brand_subtle_hover '#e9dad2'
option light_focus_ring '#c9644299'
option light_progress_start '#dd9880'
option light_progress_end '#c96442'
option light_info_surface '#d8f0ff'
option light_warning_surface '#ffecd2'
option light_success_surface '#d5f8e9'
option light_danger_surface '#ffe6e4'
option light_danger_surface_hover '#f9d9d7'
option light_control_bg '#fffefa'
option light_scrim '#0009'
option light_mega_menu_bg '#f7f6f0'
option light_mega_menu_scrim '#0d1c2a61'
option dark_bg '#262624'
option dark_surface '#30302e'
option dark_text '#c3c0b6'
option dark_brand '#d97757'
option dark_on_brand '#000'
option dark_link '#d97757'
option dark_info '#8dc1ff'
option dark_warning '#f0ba59'
option dark_success '#51bd85'
option dark_danger '#f17070'
option dark_text_muted '#83817a'
option dark_text_subtle '#63625d'
option dark_surface_sunken '#252523'
option dark_surface_overlay '#353533'
option dark_hairline '#c3c0b61a'
option dark_hover_faint '#c3c0b60d'
option dark_brand_hover '#c86848'
option dark_brand_subtle '#40332c'
option dark_brand_subtle_hover '#4b3d37'
option dark_focus_ring '#d9775799'
option dark_progress_start '#965a45'
option dark_progress_end '#d97757'
option dark_info_surface '#20344c'
option dark_warning_surface '#45310b'
option dark_success_surface '#153524'
option dark_danger_surface '#541f20'
option dark_danger_surface_hover '#602a2a'
option dark_control_bg '#252523'
option dark_scrim '#0009'
option dark_mega_menu_bg '#252523'
option dark_mega_menu_scrim '#00000080'
option struct_font_sans '"Space Grotesk", "Lato", ui-sans-serif, system-ui, sans-serif'
option struct_font_mono '"Fira Code", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace'
option struct_spacing '0.25rem'
option struct_content_width_centered '96rem'
option struct_radius_base '0.375rem'
option nav_type 'sidebar'
option toolbar_enabled '0'
config toolbar_item
option title 'Overview'
option url '/cgi-bin/luci/admin/status/overview'
option icon 'overview.svg'
option enabled '1'
config toolbar_item
option title 'System'
option url '/cgi-bin/luci/admin/system/system'
option icon 'system.svg'
option enabled '1'
config toolbar_item
option title 'Software'
option url '/cgi-bin/luci/admin/system/package-manager'
option icon 'software.svg'
option enabled '0'
config toolbar_item
option title 'Network'
option url '/cgi-bin/luci/admin/network/network'
option icon 'network.svg'
option enabled '1'
@@ -0,0 +1,35 @@
# GENERATED by @eamonxg/luci-theme-tokens v2.0.0 -- DO NOT EDIT.
# Ordered color token keys: 10 editable inputs, then 21 engine-derived
# tokens. Read at runtime by /usr/libexec/rpcd/luci.aurora for preset and
# import validation; each key exists as light_<key> and dark_<key> in UCI.
bg
surface
text
brand
on_brand
link
info
warning
success
danger
text_muted
text_subtle
surface_sunken
surface_overlay
hairline
hover_faint
brand_hover
brand_subtle
brand_subtle_hover
focus_ring
progress_start
progress_end
info_surface
warning_surface
success_surface
danger_surface
danger_surface_hover
control_bg
scrim
mega_menu_bg
mega_menu_scrim
@@ -0,0 +1,101 @@
config aurora 'theme'
option light_bg '#f7fafc'
option light_surface '#fff'
option light_text '#121a22'
option light_brand '#0086bf'
option light_on_brand '#fff'
option light_link '#0086bf'
option light_info '#0e5794'
option light_warning '#653e00'
option light_success '#00523c'
option light_danger '#8d1925'
option light_text_muted '#5f666d'
option light_text_subtle '#7f858b'
option light_surface_sunken '#f4f7fa'
option light_surface_overlay '#fcffff'
option light_hairline '#121a2221'
option light_hover_faint '#ebeff2'
option light_brand_hover '#0074ac'
option light_brand_subtle '#dfecf5'
option light_brand_subtle_hover '#d1dfe8'
option light_focus_ring '#0186bf99'
option light_progress_start '#70aed5'
option light_progress_end '#0086bf'
option light_info_surface '#d8f0ff'
option light_warning_surface '#ffecd2'
option light_success_surface '#d5f8e9'
option light_danger_surface '#ffe6e4'
option light_danger_surface_hover '#f9d9d7'
option light_control_bg '#fcffff'
option light_scrim '#0009'
option light_mega_menu_bg '#f1f7fb'
option light_mega_menu_scrim '#0d1c2a61'
option dark_bg '#05070e'
option dark_surface '#141822'
option dark_text '#f9fafb'
option dark_brand '#00978f'
option dark_on_brand '#fff'
option dark_link '#00978f'
option dark_info '#8dc1ff'
option dark_warning '#f0ba59'
option dark_success '#51bd85'
option dark_danger '#f17070'
option dark_text_muted '#909297'
option dark_text_subtle '#5d6066'
option dark_surface_sunken '#0a0e17'
option dark_surface_overlay '#191d27'
option dark_hairline '#f9fafb1a'
option dark_hover_faint '#f9fafb0d'
option dark_brand_hover '#008880'
option dark_brand_subtle '#0a1a20'
option dark_brand_subtle_hover '#142329'
option dark_focus_ring '#00978f99'
option dark_progress_start '#166262'
option dark_progress_end '#00978f'
option dark_info_surface '#20344c'
option dark_warning_surface '#45310b'
option dark_success_surface '#153524'
option dark_danger_surface '#541f20'
option dark_danger_surface_hover '#602a2a'
option dark_control_bg '#0a0e17'
option dark_scrim '#0009'
option dark_mega_menu_bg '#0a0e17'
option dark_mega_menu_scrim '#00000080'
option struct_font_sans '"Lato", ui-sans-serif, system-ui, sans-serif'
option struct_font_mono 'ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace'
option struct_spacing '0.25rem'
option struct_content_width_centered '80rem'
option struct_radius_base '0.5rem'
option nav_type 'mega-menu'
option toolbar_enabled '1'
option icon_cache_version '0'
option logo_svg 'logo.svg'
option favicon_png ''
option favicon_ico 'favicon.ico'
option pwa_apple_touch 'apple-touch-icon.png'
option pwa_icon_192 'app-icon-192x192.png'
option pwa_icon_512 'app-icon-512x512.png'
config toolbar_item
option title 'Overview'
option url '/cgi-bin/luci/admin/status/overview'
option icon 'overview.svg'
option enabled '1'
config toolbar_item
option title 'System'
option url '/cgi-bin/luci/admin/system/system'
option icon 'system.svg'
option enabled '1'
config toolbar_item
option title 'Software'
option url '/cgi-bin/luci/admin/system/package-manager'
option icon 'software.svg'
option enabled '0'
config toolbar_item
option title 'Network'
option url '/cgi-bin/luci/admin/network/network'
option icon 'network.svg'
option enabled '1'
@@ -0,0 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmeGPELx0dsnQ8kRyAy8TiBTHYh+W
Uijl8X8KChGCO4XbH5/tbCL4g3lMOIKmu6seXTrt8e9dax/778izh/SBlg==
-----END PUBLIC KEY-----
@@ -0,0 +1,2 @@
untrusted comment: eamonxg OpenWrt feed
RWSC1y9e3tthY2KnF6i1bEgtcPK80EyKO3SLnCCjnweqsm5NCwl+rs/a
@@ -0,0 +1,31 @@
v2|generated-by-gen-font-presets|do-not-edit
font|sans|default|Lato|Built-in|Lato|"Lato", ui-sans-serif, system-ui, sans-serif
font|sans|system|System UI|System||system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif
font|sans|geist-sans|Geist Sans|Fontsource|Geist Sans|"Geist Sans", "Lato", ui-sans-serif, system-ui, sans-serif
file|sans|geist-sans|400|e6ef6abb39c762ed2259cc814e6f16888c540cd84835962227b56ab2354f27f1|https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.2.5/files/geist-sans-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/geist-sans/5.2.5/files/files/geist-sans-latin-400-normal.woff2
file|sans|geist-sans|500|40073e90816315c92e4f4381bd50b6fdc950b22b0dd010a4179046cf588d4f12|https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.2.5/files/geist-sans-latin-500-normal.woff2|https://registry.npmmirror.com/@fontsource/geist-sans/5.2.5/files/files/geist-sans-latin-500-normal.woff2
file|sans|geist-sans|600|9d99fbd791968493fa507ac846de561cee47b00f8100c23cad333b3cb78392d6|https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.2.5/files/geist-sans-latin-600-normal.woff2|https://registry.npmmirror.com/@fontsource/geist-sans/5.2.5/files/files/geist-sans-latin-600-normal.woff2
file|sans|geist-sans|700|3d59addfafec3452d44717aa0a18911d5c3812487ed06af47f2ef27192ea1eed|https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.2.5/files/geist-sans-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/geist-sans/5.2.5/files/files/geist-sans-latin-700-normal.woff2
font|sans|nunito|Nunito|Fontsource|Nunito|"Nunito", "Lato", ui-sans-serif, system-ui, sans-serif
file|sans|nunito|400|a5906e15ceb68f73d3b2c2076b4057c3f6ed401186d56283b45ce12944ca0735|https://cdn.jsdelivr.net/npm/@fontsource/nunito@5.2.7/files/nunito-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/nunito/5.2.7/files/files/nunito-latin-400-normal.woff2
file|sans|nunito|500|23ae3083dbdaeabf3b9969a3947ddf5d5614683516e28ffa110ca4eb6192a9ff|https://cdn.jsdelivr.net/npm/@fontsource/nunito@5.2.7/files/nunito-latin-500-normal.woff2|https://registry.npmmirror.com/@fontsource/nunito/5.2.7/files/files/nunito-latin-500-normal.woff2
file|sans|nunito|600|45f437de32ff5973eb5616b43c1308bf9fe897442f3d78a603c4cd0a06d66573|https://cdn.jsdelivr.net/npm/@fontsource/nunito@5.2.7/files/nunito-latin-600-normal.woff2|https://registry.npmmirror.com/@fontsource/nunito/5.2.7/files/files/nunito-latin-600-normal.woff2
file|sans|nunito|700|fa89300b9bbb3bd0f60d6991aa055965d98e2ccca27bf8688fe0c39cdc796846|https://cdn.jsdelivr.net/npm/@fontsource/nunito@5.2.7/files/nunito-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/nunito/5.2.7/files/files/nunito-latin-700-normal.woff2
font|sans|space-grotesk|Space Grotesk|Fontsource|Space Grotesk|"Space Grotesk", "Lato", ui-sans-serif, system-ui, sans-serif
file|sans|space-grotesk|400|65fd17fcbd2e2f522940b5f67ead3d23329e02891aa5495e74d11a499c0b0673|https://cdn.jsdelivr.net/npm/@fontsource/space-grotesk@5.2.10/files/space-grotesk-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/space-grotesk/5.2.10/files/files/space-grotesk-latin-400-normal.woff2
file|sans|space-grotesk|500|1b1a8131d9edf975d9decee81e2f2bf504812f7a4f498e5500f28a613e22e64c|https://cdn.jsdelivr.net/npm/@fontsource/space-grotesk@5.2.10/files/space-grotesk-latin-500-normal.woff2|https://registry.npmmirror.com/@fontsource/space-grotesk/5.2.10/files/files/space-grotesk-latin-500-normal.woff2
file|sans|space-grotesk|600|685bbbf69fa616df1ef81847c85fc76be097ddfb3468ff2257be54511ab3130f|https://cdn.jsdelivr.net/npm/@fontsource/space-grotesk@5.2.10/files/space-grotesk-latin-600-normal.woff2|https://registry.npmmirror.com/@fontsource/space-grotesk/5.2.10/files/files/space-grotesk-latin-600-normal.woff2
file|sans|space-grotesk|700|35f8aec56cfd5cbfdb03cc68733a54a0b05bb3617ffcd5fd332badc0b045ca55|https://cdn.jsdelivr.net/npm/@fontsource/space-grotesk@5.2.10/files/space-grotesk-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/space-grotesk/5.2.10/files/files/space-grotesk-latin-700-normal.woff2
font|mono|default|System Mono|Built-in||ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace
font|mono|jetbrains-mono|JetBrains Mono|Fontsource|JetBrains Mono|"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace
file|mono|jetbrains-mono|400|14425ba9c695763c1547f48a206b7aa60350a33ae23de09f0407877f3fcd89eb|https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5.2.8/files/jetbrains-mono-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/jetbrains-mono/5.2.8/files/files/jetbrains-mono-latin-400-normal.woff2
file|mono|jetbrains-mono|700|d0d4e818808f2a0ba39b2b09d1989366f63494e295f003c7ef436697378507e8|https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5.2.8/files/jetbrains-mono-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/jetbrains-mono/5.2.8/files/files/jetbrains-mono-latin-700-normal.woff2
font|mono|maple-mono|Maple Mono|Fontsource|Maple Mono|"Maple Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace
file|mono|maple-mono|400|0f900ecac7020d4251bd5b7c963570d998f3dc1cd195e468f7c9d9902e5556a1|https://cdn.jsdelivr.net/npm/@fontsource/maple-mono@5.2.6/files/maple-mono-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/maple-mono/5.2.6/files/files/maple-mono-latin-400-normal.woff2
file|mono|maple-mono|700|869391b1f3bc7c60206abb5d89bce25504b6809ed638ed5e7695dffd1ff757d8|https://cdn.jsdelivr.net/npm/@fontsource/maple-mono@5.2.6/files/maple-mono-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/maple-mono/5.2.6/files/files/maple-mono-latin-700-normal.woff2
font|mono|fira-code|Fira Code|Fontsource|Fira Code|"Fira Code", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace
file|mono|fira-code|400|6dc9da171ccea71d525379ee1cbf51d143e31acac330a251bb71b3d6060e687c|https://cdn.jsdelivr.net/npm/@fontsource/fira-code@5.2.7/files/fira-code-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/fira-code/5.2.7/files/files/fira-code-latin-400-normal.woff2
file|mono|fira-code|700|987306692df7c81d1ffa1efc98414dfaae10de5e178cfba8e22e92ad9c872e43|https://cdn.jsdelivr.net/npm/@fontsource/fira-code@5.2.7/files/fira-code-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/fira-code/5.2.7/files/files/fira-code-latin-700-normal.woff2
font|mono|cascadia-code|Cascadia Code|Fontsource|Cascadia Code|"Cascadia Code", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace
file|mono|cascadia-code|400|923fd5a61f1618f4597422b66172d0d8615577f81eb9382724390ec8cb8bfd5d|https://cdn.jsdelivr.net/npm/@fontsource/cascadia-code@5.2.3/files/cascadia-code-latin-400-normal.woff2|https://registry.npmmirror.com/@fontsource/cascadia-code/5.2.3/files/files/cascadia-code-latin-400-normal.woff2
file|mono|cascadia-code|700|db2452f9551ba42a0b2b5ef27a3e9438737922fbdaabd71a2446eaf96fe81ad9|https://cdn.jsdelivr.net/npm/@fontsource/cascadia-code@5.2.3/files/cascadia-code-latin-700-normal.woff2|https://registry.npmmirror.com/@fontsource/cascadia-code/5.2.3/files/files/cascadia-code-latin-700-normal.woff2
@@ -0,0 +1,94 @@
config aurora 'theme'
option light_bg '#fcfcfc'
option light_surface '#fff'
option light_text '#000'
option light_brand '#000'
option light_on_brand '#fff'
option light_link '#000'
option light_info '#0e5794'
option light_warning '#653e00'
option light_success '#00523c'
option light_danger '#8d1925'
option light_text_muted '#414141'
option light_text_subtle '#676767'
option light_surface_sunken '#f7f7f7'
option light_surface_overlay '#fff'
option light_hairline '#00000021'
option light_hover_faint '#eee'
option light_brand_hover '#000'
option light_brand_subtle '#d5d5d5'
option light_brand_subtle_hover '#c8c8c8'
option light_focus_ring '#0009'
option light_progress_start '#383838'
option light_progress_end '#000'
option light_info_surface '#d8f0ff'
option light_warning_surface '#ffecd2'
option light_success_surface '#d5f8e9'
option light_danger_surface '#ffe6e4'
option light_danger_surface_hover '#f9d9d7'
option light_control_bg '#fff'
option light_scrim '#0009'
option light_mega_menu_bg '#f6f6f6'
option light_mega_menu_scrim '#0d1c2a61'
option dark_bg '#000'
option dark_surface '#090909'
option dark_text '#fff'
option dark_brand '#fff'
option dark_on_brand '#000'
option dark_link '#fff'
option dark_info '#8dc1ff'
option dark_warning '#f0ba59'
option dark_success '#51bd85'
option dark_danger '#f17070'
option dark_text_muted '#868686'
option dark_text_subtle '#4d4d4d'
option dark_surface_sunken '#030303'
option dark_surface_overlay '#0d0d0d'
option dark_hairline '#ffffff1a'
option dark_hover_faint '#ffffff0d'
option dark_brand_hover '#eee'
option dark_brand_subtle '#0d0d0d'
option dark_brand_subtle_hover '#161616'
option dark_focus_ring '#fff9'
option dark_progress_start '#999'
option dark_progress_end '#fff'
option dark_info_surface '#20344c'
option dark_warning_surface '#45310b'
option dark_success_surface '#153524'
option dark_danger_surface '#541f20'
option dark_danger_surface_hover '#602a2a'
option dark_control_bg '#030303'
option dark_scrim '#0009'
option dark_mega_menu_bg '#030303'
option dark_mega_menu_scrim '#00000080'
option struct_font_sans '"Geist Sans", "Lato", ui-sans-serif, system-ui, sans-serif'
option struct_font_mono '"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace'
option struct_spacing '0.2rem'
option struct_content_width_centered '88rem'
option struct_radius_base '0rem'
option nav_type 'dropdown'
option toolbar_enabled '0'
config toolbar_item
option title 'Overview'
option url '/cgi-bin/luci/admin/status/overview'
option icon 'overview.svg'
option enabled '1'
config toolbar_item
option title 'System'
option url '/cgi-bin/luci/admin/system/system'
option icon 'system.svg'
option enabled '1'
config toolbar_item
option title 'Software'
option url '/cgi-bin/luci/admin/system/package-manager'
option icon 'software.svg'
option enabled '0'
config toolbar_item
option title 'Network'
option url '/cgi-bin/luci/admin/network/network'
option icon 'network.svg'
option enabled '1'
@@ -0,0 +1,94 @@
config aurora 'theme'
option light_bg '#f8f7f4'
option light_surface '#fff'
option light_text '#1a1f2e'
option light_brand '#7c9082'
option light_on_brand '#fff'
option light_link '#7c9082'
option light_info '#0e5794'
option light_warning '#653e00'
option light_success '#00523c'
option light_danger '#8d1925'
option light_text_muted '#656973'
option light_text_subtle '#84878f'
option light_surface_sunken '#f8f7f3'
option light_surface_overlay '#fdfcf9'
option light_hairline '#1a1f2e21'
option light_hover_faint '#f0eeea'
option light_brand_hover '#6a7e70'
option light_brand_subtle '#e8eae6'
option light_brand_subtle_hover '#dbddd9'
option light_focus_ring '#7c908299'
option light_progress_start '#a6b3a8'
option light_progress_end '#7c9082'
option light_info_surface '#d8f0ff'
option light_warning_surface '#ffecd2'
option light_success_surface '#d5f8e9'
option light_danger_surface '#ffe6e4'
option light_danger_surface_hover '#f9d9d7'
option light_control_bg '#fdfcf9'
option light_scrim '#0009'
option light_mega_menu_bg '#f8f6f0'
option light_mega_menu_scrim '#0d1c2a61'
option dark_bg '#0a0a0a'
option dark_surface '#121212'
option dark_text '#f5f5f5'
option dark_brand '#7c9082'
option dark_on_brand '#000'
option dark_link '#7c9082'
option dark_info '#8dc1ff'
option dark_warning '#f0ba59'
option dark_success '#51bd85'
option dark_danger '#f17070'
option dark_text_muted '#919191'
option dark_text_subtle '#616161'
option dark_surface_sunken '#090909'
option dark_surface_overlay '#161616'
option dark_hairline '#f5f5f51a'
option dark_hover_faint '#f5f5f50d'
option dark_brand_hover '#6d8173'
option dark_brand_subtle '#1a1c1a'
option dark_brand_subtle_hover '#232524'
option dark_focus_ring '#7c908299'
option dark_progress_start '#4f5b53'
option dark_progress_end '#7c9082'
option dark_info_surface '#20344c'
option dark_warning_surface '#45310b'
option dark_success_surface '#153524'
option dark_danger_surface '#541f20'
option dark_danger_surface_hover '#602a2a'
option dark_control_bg '#090909'
option dark_scrim '#0009'
option dark_mega_menu_bg '#090909'
option dark_mega_menu_scrim '#00000080'
option struct_font_sans '"Nunito", "Lato", ui-sans-serif, system-ui, sans-serif'
option struct_font_mono '"Maple Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace'
option struct_spacing '0.3rem'
option struct_content_width_centered '92rem'
option struct_radius_base '0.875rem'
option nav_type 'mega-menu'
option toolbar_enabled '1'
config toolbar_item
option title 'Overview'
option url '/cgi-bin/luci/admin/status/overview'
option icon 'overview.svg'
option enabled '1'
config toolbar_item
option title 'System'
option url '/cgi-bin/luci/admin/system/system'
option icon 'system.svg'
option enabled '1'
config toolbar_item
option title 'Software'
option url '/cgi-bin/luci/admin/system/package-manager'
option icon 'software.svg'
option enabled '0'
config toolbar_item
option title 'Network'
option url '/cgi-bin/luci/admin/network/network'
option icon 'network.svg'
option enabled '1'
@@ -0,0 +1,94 @@
config aurora 'theme'
option light_bg '#fff'
option light_surface '#f7f8f8'
option light_text '#0f1419'
option light_brand '#1e9df1'
option light_on_brand '#fff'
option light_link '#1e9df1'
option light_info '#0e5794'
option light_warning '#653e00'
option light_success '#00523c'
option light_danger '#8d1925'
option light_text_muted '#5f6367'
option light_text_subtle '#808487'
option light_surface_sunken '#f7f7f7'
option light_surface_overlay '#fff'
option light_hairline '#0f141921'
option light_hover_faint '#eee'
option light_brand_hover '#008add'
option light_brand_subtle '#e8f4ff'
option light_brand_subtle_hover '#dbe7f1'
option light_focus_ring '#1e9df199'
option light_progress_start '#7cbef5'
option light_progress_end '#1e9df1'
option light_info_surface '#d8f0ff'
option light_warning_surface '#ffecd2'
option light_success_surface '#d5f8e9'
option light_danger_surface '#ffe6e4'
option light_danger_surface_hover '#f9d9d7'
option light_control_bg '#fff'
option light_scrim '#0009'
option light_mega_menu_bg '#f6f6f6'
option light_mega_menu_scrim '#0d1c2a61'
option dark_bg '#000'
option dark_surface '#17181c'
option dark_text '#e7e9ea'
option dark_brand '#1c9cf0'
option dark_on_brand '#fff'
option dark_link '#1c9cf0'
option dark_info '#8dc1ff'
option dark_warning '#f0ba59'
option dark_success '#51bd85'
option dark_danger '#f17070'
option dark_text_muted '#797a7a'
option dark_text_subtle '#454646'
option dark_surface_sunken '#0d0e12'
option dark_surface_overlay '#1c1d21'
option dark_hairline '#e7e9ea1a'
option dark_hover_faint '#e7e9ea0d'
option dark_brand_hover '#008cdf'
option dark_brand_subtle '#00040c'
option dark_brand_subtle_hover '#030c15'
option dark_focus_ring '#1c9cf099'
option dark_progress_start '#21669a'
option dark_progress_end '#1c9cf0'
option dark_info_surface '#20344c'
option dark_warning_surface '#45310b'
option dark_success_surface '#153524'
option dark_danger_surface '#541f20'
option dark_danger_surface_hover '#602a2a'
option dark_control_bg '#0d0e12'
option dark_scrim '#0009'
option dark_mega_menu_bg '#0d0e12'
option dark_mega_menu_scrim '#00000080'
option struct_font_sans 'system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif'
option struct_font_mono 'ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace'
option struct_spacing '0.25rem'
option struct_content_width_centered '80rem'
option struct_radius_base '0.75rem'
option nav_type 'sidebar'
option toolbar_enabled '1'
config toolbar_item
option title 'Overview'
option url '/cgi-bin/luci/admin/status/overview'
option icon 'overview.svg'
option enabled '1'
config toolbar_item
option title 'System'
option url '/cgi-bin/luci/admin/system/system'
option icon 'system.svg'
option enabled '1'
config toolbar_item
option title 'Software'
option url '/cgi-bin/luci/admin/system/package-manager'
option icon 'software.svg'
option enabled '0'
config toolbar_item
option title 'Network'
option url '/cgi-bin/luci/admin/network/network'
option icon 'network.svg'
option enabled '1'
@@ -0,0 +1,28 @@
{
"admin/system/aurora": {
"title": "Aurora Theme Design",
"order": 100,
"action": {
"type": "firstchild"
},
"depends": {
"acl": ["luci-app-aurora"]
}
},
"admin/system/aurora/studio": {
"title": "Design Studio",
"order": 10,
"action": {
"type": "view",
"path": "aurora/studio"
}
},
"admin/system/aurora/marketplace": {
"title": "Theme Marketplace",
"order": 15,
"action": {
"type": "view",
"path": "aurora/marketplace"
}
}
}
@@ -0,0 +1,65 @@
{
"luci-app-aurora": {
"description": "Grant access to Aurora theme configuration",
"read": {
"uci": ["aurora"],
"ubus": {
"luci.aurora": [
"list_icons",
"get_system_info",
"get_init_data",
"get_theme_preset",
"get_font_presets",
"get_font_status",
"export_config",
"get_hub_status",
"hub_local_state",
"hub_me"
],
"file": ["read", "list", "stat"]
},
"file": {
"/tmp/aurora_icon.tmp": ["read", "write"],
"/tmp/aurora_font.tmp": ["read", "write"],
"/tmp/aurora_config_export.conf": ["read"],
"/www/luci-static/aurora/images/*": ["read", "list"],
"/www/luci-static/aurora/fonts/*": ["read", "list"],
"/tmp/aurora_hub_jobs/*": ["read"]
}
},
"write": {
"uci": ["aurora"],
"ubus": {
"luci.aurora": [
"upload_icon",
"write_pwa_manifest",
"remove_icon",
"reset_defaults",
"add_feed",
"import_config",
"apply_theme_preset",
"prepare_font",
"upload_font",
"remove_font",
"hub_apply",
"hub_restore_backup",
"hub_share_begin",
"hub_share_commit",
"hub_delete",
"hub_export_key",
"hub_import_key",
"hub_set_nickname"
],
"file": ["write", "remove", "exec", "stat"]
},
"file": {
"/tmp/aurora_icon.tmp": ["read", "write"],
"/tmp/aurora_font.tmp": ["read", "write"],
"/tmp/aurora_config_import.tmp": ["read", "write", "remove"],
"/www/luci-static/aurora/images/*": ["read", "write", "remove"],
"/www/luci-static/aurora/fonts/*": ["read", "write", "remove"],
"/tmp/aurora_hub_jobs/*": ["read", "write"]
}
}
}
}