|
169 | 169 | .seg > button.is-on { background: var(--surface-3); color: var(--text); } |
170 | 170 | .seg > button .i { color: var(--muted); } |
171 | 171 | .seg > button.is-on .i { color: var(--text); } |
172 | | -.seg-pill { display: inline-flex; padding: 2px; gap: 2px; border-radius: 8px; background: var(--surface-3); } |
173 | | -.seg-pill > button { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 13px; font-weight: 500; cursor: pointer; } |
174 | | -.seg-pill > button.is-on { background: var(--surface); color: var(--text); box-shadow: 0 0 0 1px var(--border), 0 1px 2px rgba(24, 24, 27, .06); } |
175 | 172 |
|
176 | 173 | /* links */ |
177 | 174 | .link { color: var(--accent-fg); text-decoration: none; font-weight: 500; } |
|
251 | 248 | .badge-muted { background: var(--surface-2); border-color: transparent; color: var(--muted); } |
252 | 249 | .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; } |
253 | 250 |
|
| 251 | +/* list page header: a container, so it follows its own width and not the viewport (the sidebar and the agent panel squeeze it too). |
| 252 | + Narrow: title and buttons in a row, filters in a full row under them. From 512px: Home and Filter labels. From 896px: one row. */ |
| 253 | +.lh { container: header / inline-size; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 36px; } |
| 254 | +.lh-title { flex: 1 1 0; min-width: 96px; display: flex; align-items: center; gap: 8px; } |
| 255 | +.lh-title .t-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 256 | +.lh-filters { order: 1; flex: 1 1 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 8px; } |
| 257 | +.lh-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } |
| 258 | +.lh-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } |
| 259 | +.lh-filter { padding: 0 8px; } |
| 260 | +@container header (min-width: 512px) { |
| 261 | + .lh-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; } |
| 262 | + .lh-filter { padding: 0 12px; } |
| 263 | +} |
| 264 | +@container header (min-width: 896px) { |
| 265 | + .lh-filters { order: 0; flex: 0 1 auto; display: flex; flex-wrap: wrap; margin-left: auto; } |
| 266 | + .lh-filters .select { width: 192px; } |
| 267 | + .lh-filters label.input { width: 256px; } |
| 268 | +} |
| 269 | + |
254 | 270 | /* cards & tables */ |
255 | 271 | .card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; } |
256 | 272 | .card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border); } |
@@ -779,50 +795,38 @@ <h2 class="ds-board-title"><span>Screens</span>List view</h2> |
779 | 795 | </header> |
780 | 796 |
|
781 | 797 | <main class="af-content-wrapper" style="flex: 1; padding: 24px 32px 40px; display: flex; flex-direction: column; gap: 16px; min-width: 0"> |
782 | | - <div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px"> |
783 | | - <nav aria-label="Breadcrumb" style="display: flex; align-items: center; gap: 8px"> |
| 798 | + <!-- the header follows its own width: filters take a full row under the title and the buttons, from 896px all share one row --> |
| 799 | + <div class="lh"> |
| 800 | + <nav class="lh-title" aria-label="Breadcrumb"> |
784 | 801 | <a class="link-muted t-sm" href="#" style="display: inline-flex; align-items: center; gap: 6px"> |
785 | 802 | <svg class="i i-sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg> |
786 | | - Home |
| 803 | + <span class="lh-label">Home</span> |
787 | 804 | </a> |
788 | 805 | <span style="color: var(--faint)">/</span> |
789 | 806 | <h1 class="t-title">Car - SQLite</h1> |
790 | 807 | </nav> |
791 | | - <div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px"> |
792 | | - |
| 808 | + <div class="lh-filters"> |
| 809 | + <button class="input select" type="button" aria-haspopup="listbox" style="font: inherit; font-size: 14px; text-align: left"><span class="ph">Price</span><svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button> |
| 810 | + <label class="input"> |
| 811 | + <svg class="i" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg> |
| 812 | + <input type="text" placeholder="Model" aria-label="Model"> |
| 813 | + </label> |
| 814 | + </div> |
| 815 | + <div class="lh-actions"> |
793 | 816 | <a class="btn btn-primary af-create-button" href="#create"> |
794 | 817 | <svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> |
795 | 818 | Create |
796 | 819 | </a> |
797 | | - <button class="btn btn-secondary af-filter-button" type="button" > |
| 820 | + <button class="btn btn-secondary af-filter-button lh-filter" type="button" > |
798 | 821 | <svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 6h18"></path><path d="M7 12h10"></path><path d="M10 18h4"></path></svg> |
799 | | - Filter |
800 | | - |
| 822 | + <span class="lh-label">Filter</span> |
801 | 823 | </button> |
802 | 824 | <button class="btn btn-secondary btn-icon" type="button" aria-label="More actions"> |
803 | 825 | <svg class="i" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg> |
804 | 826 | </button> |
805 | 827 | </div> |
806 | 828 | </div> |
807 | 829 |
|
808 | | - <div style="display: flex; flex-wrap: wrap; align-items: center; gap: 8px"> |
809 | | - <label class="input" style="width: 300px; max-width: 100%"> |
810 | | - <svg class="i" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg> |
811 | | - <input type="text" placeholder="Search by model" aria-label="Model"> |
812 | | - </label> |
813 | | - <div class="seg-pill" role="group" aria-label="Price"> |
814 | | - |
815 | | - <button class="is-on" type="button" >Any price</button> |
816 | | - |
817 | | - <button class="" type="button" >Budget-Friendly</button> |
818 | | - |
819 | | - <button class="" type="button" >Mid-Range</button> |
820 | | - |
821 | | - <button class="" type="button" >Premium</button> |
822 | | - |
823 | | - </div> |
824 | | - </div> |
825 | | - |
826 | 830 | <div class="tbl-box"> |
827 | 831 | <div class="tbl-scroll"> |
828 | 832 | <div class="dt" role="table" aria-label="Cars"> |
|
0 commit comments