Дизайн корпоративных продуктов · Новый ресурс

Дизайн-система Volvo Cars Web.

Изучите веб-основу Volvo Cars с приоритетом HTML, фактические токены светлой темы и стили нативных карточек с возможностью выбора на примере полноценного плана упаковки: с независимым выбором, переключением темы и сбросом.

Руководство OpenDesign6 глав34 справочные записиАвторское руководство по приложению
01

Дизайн-система Volvo Cars Web Предварительный просмотр интерфейса

Выберите план, добавьте независимые дополнения и просмотрите эти же варианты в светлом и тёмном режимах.

Составьте план вещей для поездки на выходныеОткрыть полный пример
Стили выбираемых карточек Volvo Cars CSS 2.5.1; нативные элементы HTML и оригинальная логика списка. · Справочник по реализации
02

Дизайн-система Volvo Cars Web Справочник по дизайну

Фактические общедоступные токены @volvo-cars/css 2.5.1, соответствующие документированной разметке выбираемых карточек. Показаны значения светлой темы по умолчанию; тёмный режим поддерживается той же таблицей стилей.

Роли светлого режима по умолчанию

Источник
Название / правилоЗначение / конфигурацияПрименение
--v-color-foreground-primary#000Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-foreground-secondary#5e5e5e Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-foreground-tertiary#787878 Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-foreground-inverted#fffПервые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-foreground-accent-blue#0b2ded Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-background-primary#fffПервые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-background-secondary#fafafa Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-background-feedback-green#d7f9df Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-background-feedback-red#fce5e3 Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.
--v-color-surface-gray#e3e3e3 Первые объявления для светлого режима в версии 2.5.1; нативная тёмная тема переопределяет значения этих ролей.

Фиксированные отступы и форма

Источник
Название / правилоЗначение / конфигурацияПрименение
--v-space-2.125remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-4.25remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-8.5remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-12.75remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-161remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-241.5remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-322remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-483remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-space-644remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-radius-sm.25remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-radius-md.5remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-radius-lg1remОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.
--v-radius-full9999pxОпубликованная фиксированная шкала. Не смешивайте её с гибкими токенами отступов страницы.

Правила для текста и границ

Источник
Название / правилоЗначение / конфигурацияПрименение
--v-font-sans-family"Volvo Centum", "Helvetica Neue", "Helvetica", "Noto Sans", "Segoe UI", "Arial", sans-serifФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-regular-weight400Фактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-emphasis-weight600Фактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-14-size.875remФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-14-lineheight1.572Фактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-16-size1remФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-16-lineheight1.5Фактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-20-size1.25remФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-font-20-lineheight1.4Фактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-border-width-default1pxФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
--v-border-width-selected2pxФактические значения версии 2.5.1. В примере не подключены файлы шрифтов Volvo, поэтому используется резервный стек шрифтов.
03

Полное руководство дизайн-система Volvo Cars Web

Практическое руководство по выбору, применению и оценке этой системы для реального интерфейса.

DESIGN-volvo-cars.md

Подробные рекомендации, отправная точка для реализации и ссылки на источники.

Скачать руководство

Дизайн-система Volvo Cars Web HTML — сначала Foundation, затем выбор версии

Закрепите таблицу стилей, соответствующую шаблону

В примере используется @volvo-cars/css 2.5.1 — версия, соответствующая справочному примеру выбираемых карточек, использованному при реализации. В версии 3 другой контракт, поэтому установка последнего пакета без проверки разметки может привести к неполному отображению шаблона. Указывайте версию не только в руководстве, но и в настройках: наличие класса компонента не гарантирует, что в каждом выпуске он оформлен одинаково.

Из этого руководства OpenDesign

Используйте общедоступный веб-слой осознанно

В этом примере напрямую подключаются общедоступные веб-токены и таблица стилей для всех типов медиа. Отдельный внутренний пакет EDLS не используется. Приложение написано на обычном HTML, а для списка применяется небольшая часть JavaScript. Установленный CSS отвечает за внешний вид выбираемых карточек, оформление элементов управления и роли цветовых режимов; приложение задаёт содержимое и состояние.

