fix(ui): expand develop sidebar width and fix ruler track and chip label wrapping in desktop STUDIO

This commit is contained in:
2026-10-16 12:29:36 +07:00
parent f96a60f416
commit 4df6ba7ccc
2 changed files with 47 additions and 7 deletions
+3 -1
View File
@@ -4392,10 +4392,11 @@ export function Workspace() {
<div className="chips"> <div className="chips">
{/* column 1 — the tab's own chips, RESET ruled off at the foot */} {/* column 1 — the tab's own chips, RESET ruled off at the foot */}
<div <div
key={tab === 'light' ? 'col-dev' : tab === 'create' ? 'col-create' : 'col-main'}
className={`col col-main${tab === 'create' ? ' col-create' : ''}${ className={`col col-main${tab === 'create' ? ' col-create' : ''}${
tab === 'light' ? ' col-dev' : '' tab === 'light' ? ' col-dev' : ''
}`} }`}
data-col="main" data-col={tab === 'light' ? 'dev' : 'main'}
> >
{/* The phone's way back is the path under the strip (see .crumb): {/* The phone's way back is the path under the strip (see .crumb):
TABS > LIGHT > WB, each name returning to the strip it names. TABS > LIGHT > WB, each name returning to the strip it names.
@@ -4495,6 +4496,7 @@ export function Workspace() {
{/* MY PHOTOS and FAVORITED are lists of names rather than buttons, so {/* MY PHOTOS and FAVORITED are lists of names rather than buttons, so
their column is the visitor's to widen (see ColGrip). */} their column is the visitor's to widen (see ColGrip). */}
{listTab ? <ColGrip col="main" /> : null} {listTab ? <ColGrip col="main" /> : null}
{tab === 'light' ? <ColGrip col="dev" min={320} max={600} /> : null}
{tab === 'favorited' && saved.length === 0 ? <p className="hint">{t('sec.savedEmpty')}</p> : null} {tab === 'favorited' && saved.length === 0 ? <p className="hint">{t('sec.savedEmpty')}</p> : null}
{/* RESET is the way out of an edit, not one more chip: it sits under {/* RESET is the way out of an edit, not one more chip: it sits under
+44 -6
View File
@@ -179,7 +179,17 @@
} }
/* In a column the chips stack: one chip per row, full width. */ /* In a column the chips stack: one chip per row, full width. */
.col .chip-row { flex-direction: column; align-items: stretch; } .col .chip-row { flex-direction: column; align-items: stretch; }
.col .chip { justify-content: space-between; text-align: left; } .col .chip {
justify-content: space-between;
text-align: left;
min-width: 0;
}
.col .chip .chip-label {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
/* A row of one KIND of value read against each other, not a strip to scan: WB's /* A row of one KIND of value read against each other, not a strip to scan: WB's
presets, laid out as a table of buttons instead of a wrapping row. */ presets, laid out as a table of buttons instead of a wrapping row. */
.chip-row.grid { .chip-row.grid {
@@ -228,6 +238,9 @@
.chip-label { .chip-label {
font-weight: 400; font-weight: 400;
letter-spacing: 0.02em; letter-spacing: 0.02em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.dev-box-title { .dev-box-title {
font-weight: 700; font-weight: 700;
@@ -269,6 +282,13 @@
padding: 4px 6px; padding: 4px 6px;
font-size: 11px; line-height: 1.25; font-size: 11px; line-height: 1.25;
white-space: nowrap; white-space: nowrap;
min-width: 0;
}
.chip-row.grid .chip .chip-label {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
} }
/* UNDO/REDO are one glyph each, so the pair reads as a single control. */ /* UNDO/REDO are one glyph each, so the pair reads as a single control. */
.header .btn.icon { padding: 4px 9px; font-size: 15px; line-height: 1.2; } .header .btn.icon { padding: 4px 9px; font-size: 15px; line-height: 1.2; }
@@ -1949,7 +1969,11 @@ form[data-key='immich-modal'] {
/* The sidebar (DevelopPanels) draws rows, not chips, so its column is the wide /* The sidebar (DevelopPanels) draws rows, not chips, so its column is the wide
one: the same width CREATE RECIPES takes, and the chips that are not knobs one: the same width CREATE RECIPES takes, and the chips that are not knobs
(AUTO, TONE CURVE) stack over it, wrapped in the column's own .chip-row. */ (AUTO, TONE CURVE) stack over it, wrapped in the column's own .chip-row. */
.col-dev { width: 320px; } .col-dev {
width: 350px;
min-width: 320px;
flex: 0 0 auto;
}
.dev-panels { .dev-panels {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -1980,6 +2004,7 @@ form[data-key='immich-modal'] {
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
transition: background 0.15s ease; transition: background 0.15s ease;
min-width: 0;
} }
.dev-panel-head:hover { .dev-panel-head:hover {
background: var(--accent-soft); background: var(--accent-soft);
@@ -1992,6 +2017,9 @@ form[data-key='immich-modal'] {
font-weight: 600; font-weight: 600;
color: var(--text); color: var(--text);
letter-spacing: -0.01em; letter-spacing: -0.01em;
min-width: 0;
overflow: hidden;
white-space: nowrap;
} }
.dev-chevron { .dev-chevron {
display: inline-flex; display: inline-flex;
@@ -2000,6 +2028,7 @@ form[data-key='immich-modal'] {
width: 12px; width: 12px;
font-size: 11px; font-size: 11px;
color: var(--text-dim); color: var(--text-dim);
flex: 0 0 auto;
} }
.dev-panel-label { .dev-panel-label {
font-size: 12.5px; font-size: 12.5px;
@@ -2007,6 +2036,9 @@ form[data-key='immich-modal'] {
color: var(--text); color: var(--text);
text-transform: none; text-transform: none;
letter-spacing: normal; letter-spacing: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.dev-toggle-switch { .dev-toggle-switch {
position: relative; position: relative;
@@ -2047,6 +2079,7 @@ form[data-key='immich-modal'] {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
gap: 10px;
margin-bottom: 8px; margin-bottom: 8px;
padding: 2px 0; padding: 2px 0;
} }
@@ -2054,9 +2087,13 @@ form[data-key='immich-modal'] {
font-size: 11.5px; font-size: 11.5px;
color: var(--text-dim); color: var(--text-dim);
font-weight: 500; font-weight: 500;
white-space: nowrap;
flex: 0 0 auto;
} }
.dev-lut-select { .dev-lut-select {
width: 150px; flex: 1 1 auto;
min-width: 130px;
max-width: 190px;
padding: 4px 8px; padding: 4px 8px;
font-size: 11.5px; font-size: 11.5px;
background: var(--bg); background: var(--bg);
@@ -2095,8 +2132,8 @@ form[data-key='immich-modal'] {
gap: 10px; gap: 10px;
} }
.dev-panels .mini-head span { .dev-panels .mini-head span {
flex: 0 0 88px; flex: 0 0 92px;
width: 88px; width: 92px;
font-size: 11.5px; font-size: 11.5px;
font-weight: 400; font-weight: 400;
color: var(--text); color: var(--text);
@@ -2108,7 +2145,7 @@ form[data-key='immich-modal'] {
} }
.dev-panels .mini-head input[type="range"] { .dev-panels .mini-head input[type="range"] {
flex: 1 1 auto; flex: 1 1 auto;
min-width: 0; min-width: 90px;
height: 16px; height: 16px;
} }
.dev-panels .mini-head b { .dev-panels .mini-head b {
@@ -2121,6 +2158,7 @@ form[data-key='immich-modal'] {
color: var(--accent); color: var(--accent);
letter-spacing: 0; letter-spacing: 0;
font-variant-numeric: tabular-nums; font-variant-numeric: tabular-nums;
white-space: nowrap;
} }
.dev-panels input[type="range"]::-webkit-slider-runnable-track { .dev-panels input[type="range"]::-webkit-slider-runnable-track {
background: var(--border); background: var(--border);