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)
This commit is contained in:
2026-02-26 02:31:52 -06:00
commit 3aee55b49c
306 changed files with 177789 additions and 0 deletions

41
res/ObsidianDragon.rc Normal file
View File

@@ -0,0 +1,41 @@
// ObsidianDragon Windows Resource File
// Application icon — shown in Explorer, taskbar, and Alt-Tab
// Path configured by CMake (absolute path for cross-compilation)
// Use numeric ordinal 1 so LoadIcon(hInst, MAKEINTRESOURCE(1)) finds it.
1 ICON "@OBSIDIAN_ICO_PATH@"
// ---------------------------------------------------------------------------
// VERSIONINFO — sets the description shown in Task Manager, Explorer
// "Details" tab, and other Windows tools. Without this, MinGW-w64
// fills in its own runtime description ("POSIX WinThreads for Windows").
// ---------------------------------------------------------------------------
#include <winver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION @DRAGONX_VER_MAJOR@,@DRAGONX_VER_MINOR@,@DRAGONX_VER_PATCH@,0
PRODUCTVERSION @DRAGONX_VER_MAJOR@,@DRAGONX_VER_MINOR@,@DRAGONX_VER_PATCH@,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0x0L
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0" // US-English, Unicode
BEGIN
VALUE "CompanyName", "The Hush Developers\0"
VALUE "FileDescription", "ObsidianDragon Wallet\0"
VALUE "FileVersion", "@DRAGONX_VERSION@\0"
VALUE "InternalName", "ObsidianDragon\0"
VALUE "LegalCopyright", "Copyright 2024-2026 The Hush Developers. GPLv3.\0"
VALUE "OriginalFilename", "ObsidianDragon.exe\0"
VALUE "ProductName", "ObsidianDragon\0"
VALUE "ProductVersion", "@DRAGONX_VERSION@\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200 // US-English, Unicode
END
END

Binary file not shown.

BIN
res/fonts/Ubuntu-Light.ttf Normal file

Binary file not shown.

BIN
res/fonts/Ubuntu-Medium.ttf Normal file

Binary file not shown.

BIN
res/fonts/Ubuntu-R.ttf Normal file

Binary file not shown.

BIN
res/img/ObsidianDragon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

139
res/lang/de.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "Kontostand",
"send": "Senden",
"receive": "Empfangen",
"transactions": "Transaktionen",
"mining": "Mining",
"peers": "Knoten",
"market": "Markt",
"settings": "Einstellungen",
"summary": "Übersicht",
"shielded": "Geschützt",
"transparent": "Transparent",
"total": "Gesamt",
"unconfirmed": "Unbestätigt",
"your_addresses": "Ihre Adressen",
"z_addresses": "Z-Adressen",
"t_addresses": "T-Adressen",
"no_addresses": "Keine Adressen gefunden. Erstellen Sie eine mit den Schaltflächen oben.",
"new_z_address": "Neue Z-Adresse",
"new_t_address": "Neue T-Adresse",
"type": "Typ",
"address": "Adresse",
"copy_address": "Vollständige Adresse kopieren",
"send_from_this_address": "Von dieser Adresse senden",
"export_private_key": "Privaten Schlüssel exportieren",
"export_viewing_key": "Ansichtsschlüssel exportieren",
"show_qr_code": "QR-Code anzeigen",
"not_connected": "Nicht mit Daemon verbunden...",
"pay_from": "Zahlen von",
"send_to": "Senden an",
"amount": "Betrag",
"memo": "Memo (optional, verschlüsselt)",
"miner_fee": "Miner-Gebühr",
"fee": "Gebühr",
"send_transaction": "Transaktion senden",
"clear": "Löschen",
"select_address": "Adresse auswählen...",
"paste": "Einfügen",
"max": "Max",
"available": "Verfügbar",
"invalid_address": "Ungültiges Adressformat",
"memo_z_only": "Hinweis: Memos sind nur beim Senden an geschützte (z) Adressen verfügbar",
"characters": "Zeichen",
"from": "Von",
"to": "An",
"sending": "Transaktion wird gesendet",
"confirm_send": "Senden bestätigen",
"confirm_transaction": "Transaktion bestätigen",
"confirm_and_send": "Bestätigen & Senden",
"cancel": "Abbrechen",
"receiving_addresses": "Ihre Empfangsadressen",
"new_z_shielded": "Neue z-Adresse (geschützt)",
"new_t_transparent": "Neue t-Adresse (transparent)",
"address_details": "Adressdetails",
"view_on_explorer": "Im Explorer ansehen",
"qr_code": "QR-Code",
"request_payment": "Zahlung anfordern",
"date": "Datum",
"status": "Status",
"confirmations": "Bestätigungen",
"confirmed": "Bestätigt",
"pending": "Ausstehend",
"sent": "gesendet",
"received": "empfangen",
"mined": "geschürft",
"mining_control": "Mining-Steuerung",
"start_mining": "Mining starten",
"stop_mining": "Mining stoppen",
"mining_threads": "Mining-Threads",
"mining_statistics": "Mining-Statistiken",
"local_hashrate": "Lokale Hashrate",
"network_hashrate": "Netzwerk-Hashrate",
"difficulty": "Schwierigkeit",
"est_time_to_block": "Gesch. Zeit bis Block",
"mining_off": "Mining ist AUS",
"mining_on": "Mining ist AN",
"connected_peers": "Verbundene Knoten",
"banned_peers": "Gesperrte Knoten",
"ip_address": "IP-Adresse",
"version": "Version",
"height": "Höhe",
"ping": "Ping",
"ban": "Sperren",
"unban": "Entsperren",
"clear_all_bans": "Alle Sperren aufheben",
"price_chart": "Preisdiagramm",
"current_price": "Aktueller Preis",
"24h_change": "24h-Änderung",
"24h_volume": "24h-Volumen",
"market_cap": "Marktkapitalisierung",
"general": "Allgemein",
"display": "Anzeige",
"network": "Netzwerk",
"theme": "Design",
"language": "Sprache",
"dragonx_green": "DragonX (Grün)",
"dark": "Dunkel",
"light": "Hell",
"allow_custom_fees": "Benutzerdefinierte Gebühren erlauben",
"use_embedded_daemon": "Integrierten dragonxd verwenden",
"save": "Speichern",
"close": "Schließen",
"file": "Datei",
"edit": "Bearbeiten",
"view": "Ansicht",
"help": "Hilfe",
"import_private_key": "Privaten Schlüssel importieren...",
"backup_wallet": "Wallet sichern...",
"exit": "Beenden",
"about_dragonx": "Über ObsidianDragon",
"refresh_now": "Jetzt aktualisieren",
"about": "Über",
"import": "Importieren",
"export": "Exportieren",
"copy_to_clipboard": "In Zwischenablage kopieren",
"connected": "Verbunden",
"disconnected": "Getrennt",
"connecting": "Verbinde...",
"syncing": "Synchronisiere...",
"block": "Block",
"no_addresses_available": "Keine Adressen verfügbar",
"error": "Fehler",
"success": "Erfolg",
"warning": "Warnung",
"amount_exceeds_balance": "Betrag übersteigt Kontostand",
"transaction_sent": "Transaktion erfolgreich gesendet"
}

139
res/lang/es.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "Saldo",
"send": "Enviar",
"receive": "Recibir",
"transactions": "Transacciones",
"mining": "Minería",
"peers": "Nodos",
"market": "Mercado",
"settings": "Configuración",
"summary": "Resumen",
"shielded": "Protegido",
"transparent": "Transparente",
"total": "Total",
"unconfirmed": "Sin Confirmar",
"your_addresses": "Tus Direcciones",
"z_addresses": "Direcciones-Z",
"t_addresses": "Direcciones-T",
"no_addresses": "No se encontraron direcciones. Crea una usando los botones de arriba.",
"new_z_address": "Nueva Dir-Z",
"new_t_address": "Nueva Dir-T",
"type": "Tipo",
"address": "Dirección",
"copy_address": "Copiar Dirección Completa",
"send_from_this_address": "Enviar Desde Esta Dirección",
"export_private_key": "Exportar Clave Privada",
"export_viewing_key": "Exportar Clave de Vista",
"show_qr_code": "Mostrar Código QR",
"not_connected": "No conectado al daemon...",
"pay_from": "Pagar Desde",
"send_to": "Enviar A",
"amount": "Cantidad",
"memo": "Memo (opcional, encriptado)",
"miner_fee": "Comisión de Minero",
"fee": "Comisión",
"send_transaction": "Enviar Transacción",
"clear": "Limpiar",
"select_address": "Seleccionar dirección...",
"paste": "Pegar",
"max": "Máximo",
"available": "Disponible",
"invalid_address": "Formato de dirección inválido",
"memo_z_only": "Nota: Los memos solo están disponibles al enviar a direcciones protegidas (z)",
"characters": "caracteres",
"from": "Desde",
"to": "A",
"sending": "Enviando transacción",
"confirm_send": "Confirmar Envío",
"confirm_transaction": "Confirmar Transacción",
"confirm_and_send": "Confirmar y Enviar",
"cancel": "Cancelar",
"receiving_addresses": "Tus Direcciones de Recepción",
"new_z_shielded": "Nueva Dirección-z (Protegida)",
"new_t_transparent": "Nueva Dirección-t (Transparente)",
"address_details": "Detalles de Dirección",
"view_on_explorer": "Ver en Explorador",
"qr_code": "Código QR",
"request_payment": "Solicitar Pago",
"date": "Fecha",
"status": "Estado",
"confirmations": "Confirmaciones",
"confirmed": "Confirmada",
"pending": "Pendiente",
"sent": "enviado",
"received": "recibido",
"mined": "minado",
"mining_control": "Control de Minería",
"start_mining": "Iniciar Minería",
"stop_mining": "Detener Minería",
"mining_threads": "Hilos de Minería",
"mining_statistics": "Estadísticas de Minería",
"local_hashrate": "Tasa Hash Local",
"network_hashrate": "Tasa Hash de Red",
"difficulty": "Dificultad",
"est_time_to_block": "Tiempo Est. al Bloque",
"mining_off": "Minería APAGADA",
"mining_on": "Minería ENCENDIDA",
"connected_peers": "Nodos Conectados",
"banned_peers": "Nodos Bloqueados",
"ip_address": "Dirección IP",
"version": "Versión",
"height": "Altura",
"ping": "Ping",
"ban": "Bloquear",
"unban": "Desbloquear",
"clear_all_bans": "Limpiar Todos los Bloqueos",
"price_chart": "Gráfico de Precio",
"current_price": "Precio Actual",
"24h_change": "Cambio 24h",
"24h_volume": "Volumen 24h",
"market_cap": "Cap. de Mercado",
"general": "General",
"display": "Pantalla",
"network": "Red",
"theme": "Tema",
"language": "Idioma",
"dragonx_green": "DragonX (Verde)",
"dark": "Oscuro",
"light": "Claro",
"allow_custom_fees": "Permitir comisiones personalizadas",
"use_embedded_daemon": "Usar dragonxd integrado",
"save": "Guardar",
"close": "Cerrar",
"file": "Archivo",
"edit": "Editar",
"view": "Ver",
"help": "Ayuda",
"import_private_key": "Importar Clave Privada...",
"backup_wallet": "Respaldar Cartera...",
"exit": "Salir",
"about_dragonx": "Acerca de DragonX",
"refresh_now": "Actualizar Ahora",
"about": "Acerca de",
"import": "Importar",
"export": "Exportar",
"copy_to_clipboard": "Copiar al Portapapeles",
"connected": "Conectado",
"disconnected": "Desconectado",
"connecting": "Conectando...",
"syncing": "Sincronizando...",
"block": "Bloque",
"no_addresses_available": "No hay direcciones disponibles",
"error": "Error",
"success": "Éxito",
"warning": "Advertencia",
"amount_exceeds_balance": "La cantidad excede el saldo",
"transaction_sent": "Transacción enviada exitosamente"
}