Дизайн-система Volvo Cars Web Нейтральные роли, типографика и отступы

Сохраняйте связь ролей светлого и тёмного режимов

В таблице указаны значения по умолчанию для светлой темы, а data-color-mode выбирает соответствующие встроенные значения для тёмной темы. В композиции используются роли фона и текста, а не жёстко заданный белый текст для каждой карточки. Переключение темы не должно сбрасывать выбранный план и дополнительные пункты: смена цветовой палитры не зависит от изменения списка.

Отличайте фиксированные шаги от адаптивного ритма страницы

В выбранном примере фиксированные значения отступов варьируются от 2px до 64px. В других общедоступных токенах страницы используются clamp и round, поэтому они адаптируются к размеру окна просмотра. Двухколоночная композиция примера и расстояние 40px — оригинальные решения компоновки встроенных карточек. Опубликованный стек шрифтов сохранён, но файлы шрифтов Volvo не включены в комплект; при отображении используется доступный системный шрифт-запасной вариант.

Дизайн-система Volvo Cars Web Семантика выбираемых карточек

Используйте переключатели для выбора одного плана

В карточках двух планов размещены встроенные переключатели с одинаковым значением name внутри fieldset с legend. Каждая карточка — это label с областями для заголовка, метаданных и описания. Нажатие на карточку выбирает соответствующий переключатель, при этом сохраняется стандартное управление с клавиатуры. Выбранный план — это реальное состояние формы, а не декоративная рамка, которой отдельно управляет код.

Используйте флажки для независимых дополнений

Воду и дополнительный слой одежды можно выбрать независимо, поэтому для них используются флажки. В карточках нет вложенных ссылок или кнопок: интерактивный элемент внутри label привёл бы к конфликтующему поведению при активации. Действия в сводке расположены за пределами карточек. Опубликованный слой форм React подойдёт как альтернатива, если проекту действительно нужно более сложное интерактивное содержимое карточек.

  • Размещайте группу переключателей внутри одного fieldset с legend.
  • Используйте флажки для независимых дополнений.
  • Размещайте ссылки и кнопки вне карточки CSS, содержащей только label.

Дизайн-система Volvo Cars Web Список вещей и подтверждение с автоматическим обновлением

Формируйте сводку из тех же элементов управления

Сводка объединяет базовые вещи выбранного плана с выбранными дополнениями. При смене переключателя обновляются название плана и базовый список вещей, а независимые дополнения сохраняются. Количество рассчитывается по получившемуся списку. Всё содержимое примера о сборе вещей оригинальное; оно намеренно не содержит характеристик автомобилей, цен и утверждений о реальной комплектации Volvo при покупке.

Сбрасывайте устаревшее подтверждение при изменении выбора

Дизайн-система Volvo Cars Web Цветовой режим и адаптивная композиция

Не связывайте тему с состоянием списка вещей

Список выбора цветового режима изменяет data-color-mode документа. Переключатели, флажки и сводка при этом не создаются заново. Некоторые поверхности плавно меняют цвет средствами встроенной таблицы стилей, поэтому при визуальной проверке следует оценивать уже установившуюся тему, а не снимок экрана, сделанный в середине перехода. Проверяйте текст, состояние элементов управления и контраст поверхностей вместе.

Сохраняйте порядок чтения при узком экране

Выбор вещей для поездки расположен в документе перед сводкой. На экранах телефона двухколоночная сетка перестраивается в одноколоночную, сохраняя этот порядок и доступность всех действий. Для fieldset задано min-width:0, чтобы размер по умолчанию не приводил к горизонтальной прокрутке. Длинное содержимое карточек переносится внутри компоновки выбранной карточки, а не выходит за её границы.

Дизайн-система Volvo Cars Web Полный исходный код и локальная проверка

Запустите два исходных файла с соответствующим пакетом

