Создайте форму настройки напоминаний в стиле B.C. с реальными семантическими токенами, встроенными элементами управления Aria от React, условными полями контактных данных и полной валидацией.
Дизайн-система B.C. Текущая библиотека и токены React
Выберите поддерживаемую реализацию
Текущая библиотека B.C. Design System предоставляет компоненты React на основе React Aria. В этом примере используются react-components 0.8.1 и зависимость design-tokens 5.0.0. Старый репозиторий B.C. Web Components — это отдельная устаревшая реализация; импорт из него не даст текущую библиотеку React. Прежде чем копировать пример, убедитесь, что его реализация соответствует документации.
Подключите правильное начертание шрифта
Компоненты ожидают имя семейства BC Sans с пробелом. В версии 2.1.2 доступен файл css/BC_Sans.css; устаревший файл BCSans.css помечен как deprecated и задаёт другое имя семейства. Если на компьютере разработчика установлен BC Sans, отсутствие импорта шрифта может остаться незамеченным. В образец включён опубликованный шрифт, поэтому результат не зависит от локальной установки.
Дизайн-система B.C. Семантические роли цвета и интервалов
Сначала определите роль, затем выберите значение
Для основных кнопок используется тёмно-синяя заливка primary-button, а для второстепенного содержимого — typography-color-secondary. В сообщениях об ошибках применяется typography-color-danger. В таблице указаны актуальные имена экспортируемых токенов CSS; имя обозначает стабильное назначение, даже если в будущей теме изменится лежащее в его основе значение. Не путайте цвет неактивного элемента управления с цветом обычного второстепенного текста.
Продуманно задавайте пропорции
В форме используется интервал 24px между полями и более широкий интервал 48px между основной задачей и пояснением. Эти значения соответствуют ритму библиотеки, тогда как композиция из двух колонок создана специально для этого образца. На мобильных устройствах колонки складываются в одну, при этом подписи полей не уменьшаются, а пояснительный текст не превращается во всплывающую подсказку.
Дизайн-система B.C. Условные поля и сохранение значений
Проверяйте только выбранный способ связи
Встроенный RadioGroup управляет отображением TextField для адреса электронной почты или номера телефона. При смене способа связи оба значения сохраняются в состоянии React, но при проверке учитывается только выбранное поле. Так полезные данные не теряются, а скрытое поле не мешает выполнению текущей задачи.
Показывайте понятные локальные ошибки
Для адреса электронной почты проверяется простой формат, а для номера телефона требуется не менее десяти цифр. Это примеры правил, а не полноценная международная проверка контактных данных. При ошибке проверки устанавливается isInvalid и передаётся сообщение об ошибке errorMessage для конкретного поля. Если согласие не дано, показывается заметное сообщение; фокус переводится на первый элемент с ошибкой.
Используйте управляемые значения и документированные обработчики
TextField принимает value и onChange; RadioGroup принимает value и onChange; Checkbox использует isSelected и onChange. Эти обработчики получают значения, описанные в документации, а не объект события браузера, из которого всегда нужно считывать event.target. Для Button указывается type=submit, а для нативной формы используется событие submit, поэтому отправка с клавиатуры проходит тот же путь проверки.
Синхронизируйте сообщения после проверки
Дизайн-система B.C. Доступные названия и адаптивная композиция
Свяжите подписи, описания и сообщения об ошибках
Нативные компоненты обеспечивают связи React Aria между подписями, справочным текстом и сообщениями об ошибках. При этом приложение должно предоставлять осмысленные подписи, понятное описание группы и ясные тексты проверки. При тестировании нажимайте на видимые подписи радиокнопок и пользуйтесь клавиатурой: внутренний визуально скрытый input не является видимой целью взаимодействия.
Отделите пояснения от формы
В соседнем информационном блоке описан локальный процесс; также в нём есть встроенный элемент details с контекстом реализации. На узких экранах он располагается после формы в порядке чтения. Значок информации служит декорацией, поскольку смысл передаёт заголовок. Для изучения компонентов не нужны официальный логотип B.C. или заявления о предоставлении государственных услуг.
Дизайн-система B.C. Полная реализация React
Воспроизведите проверенный исходный код
Создайте проект React на Vite и установите закреплённые версии пакетов компонентов, токенов и шрифта. Используйте предоставленные main.jsx и bc.css вместе с корневым элементом монтирования. В сборку входят нативное поведение радиокнопок, полей, флажка и кнопки, а также полная локальная проверка и переходы состояния. Приватная библиотека API и учётные данные не нужны.
Установите закреплённые версии пакетов и импортируйте css/BC_Sans.css.
Сохраните main.jsx и bc.css, не удаляя корневой элемент монтирования.
Отправьте пустую форму, затем заполните видимое поле правильно.
Смените способ связи и убедитесь, что предыдущее значение сохранено.
Согласуйте условную проверку с выбранным способом связи
Обработчики onChange у RadioGroup и TextField получают значения, а onChange у Checkbox — выбранное логическое значение. Сохраняйте эти значения напрямую, не применяя к каждому компоненту универсальный обработчик event.target.value. Видимые подписи остаются целями взаимодействия, даже когда React Aria визуально скрывает нативный input.
При смене способа связи сохраняйте оба черновых значения, но очищайте прежний результат проверки и проверяйте только выбранный способ. После отправки переводите фокус на первый видимый элемент с ошибкой. Так человек может сравнить варианты связи, не теряя адрес электронной почты и не сталкиваясь с блокировкой из-за скрытого поля телефона. Примерное правило о десяти цифрах намеренно ограничено локальным сценарием; его нужно заменить требованиями сервиса к международным номерам.
Проверяется только выбранное поле контактных данных.
Изменение любого значения очищает прежнее сообщение о проверке.
В результате не утверждается, что напоминание запланировано.
Сохраните рядом с main.jsx. Эти собственные правила композиции отделены от справочника токенов библиотеки.
04
Дизайн-система B.C. Настройка агента
Отправная точка для реализации
Пример с закреплёнными версиями нативных компонентов собран и проверен в браузере локально. В образце используется только локальное состояние приложения.
sh
npm create vite@latest bc-reminder -- --template react
cd bc-reminder
npm install
npm install @bcgov/[email protected] @bcgov/[email protected] @bcgov/[email protected]
# Replace src/main.jsx and add src/bc.css using the complete examples.
npm run dev
Запрос для вашего проекта
Промпт для AI-агента
Создайте форму напоминания с компонентами B.C. React версии 0.8.1 и BC Sans версии 2.1.2. Сохраните условную проверку, введённые данные, видимые сообщения об ошибках и сброс устаревшего результата. Используйте актуальные имена токенов и правильное имя семейства шрифта с пробелом. Оставьте пример локальным, пока не появятся реальные условия работы сервиса уведомлений.
05
Дизайн-система B.C. Источники и область применения
Изучение приложения OpenDesign с использованием актуальной общедоступной библиотеки B.C. React. Это самостоятельно созданная локальная форма, а не официальная государственная услуга; используйте вымышленные контактные данные.