0dbc2a4518
- Estructura completa de carpetas (236 módulos stub + implementados) - pyproject.toml, requirements, .gitignore, LICENSE (propietario) - core/project.py: serialización .arsd (ZIP con JSON) - core/units.py: conversiones SI <-> imperial completas - ui/main_window.py: layout DELFTship-style con todos los paneles - Árbol de proyecto (dock izquierda) - Tabs de módulos (centro) - Panel de propiedades (dock derecha) - Panel hidrostáticos en vivo (inferior, fijo) - ui/i18n: español e inglés - ui/themes: tema claro y oscuro - utils/logger.py, settings.py, validation.py - data/liquids.json: 15 líquidos navales - data/stability_criteria.json: IMO IS Code 2008, A.749(18), USCG - tests/test_startup.py: 12 tests, todos PASSED - Módulo scantling/ ISO 12215 (stubs Sprint 2.5) - Módulo fabrication/molds/ para moldes FRP (stubs Sprint 13B) - Módulo fabrication/ para CNC plasma/router/laser (stubs Sprint 13)
50 lines
2.2 KiB
Plaintext
50 lines
2.2 KiB
Plaintext
/* AR-ShipDesign — Tema Claro */
|
|
|
|
QMainWindow, QDialog, QWidget {
|
|
background-color: #f5f5f5;
|
|
color: #212121;
|
|
font-family: "Segoe UI", Arial, sans-serif;
|
|
font-size: 13px;
|
|
}
|
|
|
|
QMenuBar { background-color: #ffffff; color: #212121; border-bottom: 1px solid #e0e0e0; }
|
|
QMenuBar::item:selected { background-color: #e3f2fd; }
|
|
QMenu { background-color: #ffffff; color: #212121; border: 1px solid #e0e0e0; }
|
|
QMenu::item:selected { background-color: #1976d2; color: #ffffff; }
|
|
|
|
QToolBar { background-color: #ffffff; border-bottom: 1px solid #e0e0e0; }
|
|
QToolButton { background: transparent; border: 1px solid transparent; border-radius: 3px; padding: 3px; }
|
|
QToolButton:hover { background-color: #e3f2fd; }
|
|
QToolButton:pressed { background-color: #1976d2; color: #ffffff; }
|
|
|
|
QTreeWidget, QTreeView, QListView, QTableView {
|
|
background-color: #ffffff;
|
|
alternate-background-color: #f8f9fa;
|
|
color: #212121;
|
|
border: 1px solid #e0e0e0;
|
|
selection-background-color: #1976d2;
|
|
selection-color: #ffffff;
|
|
}
|
|
QHeaderView::section { background-color: #f5f5f5; color: #555; border: 1px solid #e0e0e0; padding: 4px 6px; }
|
|
|
|
QTabWidget::pane { border: 1px solid #e0e0e0; background-color: #ffffff; }
|
|
QTabBar::tab { background-color: #f5f5f5; color: #666; border: 1px solid #e0e0e0; border-bottom: none; padding: 5px 10px; }
|
|
QTabBar::tab:selected { background-color: #ffffff; color: #212121; border-bottom: 2px solid #1976d2; }
|
|
|
|
QPushButton { background-color: #1976d2; color: #ffffff; border: none; border-radius: 4px; padding: 6px 14px; }
|
|
QPushButton:hover { background-color: #1e88e5; }
|
|
QPushButton:pressed { background-color: #1565c0; }
|
|
|
|
QLineEdit, QSpinBox, QDoubleSpinBox, QComboBox { background-color: #ffffff; color: #212121; border: 1px solid #bdbdbd; border-radius: 3px; padding: 4px 6px; }
|
|
QLineEdit:focus, QSpinBox:focus, QDoubleSpinBox:focus { border-color: #1976d2; }
|
|
|
|
QStatusBar { background-color: #1976d2; color: #ffffff; }
|
|
|
|
#hydrostaticsPanel {
|
|
background-color: #e8f4fd;
|
|
border-top: 2px solid #1976d2;
|
|
}
|
|
#hydrostaticsPanel QLabel[value="true"] { color: #0277bd; font-weight: bold; }
|
|
#hydrostaticsPanel QLabel[imo_ok="true"] { color: #2e7d32; font-weight: bold; }
|
|
#hydrostaticsPanel QLabel[imo_fail="true"] { color: #c62828; font-weight: bold; }
|