В JavaScript содержится всё оригинальное содержимое и все обработчики взаимодействий. В CSS есть только композиция приложения и локальный запасной вариант отображения галочки у флажка. Используйте предоставленную оболочку HTML, сохраните два исходных файла и установите закреплённый выпуск CSS. Одна лишь загрузка таблицы стилей оформит элементы управления, но не реализует подсчёт пунктов списка и локальное подтверждение.

  1. Создайте приложение на vanilla и установите @volvo-cars/css 2.5.1.
  2. Сохраните main.js, volvo.css и предоставленную корневую оболочку HTML.
  3. Запустите приложение и проверьте поведение переключателей и флажков.
  4. Проверьте установившиеся светлую и тёмную темы, а также состояние после сброса.

Проверьте выбор, тему и восстановление состояния

Выберите план для отдыха на побережье, добавьте воду и убедитесь, что отображаются четыре пункта. Оставьте план, добавьте дополнительный слой одежды и проверьте, что прежнее подтверждение исчезло. Переключитесь на тёмную тему, не теряя выбор, затем сбросьте настройки до первого плана без дополнений. Проверьте выбор с клавиатуры и перенос содержимого на узком экране, а также установившиеся светлую и тёмную поверхности.

Дизайн-система Volvo Cars Web Примеры компонентов дизайн-системы

main.js — полный пример выбора плана

Все варианты выбора, автоматически обновляемая сводка, локальное подтверждение, тема и сброс.

javascript
import '@volvo-cars/css/tokens.css';
import '@volvo-cars/css/styles_all-media.css';
import './volvo.css';
document.querySelector('#root').innerHTML=`<main><header><p class="eyebrow">OpenDesign · Original planning study</p><h1>A little room for the weekend.</h1><p class="intro">Build a simple packing plan with selectable cards. These sample choices are not vehicle options or product specifications.</p><label class="mode">Color mode <select id="mode"><option value="light">Light</option><option value="dark">Dark</option></select></label></header><div class="composition"><div><fieldset class="stack-16"><legend>Choose your plan</legend><label class="selectable-card"><input type="radio" name="plan" value="city" checked><span slot="title">A day in the city</span><span slot="meta">Travel light</span><span slot="description">Space for a day bag and the things you use most.</span></label><label class="selectable-card"><input type="radio" name="plan" value="coast"><span slot="title">A quiet coastal break</span><span slot="meta">Stay a little longer</span><span slot="description">Bring layers, a weekend bag and time to pause.</span></label></fieldset><fieldset class="stack-16 extras"><legend>Add to your checklist</legend><label class="selectable-card"><input type="checkbox" value="water"><span slot="title">Water and a reusable cup</span><span slot="description">Keep everyday essentials close at hand.</span></label><label class="selectable-card"><input type="checkbox" value="layers"><span slot="title">An extra layer</span><span slot="description">Prepare for a change in the weather.</span></label></fieldset></div><aside class="summary bg-secondary p-24 shape-default"><p class="eyebrow">Your local checklist</p><h2 id="plan-title">A day in the city</h2><ul id="items"></ul><p id="count" role="status"></p><button type="button" class="button-filled" id="save">Keep this plan</button><button type="button" class="button-text" id="reset">Start again</button><p id="saved" role="status" hidden></p></aside></div><p class="note">Published Volvo Cars CSS 2.5.1 selectable-card styling with original packing content and local behavior. The preview uses the stylesheet’s system-font fallback; Volvo font assets are not bundled. Nothing is booked, purchased or sent.</p></main>`;
const plans={city:{title:'A day in the city',items:['Day bag','Comfortable shoes']},coast:{title:'A quiet coastal break',items:['Weekend bag','Route notes','A good book']}};const extras={water:'Water and a reusable cup',layers:'An extra layer'};let current='city';
function render(){current=document.querySelector('[name=plan]:checked').value;let list=[...plans[current].items,...[...document.querySelectorAll('.extras input:checked')].map(e=>extras[e.value])];document.querySelector('#plan-title').textContent=plans[current].title;const ul=document.querySelector('#items');ul.replaceChildren(...list.map(x=>{let li=document.createElement('li');li.textContent=x;return li}));document.querySelector('#count').textContent=`${list.length} things on your checklist`;document.querySelector('#saved').hidden=true;}
document.querySelectorAll('fieldset input').forEach(e=>e.addEventListener('change',render));document.querySelector('#mode').addEventListener('change',e=>document.documentElement.dataset.colorMode=e.target.value);document.querySelector('#save').addEventListener('click',()=>{let p=document.querySelector('#saved');p.hidden=false;p.textContent='Plan kept in this page. Changing a choice will clear this confirmation.';});document.querySelector('#reset').addEventListener('click',()=>{document.querySelector('[value=city]').checked=true;document.querySelectorAll('.extras input').forEach(e=>e.checked=false);render();document.querySelector('[value=city]').focus();});render();