139
res/lang/fr.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "Solde",
"send": "Envoyer",
"receive": "Recevoir",
"transactions": "Transactions",
"mining": "Minage",
"peers": "Nœuds",
"market": "Marché",
"settings": "Paramètres",
"summary": "Résumé",
"shielded": "Protégé",
"transparent": "Transparent",
"total": "Total",
"unconfirmed": "Non confirmé",
"your_addresses": "Vos adresses",
"z_addresses": "Adresses-Z",
"t_addresses": "Adresses-T",
"no_addresses": "Aucune adresse trouvée. Créez-en une avec les boutons ci-dessus.",
"new_z_address": "Nouvelle adresse-Z",
"new_t_address": "Nouvelle adresse-T",
"type": "Type",
"address": "Adresse",
"copy_address": "Copier l'adresse complète",
"send_from_this_address": "Envoyer depuis cette adresse",
"export_private_key": "Exporter la clé privée",
"export_viewing_key": "Exporter la clé de visualisation",
"show_qr_code": "Afficher le QR code",
"not_connected": "Non connecté au démon...",
"pay_from": "Payer depuis",
"send_to": "Envoyer à",
"amount": "Montant",
"memo": "Mémo (optionnel, chiffré)",
"miner_fee": "Frais de mineur",
"fee": "Frais",
"send_transaction": "Envoyer la transaction",
"clear": "Effacer",
"select_address": "Sélectionner une adresse...",
"paste": "Coller",
"max": "Max",
"available": "Disponible",
"invalid_address": "Format d'adresse invalide",
"memo_z_only": "Note : les mémos ne sont disponibles qu'en envoyant vers des adresses protégées (z)",
"characters": "caractères",
"from": "De",
"to": "À",
"sending": "Envoi de la transaction",
"confirm_send": "Confirmer l'envoi",
"confirm_transaction": "Confirmer la transaction",
"confirm_and_send": "Confirmer et envoyer",
"cancel": "Annuler",
"receiving_addresses": "Vos adresses de réception",
"new_z_shielded": "Nouvelle adresse-z (protégée)",
"new_t_transparent": "Nouvelle adresse-t (transparente)",
"address_details": "Détails de l'adresse",
"view_on_explorer": "Voir sur l'explorateur",
"qr_code": "QR Code",
"request_payment": "Demander un paiement",
"date": "Date",
"status": "Statut",
"confirmations": "Confirmations",
"confirmed": "Confirmée",
"pending": "En attente",
"sent": "envoyé",
"received": "reçu",
"mined": "miné",
"mining_control": "Contrôle du minage",
"start_mining": "Démarrer le minage",
"stop_mining": "Arrêter le minage",
"mining_threads": "Threads de minage",
"mining_statistics": "Statistiques de minage",
"local_hashrate": "Hashrate local",
"network_hashrate": "Hashrate du réseau",
"difficulty": "Difficulté",
"est_time_to_block": "Temps est. avant bloc",
"mining_off": "Minage DÉSACTIVÉ",
"mining_on": "Minage ACTIVÉ",
"connected_peers": "Nœuds connectés",
"banned_peers": "Nœuds bannis",
"ip_address": "Adresse IP",
"version": "Version",
"height": "Hauteur",
"ping": "Ping",
"ban": "Bannir",
"unban": "Débannir",
"clear_all_bans": "Lever tous les bannissements",
"price_chart": "Graphique des prix",
"current_price": "Prix actuel",
"24h_change": "Variation 24h",
"24h_volume": "Volume 24h",
"market_cap": "Capitalisation",
"general": "Général",
"display": "Affichage",
"network": "Réseau",
"theme": "Thème",
"language": "Langue",
"dragonx_green": "DragonX (Vert)",
"dark": "Sombre",
"light": "Clair",
"allow_custom_fees": "Autoriser les frais personnalisés",
"use_embedded_daemon": "Utiliser le dragonxd intégré",
"save": "Enregistrer",
"close": "Fermer",
"file": "Fichier",
"edit": "Édition",
"view": "Affichage",
"help": "Aide",
"import_private_key": "Importer une clé privée...",
"backup_wallet": "Sauvegarder le portefeuille...",
"exit": "Quitter",
"about_dragonx": "À propos d'ObsidianDragon",
"refresh_now": "Actualiser maintenant",
"about": "À propos",
"import": "Importer",
"export": "Exporter",
"copy_to_clipboard": "Copier dans le presse-papiers",
"connected": "Connecté",
"disconnected": "Déconnecté",
"connecting": "Connexion...",
"syncing": "Synchronisation...",
"block": "Bloc",
"no_addresses_available": "Aucune adresse disponible",
"error": "Erreur",
"success": "Succès",
"warning": "Avertissement",
"amount_exceeds_balance": "Le montant dépasse le solde",
"transaction_sent": "Transaction envoyée avec succès"
}

139
res/lang/ja.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "残高",
"send": "送金",
"receive": "受取",
"transactions": "取引履歴",
"mining": "マイニング",
"peers": "ノード",
"market": "マーケット",
"settings": "設定",
"summary": "概要",
"shielded": "シールド",
"transparent": "トランスパレント",
"total": "合計",
"unconfirmed": "未確認",
"your_addresses": "アドレス一覧",
"z_addresses": "Z-アドレス",
"t_addresses": "T-アドレス",
"no_addresses": "アドレスが見つかりません。上のボタンで作成してください。",
"new_z_address": "新規 Z-アドレス",
"new_t_address": "新規 T-アドレス",
"type": "タイプ",
"address": "アドレス",
"copy_address": "アドレスをコピー",
"send_from_this_address": "このアドレスから送金",
"export_private_key": "秘密鍵をエクスポート",
"export_viewing_key": "閲覧鍵をエクスポート",
"show_qr_code": "QRコードを表示",
"not_connected": "デーモンに未接続...",
"pay_from": "支払元",
"send_to": "送金先",
"amount": "金額",
"memo": "メモ(任意、暗号化)",
"miner_fee": "マイナー手数料",
"fee": "手数料",
"send_transaction": "送金する",
"clear": "クリア",
"select_address": "アドレスを選択...",
"paste": "貼り付け",
"max": "最大",
"available": "利用可能",
"invalid_address": "無効なアドレス形式",
"memo_z_only": "注メモはシールドzアドレスへの送金時のみ利用可能です",
"characters": "文字",
"from": "送金元",
"to": "送金先",
"sending": "送金中",
"confirm_send": "送金確認",
"confirm_transaction": "取引確認",
"confirm_and_send": "確認して送金",
"cancel": "キャンセル",
"receiving_addresses": "受取アドレス",
"new_z_shielded": "新規 z-アドレス(シールド)",
"new_t_transparent": "新規 t-アドレス(トランスパレント)",
"address_details": "アドレス詳細",
"view_on_explorer": "エクスプローラーで表示",
"qr_code": "QRコード",
"request_payment": "支払いを要求",
"date": "日付",
"status": "ステータス",
"confirmations": "確認数",
"confirmed": "確認済み",
"pending": "保留中",
"sent": "送金済",
"received": "受取済",
"mined": "採掘済",
"mining_control": "マイニング制御",
"start_mining": "マイニング開始",
"stop_mining": "マイニング停止",
"mining_threads": "マイニングスレッド",
"mining_statistics": "マイニング統計",
"local_hashrate": "ローカルハッシュレート",
"network_hashrate": "ネットワークハッシュレート",
"difficulty": "難易度",
"est_time_to_block": "推定ブロック発見時間",
"mining_off": "マイニング停止中",
"mining_on": "マイニング稼働中",
"connected_peers": "接続中のノード",
"banned_peers": "ブロック済みノード",
"ip_address": "IPアドレス",
"version": "バージョン",
"height": "ブロック高",
"ping": "Ping",
"ban": "ブロック",
"unban": "ブロック解除",
"clear_all_bans": "すべてのブロックを解除",
"price_chart": "価格チャート",
"current_price": "現在価格",
"24h_change": "24時間変動",
"24h_volume": "24時間取引量",
"market_cap": "時価総額",
"general": "一般",
"display": "表示",
"network": "ネットワーク",
"theme": "テーマ",
"language": "言語",
"dragonx_green": "DragonXグリーン",
"dark": "ダーク",
"light": "ライト",
"allow_custom_fees": "カスタム手数料を許可",
"use_embedded_daemon": "内蔵 dragonxd を使用",
"save": "保存",
"close": "閉じる",
"file": "ファイル",
"edit": "編集",
"view": "表示",
"help": "ヘルプ",
"import_private_key": "秘密鍵をインポート...",
"backup_wallet": "ウォレットをバックアップ...",
"exit": "終了",
"about_dragonx": "ObsidianDragonについて",
"refresh_now": "今すぐ更新",
"about": "このアプリについて",
"import": "インポート",
"export": "エクスポート",
"copy_to_clipboard": "クリップボードにコピー",
"connected": "接続済み",
"disconnected": "切断",
"connecting": "接続中...",
"syncing": "同期中...",
"block": "ブロック",
"no_addresses_available": "利用可能なアドレスがありません",
"error": "エラー",
"success": "成功",
"warning": "警告",
"amount_exceeds_balance": "金額が残高を超えています",
"transaction_sent": "送金が完了しました"
}

139
res/lang/ko.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "잔액",
"send": "보내기",
"receive": "받기",
"transactions": "거래 내역",
"mining": "채굴",
"peers": "노드",
"market": "시장",
"settings": "설정",
"summary": "요약",
"shielded": "차폐됨",
"transparent": "투명",
"total": "합계",
"unconfirmed": "미확인",
"your_addresses": "내 주소",
"z_addresses": "Z-주소",
"t_addresses": "T-주소",
"no_addresses": "주소를 찾을 수 없습니다. 위의 버튼을 사용하여 생성하세요.",
"new_z_address": "새 Z-주소",
"new_t_address": "새 T-주소",
"type": "유형",
"address": "주소",
"copy_address": "전체 주소 복사",
"send_from_this_address": "이 주소에서 보내기",
"export_private_key": "개인키 내보내기",
"export_viewing_key": "조회키 내보내기",
"show_qr_code": "QR 코드 표시",
"not_connected": "데몬에 연결되지 않음...",
"pay_from": "출금 주소",
"send_to": "받는 주소",
"amount": "금액",
"memo": "메모 (선택사항, 암호화됨)",
"miner_fee": "채굴자 수수료",
"fee": "수수료",
"send_transaction": "거래 보내기",
"clear": "지우기",
"select_address": "주소 선택...",
"paste": "붙여넣기",
"max": "최대",
"available": "사용 가능",
"invalid_address": "잘못된 주소 형식",
"memo_z_only": "참고: 메모는 차폐(z) 주소로 보낼 때만 사용할 수 있습니다",
"characters": "글자",
"from": "보낸 사람",
"to": "받는 사람",
"sending": "거래 전송 중",
"confirm_send": "보내기 확인",
"confirm_transaction": "거래 확인",
"confirm_and_send": "확인 및 보내기",
"cancel": "취소",
"receiving_addresses": "수신 주소",
"new_z_shielded": "새 z-주소 (차폐)",
"new_t_transparent": "새 t-주소 (투명)",
"address_details": "주소 상세",
"view_on_explorer": "탐색기에서 보기",
"qr_code": "QR 코드",
"request_payment": "결제 요청",
"date": "날짜",
"status": "상태",
"confirmations": "확인 수",
"confirmed": "확인됨",
"pending": "대기 중",
"sent": "보냄",
"received": "받음",
"mined": "채굴됨",
"mining_control": "채굴 제어",
"start_mining": "채굴 시작",
"stop_mining": "채굴 중지",
"mining_threads": "채굴 스레드",
"mining_statistics": "채굴 통계",
"local_hashrate": "로컬 해시레이트",
"network_hashrate": "네트워크 해시레이트",
"difficulty": "난이도",
"est_time_to_block": "예상 블록 발견 시간",
"mining_off": "채굴 꺼짐",
"mining_on": "채굴 켜짐",
"connected_peers": "연결된 노드",
"banned_peers": "차단된 노드",
"ip_address": "IP 주소",
"version": "버전",
"height": "블록 높이",
"ping": "핑",
"ban": "차단",
"unban": "차단 해제",
"clear_all_bans": "모든 차단 해제",
"price_chart": "가격 차트",
"current_price": "현재 가격",
"24h_change": "24시간 변동",
"24h_volume": "24시간 거래량",
"market_cap": "시가총액",
"general": "일반",
"display": "화면",
"network": "네트워크",
"theme": "테마",
"language": "언어",
"dragonx_green": "DragonX (녹색)",
"dark": "다크",
"light": "라이트",
"allow_custom_fees": "사용자 수수료 허용",
"use_embedded_daemon": "내장 dragonxd 사용",
"save": "저장",
"close": "닫기",
"file": "파일",
"edit": "편집",
"view": "보기",
"help": "도움말",
"import_private_key": "개인키 가져오기...",
"backup_wallet": "지갑 백업...",
"exit": "종료",
"about_dragonx": "ObsidianDragon 정보",
"refresh_now": "지금 새로고침",
"about": "정보",
"import": "가져오기",
"export": "내보내기",
"copy_to_clipboard": "클립보드에 복사",
"connected": "연결됨",
"disconnected": "연결 끊김",
"connecting": "연결 중...",
"syncing": "동기화 중...",
"block": "블록",
"no_addresses_available": "사용 가능한 주소 없음",
"error": "오류",
"success": "성공",
"warning": "경고",
"amount_exceeds_balance": "금액이 잔액을 초과합니다",
"transaction_sent": "거래가 성공적으로 전송되었습니다"
}

