Files
ObsidianDragon/res/themes/ui.toml
dan_s c809666624 ObsidianDragon - DragonX ImGui Wallet
Full-node GUI wallet for DragonX cryptocurrency.
Built with Dear ImGui, SDL3, and OpenGL3/DX11.

Features:
- Send/receive shielded and transparent transactions
- Autoshield with merged transaction display
- Built-in CPU mining (xmrig)
- Peer management and network monitoring
- Wallet encryption with PIN lock
- QR code generation for receive addresses
- Transaction history with pagination
- Console for direct RPC commands
- Cross-platform (Linux, Windows)
2026-02-27 00:26:01 -06:00

1565 lines
49 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# === DragonX Wallet Theme File ===
# Copy this entire folder into the 'themes' folder to use it.
# The folder name becomes the theme ID.
# === Images ===
# Place image files in the 'img' subfolder.
# Specify custom filenames below, or use the defaults:
# backgrounds/gradient/dark_gradient.png - background gradient overlay
# logos/logo_ObsidianDragon_dark.png - sidebar logo (128x128 recommended)
# === Colors ===
# Colors use CSS-style formats: #RRGGBB, #RRGGBBAA, or rgba(r,g,b,a)
# Palette variables can be referenced elsewhere with var(--name)
spacing = { section = 16.0, item = 8.0, label-value = 4.0, separator = 20.0 }
input = { min-width = 150.0, width-md = 200.0, width-lg = 300.0, search-width-ratio = 0.3 }
spacing-tokens = { xs = 2.0, sm = 4.0, md = 8.0, lg = 12.0, xl = 16.0, xxl = 24.0 }
[theme]
name = "DragonX"
author = "DanS"
dark = true
elevation = { --elevation-0 = "#120A08", --elevation-1 = "#1A0F0C", --elevation-2 = "#201410", --elevation-3 = "#261914", --elevation-4 = "#2C1E18" }
images = { background_image = "backgrounds/texture/drgx_bg.png", logo = "logos/logo_ObsidianDragon_dark.png" }
[theme.palette]
--primary = "#D32F2F"
--primary-variant = "#B71C1C"
--primary-light = "#EF5350"
--secondary = "#FF6D00"
--secondary-variant = "#E65100"
--secondary-light = "#FF9E40"
--background = "#0C0606"
--surface = "#120A08"
--surface-variant = "#201410"
--on-primary = "#FFFFFF"
--on-secondary = "#000000"
--on-background = "#F0E0D8"
--on-surface = "#F0E0D8"
--on-surface-medium = "rgba(240,224,216,0.7)"
--on-surface-disabled = "rgba(240,224,216,0.44)"
--error = "#FF5252"
--on-error = "#000000"
--success = "#81C784"
--on-success = "#000000"
--warning = "#FFD54F"
--on-warning = "#000000"
--divider = "rgba(255,180,140,0.13)"
--outline = "rgba(255,180,140,0.15)"
--scrim = "rgba(0,0,0,0.55)"
--surface-hover = "rgba(255,180,140,0.07)"
--surface-alt = "rgba(255,180,140,0.05)"
--surface-active = "rgba(255,180,140,0.10)"
--glass-button = "rgba(255,180,140,0.06)"
--glass-button-hover = "rgba(255,180,140,0.12)"
--card-border = "rgba(255,180,140,0.14)"
--text-shadow = "rgba(0,0,0,0.50)"
--input-overlay-text = "rgba(240,224,216,0.30)"
--slider-text = "rgba(240,224,216,0.86)"
--thumb-fill = "rgba(255,180,140,0.15)"
--thumb-border = "rgba(255,180,140,0.50)"
--disabled-label = "rgba(255,180,140,0.18)"
--chart-grid = "rgba(255,180,140,0.05)"
--chart-crosshair = "rgba(255,180,140,0.15)"
--chart-hover-ring = "rgba(255,180,140,0.30)"
--tooltip-bg = "rgba(12,8,6,0.92)"
--tooltip-border = "rgba(255,180,140,0.12)"
--glass-fill = "rgba(255,180,140,0.08)"
--glass-border = "rgba(255,180,140,0.13)"
--glass-noise-tint = "rgba(255,180,140,0.03)"
--tactile-top = "rgba(255,180,140,0.06)"
--tactile-bottom = "rgba(255,180,140,0.0)"
--hover-overlay = "rgba(255,180,140,0.05)"
--active-overlay = "rgba(255,180,140,0.10)"
--rim-light = "rgba(255,180,140,0.08)"
--status-divider = "rgba(255,180,140,0.08)"
--sidebar-hover = "rgba(255,180,140,0.10)"
--sidebar-icon = "rgba(255,180,140,0.36)"
--sidebar-badge = "rgba(240,224,216,1.0)"
--sidebar-divider = "rgba(255,180,140,0.06)"
--chart-line = "rgba(255,180,140,0.10)"
--window-control = "rgba(240,224,216,0.78)"
--window-control-hover = "rgba(255,180,140,0.12)"
--window-close-hover = "rgba(232,17,35,0.78)"
--spinner-track = "rgba(255,180,140,0.10)"
--spinner-active = "rgba(255,109,0,0.85)"
--shutdown-panel-bg = "rgba(10,6,4,0.88)"
--shutdown-panel-border = "rgba(255,180,140,0.07)"
--ram-bar-app = "#EF5350"
--ram-bar-system = "rgba(255,255,255,0.18)"
--accent-total = "#EF5350"
--accent-shielded = "#81C784"
--accent-transparent = "#FFD54F"
--accent-action = "#D32F2F"
--accent-market = "#81C784"
--accent-portfolio = "#FF6D00"
--toast-info-accent = "#D32F2F"
--toast-info-text = "#EF5350"
--toast-success-accent = "rgba(50,180,80,1.0)"
--toast-success-text = "rgba(180,255,180,1.0)"
--toast-warning-accent = "rgba(255,158,64,1.0)"
--toast-warning-text = "rgba(255,230,170,1.0)"
--toast-error-accent = "rgba(211,47,47,1.0)"
--toast-error-text = "rgba(255,138,128,1.0)"
--snackbar-bg = "rgba(45,30,25,0.95)"
--snackbar-text = "rgba(240,224,216,0.87)"
--snackbar-action = "rgba(255,109,0,1.0)"
--snackbar-action-hover = "rgba(255,158,64,1.0)"
--switch-track-off = "rgba(255,180,140,0.12)"
--switch-track-on = "rgba(211,47,47,0.45)"
--switch-thumb-off = "#C0A8A0"
--switch-thumb-on = "#F0E0D8"
--control-shadow = "rgba(0,0,0,0.28)"
--checkbox-check = "#000000"
--app-bar-shadow = "rgba(0,0,0,0.22)"
[fonts]
scale = 1.0
h1 = 20.0
h2 = 18.0
h3 = 16.0
h4 = 16.0
h5 = 14.0
h6 = 14.0
subtitle1 = 16.0
subtitle2 = 14.0
body1 = 14.0
body2 = 15.0
button = 12.0
button-sm = 10.0
button-lg = 14.0
caption = 12.0
overline = 14.0
[typography]
h1 = { letter-spacing = -1.0, line-height = 1.167, text-transform = "none" }
h2 = { letter-spacing = -0.5, line-height = 1.2, text-transform = "none" }
h3 = { letter-spacing = 0.0, line-height = 1.167, text-transform = "none" }
h4 = { letter-spacing = 0.25, line-height = 1.235, text-transform = "none" }
h5 = { letter-spacing = 0.0, line-height = 1.334, text-transform = "none" }
h6 = { letter-spacing = 0.15, line-height = 1.6, text-transform = "none" }
subtitle1 = { letter-spacing = 0.15, line-height = 1.75, text-transform = "none" }
subtitle2 = { letter-spacing = 0.1, line-height = 1.57, text-transform = "none" }
body1 = { letter-spacing = 0.5, line-height = 1.5, text-transform = "none" }
body2 = { letter-spacing = 0.25, line-height = 1.43, text-transform = "none" }
button = { letter-spacing = 1.25, line-height = 1.75, text-transform = "uppercase" }
caption = { letter-spacing = 0.4, line-height = 1.66, text-transform = "none" }
overline = { letter-spacing = 1.5, line-height = 2.66, text-transform = "uppercase" }
[breakpoints]
compact = { max-width = 500.0, max-height = 400.0 }
expanded = { min-width = 900.0, min-height = 700.0 }
[globals]
label = { font = "body2", color = "var(--on-surface)" }
checkbox = { font = "body2", check-color = "var(--primary)" }
table = { header-font = "caption", cell-font = "body2", border-color = "var(--divider)", row-height = 22 }
menu = { font = "body2" }
[globals.button]
font = "button"
padding = [10, 6]
color = "var(--on-primary)"
background = "var(--primary)"
border-radius = 8
opacity = 1.0
min-width = 0
[globals.input]
font = "body1"
padding = [10, 6]
color = "var(--on-surface)"
background = "var(--surface-variant)"
border-radius = 8
border-width = 1
border-color = "var(--outline)"
border-color-focus = "var(--primary)"
placeholder-color = "var(--on-surface-disabled)"
[globals.separator]
color = "var(--divider)"
thickness = 1
margin = [0, 8]
[globals.window]
background = "var(--surface)"
border-radius = 6
padding = [12, 12]
[tabs]
[tabs.balance]
connection-status-height = 100.0
address-button-width = 110.0
address-button-gap = 8.0
type-column-width = 50.0
balance-column-width = 150.0
address-trunc-len = 32
address-button = { width = 160, gap = 8, font = "button-sm" }
action-button = { width = 140, font = "button" }
search-input = { width-ratio = 0.3, max-width = 250 }
balance-label = { font = "h4", color = "var(--on-surface)" }
sync-bar = { height = 3, color = "var(--primary)" }
balance-lerp-speed = { size = 8.0 }
hero-pad-top = { size = 0.0 }
hero-pad-bottom = { size = 8.0 }
card-min-height = { size = 70.0 }
recent-tx-row-height = { size = 22.0 }
button-row-right-margin = { size = 16.0 }
connection-status = { height = 100 }
sparkline-min-height = { size = 20.0 }
sparkline-height = { size = 30.0 }
min-buttons-position = { size = 160.0 }
buttons-position = { size = 200.0 }
recent-tx-row-min-height = { size = 18.0 }
address-icon-min-size = { size = 3.5 }
address-icon-size = { size = 5.0 }
recent-tx-icon-min-size = { size = 3.5 }
recent-tx-icon-size = { size = 5.0 }
amount-right-min-margin = { size = 50.0 }
amount-right-margin = { size = 70.0 }
recent-tx-header-height = { size = 56.0 }
row-hover-rounding = { size = 4.0 }
status-pill-rounding = { size = 3.0 }
recent-tx-reserve-ratio = { size = 0.18 }
addr-list-min-height = { size = 34.0 }
recent-tx-addr-offset = { size = 65.0 }
recent-tx-addr-trunc = { size = 20 }
recent-tx-time-margin = { size = 4.0 }
overline-value-gap = { size = 6.0 }
value-caption-gap = { size = 4.0 }
card-stat-min-height = { size = 60.0 }
accent-inset-ratio = { size = 0.6 }
accent-left-offset = { size = 0.0 }
accent-width = { size = 4.0 }
accent-rounding = { size = 1.5 }
hover-glow-alpha = { size = 40 }
hover-glow-thickness = { size = 1.5 }
compact-hero-pad = { size = 8.0 }
empty-state-btn-width = { size = 180.0 }
empty-state-btn-height = { size = 36.0 }
[tabs.balance.layouts]
default = "classic"
selected = "classic"
[[tabs.balance.layouts.options]]
id = "classic"
name = "Classic"
enabled = true
[[tabs.balance.layouts.options]]
id = "donut"
name = "Donut Chart"
enabled = false
[[tabs.balance.layouts.options]]
id = "consolidated"
name = "Consolidated Card"
enabled = true
[[tabs.balance.layouts.options]]
id = "dashboard"
name = "Dashboard Tiles"
enabled = true
[[tabs.balance.layouts.options]]
id = "vertical-stack"
name = "Vertical Stack"
enabled = true
[[tabs.balance.layouts.options]]
id = "vertical-2x2"
name = "Vertical 2×2"
enabled = true
[[tabs.balance.layouts.options]]
id = "shield"
name = "Privacy Shield"
enabled = false
[[tabs.balance.layouts.options]]
id = "timeline"
name = "Balance Timeline"
enabled = true
[[tabs.balance.layouts.options]]
id = "two-row"
name = "Two-Row Compact"
enabled = true
[[tabs.balance.layouts.options]]
id = "minimal"
name = "Minimal"
enabled = true
[tabs.balance.window]
padding = [12, 12]
[tabs.balance.address-table]
[tabs.balance.address-table.columns]
type = { width = 50 }
balance = { width = 150 }
address = { truncate = 32 }
[tabs.balance.classic]
top-margin = { size = 0 }
card-padding = { size = -1 }
address-table-height = { size = 340 }
card-height = { size = 80 }
card-min-height = { size = 72.0 }
sparkline-gap = { size = 12.0 }
logo-opacity = { size = 180 }
mining-dot-radius = { size = 3.0 }
unconfirmed-badge-padding = { size = 4.0 }
unconfirmed-badge-rounding = { size = 4.0 }
ticker-gap = { size = 4.0 }
card-num-cols = { size = 4 }
card-compact-cols = { size = 2 }
card-narrow-cols = { size = 1 }
card-narrow-width = { size = 400.0 }
[tabs.balance.donut]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = -1 }
card-height = { size = -1 }
hero-pad-ratio = { size = 8.0 }
panel-min-height = { size = 80.0 }
panel-height-ratio = { size = 0.2 }
outer-radius-ratio = { size = 0.4 }
inner-radius-ratio = { size = 0.6 }
max-radius-ratio = { size = 0.12 }
legend-dot-radius = { size = 4.0 }
legend-x-offset = { size = 14 }
legend-line-gap = { size = 6 }
legend-section-gap = { size = 10 }
[tabs.balance.consolidated]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 298 }
card-height = { size = 120 }
card-min-height = { size = 80.0 }
card-height-ratio = { size = 0.22 }
divider-y-ratio = { size = 0.55 }
bar-min-height = { size = 5.0 }
bar-base-height = { size = 10.0 }
divider-alpha = { size = 20 }
divider-thickness = { size = 1.0 }
[tabs.balance.dashboard]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 318 }
card-height = { size = 60 }
hero-height = { size = -1 }
compact-cutoff = { size = 500.0 }
tile-min-height = { size = 70.0 }
tile-height-ratio = { size = 0.16 }
tile-num-cols = { size = 4 }
tile-compact-cols = { size = 2 }
[tabs.balance.vertical-stack]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 262 }
card-height = { size = 120 }
stack-min-height = { size = 72.0 }
stack-height-ratio = { size = 0.16 }
row-gap = { size = 0.0 }
row-min-height = { size = 20.0 }
row-bg-alpha = { size = 8 }
bar-width-ratio = { size = 0.15 }
bar-min-height = { size = 3.0 }
bar-height-ratio = { size = 0.15 }
accent-inset = { size = 2.0 }
sparkline-gap = { size = 12.0 }
sparkline-pad = { size = 4.0 }
[tabs.balance.vertical-2x2]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 336 }
card-height = { size = -1 }
stack-min-height = { size = 54.0 }
stack-height-ratio = { size = 0.12 }
row-gap = { size = 2.0 }
col-gap = { size = 8.0 }
row-min-height = { size = 24.0 }
row-bg-alpha = { size = 8 }
bar-width-ratio = { size = 0.12 }
bar-min-height = { size = 3.0 }
bar-height-ratio = { size = 0.15 }
accent-inset = { size = 2.0 }
sparkline-gap = { size = 12.0 }
sparkline-pad = { size = 4.0 }
[tabs.balance.shield]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = -1 }
card-height = { size = -1 }
gauge-min-height = { size = 72.0 }
gauge-height-ratio = { size = 0.18 }
gauge-radius-ratio = { size = 0.55 }
gauge-max-radius-ratio = { size = 0.15 }
gauge-inner-ratio = { size = 0.7 }
gauge-center-y-ratio = { size = 0.7 }
needle-thickness = { size = 2.0 }
good-threshold = { size = 80.0 }
medium-threshold = { size = 50.0 }
gauge-bg-alpha = { size = 20 }
[tabs.balance.timeline]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 157 }
chart-height = { size = 100 }
chart-min-height = { size = 72.0 }
chart-height-ratio = { size = 0.2 }
summary-card-height = { size = 46 }
summary-min-height = { size = 40.0 }
summary-height-ratio = { size = 0.08 }
sparkline-alpha = { size = 120 }
[tabs.balance.two-row]
top-margin = { size = -1 }
card-padding = { size = -1 }
address-table-height = { size = 348 }
card-height = { size = -1 }
mini-min-height = { size = 28.0 }
mini-base-height = { size = 36.0 }
action-btn-width = { size = 80.0 }
mini-rounding-ratio = { size = 0.5 }
mini-rounding-min = { size = 4.0 }
indicator-radius = { size = 3.0 }
sync-gap = { size = 2.0 }
balance-decimals = { size = 4 }
sparkline-gap = { size = 6.0 }
sparkline-pad = { size = 4.0 }
[tabs.balance.minimal]
top-margin = { size = -1 }
address-table-height = { size = 370 }
dash-length = { size = 6.0 }
dash-gap = { size = 4.0 }
separator-alpha = { size = 25 }
separator-thickness = { size = 1.0 }
[tabs.send]
address-input-right-pad = 100.0
paste-button-width = 90.0
amount-input-width = 200.0
usd-equiv-position = 350.0
memo-height = 60.0
fee-input-width = 150.0
total-label-position = 100.0
send-button-width = 180.0
send-button-height = 40.0
clear-button-width = 100.0
clear-button-height = 40.0
confirm-button-width = 140.0
cancel-button-width = 100.0
address-trunc-len = 40
from-dropdown-trunc-len = 30
confirm-trunc-len = 50
address-input = { width = -100 }
paste-button = { width = 90, font = "button-sm" }
amount-input = { width = 200 }
usd-equiv-label = { position = 350 }
memo-input = { lines = 3, height = 60 }
fee-input = { width = 150 }
total-label = { position = 100 }
clear-button = { width = 100, height = 40, font = "button", background = "var(--surface-variant)" }
confirm-button = { width = 140, font = "button", background = "var(--success)", color = "var(--on-success)" }
cancel-button = { width = 100, font = "button", background = "var(--error)", color = "var(--on-error)" }
address-label = { truncate = 40 }
from-combo = { truncate = 30 }
confirm-label = { truncate = 50 }
suggestion-row-height = { size = 22.0 }
suggestion-max-height = { size = 114.0 }
suggestion-trunc-len = { size = 50 }
fee-rounding = { size = 10.0 }
amount-bar-max-btn-width = { size = 80.0 }
amount-bar-height = { size = 22.0 }
confirm-popup-max-width = { size = 420.0 }
confirm-addr-card-height = { size = 28.0 }
confirm-amount-card-height = { size = 70.0 }
confirm-row-step = { size = 16.0 }
confirm-val-col-x = { size = 90.0 }
confirm-usd-col-x = { size = 80.0 }
progress-card-height = { size = 36.0 }
progress-card-height-txid = { size = 52.0 }
progress-card-pad-x = { size = 12.0 }
progress-card-pad-y = { size = 8.0 }
cta-height = { size = 80.0 }
cta-button-width = { size = 150.0 }
cta-button-height = { size = 30.0 }
action-btn-height = { size = 30.0 }
cancel-btn-min-width = { size = 80.0 }
clear-confirm-yes-width = { size = 100.0 }
clear-confirm-keep-width = { size = 80.0 }
toggle-currency-width = { size = 80.0 }
memo-min-height = { size = 22.0 }
memo-base-height = { size = 41.0 }
confirm-btn-min-height = { size = 28.0 }
confirm-btn-base-height = { size = 36.0 }
sync-banner-min-height = { size = 22.0 }
sync-banner-height = { size = 28.0 }
progress-bar-min-width = { size = 80.0 }
error-btn-min-height = { size = 22.0 }
error-btn-height = { size = 26.0 }
error-icon-inset = { size = 20.0 }
error-btn-rounding = { size = 4.0 }
progress-glass-rounding-ratio = { size = 0.75 }
confirm-addr-card-min-height = { size = 24.0 }
confirm-val-col-min-x = { size = 70.0 }
confirm-usd-col-min-x = { size = 60.0 }
confirm-amount-card-min-height = { size = 54.0 }
confirm-row-step-min = { size = 12.0 }
action-btn-min-height = { size = 26.0 }
recent-icon-min-size = { size = 3.5 }
recent-icon-size = { size = 5.0 }
paste-btn-min-width = { size = 70.0 }
paste-btn-width-ratio = { size = 0.12 }
amount-input-min-width = { size = 100.0 }
swap-icon-width = { size = 12.0 }
swap-icon-gap = { size = 4.0 }
row-hover-rounding = { size = 4.0 }
status-pill-rounding = { size = 3.0 }
fee-row-padding = { size = 2.0 }
right-col-width-ratio = { size = 0.35 }
sync-banner-bg-color = { color = "rgba(153,102,0,0.15)" }
addr-preview-trunc-min = { size = 20.0 }
addr-preview-trunc-divisor = { size = 16.0 }
addr-dropdown-trunc-min = { size = 15.0 }
addr-dropdown-trunc-divisor = { size = 14.0 }
default-addr-trunc-len = { size = 40 }
max-suggestions = { size = 5 }
suggestion-bg-color = { color = "rgba(26,26,38,0.9)" }
suggestion-list-padding = { size = 4.0 }
suggestion-trunc-fallback = { size = 50 }
fee-tier-gap = { size = 4.0 }
fee-tier-active-bg-alpha = { size = 25 }
amount-bar-track-alpha = { size = 15 }
progress-threshold-ok = { size = 0.6 }
progress-threshold-warn = { size = 0.9 }
progress-fill-alpha = { size = 180 }
progress-pct-text-alpha = { size = 220 }
thumb-fill-alpha = { size = 40 }
thumb-border-alpha = { size = 130 }
thumb-border-thickness = { size = 1.5 }
tx-success-timeout = { size = 10.0 }
error-accent-bar-width = { size = 3.0 }
error-icon-x-offset = { size = 2.0 }
error-text-x-offset = { size = 24.0 }
error-btn-area-padding = { size = 8.0 }
error-btn-bg-alpha = { size = 15 }
error-btn-hover-alpha = { size = 30 }
progress-icon-text-gap = { size = 6.0 }
txid-y-offset = { size = 4.0 }
txid-display-threshold = { size = 32 }
txid-trunc-len = { size = 14 }
txid-label-x-offset = { size = 20.0 }
txid-copy-btn-right-offset = { size = 50.0 }
txid-copy-btn-y-offset = { size = 2.0 }
confirm-popup-width-ratio = { size = 0.85 }
confirm-glass-rounding-ratio = { size = 0.75 }
confirm-addr-trunc-len = { size = 48 }
confirm-divider-thickness = { size = 1.0 }
confirm-usd-y-offset = { size = 2.0 }
cancel-btn-width-ratio = { size = 0.28 }
disabled-btn-bg-alpha = { size = 20 }
cancel-btn-hover-alpha = { size = 15 }
cancel-btn-border-size = { size = 1.0 }
undo-btn-bg-alpha = { size = 40 }
undo-btn-hover-alpha = { size = 80 }
divider-thickness = { size = 1.0 }
paste-preview-alpha = { size = 0.3 }
paste-preview-max-chars = { size = 80 }
input-overlay-text-alpha = { size = 80 }
right-col-min-height = { size = 72.0 }
memo-label-gap = { size = 2.0 }
max-recent-sends = { size = 4 }
recent-green-alpha = { size = 140 }
row-hover-alpha = { size = 15 }
row-divider-alpha = { size = 15 }
recent-addr-trunc-len = { size = 20 }
text-shadow-offset-x = { size = 1.0 }
text-shadow-offset-y = { size = 1.0 }
text-shadow-alpha = { size = 120 }
status-min-x-ratio = { size = 0.25 }
status-pill-bg-alpha = { size = 30 }
status-pill-y-offset = { size = 1 }
confirmed-threshold = { size = 10 }
[tabs.send.send-button]
width = 180
height = 40
font = "button-lg"
background = "var(--primary)"
color = "var(--on-primary)"
"@compact" = { width = 140, height = 36 }
[tabs.receive]
left-panel-min-width = 280.0
left-panel-max-width = 450.0
left-panel-width-ratio = 0.4
copy-button-width = 120.0
explorer-button-width = 140.0
qr-code-size = 200.0
label-position = 100.0
amount-input-width = 150.0
address-trunc-len = 35
left-panel = { width-ratio = 0.4, min-width = 280, max-width = 450 }
copy-button = { width = 120, font = "button" }
explorer-button = { width = 140, font = "button" }
qr-code = { size = 200 }
label-column = { position = 100 }
amount-input = { width = 150 }
address-label = { truncate = 35 }
toggle-gap = { size = 2.0 }
toggle-rounding = { size = 4.0 }
qr-col-width-ratio = { size = 0.35 }
currency-icon-width = { size = 12.0 }
currency-icon-gap = { size = 4.0 }
chip-rounding = { size = 12.0 }
chip-gap = { size = 4.0 }
chip-height = { size = 26.0 }
sync-banner-min-height = { size = 22.0 }
sync-banner-height = { size = 28.0 }
toggle-btn-min-width = { size = 30.0 }
toggle-btn-width = { size = 36.0 }
copy-btn-min-width = { size = 60.0 }
copy-btn-width = { size = 75.0 }
new-btn-min-width = { size = 60.0 }
new-btn-width = { size = 75.0 }
recent-icon-min-size = { size = 3.5 }
recent-icon-size = { size = 5.0 }
empty-state-min-height = { size = 54.0 }
empty-state-height = { size = 120.0 }
memo-input-min-height = { size = 24.0 }
memo-input-height = { size = 50.0 }
action-btn-min-height = { size = 26.0 }
action-btn-height = { size = 30.0 }
row-hover-rounding = { size = 4.0 }
status-pill-rounding = { size = 3.0 }
skeleton-rounding = { size = 4.0 }
sync-banner-bg-color = { color = "rgba(153,102,0,0.15)" }
default-addr-trunc-len = { size = 40 }
toggle-active-text-alpha = { size = 255 }
toggle-inactive-bg-alpha = { size = 15 }
addr-preview-trunc-min = { size = 20.0 }
addr-preview-trunc-divisor = { size = 16.0 }
addr-dropdown-trunc-min = { size = 15.0 }
addr-dropdown-trunc-divisor = { size = 14.0 }
new-badge-timeout = { size = 10.0 }
currency-toggle-width = { size = 70.0 }
amount-input-min-width = { size = 100.0 }
input-overlay-text-alpha = { size = 80 }
swap-icon-arrow-gap = { size = 2.5 }
swap-icon-arrow-length-ratio = { size = 0.85 }
swap-icon-arrowhead-size = { size = 2.5 }
swap-icon-line-thickness = { size = 1.5 }
chip-active-bg-alpha = { size = 25 }
memo-label-gap = { size = 2.0 }
memo-max-display-chars = { size = 256 }
clear-btn-hover-alpha = { size = 15 }
qr-max-size = { size = 280.0 }
qr-min-size = { size = 100.0 }
qr-glass-rounding-ratio = { size = 0.75 }
qr-glass-fill-alpha = { size = 12 }
qr-glass-border-alpha = { size = 25 }
qr-unavailable-text-offset = { size = 50.0 }
action-btn-min-width = { size = 90.0 }
action-btn-width-ratio = { size = 0.16 }
btn-hover-alpha = { size = 15 }
explorer-btn-border-size = { size = 1.0 }
divider-thickness = { size = 1.0 }
empty-state-subtitle-gap = { size = 8.0 }
skeleton-height = { size = 100.0 }
skeleton-bar1-height = { size = 16.0 }
skeleton-bar1-width-ratio = { size = 0.6 }
skeleton-bar2-top = { size = 24.0 }
skeleton-bar2-bottom = { size = 36.0 }
skeleton-bar2-width-ratio = { size = 0.4 }
skeleton-text-bottom-offset = { size = 24.0 }
max-recent-receives = { size = 4 }
recent-green-alpha = { size = 140 }
row-hover-alpha = { size = 15 }
row-divider-alpha = { size = 15 }
recent-addr-trunc-len = { size = 20 }
text-shadow-offset-x = { size = 1.0 }
text-shadow-offset-y = { size = 1.0 }
text-shadow-alpha = { size = 120 }
status-min-x-ratio = { size = 0.25 }
status-pill-bg-alpha = { size = 30 }
status-pill-y-offset = { size = 1 }
confirmed-threshold = { size = 10 }
[tabs.transactions]
search-max-width = 300.0
search-width-ratio = 0.3
type-combo-width = 120.0
table-bottom-reserve = 30.0
type-column-width = 80.0
date-column-width = 150.0
amount-column-width = 150.0
confirmations-column-width = 100.0
txid-column-width = 150.0
address-trunc-len = 20
txid-trunc-len = 12
search-input = { max-width = 300, width-ratio = 0.3 }
filter-combo = { width = 120 }
filter-gap = { size = 20.0 }
address-label = { truncate = 20 }
txid-label = { truncate = 12 }
summary-icon-size = { size = 6.0 }
row-icon-size = { size = 5.0 }
row-accent-width = { size = 3.0 }
detail-btn-rounding = { size = 4.0 }
bottom-reserve-min = { size = 20.0 }
bottom-reserve-base = { size = 30.0 }
list-min-height = { size = 60.0 }
list-base-height = { size = 80.0 }
row-hover-rounding = { size = 4.0 }
status-pill-rounding = { size = 3.0 }
accent-bar-rounding = { size = 2.0 }
rows-per-page = { size = 50.0 }
[tabs.transactions.transaction-table]
bottom-reserve = 30
[tabs.transactions.transaction-table.columns]
type = { width = 80 }
date = { width = 150 }
amount = { width = 150, align = "right" }
confirmations = { width = 100 }
txid = { width = 150 }
[tabs.mining]
thread-slider-width = 300.0
start-button-width = 200.0
start-button-height = 50.0
label-column-width = 250.0
thread-slider = { width = 300 }
start-button = { width = 200, height = 50, font = "button-lg" }
label-column = { position = 250 }
btn-max-width-ratio = { size = 0.35 }
cell-size = { size = 26.0 }
cell-min-size = { size = 18.0 }
cell-max-size = { size = 42.0 }
cell-rounding = { size = 4.0 }
active-dot-radius = { size = 3.0 }
stats-left-width-ratio = { size = 0.55 }
stats-min-line-height = { size = 14.0 }
recent-row-height = { size = 24.0 }
recent-row-min-height = { size = 18.0 }
card-budget-min = { size = 200.0 }
button-max-width-clamp = { size = 120.0 }
cell-gap-min = { size = 2.0 }
cell-gap-ratio = { size = 0.2 }
control-card-min-height = { size = 60.0 }
active-cell-border-thickness = { size = 1.5 }
cell-border-thickness = { size = 1.0 }
button-icon-y-ratio = { size = 0.42 }
button-label-y-ratio = { size = 0.78 }
chart-line-thickness = { size = 1.5 }
details-card-min-height = { size = 50.0 }
ram-bar = { height = 6.0, rounding = 3.0, opacity = 0.65 }
stats-col1-value-x-ratio = { size = 0.12 }
stats-col2-x-ratio = { size = 0.14 }
mode-toggle-width = { size = 80.0 }
mode-toggle-height = { size = 32.0 }
mode-toggle-rounding = { size = 6.0 }
pool-url-input = { width = 300.0, height = 28.0 }
pool-worker-input = { width = 200.0, height = 28.0 }
log-panel-height = { size = 120.0 }
log-panel-min = { size = 60.0 }
[tabs.peers]
table-min-height = 150.0
table-height-ratio = 0.45
version-column-width = 150.0
ping-column-width = 80.0
connected-column-width = 100.0
ban-score-column-width = 80.0
banned-table-min-height = 100.0
banned-table-reserve = 30.0
banned-until-column-width = 200.0
action-column-width = 100.0
stats-card-min-height = { size = 44.0 }
stats-card-base-height = { size = 64.0 }
row-accent-width = { size = 3.0 }
peer-panel-height-ratio = { size = 0.75 }
peer-panel-height-ratio-bans = { size = 0.5 }
peer-panel-min-height = { size = 60.0 }
row-selection-rounding = { size = 4.0 }
row-accent-rounding = { size = 2.0 }
ping-dot-radius-base = { size = 2.5 }
ping-dot-radius-scale = { size = 1.0 }
ping-dot-x-offset = { size = 4.0 }
address-x-offset = { size = 14.0 }
dir-pill-padding = { size = 4.0 }
dir-pill-y-offset = { size = 1.0 }
dir-pill-y-bottom = { size = 3.0 }
dir-pill-rounding = { size = 3.0 }
tls-badge-min-width = { size = 20.0 }
tls-badge-width = { size = 28.0 }
tls-badge-rounding = { size = 3.0 }
banned-panel-min-height = { size = 60.0 }
banned-row-height-padding = { size = 12.0 }
banned-row-rounding = { size = 4.0 }
banned-accent-rounding = { size = 2.0 }
ban-dot-radius-base = { size = 2.0 }
ban-dot-radius-scale = { size = 1.0 }
ban-dot-x-offset = { size = 4.0 }
banned-address-x-offset = { size = 14.0 }
unban-btn-right-offset-multiplier = { size = 3.5 }
banned-row-btn-reserve = { size = 70.0 }
[tabs.peers.peer-table]
min-height = 150
height-ratio = 0.45
[tabs.peers.peer-table.columns]
version = { width = 150 }
ping = { width = 80 }
connected = { width = 100 }
ban-score = { width = 80 }
[tabs.peers.banned-table]
min-height = 100
bottom-reserve = 30
[tabs.peers.banned-table.columns]
banned-until = { width = 200 }
action = { width = 100 }
[tabs.market]
summary-min-height = 100.0
summary-max-height = 160.0
summary-height-ratio = 0.25
btc-price-position = 250.0
change-24h-position = 120.0
volume-label-position = 300.0
volume-value-position = 420.0
market-cap-label-position = 600.0
market-cap-value-position = 720.0
chart-height = 250.0
portfolio-value-position = 150.0
portfolio-btc-position = 350.0
summary-panel = { min-height = 100, max-height = 160, height-ratio = 0.25 }
stats-card-min-height = { size = 44.0 }
chart-line-thickness = { size = 2.0 }
btc-price-label = { position = 250 }
change-24h-label = { position = 120 }
volume-label = { position = 300 }
volume-value-label = { position = 420 }
market-cap-label = { position = 600 }
market-cap-value-label = { position = 720 }
chart = { height = 220 }
portfolio-value-label = { position = 150 }
portfolio-btc-label = { position = 350 }
hero-card-min-height = { size = 50.0 }
hero-card-height = { size = 80.0 }
accent-stripe-inset-ratio = { size = 0.0 }
accent-stripe-left-offset = { size = 0.0 }
accent-stripe-width = { size = 4.0 }
accent-stripe-rounding = { size = 1.5 }
chart-y-axis-min-padding = { size = 40.0 }
chart-y-axis-padding = { size = 70.0 }
chart-dot-min-radius = { size = 1.5 }
chart-dot-radius = { size = 2.0 }
chart-hover-dot-min-radius = { size = 3.0 }
chart-hover-dot-radius = { size = 4.0 }
chart-hover-ring-min-radius = { size = 4.5 }
chart-hover-ring-radius = { size = 6.0 }
ratio-bar-min-height = { size = 4.0 }
ratio-bar-height = { size = 6.0 }
# Exchange pair bar
pair-bar-height = { height = 32.0 }
pair-chip-height = { height = 24.0 }
pair-chip-radius = { radius = 12.0 }
pair-chip-spacing = { size = 6.0 }
pair-bar-fade-width = { size = 48.0 }
pair-bar-arrow-size = { size = 28.0 }
exchange-combo-width = { size = 180.0 }
exchange-top-gap = { size = 0.0 }
[tabs.console]
input-area-padding = 8.0
output-line-spacing = 2.0
output = { line-spacing = 2 }
scroll-multiplier = { size = 3.0 }
selection-extension = { size = 4.0 }
input-cursor-offset = { size = 3.0 }
output-min-height = { size = 40.0 }
output-min-height-ratio = { size = 0.15 }
status-dot-radius-base = { size = 3.0 }
status-dot-radius-scale = { size = 2.0 }
filter-max-width = { size = 160.0 }
filter-width-ratio = { size = 0.25 }
popup-max-width = { size = 680.0 }
popup-width-ratio = { size = 0.85 }
popup-max-height = { size = 520.0 }
popup-height-ratio = { size = 0.8 }
cmd-name-col-width = { size = 180.0 }
cmd-params-col-width = { size = 200.0 }
cmd-min-width = { size = 500.0 }
scanline-speed = { size = 40.0 }
scanline-height = { size = 36.0 }
scanline-alpha = { size = 8.0 }
scanline-gap = { size = 2.0 }
scanline-line-alpha = { size = 4.0 }
scanline-glow-spread = { size = 4.0 }
scanline-glow-intensity = { size = 0.6 }
scanline-glow-color = { size = 255.0 }
zoom-step = { size = 0.1 }
zoom-min = { size = 0.5 }
zoom-max = { size = 3.0 }
[tabs.console.input-area]
padding = [8, 8]
[dialogs]
[dialogs.about]
width = 500.0
height = 450.0
title-font-scale = 1.5
label-column-position = 120.0
link-button-width = 100.0
close-button-width = 120.0
edition-label-right-offset = 120.0
window = { width = 500, height = 450 }
title-label = { font = "h4", color = "var(--primary)" }
version-label = { font = "caption", position = 120 }
edition-label = { position = 120 }
link-button = { width = 100, font = "button-sm" }
close-button = { width = 120, font = "button", align = "center" }
[dialogs.settings]
width = 600.0
height = 550.0
label-column-position = 150.0
combo-width = 200.0
connection-label-position = 100.0
port-input-width = 100.0
wallet-button-width = 200.0
save-button-width = 100.0
cancel-button-width = 100.0
window = { width = 600, height = 550 }
label = { position = 150 }
combo = { width = 200 }
connection-label = { position = 100 }
port-input = { width = 100 }
wallet-button = { width = 200, font = "button" }
save-button = { width = 100, font = "button", background = "var(--primary)" }
cancel-button = { width = 100, font = "button", background = "var(--surface-variant)" }
[dialogs.transaction-details]
width = 550.0
height = 450.0
confirmations-right-offset = 150.0
label-column-position = 120.0
txid-input-right-pad = 80.0
copy-button-width = 70.0
address-multiline-right-pad = 80.0
address-multiline-height = 50.0
memo-height = 60.0
bottom-button-width = 130.0
window = { width = 550, height = 450 }
label = { position = 120 }
confirmations-label = { position = 150 }
txid-input = { width = -80 }
copy-button = { width = 70, font = "button-sm" }
address-input = { width = -80, height = 50 }
memo-input = { height = 60 }
bottom-button = { width = 130, font = "button" }
[dialogs.key-export]
width = 550.0
height = 380.0
warning-box-height = 80.0
address-input-height = 60.0
reveal-button-width = 120.0
key-display-height = 80.0
toggle-button-width = 80.0
copy-button-width = 150.0
close-button-width = 100.0
window = { width = 550, height = 380 }
warning-box = { height = 80 }
address-input = { height = 60 }
reveal-button = { width = 120, font = "button" }
key-display = { height = 80 }
toggle-button = { width = 80, font = "button-sm" }
copy-button = { width = 150, font = "button" }
close-button = { width = 100, font = "button" }
[dialogs.qr-popup]
width = 380.0
height = 480.0
qr-code-size = 280.0
address-input-height = 60.0
button-width = 120.0
window = { width = 380, height = 480 }
qr-code = { size = 280 }
address-input = { height = 60 }
action-button = { width = 120, font = "button" }
[dialogs.validate-address]
width = 500.0
height = 300.0
validate-button-width = 100.0
paste-button-width = 80.0
label-column-position = 100.0
close-button-width = 100.0
window = { width = 500, height = 300 }
validate-button = { width = 100, font = "button" }
paste-button = { width = 80, font = "button-sm" }
label = { position = 100 }
close-button = { width = 100, font = "button" }
[dialogs.address-book]
width = 600.0
height = 450.0
table-bottom-reserve = 35.0
label-column-width = 150.0
notes-column-width = 150.0
address-trunc-len = 40
address-front-len = 20
address-back-len = 17
input-width = 400.0
notes-height = 60.0
action-button-width = 100.0
window = { width = 600, height = 450 }
address-front-label = { truncate = 20 }
address-back-label = { truncate = 17 }
address-input = { width = 400 }
notes-input = { height = 60 }
action-button = { width = 100, font = "button" }
[dialogs.address-book.address-table]
bottom-reserve = 35
[dialogs.address-book.address-table.columns]
label = { width = 150 }
notes = { width = 150 }
address = { truncate = 40 }
[dialogs.shield]
width = 500.0
height = 400.0
address-trunc-threshold = 50
address-trunc-front = 20
address-trunc-back = 20
fee-input-width = 150.0
utxo-limit-input-width = 150.0
shield-button-width = 120.0
cancel-button-width = 100.0
window = { width = 500, height = 400 }
address-label = { truncate = 50 }
address-front-label = { truncate = 20 }
address-back-label = { truncate = 20 }
fee-input = { width = 150 }
utxo-limit-input = { width = 150 }
shield-button = { width = 120, font = "button" }
cancel-button = { width = 100, font = "button" }
[dialogs.request-payment]
width = 500.0
height = 550.0
z-addr-trunc-threshold = 50
z-addr-trunc-front = 20
z-addr-trunc-back = 20
t-addr-trunc-threshold = 40
t-addr-trunc-front = 17
t-addr-trunc-back = 17
amount-input-width = 150.0
memo-height = 60.0
qr-code-size = 200.0
button-width = 100.0
window = { width = 500, height = 550 }
z-addr-label = { truncate = 50 }
z-addr-front-label = { truncate = 20 }
z-addr-back-label = { truncate = 20 }
t-addr-label = { truncate = 40 }
t-addr-front-label = { truncate = 17 }
t-addr-back-label = { truncate = 17 }
amount-input = { width = 150 }
memo-input = { height = 60 }
qr-code = { size = 200 }
action-button = { width = 100, font = "button" }
[dialogs.block-info]
width = 550.0
height = 450.0
height-input-width = 150.0
label-column-position = 150.0
hash-trunc-threshold = 50
hash-trunc-front = 20
hash-trunc-back = 20
close-button-bottom-offset = 40.0
close-button-width = 100.0
window = { width = 550, height = 450 }
height-input = { width = 150 }
label = { position = 150 }
hash-label = { truncate = 50 }
hash-front-label = { truncate = 20 }
hash-back-label = { truncate = 20 }
close-button = { width = 100, font = "button" }
[dialogs.export-all-keys]
width = 500.0
height = 400.0
export-button-width = 120.0
close-button-width = 100.0
window = { width = 500, height = 400 }
export-button = { width = 120, font = "button" }
close-button = { width = 100, font = "button" }
[dialogs.export-transactions]
width = 450.0
height = 280.0
export-button-width = 120.0
close-button-width = 100.0
window = { width = 450, height = 280 }
export-button = { width = 120, font = "button" }
close-button = { width = 100, font = "button" }
[dialogs.backup-wallet]
width = 550.0
height = 280.0
backup-button-width = 120.0
close-button-width = 100.0
window = { width = 550, height = 280 }
backup-button = { width = 120, font = "button" }
close-button = { width = 100, font = "button" }
[dialogs.import-key]
width = 550.0
height = 450.0
key-input-height = 150.0
rescan-height-input-width = 100.0
import-button-width = 120.0
close-button-width = 100.0
window = { width = 550, height = 450 }
key-input = { height = 150 }
rescan-height-input = { width = 100 }
import-button = { width = 120, font = "button" }
close-button = { width = 100, font = "button" }
[components]
[components.status-bar]
padding = [8.0, 8.0]
height = 32.0
right-content-offset = 220.0
version-right-offset = 70.0
text-style = { font = "body2", opacity = 0.6 }
icon-text-gap = { size = 4.0 }
section-gap = { size = 16.0 }
separator-gap = { size = 8.0 }
right-content = { position = 220 }
version-label = { position = 30 }
connection-dot = { opacity = 1.0 }
[components.status-bar.window]
height = 30
padding = [8, 0]
[components.notifications]
width = 350.0
height = 60.0
border-width = 1.0
border-radius = 8.0
padding = [12.0, 10.0]
progress-bar-y-offset = 18.0
pill-margin-y = { size = 3.0 }
pill-rounding = { size = 12.0 }
padding-x = { size = 12.0 }
glass-fill-alpha = { size = 18.0 }
glass-border-alpha = { size = 35.0 }
progress-bar-height = { size = 2.0 }
duration-info = { size = 1.0 }
duration-success = { size = 2.5 }
duration-warning = { size = 3.5 }
duration-error = { size = 4.0 }
window = { width = 350, height = 60, border-radius = 8, border-width = 1 }
viewport-padding = { size = 20.0 }
stack-gap = { size = 10.0 }
menu-bar-offset = { size = 25.0 }
notification-text = { font = "body2", color = "var(--on-surface)" }
notification-progress = { color = "var(--primary)", height = 4, position = 18 }
[components.modal-scrim]
fill-alpha = { size = 12.0 }
noise-alpha = { size = 14.0 }
[components.qr-code]
module-scale = { size = 4 }
border-modules = { size = 2 }
[components.sidebar]
min-width = 280
max-width = 400
width-ratio = 0.32
width = { size = 140.0 }
collapsed-width = { size = 64.0 }
collapse-anim-speed = { size = 10.0 }
auto-collapse-threshold = { size = 800.0 }
section-gap = { size = 4.0 }
section-label-pad-left = { size = 16.0 }
item-height = { size = 42.0 }
item-pad-x = { size = 8.0 }
min-height = { size = 360.0 }
margin-top = { size = -12 }
margin-bottom = { size = 40 }
glass-margin-y = { size = 6.0 }
glass-margin-left = { size = 6.0 }
glass-margin-right = { size = 2.0 }
strip-height = { size = 20.0 }
nav-gap = { size = 14.0 }
button-pad-collapsed = { size = 8.0 }
button-pad-expanded = { size = 14.0 }
icon-half-size = { size = 7.0 }
icon-label-gap = { size = 8.0 }
badge-radius-dot = { size = 4.0 }
badge-radius-number = { size = 8.0 }
button-spacing = { size = 4.0 }
bottom-padding = { size = 0.0 }
exit-icon-gap = { size = 4.0 }
cutout-shadow-alpha = { size = 55 }
cutout-highlight-alpha = { size = 8 }
cutout-line-width = { size = 0.75 }
cutout-glow-expand = { size = 0.0 }
cutout-glow-alpha = { size = 128 }
cutout-glow-line-width = { size = 0.5 }
inset-shadow-threshold = { size = 0.1 }
inset-shadow-inset = { size = 0.0 }
inset-shadow-max-alpha = { size = 48.0 }
inset-shadow-fade-ratio = { size = 5.0 }
[components.content-area]
padding-x = 0.0
padding-y = 0.0
margin-top = { size = 4.0 }
margin-bottom = { size = -40.0 }
edge-fade-zone = { size = 0.0 }
[components.content-area.window]
padding = [0, 12]
[components.main-window]
padding-bottom = { size = 0.0 }
page-fade-speed = { size = 8.0 }
collapse-hysteresis = { size = 60.0 }
header-icon = { icon-dark = "logos/logo_ObsidianDragon_dark.png", icon-light = "logos/logo_ObsidianDragon_light.png" }
coin-icon = { icon = "logos/logo_dragonx_128.png" }
header-title = { font = "subtitle1", size = 14.0, pad-x = 16.0, pad-y = 12.0, logo-gap = 8.0, opacity = 0.7 }
[components.main-window.window]
padding = [12, 38]
[components.shutdown]
content-height = { height = 120.0 }
spinner-radius = { size = 20.0 }
spinner-thickness = { size = 3.0 }
spinner-speed = { size = 2.5 }
panel-width-fraction = { size = 0.7 }
panel-max-height = { size = 160.0 }
panel-rounding = { size = 6.0 }
panel-padding = { size = 12.0 }
separator-pad-fraction = { size = 0.25 }
[components.settings-page]
top-margin = { size = 2.0 }
appearance-card-height = { size = 220.0 }
combo-row-gap = { size = 12.0 }
combo-inline-label-width = { size = 100.0 }
compact-breakpoint = { size = 700.0 }
wallet-btn-columns-wide = { size = 5.0 }
wallet-btn-columns-narrow = { size = 3.0 }
section-divider-alpha = { opacity = 0.08 }
edge-fade-zone = { size = 28.0 }
edge-fade-offset-top = { size = 0.0 }
edge-fade-offset-bottom = { size = 0.0 }
scroll-fade-color = { color = "var(--background)" }
label-min-width = { size = 100.0 }
label-width = { size = 120.0 }
input-min-width = { size = 180.0 }
refresh-btn-width = { size = 80.0 }
theme-combo-min-width = { size = 180.0 }
effects-input-min-width = { size = 100.0 }
effects-input-offset = { size = 80.0 }
save-btn-width = { size = 120.0 }
reset-btn-width = { size = 140.0 }
wallet-btn-min-height = { size = 24.0 }
wallet-btn-height = { size = 30.0 }
wallet-btn-min-width = { size = 130.0 }
wallet-btn-padding = { size = 24.0 }
rpc-label-min-width = { size = 70.0 }
rpc-label-width = { size = 85.0 }
security-combo-width = { size = 120.0 }
port-input-min-width = { size = 60.0 }
port-input-width-ratio = { size = 0.4 }
[components.main-layout]
app-bar-height = { size = 64.0 }
status-bar-height = { size = 32.0 }
drawer-width = { size = 256.0 }
sync-bar-width = { size = 100.0 }
sync-bar-height = { size = 4.0 }
app-bar-button-size = { size = 40.0 }
app-bar-btn-rounding = { size = 20.0 }
title-font-height = { size = 24.0 }
[style]
shadow-multiplier = { size = 0.6 }
shadow-multiplier-light = { size = 2.5 }
window-padding-x = 10.0
window-padding-y = 10.0
frame-padding-x = 8.0
frame-padding-y = 4.0
item-spacing-x = 8.0
item-spacing-y = 6.0
item-inner-spacing-x = 6.0
item-inner-spacing-y = 4.0
indent-spacing = 20.0
scrollbar-size = 6.0
grab-min-size = 8.0
border-width = { window = 1.0, child = 1.0, popup = 1.0, frame = 0.0 }
[style.border-radius]
window = 6.0
child = 4.0
frame = 4.0
popup = 4.0
scrollbar = 4.0
grab = 4.0
tab = 4.0
[style.padding]
window = [10.0, 10.0]
frame = [8.0, 4.0]
[style.spacing]
item = [8.0, 6.0]
item-inner = [6.0, 4.0]
indent = 20.0
[panels]
summary = { min-width = 280.0, max-width = 400.0, width-ratio = 0.32, min-height = 200.0, max-height = 350.0, height-ratio = 0.8 }
side-panel = { min-width = 280.0, max-width = 450.0, width-ratio = 0.4, min-height = 200.0, max-height = 350.0, height-ratio = 0.8 }
table = { min-height = 150.0, height-ratio = 0.45, min-remaining = 100.0, default-reserve = 30.0 }
[button]
min-width = 180.0
width = 140.0
width-lg = 160.0
height = 0.0
right-align-gap = 8.0
right-align-margin = 16.0
right-align-min-pos = 200.0
[business]
block-reward = { size = 1.5625 }
default-fee = { size = 0.0001 }
memo-max-length = { size = 512 }
utxo-limit = { size = 50 }
ram-base-mb = { size = 500.0 }
ram-dataset-mb = { size = 2080.0 }
ram-cache-mb = { size = 256.0 }
ram-per-thread-mb = { size = 2.0 }
[animations]
pulse-speed-normal = { size = 3.0 }
pulse-speed-slow = { size = 2.0 }
pulse-speed-fast = { size = 4.0 }
pulse-base-normal = { size = 0.6 }
pulse-amp-normal = { size = 0.4 }
pulse-base-glow = { size = 0.5 }
pulse-amp-glow = { size = 0.5 }
skeleton-base = { size = 0.3 }
skeleton-amp = { size = 0.15 }
heat-glow-speed = { size = 2.5 }
heat-glow-phase-offset = { size = 0.4 }
[console]
color-command = { color = "rgba(191,209,229,1.0)" }
color-result = { color = "rgba(200,200,200,1.0)" }
color-error = { color = "rgba(246,71,64,1.0)" }
color-daemon = { color = "rgba(160,160,160,0.706)" }
color-info = { color = "rgba(191,209,229,1.0)" }
[inline-dialogs]
about = { width = 400.0, height = 250.0, close-button-width = 120.0, button-font = 1 }
import-key = { width = 500.0, height = 200.0, button-width = 120.0, button-font = 1 }
backup = { width = 500.0, height = 200.0, button-width = 120.0, button-font = 1 }
[inline-dialogs.export-key]
width = 600.0
height = 300.0
key-display-height = 60.0
close-button-width = 120.0
button-font = 1
close-button-font = -1
addr-front-len = 20
addr-back-len = 8
[backdrop]
gradient-top-r = 20
gradient-top-g = 8
gradient-top-b = 4
gradient-top-a = 85
gradient-bottom-r = 10
gradient-bottom-g = 4
gradient-bottom-b = 2
gradient-bottom-a = 65
background-alpha = 0.38
surface-alpha = 0.48
frame-alpha = 0.72
surface-inline-alpha = 0.52
background-inline-alpha = 0.28
base-color-top = "rgba(30,14,10,210)"
base-color-bottom = "rgba(12,6,4,210)"
texture-tint-alpha = 135
noise-opacity = { size = 48.0 }
noise-tile-scale = { size = 1.0 }
noise-texture-size = { size = 256.0 }
noise-max-alpha = { size = 6.0 }
[responsive]
glass-rounding = 8.0
card-inner-padding = 12.0
card-gap = 8.0
ref-width = 1200.0
ref-height = 650.0
min-h-scale = 0.5
max-h-scale = 1.5
min-v-scale = 0.5
max-v-scale = 1.4
min-density = 0.6
max-density = 1.2
compact-width = 500.0
compact-height = 400.0
expanded-width = 900.0
expanded-height = 700.0
# ---------------------------------------------------------------------------
# Loading Overlay (content area — while daemon is starting/syncing)
# ---------------------------------------------------------------------------
[screens.loading]
spinner-radius = { size = 18.0 }
spinner-thickness = { size = 2.5 }
spinner-speed = { size = 2.5 }
title-font = { font = "h6" }
status-font = { font = "body2" }
progress-bar = { height = 6.0, radius = 3.0 }
progress-width = { size = 260.0 }
backdrop-alpha = { opacity = 0.80 }
vertical-gap = { size = 8.0 }
# ---------------------------------------------------------------------------
# First-Run Wizard Screens
# ---------------------------------------------------------------------------
[screens.first-run]
card = { width = 520.0, height = 440.0 }
logo = { size = 56.0 }
title = { font = "h5" }
subtitle = { font = "body1" }
progress-bar = { height = 8.0, radius = 4.0 }
primary-button = { width = 220.0, height = 44.0, font = "subtitle1" }
skip-button = { width = 120.0, height = 44.0, font = "subtitle1" }
trust-warning = { font = "caption", opacity = 0.7 }
strength-bar = { height = 4.0, radius = 2.0 }
# ---------------------------------------------------------------------------
# Lock Screen
# ---------------------------------------------------------------------------
[screens.lock-screen]
card = { width = 400.0, height = 400.0 }
logo = { size = 64.0 }
title = { font = "h5" }
input = { width = 320.0, height = 40.0 }
unlock-button = { width = 320.0, height = 44.0, font = "subtitle1" }
error-text = { font = "caption" }
backdrop-alpha = { opacity = 0.0 }
mode-toggle = { font = "caption" }
# ---------------------------------------------------------------------------
# Security defaults
# ---------------------------------------------------------------------------
[security]
auto-lock-timeout = { size = 300.0 }
unlock-duration = { size = 600.0 }
max-attempts-before-lockout = { size = 5.0 }
lockout-base-delay = { size = 2.0 }
pin-min-length = { size = 4.0 }
pin-max-length = { size = 8.0 }
# ---------------------------------------------------------------------------
# Theme Visual Effects (DragonX base — fire-themed)
# Warm ember glow that smolders rather than flashes. Fire gradient tinting
# gives panels a volcanic warmth. No shimmer — fire doesn't sweep.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 1.0 }
hue-cycle-speed = { size = 0.08 }
hue-cycle-saturation = { size = 0.85 }
hue-cycle-value = { size = 0.85 }
hue-cycle-range = { size = 0.15 }
hue-cycle-offset = { size = 0.0 }
rainbow-border-enabled = { size = 1.0 }
rainbow-border-speed = { size = 0.03 }
rainbow-border-alpha = { size = 0.08 }
rainbow-border-stop-0 = { color = "#D32F2F" }
rainbow-border-stop-1 = { color = "#FF6D00" }
rainbow-border-stop-2 = { color = "#FFD54F" }
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 1.0 }
positional-hue-top = { color = "#B71C1C" }
positional-hue-bottom = { color = "#FF9E40" }
positional-hue-strength = { size = 0.15 }
# Thin bright crimson border glow on active sidebar button
glow-pulse-enabled = { size = 1.0 }
glow-pulse-speed = { size = 0.35 }
glow-pulse-min-alpha = { size = 0.15 }
glow-pulse-max-alpha = { size = 0.45 }
glow-pulse-radius = { size = 3.0 }
glow-pulse-color = { color = "#E53935" }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 1.0 }
ember-rise-count = { size = 7.0 }
ember-rise-speed = { size = 0.35 }
ember-rise-particle-size = { size = 1.4 }
ember-rise-alpha = { size = 0.45 }
ember-rise-color = { color = "#FF6A00" }
# Shader-like viewport overlay — warm fire color grading + vignette
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.04 }
viewport-wash-tl = { color = "#B71C1C" }
viewport-wash-tr = { color = "#FF6A00" }
viewport-wash-bl = { color = "#3E2723" }
viewport-wash-br = { color = "#FF8F00" }
viewport-wash-rotate = { size = 0.0 }
viewport-wash-pulse = { size = 0.15 }
viewport-wash-pulse-depth = { size = 0.3 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#1A0800" }
viewport-vignette-radius = { size = 0.20 }
viewport-vignette-alpha = { size = 0.15 }