Справочник по коду

  • Используется схема с переключателями с одинаковым name и областями label из закреплённой таблицы стилей.

volvo.css — оригинальная композиция

Адаптивная компоновка и локальный запасной вариант отображения галочки у флажка.

css
html{color-scheme:light}html[data-color-mode=dark]{color-scheme:dark}body{margin:0}main{max-width:1100px;padding:32px;margin:auto}header{padding:16px 0 40px}.eyebrow{font-size:12px;letter-spacing:.06em}.intro{max-width:60ch;margin-top:24px}.mode{display:flex;align-items:center;gap:16px;margin-top:24px}.mode select{max-width:180px}.composition{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);gap:40px}fieldset{min-width:0;border:0;padding:0;margin:0}legend{font-size:20px;margin-bottom:16px}.extras{margin-top:32px}.summary{align-self:start}#items{padding-left:20px;margin:24px 0}#items li{margin:8px 0}.summary button{display:block;width:100%;margin-top:16px}.note{font-size:14px;color:var(--v-color-foreground-secondary);border-top:1px solid var(--v-color-surface-gray);padding-top:24px;margin-top:40px;max-width:80ch}#saved{margin-top:24px}.selectable-card input[type=checkbox]:checked:before{background-image:none!important;content:'✓';color:var(--v-color-foreground-inverted);display:grid;place-items:center}[hidden]{display:none!important}@media(max-width:760px){main{padding:20px}.composition{grid-template-columns:1fr;gap:32px}.selectable-card{overflow-wrap:anywhere}.eyebrow{overflow-wrap:anywhere}}

Справочник по коду

  • Компоновка оригинальная; стили карточек берутся из установленной общедоступной CSS.

index.html — корневая оболочка

Полные корневой и модульный файлы для запуска.

html
<!doctype html>
<html lang="en" data-color-mode="light"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Weekend packing study</title></head><body><div id="root"></div><script type="module" src="/src/main.js"></script></body></html>

Справочник по коду

  • Замените этим файлом корневой index.html в Vite.
04

Дизайн-система Volvo Cars Web Настройка агента

Отправная точка для реализации

Закреплённая версия соответствует этой реализации выбираемых карточек. Официальные файлы шрифтов не включены в предварительный просмотр.

sh
npm create vite@latest weekend-plan -- --template vanilla
cd weekend-plan
npm install
npm install @volvo-cars/[email protected]
# Save index.html at the root; main.js and volvo.css in src.
npm run dev

Запрос для вашего проекта

Промпт для AI-агента
Создайте оригинальный пример списка вещей для выходных с помощью Volvo Cars CSS 2.5.1 и предоставленного полного исходного кода. Используйте выбираемые карточки на основе label, группу переключателей в fieldset, независимые дополнительные пункты с флажками, автоматический подсчёт, сброс устаревшего подтверждения и состояние темы, не зависящее от выбора. Всё содержимое примера должно отличаться от реальных характеристик автомобилей.
05

Дизайн-система Volvo Cars Web Источники и область применения

Оригинальный пример OpenDesign — список вещей для поездки, созданный с помощью @volvo-cars/css 2.5.1. Это не конфигуратор автомобиля. Файлы шрифтов Volvo не включены; используются встроенные запасные варианты таблицы стилей.