fix(ui): Ocean Slate theme — legibilidad, 4 viewports diferenciados
Problema 1 — texto oscuro ilegible
- ribbonButton disabled: #555c6e → #7a8ba8 (contraste ≥3.5:1)
- ribbonGroupTitle: #6b7385 → #9aa3bc (legible)
- placeholderTitle/Desc/Msg: colores más claros y visibles
Problema 2 — 4 viewports indistinguibles (negro monótono)
- Cada viewport tiene objectName propio (viewportTitleBar_perspective etc.)
- 4 barras de título con colores únicos:
perspective → azul profundo #1e2550 / texto #6888d8
profile → teal marino #143040 / texto #40a8b8
bodyplan → índigo #28183c / texto #8868c8
plan → verde oscuro #142814 / texto #48a858
- QFrame viewport: borde 2px solid #2a3060 (claramente visible)
- setHandleWidth(5) en Python (3→5 px) + QSS hover acento
Problema 3 — fondo negro de muertos
- Main bg: #252a38 → #2c3042 (slate medio, claramente gris-azul)
- Paneles: #2e3342 → #343848
- Viewport canvas: #1a1e2c → #1a1d30 (navy, no neutral)
- Línea acento (#4da8ff) bajo ribbon y sobre hidrostáticos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -195,27 +195,28 @@ class ViewportFrame(QFrame):
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
layout.setSpacing(0)
|
||||
|
||||
# ── Barra de título ──────────────────────────────────────
|
||||
# ── Barra de título (objectName único por vista) ──────────
|
||||
title_bar = QWidget()
|
||||
title_bar.setObjectName("viewportTitleBar")
|
||||
title_bar.setFixedHeight(22)
|
||||
# p.ej. "viewportTitleBar_perspective", "viewportTitleBar_profile"…
|
||||
title_bar.setObjectName(f"viewportTitleBar_{self.view_type}")
|
||||
title_bar.setFixedHeight(24)
|
||||
tbl = QHBoxLayout(title_bar)
|
||||
tbl.setContentsMargins(8, 0, 4, 0)
|
||||
tbl.setContentsMargins(10, 0, 4, 0)
|
||||
tbl.setSpacing(0)
|
||||
|
||||
lbl = QLabel(_VIEW_LABELS.get(self.view_type, self.view_type))
|
||||
lbl.setObjectName("viewportTitle")
|
||||
lbl = QLabel(_VIEW_LABELS.get(self.view_type, self.view_type).upper())
|
||||
lbl.setObjectName(f"viewportTitle_{self.view_type}")
|
||||
tbl.addWidget(lbl)
|
||||
tbl.addStretch()
|
||||
layout.addWidget(title_bar)
|
||||
|
||||
# ── Área de dibujo (placeholder Sprint 0) ────────────────
|
||||
self._canvas = QWidget()
|
||||
self._canvas.setObjectName("viewportCanvas")
|
||||
self._canvas.setObjectName(f"viewportCanvas_{self.view_type}")
|
||||
cl = QVBoxLayout(self._canvas)
|
||||
cl.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
|
||||
ph = QLabel(_VIEW_LABELS.get(self.view_type, ""))
|
||||
ph = QLabel(_VIEW_LABELS.get(self.view_type, "").upper())
|
||||
ph.setObjectName("viewportPlaceholder")
|
||||
ph.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
cl.addWidget(ph)
|
||||
@@ -255,11 +256,11 @@ class FourViewport(QWidget):
|
||||
|
||||
v_split = QSplitter(Qt.Orientation.Vertical)
|
||||
v_split.setObjectName("viewportSplitter")
|
||||
v_split.setHandleWidth(3)
|
||||
v_split.setHandleWidth(5)
|
||||
|
||||
top_split = QSplitter(Qt.Orientation.Horizontal)
|
||||
top_split.setObjectName("viewportSplitter")
|
||||
top_split.setHandleWidth(3)
|
||||
top_split.setHandleWidth(5)
|
||||
self._vp_perspective = ViewportFrame("perspective")
|
||||
self._vp_profile = ViewportFrame("profile")
|
||||
top_split.addWidget(self._vp_perspective)
|
||||
@@ -268,7 +269,7 @@ class FourViewport(QWidget):
|
||||
|
||||
bot_split = QSplitter(Qt.Orientation.Horizontal)
|
||||
bot_split.setObjectName("viewportSplitter")
|
||||
bot_split.setHandleWidth(3)
|
||||
bot_split.setHandleWidth(5)
|
||||
self._vp_bodyplan = ViewportFrame("bodyplan")
|
||||
self._vp_plan = ViewportFrame("plan")
|
||||
bot_split.addWidget(self._vp_bodyplan)
|
||||
|
||||
Reference in New Issue
Block a user