CB Tools
Пʼять продуктів під однією навігацією.
Децентралізована біржа з усім, що навколо неї: свопи, пули ліквідності, ферми дохідності, стейкінг, дворівнева реферальна система і Charts, аналітичний термінал, який тримає шістнадцять ринків на одному екрані. Я задизайнив усе це як UX/UI: 153 унікальні екрани, світла і темна намальовані парою, кожен флоу доведений від 1920 до 360.
Роль
UX/UI Designer
Платформа
Веб-застосунок, адаптив 360 до 1920
Строки
2021
Скоуп
153 екрани · дві теми · 5 брейкпоінтів
Charts, сторінка токена на 1920: інформація і safety check ліворуч, графік і тредбук по центру, своп і портфель праворуч. Обидві бічні панелі розгорнуті. Charts 6503:1922.
cases/cb-tools/img_cb_01.jpg@2x 3360×2100унікальні екрани через пʼять продуктів однієї платформи
153
розкладок сітки мультичарта, від одного графіка до дванадцяти
13
ринків одночасно на одному екрані, це проєктний ліміт терміналу
16
TL;DR · що я зробив
- Задизайнив повну DeFi-платформу як UX/UI: своп, ліквідність, ферми, стейкінг і реферали, 153 унікальні екрани, здані в розробку готовими до збірки.
- Малював інтерфейс як машини станів, а не як екрани: вісімнадцять станів ліквідності на одному полотні, двадцять чотири транзакційні модалки в обох темах, skeleton-лоадери на кожній панелі, що чекає відповідь блокчейну.
- Задизайнив Charts, термінал, у якому сітка мультичарта перекладається через тринадцять розкладок у міру додавання графіків, до шістнадцяти токенів на одному екрані.
Клієнтська робота, опублікована з дозволу. Я працював через команду розробки, тому компанію тут не називаю. Числа на макетах, дохідності, баланси, ліквідність і ціни токенів, це плейсхолдери, а не економіка продукту.
Огляд
Біржа це ніколи не один продукт.
Децентралізована біржа це своп, плюс пули ліквідності, які роблять своп можливим, плюс ферми, які платять людям за постачання тієї ліквідності, плюс стейкінг, який платить за утримання токена, плюс реферальна програма, яка платить за приведених друзів. Кожне з цього окрема ментальна модель, і всі пʼять живуть під однією навігацією.
CB Tools ніс усе це, і інтерфейс каже про це прямо: у футері Swap, Liquidity, Staking, Pools, Docs, Whitepaper, Audit, Analytics, News, Partners, Team, Contacts. Кнопка на девʼять крапок у хедері відкриває ширшу екосистему. Головна сторінка несе діаграму економіки самого токена, два фонди і потік комісій, бо продукт продавав механізм, а не тільки інтерфейс.
Моєю роботою був інтерфейс для всього цього.
Мультичарт на дванадцять графіків, сітка 4×3. Charts 6503:25249.
cases/cb-tools/img_cb_02.jpg@2x 3360×1890Головна в темній темі, увесь лендінг однією стрічкою. CB3 2211:11476.
cases/cb-tools/img_cb_03.jpg@2x 1600×900Реферальний кабінет у світлій темі, друга половина пари. CB3 2468:12825.
cases/cb-tools/img_cb_04.jpg@2x 1600×900Діаграма економіки екосистеми: два домени, потік комісій, ліквідний та інвестиційний фонди. Кроп блоку Coinbackers Ecosystem з CB3 2211:11476.
cases/cb-tools/img_cb_05.jpg@2x 3360×1890Адаптив
Намальовано, а не розтягнуто.
Пʼять брейкпоінтів: 360, 540, 720, 960, 1140, плюс полотно 1920, на якому робилась десктопна частина. Кожна сторінка існує на кожній ширині, намальована руками, а не залишена розробнику на здогад.
Світла і темна це пара, а не тема, прикручена потім. Обидві намальовані для кожного екрана, у якого є стан, вартий показу.
Кольорові стилі були названі під це з самого початку: Neutral 1 до 5, Primary Green, Semantic Orange, Background, кожен існує парою day і night. Іменування несе намір темізувати. Чого тодішня Figma не вміла, так це його дотримати, і саме цю нитку підхоплює остання секція.
Своп у темній темі, розгорнутий стан з маршрутом обміну. CB3 2376:12140.
cases/cb-tools/img_cb_06.jpg@2x 2176×1224Той самий екран у світлій темі. CB3 2465:12798.
cases/cb-tools/img_cb_07.jpg@2x 2176×1224Стани в ряд
Три стани пулу поруч, а не по кліку.
Картка пулу проходить через підключення гаманця, схвалення контракту, стейкінг і збір нагороди. На екрані стейкінгу три картки стоять поруч і показують три послідовні стани одночасно, тому розробник бачить перехід, а не окремі кадри.
Стейкінг: три картки пулів в одному ряду показують три стани поспіль, гаманець не підключено, контракт не схвалено, застейкано і збирає. CB3 2466:13371.
cases/cb-tools/img_cb_08.jpg@2x 2176×1224Той самий ряд у світлій темі. CB3 2652:4236.
cases/cb-tools/img_cb_09.jpg@2x 2176×1224Лаунчер екосистеми на девʼять крапок, десктоп. CB3 2537:13172.
cases/cb-tools/img_cb_10.jpg@2x 3360×1890Головна на 360, повна довжина. CB3 2407:12937.
cases/cb-tools/img_cb_11.jpg@2x 1600×2133Те саме меню екосистеми на мобільному. CB3 2653:6067.
cases/cb-tools/img_cb_12.jpg@2x 1600×2133Ферми
Одна фіча, два подання.
Ферми це таблиця пулів дохідності. Під кожним рядком машина станів: гаманець не підключено, підключено але контракт не схвалено, схвалено але нічого не застейкано, застейкано і збирає, завершено. Пʼять станів, і кожному потрібна інша кнопка.
Я намалював це у двох поданнях, з перемикачем між ними. Сітка кладе кожен пул у картку, де стан це одна кнопка внизу, а розкривачка Details тримає ліквідність, контракт і посилання на пару. Список кладе пули у щільну таблицю і, при розкритті рядка, розкладає машину станів на три пронумеровані кроки: отримати токен, підключити гаманець і застейкати, зібрати.
Розкладка на кроки і є рішенням, вартим уваги. У картці стан це одна кнопка, і користувач має сам здогадатись, що буде далі. У списку вся послідовність видно одразу, а підсвічений тільки поточний крок. Ті самі дані, ті самі стани, два різні рівні підказки, і користувач сам обирає, який йому потрібен.
Ферми картками: стан пулу як одна кнопка внизу картки. КРОП КОНТЕНТУ, без хедера і футера. CB 1 325:5147.
cases/cb-tools/img_cb_13.jpg@2x 1600×900Ферми списком: розкритий рядок розкладає стан на три пронумеровані кроки. КРОП ТАБЛИЦІ, без хедера і футера. CB 1 325:7017.
cases/cb-tools/img_cb_14.jpg@2x 1600×900Ферми на 720. КРОП контентної зони. CB 1 325:4526.
cases/cb-tools/img_cb_15.jpg@2x 1600×900Ферми на 960. КРОП контентної зони. CB 1 325:4882.
cases/cb-tools/img_cb_16.jpg@2x 1600×900Ферми на 360, тільки колонка карток. КРОП. CB 1 325:4020.
cases/cb-tools/img_cb_17.jpg@2x 1600×2133Ферми на 540, тільки колонка карток. КРОП. CB 1 325:4277.
cases/cb-tools/img_cb_18.jpg@2x 1600×2133Стани
Стани, а не екрани.
Частина роботи, яка не фотографується як «екрани» і важить найбільше.
Ліквідність це один фрейм 1920 на 13 666, що тримає близько вісімнадцяти станів флоу додавання і виведення, складених вертикально: порожній список пулів, імпорт пулу, обрана пара, введені суми, превʼю частки, бурштинове попередження про вплив на ціну, слайдер виведення, підтвердження. Не вісімнадцять сторінок. Одна вертикальна мапа, яку читаєш як специфікацію, і це рівно те, що потрібно розробнику, коли флоу умовний, а не лінійний.
Транзакційні модалки живуть на дошці 11 980 на 2 408: близько двадцяти чотирьох станів у ряд, темні зверху, світлі знизу, увесь шлях від вибору токена до відправленої транзакції.
Панелі гаманця мають справжні skeleton-лоадери власним набором компонентів, де блоки мерехтіння повторюють форму контенту, який стане на їхнє місце. Продукт чекає на блокчейн, тому очікування це поверхня дизайну, а не спінер.
Полотно ліквідності цілком, 1920 на 13 666: вісімнадцять станів флоу згори вниз. Зменшити так, щоб уся колонка влізла. CB3 2440:17146.
cases/cb-tools/img_cb_19.jpg@2x 3360×4480Три сусідні стани того самого полотна крупно, включно з бурштиновим попередженням про вплив на ціну. Кроп з CB3 2440:17146.
cases/cb-tools/img_cb_20.jpg@2x 1600×900Стани виведення ліквідності зі слайдером, темна тема. CB3 2440:19311.
cases/cb-tools/img_cb_21.jpg@2x 1600×900Дошка модалок, 11 980 на 2 408: двадцять чотири стани транзакційного флоу, темний ряд зверху, світлий знизу. CB3 3067:15498.
cases/cb-tools/img_cb_22.jpg@2x 3360×1890Та сама дошка, кроп послідовності підключення гаманця: вибір, QR WalletConnect, очікування, відхилено, відправлено. CB3 3067:15498.
cases/cb-tools/img_cb_23.jpg@2x 1600×900Skeleton-лоадер поруч із завантаженою панеллю: форма мерехтіння повторює контент, який стане на його місце. CB3 3088:18761 і 3086:17580.
cases/cb-tools/img_cb_24.jpg@2x 1600×900Матриця станів UI-кіта: кожен контрол проти Default, Hover, Pressed, Active, Disabled, темна і світла поруч. CB3 2650:3546.
cases/cb-tools/img_cb_25.jpg@2x 3360×1890Charts
Термінал, який тримає шістнадцять ринків.
Аналітичний продукт екосистеми. Сторінка токена йде трьома колонками: інформація про контракт і пули ліворуч разом із панеллю safety check, яка перевіряє honeypot, податок на купівлю і продаж, паузу переказів, проксі-контракт, частку ліквідності у творця і чорний список. По центру графік і тредбук на шість вкладок із фільтрами по сумі, вартості, ціні й діапазону дат. Праворуч своп і портфель. Обидві бічні колонки згортаються.
Головне тут це сітка мультичарта. Порожній стан обіцяє шістнадцять токенів одночасно, і файл цю обіцянку відпрацьовує тринадцятьма різними розкладками: один графік займає полотно, два ділять його навпіл, три стають у ряд, далі сітка починає змішувати розміри, три великі над чотирма малими, два широкі над двома рядами по чотири, три на три, чотири на три. Графіки не просто зменшуються, коли їх додають, сітка щоразу перекладається наново.
Графіки додаються через модалку з лічильником проти ліміту і переставляються перетягуванням з пунктирною зоною скидання.
Як сітка перекладається: зібрати в одну дошку розкладки на 1, 4, 7 і 12 графіків. Charts 6503:6859, 6503:8554, 6503:13227, 6503:25249.
cases/cb-tools/img_cb_26.jpg@2x 3360×1890Порожній стан мультичарта, обіцянка на шістнадцять токенів. Charts 6503:7234.
cases/cb-tools/img_cb_27.jpg@2x 1600×900Перетягування графіка, видно пунктирну зону Place here. Charts 6503:9815.
cases/cb-tools/img_cb_28.jpg@2x 1600×900Ліва колонка Charts крупно: інформація про контракт, пули ліквідності, safety check на шість перевірок. Кроп з Charts 6503:1922.
cases/cb-tools/img_cb_29.jpg@2x 3360×1890Панель фільтрів тредбуку: три двобічні слайдери плюс діапазон дат. Charts 6503:4305.
cases/cb-tools/img_cb_30.jpg@2x 1600×900Модалка додавання з лічильником проти ліміту, Add chart 3/16. Charts 6503:7448.
cases/cb-tools/img_cb_31.jpg@2x 1600×900Термінал на 360 з пʼятивкладковим таббаром. Charts 6503:29030.
cases/cb-tools/img_cb_32.jpg@2x 1600×2133Своп на 360, той самий таббар. Charts 6503:28614.
cases/cb-tools/img_cb_33.jpg@2x 1600×2133Система
Той самий продукт на сучасному тулінгу.
Темізація закладалась із самого початку, але засобами, які тоді існували: пари стилів day і night, дисципліна іменування, матриці станів. Змінних у Figma на той момент не було взагалі, вони зʼявились двома роками пізніше, тому вся ця логіка трималась на конвенції.
Коли інструмент дозріс, я повернувся до цього продукту і перезібрав шар під екраном Charts як повноцінну токен-систему. 285 змінних у шести колекціях і дванадцяти модах: чотири теми разом із двома high-contrast, два бренди, дві щільності, дві гарнітури. 43 сети компонентів, 332 варіанти, 26 текстових стилів, привʼязаних по всіх пʼяти полях шрифту, 13 ефект-стилів із привʼязаним кольором, 3 421 іконка.
Доказ лежить у тому ж файлі: той самий термінал Charts, зібраний повністю з системи, і сім рендерів одного мобільного дерева, по одному на мод. Між ними нічого не перемальовано, всю роботу робить перемикання колекції. Скан обходить 4 730 нод і не знаходить жодного порушення, 44 з 44 контрастних пар проходять WCAG у чотирьох темах.
Старі стилі day і night при цьому задепрековані, а не видалені: на них досі 12 399 заливок, і кожен несе у своєму описі найближчий новий токен. Так міграція стає покроковою, а не переписуванням файлу з нуля.
Матриця модів: сім мобільних рендерів одного дерева в ряд, Dark, Light, Light HC, Dark HC, бренд Vertex, Compact, Sora. DS 10504:10522, 10537, 10552, 10567, 10582, 10597, 10612.
cases/cb-tools/img_cb_34.jpg@2x 3360×1890Семантичні токени в усіх чотирьох темах: один токен, чотири значення, хекси видно. DS 10505:13389.
cases/cb-tools/img_cb_35.jpg@2x 3360×1890Той самий термінал Charts, перезібраний повністю з системи. DS 10506:108457.
cases/cb-tools/img_cb_36.jpg@2x 1600×900Контрастна матриця WCAG, 44 з 44 пар. DS 10505:12948.
cases/cb-tools/img_cb_37.jpg@2x 1600×900Метод
Що я звідси виніс у роботу.
Адаптив це рішення дизайнера, а не здогад розробника
Кожна сторінка існує на всіх пʼяти ширинах, намальована, а не залишена на інтерпретацію. Там, де сітка мала перебудуватись, а не стиснутись, це видно з макета, і в розробці не лишилось місця для «а тут як зробимо?». Саме цей підхід я потім переніс у роботу з компонентними бібліотеками, де ту саму роботу роблять варіанти і констрейнти.
Флоу передається мапою, а не стосом екранів
Умовний флоу я віддаю одним полотном, де стани йдуть підряд і видно всі гілки одразу: додавання ліквідності, попередження про вплив на ціну, виведення, підтвердження. Так само з транзакційними модалками, всі двадцять чотири в обох темах на одній дошці. Розробник читає це як специфікацію і не збирає флоу з розрізнених екранів у голові.
Стани важать більше за екрани
У DeFi половина інтерфейсу це очікування і помилки: гаманець не підключено, контракт не схвалено, транзакцію відхилено, дані ще йдуть з мережі. Тому кожен контрол має матрицю Default, Hover, Pressed, Active, Disabled і Loading у двох темах, а панелі, які чекають на блокчейн, мають власні skeleton-компоненти. Стан завантаження це поверхня дизайну, а не спінер за замовчуванням.
Систему добудовують тоді, коли інструмент дозволяє
Темізацію тут закладено з першого екрана, тодішніми засобами: парні стилі, дисципліна іменування, матриці. Коли зʼявились змінні й моди, я повернувся до цього ж продукту і переклав ту саму логіку на токени, з міграцією через депрековані стилі, а не через переписування з нуля. Продукт від того не змінився, змінилась вартість наступної зміни.
Результат
Здано в розробку і зібрано.
Дизайн передали інженерній команді, продукт написали. Публічного релізу не було: рішення замовника, і воно лежить поза зоною дизайну. Тому тут немає бізнесових метрик, і вигадувати їх я не буду.
Що піддається перевірці, те й винесено в цифри нижче: обсяг, покриття брейкпоінтів, теми, і система, зібрана поверх цього продукту пізніше.
екранів намальовано, з них 153 унікальні
198
брейкпоінтів: 360, 540, 720, 960, 1140, на полотні 1920
5
теми, намальовані парою, а не виведені одна з одної
2
змінних у дизайн-системі, зібраній поверх цього продукту
285