Діалог клієнта
Файл названо діалогом клієнта, і саме діалог клієнта тут не має кольору. .cemodal і .cedlg це спільна коробка, яку wireframes/_nav.js будує на льоту для дев'яти діалогів: новий клієнт, редагування клієнта, видалення клієнта, адреса, видалення адреси, телефон, e-mail, мова, видалення акаунта. Кольору сягають шість, і всі шість - про покупця.
Коробка не має власного вмісту: 24 з її дитячих класів належать шістьом іншим файлам, бо всередину кладе той потік, який її відкрив.
| Файл | Класів | Які саме |
|---|---|---|
address-card.css | 11 | .addr-2col .addr-check .addr-cityfld .addr-del-row .addr-method .addr-methods .addr-note .am-ar ... |
button.css | 4 | .btn--danger .btn--icon .btn--s .btn--text |
otp.css | 3 | .box .otp .otp-note |
radio.css | 3 | .pf-lang .pf-langs .rc |
field.css | 2 | .cef .field |
checkout-form.css | 1 | .pf-resend |
7 класів усередині кореня мають більш ніж одного власника, тож із коду не видно, чий вони: .btn--accent .btn--ghost .btn--outline .on .opt .uiv-ic .uiv-trail
Розмітка тут - не переписана від руки. Її знято з design/account-addresses.html у цій же сесії, обробники зняті, посилання підняті на рівень. Цей організм у спокої не існує - він display: none, доки щось не додасть open, - тож стенд додає цей клас сам. Показано на сцені: трансформований предок стає для position: fixed тим блоком, від якого рахується його inset, тож панель не накриває сторінку й не втрачає жодного свого оголошення.
Показано в рамці шириною 390, і ширина названа не для краси: це ширина, на якій цей організм у продукті стоїть. Медіа-умова читає в'юпорт, а не контейнер, тож жодне правило самого стенда цього не вирішує - тільки справжній в'юпорт, а він є лише в рамки. Сам організм у рамці обмежено до 460px - це ширина, яку він займає в продукті на 1280. Витягнутий зі своєї колонки, він розтягнувся б на всю рамку, і кнопка на 294 стала б кнопкою на 1490.
Нова адреса
Оберіть спосіб доставки - далі заповнимо лише потрібні поля.
.cemodal - не більше 460, --radius-12, --elevation-4, margin:auto. Вона не fixed: центрує й тримає її .ceov з overlay.css. 4 екземпляри на 2 екранах.ce-top і закриття .ce-x - і хрестик тут досі надрукований шрифтом. Знято з design/account-addresses.html на 390 після openAddr('choose'): 117 елементів, 342x585, і в шапці символ, а не знак із набору.ceact - display:flex і > * { flex:1 }, «два контроли й нічого більше» кроку 7.9. Те саме речення написане ще двічі: .cedlg .act у цьому ж файлі й .pm-f у модалці відгуку.cedlg .ic .act - вужча коробка на 400, текст по центру, коло 48px із --line-inverse. .ic називають три файли: account-shell, client-dialog, filter-rail.cedel і .dn - блок «Видалити клієнта». З 7.96 носить btn--outline btn--danger btn--s, як і близнюк в адресах. Не рендериться на жодному кольоровому екрані, і 51 з 52 незбіглих властивостей вирішувача - звідси.cemodal.mode-edit .addr-back - .mode-edit дописує JavaScript у _nav.js:1046 і лише після openAddrEdit(). Перепис у спокої його не бачить ніколи.dn: сто двадцять шосте ім'я, якого перепис не бачить
У цьому файлі .dn це попередження під кнопкою видалення клієнта. На трьох екранах чекауту це <span class="dn">Нова Пошта</span> - назва доставки. owners.json дає .dn одного власника, тож у 126 неоднозначних імен шару воно не входить: друге значення живе в розмітці, де css немає взагалі. Наслідок заміряно: .dn рендериться на трьох кольорових екранах і не оформлений на жодному, бо єдине правило для нього вимагає предка .cedel, якого колір не малює. 126 - це нижня межа, а не підсумок: перепис звіряє файл із файлом і не бачить зіткнення файлу з розміткою.Чому хрестик друкований.
openAddr() викликає wfAddrDialog(), а той щоразу переписує innerHTML контейнера - уже після того, як uivMarks() відпрацював на завантаженні. Діалог міста й модалка відгуку будуються один раз і далі лише отримують .open, тому їхні хрестики намальовані набором. Ця сама форма вже двічі має обгортку в design/_nav.js: uivPatchMenus для оверлея каталогу і uivToastMarks для тостів. Тут обгортки немає.Обидва прийшли з модалки «Додати клієнта в сесію» на 8.31b, і обидва справді нові: цей діалог ніколи не мав СПИСКУ, з якого обирають, бо два його штатні екземпляри редагують одного клієнта, а цей набирає кількох.
Список прокручується, а діалог - ні. max-height: 240px - це значення приватного блоку, перенесене, а не виведене заново: приблизно чотири рядки, і саме це каже «нижче є ще», не змушуючи саму коробку вилізти за падінг скрима. Запуск пунктирний, бо empty-state.css і .ctab.add вже вживають пунктир для «того, чого ще немає» - тут те саме речення в рядку.
І друга коробка цього ж файлу - підтвердження, яку сторінка досі називала словами й не показувала. Її холостий контроль був червоний і цього ніхто не читав, бо вердикт малюється в браузері, а жоден гейт туди не дивився. З 8.31b дивиться accept.mjs.
Видалити клієнта?
Історія замовлень цього клієнта залишиться у ваших замовленнях, але його профіль і ціль буде видалено.
Сам рядок списку - не цього файлу: .ac-cli це п'яте ім'я рядкового рунґа radio.css, і воно пішло туди на 8.30. Тут лишились контейнер і запуск.
| Стан | Що робить | Чому так |
|---|---|---|
| вибір способу | data-step="choose" - три способи доставки | перший крок спільного діалогу адреси; кроки перемикає addrStep() атрибутом hidden, а не класом |
| форма способу | data-step="vidd|post|cour" | три повні форми лежать у розмітці одночасно, показана одна |
| редагування | .mode-edit ховає .addr-back, міняє підпис кнопки й показує рядок видалення | у кольорі не рендериться: клас пише JavaScript у момент дії |
| підтвердження | .cedlg замінює .cemodal, а не накриває його | openAddrDelete() знімає .open з одного оверлея й ставить на другий - два .ceov, ніколи не разом |
| видалення клієнта | .cedel .dn | існує тільки в сірому прототипі: wfClientEdit() кличуть лише п'ять wireframes/coach-*.html, а 42 екрани тренера кольору не мають |
| фокус | пастка 7.85 веде фокус на .ceov | роль і aria-modal лежать теж на .ceov, тобто в overlay.css; сама коробка не оголошує нічого |
Одна медіа-умова, і вона з'явилась на 8.31b, коли другий діалог уперся в те саме: під 480 пара дій стає стовпчиком. coach-tariff.css написав це правило для .tfdlg ще на 8.7 зі своїм заміром («пара ніколи не влазить у цю коробку - 2.08 за край на КОЖНІЙ ширині»), а модалка додавання клієнта відтворила знахідку з іншого кінця: «Додати першого клієнта» поруч зі «Скасувати» іде 154..387 у в'юпорті 360, тобто 27px за край, і сторінку це не прокручує - скрим обрізає, тож правий край головної дії просто недосяжний, а всі гейти читають 0. Два діалоги, по одному заміру кожен - і це вже відповідь компонента, а не екрана. Межа 479 - та сама, що в button.css для його власного телефонного кроку.
Правила вживання, які називають саме цей компонент: U9. Автор правил один, і це architecture.html, розділ I; тут - витяг.
Ряд дій діалогу ще не переведений, і це сказано вголос: його розмітку будує wireframes/_nav.js, спільний скрипт обох корпусів, а сірий корпус цей етап не редагує. Переведення записане в беклог для етапу 12.
Сторінка звіряє себе з файлом: 12 власних класів і 1 стан. .mode-edit стоїть у станах, а не в класах, і це не послаблення контролю: цей клас дописує JavaScript у момент дії, тож у спокої його не існує ніде - показати його можна лише підробкою, а підроблений стан заборонено тим самим правилом, що й вигадану роль.
ПОВЕДІНКА НА ШИРИНІ - етап 10, крок 4
Від якого порогу:--bp-grid-2col дзеркалом 619. Що саме міняється: ряд дій діалогу складається в стовпчик, зворотним порядком. Було 479, поза реєстром.Прочитані з client-dialog.css: 8 семантичних ролей і 16 примітивів.
| Семантичні ролі (8) | Примітиви (16) |
|---|---|
--bg-page --elevation-4 --line-hair --line-inverse --line-strong --text-muted --text-primary --text-secondary | --fs-12 --fs-14 --fs-18 --fs-20 --fs-24 --fw-black --fw-semibold --lh-airy --lh-flat --radius-12 --radius-circle --space-2 --space-8 --space-12 --space-16 --space-24 |
Оголошень, які збігаються з елементами й не виграють, - жодного. Зате 52 властивості не збігаються з жодним елементом, і всі вони приходять із чотирьох з 17 селекторів файлу: .cedel, .cedel button, .cedel .dn і .cemodal.mode-edit .addr-back.
Це дві різні речі під одним показником, і плутати їх не можна. .mode-edit - стан, який дописує JavaScript у момент дії: розмітка є, просто перепис у спокої її не застає. .cedel - розмітка, що існує тільки в сірому прототипі, і не тому, що її забули, а тому, що вона на екранах тренера, яких у кольорі немає. Перше лікується заміром у русі, друге - роботою етапу 09. Мертвого коду тут немає ні там, ні там.
Чого бракує
- Діалог клієнта не має кольору - це ім'я файлу й це первинна аудиторія продукту. 42 екрани тренера з 142 стоять сірими
- Хрестик друкований шрифтом - потрібна обгортка над
wfAddrDialog(), така сама, якuivToastMarks; це правило, а не правка одного файлу .dnозначає дві різні речі, і перепис неоднозначності це не ловить- Роль лежить в
overlay.css, а коробка анонімна - рішення про те, чий це діалог - Колірного блоку немає: кольоровий продукт малює цю коробку правилами сірого шару
Не домальовано наперед і не замовчано: етап 09 стартує з цього списку, зведеного в design/kit/docs/architecture.md.