139
res/lang/pt.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "Saldo",
"send": "Enviar",
"receive": "Receber",
"transactions": "Transações",
"mining": "Mineração",
"peers": "Nós",
"market": "Mercado",
"settings": "Configurações",
"summary": "Resumo",
"shielded": "Protegido",
"transparent": "Transparente",
"total": "Total",
"unconfirmed": "Não confirmado",
"your_addresses": "Seus endereços",
"z_addresses": "Endereços-Z",
"t_addresses": "Endereços-T",
"no_addresses": "Nenhum endereço encontrado. Crie um usando os botões acima.",
"new_z_address": "Novo endereço-Z",
"new_t_address": "Novo endereço-T",
"type": "Tipo",
"address": "Endereço",
"copy_address": "Copiar endereço completo",
"send_from_this_address": "Enviar deste endereço",
"export_private_key": "Exportar chave privada",
"export_viewing_key": "Exportar chave de visualização",
"show_qr_code": "Mostrar código QR",
"not_connected": "Não conectado ao daemon...",
"pay_from": "Pagar de",
"send_to": "Enviar para",
"amount": "Valor",
"memo": "Memo (opcional, criptografado)",
"miner_fee": "Taxa do minerador",
"fee": "Taxa",
"send_transaction": "Enviar transação",
"clear": "Limpar",
"select_address": "Selecionar endereço...",
"paste": "Colar",
"max": "Máx.",
"available": "Disponível",
"invalid_address": "Formato de endereço inválido",
"memo_z_only": "Nota: memos só estão disponíveis ao enviar para endereços protegidos (z)",
"characters": "caracteres",
"from": "De",
"to": "Para",
"sending": "Enviando transação",
"confirm_send": "Confirmar envio",
"confirm_transaction": "Confirmar transação",
"confirm_and_send": "Confirmar e enviar",
"cancel": "Cancelar",
"receiving_addresses": "Seus endereços de recebimento",
"new_z_shielded": "Novo endereço-z (protegido)",
"new_t_transparent": "Novo endereço-t (transparente)",
"address_details": "Detalhes do endereço",
"view_on_explorer": "Ver no explorador",
"qr_code": "Código QR",
"request_payment": "Solicitar pagamento",
"date": "Data",
"status": "Status",
"confirmations": "Confirmações",
"confirmed": "Confirmada",
"pending": "Pendente",
"sent": "enviado",
"received": "recebido",
"mined": "minerado",
"mining_control": "Controle de mineração",
"start_mining": "Iniciar mineração",
"stop_mining": "Parar mineração",
"mining_threads": "Threads de mineração",
"mining_statistics": "Estatísticas de mineração",
"local_hashrate": "Hashrate local",
"network_hashrate": "Hashrate da rede",
"difficulty": "Dificuldade",
"est_time_to_block": "Tempo est. até o bloco",
"mining_off": "Mineração DESLIGADA",
"mining_on": "Mineração LIGADA",
"connected_peers": "Nós conectados",
"banned_peers": "Nós banidos",
"ip_address": "Endereço IP",
"version": "Versão",
"height": "Altura",
"ping": "Ping",
"ban": "Banir",
"unban": "Desbanir",
"clear_all_bans": "Remover todos os banimentos",
"price_chart": "Gráfico de preço",
"current_price": "Preço atual",
"24h_change": "Variação 24h",
"24h_volume": "Volume 24h",
"market_cap": "Cap. de mercado",
"general": "Geral",
"display": "Exibição",
"network": "Rede",
"theme": "Tema",
"language": "Idioma",
"dragonx_green": "DragonX (Verde)",
"dark": "Escuro",
"light": "Claro",
"allow_custom_fees": "Permitir taxas personalizadas",
"use_embedded_daemon": "Usar dragonxd embutido",
"save": "Salvar",
"close": "Fechar",
"file": "Arquivo",
"edit": "Editar",
"view": "Exibir",
"help": "Ajuda",
"import_private_key": "Importar chave privada...",
"backup_wallet": "Fazer backup da carteira...",
"exit": "Sair",
"about_dragonx": "Sobre ObsidianDragon",
"refresh_now": "Atualizar agora",
"about": "Sobre",
"import": "Importar",
"export": "Exportar",
"copy_to_clipboard": "Copiar para área de transferência",
"connected": "Conectado",
"disconnected": "Desconectado",
"connecting": "Conectando...",
"syncing": "Sincronizando...",
"block": "Bloco",
"no_addresses_available": "Nenhum endereço disponível",
"error": "Erro",
"success": "Sucesso",
"warning": "Aviso",
"amount_exceeds_balance": "Valor excede o saldo",
"transaction_sent": "Transação enviada com sucesso"
}

139
res/lang/ru.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "Баланс",
"send": "Отправить",
"receive": "Получить",
"transactions": "Транзакции",
"mining": "Майнинг",
"peers": "Узлы",
"market": "Рынок",
"settings": "Настройки",
"summary": "Сводка",
"shielded": "Защищённый",
"transparent": "Прозрачный",
"total": "Итого",
"unconfirmed": "Неподтверждённые",
"your_addresses": "Ваши адреса",
"z_addresses": "Z-адреса",
"t_addresses": "T-адреса",
"no_addresses": "Адреса не найдены. Создайте адрес с помощью кнопок выше.",
"new_z_address": "Новый Z-адрес",
"new_t_address": "Новый T-адрес",
"type": "Тип",
"address": "Адрес",
"copy_address": "Копировать полный адрес",
"send_from_this_address": "Отправить с этого адреса",
"export_private_key": "Экспорт приватного ключа",
"export_viewing_key": "Экспорт ключа просмотра",
"show_qr_code": "Показать QR-код",
"not_connected": "Не подключён к демону...",
"pay_from": "Оплата с",
"send_to": "Отправить на",
"amount": "Сумма",
"memo": "Примечание (необязательно, зашифровано)",
"miner_fee": "Комиссия майнера",
"fee": "Комиссия",
"send_transaction": "Отправить транзакцию",
"clear": "Очистить",
"select_address": "Выберите адрес...",
"paste": "Вставить",
"max": "Макс.",
"available": "Доступно",
"invalid_address": "Неверный формат адреса",
"memo_z_only": "Примечания доступны только при отправке на защищённые (z) адреса",
"characters": "символов",
"from": "От",
"to": "Кому",
"sending": "Отправка транзакции",
"confirm_send": "Подтвердить отправку",
"confirm_transaction": "Подтвердить транзакцию",
"confirm_and_send": "Подтвердить и отправить",
"cancel": "Отмена",
"receiving_addresses": "Ваши адреса для получения",
"new_z_shielded": "Новый z-адрес (защищённый)",
"new_t_transparent": "Новый t-адрес (прозрачный)",
"address_details": "Детали адреса",
"view_on_explorer": "Открыть в обозревателе",
"qr_code": "QR-код",
"request_payment": "Запросить платёж",
"date": "Дата",
"status": "Статус",
"confirmations": "Подтверждения",
"confirmed": "Подтверждена",
"pending": "Ожидание",
"sent": "отправлено",
"received": "получено",
"mined": "добыто",
"mining_control": "Управление майнингом",
"start_mining": "Начать майнинг",
"stop_mining": "Остановить майнинг",
"mining_threads": "Потоки майнинга",
"mining_statistics": "Статистика майнинга",
"local_hashrate": "Локальный хешрейт",
"network_hashrate": "Хешрейт сети",
"difficulty": "Сложность",
"est_time_to_block": "Ожидаемое время до блока",
"mining_off": "Майнинг ВЫКЛЮЧЕН",
"mining_on": "Майнинг ВКЛЮЧЁН",
"connected_peers": "Подключённые узлы",
"banned_peers": "Заблокированные узлы",
"ip_address": "IP-адрес",
"version": "Версия",
"height": "Высота",
"ping": "Пинг",
"ban": "Блокировать",
"unban": "Разблокировать",
"clear_all_bans": "Снять все блокировки",
"price_chart": "График цены",
"current_price": "Текущая цена",
"24h_change": "Изменение за 24ч",
"24h_volume": "Объём за 24ч",
"market_cap": "Рыночная кап.",
"general": "Основные",
"display": "Отображение",
"network": "Сеть",
"theme": "Тема",
"language": "Язык",
"dragonx_green": "DragonX (зелёный)",
"dark": "Тёмная",
"light": "Светлая",
"allow_custom_fees": "Разрешить пользовательские комиссии",
"use_embedded_daemon": "Встроенный dragonxd",
"save": "Сохранить",
"close": "Закрыть",
"file": "Файл",
"edit": "Редактировать",
"view": "Вид",
"help": "Помощь",
"import_private_key": "Импорт приватного ключа...",
"backup_wallet": "Резервное копирование кошелька...",
"exit": "Выход",
"about_dragonx": "О программе ObsidianDragon",
"refresh_now": "Обновить сейчас",
"about": "О программе",
"import": "Импорт",
"export": "Экспорт",
"copy_to_clipboard": "Копировать в буфер обмена",
"connected": "Подключён",
"disconnected": "Отключён",
"connecting": "Подключение...",
"syncing": "Синхронизация...",
"block": "Блок",
"no_addresses_available": "Нет доступных адресов",
"error": "Ошибка",
"success": "Успешно",
"warning": "Предупреждение",
"amount_exceeds_balance": "Сумма превышает баланс",
"transaction_sent": "Транзакция успешно отправлена"
}

139
res/lang/zh.json Normal file
View File

