Skip to content

Commit 7608c8f

Browse files
committed
isnt quite right but its beter ux
1 parent d90a969 commit 7608c8f

File tree

3 files changed

+236
-246
lines changed

3 files changed

+236
-246
lines changed

browser/dasher/controlpanel.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -495,11 +495,20 @@ export default class ControlPanel {
495495

496496
parentPiece.node.classList.add('control-panel__parent');
497497

498-
// Add to the parentPiece anything that has html. No need to descend
499-
// further because the structure under anything with html will already
500-
// have been built.
501-
this.descend(structure => {
502-
if (structure.$.html !== undefined) {
498+
// Add only top-level panel roots to the parent.
499+
// Appending every html node here flattens the panel structure and
500+
// breaks compact inline layouts that rely on each panel keeping its
501+
// own descendants.
502+
this.descend((structure, path) => {
503+
// Mount only first-level panels under the root control panel.
504+
// Nested structures inherit panel metadata, but must stay inside
505+
// their owning panel.
506+
if (
507+
path.length === 1 &&
508+
structure.$.html !== undefined &&
509+
path[0] !== "main" &&
510+
path[0] !== "navigator"
511+
) {
503512
parentPiece.add_child(structure.$.piece);
504513
return false;
505514
}

browser/dasher/userinterface.css

Lines changed: 99 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,13 @@ body {
4545
overflow: hidden;
4646
}
4747

48-
#user-interface.ui-game-nav-visible {
48+
#user-interface.ui-secondary-nav-visible {
4949
grid-template-rows: 62px 44px minmax(0, 1fr) 54px;
5050
}
5151

5252
.ui-top-bar,
5353
.ui-game-nav,
54+
.ui-prefs-bar,
5455
.ui-bottom-bar {
5556
background: var(--ui-bar-bg);
5657
border-top: 1px solid #efefef;
@@ -80,6 +81,99 @@ body {
8081
-webkit-overflow-scrolling: touch;
8182
}
8283

84+
.ui-prefs-bar {
85+
display: flex;
86+
align-items: center;
87+
gap: 10px;
88+
padding: 0 10px;
89+
min-height: 44px;
90+
overflow-x: auto;
91+
overflow-y: hidden;
92+
-webkit-overflow-scrolling: touch;
93+
}
94+
95+
.ui-prefs-back {
96+
width: 28px;
97+
height: 28px;
98+
font-size: 18px;
99+
line-height: 26px;
100+
}
101+
102+
.ui-prefs-menu {
103+
display: inline-flex;
104+
align-items: center;
105+
gap: 8px;
106+
min-width: max-content;
107+
}
108+
109+
.ui-prefs-content {
110+
display: inline-flex;
111+
align-items: center;
112+
flex: 1 1 auto;
113+
min-width: 0;
114+
overflow-x: auto;
115+
overflow-y: hidden;
116+
white-space: nowrap;
117+
}
118+
119+
.ui-prefs-content > form {
120+
margin: 0;
121+
}
122+
123+
.ui-prefs-content .control-panel__parent {
124+
overflow-x: auto;
125+
overflow-y: hidden;
126+
display: inline-flex;
127+
align-items: center;
128+
flex-wrap: nowrap;
129+
white-space: nowrap;
130+
min-width: max-content;
131+
gap: 8px;
132+
}
133+
134+
.ui-prefs-content .control-panel__panel {
135+
display: inline-flex;
136+
align-items: center;
137+
gap: 8px;
138+
flex-wrap: nowrap;
139+
white-space: nowrap;
140+
border: none;
141+
background: transparent;
142+
margin: 0;
143+
padding: 0;
144+
min-inline-size: 0;
145+
}
146+
147+
.ui-prefs-content .control-panel__panel > legend,
148+
.ui-prefs-content legend.cwv-button {
149+
display: none;
150+
}
151+
152+
.ui-prefs-content .control-panel__panel > div,
153+
.ui-prefs-content .control-panel__panel > span {
154+
display: inline-flex;
155+
align-items: center;
156+
gap: 8px;
157+
white-space: nowrap;
158+
}
159+
160+
.ui-prefs-content input,
161+
.ui-prefs-content select,
162+
.ui-prefs-content button,
163+
.ui-prefs-content label {
164+
font-size: 12px;
165+
white-space: nowrap;
166+
}
167+
168+
.ui-prefs-content .control-panel__structure-manage-settings-saveSettings,
169+
.ui-prefs-content .control-panel__structure-manage-settings-result-detail,
170+
.ui-prefs-content .control-panel__structure-manage-settings-result-outcome,
171+
.ui-prefs-content .control-panel__structure-manage-settings-divider,
172+
.ui-prefs-content .control-panel__structure-message-divider,
173+
.ui-prefs-content .control-panel__structure-developer-divider {
174+
display: none;
175+
}
176+
83177
.ui-game-nav__inner {
84178
display: inline-flex;
85179
align-items: center;
@@ -421,122 +515,6 @@ body.ui-resizing-message {
421515
box-shadow: 0 0 0 2px #8d8d8d;
422516
}
423517

424-
.ui-modal {
425-
position: fixed;
426-
inset: 0;
427-
background: rgba(0, 0, 0, 0.22);
428-
display: flex;
429-
align-items: center;
430-
justify-content: center;
431-
z-index: 30;
432-
}
433-
434-
.ui-modal__dialog {
435-
width: min(1080px, 94vw);
436-
max-height: 90vh;
437-
overflow: auto;
438-
border: 1px solid var(--ui-divider);
439-
border-radius: 10px;
440-
background: #fff;
441-
box-shadow: 0 26px 62px rgba(0, 0, 0, 0.2);
442-
padding: 16px;
443-
}
444-
445-
.ui-modal__dialog_stats {
446-
width: min(420px, 92vw);
447-
}
448-
449-
.ui-modal__dialog_prefs {
450-
width: min(1200px, 96vw);
451-
background: #edf2f2;
452-
}
453-
454-
.ui-modal__title {
455-
margin: 0 0 10px 0;
456-
font-size: 1.1rem;
457-
color: #4d4e53;
458-
}
459-
460-
.ui-modal__close {
461-
float: right;
462-
}
463-
464-
.ui-modal__content {
465-
clear: both;
466-
white-space: pre-line;
467-
overflow: auto;
468-
}
469-
470-
.ui-modal__dialog_prefs .control-panel__parent {
471-
display: grid;
472-
grid-template-columns: 1fr 1fr;
473-
gap: 14px;
474-
width: 100%;
475-
min-width: 0;
476-
overflow: visible;
477-
}
478-
479-
.ui-modal__dialog_prefs fieldset.control-panel__panel {
480-
border: 1px solid #d2d6d7;
481-
border-radius: 6px;
482-
background: #edecef;
483-
padding: 10px;
484-
width: 100%;
485-
min-width: 0;
486-
box-sizing: border-box;
487-
}
488-
489-
.ui-modal__dialog_prefs fieldset.control-panel__panel > legend {
490-
font-weight: 700;
491-
color: #447d86;
492-
background: #c6e9eb;
493-
border-radius: 4px;
494-
padding: 6px 10px;
495-
}
496-
497-
.ui-modal__dialog_prefs input,
498-
.ui-modal__dialog_prefs select,
499-
.ui-modal__dialog_prefs button,
500-
.ui-modal__dialog_prefs label {
501-
font-size: 14px;
502-
}
503-
504-
.ui-modal__dialog_prefs select,
505-
.ui-modal__dialog_prefs input[type="text"],
506-
.ui-modal__dialog_prefs input[type="number"] {
507-
height: 34px;
508-
border: 1px solid var(--ui-divider);
509-
border-radius: 4px;
510-
background: #f7f8f8;
511-
color: var(--ui-text);
512-
padding: 0 10px;
513-
box-sizing: border-box;
514-
}
515-
516-
.ui-modal__dialog_prefs button,
517-
.ui-modal__dialog_prefs legend.cwv-button {
518-
border: 1px solid #d0d3d4;
519-
background: #e7e8ea;
520-
border-radius: 4px;
521-
color: #5f6568;
522-
}
523-
524-
.ui-prefs-nav {
525-
display: flex;
526-
align-items: center;
527-
gap: 10px;
528-
margin: 0 0 10px 0;
529-
}
530-
531-
.ui-prefs-nav label {
532-
font-weight: 600;
533-
color: #447d86;
534-
}
535-
536-
.ui-prefs-nav select {
537-
min-width: 180px;
538-
}
539-
540518
#message-holder {
541519
width: 100%;
542520
flex: 1 1 auto;
@@ -681,7 +659,7 @@ input[type="number"] + label {
681659
#user-interface {
682660
grid-template-rows: 62px minmax(0, 1fr) 56px;
683661
}
684-
#user-interface.ui-game-nav-visible {
662+
#user-interface.ui-secondary-nav-visible {
685663
grid-template-rows: 62px 42px minmax(0, 1fr) 56px;
686664
}
687665

@@ -699,24 +677,16 @@ input[type="number"] + label {
699677
min-width: 150px;
700678
}
701679

702-
.ui-modal__dialog_prefs .control-panel__parent {
703-
grid-template-columns: 1fr;
704-
}
705-
706-
.ui-prefs-nav {
707-
flex-wrap: wrap;
708-
}
709-
710-
.ui-modal__dialog {
711-
padding: 12px;
680+
.ui-prefs-bar {
681+
padding: 0 8px;
712682
}
713683
}
714684

715685
@media (max-width: 900px) {
716686
#user-interface {
717687
grid-template-rows: 56px minmax(0, 1fr) 56px;
718688
}
719-
#user-interface.ui-game-nav-visible {
689+
#user-interface.ui-secondary-nav-visible {
720690
grid-template-rows: 56px 40px minmax(0, 1fr) 56px;
721691
}
722692

@@ -783,19 +753,4 @@ input[type="number"] + label {
783753
#message-holder > textarea {
784754
font-size: 18px;
785755
}
786-
787-
.ui-control-group_optional {
788-
display: none;
789-
}
790-
791-
.ui-bottom-bar_expanded .ui-control-group_optional {
792-
display: inline-flex;
793-
}
794-
795-
.ui-button_compact {
796-
display: inline-flex;
797-
align-items: center;
798-
justify-content: center;
799-
min-width: 56px;
800-
}
801756
}

0 commit comments

Comments
 (0)