Skip to content

Commit 75f7c63

Browse files
Release v0.4.1
1 parent 84edb03 commit 75f7c63

4 files changed

Lines changed: 65 additions & 39 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
## [0.4.1] - 2026-05-09
10+
### Fixed
11+
- Align login form spacing with the main control panel
12+
- Move authenticated session controls into the header utility cluster
13+
914
## [0.4.0] - 2026-05-09
1015
### Changed
1116
- Updated `spine` dependency to v0.11.0+ for improved hovertext support

src/spinal_tap/assets/base.css

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ body:has(#theme-toggle input:checked) textarea {
9292
display: grid;
9393
grid-template-columns: minmax(0, 1fr) auto auto auto auto;
9494
align-items: center;
95-
gap: 18px;
95+
gap: 14px;
9696
padding: 14px 26px;
9797
background: var(--panel);
9898
border-bottom: 1px solid var(--line);
@@ -134,27 +134,34 @@ body:has(#theme-toggle input:checked) .spine-logo {
134134
.session-block {
135135
display: flex;
136136
align-items: center;
137-
gap: 10px;
137+
gap: 8px;
138138
}
139139

140140
.experiment-chip,
141141
.logout-link {
142-
min-height: 34px;
142+
min-height: 28px;
143143
display: inline-flex;
144144
align-items: center;
145145
border: 1px solid var(--line);
146146
border-radius: 999px;
147-
padding: 6px 12px;
148-
background: var(--panel-subtle);
149-
color: var(--ink);
150-
font-size: 13px;
147+
padding: 5px 10px;
148+
background: transparent;
149+
color: var(--muted);
150+
font-size: 11px;
151151
font-weight: 800;
152+
line-height: 1;
153+
text-transform: uppercase;
152154
}
153155

154156
.logout-link {
155157
text-decoration: none;
156158
}
157159

160+
.experiment-chip {
161+
background: var(--panel-subtle);
162+
color: var(--ink);
163+
}
164+
158165
.logout-link:hover {
159166
border-color: var(--spine-orange);
160167
color: var(--spine-orange);
@@ -822,26 +829,30 @@ body:has(#theme-toggle input:checked) .Select-control * {
822829

823830
.login-panel {
824831
width: min(420px, 100%);
825-
padding: 24px;
832+
padding: 20px;
826833
}
827834

828835
.login-title {
829-
text-align: center;
830-
font-size: 22px;
836+
text-align: left;
837+
font-size: 17px;
831838
}
832839

833840
.login-copy {
834-
margin-bottom: 18px;
835-
text-align: center;
841+
margin: 6px 0 18px;
842+
text-align: left;
843+
}
844+
845+
.login-field {
846+
margin-top: 14px;
836847
}
837848

838849
.login-error {
839-
min-height: 24px;
840-
margin: 10px 0;
850+
min-height: 18px;
851+
margin: 8px 0;
841852
color: var(--danger);
842853
font-size: 13px;
843854
font-weight: 800;
844-
text-align: center;
855+
text-align: left;
845856
}
846857

847858
@media (max-width: 1260px) {

src/spinal_tap/layout.py

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,34 @@ def login_form():
5353
"Select an experiment and enter the shared password.",
5454
className="login-copy",
5555
),
56-
html.Label("Experiment", className="field-label"),
57-
dcc.Dropdown(
58-
id="experiment-select",
59-
options=[
60-
{"label": "Public", "value": "public"},
61-
{"label": "DUNE", "value": "dune"},
62-
{"label": "ICARUS", "value": "icarus"},
63-
{"label": "SBND", "value": "sbnd"},
56+
html.Div(
57+
[
58+
html.Label("Experiment", className="field-label"),
59+
dcc.Dropdown(
60+
id="experiment-select",
61+
options=[
62+
{"label": "Public", "value": "public"},
63+
{"label": "DUNE", "value": "dune"},
64+
{"label": "ICARUS", "value": "icarus"},
65+
{"label": "SBND", "value": "sbnd"},
66+
],
67+
placeholder="Select experiment",
68+
className="control-dropdown",
69+
),
6470
],
65-
placeholder="Select experiment",
66-
className="control-dropdown",
71+
className="login-field",
6772
),
68-
html.Label("Password", className="field-label"),
69-
dcc.Input(
70-
id="password-input",
71-
type="password",
72-
placeholder="Enter password",
73-
className="text-input",
73+
html.Div(
74+
[
75+
html.Label("Password", className="field-label"),
76+
dcc.Input(
77+
id="password-input",
78+
type="password",
79+
placeholder="Enter password",
80+
className="text-input",
81+
),
82+
],
83+
className="login-field",
7484
),
7585
html.Div(id="login-error", className="login-error"),
7686
html.Button(
@@ -444,6 +454,13 @@ def app_header(experiment=None):
444454
],
445455
className="brand-block",
446456
),
457+
html.Div(
458+
[
459+
html.Span(f"Tap {__version__}", className="version-chip"),
460+
html.Span(f"SPINE {spine_version}", className="version-chip"),
461+
],
462+
className="version-block",
463+
),
447464
(
448465
html.Div(
449466
[
@@ -455,13 +472,6 @@ def app_header(experiment=None):
455472
if experiment
456473
else None
457474
),
458-
html.Div(
459-
[
460-
html.Span(f"Tap {__version__}", className="version-chip"),
461-
html.Span(f"SPINE {spine_version}", className="version-chip"),
462-
],
463-
className="version-block",
464-
),
465475
html.Div(
466476
[
467477
dcc.Checklist(

src/spinal_tap/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Module which stores the current software version."""
22

3-
__version__ = "0.4.0"
3+
__version__ = "0.4.1"

0 commit comments

Comments
 (0)