一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
53 KiB
Design System Inspired by Airbnb
Category: Електронна комерція та роздрібна торгівля Торговий майданчик для подорожей. Тепло-кораловий акцент, заснований на фотографії, закруглений інтерфейс.
1. Візуальна тема та атмосфера
Дизайн Airbnb 2026 року нагадує туристичний журнал, який виявився додатком — бездоганно білі полотна поступаються місцем повноекранній фотографії, а сам інтерфейс зникає, щоб оголошення могли дихати. Характерний корало-рожевий Rausch (#ff385c) використовується скупо, але безпомилково впізнавано: CTA пошуку, індикатор активної вкладки, кнопка основної дії, іноді ціна або значок серця в списку бажань. Все інше — дисциплінована шкала сірого, де #222222 несе майже кожен рядок тексту.
Те, що робить систему безсумнівно Airbnb, — це наскільки велику довіру вона виявляє до контенту. Фотографії нерухомості відображаються в масштабі hero, 4:3 з обробкою радіуса від краю до краю. Перемикання категорій відбувається через тривкладковий селектор (Будинки / Враження / Послуги), який використовує 3D-рендеровані ілюстровані значки (будинок з двосхилим дахом, повітряна куля, дзвінок обслуговування) — фізичні, тактильні, майже іграшкові — у поєднанні з чіткими мітками Airbnb Cereal VF. Це рідкісний споживчий продукт, де 3D-рендери і суто типографічний інтерфейс співіснують без напруги.
Найновіша поверхня — лінійка продуктів Враження — той самий хром, але насиченіша щільність карток, більше фотографій і панель бронювання з центральним прив'язуванням і фіксованою ціною на правій рейці. Сторінки деталей оголошень (як кімнати, так і враження) дотримуються чіткого шаблону: повноекранна сітка зображень hero → перекрита закруглена карточка бронювання (фіксована при прокручуванні) → зручності → відгуки (нагороди «Улюблене серед гостей» використовують великий центрований рейтинг 4.81 з компонуванням лаврового вінка) → карта → профіль господаря → розкриття інформації. Ритм однаковий, незалежно від того, чи бронюєте ви кімнату або яхт-тур.
Ключові характеристики:
- Корало-рожевий Rausch (
#ff385c) як єдиний акцентний колір бренду, використовується тільки для основних CTA і кнопки пошуку - Повноекранна фотографія 4:3 / 16:9 з м'яким заокругленням кутів (14–20 px) як основний візуальний словник
- 3D-рендеровані значки категорій у поєднанні з типографічними вкладками — єдине місце, де система допускає ілюстрацію
- Кругові кнопки-значки
50%(стрілка назад, поширити, обране, стрілки каруселі) розподілені по всьому інтерфейсу Airbnb Cereal VFнесе кожну мітку, від 8 px юридичної виноски до 28 px заголовка розділу — система однієї сім'ї- Колірне кодування рівня продукту: Airbnb Plus (пурпур
#92174d), Airbnb Luxe (темно-фіолетовий#460479), Airbnb (корал Rausch) - Компонування нагороди «Улюблене серед гостей» — велике центроване число рейтингу між двома лавровими вінками, один із найвпізнаваніших моментів системи
- Фіксована панель бронювання зі стеком ціна → дати → гості, прикріплена до правої рейки на десктопі, перетворюється на нижню закріплену панель «Забронювати» на мобільному
- Фіксована нижня мобільна навігація (Огляд / Списки бажань / Увійти) з відтінком Rausch для активного стану
2. Палітра кольорів та ролі
Основний
- Rausch (
#ff385c): Характерний корало-рожевий бренду. CSS-змінна--palette-bg-primary-core. Використовується для: основна кнопка «Забронювати», кнопка подання пошуку, підкреслення активної вкладки, заповнення серця списку бажань, акцент на ціні. Колір з найвищою видимістю на кожній сторінці.
Вторинний та акцентний
- Deep Rausch (
#e00b41): Більш насичений варіант. CSS-змінна--palette-bg-tertiary-core. Використовується для натиснутих/активних станів кнопок і кінцевих точок градієнта. - Plus Magenta (
#92174d): CSS-змінна--palette-bg-primary-plus. Колір бренду для рівня продукту Airbnb Plus — курований пропозиції оголошень преміум класу. - Luxe Purple (
#460479): CSS-змінна--palette-bg-primary-luxe. Колір бренду для рівня продукту Airbnb Luxe — оренда вілл/маєтків. - Info Blue (
#428bff): CSS-змінна--palette-text-legal. Використовується для юридичних/інформаційних посилань (умови, конфіденційність, розкриття інформації) — єдиний не монохромний колір посилань у системі.
Поверхня та фон
- Canvas White (
#ffffff): Стандартний фон сторінки. Кожна картка, кожен контейнер, кожна сторінка деталей починається тут. - Soft Cloud (
#f7f7f7): Ледь помітний відтінок підповерхні, що використовується на фонах нижнього колонтитула, обгортках перегляду карти і «всьому іншому» в розділах, які хочуть відступити від основного білого. - Hairline Gray (
#dddddd): Повсюдний колір рамки 1 px — відокремлює картки, рядки зручностей, панелі відгуків, стовпці нижнього колонтитула. Робоча конячина системи компонування.
Нейтральні та текст
- Ink Black (
#222222): CSS-змінна--palette-text-primary. Майже чорний системи. Кожен заголовок, кожен абзац тексту, кожна мітка навігації, кожна ціна. Використовується для ~90% всього тексту на сторінці. - Charcoal (
#3f3f3f): CSS-змінна--palette-text-focused. Використовується у тексті введення у фокусованому стані та тексті акцентування на рівень нижче. - Ash Gray (
#6a6a6a): CSS-змінна--palette-bg-tertiary-hover. Вторинні мітки, текст у стилі субтитрів «Оренда котеджів» під назвами міст, приглушені посилання нижнього колонтитула. - Mute Gray (
#929292): CSS-змінна--palette-text-link-disabled. Відключені кнопки та метадані низького пріоритету. - Stone Gray (
#c1c1c1): Третинні роздільники, штрихи значків, заповнювачі аватарів.
Семантичний та акцентний
- Error Red (
#c13515): CSS-змінна--palette-text-primary-error. Помилки перевірки форми, попередження про деструктивні дії. - Deep Error (
#b32505): CSS-змінна--palette-text-secondary-error-hover. Натиснуті/активні варіанти станів помилки. - Translucent Black (
rgba(0, 0, 0, 0.24)): CSS-змінна--palette-text-material-disabled. Відключені мітки в стилі матеріалу.
Система градієнтів
Фірмовий градієнт Airbnb з'являється скупо, зазвичай тільки на словесному знаку і в момент фірмової кнопки пошуку:
linear-gradient(90deg, #ff385c 0%, #e00b41 50%, #92174d 100%)
Цей перехід коралово-рожевого → пурпурного — «фірмовий момент» — ніколи не використовується як повна поверхня, тільки як вузьке заповнення таблетки або обробка логотипу.
3. Правила типографіки
Шрифтова сім'я
- Airbnb Cereal VF (основний і єдиний): Власний змінновагаговий безсерифний шрифт, що несе всю систему. Запасні варіанти (за порядком):
Circular, -apple-system, system-ui, Roboto, Helvetica Neue, sans-serif.
Спостережувані ваги у витягнутих токенах: 500, 600, 700. Немає 400-regular — «тілова» вага системи — 500, що надає кожному текстовому блоку ледь помітну додаткову щільність, яка читається як впевнена та навмисна.
OpenType-функції: salt (стилістичні альтернативи) використовується на компактних мітках 11 px і 14 px з вагою 600 — ймовірно, для більш щільних цифр і формування спеціальних символів. Функцій лігатур або дробових цифр не спостерігається.
Ієрархія
| Роль | Розмір | Вага | Висота рядка | Міжлітерний відступ | Примітки |
|---|---|---|---|---|---|
| Заголовок розділу | 28 px / 1,75 rem | 700 | 1,43 | 0 | «Натхнення для майбутніх поїздок» — заголовки рівня сторінки |
| Заголовок підрозділу | 22 px / 1,38 rem | 500 | 1,18 | -0,44 px | «Що пропонує це місце», «Познайомтеся з господарями» — розділювачі контенту |
| Заголовок картки | 21 px / 1,31 rem | 700 | 1,43 | 0 | Заголовки панелі відгуків, провідні заголовки карток |
| Назва оголошення | 20 px / 1,25 rem | 600 | 1,20 | -0,18 px | «Яхт-тур для малої групи, необмежене вино та фрукти» — заголовки оголошень на сторінках деталей |
| Підзаголовок жирний | 16 px / 1,00 rem | 600 | 1,25 | 0 | Ім'я господаря, назва міста |
| Основний текст середній | 16 px / 1,00 rem | 500 | 1,25 | 0 | Основний текст на сторінках деталей |
| Кнопка велика | 16 px / 1,00 rem | 500 | 1,25 | 0 | «Забронювати», «Стати господарем» |
| Кнопка за замовчуванням | 14 px / 0,88 rem | 500 | 1,29 | 0 | Стандартні мітки кнопок |
| Посилання | 14 px / 0,88 rem | 500 | 1,43 | 0 | Посилання навігації, посилання нижнього колонтитула |
| Підпис середній | 14 px / 0,88 rem | 500 | 1,29 | 0 | Метадані, рядки підзаголовків («Оренда котеджів», «Оренда вілл») |
| Підпис жирний | 14 px / 0,88 rem | 600 | 1,43 | 0 | Функція salt увімкнена — числова статистика, акцент малого тексту |
| Підпис малий | 13 px / 0,81 rem | 400 | 1,23 | 0 | Дати відгуків, мікро-метадані |
| Мікро за замовчуванням | 12 px / 0,75 rem | 400 | 1,33 | 0 | Застереження нижнього колонтитула, юридичний мікротекст |
| Мікро жирний | 12 px / 0,75 rem | 700 | 1,33 | 0 | Мітки таблетки «НОВЕ» |
| Значок верхнього регістру | 11 px / 0,69 rem | 600 | 1,18 | 0 | Функція salt — компактні значки категорій/статусів |
| Верхній індекс | 8 px / 0,50 rem | 700 | 1,25 | 0,32 px | Верхній регістр — виноски цін, десяткові хвости |
Принципи
- Одна сім'я, багато ваг. Airbnb Cereal VF обробляє все від юридичного тексту 8 px до заголовків сторінок 28 px — візуальна ідентичність виходить із самої сім'ї, а не з мікшування шрифтів.
- 500 — це новий 400. «Звичайна» вага системи — 500, що надає кожному абзацу дещо впевненішу текстуру, ніж веб-стандарт.
- Негативне трекінг тільки для display-типу. Заголовки від 20 px і більше стискають трекінг на -0,18 до -0,44 px для відчуття вирізьбленості; розміри основного тексту залишаються на 0 трекінгу для читабельності.
- Щільні міжрядкові інтервали для заголовків, вільні для тексту. Display-типи працюють при 1,18–1,25 (щільно); основний текст і підписи відкриваються до 1,43 для комфорту у довгому форматі.
- Без усіх великих літер, крім 8 px. Єдине перетворення великих літер у системі — верхній індекс 8 px — скрізь в іншому місці регістр речення з тонкими змінами ваги робить свою роботу.
Примітка щодо замінників шрифтів
Airbnb Cereal VF є власністю. Найближчим замінником з відкритим вихідним кодом є Circular Std (все ще комерційний) або Inter (безкоштовний, Google Fonts) зі зменшенням міжлітерного відступу на -0,01em при розмірах дисплея. Для суворої відданості бренду задокументований запасний ланцюг (Circular, -apple-system, system-ui) відображається прийнятно на macOS/iOS, де system-ui перетворюється на San Francisco, який має подібні пропорції.
4. Стилі компонентів
Кнопки
Основний CTA («Забронювати», «Пошук», «Додати дати»)
- Фон: Rausch
#ff385c - Текст: Canvas White
#ffffff, Airbnb Cereal 500, 16 px - Відступ: ~14 px вертикальний, 24 px горизонтальний
- Радіус: 8 px (прямокутна) або 50% (кругла варіант значка)
- Рамка: відсутня
- Активний/натиснутий:
transform: scale(0.92)плюс кільце фокусу 2 px#222222при0 0 0 2px
Вторинна кнопка («Стати господарем», обведені третинні дії)
- Фон:
#ffffff - Текст: Ink Black
#222222, Airbnb Cereal 500, 14–16 px - Відступ: 10 px 16 px
- Радіус: 20 px (таблетка) або 8 px (прямокутна)
- Рамка: 1 px solid Hairline Gray
#dddddd
Кругла кнопка тільки зі значком (стрілка назад, поширити, обране, елементи керування каруселлю)
- Фон:
#f2f2f2(злегка не зовсім білий) або білий з прозорою чорною рамкою 1 px - Значок: контурний штрих
#222222, 16–20 px - Розмір: діаметр 32–44 px
- Радіус: 50%
- Активний/натиснутий:
transform: scale(0.92); тонке біле кільце 4 px0 0 0 4px rgb(255,255,255)для відокремлення від кольорових фотографічних фонів
Відключена кнопка
- Фон:
#f2f2f2 - Текст: Stone Gray
#c1c1c1 - Непрозорість: 0,5
Кнопка вкладки-таблетки (селектор категорій «Будинки / Враження / Послуги»)
- Фон: прозорий
- Текст: Ink Black
#222222, Airbnb Cereal 500, 16 px - Відступ: 8 px 14 px
- Активний стан: підкреслення Ink Black 2 px під міткою
- У парі з 3D-рендерованим ілюстрованим значком 36–48 px над міткою
Картки та контейнери
Картка оголошення (сітка головної сторінки, результати пошуку)
- Фон:
#ffffff - Радіус: 14 px на зображенні, текст знаходиться безпосередньо під ним на прозорому фоні
- Зображення: співвідношення сторін 4:3, на весь екран, заокруглене з тим самим радіусом 14 px
- Відступ: відсутній на зовнішньому контейнері; 12 px відступ між зображенням і рядками метаданих
- Тінь: відсутня — відокремлення забезпечується пробілом і власним радіусом фотографії
- Шаблон метаданих: Місто/регіон у рядку 1 (16 px 600), відстань/тривалість у рядку 2 (14 px 500 Ash Gray), діапазон дат у рядку 3, рядок ціни з «за ніч» знизу
Панель бронювання сторінки деталей (фіксована права рейка на сторінках кімнати/враження)
- Фон:
#ffffff - Радіус: 14–20 px
- Рамка: 1 px solid Hairline Gray
#dddddd - Тінь:
rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0— укладене триша рове тонке підняття - Відступ: 24 px
- Ширина: ~370 px, закріплена 120–140 px нижче верхньої частини в'юпорту
- Вміст: заголовок ціни → вибір дати → спадне меню гостей → основний CTA → виноска «Оплата ще не буде здійснена»
Картка сітки зручностей (на сторінках деталей оголошень)
- Фон:
#ffffff - Рамка: 1 px solid Hairline Gray
#ddddddна рівні рядка (не на елемент) - Відступ: 16 px вертикальний на рядок зручності
- Шаблон значка + мітки: контурний значок 24 px ліворуч, мітка вагою 500 16 px праворуч
Картка відгуку (окремий відгук на сторінках деталей)
- Фон:
#ffffff, рамки немає - Відступ: 0 (спирається на відступи сітки)
- Вміст: круглий аватар 40 px + ім'я вагою 600 16 px + дата Ash Gray 400 14 px в одному рядку, потім абзац основного тексту вагою 500 14 px нижче
Поля введення та форми
Рядок пошуку (основна головна сторінка)
- Фон:
#ffffff - Рамка: 1 px solid Hairline Gray
#dddddd, що охоплює всі три сегменти (Де / Коли / Хто) - Радіус: 32 px (повна таблетка)
- Тінь:
rgba(0, 0, 0, 0.04) 0 2px 6px 0— тонке відчуття ширяння - Структура: три сегменти, розділені тонкими вертикальними роздільниками, кожен сегмент має мітку вагою 500 12 px над заповнювачем вагою 500 14 px
- Надіслати: кругова кнопка зі значком Rausch на правому краї, діаметр 48 px
Текстове поле (загальні форми)
- Фон:
#ffffff - Рамка: 1 px solid Hairline Gray
#dddddd - Радіус: 8 px
- Відступ: 14 px 16 px
- Фокус: рамка перемикається на Ink Black, додається зовнішнє чорне кільце
0 0 0 2px - Помилка: рамка перемикається на
#c13515(Error Red), допоміжний текст використовує той самий колір
Вибір дати
- Сітка календаря: 7-стовпчикове компонування, кругові комірки днів
50%шириною 40–44 px - Вибраний діапазон: фон Ink Black
#222222з білими цифрами - Якорі початку/кінця: більші заповнені кола; середні дати використовують відтінок Soft Cloud
#f7f7f7
Навігація
Верхня навігація (Десктоп)
- Висота: ~80 px
- Фон:
#ffffff - Ліворуч: компонування словесного знака+логотипу Airbnb у Rausch (102×32 px)
- По центру: тривкладковий селектор категорій (Будинки / Враження / Послуги) зі значками 3D 36–48 px, складеними над мітками вагою 500 16 px; активна вкладка має підкреслення Ink Black 2 px
- Праворуч: текстове посилання «Стати господарем», потім кругла куля 32 px (мова), потім гамбургер-меню аватар 36 px
- Нижня рамка: 1 px solid Hairline Gray
#dddddd
Верхня навігація (Мобільний)
- Таблетка пошуку в один рядок займає всю ширину: заповнювач «Почніть пошук» з маленькою іконкою лупи
- Нижче: тривкладковий селектор категорій зберігається (Будинки / Враження / Послуги) — ілюстровані значки зменшуються до ~28 px
- Фіксована нижня панель вкладок: Огляд (активний стан Rausch) / Списки бажань / Увійти — значки 24 px над мітками 12 px
Вторинна навігація сторінки деталей оголошення
- Фіксоване горизонтальне прокручування якірних посилань (Фотографії · Зручності · Відгуки · Розташування · Господар) з'являється при прокручуванні за героїчним зображенням
- Висота: 56 px
- Нижня рамка: 1 px solid Hairline Gray
Обробка зображень
- Основні співвідношення сторін: 4:3 для сіток оголошень на головній сторінці, 16:9 для героїчної фотографії вражень, 1:1 для аватарів
- Радіус: 14 px на зображеннях сітки оголошень, 20 px на рамках героїчного фото сторінки деталей,
50%на аватарах - Сітка зображень на сторінках деталей: п'ятифотографічна сітка з одним великим зображенням ліворуч (ширина 50%) і чотирма меншими фотографіями у сітці 2×2 праворуч, усі вони розміщені у зовнішньому заокругленому контейнері 20 px
- Відкладене завантаження: широке використання
loading="lazy"з розмитими зображеннями попереднього перегляду-заповнювача - Карусель: кругові кнопки стрілок 32 px перекривають зображення, вертикально центровані; крапкові індикатори розташовані на 12 px вище нижнього краю
Фірмові компоненти
Компонування нагороди «Улюблене серед гостей» (помітно відображається на сторінках деталей оголошень з високим рейтингом)
- Центрований номер рейтингу відображається при 44–56 px вагою 700
- Дві намальовані вручну SVG-ілюстрації лаврового вінка облямовують ліво та право на висоті ~48 px
- Нижче: мітка «Улюблене серед гостей» при 12 px 700 великих літерах з трекінгом
0,32 pxі короткий підпис при 14 px 500 Ash Gray - Блок на всю ширину, без рамки контейнера — розміщений безпосередньо на білому полотні
Тривкладковий селектор категорій (з'являється у верхній частині кожної пошукової поверхні)
- Три вкладки: Будинки / Враження / Послуги
- Кожна вкладка: 3D-рендерований ілюстрований значок (~48 px висоти) над міткою вагою 500 16 px
- Враження та Послуги наразі мають маленьку темно-синю таблетку «НОВЕ» (білий текст 12 px 700 на темно-синьому фоні), що ширяє у верхньому правому куті значка
- Активна вкладка: підкреслення Ink Black 2 px під міткою
Сітка міст для натхнення (головна сторінка «Натхнення для майбутніх поїздок»)
- 6-стовпчикова сітка посилань на напрямки на десктопі, 2-стовпчикова на мобільному
- Кожна комірка: назва міста 16 px 600 у рядку 1, субтитр типу оренди Ash Gray 500 14 px у рядку 2 («Оренда котеджів», «Оренда вілл»)
- Без зображень — сітка тільки з текстом
- З вкладками зверху за категорією (Популярне / Мистецтво та культура / Пляж / Гори / На відкритому повітрі / Що робити / Поради щодо подорожей та натхнення / Квартири, дружні до Airbnb) — активна вкладка має підкреслення 2 px і зміну ваги
Фіксована картка бронювання (сторінки деталей оголошень)
- Залишається закріпленою на 120 px нижче верхньої частини в'юпорту на десктопі, поки користувач прокручує повз hero
- Згортається до нижньої панелі на всю ширину на мобільному з міткою «Від $X / ніч» і таблеткою Rausch «Забронювати»
- Завжди відображає: заголовок ціни → відображення дати → вибір гостей → Rausch CTA → застереження «Оплата ще не буде здійснена»
Картка господаря враження (сторінки деталей вражень)
- Контейнер на всю ширину із заокругленим верхом і фотографією обкладинки 3:2
- Аватар господаря (круглий, 56 px) перекриває нижній край обкладинки на 50%
- Нижче перекриття: ім'я господаря при 16 px 700, стаж господаря при 14 px 500 Ash Gray, маленька кнопка-таблетка Rausch «Написати господарю»
- Використовується як перехід між відгуками і блоком зручностей/місцезнаходження
Смуга «Що потрібно знати» (сторінки деталей оголошень)
- 3-стовпчикова сітка блоків правил/правил (Правила будинку, Безпека та майно, Правила скасування)
- Кожен стовпець: значок зверху, заголовок 16 px 600, текст Ash Gray 14 px 500, посилання «Показати більше» з підкресленням Ink Black
- Роздільник: рамки зверху та знизу 1 px Hairline Gray на всій смузі
5. Принципи компонування
Система відступів
- Базова одиниця: 8 px
- Витягнута шкала: 2, 3, 4, 5,5, 6, 8, 10, 11, 12, 15, 16, 18,5, 22, 24, 32 px — дрібнозернистий з кількома нестандартними значеннями для піксельного вирівнювання значків
- Відступ розділу: ~48–64 px зверху/знизу на десктопі, 24–32 px на мобільному
- Внутрішній відступ картки: 24 px на панелях бронювання і великих картках, 16 px на рядках зручностей, 12 px на метаданих картки оголошення
- Відступ між картками оголошень: 24 px десктоп, 16 px мобільний
- Між складеними рядками тексту: 4–8 px (дуже щільно — підсилює відчуття «насиченої інформації» в оголошеннях про подорожі)
Сітка та контейнер
- Максимальна ширина вмісту: 1760–1920 px на ультраширокому (Airbnb дозволяє сітці дихати далі, ніж більшість сайтів); 1280 px на більшості сторінок деталей
- Сітка оголошень головної сторінки: 6 стовпців при ≥1760 px, 5 при ≥1440 px, 4 при ≥1128 px, 3 при ≥800 px, 2 при ≥550 px, 1 нижче
- Сторінка деталей: асиметричний 2-стовпчиковий — основний вміст ~58%, фіксована панель бронювання ~36% праворуч, ~6% жолоб
- Нижній колонтитул: 3-стовпчиковий Підтримка / Хостинг / Airbnb
Філософія пробілів
Airbnb насичений інформацією, але ніколи не перенасичений. Пробіл використовується для групування — картки оголошень мають 24 px жолоб, щоб кожна фотографія читалася як окремий об'єкт, але метадані під кожною карткою використовують відступи 4–8 px, щоб ціна/місто/дата відчувалися як єдина одиниця. Панель бронювання сторінки деталей має 24 px внутрішнього відступу, але рядки в ній (вибір дати, вибір гостей, CTA) складені на 12 px — межа між карткою і сторінкою виконує більше роботи з відокремлення, ніж вміст всередині.
Шкала радіуса рамки
| Радіус | Використання |
|---|---|
| 4 px | Вбудовані теги прив'язки, теги-чипи |
| 8 px | Текстові кнопки, спадні меню, маленькі службові кнопки |
| 14 px | Фотографія картки оголошення, загальні контейнери вмісту, значки |
| 20 px | Основні закруглені кнопки (форма таблетки), великі зображення, панель бронювання |
| 32 px | Таблетка рядка пошуку, контейнери надвеликого розміру |
| 50% | Всі кругові кнопки зі значками, всі аватари, серця списку бажань — характерна кругла геометрія системи |
6. Глибина та підняття
| Рівень | Обробка | Використання |
|---|---|---|
| 0 | Тіні немає | Картки оголошень, основний вміст, текстові розділи |
| 1 | rgba(0, 0, 0, 0.08) 0 4px 12px |
Активні/натиснуті кнопки зі значками (наприклад, назад, поширити, обране) — тонке підняття для позначення взаємодії |
| 2 | rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0 |
Фіксована картка панелі бронювання, модальні вікна, спадні меню — характерне трирівневе підняття системи |
| Кільце фокусу | 0 0 0 2px #222222 |
Кнопки в активному стані, сфокусоване поле введення пошуку |
| Біле роздільне кільце | rgb(255, 255, 255) 0 0 0 4px |
Кругові кнопки, накладені на фотографії — кільце 4 px чітко відокремлює кнопку від кольорових фотографічних фонів |
Філософія тіней: Airbnb використовує накладені багатошарові тіні замість однієї падаючої тіні. Тришарова тінь панелі бронювання читається як одне суцільне підняття, але насправді це три окремі тіні при різних значеннях непрозорості/розмиття — що створює тонке згладжування периметра тіні, яке відчувається преміально без важкості.
Декоративна глибина
- Фотографія як глибина: система значною мірою покладається на повноекранну фотографію для створення візуальної глибини; тіні та градієнти використовуються скупо, щоб фотографії виконували важку роботу
- Компонування лаврового вінка: нагорода «Улюблене серед гостей» використовує дві SVG-ілюстрації лаврового вінка, які надають інакше плоскому числу рейтингу урочисту, трофейну присутність
- 3D-рендеровані значки категорій: значки Будинків/Вражень/Послуг мають власне м'яке внутрішнє освітлення і тонкі кинуті тіні, закладені у вигляд — єдине місце, де бренд допускає «об'ємну» ілюстрацію
7. Можна та не можна
Можна
- Зарезервуйте Rausch
#ff385cдля основних дій і індикатора активної вкладки — ніколи не розбавляйте декоративним використанням. - Дайте фотографії дихати — кадрування 4:3 із заокругленими кутами 14–20 px, без накладеного тексту, без градієнтних відбивачів.
- Використовуйте Ink Black
#222222для кожного текстового шару нижче Rausch — це майже чорний системи, ніколи справжній#000000. - Поєднуйте 3D ілюстровані значки тривкладкового селектора категорій з плоскою типографікою — не змішуйте стилі ілюстрацій в межах однієї поверхні.
- Складіть три тіні з низькою непрозорістю (~2%, 4%, 10%) для створення характерного підняття панелі бронювання.
- Використовуйте рамки Hairline Gray
#dddddd1 px для кожного роздільника картка-до-картки і рядок-до-рядка. - Розглядайте панель бронювання як фіксовану на десктопі, що згортається в нижню закріплену панель резервування на мобільному.
- Використовуйте відступ 4–8 px всередині груп метаданих і 24 px між картками — щільність інформації навмисна.
Не можна
- Не вводьте вторинні акцентні кольори поза палітрою рівня продуктів Rausch / Plus Magenta / Luxe Purple.
- Не розміщуйте текст всередині фотографій — підписи завжди знаходяться під зображенням, ніколи не накладаються.
- Не використовуйте мітки всіма великими літерами, окрім одиничної ролі верхнього індексу 8 px.
- Не заокруглюйте кнопки зі значками до чогось іншого, крім 50% — кругла форма є характерною геометрією системи.
- Не додавайте падаючі тіні до карток оголошень — вони знаходяться на білому полотні без підняття.
- Не використовуйте градієнтні фони — єдиний градієнт у системі — це вузьке розмиття Rausch → пурпурного на словесному знаку.
- Не використовуйте вагу шрифту 400-regular — вага тіла Airbnb Cereal — 500.
- Не замінюйте Airbnb Cereal VF іншим шрифтом дисплея — система навмисно однородинна.
8. Адаптивна поведінка
Точки зупину
Airbnb декларує ~60 точок зупину (артефакт часу дизайну з їх бібліотеки компонентів), але значущі зміни компонування відбуваються при набагато меншому наборі:
| Назва | Ширина | Ключові зміни |
|---|---|---|
| Ультраширокий | ≥1760 px | 6-стовпчикова сітка оголошень, максимальна ширина вмісту 1760–1920 px |
| Десктоп XL | 1440–1759 px | 5-стовпчикова сітка, повна навігація видима, фіксована панель бронювання на правій рейці |
| Десктоп | 1128–1439 px | 4-стовпчикова сітка, фіксована панель бронювання зберігається |
| Ноутбук | 1024–1127 px | 3–4-стовпчикова сітка, навігація категорій залишається горизонтальною |
| Планшет | 800–1023 px | 3-стовпчикова сітка, глобальний пошук може згортатися в одно-рядкову таблетку |
| Маленький планшет | 550–799 px | 2-стовпчикова сітка, панель бронювання переходить до вбудованого блоку на всю ширину |
| Мобільний | 375–549 px | 1-стовпчикове складене компонування, з'являється фіксована нижня панель вкладок (Огляд / Списки бажань / Увійти) |
| Маленький мобільний | <375 px | Крайовий відступ стискається до 16 px; значки селектора категорій зменшуються до ~28 px |
Цілі дотику
Усі інтерактивні елементи відповідають 44×44 px або перевищують їх. Сімейство кругових кнопок зі значками спеціально розмірне від 32 до 44 px із розширеним відступом зони попадання 8–12 px. Основна кнопка Rausch «Забронювати» має висоту ~48 px. Зона попадання тривкладкового селектора категорій — це повний прямокутник мітки-плюс-значок (зазвичай ~64×80 px на вкладку).
Стратегія згортання
- Навігація: Верхня навігація зберігає словесний знак Airbnb + тривкладковий селектор на планшеті та вище; на мобільному селектор ковзає прямо під таблетку пошуку, а елементи керування кулею/аватаром переміщуються на нижню закріплену панель вкладок.
- Рядок пошуку: Трисегментна таблетка (Де / Коли / Хто) з круговою кнопкою подання Rausch на десктопі; на мобільному згортається в одно-рядкову таблетку «Почніть пошук», при натисканні якої відкривається повноекранний аркуш пошуку.
- Панель бронювання: Фіксована права рейка при ≥1128 px; вбудована в основний стовпець вмісту між 800–1127 px; нижня закріплена таблетка «Забронювати» при <800 px.
- Сітка оголошень: Переміщується 6 → 5 → 4 → 3 → 2 → 1 стовпців через точки зупину.
- Сітка зображень сторінки деталей: П'ятизображальне компонування (1 велике + 4 маленьких) на десктопі; перетворюється на повноекранну прокручувану карусель на мобільному з індикаторами точок сторінки.
- Нижній колонтитул: 3-стовпчикове компонування згортається в одно-стовпчикове складене при <800 px.
Поведінка зображень
- Універсальне
loading="lazy"з розмитими мініатюрами попереднього переглядуim_w=параметризованими за URL, що подаються першими - Адаптивні зображення використовують CDN
muscache.comAirbnb з параметром запитуim_wдля доставки на основі ширини (im_w=240,im_w=720,im_w=1200,im_w=2400) - Без кадрування художнього напряму — те саме зображення масштабується вгору/вниз у точках зупину
- Каруселі автоматично регулюють висоту фото для підтримки постійного співвідношення 4:3 незалежно від співвідношення джерела
9. Посібник із підказок для агента
Швидка кольорова довідка
- Основний CTA: «Rausch (#ff385c)»
- Фон сторінки: «Canvas White (#ffffff)»
- Підповерхня: «Soft Cloud (#f7f7f7)»
- Текст заголовка/тіла: «Ink Black (#222222)»
- Вторинний текст: «Ash Gray (#6a6a6a)»
- Рамка/роздільник: «Hairline Gray (#dddddd)»
- Помилка: «Error Red (#c13515)»
- Інформаційне посилання: «Info Blue (#428bff)»
- Акцент рівня Luxe: «Luxe Purple (#460479)»
- Акцент рівня Plus: «Plus Magenta (#92174d)»
Приклади підказок для компонентів
- «Створіть основну кнопку «Забронювати»: фон Rausch (
#ff385c), біла мітка Airbnb Cereal вагою 500 при 16 px, відступ 14 px × 24 px, border-radius 8 px, тіні немає. При активному/натисненому стані додайтеtransform: scale(0.92)з кільцем фокусу Ink Black 2 px (0 0 0 2px #222222).» - «Збудуйте картку оголошення з повноекранною фотографією 4:3 при border-radius 14 px, без тіні контейнера; під зображенням складіть три рядки тексту з відступами 4 px: назва міста при 16 px 600 Ink Black, тип оренди при 14 px 500 Ash Gray (
#6a6a6a) і діапазон цін у 16 px 500 Ink Black із суфіксомза ніч14 px.» - «Спроектуйте фіксовану панель бронювання: білий фон, border-radius 14 px, рамка Hairline Gray (
#dddddd) 1 px, тришарова тінь підняття (rgba(0,0,0,0.02) 0 0 0 1px, rgba(0,0,0,0.04) 0 2px 6px 0, rgba(0,0,0,0.1) 0 4px 8px 0), відступ 24 px, ширина 370 px, закріплена на 120 px нижче верхньої частини в'юпорту на десктопі. Вміст: заголовок ціни, вибір дати, спадне меню гостей, основний CTA Rausch і застереження Ash Gray 12 pxОплата ще не буде здійснена.» - «Створіть тривкладковий селектор категорій: три рівноширинні вкладки з мітками Будинки, Враження, Послуги; кожна вкладка має 3D-рендерований ілюстрований значок ~48 px (будинок, куля, дзвінок) над міткою Ink Black вагою 500 16 px; активна вкладка отримує підкреслення Ink Black 2 px; додайте маленьку таблетку
НОВЕбілу 12 px 700 на темно-темно-синьому фоні у верхньому правому куті значків Вражень і Послуг.» - «Відтворіть компонування нагороди «Улюблене серед гостей»: центрований номер рейтингу при 52 px вагою 700 Ink Black, облямований ліворуч і праворуч намальованими вручну SVG-лавровими вінками на висоті ~48 px; нижче мітка великими літерами
УЛЮБЛЕНЕ СЕРЕД ГОСТЕЙ12 px 700 з трекінгом 0,32 px; підпис при 14 px 500 Ash Gray; блок на всю ширину безпосередньо на білому полотні без рамки контейнера.»
Посібник із ітерацій
При вдосконаленні існуючих екранів, створених із цією дизайн-системою:
- Зосередьтеся на ОДНОМУ компоненті одночасно.
- Посилайтеся на конкретні назви кольорів і коди hex із цього документа (наприклад, «Ink Black #222222», а не «темно-сірий»).
- Використовуйте описи природною мовою поряд з вимірюваннями («тонке трирівневе підняття» замість довгого рядка тіні).
- Описуйте бажане «відчуття» («як журнал, фотографія на першому місці» проти «щільна утиліта»).
- Завжди використовуйте Airbnb Cereal VF вагою 500 для тіла і 600–700 для акцентування — ніколи не 400.
- Тримайте рожевий Rausch рідкісним — якщо на один в'юпорт з'являється більше одного елемента кольору Rausch, розгляньте, чи слід нейтралізувати один.
Відомі прогалини
- Картки сітки оголошень головної сторінки: основна сітка карток нерухомості (основна візуальна поверхня airbnb.com) не була повністю захоплена у витягнутих знімках екрана головної сторінки — вміст завантажився лише частково. Специфікації картки оголошення вище виведені зі структури сітки «Натхнення» та ширших конвенцій Airbnb; перед використанням у виробництві підтвердьте точні співвідношення сторін і ієрархію метаданих на живому сайті.
- Значки категорій вражень: 3D ілюстровані значки для Будинків / Вражень / Послуг подаються як растрові ресурси; їхні точні специфікації вихідних файлів (SVG проти PNG, розміри відтворених пікселів) тут не задокументовані.
- Тайминги анімацій та переходів: не захоплені — обсяг статичного вилучення.
- Темний режим: Airbnb не поставляє вбудований темний режим у витягнутих поверхнях продукту; цей документ описує лише одну тему світлого режиму.