Files
AR-Shipdesign/arshipdesign/ui/themes/dark.qss
T
alro65 d0d47ec5fb fix(theme): palette Deep Navy Slate + legibilidad ribbon + capa indicadores
- Reemplaza fondos casi-negros (#0e1117, #1e2128) por paleta
  azul-gris marino profesional (#252a38 main, #1a1e2c viewport canvas)
- Elimina max-width:72px de ribbonButton — texto como "C. Incendio",
  "Post-Proc.", "Agua Dulce" ya no se corta
- layerVisBtn: indicador visual por color (azul=#0d99ff visible /
  gris=#363b4e oculta) sin depender de texto ni ícono
- layerLockBtn: ámbar=#fbbf24 bloqueada / gris libre
- Mejora contraste de ribbonGroupTitle, viewportTitle,
  placeholderTitle, placeholderDesc y viewportPlaceholder
- Agrega border-bottom a ribbonContent para separación visual

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 23:43:29 -04:00

612 lines
15 KiB
Plaintext
Raw 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.
/* ============================================================
AR-ShipDesign — Tema Oscuro Profesional v2
Paleta "Deep Navy Slate" — sin negro puro, azul oceánico
─────────────────────────────────────────────────────────
#252a38 fondo principal (slate azul-gris)
#2e3342 paneles / toolbar
#373c4e elementos elevados
#424757 hover / inputs
#1a1e2c viewport canvas (azul marino profundo)
#22263a viewport title bar
#454a5e bordes principales
#363b4e bordes sutiles
#8a93aa texto muted
#dce1f0 texto principal
#0d99ff acento (azul eléctrico)
============================================================ */
/* ─── BASE ─────────────────────────────────────────────────── */
* {
outline: none;
}
QMainWindow, QDialog, QWidget {
background-color: #252a38;
color: #dce1f0;
font-family: "Segoe UI", Arial, sans-serif;
font-size: 13px;
}
/* ─── MENÚ ──────────────────────────────────────────────────── */
QMenuBar {
background-color: #2e3342;
color: #dce1f0;
border-bottom: 1px solid #454a5e;
padding: 1px 0;
}
QMenuBar::item {
padding: 4px 10px;
background: transparent;
}
QMenuBar::item:selected {
background-color: #373c4e;
color: #ffffff;
}
QMenuBar::item:pressed {
background-color: #0d99ff;
color: #ffffff;
}
QMenu {
background-color: #2e3342;
color: #dce1f0;
border: 1px solid #454a5e;
padding: 3px 0;
}
QMenu::item {
padding: 5px 28px 5px 20px;
}
QMenu::item:selected {
background-color: #0d99ff;
color: #ffffff;
}
QMenu::item:disabled {
color: #555c6e;
}
QMenu::separator {
height: 1px;
background: #454a5e;
margin: 3px 8px;
}
/* ─── RIBBON TOOLBAR (contenedor QToolBar) ──────────────────── */
QToolBar#ribbonToolbar {
background-color: #2e3342;
border: none;
border-bottom: 1px solid #454a5e;
padding: 0;
spacing: 0;
margin: 0;
}
/* ─── RIBBON BAR ────────────────────────────────────────────── */
QWidget#ribbonBar {
background-color: #2e3342;
}
/* Fila de pestañas */
QWidget#ribbonTabRow {
background-color: #252a38;
border-bottom: 1px solid #454a5e;
}
/* Botones de pestañas */
QToolButton#ribbonTabBtn {
background: transparent;
border: none;
border-bottom: 2px solid transparent;
border-radius: 0;
padding: 0 16px;
color: #8a93aa;
font-size: 12px;
min-width: 80px;
height: 26px;
}
QToolButton#ribbonTabBtn:hover {
background-color: #373c4e;
color: #c0c8d8;
}
QToolButton#ribbonTabBtn:checked {
background-color: #2e3342;
color: #0d99ff;
border-bottom: 2px solid #0d99ff;
font-weight: bold;
}
/* Stack de contenido */
QStackedWidget#ribbonContent {
background-color: #2e3342;
border-bottom: 1px solid #454a5e;
}
/* Grupo de botones */
QFrame#ribbonGroup {
background-color: transparent;
border: none;
margin: 2px 0;
}
QWidget#ribbonBtnArea {
background-color: transparent;
}
QLabel#ribbonGroupTitle {
color: #7a8398;
font-size: 10px;
padding: 2px 0 3px 0;
background-color: transparent;
}
QFrame#ribbonSep {
color: #373c4e;
margin: 6px 2px;
}
/* Botones — sin max-width para que el texto no se corte */
QToolButton#ribbonButton {
background: transparent;
color: #dce1f0;
border: 1px solid transparent;
border-radius: 3px;
padding: 4px 8px 2px 8px;
font-size: 11px;
min-width: 48px;
/* SIN max-width — texto completo siempre visible */
}
QToolButton#ribbonButton:hover {
background-color: #373c4e;
border-color: #454a5e;
}
QToolButton#ribbonButton:pressed {
background-color: #0d99ff;
color: #ffffff;
border-color: #0d99ff;
}
QToolButton#ribbonButton:checked {
background-color: #1a4070;
border-color: #0d99ff;
}
QToolButton#ribbonButton:disabled {
color: #555c6e;
}
/* ─── 4 VIEWPORTS ───────────────────────────────────────────── */
QWidget#fourViewport {
background-color: #1a1e2c;
}
QFrame#viewportFrame {
background-color: #1a1e2c;
border: 1px solid #2a2e40;
}
QWidget#viewportTitleBar {
background-color: #22263a;
border-bottom: 1px solid #2e3448;
}
QLabel#viewportTitle {
color: #6070a0;
font-size: 11px;
font-weight: bold;
letter-spacing: 0.5px;
}
QWidget#viewportCanvas {
background-color: #1a1e2c;
}
/* Texto watermark en el viewport — sutil pero legible */
QLabel#viewportPlaceholder {
color: #2a3060;
font-size: 16px;
font-family: "Consolas", monospace;
font-weight: bold;
letter-spacing: 2px;
}
/* Separadores arrastrables del viewport — azul eléctrico */
QSplitter#viewportSplitter {
background-color: #1a1e2c;
}
QSplitter#viewportSplitter::handle {
background-color: #0d99ff;
}
QSplitter#viewportSplitter::handle:horizontal {
width: 3px;
}
QSplitter#viewportSplitter::handle:vertical {
height: 3px;
}
QSplitter#viewportSplitter::handle:hover {
background-color: #4dbfff;
}
/* ─── DOCK WIDGETS ──────────────────────────────────────────── */
QDockWidget {
color: #dce1f0;
font-weight: bold;
font-size: 12px;
}
QDockWidget::title {
background-color: #2e3342;
padding: 4px 8px;
border-bottom: 1px solid #454a5e;
text-align: left;
}
QDockWidget::close-button,
QDockWidget::float-button {
background: transparent;
border: none;
padding: 2px;
}
QDockWidget::close-button:hover,
QDockWidget::float-button:hover {
background-color: #454a5e;
border-radius: 2px;
}
/* ─── PANEL DE CAPAS ────────────────────────────────────────── */
QWidget#layersPanel {
background-color: #252a38;
}
QWidget#layersPanelHeader {
background-color: #2e3342;
border-bottom: 1px solid #454a5e;
}
QFrame#panelSep {
color: #454a5e;
max-height: 1px;
}
QScrollArea#layersScrollArea {
background-color: #252a38;
border: none;
}
QWidget#layersContainer {
background-color: #252a38;
}
/* Fila de capa */
QWidget#layerRow {
background-color: transparent;
min-height: 26px;
}
QWidget#layerRow:hover {
background-color: #2e3342;
}
QLabel#layerName {
color: #c0c8d8;
font-size: 12px;
}
/*
Botón de visibilidad: azul = capa visible, gris oscuro = oculta
(sin texto — el color ES el indicador)
*/
QToolButton#layerVisBtn {
background-color: #0d99ff;
border: none;
border-radius: 2px;
/* 16×16 fijo desde Python */
}
QToolButton#layerVisBtn:!checked {
background-color: #363b4e;
border: 1px solid #454a5e;
}
QToolButton#layerVisBtn:hover {
border: 1px solid #6bb8ff;
}
/*
Botón de bloqueo: ámbar = bloqueada, gris = libre
*/
QToolButton#layerLockBtn {
background-color: #363b4e;
border: 1px solid #454a5e;
border-radius: 2px;
}
QToolButton#layerLockBtn:checked {
background-color: #fbbf24;
border-color: #fbbf24;
}
QToolButton#layerLockBtn:hover {
border: 1px solid #ffd066;
}
/* ─── PROPIEDADES ───────────────────────────────────────────── */
QWidget#propContent {
background-color: #252a38;
}
QLabel#propSection {
color: #8a93aa;
font-size: 11px;
padding-bottom: 6px;
border-bottom: 1px solid #454a5e;
margin-bottom: 4px;
}
QLabel#propKey {
color: #8a93aa;
font-size: 12px;
}
QLabel#propVal {
color: #dce1f0;
font-size: 13px;
}
/* ─── PANEL HIDROSTÁTICOS ───────────────────────────────────── */
QFrame#hydrostaticsPanel {
background-color: #1e2232;
border-top: 1px solid #454a5e;
}
QLabel#hydroTitle {
color: #555c6e;
font-size: 10px;
font-weight: bold;
padding: 0 10px 0 4px;
letter-spacing: 1px;
}
QFrame#hydroSep {
color: #363b4e;
}
QLabel#hydroKey {
color: #8a93aa;
font-size: 11px;
padding: 0 2px;
}
QLabel#hydroVal {
color: #0d99ff;
font-family: "Consolas", monospace;
font-size: 12px;
min-width: 52px;
}
QLabel#hydroImoNone {
color: #555c6e;
font-family: "Consolas", monospace;
font-size: 12px;
}
QLabel#hydroImoOk {
color: #34c759;
font-family: "Consolas", monospace;
font-size: 12px;
font-weight: bold;
}
QLabel#hydroImoFail {
color: #ff3b30;
font-family: "Consolas", monospace;
font-size: 12px;
font-weight: bold;
}
/* ─── MÓDULOS PLACEHOLDER ───────────────────────────────────── */
QWidget#modulePlaceholder {
background-color: #252a38;
}
QLabel#placeholderTitle {
color: #5a6585;
font-size: 18px;
font-weight: bold;
}
QLabel#placeholderDesc {
color: #4e5870;
font-size: 13px;
}
QLabel#placeholderMsg {
color: #414c64;
font-size: 12px;
}
/* ─── BARRA DE ESTADO ───────────────────────────────────────── */
QStatusBar {
background-color: #0a7de0;
color: #ffffff;
font-size: 12px;
}
QStatusBar::item { border: none; }
QLabel#statusVersion {
color: rgba(255,255,255,0.85);
font-size: 11px;
font-weight: bold;
}
QLabel#statusLabel {
color: rgba(255,255,255,0.70);
font-size: 11px;
}
QLabel#statusValue {
color: #ffffff;
font-size: 11px;
font-weight: bold;
}
/* ─── SCROLLBARS ────────────────────────────────────────────── */
QScrollBar:vertical {
background: #252a38;
width: 10px;
border: none;
}
QScrollBar::handle:vertical {
background: #454a5e;
border-radius: 5px;
min-height: 24px;
}
QScrollBar::handle:vertical:hover { background: #6b7385; }
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
QScrollBar:horizontal {
background: #252a38;
height: 10px;
border: none;
}
QScrollBar::handle:horizontal {
background: #454a5e;
border-radius: 5px;
min-width: 24px;
}
QScrollBar::handle:horizontal:hover { background: #6b7385; }
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
/* ─── BOTONES ───────────────────────────────────────────────── */
QPushButton {
background-color: #373c4e;
color: #dce1f0;
border: 1px solid #454a5e;
border-radius: 3px;
padding: 5px 14px;
min-width: 72px;
}
QPushButton:hover {
background-color: #424757;
border-color: #6b7385;
}
QPushButton:pressed {
background-color: #0d99ff;
color: #ffffff;
border-color: #0d99ff;
}
QPushButton:default { border-color: #0d99ff; }
QPushButton:disabled { color: #555c6e; border-color: #363b4e; }
/* ─── CAMPOS DE ENTRADA ─────────────────────────────────────── */
QLineEdit, QSpinBox, QDoubleSpinBox, QComboBox {
background-color: #2e3342;
color: #dce1f0;
border: 1px solid #454a5e;
border-radius: 3px;
padding: 4px 6px;
selection-background-color: #0d99ff;
}
QLineEdit:focus, QSpinBox:focus, QDoubleSpinBox:focus, QComboBox:focus {
border-color: #0d99ff;
}
QLineEdit:disabled, QSpinBox:disabled, QDoubleSpinBox:disabled {
color: #555c6e;
background-color: #252a38;
}
QComboBox::drop-down { border: none; width: 20px; }
QComboBox QAbstractItemView {
background-color: #2e3342;
color: #dce1f0;
border: 1px solid #454a5e;
selection-background-color: #0d99ff;
}
/* ─── TABLAS Y LISTAS ───────────────────────────────────────── */
QHeaderView::section {
background-color: #2e3342;
color: #8a93aa;
border: none;
border-right: 1px solid #454a5e;
border-bottom: 1px solid #454a5e;
padding: 4px 8px;
font-size: 12px;
}
QTableView, QListView {
background-color: #252a38;
alternate-background-color: #282d3c;
color: #dce1f0;
border: 1px solid #454a5e;
gridline-color: #363b4e;
selection-background-color: #0d99ff;
selection-color: #ffffff;
}
QTableView::item:hover, QListView::item:hover {
background-color: #373c4e;
}
/* ─── ÁRBOL ─────────────────────────────────────────────────── */
QTreeWidget {
background-color: #252a38;
alternate-background-color: #282d3c;
color: #dce1f0;
border: none;
selection-background-color: #0d99ff;
selection-color: #ffffff;
font-size: 13px;
}
QTreeWidget::item {
padding: 3px 4px;
border: none;
}
QTreeWidget::item:hover {
background-color: #373c4e;
}
QTreeWidget::item:selected {
background-color: #0d99ff;
color: #ffffff;
}
QTreeWidget::branch {
background-color: #252a38;
}
/* ─── PESTAÑAS ──────────────────────────────────────────────── */
QTabWidget::pane {
border: none;
border-top: 1px solid #454a5e;
background-color: #252a38;
}
QTabBar {
background-color: #2e3342;
}
QTabBar::tab {
background-color: #2e3342;
color: #8a93aa;
border: none;
border-right: 1px solid #454a5e;
padding: 6px 14px;
min-width: 70px;
font-size: 12px;
}
QTabBar::tab:selected {
background-color: #252a38;
color: #dce1f0;
border-top: 2px solid #0d99ff;
}
QTabBar::tab:hover:!selected {
background-color: #373c4e;
color: #dce1f0;
}
/* ─── SPLITTER GENERAL ──────────────────────────────────────── */
QSplitter::handle { background-color: #454a5e; }
QSplitter::handle:horizontal { width: 1px; }
QSplitter::handle:vertical { height: 1px; }
/* ─── MENSAJES / TOOLTIP ────────────────────────────────────── */
QMessageBox { background-color: #2e3342; }
QMessageBox QLabel { color: #dce1f0; }
QToolTip {
background-color: #2e3342;
color: #dce1f0;
border: 1px solid #454a5e;
padding: 4px 6px;
font-size: 12px;
}