Added demos.

This commit is contained in:
2025-12-30 23:34:28 +01:00
parent 26069dc4e4
commit 0b67f4c166
24 changed files with 2784 additions and 6 deletions

View File

@@ -0,0 +1,890 @@
/* ===================================================================
Fluent Design Light Mode Stylesheet for Qt6
Windows 11 inspired light theme
=================================================================== */
/* === Color Palette ===
Background: #F3F3F3
Surface: #FFFFFF
Surface Hover: #F9F9F9
Border: #E1DFDD
Text: #000000
Text Secondary: #605E5C
Accent: #0078D4
Accent Hover: #106EBE
=== */
/* === Global Styles === */
* {
font-family: "Segoe UI", "Noto Sans", Roboto, sans-serif;
font-size: 9pt;
}
QWidget {
background-color: #F3F3F3;
color: #000000;
selection-background-color: #0078D4;
selection-color: #FFFFFF;
}
/* === QMainWindow === */
QMainWindow {
background-color: #F3F3F3;
}
QMainWindow::separator {
background-color: #E1DFDD;
width: 1px;
height: 1px;
}
QMainWindow::separator:hover {
background-color: #0078D4;
}
/* === QPushButton === */
QPushButton {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 6px 16px;
min-height: 20px;
font-weight: 500;
}
QPushButton:hover {
background-color: #F9F9F9;
border-color: #D1CFCD;
}
QPushButton:pressed {
background-color: #F0F0F0;
border-color: #E1DFDD;
}
QPushButton:disabled {
background-color: #F9F9F9;
color: #A19F9D;
border-color: #E1DFDD;
}
QPushButton:default {
background-color: #0078D4;
border-color: #0078D4;
color: #FFFFFF;
}
QPushButton:default:hover {
background-color: #106EBE;
border-color: #106EBE;
}
QPushButton:default:pressed {
background-color: #005A9E;
border-color: #005A9E;
}
/* === QLineEdit === */
QLineEdit {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 6px 8px;
selection-background-color: #0078D4;
}
QLineEdit:hover {
border-color: #D1CFCD;
}
QLineEdit:focus {
background-color: #FFFFFF;
border: 2px solid #0078D4;
padding: 5px 7px;
}
QLineEdit:disabled {
background-color: #F9F9F9;
color: #A19F9D;
border-color: #E1DFDD;
}
QLineEdit[readOnly="true"] {
background-color: #F9F9F9;
color: #605E5C;
}
/* === QTextEdit & QPlainTextEdit === */
QTextEdit, QPlainTextEdit {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 8px;
selection-background-color: #0078D4;
}
QTextEdit:hover, QPlainTextEdit:hover {
border-color: #D1CFCD;
}
QTextEdit:focus, QPlainTextEdit:focus {
border: 2px solid #0078D4;
padding: 7px;
}
QTextEdit:disabled, QPlainTextEdit:disabled {
background-color: #F9F9F9;
color: #A19F9D;
}
/* === QComboBox === */
QComboBox {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 6px 8px;
min-height: 20px;
}
QComboBox:hover {
background-color: #F9F9F9;
border-color: #D1CFCD;
}
QComboBox:focus {
border: 2px solid #0078D4;
}
QComboBox:disabled {
background-color: #F9F9F9;
color: #A19F9D;
}
QComboBox::drop-down {
border: none;
width: 20px;
}
QComboBox::down-arrow {
image: url(:/icons/down-arrow-light.png);
width: 12px;
height: 12px;
}
QComboBox QAbstractItemView {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
selection-background-color: #0078D4;
selection-color: #FFFFFF;
outline: none;
}
QComboBox QAbstractItemView::item {
min-height: 28px;
padding-left: 8px;
}
QComboBox QAbstractItemView::item:hover {
background-color: #F9F9F9;
}
/* === QSpinBox & QDoubleSpinBox === */
QSpinBox, QDoubleSpinBox {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 6px 8px;
min-height: 20px;
}
QSpinBox:hover, QDoubleSpinBox:hover {
border-color: #D1CFCD;
}
QSpinBox:focus, QDoubleSpinBox:focus {
border: 2px solid #0078D4;
}
QSpinBox:disabled, QDoubleSpinBox:disabled {
background-color: #F9F9F9;
color: #A19F9D;
}
QSpinBox::up-button, QDoubleSpinBox::up-button {
background-color: transparent;
border: none;
width: 16px;
}
QSpinBox::up-button:hover, QDoubleSpinBox::up-button:hover {
background-color: #F0F0F0;
}
QSpinBox::down-button, QDoubleSpinBox::down-button {
background-color: transparent;
border: none;
width: 16px;
}
QSpinBox::down-button:hover, QDoubleSpinBox::down-button:hover {
background-color: #F0F0F0;
}
/* === QCheckBox === */
QCheckBox {
spacing: 8px;
color: #000000;
}
QCheckBox::indicator {
width: 18px;
height: 18px;
border-radius: 4px;
border: 1px solid #8A8886;
background-color: #FFFFFF;
}
QCheckBox::indicator:hover {
background-color: #F9F9F9;
border-color: #605E5C;
}
QCheckBox::indicator:checked {
background-color: #0078D4;
border-color: #0078D4;
image: url(:/icons/checkmark-white.png);
}
QCheckBox::indicator:checked:hover {
background-color: #106EBE;
border-color: #106EBE;
}
QCheckBox::indicator:disabled {
background-color: #F9F9F9;
border-color: #E1DFDD;
}
QCheckBox:disabled {
color: #A19F9D;
}
/* === QRadioButton === */
QRadioButton {
spacing: 8px;
color: #000000;
}
QRadioButton::indicator {
width: 18px;
height: 18px;
border-radius: 9px;
border: 1px solid #8A8886;
background-color: #FFFFFF;
}
QRadioButton::indicator:hover {
background-color: #F9F9F9;
border-color: #605E5C;
}
QRadioButton::indicator:checked {
background-color: #0078D4;
border-color: #0078D4;
}
QRadioButton::indicator:checked:hover {
background-color: #106EBE;
border-color: #106EBE;
}
QRadioButton::indicator:checked::after {
width: 8px;
height: 8px;
border-radius: 4px;
background-color: #FFFFFF;
}
QRadioButton::indicator:disabled {
background-color: #F9F9F9;
border-color: #E1DFDD;
}
QRadioButton:disabled {
color: #A19F9D;
}
/* === QSlider === */
QSlider::groove:horizontal {
height: 4px;
background-color: #E1DFDD;
border-radius: 2px;
}
QSlider::handle:horizontal {
background-color: #FFFFFF;
border: 2px solid #0078D4;
width: 16px;
height: 16px;
margin: -7px 0;
border-radius: 8px;
}
QSlider::handle:horizontal:hover {
background-color: #FFFFFF;
border: 2px solid #106EBE;
}
QSlider::handle:horizontal:pressed {
background-color: #F0F0F0;
}
QSlider::sub-page:horizontal {
background-color: #0078D4;
border-radius: 2px;
}
QSlider::groove:vertical {
width: 4px;
background-color: #E1DFDD;
border-radius: 2px;
}
QSlider::handle:vertical {
background-color: #FFFFFF;
border: 2px solid #0078D4;
width: 16px;
height: 16px;
margin: 0 -7px;
border-radius: 8px;
}
QSlider::sub-page:vertical {
background-color: #0078D4;
border-radius: 2px;
}
/* === QProgressBar === */
QProgressBar {
background-color: #E1DFDD;
border: none;
border-radius: 2px;
height: 4px;
text-align: center;
color: transparent;
}
QProgressBar::chunk {
background-color: #0078D4;
border-radius: 2px;
}
QProgressBar:disabled {
background-color: #E1DFDD;
}
/* === QScrollBar === */
QScrollBar:horizontal {
background-color: transparent;
height: 12px;
margin: 0;
}
QScrollBar::handle:horizontal {
background-color: #C8C6C4;
min-width: 40px;
border-radius: 6px;
margin: 2px;
}
QScrollBar::handle:horizontal:hover {
background-color: #A19F9D;
}
QScrollBar::handle:horizontal:pressed {
background-color: #8A8886;
}
QScrollBar::add-line:horizontal,
QScrollBar::sub-line:horizontal {
width: 0px;
}
QScrollBar::add-page:horizontal,
QScrollBar::sub-page:horizontal {
background: none;
}
QScrollBar:vertical {
background-color: transparent;
width: 12px;
margin: 0;
}
QScrollBar::handle:vertical {
background-color: #C8C6C4;
min-height: 40px;
border-radius: 6px;
margin: 2px;
}
QScrollBar::handle:vertical:hover {
background-color: #A19F9D;
}
QScrollBar::handle:vertical:pressed {
background-color: #8A8886;
}
QScrollBar::add-line:vertical,
QScrollBar::sub-line:vertical {
height: 0px;
}
QScrollBar::add-page:vertical,
QScrollBar::sub-page:vertical {
background: none;
}
/* === QTabWidget === */
QTabWidget::pane {
background-color: #FFFFFF;
border: 1px solid #E1DFDD;
border-radius: 4px;
top: -1px;
}
QTabBar::tab {
background-color: transparent;
color: #605E5C;
border: none;
border-bottom: 2px solid transparent;
padding: 8px 16px;
margin-right: 4px;
}
QTabBar::tab:hover {
color: #000000;
background-color: #F9F9F9;
border-bottom: 2px solid #C8C6C4;
}
QTabBar::tab:selected {
color: #000000;
background-color: #FFFFFF;
border-bottom: 2px solid #0078D4;
}
QTabBar::tab:disabled {
color: #A19F9D;
}
/* === QGroupBox === */
QGroupBox {
background-color: #FFFFFF;
border: 1px solid #E1DFDD;
border-radius: 6px;
margin-top: 12px;
padding-top: 12px;
font-weight: 600;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top left;
padding: 0 8px;
color: #000000;
background-color: #FFFFFF;
}
/* === QLabel === */
QLabel {
background-color: transparent;
color: #000000;
}
QLabel:disabled {
color: #A19F9D;
}
/* === QToolButton === */
QToolButton {
background-color: transparent;
color: #000000;
border: none;
border-radius: 4px;
padding: 6px;
}
QToolButton:hover {
background-color: #F9F9F9;
}
QToolButton:pressed {
background-color: #F0F0F0;
}
QToolButton:checked {
background-color: #0078D4;
color: #FFFFFF;
}
QToolButton:disabled {
color: #A19F9D;
}
/* === QMenu === */
QMenu {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
padding: 4px;
}
QMenu::item {
background-color: transparent;
padding: 6px 24px 6px 8px;
border-radius: 4px;
}
QMenu::item:selected {
background-color: #F9F9F9;
}
QMenu::item:disabled {
color: #A19F9D;
}
QMenu::separator {
height: 1px;
background-color: #E1DFDD;
margin: 4px 0;
}
QMenu::icon {
padding-left: 8px;
}
/* === QMenuBar === */
QMenuBar {
background-color: #FFFFFF;
color: #000000;
border-bottom: 1px solid #E1DFDD;
}
QMenuBar::item {
background-color: transparent;
padding: 6px 12px;
border-radius: 4px;
}
QMenuBar::item:selected {
background-color: #F9F9F9;
}
QMenuBar::item:pressed {
background-color: #F0F0F0;
}
/* === QToolBar === */
QToolBar {
background-color: #FFFFFF;
border: none;
border-bottom: 1px solid #E1DFDD;
spacing: 4px;
padding: 4px;
}
QToolBar::handle {
background-color: #E1DFDD;
width: 1px;
height: 1px;
margin: 4px;
}
QToolBar::separator {
background-color: #E1DFDD;
width: 1px;
height: 1px;
margin: 4px;
}
/* === QStatusBar === */
QStatusBar {
background-color: #FFFFFF;
color: #605E5C;
border-top: 1px solid #E1DFDD;
}
QStatusBar::item {
border: none;
}
/* === QDockWidget === */
QDockWidget {
background-color: #FFFFFF;
color: #000000;
titlebar-close-icon: url(:/icons/close-light.png);
titlebar-normal-icon: url(:/icons/float-light.png);
}
QDockWidget::title {
background-color: #FFFFFF;
border: 1px solid #E1DFDD;
padding: 6px;
text-align: left;
}
QDockWidget::close-button,
QDockWidget::float-button {
background-color: transparent;
border: none;
padding: 4px;
}
QDockWidget::close-button:hover,
QDockWidget::float-button:hover {
background-color: #F9F9F9;
border-radius: 4px;
}
/* === QListView & QListWidget === */
QListView, QListWidget {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
outline: none;
}
QListView::item, QListWidget::item {
padding: 6px;
border-radius: 4px;
}
QListView::item:hover, QListWidget::item:hover {
background-color: #F9F9F9;
}
QListView::item:selected, QListWidget::item:selected {
background-color: #0078D4;
color: #FFFFFF;
}
QListView::item:disabled, QListWidget::item:disabled {
color: #A19F9D;
}
/* === QTreeView & QTreeWidget === */
QTreeView, QTreeWidget {
background-color: #FFFFFF;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
outline: none;
show-decoration-selected: 1;
}
QTreeView::item, QTreeWidget::item {
padding: 4px;
border-radius: 4px;
}
QTreeView::item:hover, QTreeWidget::item:hover {
background-color: #F9F9F9;
}
QTreeView::item:selected, QTreeWidget::item:selected {
background-color: #0078D4;
color: #FFFFFF;
}
QTreeView::branch, QTreeWidget::branch {
background-color: transparent;
}
QTreeView::branch:closed:has-children, QTreeWidget::branch:closed:has-children {
image: url(:/icons/branch-closed-light.png);
}
QTreeView::branch:open:has-children, QTreeWidget::branch:open:has-children {
image: url(:/icons/branch-open-light.png);
}
/* === QTableView & QTableWidget === */
QTableView, QTableWidget {
background-color: #FFFFFF;
color: #000000;
gridline-color: #E1DFDD;
border: 1px solid #E1DFDD;
border-radius: 4px;
selection-background-color: #0078D4;
}
QTableView::item, QTableWidget::item {
padding: 4px;
}
QTableView::item:hover, QTableWidget::item:hover {
background-color: #F9F9F9;
}
QTableView::item:selected, QTableWidget::item:selected {
background-color: #0078D4;
color: #FFFFFF;
}
QHeaderView::section {
background-color: #FFFFFF;
color: #000000;
padding: 6px;
border: none;
border-right: 1px solid #E1DFDD;
border-bottom: 1px solid #E1DFDD;
font-weight: 600;
}
QHeaderView::section:hover {
background-color: #F9F9F9;
}
/* === QDialog === */
QDialog {
background-color: #FFFFFF;
}
/* === QMessageBox === */
QMessageBox {
background-color: #FFFFFF;
}
QMessageBox QLabel {
color: #000000;
}
/* === QToolTip === */
QToolTip {
background-color: #F9F9F9;
color: #000000;
border: 1px solid #E1DFDD;
border-radius: 4px;
padding: 4px 8px;
}
/* === QCalendarWidget === */
QCalendarWidget {
background-color: #FFFFFF;
}
QCalendarWidget QToolButton {
color: #000000;
background-color: transparent;
border: none;
border-radius: 4px;
padding: 4px;
}
QCalendarWidget QToolButton:hover {
background-color: #F9F9F9;
}
QCalendarWidget QMenu {
background-color: #FFFFFF;
}
QCalendarWidget QSpinBox {
background-color: #FFFFFF;
color: #000000;
selection-background-color: #0078D4;
}
QCalendarWidget QAbstractItemView {
background-color: #FFFFFF;
color: #000000;
selection-background-color: #0078D4;
selection-color: #FFFFFF;
}
/* === QSplitter === */
QSplitter::handle {
background-color: #E1DFDD;
}
QSplitter::handle:hover {
background-color: #0078D4;
}
QSplitter::handle:horizontal {
width: 1px;
}
QSplitter::handle:vertical {
height: 1px;
}
/* === Custom Classes === */
.accent-button {
background-color: #0078D4;
color: #FFFFFF;
border: none;
}
.accent-button:hover {
background-color: #106EBE;
}
.accent-button:pressed {
background-color: #005A9E;
}
.danger-button {
background-color: #C42B1C;
color: #FFFFFF;
border: none;
}
.danger-button:hover {
background-color: #A52314;
}
.success-button {
background-color: #107C10;
color: #FFFFFF;
border: none;
}
.success-button:hover {
background-color: #0E6B0E;
}
.card {
background-color: #FFFFFF;
border: 1px solid #E1DFDD;
border-radius: 8px;
padding: 16px;
}
.surface {
background-color: #FFFFFF;
border: 1px solid #E1DFDD;
}
.divider {
background-color: #E1DFDD;
min-height: 1px;
max-height: 1px;
}
.secondary-text {
color: #605E5C;
}
.disabled-text {
color: #A19F9D;
}