DESCracker/src/ui/app.css
Tom Butcher ac345b2859 Refactor iOS application structure for DES Cracker
- Replaced Objective-C AppDelegate with Swift implementation for better performance and modern syntax.
- Removed legacy files (AppDelegate.h, AppDelegate.m, main.m, PSCBruteEngine.h, PSCBruteEngine.m, PSCCpuEngine.h, PSCCpuEngine.m, PSCMetalEngine.h, PSCMetalEngine.m, PSCProtocol.h, PSCProtocol.m, PSCSlaveClient.h, PSCSlaveClient.m) to streamline the codebase.
- Introduced new Compute engines (CpuEngine and MetalEngine) for enhanced brute force capabilities.
- Updated Info.plist to support multiple scenes and added scene delegate for improved lifecycle management.
- Modified results.json to reflect updated elapsed time for brute force operations.
2026-09-19 19:20:55 +01:00

540 lines
8.8 KiB
CSS

/* DES Key Cracker — Qt Style Sheet
Spacing scale: 4 / 8 / 12 / 16 / 20 / 24 */
QMainWindow {
background-color: #10151c;
color: #e8eef4;
font-family: "SF Pro Text", "Segoe UI", "Helvetica Neue", sans-serif;
font-size: 13px;
}
QWidget {
color: #e8eef4;
font-family: "SF Pro Text", "Segoe UI", "Helvetica Neue", sans-serif;
font-size: 13px;
background-color: transparent;
}
QLabel,
QCheckBox,
QRadioButton {
background-color: transparent;
border: none;
}
#toolbar {
background-color: #171e28;
border-bottom: 1px solid #2b3544;
min-height: 88px;
}
#body {
background-color: #10151c;
}
#footer {
background-color: #171e28;
border-top: 1px solid #2b3544;
}
#brand {
color: #5eead4;
font-size: 18px;
font-weight: 700;
letter-spacing: 0.2px;
padding: 0;
margin: 0;
}
#brandSub {
color: #7d8b9c;
font-size: 10px;
font-weight: 700;
letter-spacing: 1.6px;
padding: 2px 0 0 0;
}
#svgIcon {
background-color: transparent;
}
#vSep {
color: #2b3544;
background-color: #2b3544;
border: none;
max-width: 1px;
min-width: 1px;
margin: 8px 4px;
}
#fieldCaption {
color: #8b9aab;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.6px;
padding: 0 0 2px 2px;
}
#muted {
color: #8b9aab;
font-size: 12px;
padding: 0;
}
QLabel#sectionTitle {
color: #f8fafc;
font-size: 18px;
font-weight: 700;
padding: 0;
}
#hint {
color: #c5d0dc;
font-size: 14px;
line-height: 1.45;
}
#statusPill,
#statusPillLive {
border-radius: 12px;
padding: 8px 14px;
font-size: 12px;
font-weight: 700;
min-width: 92px;
}
#statusPill {
background-color: #243041;
color: #9eb0c3;
border: 1px solid #3d4a5c;
}
#statusPillLive {
background-color: #134e4a;
color: #5eead4;
border: 1px solid #14b8a6;
}
QLabel#stats {
color: #cbd5e1;
font-size: 12px;
padding: 8px 2px 0 2px;
}
#page {
background-color: #10151c;
}
QPushButton {
background-color: #243041;
color: #e8eef4;
border: 1px solid #3d4a5c;
border-radius: 12px;
padding: 3px 12px 3px 12px;
min-height: 26px;
min-width: 72px;
}
QPushButton:hover {
background-color: #2d3c50;
}
QPushButton:pressed {
background-color: #1c2633;
}
QPushButton:disabled {
color: #66788c;
background-color: #1a222c;
border-color: #2b3544;
}
QPushButton#primaryBtn {
background-color: #0f766e;
border: 1px solid #2dd4bf;
color: #f0fdfa;
font-weight: 600;
}
QPushButton#primaryBtn:hover {
background-color: #0d9488;
}
QPushButton#dangerBtn {
background-color: #7f1d1d;
border: 1px solid #f87171;
color: #fff1f2;
font-weight: 600;
}
QPushButton#dangerBtn:hover {
background-color: #991b1b;
}
QPushButton#ghostBtn {
background-color: transparent;
border: 1px solid #3d4a5c;
}
QPushButton#ghostBtn:hover {
background-color: #243041;
}
QLineEdit,
QSpinBox,
QComboBox {
background-color: #0c1117;
color: #e8eef4;
border: 1px solid #3d4a5c;
border-radius: 12px;
padding: 3px 12px 3px 10px;
min-height: 26px;
selection-background-color: #0f766e;
}
QPlainTextEdit {
background-color: #0c1117;
color: #d5deea;
border: 1px solid #2b3544;
border-radius: 12px;
padding: 8px;
font-family: "SF Mono", Menlo, Consolas, monospace;
font-size: 12px;
selection-background-color: #0f766e;
}
QLineEdit:focus,
QSpinBox:focus,
QComboBox:focus,
QPlainTextEdit:focus {
border: 1px solid #2dd4bf;
}
QComboBox::drop-down {
border: none;
width: 22px;
}
QComboBox:disabled {
color: #66788c;
background-color: #1a222c;
border-color: #2b3544;
}
QComboBox QAbstractItemView {
background-color: #171e28;
color: #e8eef4;
selection-background-color: #0f766e;
selection-color: #f0fdfa;
}
QComboBox QAbstractItemView::item {
padding: 6px 10px;
}
QSpinBox::up-button,
QSpinBox::down-button {
width: 0;
height: 0;
border: none;
}
QTabWidget::pane {
border: none;
border-top: 1px solid #2b3544;
background-color: #10151c;
border-radius: 0;
top: -1px;
padding: 0;
margin: 0;
}
QTabBar::tab {
background-color: #171e28;
color: #8b9aab;
padding: 10px 18px;
margin-right: 4px;
min-width: 88px;
border-top: 1px solid #2b3544;
border-right: 1px solid #2b3544;
border-bottom: none;
border-left: 1px solid #2b3544;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
font-weight: 600;
}
QTabBar::tab:selected {
background-color: #10151c;
color: #5eead4;
margin-bottom: -1px;
}
QTabBar::tab:hover:!selected {
color: #e8eef4;
background-color: #1c2530;
}
#progressRow {
margin: 0;
}
#progressTrack,
QLabel#progressPct {
border: 1px solid #2b3544;
min-height: 26px;
max-height: 26px;
margin: 0;
padding: 0;
}
#progressTrack {
background-color: #0c1117;
border-right: none;
border-top-left-radius: 12px;
border-top-right-radius: 0;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 0;
}
#progressTrack::chunk {
background-color: #14b8a6;
border-top-left-radius: 11px;
border-top-right-radius: 0;
border-bottom-left-radius: 11px;
border-bottom-right-radius: 0;
}
QProgressBar#workerProgress {
background-color: #0c1117;
border: none;
border-radius: 0;
margin: 0;
padding: 0;
min-height: 0;
text-align: center;
color: #ffffff;
font-size: 11px;
font-weight: 700;
}
QProgressBar#workerProgress::chunk {
background-color: #14b8a6;
border-radius: 0;
margin: 0;
}
QScrollArea#deviceScroll {
border: none;
background-color: transparent;
}
QWidget#deviceList {
background-color: transparent;
}
QFrame#deviceCard {
background-color: #171e28;
border: 1px solid #3d4a5c;
border-radius: 12px;
}
QFrame#deviceCard QCheckBox {
min-width: 16px;
max-width: 20px;
padding: 0;
spacing: 0;
}
QLabel#deviceHost {
color: #f8fafc;
font-size: 14px;
font-weight: 700;
}
QLabel#deviceKind {
color: #5eead4;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.8px;
}
QLabel#deviceName {
color: #e8eef4;
font-size: 13px;
}
QLabel#deviceMeta {
color: #8b9aab;
font-size: 12px;
}
QLabel#progressPct {
background-color: #243041;
color: #5eead4;
border-top-left-radius: 0;
border-top-right-radius: 12px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 12px;
padding: 0 10px;
font-size: 12px;
font-weight: 700;
}
QTableWidget {
background-color: #0c1117;
alternate-background-color: #141b24;
gridline-color: #243041;
border: 1px solid #2b3544;
border-radius: 12px;
color: #e8eef4;
padding: 0;
}
QTableWidget::item {
padding: 0;
}
QTableWidget::item:selected {
background-color: #134e4a;
color: #ccfbf1;
}
QTableWidget QHeaderView {
background-color: transparent;
}
QHeaderView::section {
background-color: #171e28;
color: #8b9aab;
border: none;
border-bottom: 1px solid #2b3544;
padding: 10px 8px;
font-weight: 600;
}
QHeaderView::section:first {
border-top-left-radius: 11px;
}
QHeaderView::section:last {
border-top-right-radius: 11px;
}
QTableCornerButton::section {
background-color: #171e28;
border: none;
border-top-left-radius: 11px;
}
QTableWidget QScrollBar:vertical {
background: #0c1117;
width: 10px;
margin: 4px 2px 4px 0;
border: none;
}
QTableWidget QScrollBar::handle:vertical {
background: #3d4a5c;
border-radius: 5px;
min-height: 24px;
}
QTableWidget QScrollBar::handle:vertical:hover {
background: #54657a;
}
QTableWidget QScrollBar::add-line:vertical,
QTableWidget QScrollBar::sub-line:vertical {
height: 0;
width: 0;
border: none;
background: none;
}
QTableWidget QScrollBar::add-page:vertical,
QTableWidget QScrollBar::sub-page:vertical {
background: none;
}
QTableWidget QScrollBar:horizontal {
background: #0c1117;
height: 10px;
margin: 0 4px 2px 4px;
border: none;
}
QTableWidget QScrollBar::handle:horizontal {
background: #3d4a5c;
border-radius: 5px;
min-width: 24px;
}
QTableWidget QScrollBar::handle:horizontal:hover {
background: #54657a;
}
QTableWidget QScrollBar::add-line:horizontal,
QTableWidget QScrollBar::sub-line:horizontal {
width: 0;
height: 0;
border: none;
background: none;
}
QTableWidget QScrollBar::add-page:horizontal,
QTableWidget QScrollBar::sub-page:horizontal {
background: none;
}
QTableWidget QScrollBar::corner {
background: #0c1117;
}
QCheckBox,
QRadioButton {
spacing: 8px;
color: #e8eef4;
padding: 2px 0;
background-color: transparent;
}
QCheckBox::indicator,
QRadioButton::indicator {
width: 16px;
height: 16px;
border: 1px solid #3d4a5c;
background-color: #0c1117;
}
QCheckBox::indicator {
border-radius: 4px;
}
QRadioButton::indicator {
border-radius: 8px;
}
QCheckBox::indicator:checked,
QRadioButton::indicator:checked {
background-color: #14b8a6;
border: 1px solid #5eead4;
}
QScrollBar:vertical {
background: #10151c;
width: 10px;
margin: 4px;
}
QScrollBar::handle:vertical {
background: #3d4a5c;
border-radius: 5px;
min-height: 24px;
}
QScrollBar::add-line:vertical,
QScrollBar::sub-line:vertical {
height: 0;
}