Skip to content

Commit 49c30b3

Browse files
committed
slicker ui
1 parent 60de491 commit 49c30b3

5 files changed

Lines changed: 153 additions & 148 deletions

File tree

pymcl/launch_page.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,27 @@ def __init__(self, parent=None):
2424

2525
container = QWidget()
2626
layout = QVBoxLayout(container)
27-
layout.setContentsMargins(30, 30, 30, 30)
28-
layout.setSpacing(24)
27+
layout.setContentsMargins(15, 15, 15, 15)
28+
layout.setSpacing(15)
2929

3030
# Card 1: Authentication & Profile
3131
auth_card = QWidget()
3232
auth_card.setObjectName("card_container")
3333
auth_layout = QVBoxLayout(auth_card)
34-
auth_layout.setContentsMargins(24, 24, 24, 24)
35-
auth_layout.setSpacing(16)
34+
auth_layout.setContentsMargins(15, 15, 15, 15)
35+
auth_layout.setSpacing(10)
3636

3737
self.auth_method_label = QLabel("AUTHENTICATION")
3838
self.auth_method_label.setObjectName("section_label")
3939
auth_layout.addWidget(self.auth_method_label)
4040

4141
self.auth_method_combo = QComboBox()
4242
self.auth_method_combo.addItems(["Offline", "Microsoft"])
43-
self.auth_method_combo.setMinimumHeight(55)
43+
self.auth_method_combo.setMinimumHeight(42)
4444
self.auth_method_combo.setToolTip("Choose 'Microsoft' for online play or 'Offline' for local play.")
4545
auth_layout.addWidget(self.auth_method_combo)
4646

47-
auth_layout.addSpacing(8)
47+
auth_layout.addSpacing(4)
4848

4949
self.username_label = QLabel("USERNAME")
5050
self.username_label.setObjectName("section_label")
@@ -53,12 +53,12 @@ def __init__(self, parent=None):
5353
self.username_input = AnimatedInput()
5454
self.username_input.setPlaceholderText("Enter your username")
5555
self.username_input.setText(f"Player{uuid.uuid4().hex[:6]}")
56-
self.username_input.setMinimumHeight(55)
56+
self.username_input.setMinimumHeight(42)
5757
self.username_input.setToolTip("Enter the username you want to use in-game (Offline mode only).")
5858
auth_layout.addWidget(self.username_input)
5959

6060
self.microsoft_login_button = AnimatedButton("Login with Microsoft")
61-
self.microsoft_login_button.setMinimumHeight(55)
61+
self.microsoft_login_button.setMinimumHeight(42)
6262
self.microsoft_login_button.setToolTip("Sign in with your Microsoft account to play online.")
6363
auth_layout.addWidget(self.microsoft_login_button)
6464

@@ -68,36 +68,36 @@ def __init__(self, parent=None):
6868
config_card = QWidget()
6969
config_card.setObjectName("card_container")
7070
config_layout = QVBoxLayout(config_card)
71-
config_layout.setContentsMargins(24, 24, 24, 24)
72-
config_layout.setSpacing(16)
71+
config_layout.setContentsMargins(15, 15, 15, 15)
72+
config_layout.setSpacing(10)
7373

7474
version_label = QLabel("MINECRAFT VERSION")
7575
version_label.setObjectName("section_label")
7676
config_layout.addWidget(version_label)
7777

7878
self.version_combo = QComboBox()
7979
self.version_combo.setPlaceholderText("Loading versions...")
80-
self.version_combo.setMinimumHeight(55)
80+
self.version_combo.setMinimumHeight(42)
8181
self.version_combo.setToolTip("Select the Minecraft version to launch.")
8282
config_layout.addWidget(self.version_combo)
8383

84-
config_layout.addSpacing(8)
84+
config_layout.addSpacing(4)
8585

8686
mod_layout = QHBoxLayout()
87-
mod_layout.setSpacing(16)
87+
mod_layout.setSpacing(12)
8888

8989
mod_loader_container = QWidget()
9090
mod_loader_layout = QVBoxLayout(mod_loader_container)
9191
mod_loader_layout.setContentsMargins(0, 0, 0, 0)
92-
mod_loader_layout.setSpacing(6)
92+
mod_loader_layout.setSpacing(4)
9393

