| from __future__ import annotations |
|
|
|
|
| COLORS = { |
| "bg": "#05090e", |
| "sidebar": "#071019", |
| "surface": "#09131d", |
| "surface_2": "#0c1925", |
| "surface_3": "#102130", |
| "border": "#183246", |
| "border_bright": "#24506e", |
| "text": "#edf5fb", |
| "muted": "#7f94a5", |
| "blue": "#159eff", |
| "blue_2": "#5bc0ff", |
| "green": "#57e65c", |
| "purple": "#bd63ff", |
| "orange": "#ffb547", |
| "red": "#ff5964", |
| } |
|
|
|
|
| APP_STYLESHEET = f""" |
| * {{ |
| font-family: "Segoe UI"; |
| font-size: 13px; |
| color: {COLORS["text"]}; |
| }} |
| QMainWindow, QWidget#Root {{ |
| background: {COLORS["bg"]}; |
| }} |
| QFrame#Sidebar {{ |
| background: {COLORS["sidebar"]}; |
| border-right: 1px solid {COLORS["border"]}; |
| }} |
| QFrame#TopBar {{ |
| background: transparent; |
| border-bottom: 1px solid {COLORS["border"]}; |
| }} |
| QFrame[card="true"], QGroupBox {{ |
| background: {COLORS["surface"]}; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 12px; |
| }} |
| QFrame[innerCard="true"] {{ |
| background: {COLORS["surface_2"]}; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 9px; |
| }} |
| QLabel {{ |
| background: transparent; |
| }} |
| QLabel[muted="true"] {{ |
| color: {COLORS["muted"]}; |
| }} |
| QLabel[accent="true"] {{ |
| color: {COLORS["blue_2"]}; |
| }} |
| QLabel[success="true"] {{ |
| color: {COLORS["green"]}; |
| }} |
| QLabel[warning="true"] {{ |
| color: {COLORS["orange"]}; |
| }} |
| QLabel[danger="true"] {{ |
| color: {COLORS["red"]}; |
| }} |
| QLabel#AppName {{ |
| font-size: 25px; |
| font-weight: 800; |
| letter-spacing: 4px; |
| }} |
| QLabel#PageTitle {{ |
| font-size: 24px; |
| font-weight: 650; |
| }} |
| QLabel#CardTitle {{ |
| color: {COLORS["blue_2"]}; |
| font-size: 11px; |
| font-weight: 700; |
| letter-spacing: 1.5px; |
| }} |
| QPushButton {{ |
| min-height: 34px; |
| padding: 0 16px; |
| border-radius: 7px; |
| border: 1px solid {COLORS["border_bright"]}; |
| background: {COLORS["surface_2"]}; |
| }} |
| QPushButton:hover {{ |
| background: {COLORS["surface_3"]}; |
| border-color: {COLORS["blue"]}; |
| }} |
| QPushButton:pressed {{ |
| background: #0d2b40; |
| }} |
| QPushButton:disabled {{ |
| color: #536674; |
| border-color: #142734; |
| background: #09121a; |
| }} |
| QPushButton[primary="true"] {{ |
| background-color: {COLORS["blue"]}; |
| color: #00101b; |
| border-color: {COLORS["blue_2"]}; |
| font-weight: 700; |
| }} |
| QPushButton[primary="true"]:hover {{ |
| background-color: #43b4ff; |
| }} |
| QPushButton[danger="true"] {{ |
| color: {COLORS["red"]}; |
| border-color: #63323a; |
| }} |
| QPushButton[nav="true"] {{ |
| min-height: 43px; |
| padding-left: 18px; |
| text-align: left; |
| border: 0; |
| border-left: 3px solid transparent; |
| border-radius: 0; |
| color: {COLORS["muted"]}; |
| background: transparent; |
| font-weight: 600; |
| }} |
| QPushButton[nav="true"]:hover {{ |
| color: {COLORS["text"]}; |
| background: #0a1721; |
| }} |
| QPushButton[navActive="true"] {{ |
| color: {COLORS["blue_2"]}; |
| background: #0b1b28; |
| border-left: 3px solid {COLORS["blue"]}; |
| }} |
| QPushButton[chip="true"] {{ |
| min-height: 29px; |
| padding: 0 11px; |
| color: #a9dfff; |
| border-color: #1c4b69; |
| background: #081a27; |
| font-size: 12px; |
| }} |
| QPushButton[workflowCard="true"] {{ |
| min-height: 92px; |
| padding: 12px 13px; |
| text-align: left; |
| color: {COLORS["text"]}; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 9px; |
| background: {COLORS["surface_2"]}; |
| font-size: 12px; |
| font-weight: 600; |
| }} |
| QPushButton[workflowCard="true"]:hover {{ |
| background: #0e2130; |
| border-color: {COLORS["blue"]}; |
| }} |
| QPushButton[recentPlan="true"] {{ |
| min-height: 36px; |
| padding: 5px 9px; |
| text-align: left; |
| border-radius: 7px; |
| border-color: {COLORS["border"]}; |
| background: #08131d; |
| font-size: 11px; |
| }} |
| QPushButton[quick="true"] {{ |
| min-height: 27px; |
| padding: 0 9px; |
| text-align: left; |
| border: 0; |
| color: #89a3b5; |
| background: transparent; |
| font-size: 11px; |
| }} |
| QPushButton[quick="true"]:hover {{ |
| color: {COLORS["blue_2"]}; |
| background: #0a1924; |
| }} |
| QLineEdit, QTextEdit, QPlainTextEdit, QComboBox, QSpinBox, QDoubleSpinBox {{ |
| background: #050d14; |
| border: 1px solid {COLORS["border_bright"]}; |
| border-radius: 8px; |
| padding: 8px 10px; |
| selection-background-color: {COLORS["blue"]}; |
| }} |
| QLineEdit:focus, QTextEdit:focus, QPlainTextEdit:focus, QComboBox:focus {{ |
| border-color: {COLORS["blue"]}; |
| }} |
| QComboBox::drop-down {{ |
| border: 0; |
| width: 28px; |
| }} |
| QComboBox QAbstractItemView {{ |
| background: {COLORS["surface_2"]}; |
| border: 1px solid {COLORS["border_bright"]}; |
| selection-background-color: #12334a; |
| }} |
| QScrollArea {{ |
| background: {COLORS["surface"]}; |
| border: 0; |
| }} |
| QScrollArea > QWidget > QWidget {{ |
| background: {COLORS["surface"]}; |
| }} |
| QScrollBar:vertical {{ |
| width: 8px; |
| background: transparent; |
| margin: 2px; |
| }} |
| QScrollBar::handle:vertical {{ |
| min-height: 32px; |
| border-radius: 4px; |
| background: #244154; |
| }} |
| QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {{ |
| height: 0; |
| }} |
| QProgressBar {{ |
| min-height: 7px; |
| max-height: 7px; |
| border: 0; |
| border-radius: 3px; |
| background: #13232e; |
| text-align: center; |
| }} |
| QProgressBar::chunk {{ |
| border-radius: 3px; |
| background: {COLORS["blue"]}; |
| }} |
| QTableWidget {{ |
| background: {COLORS["surface"]}; |
| alternate-background-color: #0a1620; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 10px; |
| gridline-color: #132a39; |
| selection-background-color: #10324a; |
| selection-color: {COLORS["text"]}; |
| }} |
| QListWidget {{ |
| background: {COLORS["surface"]}; |
| alternate-background-color: #0a1620; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 10px; |
| outline: 0; |
| padding: 6px; |
| }} |
| QListWidget::item {{ |
| color: {COLORS["text"]}; |
| border-radius: 6px; |
| padding: 5px; |
| }} |
| QListWidget::item:selected {{ |
| background: #103d5a; |
| color: {COLORS["text"]}; |
| }} |
| QTabWidget::pane {{ |
| background: {COLORS["surface"]}; |
| border: 1px solid {COLORS["border"]}; |
| border-radius: 10px; |
| top: -1px; |
| }} |
| QTabBar::tab {{ |
| min-width: 120px; |
| padding: 10px 18px; |
| color: {COLORS["muted"]}; |
| background: {COLORS["surface_2"]}; |
| border: 1px solid {COLORS["border"]}; |
| border-bottom: 0; |
| border-top-left-radius: 7px; |
| border-top-right-radius: 7px; |
| }} |
| QTabBar::tab:selected {{ |
| color: {COLORS["blue_2"]}; |
| background: {COLORS["surface"]}; |
| border-color: {COLORS["border_bright"]}; |
| }} |
| QHeaderView::section {{ |
| background: #0c1a25; |
| color: {COLORS["muted"]}; |
| border: 0; |
| border-bottom: 1px solid {COLORS["border"]}; |
| padding: 10px; |
| font-size: 11px; |
| font-weight: 700; |
| }} |
| QTableWidget::item {{ |
| border-bottom: 1px solid #112532; |
| padding: 8px; |
| }} |
| QToolTip {{ |
| color: {COLORS["text"]}; |
| background: {COLORS["surface_3"]}; |
| border: 1px solid {COLORS["border_bright"]}; |
| padding: 5px; |
| }} |
| QCheckBox {{ |
| spacing: 9px; |
| }} |
| QCheckBox::indicator {{ |
| width: 17px; |
| height: 17px; |
| border: 1px solid {COLORS["border_bright"]}; |
| border-radius: 4px; |
| background: #050d14; |
| }} |
| QCheckBox::indicator:checked {{ |
| background: {COLORS["blue"]}; |
| border-color: {COLORS["blue_2"]}; |
| }} |
| """ |
|
|