@@ -0,0 +1,139 @@
{
"balance": "余额",
"send": "发送",
"receive": "接收",
"transactions": "交易记录",
"mining": "挖矿",
"peers": "节点",
"market": "市场",
"settings": "设置",
"summary": "概览",
"shielded": "隐私地址",
"transparent": "透明地址",
"total": "总计",
"unconfirmed": "未确认",
"your_addresses": "您的地址",
"z_addresses": "Z-地址",
"t_addresses": "T-地址",
"no_addresses": "未找到地址。请使用上方按钮创建。",
"new_z_address": "新建 Z-地址",
"new_t_address": "新建 T-地址",
"type": "类型",
"address": "地址",
"copy_address": "复制完整地址",
"send_from_this_address": "从此地址发送",
"export_private_key": "导出私钥",
"export_viewing_key": "导出查看密钥",
"show_qr_code": "显示二维码",
"not_connected": "未连接到守护进程...",
"pay_from": "付款地址",
"send_to": "收款地址",
"amount": "金额",
"memo": "备注(可选,已加密)",
"miner_fee": "矿工手续费",
"fee": "手续费",
"send_transaction": "发送交易",
"clear": "清除",
"select_address": "选择地址...",
"paste": "粘贴",
"max": "最大",
"available": "可用",
"invalid_address": "地址格式无效",
"memo_z_only": "注意备注仅在发送到隐私z地址时可用",
"characters": "字符",
"from": "发送方",
"to": "接收方",
"sending": "正在发送交易",
"confirm_send": "确认发送",
"confirm_transaction": "确认交易",
"confirm_and_send": "确认并发送",
"cancel": "取消",
"receiving_addresses": "您的接收地址",
"new_z_shielded": "新建 z-地址(隐私)",
"new_t_transparent": "新建 t-地址(透明)",
"address_details": "地址详情",
"view_on_explorer": "在浏览器查看",
"qr_code": "二维码",
"request_payment": "请求付款",
"date": "日期",
"status": "状态",
"confirmations": "确认数",
"confirmed": "已确认",
"pending": "待确认",
"sent": "已发送",
"received": "已接收",
"mined": "已挖出",
"mining_control": "挖矿控制",
"start_mining": "开始挖矿",
"stop_mining": "停止挖矿",
"mining_threads": "挖矿线程",
"mining_statistics": "挖矿统计",
"local_hashrate": "本地算力",
"network_hashrate": "全网算力",
"difficulty": "难度",
"est_time_to_block": "预计出块时间",
"mining_off": "挖矿已关闭",
"mining_on": "挖矿已开启",
"connected_peers": "已连接节点",
"banned_peers": "已封禁节点",
"ip_address": "IP 地址",
"version": "版本",
"height": "高度",
"ping": "延迟",
"ban": "封禁",
"unban": "解封",
"clear_all_bans": "清除所有封禁",
"price_chart": "价格图表",
"current_price": "当前价格",
"24h_change": "24小时涨跌",
"24h_volume": "24小时成交量",
"market_cap": "市值",
"general": "通用",
"display": "显示",
"network": "网络",
"theme": "主题",
"language": "语言",
"dragonx_green": "DragonX绿色",
"dark": "深色",
"light": "浅色",
"allow_custom_fees": "允许自定义手续费",
"use_embedded_daemon": "使用内置 dragonxd",
"save": "保存",
"close": "关闭",
"file": "文件",
"edit": "编辑",
"view": "查看",
"help": "帮助",
"import_private_key": "导入私钥...",
"backup_wallet": "备份钱包...",
"exit": "退出",
"about_dragonx": "关于 ObsidianDragon",
"refresh_now": "立即刷新",
"about": "关于",
"import": "导入",
"export": "导出",
"copy_to_clipboard": "复制到剪贴板",
"connected": "已连接",
"disconnected": "已断开",
"connecting": "连接中...",
"syncing": "同步中...",
"block": "区块",
"no_addresses_available": "暂无可用地址",
"error": "错误",
"success": "成功",
"warning": "警告",
"amount_exceeds_balance": "金额超出余额",
"transaction_sent": "交易发送成功"
}

View File