9494
mod_loader_label = QLabel("MOD LOADER")
9595
mod_loader_label.setObjectName("section_label")
9696
mod_loader_layout.addWidget(mod_loader_label)
9797

9898
self.mod_loader_combo = QComboBox()
9999
self.mod_loader_combo.addItems(["Vanilla", "Fabric", "Forge", "NeoForge", "Quilt"])
100-
self.mod_loader_combo.setMinimumHeight(55)
100+
self.mod_loader_combo.setMinimumHeight(42)
101101
self.mod_loader_combo.setToolTip("Choose the mod loader (e.g., Fabric, Forge) or use Vanilla.")
102102
mod_loader_layout.addWidget(self.mod_loader_combo)
103103

@@ -106,15 +106,15 @@ def __init__(self, parent=None):
106106
mod_btn_container = QWidget()
107107
mod_btn_layout = QVBoxLayout(mod_btn_container)
108108
mod_btn_layout.setContentsMargins(0, 0, 0, 0)
109-
mod_btn_layout.setSpacing(6)
109+
mod_btn_layout.setSpacing(4)
110110

111111
mod_btn_label = QLabel(" ") # Spacer for alignment
112112
mod_btn_label.setObjectName("section_label")
113113
mod_btn_layout.addWidget(mod_btn_label)
114114

115115
self.mod_manager_button = AnimatedButton("Manage Mods", is_secondary=True)
116116
self.mod_manager_button.setCursor(Qt.CursorShape.PointingHandCursor)
117-
self.mod_manager_button.setMinimumHeight(55)
117+
self.mod_manager_button.setMinimumHeight(42)
118118
self.mod_manager_button.setToolTip("Open the Mod Manager to add or remove mods.")
119119
mod_btn_layout.addWidget(self.mod_manager_button)
120120

@@ -130,14 +130,14 @@ def __init__(self, parent=None):
130130
launch_area = QWidget()
131131
launch_layout = QVBoxLayout(launch_area)
132132
launch_layout.setContentsMargins(0, 0, 0, 0)
133-
launch_layout.setSpacing(12)
133+
launch_layout.setSpacing(8)
134134

135135
self.progress_bar = QProgressBar()
136136
self.progress_bar.setRange(0, 1)
137137
self.progress_bar.setValue(0)
138138
self.progress_bar.setTextVisible(True)
139139
self.progress_bar.setFormat("%p%")
140-
self.progress_bar.setMinimumHeight(16)
140+
self.progress_bar.setMinimumHeight(12)
141141
# Hide progress bar until we need it, or keep it visible but very thin
142142
launch_layout.addWidget(self.progress_bar)
143143

@@ -147,8 +147,8 @@ def __init__(self, parent=None):
147147
launch_layout.addWidget(self.status_label)
148148

149149
self.launch_button = AnimatedButton("🚀 LAUNCH GAME")
150-
self.launch_button.setMinimumHeight(70) # Taller primary CTA
151-
self.launch_button.setStyleSheet("font-size: 18px; font-weight: 800; letter-spacing: 1px;") # Overrides will be added for scale
150+
self.launch_button.setMinimumHeight(55) # Taller primary CTA but more compact than 70
151+
self.launch_button.setStyleSheet("font-size: 16px; font-weight: 800; letter-spacing: 0.5px;") # Overrides will be added for scale
152152
self.launch_button.setToolTip("Start Minecraft with the selected configuration.")
153153
launch_layout.addWidget(self.launch_button)
154154

pymcl/main_window.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ def init_ui(self):
131131
self.stack_layout.setCurrentWidget(central_widget)
132132

133133
main_layout = QHBoxLayout(central_widget)
134-
main_layout.setContentsMargins(20, 20, 20, 20)
135-
main_layout.setSpacing(20)
134+
main_layout.setContentsMargins(12, 12, 12, 12)
135+
main_layout.setSpacing(12)
136136

137137
# Left navigation Scroll Area
138138
left_scroll = QScrollArea()
@@ -141,7 +141,7 @@ def init_ui(self):
141141
left_scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
142142
left_scroll.setFrameShape(QFrame.Shape.NoFrame)
143143
left_scroll.setStyleSheet("background: transparent;") # Transparent background
144-
left_scroll.setMinimumWidth(220)
144+
left_scroll.setMinimumWidth(200)
145145

146146
# Left navigation container
147147
left_widget = QWidget()
@@ -150,14 +150,14 @@ def init_ui(self):
150150
left_widget.setAttribute(Qt.WidgetAttribute.WA_StyledBackground)
151151

152152
left_layout = QVBoxLayout(left_widget)
153-
left_layout.setSpacing(5)
154-
left_layout.setContentsMargins(10, 10, 10, 10)
153+
left_layout.setSpacing(4)
154+
left_layout.setContentsMargins(8, 8, 8, 8)
155155

156156
title_frame = QFrame()
157157
title_frame.setObjectName("title_frame")
158158
title_frame_layout = QVBoxLayout(title_frame)
159159
title_frame_layout.setSpacing(0)
160-
title_frame_layout.setContentsMargins(15, 20, 15, 30)
160+
title_frame_layout.setContentsMargins(10, 15, 10, 20)
161161

162162
title_label = QLabel(APP_NAME)
163163
title_label.setObjectName("title_label")

pymcl/mod_browser.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ def set_launch_filters(self, version, loader):
4646

4747
def init_ui(self):
4848
main_layout = QVBoxLayout(self)
49-
main_layout.setContentsMargins(20, 20, 20, 20)
50-
main_layout.setSpacing(20)
49+
main_layout.setContentsMargins(15, 15, 15, 15)
50+
main_layout.setSpacing(15)
5151

5252
# Search bar
5353
search_container = QWidget()
5454
search_container.setObjectName("card_container")
5555
search_layout = QVBoxLayout(search_container)
56-
search_layout.setContentsMargins(24, 24, 24, 24)
57-
search_layout.setSpacing(16)
56+
search_layout.setContentsMargins(18, 18, 18, 18)
57+
search_layout.setSpacing(12)
5858

5959
search_bar_layout = QHBoxLayout()
60-
search_bar_layout.setSpacing(12)
60+
search_bar_layout.setSpacing(10)
6161

6262
self.search_input = QLineEdit()
6363
self.search_input.setPlaceholderText("Search for mods on Modrinth...")
64-
self.search_input.setMinimumHeight(45)
64+
self.search_input.setMinimumHeight(42)
6565
self.search_input.returnPressed.connect(self.start_search)
6666
self.search_input.textChanged.connect(self.on_search_text_changed)
6767
search_bar_layout.addWidget(self.search_input)
@@ -70,13 +70,13 @@ def init_ui(self):
7070
self.limit_spinbox.setRange(1, 100)
7171
self.limit_spinbox.setValue(20)
7272
self.limit_spinbox.setPrefix("Limit: ")
73-
self.limit_spinbox.setMinimumHeight(45)
74-
self.limit_spinbox.setFixedWidth(100)
73+
self.limit_spinbox.setMinimumHeight(42)
74+
self.limit_spinbox.setFixedWidth(90)
7575
search_bar_layout.addWidget(self.limit_spinbox)
7676

7777
self.search_button = QPushButton("Search")
7878
self.search_button.setObjectName("secondary_button")
79-
self.search_button.setMinimumHeight(45)
79+
self.search_button.setMinimumHeight(42)
8080
self.search_button.clicked.connect(self.start_search)
8181
search_bar_layout.addWidget(self.search_button)
8282
search_layout.addLayout(search_bar_layout)
@@ -95,8 +95,8 @@ def init_ui(self):
9595

9696
results_container = QWidget()
9797
self.results_layout = QGridLayout(results_container)
98-
self.results_layout.setContentsMargins(20, 20, 20, 20)
99-
self.results_layout.setSpacing(20)
98+
self.results_layout.setContentsMargins(15, 15, 15, 15)
99+
self.results_layout.setSpacing(15)
100100
scroll_area.setWidget(results_container)
101101

102102
@pyqtSlot()

0 commit comments

Comments
 (0)