@@ -0,0 +1,161 @@
[theme]
name = "Color Pop Dark"
author = "The Hush Developers"
dark = true
elevation = { --elevation-0 = "#121218", --elevation-1 = "#1C1C24", --elevation-2 = "#26262E", --elevation-3 = "#303038", --elevation-4 = "#3A3A44" }
images = { background_image = "backgrounds/texture/pop-dark_bg.png", logo = "logos/logo_ObsidianDragon_dark.png" }
[theme.palette]
--primary = "#7C6CFF"
--primary-variant = "#5B4AE6"
--primary-light = "#A89CFF"
--secondary = "#FF6EC7"
--secondary-variant = "#E050A8"
--secondary-light = "#FF9CDC"
--background = "#0E0E14"
--surface = "#161620"
--surface-variant = "#20202C"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#E8E6F0"
--on-surface = "#E8E6F0"
--on-surface-medium = "rgba(232,230,240,0.72)"
--on-surface-disabled = "rgba(232,230,240,0.40)"
--error = "#FF5C72"
--on-error = "#000000"
--success = "#3DE8A0"
--on-success = "#000000"
--warning = "#FFB740"
--on-warning = "#000000"
--divider = "rgba(200,190,240,0.12)"
--outline = "rgba(200,190,240,0.14)"
--scrim = "rgba(0,0,0,0.55)"
--surface-hover = "rgba(200,190,240,0.06)"
--surface-alt = "rgba(200,190,240,0.03)"
--surface-active = "rgba(200,190,240,0.10)"
--glass-button = "rgba(124,108,255,0.08)"
--glass-button-hover = "rgba(124,108,255,0.16)"
--card-border = "rgba(200,190,240,0.10)"
--text-shadow = "rgba(0,0,0,0.45)"
--input-overlay-text = "rgba(232,230,240,0.25)"
--slider-text = "rgba(232,230,240,0.82)"
--thumb-fill = "rgba(124,108,255,0.18)"
--thumb-border = "rgba(124,108,255,0.50)"
--disabled-label = "rgba(200,190,240,0.18)"
--chart-grid = "rgba(200,190,240,0.05)"
--chart-crosshair = "rgba(200,190,240,0.14)"
--chart-hover-ring = "rgba(124,108,255,0.35)"
--tooltip-bg = "rgba(14,14,22,0.94)"
--tooltip-border = "rgba(124,108,255,0.18)"
--glass-fill = "rgba(200,190,240,0.06)"
--glass-border = "rgba(200,190,240,0.10)"
--glass-noise-tint = "rgba(124,108,255,0.03)"
--tactile-top = "rgba(200,190,240,0.07)"
--tactile-bottom = "rgba(200,190,240,0.0)"
--hover-overlay = "rgba(124,108,255,0.05)"
--active-overlay = "rgba(124,108,255,0.10)"
--rim-light = "rgba(124,108,255,0.10)"
--status-divider = "rgba(200,190,240,0.06)"
--sidebar-hover = "rgba(124,108,255,0.10)"
--sidebar-icon = "rgba(232,230,240,0.45)"
--sidebar-badge = "rgba(232,230,240,1.0)"
--sidebar-divider = "rgba(200,190,240,0.05)"
--chart-line = "rgba(124,108,255,0.12)"
--window-control = "rgba(232,230,240,0.72)"
--window-control-hover = "rgba(124,108,255,0.12)"
--window-close-hover = "rgba(255,92,114,0.75)"
--spinner-track = "rgba(200,190,240,0.08)"
--spinner-active = "rgba(124,108,255,0.85)"
--shutdown-panel-bg = "rgba(12,12,18,0.92)"
--shutdown-panel-border = "rgba(124,108,255,0.10)"
--ram-bar-app = "#7C6CFF"
--ram-bar-system = "rgba(255,255,255,0.12)"
--accent-total = "#7C6CFF"
--accent-shielded = "#3DE8A0"
--accent-transparent = "#FFB740"
--accent-action = "#FF6EC7"
--accent-market = "#00E5FF"
--accent-portfolio = "#A89CFF"
--toast-info-accent = "#7C6CFF"
--toast-info-text = "#A89CFF"
--toast-success-accent = "rgba(61,232,160,1.0)"
--toast-success-text = "rgba(120,255,190,1.0)"
--toast-warning-accent = "rgba(255,183,64,1.0)"
--toast-warning-text = "rgba(255,215,130,1.0)"
--toast-error-accent = "rgba(255,92,114,1.0)"
--toast-error-text = "rgba(255,160,170,1.0)"
--snackbar-bg = "rgba(30,30,42,0.95)"
--snackbar-text = "rgba(232,230,240,0.87)"
--snackbar-action = "rgba(124,108,255,1.0)"
--snackbar-action-hover = "rgba(168,156,255,1.0)"
--switch-track-off = "rgba(200,190,240,0.12)"
--switch-track-on = "rgba(124,108,255,0.45)"
--switch-thumb-off = "#A0A0B0"
--switch-thumb-on = "#E0DCFF"
--control-shadow = "rgba(0,0,0,0.28)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(0,0,0,0.22)"
[backdrop]
base-color-top = "rgba(16,16,24,210)"
base-color-bottom = "rgba(10,10,16,210)"
texture-tint-alpha = 100
gradient-top-r = 14
gradient-top-g = 14
gradient-top-b = 22
gradient-top-a = 80
gradient-bottom-r = 8
gradient-bottom-g = 8
gradient-bottom-b = 14
gradient-bottom-a = 60
background-alpha = 0.52
surface-alpha = 0.58
frame-alpha = 0.78
surface-inline-alpha = 0.60
background-inline-alpha = 0.45
# ---------------------------------------------------------------------------
# Theme Visual Effects — Color Pop Dark (soft neon under-glow)
# Neon purple/pink hue-cycling and prismatic borders, but no shimmer sweep.
# The glow breathes slowly like a neon sign warming up.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 1.0 }
hue-cycle-speed = { size = 0.08 }
hue-cycle-saturation = { size = 0.70 }
hue-cycle-value = { size = 0.88 }
hue-cycle-range = { size = 0.35 }
hue-cycle-offset = { size = 0.72 }
rainbow-border-enabled = { size = 1.0 }
rainbow-border-speed = { size = 0.06 }
rainbow-border-alpha = { size = 0.22 }
rainbow-border-stop-0 = { color = "#7C6CFF" }
rainbow-border-stop-1 = { color = "#FF6EC7" }
rainbow-border-stop-2 = { color = "#00E5FF" }
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 0.0 }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — neon color bleed
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.10 }
viewport-wash-tl = { color = "#7C6CFF" }
viewport-wash-tr = { color = "#FF6EC7" }
viewport-wash-bl = { color = "#00E5FF" }
viewport-wash-br = { color = "#FF3D71" }
viewport-wash-rotate = { size = 0.0 }
viewport-wash-pulse = { size = 0.2 }
viewport-wash-pulse-depth = { size = 0.4 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#0A0020" }
viewport-vignette-radius = { size = 0.20 }
viewport-vignette-alpha = { size = 0.25 }

View File

@@ -0,0 +1,161 @@
[theme]
name = "Color Pop Light"
author = "The Hush Developers"
dark = false
elevation = { --elevation-0 = "#FAFAFE", --elevation-1 = "#F2F2FA", --elevation-2 = "#EAEAF4", --elevation-3 = "#DDDDE8", --elevation-4 = "#CCCCD8" }
images = { background_image = "backgrounds/texture/pop-light_bg.png", logo = "logos/logo_ObsidianDragon_light.png" }
[theme.palette]
--primary = "#6040E0"
--primary-variant = "#4A28CC"
--primary-light = "#8B72F0"
--secondary = "#E040A0"
--secondary-variant = "#C42888"
--secondary-light = "#F070BC"
--background = "#F8F8FE"
--surface = "#FFFFFF"
--surface-variant = "#F4F4FC"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#1E1E2A"
--on-surface = "#1E1E2A"
--on-surface-medium = "rgba(30,30,42,0.72)"
--on-surface-disabled = "rgba(30,30,42,0.38)"
--error = "#E0304A"
--on-error = "#FFFFFF"
--success = "#18A860"
--on-success = "#FFFFFF"
--warning = "#E09020"
--on-warning = "#000000"
--divider = "rgba(30,30,60,0.12)"
--outline = "rgba(30,30,60,0.15)"
--scrim = "rgba(0,0,0,0.45)"
--surface-hover = "rgba(96,64,224,0.05)"
--surface-alt = "rgba(96,64,224,0.02)"
--surface-active = "rgba(96,64,224,0.10)"
--glass-button = "rgba(96,64,224,0.06)"
--glass-button-hover = "rgba(96,64,224,0.12)"
--card-border = "rgba(30,30,60,0.08)"
--text-shadow = "rgba(0,0,0,0.08)"
--input-overlay-text = "rgba(30,30,42,0.26)"
--slider-text = "rgba(30,30,42,0.76)"
--thumb-fill = "rgba(96,64,224,0.14)"
--thumb-border = "rgba(96,64,224,0.40)"
--disabled-label = "rgba(30,30,60,0.22)"
--chart-grid = "rgba(30,30,60,0.06)"
--chart-crosshair = "rgba(30,30,60,0.18)"
--chart-hover-ring = "rgba(96,64,224,0.30)"
--tooltip-bg = "rgba(36,34,52,0.94)"
--tooltip-border = "rgba(96,64,224,0.16)"
--glass-fill = "rgba(255,255,255,0.55)"
--glass-border = "rgba(30,30,60,0.10)"
--glass-noise-tint = "rgba(96,64,224,0.02)"
--tactile-top = "rgba(255,255,255,0.40)"
--tactile-bottom = "rgba(255,255,255,0.05)"
--hover-overlay = "rgba(96,64,224,0.04)"
--active-overlay = "rgba(96,64,224,0.08)"
--rim-light = "rgba(96,64,224,0.06)"
--status-divider = "rgba(30,30,60,0.08)"
--sidebar-hover = "rgba(96,64,224,0.07)"
--sidebar-icon = "rgba(30,30,42,0.50)"
--sidebar-badge = "rgba(30,30,42,0.85)"
--sidebar-divider = "rgba(30,30,60,0.06)"
--chart-line = "rgba(96,64,224,0.10)"
--window-control = "rgba(30,30,42,0.65)"
--window-control-hover = "rgba(96,64,224,0.08)"
--window-close-hover = "rgba(224,48,74,0.80)"
--spinner-track = "rgba(30,30,60,0.10)"
--spinner-active = "rgba(96,64,224,0.85)"
--shutdown-panel-bg = "rgba(248,248,254,0.95)"
--shutdown-panel-border = "rgba(96,64,224,0.10)"
--ram-bar-app = "#6040E0"
--ram-bar-system = "rgba(30,30,60,0.15)"
--accent-total = "#6040E0"
--accent-shielded = "#18A860"
--accent-transparent = "#E09020"
--accent-action = "#E040A0"
--accent-market = "#00B8D4"
--accent-portfolio = "#8B72F0"
--toast-info-accent = "#6040E0"
--toast-info-text = "#4A28CC"
--toast-success-accent = "rgba(24,168,96,1.0)"
--toast-success-text = "rgba(12,130,68,1.0)"
--toast-warning-accent = "rgba(224,144,32,1.0)"
--toast-warning-text = "rgba(180,108,10,1.0)"
--toast-error-accent = "rgba(224,48,74,1.0)"
--toast-error-text = "rgba(180,28,50,1.0)"
--snackbar-bg = "rgba(40,38,56,0.95)"
--snackbar-text = "rgba(245,244,252,0.87)"
--snackbar-action = "rgba(139,114,240,1.0)"
--snackbar-action-hover = "rgba(168,148,255,1.0)"
--switch-track-off = "rgba(30,30,60,0.24)"
--switch-track-on = "rgba(96,64,224,0.38)"
--switch-thumb-off = "#F8F8FC"
--switch-thumb-on = "#FFFFFF"
--control-shadow = "rgba(0,0,0,0.18)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(0,0,0,0.08)"
[backdrop]
base-color-top = "rgba(252,252,255,255)"
base-color-bottom = "rgba(244,244,252,255)"
texture-tint-alpha = 80
gradient-top-r = 250
gradient-top-g = 250
gradient-top-b = 255
gradient-top-a = 240
gradient-bottom-r = 242
gradient-bottom-g = 242
gradient-bottom-b = 252
gradient-bottom-a = 220
background-alpha = 0.97
surface-alpha = 0.97
frame-alpha = 0.94
surface-inline-alpha = 0.95
background-inline-alpha = 0.94
# ---------------------------------------------------------------------------
# Theme Visual Effects — Color Pop Light (gentle neon)
# Softer neon hue-cycling and rainbow borders on a light background.
# Lower saturation and slower speeds keep it elegant.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 1.0 }
hue-cycle-speed = { size = 0.04 }
hue-cycle-saturation = { size = 0.50 }
hue-cycle-value = { size = 0.78 }
hue-cycle-range = { size = 0.35 }
hue-cycle-offset = { size = 0.72 }
rainbow-border-enabled = { size = 1.0 }
rainbow-border-speed = { size = 0.05 }
rainbow-border-alpha = { size = 0.38 }
rainbow-border-stop-0 = { color = "#7C6CFF" }
rainbow-border-stop-1 = { color = "#FF6EC7" }
rainbow-border-stop-2 = { color = "#00E5FF" }
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 0.0 }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — soft neon tint
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.06 }
viewport-wash-tl = { color = "#7C6CFF" }
viewport-wash-tr = { color = "#FF6EC7" }
viewport-wash-bl = { color = "#00E5FF" }
viewport-wash-br = { color = "#FF3D71" }
viewport-wash-rotate = { size = 0.0 }
viewport-wash-pulse = { size = 0.15 }
viewport-wash-pulse-depth = { size = 0.25 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#20182A" }
viewport-vignette-radius = { size = 0.18 }
viewport-vignette-alpha = { size = 0.12 }

142
res/themes/dark.toml Normal file
View File

@@ -0,0 +1,142 @@
[theme]
name = "Dark"
author = "The Hush Developers"
dark = true
elevation = { --elevation-0 = "#161618", --elevation-1 = "#222224", --elevation-2 = "#2C2C2E", --elevation-3 = "#363638", --elevation-4 = "#404044" }
images = { background_image = "backgrounds/texture/dark_bg.png", logo = "logos/logo_ObsidianDragon_dark.png" }
[theme.palette]
--primary = "#9AAFC8"
--primary-variant = "#7B92B0"
--primary-light = "#B8CCE0"
--secondary = "#7DABA3"
--secondary-variant = "#5D8A82"
--secondary-light = "#9DC5BE"
--background = "#141416"
--surface = "#1A1A1C"
--surface-variant = "#262628"
--on-primary = "#000000"
--on-secondary = "#000000"
--on-background = "#D0D0D4"
--on-surface = "#D0D0D4"
--on-surface-medium = "rgba(208,208,212,0.75)"
--on-surface-disabled = "rgba(208,208,212,0.45)"
--error = "#B07080"
--on-error = "#000000"
--success = "#7AAE7C"
--on-success = "#000000"
--warning = "#C4A870"
--on-warning = "#000000"
--divider = "rgba(220,220,225,0.14)"
--outline = "rgba(220,220,225,0.14)"
--scrim = "rgba(0,0,0,0.5)"
--surface-hover = "rgba(220,220,225,0.06)"
--surface-alt = "rgba(220,220,225,0.04)"
--surface-active = "rgba(220,220,225,0.08)"
--glass-button = "rgba(220,220,225,0.05)"
--glass-button-hover = "rgba(220,220,225,0.10)"
--card-border = "rgba(220,220,225,0.12)"
--text-shadow = "rgba(0,0,0,0.40)"
--input-overlay-text = "rgba(208,208,212,0.28)"
--slider-text = "rgba(208,208,212,0.85)"
--thumb-fill = "rgba(220,220,225,0.14)"
--thumb-border = "rgba(220,220,225,0.45)"
--disabled-label = "rgba(220,220,225,0.18)"
--chart-grid = "rgba(220,220,225,0.04)"
--chart-crosshair = "rgba(220,220,225,0.14)"
--chart-hover-ring = "rgba(220,220,225,0.28)"
--tooltip-bg = "rgba(18,18,22,0.92)"
--tooltip-border = "rgba(220,220,225,0.10)"
--glass-fill = "rgba(220,220,225,0.07)"
--glass-border = "rgba(220,220,225,0.12)"
--glass-noise-tint = "rgba(220,220,225,0.03)"
--tactile-top = "rgba(220,220,225,0.06)"
--tactile-bottom = "rgba(220,220,225,0.0)"
--hover-overlay = "rgba(220,220,225,0.04)"
--active-overlay = "rgba(220,220,225,0.08)"
--rim-light = "rgba(220,220,225,0.08)"
--status-divider = "rgba(220,220,225,0.06)"
--sidebar-hover = "rgba(220,220,225,0.08)"
--sidebar-icon = "rgba(220,220,225,0.40)"
--sidebar-badge = "rgba(208,208,212,1.0)"
--sidebar-divider = "rgba(220,220,225,0.05)"
--chart-line = "rgba(220,220,225,0.08)"
--window-control = "rgba(208,208,212,0.75)"
--window-control-hover = "rgba(220,220,225,0.10)"
--window-close-hover = "rgba(200,50,60,0.70)"
--spinner-track = "rgba(220,220,225,0.08)"
--spinner-active = "rgba(154,175,200,0.85)"
--shutdown-panel-bg = "rgba(14,14,18,0.88)"
--shutdown-panel-border = "rgba(220,220,225,0.06)"
--ram-bar-app = "#5C9CE6"
--ram-bar-system = "rgba(255,255,255,0.15)"
--accent-total = "#B8CCE0"
--accent-shielded = "#7DABA3"
--accent-transparent = "#C4A870"
--accent-action = "#9AAFC8"
--accent-market = "#7DABA3"
--accent-portfolio = "#B8CCE0"
--toast-info-accent = "#9AAFC8"
--toast-info-text = "#B8CCE0"
--toast-success-accent = "rgba(80,155,85,1.0)"
--toast-success-text = "rgba(180,230,180,1.0)"
--toast-warning-accent = "rgba(180,150,75,1.0)"
--toast-warning-text = "rgba(235,215,140,1.0)"
--toast-error-accent = "rgba(175,75,80,1.0)"
--toast-error-text = "rgba(235,160,160,1.0)"
--snackbar-bg = "rgba(45,45,48,0.95)"
--snackbar-text = "rgba(208,208,212,0.87)"
--snackbar-action = "rgba(154,175,200,1.0)"
--snackbar-action-hover = "rgba(184,204,224,1.0)"
--switch-track-off = "rgba(220,220,225,0.10)"
--switch-track-on = "rgba(154,175,200,0.40)"
--switch-thumb-off = "#A0A0A4"
--switch-thumb-on = "#D8D8DC"
--control-shadow = "rgba(0,0,0,0.22)"
--checkbox-check = "#000000"
--app-bar-shadow = "rgba(0,0,0,0.18)"
[backdrop]
base-color-top = "rgba(20,22,28,200)"
base-color-bottom = "rgba(10,11,16,200)"
texture-tint-alpha = 120
gradient-top-r = 14
gradient-top-g = 15
gradient-top-b = 20
gradient-top-a = 80
gradient-bottom-r = 8
gradient-bottom-g = 9
gradient-bottom-b = 13
gradient-bottom-a = 60
background-alpha = 0.52
surface-alpha = 0.58
frame-alpha = 0.78
surface-inline-alpha = 0.60
background-inline-alpha = 0.45
# ---------------------------------------------------------------------------
# Theme Visual Effects — Dark (minimal, clean)
# Near-static soft glow behind active button. Professional and understated.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 0.0 }
rainbow-border-enabled = { size = 0.0 }
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 1.0 }
glow-pulse-speed = { size = 0.25 }
glow-pulse-min-alpha = { size = 0.02 }
glow-pulse-max-alpha = { size = 0.04 }
glow-pulse-radius = { size = 2.0 }
glow-pulse-color = { color = "var(--primary)" }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — subtle neutral vignette
viewport-wash-enabled = { size = 0.0 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#000000" }
viewport-vignette-radius = { size = 0.20 }
viewport-vignette-alpha = { size = 0.08 }

180
res/themes/dune.toml Normal file
View File

@@ -0,0 +1,180 @@
[theme]
name = "Dune"
author = "The Hush Developers"
dark = false
images = { background_image = "backgrounds/texture/dune_bg.png", logo = "logos/logo_ObsidianDragon_light.png" }
elevation = { --elevation-0 = "#FDF8F0", --elevation-1 = "#F5EDE0", --elevation-2 = "#EDE3D4", --elevation-3 = "#E0D5C4", --elevation-4 = "#D0C4B0" }
[theme.palette]
# Dune: warm desert tones — amber, sand, terracotta, sage
--primary = "#B07840"
--primary-variant = "#8E5E2E"
--primary-light = "#D4A06C"
--secondary = "#8A9A6C"
--secondary-variant = "#6B7E50"
--secondary-light = "#A8B890"
--background = "#FAF5ED"
--surface = "#FFFFF8"
--surface-variant = "#F5EDE0"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#3A2E22"
--on-surface = "#3A2E22"
--on-surface-medium = "rgba(58,46,34,0.68)"
--on-surface-disabled = "rgba(58,46,34,0.38)"
--error = "#A0524A"
--on-error = "#FFFFFF"
--success = "#6A8A5C"
--on-success = "#FFFFFF"
--warning = "#C08840"
--on-warning = "#000000"
--divider = "rgba(140,110,70,0.14)"
--outline = "rgba(140,110,70,0.16)"
--scrim = "rgba(30,20,10,0.45)"
--surface-hover = "rgba(176,120,64,0.06)"
--surface-alt = "rgba(176,120,64,0.03)"
--surface-active = "rgba(176,120,64,0.10)"
--glass-button = "rgba(176,120,64,0.06)"
--glass-button-hover = "rgba(176,120,64,0.12)"
--card-border = "rgba(176,120,64,0.12)"
--text-shadow = "rgba(80,50,20,0.08)"
--input-overlay-text = "rgba(58,46,34,0.28)"
--slider-text = "rgba(58,46,34,0.78)"
--thumb-fill = "rgba(176,120,64,0.12)"
--thumb-border = "rgba(176,120,64,0.35)"
--disabled-label = "rgba(58,46,34,0.22)"
--chart-grid = "rgba(176,120,64,0.07)"
--chart-crosshair = "rgba(176,120,64,0.18)"
--chart-hover-ring = "rgba(176,120,64,0.28)"
--tooltip-bg = "rgba(50,38,24,0.94)"
--tooltip-border = "rgba(176,120,64,0.12)"
--glass-fill = "rgba(255,252,245,0.58)"
--glass-border = "rgba(176,120,64,0.14)"
--glass-noise-tint = "rgba(180,140,80,0.03)"
--tactile-top = "rgba(255,255,248,0.50)"
--tactile-bottom = "rgba(255,255,248,0.08)"
--hover-overlay = "rgba(176,120,64,0.05)"
--active-overlay = "rgba(176,120,64,0.10)"
--rim-light = "rgba(212,160,108,0.10)"
--status-divider = "rgba(176,120,64,0.10)"
--sidebar-hover = "rgba(176,120,64,0.08)"
--sidebar-icon = "rgba(58,46,34,0.50)"
--sidebar-badge = "rgba(58,46,34,0.85)"
--sidebar-divider = "rgba(176,120,64,0.08)"
--chart-line = "rgba(176,120,64,0.10)"
--window-control = "rgba(58,46,34,0.65)"
--window-control-hover = "rgba(176,120,64,0.10)"
--window-close-hover = "rgba(160,82,74,0.78)"
--spinner-track = "rgba(176,120,64,0.12)"
--spinner-active = "rgba(176,120,64,0.85)"
--shutdown-panel-bg = "rgba(250,245,237,0.96)"
--shutdown-panel-border = "rgba(176,120,64,0.10)"
# RAM bar: desert gold
--ram-bar-app = "#B07840"
--ram-bar-system = "rgba(58,46,34,0.14)"
# Accent strips: desert palette — amber, sage, terracotta, gold, olive, sand
--accent-total = "#B07840"
--accent-shielded = "#8A9A6C"
--accent-transparent = "#C4786A"
--accent-action = "#B07840"
--accent-market = "#6B7E50"
--accent-portfolio = "#C08840"
# Toasts: warm desert tones
--toast-info-accent = "#B07840"
--toast-info-text = "#8E5E2E"
--toast-success-accent = "rgba(106,138,92,1.0)"
--toast-success-text = "rgba(80,112,66,1.0)"
--toast-warning-accent = "rgba(192,136,64,1.0)"
--toast-warning-text = "rgba(160,108,40,1.0)"
--toast-error-accent = "rgba(160,82,74,1.0)"
--toast-error-text = "rgba(130,58,50,1.0)"
# Snackbar
--snackbar-bg = "rgba(50,38,24,0.95)"
--snackbar-text = "rgba(255,252,245,0.87)"
--snackbar-action = "rgba(212,160,108,1.0)"
--snackbar-action-hover = "rgba(236,190,140,1.0)"
# Controls
--switch-track-off = "rgba(58,46,34,0.22)"
--switch-track-on = "rgba(176,120,64,0.40)"
--switch-thumb-off = "#F5EDE0"
--switch-thumb-on = "#FFFFFF"
--control-shadow = "rgba(80,50,20,0.16)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(80,50,20,0.08)"
[backdrop]
base-color-top = "rgba(253,248,240,255)"
base-color-bottom = "rgba(240,228,208,255)"
texture-tint-alpha = 100
gradient-top-r = 252
gradient-top-g = 246
gradient-top-b = 235
gradient-top-a = 240
gradient-bottom-r = 238
gradient-bottom-g = 222
gradient-bottom-b = 198
gradient-bottom-a = 230
background-alpha = 0.96
surface-alpha = 0.96
frame-alpha = 0.93
surface-inline-alpha = 0.94
background-inline-alpha = 0.93
# ---------------------------------------------------------------------------
# Theme Visual Effects — Dune (desert sandstorm)
# Wind-driven sand particles with heat shimmer and warm atmosphere.
# The sandstorm effect creates directional particles blowing across
# the viewport with motion streaks, gusts, and dust puffs.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 0.0 }
rainbow-border-enabled = { size = 0.0 }
# Slow, wide warm shimmer — like heat mirage on sand
shimmer-enabled = { size = 1.0 }
shimmer-speed = { size = 0.025 }
shimmer-width = { size = 200.0 }
shimmer-alpha = { size = 0.06 }
shimmer-angle = { size = 15.0 }
shimmer-color = { color = "rgba(212,170,108,1.0)" }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 1.0 }
glow-pulse-speed = { size = 0.15 }
glow-pulse-min-alpha = { size = 0.02 }
glow-pulse-max-alpha = { size = 0.08 }
glow-pulse-radius = { size = 2.5 }
glow-pulse-color = { color = "#B07840" }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
gradient-border-enabled = { size = 0.0 }
# === Sandstorm: wind-driven sand particles ===
sandstorm-enabled = { size = 1.0 }
sandstorm-count = { size = 90.0 }
sandstorm-speed = { size = 0.25 }
sandstorm-wind-angle = { size = 12.0 }
sandstorm-particle-size = { size = 2.4 }
sandstorm-alpha = { size = 0.55 }
sandstorm-color = { color = "#8B6914" }
sandstorm-gust-speed = { size = 0.06 }
sandstorm-gust-strength = { size = 0.45 }
sandstorm-streak-length = { size = 4.0 }
# Warm desert atmosphere — orange-gold heat haze
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.10 }
viewport-wash-tl = { color = "#C89050" }
viewport-wash-tr = { color = "#A0784C" }
viewport-wash-bl = { color = "#8A6A40" }
viewport-wash-br = { color = "#D4A060" }
viewport-wash-rotate = { size = 0.01 }
viewport-wash-pulse = { size = 0.06 }
viewport-wash-pulse-depth = { size = 0.35 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#1A1008" }
viewport-vignette-radius = { size = 0.22 }
viewport-vignette-alpha = { size = 0.10 }

177
res/themes/iridescent.toml Normal file
View File

@@ -0,0 +1,177 @@
[theme]
name = "Iridescent"
author = "The Hush Developers"
dark = false
images = { background_image = "backgrounds/texture/iridescent_bg.png", logo = "logos/logo_ObsidianDragon_light.png" }
elevation = { --elevation-0 = "#FDFBFF", --elevation-1 = "#F5F0FA", --elevation-2 = "#EDE6F4", --elevation-3 = "#E0D8EC", --elevation-4 = "#D0C8DC" }
[theme.palette]
# Iridescent: opalescent pastels — shifting pink ↔ lavender ↔ teal
--primary = "#8E6BAF"
--primary-variant = "#6A3D9A"
--primary-light = "#C9A8E8"
--secondary = "#4DB6AC"
--secondary-variant = "#00897B"
--secondary-light = "#80CBC4"
--background = "#FAF8FF"
--surface = "#FFFFFF"
--surface-variant = "#F3EFF8"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#1C1525"
--on-surface = "#1C1525"
--on-surface-medium = "rgba(28,21,37,0.72)"
--on-surface-disabled = "rgba(28,21,37,0.40)"
--error = "#C62828"
--on-error = "#FFFFFF"
--success = "#2E7D32"
--on-success = "#FFFFFF"
--warning = "#E65100"
--on-warning = "#000000"
--divider = "rgba(120,80,160,0.12)"
--outline = "rgba(120,80,160,0.14)"
--scrim = "rgba(20,10,30,0.45)"
--surface-hover = "rgba(140,107,175,0.06)"
--surface-alt = "rgba(140,107,175,0.03)"
--surface-active = "rgba(140,107,175,0.10)"
--glass-button = "rgba(140,107,175,0.06)"
--glass-button-hover = "rgba(140,107,175,0.12)"
--card-border = "rgba(140,107,175,0.12)"
--text-shadow = "rgba(80,40,120,0.08)"
--input-overlay-text = "rgba(28,21,37,0.28)"
--slider-text = "rgba(28,21,37,0.78)"
--thumb-fill = "rgba(140,107,175,0.12)"
--thumb-border = "rgba(140,107,175,0.35)"
--disabled-label = "rgba(28,21,37,0.22)"
--chart-grid = "rgba(140,107,175,0.07)"
--chart-crosshair = "rgba(140,107,175,0.18)"
--chart-hover-ring = "rgba(140,107,175,0.28)"
--tooltip-bg = "rgba(32,24,48,0.94)"
--tooltip-border = "rgba(140,107,175,0.12)"
--glass-fill = "rgba(255,255,255,0.55)"
--glass-border = "rgba(140,107,175,0.14)"
--glass-noise-tint = "rgba(180,140,220,0.03)"
--tactile-top = "rgba(255,255,255,0.50)"
--tactile-bottom = "rgba(255,255,255,0.08)"
--hover-overlay = "rgba(140,107,175,0.05)"
--active-overlay = "rgba(140,107,175,0.10)"
--rim-light = "rgba(180,140,255,0.10)"
--status-divider = "rgba(140,107,175,0.10)"
--sidebar-hover = "rgba(140,107,175,0.08)"
--sidebar-icon = "rgba(28,21,37,0.50)"
--sidebar-badge = "rgba(28,21,37,0.85)"
--sidebar-divider = "rgba(140,107,175,0.08)"
--chart-line = "rgba(140,107,175,0.10)"
--window-control = "rgba(28,21,37,0.65)"
--window-control-hover = "rgba(140,107,175,0.10)"
--window-close-hover = "rgba(220,30,50,0.78)"
--spinner-track = "rgba(140,107,175,0.12)"
--spinner-active = "rgba(142,107,175,0.85)"
--shutdown-panel-bg = "rgba(248,244,255,0.96)"
--shutdown-panel-border = "rgba(140,107,175,0.10)"
# RAM bar: iridescent violet accent
--ram-bar-app = "#8E6BAF"
--ram-bar-system = "rgba(28,21,37,0.14)"
# Accent strips: opalescent palette — pink, teal, coral, violet, sea-green, lavender
--accent-total = "#B06AB3"
--accent-shielded = "#4DB6AC"
--accent-transparent = "#F48FB1"
--accent-action = "#7E57C2"
--accent-market = "#26A69A"
--accent-portfolio = "#AB47BC"
# Toasts: soft iridescent tones
--toast-info-accent = "#8E6BAF"
--toast-info-text = "#5E35B1"
--toast-success-accent = "rgba(46,125,50,1.0)"
--toast-success-text = "rgba(27,94,32,1.0)"
--toast-warning-accent = "rgba(230,81,0,1.0)"
--toast-warning-text = "rgba(191,54,12,1.0)"
--toast-error-accent = "rgba(198,40,40,1.0)"
--toast-error-text = "rgba(183,28,28,1.0)"
# Snackbar
--snackbar-bg = "rgba(40,30,55,0.95)"
--snackbar-text = "rgba(255,255,255,0.87)"
--snackbar-action = "rgba(206,147,216,1.0)"
--snackbar-action-hover = "rgba(225,190,255,1.0)"
# Controls
--switch-track-off = "rgba(28,21,37,0.22)"
--switch-track-on = "rgba(142,107,175,0.40)"
--switch-thumb-off = "#F5F0FA"
--switch-thumb-on = "#FFFFFF"
--control-shadow = "rgba(80,40,120,0.16)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(80,40,120,0.08)"
[backdrop]
base-color-top = "rgba(253,248,255,255)"
base-color-bottom = "rgba(240,232,252,255)"
texture-tint-alpha = 90
gradient-top-r = 252
gradient-top-g = 248
gradient-top-b = 255
gradient-top-a = 240
gradient-bottom-r = 235
gradient-bottom-g = 225
gradient-bottom-b = 248
gradient-bottom-a = 230
background-alpha = 0.97
surface-alpha = 0.97
frame-alpha = 0.94
surface-inline-alpha = 0.95
background-inline-alpha = 0.94
# ---------------------------------------------------------------------------
# Theme Visual Effects — Iridescent (opalescent color-shifting)
# The signature rainbow theme — gentle prismatic borders, slow pastel
# hue-cycling, and a wide ethereal sheen like light through an opal.
# All effects enabled but softened for a dreamy rather than flashy look.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 1.0 }
hue-cycle-speed = { size = 0.06 }
hue-cycle-saturation = { size = 0.50 }
hue-cycle-value = { size = 0.82 }
hue-cycle-range = { size = 1.0 }
hue-cycle-offset = { size = 0.83 }
rainbow-border-enabled = { size = 1.0 }
rainbow-border-speed = { size = 0.05 }
rainbow-border-alpha = { size = 0.40 }
rainbow-border-stop-0 = { color = "#FF6B9D" }
rainbow-border-stop-1 = { color = "#C084FC" }
rainbow-border-stop-2 = { color = "#67E8F9" }
rainbow-border-stop-3 = { color = "#FCA5A5" }
shimmer-enabled = { size = 1.0 }
shimmer-speed = { size = 0.04 }
shimmer-width = { size = 150.0 }
shimmer-alpha = { size = 0.05 }
shimmer-angle = { size = 20.0 }
shimmer-color = { color = "rgba(255,240,255,1.0)" }
positional-hue-enabled = { size = 1.0 }
positional-hue-top = { color = "#E088B8" }
positional-hue-bottom = { color = "#60B8B4" }
positional-hue-strength = { size = 0.35 }
glow-pulse-enabled = { size = 0.0 }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — prismatic chromatic shift
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.08 }
viewport-wash-tl = { color = "#FF6B9D" }
viewport-wash-tr = { color = "#C084FC" }
viewport-wash-bl = { color = "#FCA5A5" }
viewport-wash-br = { color = "#67E8F9" }
viewport-wash-rotate = { size = 0.02 }
viewport-wash-pulse = { size = 0.0 }
viewport-wash-pulse-depth = { size = 0.0 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#1A1020" }
viewport-vignette-radius = { size = 0.18 }
viewport-vignette-alpha = { size = 0.10 }

142
res/themes/light.toml Normal file
View File

@@ -0,0 +1,142 @@
[theme]
name = "Light"
author = "The Hush Developers"
dark = false
images = { background_image = "backgrounds/texture/light_bg.png", logo = "logos/logo_ObsidianDragon_light.png" }
elevation = { --elevation-0 = "#FAFAFA", --elevation-1 = "#F2F3F5", --elevation-2 = "#EAEBEE", --elevation-3 = "#DDDEE2", --elevation-4 = "#CDCED3" }
[theme.palette]
--primary = "#5A6A7A"
--primary-variant = "#475868"
--primary-light = "#8494A4"
--secondary = "#607870"
--secondary-variant = "#4D655D"
--secondary-light = "#7E9690"
--background = "#F6F7F8"
--surface = "#FAFAFA"
--surface-variant = "#F0F1F3"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#2A2C30"
--on-surface = "#2A2C30"
--on-surface-medium = "rgba(42,44,48,0.68)"
--on-surface-disabled = "rgba(42,44,48,0.38)"
--error = "#8C5A62"
--on-error = "#FFFFFF"
--success = "#5A7E5C"
--on-success = "#FFFFFF"
--warning = "#8A7A52"
--on-warning = "#000000"
--divider = "rgba(42,44,48,0.12)"
--outline = "rgba(42,44,48,0.14)"
--scrim = "rgba(0,0,0,0.42)"
--surface-hover = "rgba(42,44,48,0.04)"
--surface-alt = "rgba(42,44,48,0.02)"
--surface-active = "rgba(42,44,48,0.08)"
--glass-button = "rgba(42,44,48,0.04)"
--glass-button-hover = "rgba(42,44,48,0.08)"
--card-border = "rgba(42,44,48,0.08)"
--text-shadow = "rgba(0,0,0,0.06)"
--input-overlay-text = "rgba(42,44,48,0.24)"
--slider-text = "rgba(42,44,48,0.72)"
--thumb-fill = "rgba(42,44,48,0.10)"
--thumb-border = "rgba(42,44,48,0.28)"
--disabled-label = "rgba(42,44,48,0.20)"
--chart-grid = "rgba(42,44,48,0.06)"
--chart-crosshair = "rgba(42,44,48,0.16)"
--chart-hover-ring = "rgba(42,44,48,0.24)"
--tooltip-bg = "rgba(50,52,58,0.92)"
--tooltip-border = "rgba(42,44,48,0.10)"
--glass-fill = "rgba(255,255,255,0.55)"
--glass-border = "rgba(42,44,48,0.10)"
--glass-noise-tint = "rgba(42,44,48,0.015)"
--tactile-top = "rgba(255,255,255,0.35)"
--tactile-bottom = "rgba(255,255,255,0.04)"
--hover-overlay = "rgba(42,44,48,0.04)"
--active-overlay = "rgba(42,44,48,0.08)"
--rim-light = "rgba(42,44,48,0.06)"
--status-divider = "rgba(42,44,48,0.08)"
--sidebar-hover = "rgba(42,44,48,0.05)"
--sidebar-icon = "rgba(42,44,48,0.45)"
--sidebar-badge = "rgba(42,44,48,0.80)"
--sidebar-divider = "rgba(42,44,48,0.06)"
--chart-line = "rgba(42,44,48,0.08)"
--window-control = "rgba(42,44,48,0.62)"
--window-control-hover = "rgba(42,44,48,0.06)"
--window-close-hover = "rgba(140,90,98,0.75)"
--spinner-track = "rgba(42,44,48,0.08)"
--spinner-active = "rgba(90,106,122,0.80)"
--shutdown-panel-bg = "rgba(242,243,245,0.94)"
--shutdown-panel-border = "rgba(42,44,48,0.08)"
--ram-bar-app = "#5A6A7A"
--ram-bar-system = "rgba(42,44,48,0.14)"
--accent-total = "#5A6A7A"
--accent-shielded = "#607870"
--accent-transparent = "#8A7A52"
--accent-action = "#5A6A7A"
--accent-market = "#607870"
--accent-portfolio = "#5A6A7A"
--toast-info-accent = "#5A6A7A"
--toast-info-text = "#475868"
--toast-success-accent = "rgba(90,126,92,1.0)"
--toast-success-text = "rgba(62,98,64,1.0)"
--toast-warning-accent = "rgba(138,122,82,1.0)"
--toast-warning-text = "rgba(110,96,56,1.0)"
--toast-error-accent = "rgba(140,90,98,1.0)"
--toast-error-text = "rgba(112,62,70,1.0)"
--snackbar-bg = "rgba(50,52,58,0.94)"
--snackbar-text = "rgba(235,236,238,0.87)"
--snackbar-action = "rgba(132,148,164,1.0)"
--snackbar-action-hover = "rgba(158,172,186,1.0)"
--switch-track-off = "rgba(42,44,48,0.22)"
--switch-track-on = "rgba(90,106,122,0.35)"
--switch-thumb-off = "#F5F5F5"
--switch-thumb-on = "#FAFAFA"
--control-shadow = "rgba(0,0,0,0.16)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(0,0,0,0.07)"
[backdrop]
base-color-top = "rgba(250,250,252,255)"
base-color-bottom = "rgba(240,241,245,255)"
texture-tint-alpha = 80
gradient-top-r = 248
gradient-top-g = 249
gradient-top-b = 252
gradient-top-a = 240
gradient-bottom-r = 238
gradient-bottom-g = 239
gradient-bottom-b = 244
gradient-bottom-a = 220
background-alpha = 0.97
surface-alpha = 0.97
frame-alpha = 0.94
surface-inline-alpha = 0.95
background-inline-alpha = 0.94
# ---------------------------------------------------------------------------
# Theme Visual Effects — Light (barely perceptible)
# Whisper-soft glow on active button. Clean and airy — effects stay invisible.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 0.0 }
rainbow-border-enabled = { size = 0.0 }
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 1.0 }
glow-pulse-speed = { size = 0.2 }
glow-pulse-min-alpha = { size = 0.01 }
glow-pulse-max-alpha = { size = 0.03 }
glow-pulse-radius = { size = 2.0 }
glow-pulse-color = { color = "var(--primary)" }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — very subtle warm vignette
viewport-wash-enabled = { size = 0.0 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#0A0500" }
viewport-vignette-radius = { size = 0.18 }
viewport-vignette-alpha = { size = 0.04 }

160
res/themes/marble.toml Normal file
View File

@@ -0,0 +1,160 @@
[theme]
name = "Marble"
author = "The Hush Developers"
dark = false
images = { background_image = "backgrounds/texture/marble_bg.png", logo = "logos/logo_ObsidianDragon_light.png" }
elevation = { --elevation-0 = "#FAFAF8", --elevation-1 = "#F0EEEC", --elevation-2 = "#E8E4E0", --elevation-3 = "#DCD6D0", --elevation-4 = "#CEC6BE" }
[theme.palette]
# Marble: cool stone tones — slate, charcoal, warm gray, aged gold accents
--primary = "#6E7580"
--primary-variant = "#555D68"
--primary-light = "#94999F"
--secondary = "#8A7D6C"
--secondary-variant = "#706454"
--secondary-light = "#A89E90"
--background = "#F8F6F4"
--surface = "#FEFEFE"
--surface-variant = "#F2EFEC"
--on-primary = "#FFFFFF"
--on-secondary = "#FFFFFF"
--on-background = "#2C2A28"
--on-surface = "#2C2A28"
--on-surface-medium = "rgba(44,42,40,0.68)"
--on-surface-disabled = "rgba(44,42,40,0.38)"
--error = "#8C5250"
--on-error = "#FFFFFF"
--success = "#5C7A62"
--on-success = "#FFFFFF"
--warning = "#8A7A4C"
--on-warning = "#000000"
--divider = "rgba(80,75,68,0.12)"
--outline = "rgba(80,75,68,0.14)"
--scrim = "rgba(20,18,16,0.42)"
--surface-hover = "rgba(110,117,128,0.05)"
--surface-alt = "rgba(110,117,128,0.025)"
--surface-active = "rgba(110,117,128,0.08)"
--glass-button = "rgba(110,117,128,0.05)"
--glass-button-hover = "rgba(110,117,128,0.10)"
--card-border = "rgba(110,117,128,0.10)"
--text-shadow = "rgba(0,0,0,0.05)"
--input-overlay-text = "rgba(44,42,40,0.24)"
--slider-text = "rgba(44,42,40,0.72)"
--thumb-fill = "rgba(110,117,128,0.10)"
--thumb-border = "rgba(110,117,128,0.28)"
--disabled-label = "rgba(44,42,40,0.20)"
--chart-grid = "rgba(110,117,128,0.06)"
--chart-crosshair = "rgba(110,117,128,0.16)"
--chart-hover-ring = "rgba(110,117,128,0.24)"
--tooltip-bg = "rgba(44,42,40,0.94)"
--tooltip-border = "rgba(110,117,128,0.10)"
--glass-fill = "rgba(255,255,254,0.62)"
--glass-border = "rgba(110,117,128,0.10)"
--glass-noise-tint = "rgba(80,75,68,0.02)"
--tactile-top = "rgba(255,255,255,0.45)"
--tactile-bottom = "rgba(255,255,255,0.06)"
--hover-overlay = "rgba(110,117,128,0.04)"
--active-overlay = "rgba(110,117,128,0.08)"
--rim-light = "rgba(180,175,168,0.10)"
--status-divider = "rgba(110,117,128,0.08)"
--sidebar-hover = "rgba(110,117,128,0.06)"
--sidebar-icon = "rgba(44,42,40,0.48)"
--sidebar-badge = "rgba(44,42,40,0.82)"
--sidebar-divider = "rgba(110,117,128,0.06)"
--chart-line = "rgba(110,117,128,0.08)"
--window-control = "rgba(44,42,40,0.62)"
--window-control-hover = "rgba(110,117,128,0.08)"
--window-close-hover = "rgba(140,82,80,0.75)"
--spinner-track = "rgba(110,117,128,0.10)"
--spinner-active = "rgba(110,117,128,0.80)"
--shutdown-panel-bg = "rgba(248,246,244,0.96)"
--shutdown-panel-border = "rgba(110,117,128,0.08)"
# RAM bar: slate
--ram-bar-app = "#6E7580"
--ram-bar-system = "rgba(44,42,40,0.14)"
# Accent strips: stone palette — slate, taupe, aged gold, charcoal, olive, warm gray
--accent-total = "#6E7580"
--accent-shielded = "#8A7D6C"
--accent-transparent = "#8A7A4C"
--accent-action = "#6E7580"
--accent-market = "#5C7A62"
--accent-portfolio = "#706454"
# Toasts: warm stone
--toast-info-accent = "#6E7580"
--toast-info-text = "#555D68"
--toast-success-accent = "rgba(92,122,98,1.0)"
--toast-success-text = "rgba(66,96,72,1.0)"
--toast-warning-accent = "rgba(138,122,76,1.0)"
--toast-warning-text = "rgba(110,96,52,1.0)"
--toast-error-accent = "rgba(140,82,80,1.0)"
--toast-error-text = "rgba(112,56,54,1.0)"
# Snackbar
--snackbar-bg = "rgba(44,42,40,0.95)"
--snackbar-text = "rgba(248,246,244,0.87)"
--snackbar-action = "rgba(148,153,159,1.0)"
--snackbar-action-hover = "rgba(180,185,190,1.0)"
# Controls
--switch-track-off = "rgba(44,42,40,0.22)"
--switch-track-on = "rgba(110,117,128,0.35)"
--switch-thumb-off = "#F0EEEC"
--switch-thumb-on = "#FEFEFE"
--control-shadow = "rgba(0,0,0,0.14)"
--checkbox-check = "#FFFFFF"
--app-bar-shadow = "rgba(0,0,0,0.06)"
[backdrop]
base-color-top = "rgba(250,250,248,255)"
base-color-bottom = "rgba(238,234,228,255)"
texture-tint-alpha = 85
gradient-top-r = 248
gradient-top-g = 248
gradient-top-b = 245
gradient-top-a = 240
gradient-bottom-r = 235
gradient-bottom-g = 230
gradient-bottom-b = 224
gradient-bottom-a = 230
background-alpha = 0.97
surface-alpha = 0.97
frame-alpha = 0.94
surface-inline-alpha = 0.95
background-inline-alpha = 0.94
# ---------------------------------------------------------------------------
# Theme Visual Effects — Marble (polished stone)
# Minimal, elegant. Faint cool shimmer like light gliding across
# polished stone. No particles, no color shifting — pure restraint.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 0.0 }
rainbow-border-enabled = { size = 0.0 }
# Very slow, very wide, very faint — like a reflection on polished marble
shimmer-enabled = { size = 1.0 }
shimmer-speed = { size = 0.018 }
shimmer-width = { size = 250.0 }
shimmer-alpha = { size = 0.015 }
shimmer-angle = { size = 10.0 }
shimmer-color = { color = "rgba(200,195,188,1.0)" }
positional-hue-enabled = { size = 0.0 }
# Gentle active-element glow — warm stone highlight
glow-pulse-enabled = { size = 1.0 }
glow-pulse-speed = { size = 0.18 }
glow-pulse-min-alpha = { size = 0.008 }
glow-pulse-max-alpha = { size = 0.025 }
glow-pulse-radius = { size = 2.0 }
glow-pulse-color = { color = "#8A7D6C" }
edge-trace-enabled = { size = 0.0 }
ember-rise-enabled = { size = 0.0 }
gradient-border-enabled = { size = 0.0 }
# No viewport wash — marble is clean and quiet
viewport-wash-enabled = { size = 0.0 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#100E0C" }
viewport-vignette-radius = { size = 0.16 }
viewport-vignette-alpha = { size = 0.04 }

166
res/themes/obsidian.toml Normal file
View File

@@ -0,0 +1,166 @@
[theme]
name = "Obsidian"
author = "The Hush Developers"
dark = true
elevation = { --elevation-0 = "#0E0B14", --elevation-1 = "#17121E", --elevation-2 = "#1C1625", --elevation-3 = "#211A2C", --elevation-4 = "#261E33" }
images = { background_image = "backgrounds/texture/obsidian_bg.png", logo = "logos/logo_ObsidianDragon_dark.png" }
[theme.palette]
--primary = "#AB47BC"
--primary-variant = "#8E24AA"
--primary-light = "#CE93D8"
--secondary = "#B388FF"
--secondary-variant = "#7C4DFF"
--secondary-light = "#D1C4E9"
--background = "#0A0810"
--surface = "#110E18"
--surface-variant = "#1C1625"
--on-primary = "#FFFFFF"
--on-secondary = "#000000"
--on-background = "#E8E0F0"
--on-surface = "#E8E0F0"
--on-surface-medium = "rgba(232,224,240,0.75)"
--on-surface-disabled = "rgba(232,224,240,0.45)"
--error = "#CF6679"
--on-error = "#000000"
--success = "#81C784"
--on-success = "#000000"
--warning = "#FFB74D"
--on-warning = "#000000"
--divider = "rgba(200,180,255,0.14)"
--outline = "rgba(200,180,255,0.16)"
--scrim = "rgba(0,0,0,0.6)"
--surface-hover = "rgba(200,180,255,0.07)"
--surface-alt = "rgba(200,180,255,0.05)"
--surface-active = "rgba(200,180,255,0.10)"
--glass-button = "rgba(200,180,255,0.06)"
--glass-button-hover = "rgba(200,180,255,0.12)"
--card-border = "rgba(200,180,255,0.14)"
--text-shadow = "rgba(0,0,0,0.50)"
--input-overlay-text = "rgba(232,224,240,0.30)"
--slider-text = "rgba(232,224,240,0.85)"
--thumb-fill = "rgba(200,180,255,0.15)"
--thumb-border = "rgba(200,180,255,0.50)"
--disabled-label = "rgba(200,180,255,0.18)"
--chart-grid = "rgba(200,180,255,0.05)"
--chart-crosshair = "rgba(200,180,255,0.15)"
--chart-hover-ring = "rgba(200,180,255,0.30)"
--tooltip-bg = "rgba(14,11,20,0.92)"
--tooltip-border = "rgba(200,180,255,0.12)"
--glass-fill = "rgba(200,180,255,0.08)"
--glass-border = "rgba(200,180,255,0.14)"
--glass-noise-tint = "rgba(200,180,255,0.03)"
--tactile-top = "rgba(200,180,255,0.06)"
--tactile-bottom = "rgba(200,180,255,0.0)"
--hover-overlay = "rgba(200,180,255,0.05)"
--active-overlay = "rgba(200,180,255,0.10)"
--rim-light = "rgba(200,180,255,0.08)"
--status-divider = "rgba(200,180,255,0.08)"
--sidebar-hover = "rgba(200,180,255,0.10)"
--sidebar-icon = "rgba(200,180,255,0.42)"
--sidebar-badge = "rgba(232,224,240,1.0)"
--sidebar-divider = "rgba(200,180,255,0.06)"
--chart-line = "rgba(200,180,255,0.10)"
--window-control = "rgba(232,224,240,0.78)"
--window-control-hover = "rgba(200,180,255,0.12)"
--window-close-hover = "rgba(232,17,35,0.78)"
--spinner-track = "rgba(200,180,255,0.10)"
--spinner-active = "rgba(179,136,255,0.85)"
--shutdown-panel-bg = "rgba(10,8,16,0.90)"
--shutdown-panel-border = "rgba(200,180,255,0.07)"
--ram-bar-app = "#AB47BC"
--ram-bar-system = "rgba(255,255,255,0.18)"
--accent-total = "#CE93D8"
--accent-shielded = "#80CBC4"
--accent-transparent = "#FFAB91"
--accent-action = "#AB47BC"
--accent-market = "#80CBC4"
--accent-portfolio = "#B388FF"
--toast-info-accent = "#AB47BC"
--toast-info-text = "#CE93D8"
--toast-success-accent = "rgba(50,180,80,1.0)"
--toast-success-text = "rgba(180,255,180,1.0)"
--toast-warning-accent = "rgba(204,166,50,1.0)"
--toast-warning-text = "rgba(255,230,130,1.0)"
--toast-error-accent = "rgba(204,64,64,1.0)"
--toast-error-text = "rgba(255,153,153,1.0)"
--snackbar-bg = "rgba(40,35,55,0.95)"
--snackbar-text = "rgba(232,224,240,0.87)"
--snackbar-action = "rgba(179,136,255,1.0)"
--snackbar-action-hover = "rgba(206,147,216,1.0)"
--switch-track-off = "rgba(200,180,255,0.12)"
--switch-track-on = "rgba(171,71,188,0.50)"
--switch-thumb-off = "#B0A0C0"
--switch-thumb-on = "#E8E0F0"
--control-shadow = "rgba(0,0,0,0.24)"
--checkbox-check = "#000000"
--app-bar-shadow = "rgba(0,0,0,0.25)"
[backdrop]
base-color-top = "rgba(22,14,40,210)"
base-color-bottom = "rgba(10,6,22,210)"
texture-tint-alpha = 130
gradient-top-r = 18
gradient-top-g = 10
gradient-top-b = 35
gradient-top-a = 90
gradient-bottom-r = 8
gradient-bottom-g = 4
gradient-bottom-b = 18
gradient-bottom-a = 70
background-alpha = 0.42
surface-alpha = 0.52
frame-alpha = 0.74
surface-inline-alpha = 0.55
background-inline-alpha = 0.38
# ---------------------------------------------------------------------------
# Theme Visual Effects — Obsidian (volcanic glass sheen)
# Specular glare highlights drift slowly across panels like light
# reflecting off polished volcanic glass — mysterious, restrained.
# ---------------------------------------------------------------------------
[effects]
hue-cycle-enabled = { size = 0.0 }
rainbow-border-enabled = { size = 0.0 }
# No shimmer sweep — replaced by specular glare
shimmer-enabled = { size = 0.0 }
positional-hue-enabled = { size = 0.0 }
glow-pulse-enabled = { size = 0.0 }
edge-trace-enabled = { size = 0.0 }
# Specular glare — soft blurred obsidian highlights
specular-glare-enabled = { size = 1.0 }
specular-glare-speed = { size = 0.018 }
specular-glare-intensity = { size = 0.008 }
specular-glare-radius = { size = 0.65 }
specular-glare-count = { size = 1.0 }
specular-glare-color = { color = "rgba(200,180,240,1.0)" }
# Gem-like color-shifting border on active sidebar button
gradient-border-enabled = { size = 1.0 }
gradient-border-speed = { size = 0.12 }
gradient-border-thickness = { size = 1.5 }
gradient-border-alpha = { size = 0.55 }
gradient-border-color-a = { color = "#CE93D8" }
gradient-border-color-b = { color = "#3F51B5" }
ember-rise-enabled = { size = 0.0 }
# Shader-like viewport overlay — deep indigo crystal atmosphere
viewport-wash-enabled = { size = 1.0 }
viewport-wash-alpha = { size = 0.05 }
viewport-wash-tl = { color = "#4A148C" }
viewport-wash-tr = { color = "#1A237E" }
viewport-wash-bl = { color = "#311B92" }
viewport-wash-br = { color = "#6A1B9A" }
viewport-wash-rotate = { size = 0.015 }
viewport-wash-pulse = { size = 0.0 }
viewport-wash-pulse-depth = { size = 0.0 }
viewport-vignette-enabled = { size = 1.0 }
viewport-vignette-color = { color = "#0D0015" }
viewport-vignette-radius = { size = 0.22 }
viewport-vignette-alpha = { size = 0.15 }

1564
res/themes/ui.toml Normal file

File diff suppressed because it is too large Load Diff