From c91c4b635640efc38710f885f90779d07b408baf Mon Sep 17 00:00:00 2001 From: kev1n77 Date: Tue, 1 Sep 2026 17:39:25 +0800 Subject: [PATCH 1/2] refactor(frontend): apply semantic typography roles --- .../src/components/InstallErrorPanel.tsx | 12 +- BitFun-Installer/src/pages/LanguageSelect.tsx | 21 +- BitFun-Installer/src/pages/Options.tsx | 19 +- BitFun-Installer/src/pages/Progress.tsx | 22 +- BitFun-Installer/src/pages/ThemeSetup.tsx | 8 +- BitFun-Installer/src/styles/global.css | 82 +-- .../src/preview/FlowChatPreviewRegistry.css | 22 +- .../src/preview/FlowChatToolGallery.css | 24 +- design-system/apps/design-lab/src/styles.css | 604 +++++++++--------- .../packages/design-tokens/README.md | 41 ++ .../design-tokens/src/system.tokens.json | 95 ++- .../design-tokens/src/typography-runtime.mjs | 3 + .../design-tokens/tests/contract.test.mjs | 38 +- .../components/ActionCard/ActionCard.meta.ts | 7 +- .../ActionCard/ActionCard.module.css | 17 +- .../components/ActionItem/ActionItem.meta.ts | 7 +- .../ActionItem/ActionItem.module.css | 19 +- .../ActivityItem/ActivityItem.meta.ts | 6 +- .../ActivityItem/ActivityItem.module.css | 22 +- .../ui/src/components/Alert/Alert.module.css | 6 +- .../src/components/Avatar/Avatar.module.css | 4 +- .../ui/src/components/Button/Button.meta.ts | 8 +- .../src/components/Button/Button.module.css | 18 +- .../ui/src/components/Card/Card.meta.ts | 7 +- .../ui/src/components/Card/Card.module.css | 18 +- .../components/Checkbox/Checkbox.module.css | 10 +- .../components/Combobox/Combobox.module.css | 19 +- .../src/components/Composer/Composer.meta.ts | 4 +- .../components/Composer/Composer.module.css | 9 +- .../ConfirmDialog/ConfirmDialog.meta.ts | 6 +- .../ConfirmDialog/ConfirmDialog.module.css | 17 +- .../src/components/Dialog/Dialog.module.css | 3 +- .../components/Disclosure/Disclosure.meta.ts | 9 +- .../Disclosure/Disclosure.module.css | 16 +- .../ui/src/components/Empty/Empty.module.css | 17 +- .../ui/src/components/Field/Field.meta.ts | 7 +- .../ui/src/components/Field/Field.module.css | 27 +- .../components/FieldGroup/FieldGroup.meta.ts | 7 +- .../FieldGroup/FieldGroup.module.css | 18 +- .../ui/src/components/Input/Input.meta.ts | 4 +- .../ui/src/components/Input/Input.module.css | 9 +- .../ui/src/components/KeyHint/KeyHint.meta.ts | 4 +- .../src/components/KeyHint/KeyHint.module.css | 10 +- .../src/components/Listbox/Listbox.module.css | 26 +- .../ui/src/components/Menu/Menu.module.css | 7 +- .../NavigationPanel/NavigationPanel.meta.ts | 4 +- .../NavigationPanel.module.css | 5 +- .../NumberBadge/NumberBadge.meta.ts | 3 +- .../NumberBadge/NumberBadge.module.css | 9 +- .../NumberInput/NumberInput.module.css | 10 +- .../components/PageHeader/PageHeader.meta.ts | 15 +- .../PageHeader/PageHeader.module.css | 42 +- .../ui/src/components/Radio/Radio.module.css | 16 +- .../SearchField/SearchField.meta.ts | 5 +- .../SearchField/SearchField.module.css | 8 +- .../SegmentedControl/SegmentedControl.meta.ts | 6 +- .../SegmentedControl.module.css | 13 +- .../ui/src/components/Select/Select.meta.ts | 4 +- .../src/components/Select/Select.module.css | 9 +- .../src/components/Spinner/Spinner.module.css | 8 +- .../components/StatusPill/StatusPill.meta.ts | 2 - .../StatusPill/StatusPill.module.css | 7 +- .../src/components/TabGroup/TabGroup.meta.ts | 7 +- .../components/TabGroup/TabGroup.module.css | 16 +- .../src/components/Textarea/Textarea.meta.ts | 2 +- .../components/Textarea/Textarea.module.css | 16 +- .../ui/src/components/Toolbar/Toolbar.meta.ts | 2 - .../ui/src/components/Tooltip/Tooltip.meta.ts | 2 - .../src/components/Tooltip/Tooltip.module.css | 7 +- .../src/flow-chat/ask-user/AskUser.module.css | 34 +- .../composer/ChatComposer.module.css | 8 +- .../composer/ChatComposerQueue.module.css | 20 +- .../tool-cards/CommandToolCard.module.css | 28 +- .../ContextCompressionToolCard.module.css | 8 +- .../FileOperationToolCard.module.css | 12 +- .../tool-cards/FlowChatToolCard.module.css | 30 +- .../tool-cards/ProminentToolCards.module.css | 64 +- .../SearchResultsToolCards.module.css | 24 +- .../tool-cards/SessionToolCards.module.css | 20 +- .../StandardAmbientToolCards.module.css | 34 +- .../primitives/ThemeRoot/ThemeRoot.module.css | 6 +- .../packages/ui/tests/ask-user.test.mjs | 2 +- .../packages/ui/tests/button.test.mjs | 12 +- .../packages/ui/tests/confirm-dialog.test.mjs | 2 +- .../packages/ui/tests/field.test.mjs | 4 +- .../ui/tests/flow-chat-tool-card.test.mjs | 4 +- .../packages/ui/tests/key-hint.test.mjs | 10 +- .../ui/tests/navigation-panel.test.mjs | 8 +- .../packages/ui/tests/number-badge.test.mjs | 2 +- .../packages/ui/tests/page-header.test.mjs | 8 +- .../packages/ui/tests/search-field.test.mjs | 3 +- .../packages/ui/tests/tab-group.test.mjs | 4 +- .../packages/ui/tests/text-clipping.test.mjs | 2 +- scripts/audit-typography-tokens.mjs | 90 +++ scripts/audit-typography-tokens.test.mjs | 117 ++++ src/apps/mobile/design-system/README.md | 16 + .../generated/default_appearance_style.html | 4 +- .../src/components/ErrorBoundary.tsx | 20 +- src/mobile-web/src/pages/ChatPage.tsx | 24 +- .../src/styles/components/chat-input.scss | 38 +- .../src/styles/components/chat.scss | 38 +- .../src/styles/components/devices.scss | 36 +- .../styles/components/language-toggle.scss | 6 +- .../src/styles/components/markdown.scss | 67 +- .../src/styles/components/pairing.scss | 24 +- .../src/styles/components/sessions.scss | 150 ++--- .../src/styles/components/thinking.scss | 12 +- .../src/styles/components/tool-card.scss | 82 +-- .../src/styles/components/workspace.scss | 46 +- src/mobile-web/src/styles/global.scss | 28 +- .../components/AboutDialog/AboutDialog.scss | 82 +-- .../AgentCompanionDesktopPet.scss | 18 +- .../AssistantAvatar/AssistantAvatar.scss | 2 +- .../GalleryLayout/GalleryDetailModal.scss | 29 +- .../GalleryLayout/GalleryLayout.scss | 69 +- .../MCPInteractionDialog.scss | 8 +- .../src/app/components/NavPanel/NavPanel.scss | 182 +++--- .../sections/sessions/SessionsSection.scss | 78 +-- .../sessions/SessionsSectionLayout.test.ts | 4 +- .../workspaces/WorkspaceListSection.scss | 80 +-- .../WorkspaceProjectPermissionsDialog.scss | 18 +- .../WorkspaceRelatedPathsDialog.scss | 60 +- .../WorkspaceSessionBatchModal.scss | 26 +- .../NavPanel/unifiedSessionCreation.test.ts | 2 +- .../NewProjectDialog/NewProjectDialog.scss | 28 +- .../RemoteConnectDialog/AccountPanel.scss | 52 +- .../RemoteConnectDialog.scss | 118 ++-- .../RemoteConnectDisclaimer.scss | 16 +- .../src/app/components/SceneBar/SceneBar.scss | 4 +- .../components/SplashScreen/SplashScreen.scss | 4 +- .../TitleBar/NotificationButton.scss | 10 +- .../components/panels/BranchSelectModal.scss | 20 +- .../panels/DiffFullscreenViewer.css | 16 +- .../src/app/components/panels/FilesPanel.scss | 48 +- .../components/panels/TerminalEditModal.scss | 4 +- .../components/panels/base/FlexiblePanel.scss | 74 +-- .../components/panels/base/PanelHeader.scss | 4 +- .../anchor-zone/AnchorZone.scss | 4 +- .../content-canvas/editor-area/DropZone.scss | 4 +- .../editor-area/EditorGroup.scss | 2 +- .../empty-state/EmptyState.scss | 2 +- .../mission-control/MissionControl.scss | 14 +- .../mission-control/SearchFilter.scss | 2 +- .../mission-control/ThumbnailCard.scss | 24 +- .../content-canvas/quick-look/QuickLook.scss | 6 +- .../panels/content-canvas/tab-bar/Tab.scss | 6 +- .../tab-bar/TabOverflowMenu.scss | 12 +- .../review-platform/ReviewPlatformPanel.scss | 196 +++--- .../LocalizedDateTimeField.scss | 10 +- .../scheduled-jobs/ScheduledJobsView.scss | 62 +- .../app/global-search/GlobalSearchRoot.scss | 104 +-- src/web-ui/src/app/layout/AppLayout.scss | 14 +- .../src/app/layout/FloatingMiniChat.scss | 20 +- .../src/app/scenes/agents/AgentsScene.scss | 30 +- .../src/app/scenes/agents/AgentsView.scss | 36 +- .../components/AgentCapabilityTooltip.scss | 18 +- .../scenes/agents/components/AgentCard.scss | 104 +-- .../agents/components/CoreAgentCard.scss | 28 +- .../agents/components/CreateAgentPage.scss | 68 +- .../agents/components/SkillGroupPicker.scss | 40 +- .../agents/components/ToolGroupPicker.scss | 40 +- .../src/app/scenes/browser/BrowserPanel.scss | 6 +- .../src/app/scenes/browser/BrowserScene.scss | 6 +- .../EcosystemCompatibilityScene.scss | 116 ++-- .../app/scenes/file-viewer/FileViewerNav.scss | 6 +- src/web-ui/src/app/scenes/git/GitNav.scss | 18 +- src/web-ui/src/app/scenes/git/GitScene.scss | 10 +- .../app/scenes/git/views/BranchesView.scss | 26 +- .../src/app/scenes/git/views/GraphView.scss | 2 +- .../app/scenes/git/views/WorkingCopyView.scss | 32 +- .../src/app/scenes/miniapps/MiniAppScene.scss | 125 +++- .../miniapps/components/MiniAppCard.scss | 29 +- .../components/MiniAppDetailModal.scss | 73 ++- .../miniapps/views/MiniAppMarketView.scss | 58 +- .../views/MiniAppSubmissionsView.scss | 91 ++- .../app/scenes/my-agent/InsightsScene.scss | 358 +++++------ .../src/app/scenes/pages/PagesScene.scss | 66 +- .../profile/views/AssistantDefaultsPage.scss | 148 ++--- .../profile/views/AssistantQuickInput.scss | 2 +- .../app/scenes/profile/views/NurseryView.scss | 258 ++++---- .../app/scenes/profile/views/PersonaRadar.tsx | 4 +- .../src/app/scenes/session/ChatPane.scss | 2 +- .../src/app/scenes/session/SessionScene.scss | 2 +- .../src/app/scenes/settings/SettingsNav.scss | 20 +- .../settings/SettingsNavTypography.test.ts | 4 +- .../components/ArchivedSessionsConfig.scss | 24 +- .../components/KeyboardShortcutsTab.scss | 22 +- src/web-ui/src/app/scenes/shell/ShellNav.scss | 28 +- .../skills/SkillsScene.presentation.test.ts | 2 +- .../src/app/scenes/skills/SkillsScene.scss | 146 ++--- .../scenes/skills/components/SkillCard.scss | 16 +- .../app/scenes/terminal/TerminalScene.scss | 2 +- .../src/app/scenes/todos/TodosScene.scss | 124 ++-- .../src/app/scenes/welcome/WelcomeScene.scss | 18 +- .../src/app/styles/components/forms.css | 34 +- src/web-ui/src/app/styles/global.scss | 16 +- .../src/app/styles/nav-panel-font-scope.scss | 20 +- .../src/app/styles/textClipping.test.ts | 2 +- .../app/styles/utilities/floating-input.css | 6 +- .../utilities/high-dpi-optimization.css | 4 +- src/web-ui/src/app/styles/utilities/index.css | 34 +- .../src/app/styles/utilities/layout.css | 16 +- .../dispatch/DispatchInstallDialog.scss | 40 +- .../dispatch/DispatchResultDialog.scss | 38 +- .../dispatch/DispatchTargetPicker.scss | 10 +- .../market-account/MarketAccountControls.scss | 16 +- .../relay-deploy/RelayDeployWizard.scss | 100 +-- .../ssh-remote/PortForwardDialog.scss | 44 +- .../ssh-remote/RemoteFileBrowser.scss | 56 +- .../ssh-remote/SSHAuthPromptDialog.scss | 12 +- .../ssh-remote/SSHConnectionDialog.scss | 52 +- .../flow_chat/components/AcpModeSelector.scss | 8 +- .../flow_chat/components/AcpPlanPanel.scss | 6 +- .../flow_chat/components/ChatEmptyState.scss | 22 +- .../src/flow_chat/components/ChatInput.scss | 50 +- .../components/ChatInputApprovalBand.scss | 4 +- .../components/ChatInputPixelPet.scss | 10 +- .../components/ChatInputWorkspaceStrip.scss | 18 +- .../src/flow_chat/components/CodePreview.scss | 10 +- .../components/CopyableTextPreview.scss | 8 +- .../components/CoworkExampleCards.scss | 2 +- .../components/CurrentSessionTitle.scss | 2 +- .../components/DeepReviewConsentDialog.scss | 26 +- .../components/FileMentionPicker.scss | 8 +- .../flow_chat/components/FlowToolCard.scss | 4 +- .../components/HarnessProfileSelector.scss | 10 +- .../components/ImageAnalysisCard.scss | 8 +- .../components/InlineDiffPreview.scss | 12 +- .../flow_chat/components/ModelSelector.scss | 16 +- .../components/PendingQueuePanel.scss | 10 +- .../flow_chat/components/PlannerButton.scss | 4 +- .../components/ReasoningPresetSelector.scss | 12 +- .../flow_chat/components/RichTextInput.scss | 22 +- .../components/ScrollToBottomButton.scss | 4 +- .../TaskDetailPanel/TaskDetailPanel.scss | 14 +- .../components/TokenUsageIndicator.scss | 4 +- .../src/flow_chat/components/WelcomePanel.css | 12 +- .../BackgroundCommandInputDialog.scss | 16 +- .../BackgroundCommandOutputPanel.scss | 10 +- .../components/btw/BtwSessionPanel.scss | 6 +- .../components/btw/DeepReviewActionBar.scss | 32 +- .../components/modern/ExportImageButton.scss | 10 +- .../components/modern/FlowChatHeader.scss | 8 +- .../components/modern/FlowChatTurnRail.scss | 6 +- .../components/modern/ModelRoundItem.scss | 14 +- .../modern/ModernFlowChatContainer.scss | 4 +- .../modern/SessionFileModificationsBar.scss | 16 +- .../components/modern/SessionFilesBadge.scss | 22 +- .../components/modern/SessionTreePopover.scss | 6 +- .../modern/TurnCompletionNoticeItem.scss | 10 +- .../modern/TurnFailureNoticeItem.scss | 14 +- .../components/modern/UserMessageItem.scss | 14 +- .../components/modern/VirtualMessageList.scss | 8 +- .../components/session-menu/SessionMenu.scss | 2 +- .../SmartRecommendations.scss | 2 +- .../subagent/SubagentProjectionView.scss | 2 +- .../thread-goal/ThreadGoalDialogs.scss | 26 +- .../components/toolbar-mode/ToolbarMode.scss | 10 +- .../usage/SessionRuntimeStatusEntry.scss | 2 +- .../components/usage/SessionUsageModal.scss | 10 +- .../components/usage/SessionUsagePanel.scss | 20 +- .../usage/SessionUsageReportCard.scss | 88 +-- .../components/voice/RealtimeVoiceCall.scss | 22 +- .../voice/RealtimeVoiceCallButton.scss | 8 +- .../flow_chat/tool-cards/CanvasToolCard.scss | 2 +- .../tool-cards/CodeReviewToolCard.scss | 70 +- .../tool-cards/ComputerUseToolCard.scss | 12 +- .../tool-cards/CreatePlanDisplay.scss | 6 +- .../flow_chat/tool-cards/MCPToolDisplay.scss | 10 +- .../tool-cards/MiniAppToolDisplay.scss | 20 +- .../tool-cards/ModelThinkingDisplay.scss | 12 +- .../SnapshotFullscreenDiffViewer.css | 24 +- .../flow_chat/tool-cards/TaskToolDisplay.scss | 24 +- .../tool-cards/ToolTimeoutIndicator.scss | 14 +- .../tool-cards/_tool-card-common.scss | 2 +- .../config/components/AcpAgentsConfig.scss | 38 +- .../components/AppearanceSettingsPage.scss | 158 ++--- .../components/ApplicationSettingsPages.scss | 12 +- .../config/components/ConfigForm.scss | 48 +- .../config/components/DefaultModelConfig.scss | 58 +- .../config/components/EditorConfig.scss | 2 +- .../components/ExternalSourcesConfig.scss | 64 +- .../GlobalPermissionRulesDialog.scss | 14 +- .../config/components/MCPResourceBrowser.scss | 36 +- .../config/components/McpToolsConfig.scss | 40 +- .../config/components/ModelSettingsPage.scss | 232 +++---- .../config/components/QuickActionsConfig.scss | 20 +- .../components/ReasoningConfigPanel.scss | 2 +- .../components/ReasoningPresetEditor.scss | 40 +- .../components/RuntimeSettingsPages.scss | 24 +- .../config/components/SkillsConfig.scss | 46 +- .../components/UsageStatisticsConfig.scss | 64 +- .../config/components/VoiceInputConfig.scss | 44 +- .../components/WorktreeSettingsPage.scss | 46 +- .../common/ConfigCollectionItem.scss | 30 +- .../components/common/ConfigPageHeader.scss | 10 +- .../components/common/ConfigPageLayout.scss | 22 +- .../components/common/ConfigPageState.scss | 2 +- .../components/FontPreferencePanel.scss | 8 +- .../i18n/components/LanguageSelector.scss | 12 +- .../src/infrastructure/markdown/Markdown.scss | 22 +- .../infrastructure/markdown/MermaidBlock.scss | 8 +- .../peer-device/DeviceSurfaceSwitcher.scss | 14 +- .../peer-device/PeerDirectoryBrowser.scss | 12 +- .../update/UpdateAvailableDialog.scss | 30 +- .../update/UpdateInstallProgressModal.scss | 4 +- .../styles/AnnouncementToast.scss | 12 +- .../styles/FeatureModal.scss | 34 +- .../components/ContextCard/ContextCard.scss | 22 +- .../components/ContextList/ContextList.scss | 16 +- .../drag-drop/ContextDropZone.scss | 4 +- .../components/LoadingNotification.scss | 12 +- .../components/NotificationCenter.scss | 80 +-- .../components/NotificationItem.scss | 16 +- .../components/ProgressNotification.scss | 22 +- src/web-ui/src/shared/prism/prismTheme.ts | 2 +- .../bitfun-canvas/BitfunCanvasPanel.scss | 12 +- .../runtime/sdk/data-display.tsx | 20 +- .../bitfun-canvas/runtime/sdk/diagrams.tsx | 2 +- .../runtime/styles/canvas-runtime.scss | 56 +- .../tools/editor/components/CodeEditor.scss | 28 +- .../tools/editor/components/DiffEditor.scss | 34 +- .../editor/components/EditorBreadcrumb.scss | 8 +- .../editor/components/EditorStatusBar.scss | 10 +- .../tools/editor/components/ImageViewer.scss | 14 +- .../editor/components/MarkdownEditor.scss | 52 +- .../tools/editor/components/PlanViewer.scss | 22 +- .../StatusBarPopovers/StatusBarPopovers.scss | 10 +- .../editor/meditor/components/EditArea.scss | 6 +- .../editor/meditor/components/MEditor.scss | 8 +- .../editor/meditor/components/Preview.scss | 10 +- .../meditor/components/TiptapEditor.scss | 148 ++--- .../components/FileSearchResults.scss | 30 +- .../file-system/styles/FileExplorer.scss | 16 +- .../GenerativeWidgetFrame.tsx | 60 +- .../GenerativeWidgetPanel.scss | 10 +- .../git/components/BranchQuickSwitch.scss | 16 +- .../CreateBranchDialog.scss | 42 +- .../GitBranchHistoryView.scss | 36 +- .../GitDiffEditor/GitDiffEditor.scss | 34 +- .../components/GitDiffView/GitDiffView.scss | 86 +-- .../components/GitGraphView/GitGraphView.scss | 24 +- .../GitSettingsView/GitSettingsView.css | 58 +- .../GitSettingsView/GitSettingsView.scss | 50 +- .../terminal/components/ConnectedTerminal.tsx | 2 +- .../tools/terminal/components/Terminal.scss | 10 +- .../components/TerminalOutputRenderer.scss | 2 +- .../workspace/components/WorkspaceManager.css | 64 +- 348 files changed, 5434 insertions(+), 4788 deletions(-) diff --git a/BitFun-Installer/src/components/InstallErrorPanel.tsx b/BitFun-Installer/src/components/InstallErrorPanel.tsx index 34c2b5b436..3475ce98e3 100644 --- a/BitFun-Installer/src/components/InstallErrorPanel.tsx +++ b/BitFun-Installer/src/components/InstallErrorPanel.tsx @@ -26,8 +26,8 @@ export function InstallErrorPanel({ message, variant = 'options' }: InstallError border: '1px solid color-mix(in srgb, var(--bf-color-border-default) 70%, transparent)', background: 'color-mix(in srgb, var(--bf-color-surface-subtle) 80%, transparent)', color: 'var(--bf-color-content-secondary)', - fontSize: 11, - lineHeight: 1.55, + fontSize: 'var(--bf-type-support-font-size)', + lineHeight: 'var(--bf-type-support-line-height)', textAlign: variant === 'bare' ? 'center' : 'left', }} > @@ -41,8 +41,8 @@ export function InstallErrorPanel({ message, variant = 'options' }: InstallError
{text} diff --git a/BitFun-Installer/src/pages/LanguageSelect.tsx b/BitFun-Installer/src/pages/LanguageSelect.tsx index 9c3e34403e..ce11cbe215 100644 --- a/BitFun-Installer/src/pages/LanguageSelect.tsx +++ b/BitFun-Installer/src/pages/LanguageSelect.tsx @@ -47,9 +47,13 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) { filter: 'drop-shadow(0 0 40px color-mix(in srgb, var(--bf-color-accent-default) 8%, transparent))', }} />

BitFun

@@ -67,10 +71,10 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) { margin: '0 auto', padding: '0 24px', textAlign: 'center', - fontSize: 11, + fontSize: 'var(--bf-type-support-font-size)', color: 'var(--bf-color-content-muted)', opacity: 0.6, - letterSpacing: '0.5px', + letterSpacing: 'var(--bf-type-modifier-tracking-wider-letter-spacing)', }}> Version 0.2.15 @@ -114,7 +118,7 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) { cursor: 'pointer', textAlign: 'left', transition: 'all 0.25s ease', outline: 'none', - fontFamily: 'var(--bf-font-family-sans)', + fontFamily: 'var(--bf-type-label-lg-font-family)', boxShadow: 'none', }} onMouseEnter={(e) => { @@ -130,12 +134,13 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) { >
{lang.nativeName}
{lang.label}
diff --git a/BitFun-Installer/src/pages/Options.tsx b/BitFun-Installer/src/pages/Options.tsx index d99151efd6..7ac50896e6 100644 --- a/BitFun-Installer/src/pages/Options.tsx +++ b/BitFun-Installer/src/pages/Options.tsx @@ -79,7 +79,11 @@ export function Options({
-
+
{t('options.subtitle')}
{existingInstall?.detected ? ( @@ -90,12 +94,15 @@ export function Options({ borderRadius: 10, border: '1px solid color-mix(in srgb, var(--bf-color-accent-default) 45%, transparent)', background: 'color-mix(in srgb, var(--bf-color-accent-default) 8%, transparent)', - fontSize: 12, - lineHeight: 1.55, + fontSize: 'var(--bf-type-body-xs-font-size)', + lineHeight: 'var(--bf-type-support-line-height)', color: 'var(--bf-color-content-primary)', }} > -
{t('options.existingInstallTitle')}
+
{t('options.existingInstallTitle')}
{existingInstall.displayVersion ? (
{t('options.existingInstallVersion', { version: existingInstall.displayVersion })} @@ -117,7 +124,7 @@ export function Options({ @@ -115,7 +115,7 @@ export function ThemeSetup({ options, setOptions, onLaunch, onClose }: ThemeSetu
-
+
{t(`themeSetup.themeNames.${theme.id}`, { defaultValue: theme.name })}
@@ -134,7 +134,7 @@ export function ThemeSetup({ options, setOptions, onLaunch, onClose }: ThemeSetu
{finishError} diff --git a/BitFun-Installer/src/styles/global.css b/BitFun-Installer/src/styles/global.css index 97e02e6198..a38c43a6d7 100644 --- a/BitFun-Installer/src/styles/global.css +++ b/BitFun-Installer/src/styles/global.css @@ -4,8 +4,8 @@ html, body, #root { width: 100%; height: 100%; overflow: hidden; - font-family: var(--bf-font-family-sans); - font-size: 14px; line-height: 1.5; + font-family: var(--bf-type-body-md-font-family); + font-size: var(--bf-type-body-md-font-size); line-height: var(--bf-type-body-md-line-height); color: var(--bf-color-content-primary); background: var(--bf-color-surface-canvas); -webkit-font-smoothing: antialiased; @@ -43,9 +43,9 @@ html, body, #root { } .titlebar-title { - font-size: 12px; font-weight: 500; + font-size: var(--bf-type-body-xs-font-size); font-weight: var(--bf-type-label-lg-font-weight); color: var(--bf-color-content-muted); opacity: 0.6; - letter-spacing: 0.3px; + letter-spacing: var(--bf-type-modifier-tracking-wide-letter-spacing); } .window-controls { @@ -136,8 +136,8 @@ html, body, #root { background: transparent; border: 1px dashed var(--bf-color-border-default); border-radius: var(--bf-radius-sm); - font-family: var(--bf-font-family-sans); - font-size: 13px; font-weight: 500; + font-family: var(--bf-type-body-md-font-family); + font-size: var(--bf-type-body-sm-font-size); font-weight: var(--bf-type-label-lg-font-weight); color: var(--bf-color-content-muted); cursor: pointer; box-shadow: none; @@ -241,8 +241,8 @@ html, body, #root { .card-btn__icon svg { color: var(--bf-color-accent-default); transition: color 0.25s ease; } .card-btn__content { flex: 1; display: flex; flex-direction: column; gap: 3px; } -.card-btn__title { font-size: 14px; font-weight: 500; color: var(--bf-color-content-primary); } -.card-btn__subtitle { font-size: 12px; color: var(--bf-color-content-muted); opacity: 0.7; } +.card-btn__title { font-size: var(--bf-type-body-md-font-size); font-weight: var(--bf-type-label-lg-font-weight); color: var(--bf-color-content-primary); } +.card-btn__subtitle { font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-content-muted); opacity: 0.7; } .card-btn__arrow { flex-shrink: 0; color: var(--bf-color-content-muted); @@ -258,7 +258,7 @@ html, body, #root { border: 1px solid var(--bf-color-border-subtle); border-radius: var(--bf-radius-sm); color: var(--bf-color-content-primary); - font-size: 12px; font-family: var(--bf-font-family-mono); + font-size: var(--bf-type-body-xs-font-size); font-family: var(--bf-type-code-md-font-family); outline: none; transition: all 0.25s ease; } .input:focus { @@ -303,8 +303,8 @@ html, body, #root { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - font-size: 12px; - font-family: var(--bf-font-family-mono); + font-size: var(--bf-type-body-xs-font-size); + font-family: var(--bf-type-code-md-font-family); color: var(--bf-color-content-primary); } @@ -353,8 +353,8 @@ html, body, #root { border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-subtle); color: var(--bf-color-content-primary); - font-size: 12px; - font-family: var(--bf-font-family-mono); + font-size: var(--bf-type-body-xs-font-size); + font-family: var(--bf-type-code-md-font-family); outline: none; } @@ -390,21 +390,21 @@ html, body, #root { } .bf-select-option-label { - font-size: 12px; - line-height: 1.2; + font-size: var(--bf-type-body-xs-font-size); + line-height: var(--bf-type-heading-page-line-height); color: var(--bf-color-content-primary); } .bf-select-option-desc { - font-size: 11px; - line-height: 1.2; + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-heading-page-line-height); color: var(--bf-color-content-muted); } .bf-select-empty { padding: 8px; color: var(--bf-color-content-muted); - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); } .model-setup-page { @@ -429,21 +429,21 @@ html, body, #root { .model-setup-intro { margin-bottom: 2px; - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-content-muted); } .model-setup-desc { margin-bottom: 8px; - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-content-secondary); } .model-setup-provider-desc { margin-top: 4px; margin-bottom: 2px; - font-size: 11px; - line-height: 1.35; + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-modifier-leading-balanced-line-height); color: var(--bf-color-content-muted); } @@ -456,8 +456,8 @@ html, body, #root { } .model-setup-row__label { - font-size: 12px; - line-height: 1.25; + font-size: var(--bf-type-body-xs-font-size); + line-height: var(--bf-type-modifier-leading-dense-line-height); color: var(--bf-color-content-secondary); text-align: end; padding-right: 2px; @@ -501,8 +501,8 @@ html, body, #root { } .model-setup-fetch-hint { - font-size: 11px; - line-height: 1.35; + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-modifier-leading-balanced-line-height); color: var(--bf-color-content-muted); margin-top: 4px; padding-left: calc(34% + 10px); @@ -521,12 +521,12 @@ html, body, #root { } .model-setup-test-msg--ok { - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-status-success-content); } .model-setup-test-msg--err { - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-status-danger-content); } @@ -581,7 +581,7 @@ html, body, #root { .checkbox-box svg { width: 10px; height: 10px; color: var(--bf-color-surface-panel); opacity: 0; transition: opacity 0.15s ease; } .checkbox-box.checked svg { opacity: 1; } -.checkbox-label { font-size: 13px; color: var(--bf-color-content-secondary); transition: color 0.15s ease; } +.checkbox-label { font-size: var(--bf-type-body-sm-font-size); color: var(--bf-color-content-secondary); transition: color 0.15s ease; } .checkbox-item:hover .checkbox-label { color: var(--bf-color-content-primary); } .progress-bar-container { @@ -620,10 +620,10 @@ html, body, #root { .section-label { display: flex; align-items: center; gap: 8px; - font-size: 12px; font-weight: 500; + font-size: var(--bf-type-body-xs-font-size); font-weight: var(--bf-type-label-lg-font-weight); color: var(--bf-color-content-muted); text-transform: uppercase; - letter-spacing: 0.8px; + letter-spacing: var(--bf-type-modifier-tracking-widest-letter-spacing); margin-bottom: 12px; } .section-label svg { opacity: 0.6; } @@ -657,16 +657,16 @@ html, body, #root { .uninstall-title { margin-bottom: 22px; - font-size: 24px; - font-weight: 600; + font-size: var(--bf-type-heading-page-font-size); + font-weight: var(--bf-type-label-selected-font-weight); color: var(--bf-color-content-primary); text-align: center; - letter-spacing: 0.2px; + letter-spacing: var(--bf-type-modifier-tracking-subtle-letter-spacing); } .uninstall-subtitle { margin-bottom: 8px; - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-content-primary); text-align: left; opacity: 0.86; @@ -678,7 +678,7 @@ html, body, #root { gap: 6px; margin-bottom: 14px; padding: 4px 0 6px; - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); color: var(--bf-color-content-muted); border: none; min-width: 0; @@ -688,13 +688,13 @@ html, body, #root { white-space: nowrap; flex-shrink: 0; color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-mono); + font-family: var(--bf-type-code-md-font-family); opacity: 1; } .uninstall-inline-path { color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-mono); + font-family: var(--bf-type-code-md-font-family); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -707,13 +707,13 @@ html, body, #root { .uninstall-error { margin-bottom: 10px; color: var(--bf-color-status-danger-content); - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); } .uninstall-success { margin-bottom: 10px; color: var(--bf-color-status-success-content); - font-size: 12px; + font-size: var(--bf-type-body-xs-font-size); } .uninstall-progress-wrap { @@ -728,7 +728,7 @@ html, body, #root { } .uninstall-progress-text { - font-size: 11px; + font-size: var(--bf-type-support-font-size); color: var(--bf-color-content-muted); min-width: 34px; text-align: right; diff --git a/design-system/apps/design-lab/src/preview/FlowChatPreviewRegistry.css b/design-system/apps/design-lab/src/preview/FlowChatPreviewRegistry.css index e9c4d69b7b..0e9e345aff 100644 --- a/design-system/apps/design-lab/src/preview/FlowChatPreviewRegistry.css +++ b/design-system/apps/design-lab/src/preview/FlowChatPreviewRegistry.css @@ -18,8 +18,8 @@ gap: var(--bf-space-3); overflow: hidden; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-meta); + font-family:var(--bf-type-body-md-font-family); + font-size: var(--bf-type-support-font-size); white-space: nowrap; } @@ -58,7 +58,7 @@ color: var(--bf-color-content-primary); background: transparent; font: inherit; - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-md-line-height); } .flow-chat-composer-preview textarea::placeholder { @@ -95,8 +95,8 @@ gap: var(--bf-space-1); padding-inline: var(--bf-space-2); border-radius: var(--bf-radius-pill); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-body-md-font-family); + font-size: var(--bf-type-body-sm-font-size); } .flow-chat-composer-preview__model > span { @@ -124,7 +124,7 @@ overflow: hidden; min-inline-size: 0; color: inherit; - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); text-overflow: ellipsis; white-space: nowrap; } @@ -167,7 +167,7 @@ .flow-chat-tool-card-preview__details code { overflow: hidden; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); text-overflow: ellipsis; white-space: nowrap; } @@ -181,7 +181,7 @@ align-items: center; gap: var(--bf-space-1); color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); font-variant-numeric: tabular-nums; } @@ -200,9 +200,9 @@ gap: var(--bf-space-1); margin: 0; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; } diff --git a/design-system/apps/design-lab/src/preview/FlowChatToolGallery.css b/design-system/apps/design-lab/src/preview/FlowChatToolGallery.css index 2509bc5bb7..37918f496e 100644 --- a/design-system/apps/design-lab/src/preview/FlowChatToolGallery.css +++ b/design-system/apps/design-lab/src/preview/FlowChatToolGallery.css @@ -35,9 +35,9 @@ .flow-chat-tool-group__attention { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-medium); - letter-spacing: var(--bf-letter-spacing-wider); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-lg-font-weight); + letter-spacing: var(--bf-type-modifier-tracking-wider-letter-spacing); text-transform: uppercase; } @@ -48,13 +48,13 @@ .flow-chat-tool-group__heading h3 { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-2xl); + font-size: var(--bf-type-flow-section-title-font-size); } .flow-chat-tool-group__heading p, .flow-chat-tool-group__heading > button { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .flow-chat-tool-group__heading > button { @@ -113,8 +113,8 @@ overflow: hidden; min-width: 0; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -122,7 +122,7 @@ .flow-chat-tool-specimen__heading span { flex: 0 0 auto; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .flow-chat-dedicated-note { @@ -158,19 +158,19 @@ .flow-chat-dedicated-note strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .flow-chat-dedicated-note p, .flow-chat-dedicated-note code { - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .flow-chat-dedicated-note code { max-inline-size: 360px; color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-mono); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + line-height: var(--bf-type-body-md-line-height); text-align: end; } diff --git a/design-system/apps/design-lab/src/styles.css b/design-system/apps/design-lab/src/styles.css index a7de5f6e87..099d30079b 100644 --- a/design-system/apps/design-lab/src/styles.css +++ b/design-system/apps/design-lab/src/styles.css @@ -43,7 +43,7 @@ body, min-height: 100vh; color: var(--bf-color-content-primary); background: var(--bf-color-surface-canvas); - font-family: var(--bf-font-family-sans); + font-family: var(--bf-type-body-md-font-family); } .lab-sidebar { @@ -90,9 +90,9 @@ body, .lab-brand strong { overflow: hidden; - font-size: var(--bf-font-size-base); - font-weight: var(--bf-font-weight-semibold); - letter-spacing: var(--bf-letter-spacing-snug); + font-size: var(--bf-type-body-md-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + letter-spacing: var(--bf-type-flow-title-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } @@ -100,7 +100,7 @@ body, .lab-brand small { overflow: hidden; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -128,9 +128,9 @@ body, .lab-nav-label, .page-kicker { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); - letter-spacing: var(--bf-letter-spacing-caps); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + letter-spacing: var(--bf-type-modifier-tracking-caps-letter-spacing); text-transform: uppercase; } @@ -153,7 +153,7 @@ body, padding: 7px 10px; border-radius: 8px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); text-decoration: none; transition: color 120ms ease, background-color 120ms ease; } @@ -167,13 +167,13 @@ body, .lab-navigation a[aria-current="page"] { color: var(--bf-color-content-primary); background: var(--bf-color-action-quiet-pressed); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .lab-navigation a small { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-overline-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); text-transform: capitalize; } @@ -199,7 +199,7 @@ body, border-radius: 9px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); text-transform: capitalize; } @@ -279,7 +279,7 @@ body, outline: 0; color: var(--bf-color-content-primary); background: transparent; - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .lab-search input::placeholder { @@ -296,8 +296,8 @@ body, border-radius: 6px; color: var(--bf-color-content-muted); background: var(--bf-color-surface-tertiary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-2xs); + font-family:var(--bf-type-body-md-font-family); + font-size: var(--bf-type-overline-sm-font-size); } .lab-search-results { @@ -353,13 +353,13 @@ body, .lab-search-results strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .lab-search-results small, .lab-search-results p { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .lab-search-results p { @@ -377,8 +377,8 @@ body, .topbar-links a { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); text-decoration: none; } @@ -417,8 +417,8 @@ body, background: transparent; cursor: pointer; font: inherit; - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .lab-settings { @@ -454,13 +454,13 @@ body, } .lab-settings-panel__heading strong { - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .lab-settings-panel__heading span, .lab-settings-panel label > span { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .lab-settings-panel__heading > button { @@ -488,7 +488,7 @@ body, border-radius: 8px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .settings-reset-button { @@ -500,7 +500,7 @@ body, border: 1px solid var(--bf-color-border-subtle); border-radius: 8px; background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); cursor: pointer; } @@ -511,7 +511,7 @@ body, place-items: center; border-radius: 999px; background: var(--bf-color-action-quiet-pressed); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .settings-reset-button:disabled { @@ -556,15 +556,15 @@ body, .page-heading h1 { font-size: var(--bf-type-display-fluid-title-font-size); - line-height: var(--bf-line-height-display); - letter-spacing: var(--bf-letter-spacing-tighter); + line-height: var(--bf-type-display-xxl-line-height); + letter-spacing: var(--bf-type-modifier-tracking-tighter-letter-spacing); } .page-heading p { max-width: 680px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-relaxed); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-lg-line-height); } .lab-button, @@ -579,8 +579,8 @@ body, border-radius: 999px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-selected-font-weight); cursor: pointer; } @@ -644,25 +644,25 @@ body, border-radius: 999px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .overview-copy h1 { max-width: 610px; margin: 0; font-size: var(--bf-type-display-fluid-hero-font-size); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-none); - letter-spacing: var(--bf-letter-spacing-tighter); + font-weight: var(--bf-type-label-selected-font-weight); + line-height: var(--bf-type-modifier-leading-none-line-height); + letter-spacing: var(--bf-type-modifier-tracking-tighter-letter-spacing); } .overview-copy p { max-width: 580px; margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xl); - line-height: var(--bf-line-height-relaxed); + font-size: var(--bf-type-flow-title-font-size); + line-height: var(--bf-type-body-lg-line-height); } .overview-actions { @@ -691,8 +691,8 @@ body, } .primitive-note h2 { - font-size: var(--bf-font-size-3xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-page-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .component-card__icon { @@ -708,8 +708,8 @@ body, .component-card__category { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); - letter-spacing: var(--bf-letter-spacing-widest); + font-size: var(--bf-type-overline-sm-font-size); + letter-spacing: var(--bf-type-modifier-tracking-widest-letter-spacing); text-transform: uppercase; } @@ -722,7 +722,7 @@ body, padding-top: 22px; border-top: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } /* Component catalog */ @@ -743,7 +743,7 @@ body, padding: 12px 16px; border-right: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .component-summary-strip > span:last-child { @@ -752,7 +752,7 @@ body, .component-summary-strip strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-lg); + font-size: var(--bf-type-body-lg-font-size); } .component-catalog-grid { @@ -779,16 +779,16 @@ body, .component-catalog-section-heading h2 { margin: 0; color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-3xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-page-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .component-catalog-section-heading p { max-width: 720px; margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .component-card { @@ -855,7 +855,7 @@ body, .component-navigation-panel-card-preview [data-bf-part="footer"] { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .component-activity-item-card-preview { @@ -903,14 +903,14 @@ body, } .component-card__body strong { - font-size: var(--bf-font-size-2xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-section-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .component-card__body > span:last-child { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .component-card__footer { @@ -921,7 +921,7 @@ body, padding: var(--bf-space-3) var(--bf-space-4); border-top: var(--bf-border-width-default) solid var(--bf-color-border-subtle); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .primitive-note { @@ -942,8 +942,8 @@ body, .primitive-note p { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-spacious); + font-size: var(--bf-type-body-xs-font-size); + line-height: var(--bf-type-modifier-leading-spacious-line-height); } /* Component details */ @@ -956,7 +956,7 @@ body, border: 0; color: var(--bf-color-content-muted); background: transparent; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); cursor: pointer; } @@ -1001,8 +1001,8 @@ body, .preview-choice-group legend { padding: 0; color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .preview-choice-group > div { @@ -1018,7 +1018,7 @@ body, border-radius: 7px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); text-transform: capitalize; cursor: pointer; } @@ -1051,13 +1051,13 @@ body, padding: var(--bf-space-3) var(--bf-space-4); border-bottom: var(--bf-border-width-default) solid var(--bf-color-border-subtle); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); text-transform: capitalize; } .component-live-preview__label > span:first-child { color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .component-live-preview__stage { @@ -1109,8 +1109,8 @@ input.lab-force-focus { min-height: 38px; padding: 7px 12px; border-bottom: 1px solid var(--bf-color-border-subtle); - font-size: var(--bf-font-size-2xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-overline-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .component-code-panel__header button { @@ -1121,7 +1121,7 @@ input.lab-force-focus { border: 1px solid var(--bf-color-border-subtle); border-radius: 6px; background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); cursor: pointer; } @@ -1131,9 +1131,9 @@ input.lab-force-focus { overflow: auto; padding: 16px; color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); - line-height: var(--bf-line-height-relaxed); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); + line-height: var(--bf-type-body-lg-line-height); } .component-guidance-grid { @@ -1158,9 +1158,9 @@ input.lab-force-focus { .component-guidance-grid h2, .component-reference-panel h2 { - font-size: var(--bf-font-size-lg); - line-height: var(--bf-line-height-support); - letter-spacing: var(--bf-letter-spacing-snug); + font-size: var(--bf-type-body-lg-font-size); + line-height: var(--bf-type-flow-support-line-height); + letter-spacing: var(--bf-type-flow-title-letter-spacing); } .component-guidance-grid ul { @@ -1176,8 +1176,8 @@ input.lab-force-focus { grid-template-columns: auto minmax(0, 1fr); gap: 8px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-micro-font-size); + line-height: var(--bf-type-support-line-height); } .component-guidance-grid li :is(svg, [data-bf-component="icon"]) { @@ -1201,7 +1201,7 @@ input.lab-force-focus { .reference-panel__heading > span, .text-action { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .text-action { @@ -1237,7 +1237,7 @@ input.lab-force-focus { padding: 10px 12px; border-right: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .props-table__row > *:last-child { @@ -1250,8 +1250,8 @@ input.lab-force-focus { .props-table__row--header > * { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-weight: var(--bf-font-weight-semibold); + font-family:var(--bf-type-body-md-font-family); + font-weight: var(--bf-type-label-selected-font-weight); text-transform: uppercase; } @@ -1269,7 +1269,7 @@ input.lab-force-focus { border-radius: 6px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } /* Token workbench */ @@ -1306,15 +1306,15 @@ input.lab-force-focus { } .reference-color-palette__heading h2 { - font-size: var(--bf-font-size-xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .reference-color-palette__heading p, .reference-color-palette__contract { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-micro-font-size); + line-height: var(--bf-type-support-line-height); } .reference-color-palette__summary { @@ -1329,7 +1329,7 @@ input.lab-force-focus { border-radius: 999px; color: var(--bf-color-content-muted); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); white-space: nowrap; } @@ -1353,13 +1353,13 @@ input.lab-force-focus { } .reference-color-scale > header h3 { - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .reference-color-scale > header span { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .reference-color-scale__steps { @@ -1402,14 +1402,14 @@ input.lab-force-focus { .reference-color-step strong { margin-top: 6px; color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-3xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-overline-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .reference-color-step code { margin-top: 2px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-4xs); + font-size: var(--bf-type-overline-micro-font-size); } .reference-color-palette__contract { @@ -1428,7 +1428,7 @@ input.lab-force-focus { align-items: center; gap: 7px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .token-source-status > span:first-child { @@ -1445,7 +1445,7 @@ input.lab-force-focus { .token-save-error, .token-error { color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .token-action-row { @@ -1459,7 +1459,7 @@ input.lab-force-focus { min-height: 34px; padding: 6px 10px; border-radius: 8px; - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .token-action-row button:disabled { @@ -1470,7 +1470,7 @@ input.lab-force-focus { .token-edit-count { margin-right: 4px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .token-category-tabs { @@ -1489,14 +1489,14 @@ input.lab-force-focus { border-bottom: 2px solid transparent; color: var(--bf-color-content-secondary); background: transparent; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); cursor: pointer; } .token-category-tabs button[data-active] { border-bottom-color: var(--bf-color-content-primary); color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .token-workspace { @@ -1546,7 +1546,7 @@ input.lab-force-focus { outline: 0; color: var(--bf-color-content-primary); background: transparent; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .token-table { @@ -1568,8 +1568,8 @@ input.lab-force-focus { border-bottom: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-muted); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-2xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-overline-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .token-table__body { @@ -1625,8 +1625,8 @@ input.lab-force-focus { .token-table__row strong { overflow: hidden; - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); text-overflow: ellipsis; white-space: nowrap; } @@ -1634,15 +1634,15 @@ input.lab-force-focus { .token-table__row code { overflow: hidden; color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-2xs); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-overline-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } .token-table__row > span:last-child { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .token-table__row > span:last-child i { @@ -1650,7 +1650,7 @@ input.lab-force-focus { border: 1px solid var(--bf-color-border-default); border-radius: 999px; color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); font-style: normal; } @@ -1671,7 +1671,7 @@ input.lab-force-focus { padding: 8px 14px; color: var(--bf-color-content-muted); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); text-transform: capitalize; } @@ -1681,7 +1681,7 @@ input.lab-force-focus { place-items: center; padding: 24px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); text-align: center; } @@ -1718,8 +1718,8 @@ input.lab-force-focus { .token-inspector h2 { overflow-wrap: anywhere; - font-size: var(--bf-font-size-lg); - letter-spacing: var(--bf-letter-spacing-snug); + font-size: var(--bf-type-body-lg-font-size); + letter-spacing: var(--bf-type-flow-title-letter-spacing); } .edited-indicator { @@ -1731,7 +1731,7 @@ input.lab-force-focus { border-radius: 999px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .token-inspector__section { @@ -1741,8 +1741,8 @@ input.lab-force-focus { .token-inspector__section > strong, .token-inspector__label-row strong { - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .token-inspector__label-row { @@ -1754,13 +1754,13 @@ input.lab-force-focus { .token-inspector__label-row span { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .token-inspector p { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); - line-height: var(--bf-line-height-relaxed); + font-size: var(--bf-type-micro-font-size); + line-height: var(--bf-type-body-lg-line-height); } .token-value-control { @@ -1786,8 +1786,8 @@ input.lab-force-focus { border-radius: 8px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); } .token-value-input[aria-invalid="true"] { @@ -1815,7 +1815,7 @@ input.lab-force-focus { .copy-value-row code { overflow: hidden; - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -1826,7 +1826,7 @@ input.lab-force-focus { justify-content: space-between; gap: 14px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); text-transform: capitalize; } @@ -1836,8 +1836,8 @@ input.lab-force-focus { place-items: center; padding: 32px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); - line-height: var(--bf-line-height-relaxed); + font-size: var(--bf-type-micro-font-size); + line-height: var(--bf-type-body-lg-line-height); text-align: center; } @@ -1874,22 +1874,22 @@ input.lab-force-focus { } .effect-preview-heading h2 { - font-size: var(--bf-font-size-2xl); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-flow-section-title-font-size); + line-height: var(--bf-type-heading-page-line-height); } .lab-eyebrow, .effect-card-label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-semibold); - letter-spacing: var(--bf-letter-spacing-widest); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + letter-spacing: var(--bf-type-modifier-tracking-widest-letter-spacing); text-transform: uppercase; } .effect-preview-heading > span:last-child { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .effect-preview-grid { @@ -1939,7 +1939,7 @@ input.lab-force-focus { align-items: center; gap: var(--bf-space-2); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .status-samples > span[data-tone="info"] { @@ -1979,7 +1979,7 @@ input.lab-force-focus { border: var(--bf-border-width-default) solid var(--bf-color-border-default); border-radius: var(--bf-radius-md); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .surface-sample--canvas { background: var(--bf-color-surface-canvas); } @@ -1996,26 +1996,26 @@ input.lab-force-focus { } .type-sample-display { - font-size: var(--bf-font-size-4xl); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-heading-display-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + line-height: var(--bf-type-heading-page-line-height); } .type-sample-title { - font-size: var(--bf-font-size-2xl); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-flow-section-title-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .type-sample-body { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-base); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-md-font-size); + line-height: var(--bf-type-body-md-line-height); } .type-sample-caption { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); - letter-spacing: var(--bf-letter-spacing-widest); + font-size: var(--bf-type-body-xs-font-size); + letter-spacing: var(--bf-type-modifier-tracking-widest-letter-spacing); } .geometry-samples { @@ -2034,7 +2034,7 @@ input.lab-force-focus { border-radius: var(--bf-radius-md); color: var(--bf-color-content-secondary); background: var(--bf-color-surface-subtle); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .geometry-sample--split-view-panel { @@ -2044,8 +2044,8 @@ input.lab-force-focus { .geometry-sample strong { color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); overflow-wrap: anywhere; } @@ -2225,7 +2225,7 @@ input.lab-force-focus { } .lab-language-control select { - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .topbar-icon-button, @@ -2256,11 +2256,11 @@ input.lab-force-focus { } .overview-copy h1 { - font-size: var(--bf-font-size-6xl); + font-size: var(--bf-type-display-md-font-size); } .overview-copy p { - font-size: var(--bf-font-size-base); + font-size: var(--bf-type-body-md-font-size); } .overview-artwork { @@ -2426,8 +2426,8 @@ input.lab-force-focus { } .lab-brand strong { - font-size: var(--bf-font-size-lg); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-lg-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .lab-navigation { @@ -2438,14 +2438,14 @@ input.lab-force-focus { .lab-nav-label { margin-top: 22px; padding: 0 12px 8px; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .lab-navigation > a, .lab-component-links a { min-height: 40px; border-radius: 9px; - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .lab-navigation > a { @@ -2460,7 +2460,7 @@ input.lab-force-focus { .lab-component-links a { min-height: 35px; padding: 6px 10px; - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .lab-sidebar-footer { @@ -2468,7 +2468,7 @@ input.lab-force-focus { margin: 14px 20px 24px; padding: 8px 11px; background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .lab-sidebar-footer button { @@ -2479,7 +2479,7 @@ input.lab-force-focus { border: 0; color: var(--bf-color-content-muted); background: transparent; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); text-transform: capitalize; cursor: pointer; } @@ -2496,7 +2496,7 @@ input.lab-force-focus { .lab-search input, .topbar-links a { - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .lab-language-control { @@ -2509,7 +2509,7 @@ input.lab-force-focus { } .page-heading p { - font-size: var(--bf-font-size-base); + font-size: var(--bf-type-body-md-font-size); } .overview-hero { @@ -2517,7 +2517,7 @@ input.lab-force-focus { } .primitive-note p { - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } /* Getting started */ @@ -2544,16 +2544,16 @@ input.lab-force-focus { .guide-hero h1 { max-width: 760px; font-size: var(--bf-type-display-fluid-hero-font-size); - line-height: var(--bf-line-height-none); - letter-spacing: var(--bf-letter-spacing-tighter); + line-height: var(--bf-type-modifier-leading-none-line-height); + letter-spacing: var(--bf-type-modifier-tracking-tighter-letter-spacing); } .guide-hero > p { max-width: 720px; margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-lg); - line-height: var(--bf-line-height-spacious); + font-size: var(--bf-type-body-lg-font-size); + line-height: var(--bf-type-modifier-leading-spacious-line-height); } .guide-step-grid { @@ -2583,8 +2583,8 @@ input.lab-force-focus { top: 24px; right: 24px; color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); } .guide-step-icon, @@ -2600,8 +2600,8 @@ input.lab-force-focus { .guide-step-grid h2 { margin: 24px 0 0; - font-size: var(--bf-font-size-xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .guide-step-grid p, @@ -2610,8 +2610,8 @@ input.lab-force-focus { .resource-boundary-panel p { margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-spacious); + font-size: var(--bf-type-body-xs-font-size); + line-height: var(--bf-type-modifier-leading-spacious-line-height); } .guide-contract-panel { @@ -2633,8 +2633,8 @@ input.lab-force-focus { .guide-contract-copy h2, .guide-next-panel h2, .resource-boundary-panel h2 { - font-size: var(--bf-font-size-3xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-page-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .guide-contract-copy ul { @@ -2650,8 +2650,8 @@ input.lab-force-focus { grid-template-columns: auto minmax(0, 1fr); gap: 8px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-support-line-height); } .guide-code-card { @@ -2670,7 +2670,7 @@ input.lab-force-focus { padding: 8px 13px; border-bottom: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .guide-code-card pre { @@ -2678,9 +2678,9 @@ input.lab-force-focus { overflow: auto; padding: 20px; color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-loose); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-modifier-leading-loose-line-height); } .guide-next-panel, @@ -2723,7 +2723,7 @@ input.lab-force-focus { padding: 18px 24px; border-right: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .resource-fact-strip span:last-child { @@ -2732,8 +2732,8 @@ input.lab-force-focus { .resource-fact-strip strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-4xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-heading-display-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .resource-grid { @@ -2767,13 +2767,13 @@ input.lab-force-focus { } .resource-grid strong { - font-size: var(--bf-font-size-base); + font-size: var(--bf-type-body-md-font-size); } .resource-grid small { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-support-line-height); } .resource-boundary-panel { @@ -2818,8 +2818,8 @@ input.lab-force-focus { .pattern-section__heading > span { color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); } .pattern-section__heading div { @@ -2834,15 +2834,15 @@ input.lab-force-focus { } .pattern-section__heading h2 { - font-size: var(--bf-font-size-xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .pattern-section__heading p, .pattern-navigation-copy p { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-relaxed); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-body-lg-line-height); } .pattern-settings { @@ -2934,8 +2934,8 @@ input.lab-force-focus { .pattern-recent-list > strong { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .pattern-device-card { @@ -2990,12 +2990,12 @@ input.lab-force-focus { align-items: center; flex-wrap: wrap; gap: var(--bf-space-4); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .pattern-feedback { margin: 0; - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); color: var(--bf-color-content-muted); } @@ -3055,7 +3055,7 @@ input.lab-force-focus { .component-combobox-preview > span { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .component-menu-interaction { padding: var(--bf-space-6); } @@ -3099,7 +3099,7 @@ input.lab-force-focus { gap: 7px; margin-bottom: 14px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .component-breadcrumb button { @@ -3136,16 +3136,16 @@ input.lab-force-focus { } .component-detail-heading h1 { - font-size: var(--bf-font-size-6xl); - line-height: var(--bf-line-height-none); - letter-spacing: var(--bf-letter-spacing-tighter); + font-size: var(--bf-type-display-md-font-size); + line-height: var(--bf-type-modifier-leading-none-line-height); + letter-spacing: var(--bf-type-modifier-tracking-tighter-letter-spacing); } .component-detail-heading p { max-width: 680px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-base); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-body-md-font-size); + line-height: var(--bf-type-support-line-height); } .component-meta-row { @@ -3160,7 +3160,7 @@ input.lab-force-focus { border-radius: 6px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); text-transform: capitalize; } @@ -3193,8 +3193,8 @@ input.lab-force-focus { .component-workbench__toolbar > span { gap: 7px; - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .component-workbench__toolbar > div { @@ -3208,7 +3208,7 @@ input.lab-force-focus { border: 1px solid var(--bf-color-border-subtle); border-radius: 7px; background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); cursor: pointer; } @@ -3232,13 +3232,13 @@ input.lab-force-focus { } .preview-choice-group legend { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .preview-choice-group button { min-height: 30px; padding: 5px 9px; - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .component-preview-column { @@ -3256,12 +3256,12 @@ input.lab-force-focus { .component-code-panel pre { min-height: 190px; - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } /* Token authoring density follows the same desktop document scale. */ .token-category-tabs button { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .token-tools { @@ -3270,15 +3270,15 @@ input.lab-force-focus { .token-search-field input, .token-tools select { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .token-table__header { - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .token-table__row strong { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .token-table__row code, @@ -3287,12 +3287,12 @@ input.lab-force-focus { .token-inspector p, .token-inspector__meta span, .copy-value-row code { - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .token-inspector__section > strong, .token-inspector__label-row strong { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .compact-props-table { @@ -3310,7 +3310,7 @@ input.lab-force-focus { .compact-props-table > div:first-child { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); text-transform: uppercase; } @@ -3324,7 +3324,7 @@ input.lab-force-focus { overflow-wrap: anywhere; padding: 7px 5px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .component-reference-panel { @@ -3390,7 +3390,7 @@ input.lab-force-focus { } .guide-hero h1 { - font-size: var(--bf-font-size-6xl); + font-size: var(--bf-type-display-md-font-size); } .guide-contract-panel { @@ -3512,14 +3512,14 @@ input.lab-force-focus { .component-panel-heading h2 { margin: 0; - font-size: var(--bf-font-size-xl); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-title-font-size); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .component-panel-heading > span, .component-code-heading span { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); text-transform: capitalize; } @@ -3541,8 +3541,8 @@ input.lab-force-focus { .component-dialog-preview-stage__label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .component-activity-item-preview-stage { @@ -3563,8 +3563,8 @@ input.lab-force-focus { .component-card-preview-stage__label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .component-card-example { @@ -3603,8 +3603,8 @@ input.lab-force-focus { .component-activity-item-preview-stage__label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .component-activity-item-example { @@ -3638,8 +3638,8 @@ input.lab-force-focus { .component-toolbar-preview-stage__label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .component-toolbar-example { @@ -3672,8 +3672,8 @@ input.lab-force-focus { .component-composer-preview-stage__label { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .component-composer-example { @@ -3695,7 +3695,7 @@ input.lab-force-focus { min-inline-size: 0; gap: var(--bf-space-1); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); white-space: nowrap; } @@ -3733,8 +3733,8 @@ input.lab-force-focus { .component-dialog-example__hint { margin: 0; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .component-dialog-example__model-card { @@ -3751,13 +3751,13 @@ input.lab-force-focus { .component-dialog-example__model-card > strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-base); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-body-md-font-size); + line-height: var(--bf-type-heading-page-line-height); } .component-dialog-example__model-card > span { - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .component-scroll-area-example { @@ -3782,7 +3782,7 @@ input.lab-force-focus { padding-inline: var(--bf-space-4); border-block-end: var(--bf-border-width-default) solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); white-space: nowrap; } @@ -3870,7 +3870,7 @@ input.lab-force-focus { .component-icon-composition p { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .component-icon-composition__row { @@ -3884,7 +3884,7 @@ input.lab-force-focus { .component-icon-composition__row > code { min-inline-size: 112px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .component-icon-catalog__item { @@ -3903,7 +3903,7 @@ input.lab-force-focus { max-inline-size: 100%; overflow: hidden; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -4028,13 +4028,13 @@ input.lab-force-focus { .flow-chat-state-list__heading strong { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .flow-chat-state-list__heading code { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-xs); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-xs-font-size); } .flow-chat-state-list__preview { @@ -4075,7 +4075,7 @@ input.lab-force-focus { place-items: center; color: var(--bf-color-content-muted); background: transparent; - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); text-transform: capitalize; } @@ -4089,8 +4089,8 @@ input.lab-force-focus { padding: var(--bf-space-3); color: var(--bf-color-content-secondary); background: transparent; - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); text-transform: capitalize; } @@ -4132,7 +4132,7 @@ input.lab-force-focus { border-radius: 7px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); cursor: pointer; } @@ -4146,8 +4146,8 @@ input.lab-force-focus { border: 0; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-loose); + font-size: var(--bf-type-body-xs-font-size); + line-height: var(--bf-type-modifier-leading-loose-line-height); } .component-inspector { @@ -4175,13 +4175,13 @@ input.lab-force-focus { border: 0; color: var(--bf-color-content-secondary); background: transparent; - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); cursor: pointer; } .component-inspector-tabs button[aria-selected="true"] { color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .component-inspector-tabs button[aria-selected="true"]::after { @@ -4219,8 +4219,8 @@ input.lab-force-focus { .component-inspector-content h2 { margin: 0; - font-size: var(--bf-font-size-xs); - letter-spacing: var(--bf-letter-spacing-snug); + font-size: var(--bf-type-body-xs-font-size); + letter-spacing: var(--bf-type-flow-title-letter-spacing); } .component-inspector-controls { @@ -4234,7 +4234,7 @@ input.lab-force-focus { align-items: center; gap: 12px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .component-inspector-toggle { @@ -4244,7 +4244,7 @@ input.lab-force-focus { gap: 12px; min-height: 38px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .component-inspector-toggle [data-bf-component="switch"] { @@ -4261,7 +4261,7 @@ input.lab-force-focus { border-radius: 8px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); cursor: pointer; } @@ -4312,7 +4312,7 @@ input.lab-force-focus { min-width: 0; overflow-wrap: anywhere; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .component-inspector-props code { @@ -4346,12 +4346,12 @@ input.lab-force-focus { .component-inspector-facts dd { margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-micro); + font-size: var(--bf-type-micro-font-size); } .component-inspector-facts dd { color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); text-transform: capitalize; } @@ -4369,7 +4369,7 @@ input.lab-force-focus { border-radius: 6px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-tertiary); - font-size: var(--bf-font-size-3xs); + font-size: var(--bf-type-overline-xs-font-size); } .component-inspector-token-list { @@ -4378,7 +4378,7 @@ input.lab-force-focus { .component-inspector-token-list code { overflow-wrap: anywhere; - line-height: var(--bf-line-height-support); + line-height: var(--bf-type-flow-support-line-height); } .component-inspector-action { @@ -4388,8 +4388,8 @@ input.lab-force-focus { border-radius: 8px; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-selected-font-weight); cursor: pointer; } @@ -4465,12 +4465,12 @@ input.lab-force-focus { gap: 9px; margin-bottom: 20px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .colors-breadcrumb strong { color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .colors-page-heading { @@ -4495,14 +4495,14 @@ input.lab-force-focus { .colors-heading-copy h1 { font-size: var(--bf-type-display-fluid-title-font-size); - line-height: var(--bf-line-height-none); - letter-spacing: var(--bf-letter-spacing-tighter); + line-height: var(--bf-type-modifier-leading-none-line-height); + letter-spacing: var(--bf-type-modifier-tracking-tighter-letter-spacing); } .colors-heading-copy p { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-base); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-body-md-font-size); + line-height: var(--bf-type-support-line-height); } .colors-context-controls { @@ -4518,8 +4518,8 @@ input.lab-force-focus { align-items: center; gap: 9px; color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); white-space: nowrap; } @@ -4541,7 +4541,7 @@ input.lab-force-focus { outline: 0; color: var(--bf-color-content-primary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); cursor: pointer; } @@ -4589,14 +4589,14 @@ input.lab-force-focus { border-bottom: 2px solid transparent; color: var(--bf-color-content-secondary); background: transparent; - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); cursor: pointer; } .colors-section-tabs button[data-active] { border-bottom-color: var(--bf-color-content-primary); color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .colors-section-tabs button:focus-visible, @@ -4625,9 +4625,9 @@ input.lab-force-focus { } .colors-card-heading h2 { - font-size: var(--bf-font-size-xl); - line-height: var(--bf-line-height-dense); - letter-spacing: var(--bf-letter-spacing-tight); + font-size: var(--bf-type-flow-title-font-size); + line-height: var(--bf-type-modifier-leading-dense-line-height); + letter-spacing: var(--bf-type-display-xxl-letter-spacing); } .colors-card-heading--copy > div { @@ -4638,8 +4638,8 @@ input.lab-force-focus { .colors-card-heading p { max-width: 760px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-comfortable); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-support-line-height); } .colors-semantic-tools { @@ -4669,7 +4669,7 @@ input.lab-force-focus { outline: 0; color: var(--bf-color-content-primary); background: transparent; - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); } .colors-search-field input::placeholder { @@ -4727,8 +4727,8 @@ input.lab-force-focus { height: 46px; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-selected-font-weight); white-space: nowrap; } @@ -4738,22 +4738,22 @@ input.lab-force-focus { } .semantic-color-table tbody th[scope="row"] { - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-lg-font-weight); } .semantic-color-table tbody td:last-child { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-support-font-size); + line-height: var(--bf-type-body-md-line-height); } .semantic-color-table code, .colors-mapping-table code { overflow-wrap: anywhere; color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-medium); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .semantic-color-group { @@ -4771,14 +4771,14 @@ input.lab-force-focus { } .semantic-color-group strong { - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .semantic-color-group small { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-regular); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-body-md-font-weight); } .semantic-color-group--surface > i { @@ -4842,7 +4842,7 @@ input.lab-force-focus { .semantic-color-table__empty td { height: 96px; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); + font-size: var(--bf-type-body-xs-font-size); text-align: center; } @@ -4857,7 +4857,7 @@ input.lab-force-focus { border: 0; color: var(--bf-color-content-secondary); background: var(--bf-color-surface-panel); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); cursor: pointer; } @@ -4885,7 +4885,7 @@ input.lab-force-focus { align-items: center; gap: 10px; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .colors-scale-selector .colors-filter-field select { @@ -4915,8 +4915,8 @@ input.lab-force-focus { .colors-scale-step strong { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .colors-scale-step > span { @@ -4927,8 +4927,8 @@ input.lab-force-focus { .colors-scale-step code { color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-micro); + font-family: var(--bf-type-code-md-font-family); + font-size: var(--bf-type-micro-font-size); } .colors-palette-grid { @@ -4955,12 +4955,12 @@ input.lab-force-focus { } .colors-palette-row strong { - font-size: var(--bf-font-size-meta); + font-size: var(--bf-type-support-font-size); } .colors-palette-row small { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-2xs); + font-size: var(--bf-type-overline-sm-font-size); } .colors-palette-swatches { @@ -5003,12 +5003,12 @@ input.lab-force-focus { .colors-mapping-table thead th { color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .colors-mapping-table tbody th { - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-lg-font-weight); } .colors-mapping-table tbody tr:last-child > * { @@ -5036,7 +5036,7 @@ input.lab-force-focus { } .colors-heading-copy h1 { - font-size: var(--bf-font-size-6xl); + font-size: var(--bf-type-display-md-font-size); } .colors-context-controls { diff --git a/design-system/packages/design-tokens/README.md b/design-system/packages/design-tokens/README.md index eb1ad96da5..365c8ba115 100644 --- a/design-system/packages/design-tokens/README.md +++ b/design-system/packages/design-tokens/README.md @@ -17,3 +17,44 @@ import "@bitfun/design-tokens/tokens.css"; Only semantic and system token names are public API. Density modes reuse the same names and override values through a scoped `data-density` attribute. `tokenCatalog` is the authoring contract for visual tools. Each entry exposes its type, CSS variable, category, description, and resolved value in every density mode. Applications normally consume `tokens`; editors consume the catalog instead of maintaining a second token list. + +## Semantic typography roles + +Text-bearing components consume a complete semantic role rather than assembling +font family, size, weight, line height, and letter spacing from foundation +tokens. The core interface roles are: + +| Content purpose | Token role | Default contract | +| --- | --- | --- | +| Page title | `type.heading.page` | Control, 24px, 700, 1.2, normal | +| Compact page title | `type.heading.compactPage` | Control, 20px, 600, 1.2, normal | +| Navigation title | `type.heading.navigation` | Control, 17px, 600, 1.2, normal | +| Section title | `type.heading.section` | Control, 15px, 600, 1.2, normal | +| Card title | `type.heading.card` | Control, 13px, 600, 1.2, normal | +| Body copy | `type.body.sm` | Sans, 13px, 400, 1.5, normal | +| Supporting text | `type.support` | Control, 11px, 400, 1.55, normal | +| Control label | `type.label.md` | Control, 13px, 400, 1.2, normal | +| Selected control label | `type.label.selected` | Control, 13px, 600, 1.2, normal | + +Use every property from the selected role so localization, platform font +fallbacks, density, and the runtime font-size preference remain synchronized: + +```css +.title { + font-family: var(--bf-type-heading-card-font-family); + font-size: var(--bf-type-heading-card-font-size); + font-weight: var(--bf-type-heading-card-font-weight); + line-height: var(--bf-type-heading-card-line-height); + letter-spacing: var(--bf-type-heading-card-letter-spacing); +} +``` + +Foundation variables such as `--bf-font-size-sm` remain available for renderer +adapters and non-text geometry. Public text components should use `--bf-type-*` +roles. + +When an existing composition intentionally overrides only line height or +tracking, use `type.modifier.leading.*` or `type.modifier.tracking.*` on top of +its established role. `type.overline.*` owns extra-small uppercase annotations; +these modifiers keep product styles semantic without changing their resolved +metrics during migration. diff --git a/design-system/packages/design-tokens/src/system.tokens.json b/design-system/packages/design-tokens/src/system.tokens.json index f215d75253..40cf19da94 100644 --- a/design-system/packages/design-tokens/src/system.tokens.json +++ b/design-system/packages/design-tokens/src/system.tokens.json @@ -45,8 +45,11 @@ "base": { "$value": "14px" }, "lg": { "$value": "15px" }, "xl": { "$value": "16px" }, + "xl-plus": { "$value": "17px" }, "2xl": { "$value": "18px" }, + "2xl-plus": { "$value": "20px" }, "3xl": { "$value": "22px" }, + "3xl-plus": { "$value": "24px" }, "4xl": { "$value": "26px" }, "5xl": { "$value": "32px" }, "6xl": { "$value": "40px" }, @@ -70,6 +73,7 @@ "dense": { "$value": 1.25 }, "snug": { "$value": 1.3 }, "compact": { "$value": 1.32 }, + "balanced": { "$value": 1.35 }, "ui": { "$value": 1.4 }, "support": { "$value": 1.45 }, "base": { "$value": 1.5 }, @@ -119,7 +123,7 @@ }, "lg": { "fontFamily": { "$value": "{font.family.sans}" }, - "fontSize": { "$value": "{font.size.xl}" }, + "fontSize": { "$value": "{font.size.lg}" }, "fontWeight": { "$value": "{font.weight.regular}" }, "lineHeight": { "$value": "{lineHeight.relaxed}" }, "letterSpacing": { "$value": "{letterSpacing.normal}" } @@ -143,7 +147,7 @@ "md": { "fontFamily": { "$value": "{font.family.control}" }, "fontSize": { "$value": "{font.size.sm}" }, - "fontWeight": { "$value": "{font.weight.medium}" }, + "fontWeight": { "$value": "{font.weight.regular}" }, "lineHeight": { "$value": "{lineHeight.tight}" }, "letterSpacing": { "$value": "{letterSpacing.normal}" } }, @@ -164,9 +168,9 @@ }, "support": { "fontFamily": { "$value": "{font.family.control}" }, - "fontSize": { "$value": "{font.size.xs}" }, + "fontSize": { "$value": "{font.size.meta}" }, "fontWeight": { "$value": "{font.weight.regular}" }, - "lineHeight": { "$value": "{lineHeight.support}" }, + "lineHeight": { "$value": "{lineHeight.comfortable}" }, "letterSpacing": { "$value": "{letterSpacing.normal}" } }, "meta": { @@ -183,27 +187,64 @@ "lineHeight": { "$value": "{lineHeight.compact}" }, "letterSpacing": { "$value": "{letterSpacing.normal}" } }, + "overline": { + "micro": { + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.4xs}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.none}" }, + "letterSpacing": { "$value": "{letterSpacing.widest}" } + }, + "xs": { + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.3xs}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.none}" }, + "letterSpacing": { "$value": "{letterSpacing.widest}" } + }, + "sm": { + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.2xs}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.none}" }, + "letterSpacing": { "$value": "{letterSpacing.wider}" } + } + }, "heading": { + "navigation": { + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.xl-plus}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.tight}" }, + "letterSpacing": { "$value": "{letterSpacing.normal}" } + }, + "compactPage": { + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.2xl-plus}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.tight}" }, + "letterSpacing": { "$value": "{letterSpacing.normal}" } + }, "section": { - "fontFamily": { "$value": "{font.family.sans}" }, + "fontFamily": { "$value": "{font.family.control}" }, "fontSize": { "$value": "{font.size.lg}" }, "fontWeight": { "$value": "{font.weight.semibold}" }, "lineHeight": { "$value": "{lineHeight.tight}" }, - "letterSpacing": { "$value": "{letterSpacing.snug}" } + "letterSpacing": { "$value": "{letterSpacing.normal}" } }, "card": { - "fontFamily": { "$value": "{font.family.sans}" }, - "fontSize": { "$value": "{font.size.xl}" }, + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.sm}" }, "fontWeight": { "$value": "{font.weight.semibold}" }, "lineHeight": { "$value": "{lineHeight.tight}" }, - "letterSpacing": { "$value": "{letterSpacing.snug}" } + "letterSpacing": { "$value": "{letterSpacing.normal}" } }, "page": { - "fontFamily": { "$value": "{font.family.sans}" }, - "fontSize": { "$value": "{font.size.2xl}" }, - "fontWeight": { "$value": "{font.weight.semibold}" }, + "fontFamily": { "$value": "{font.family.control}" }, + "fontSize": { "$value": "{font.size.3xl-plus}" }, + "fontWeight": { "$value": "{font.weight.bold}" }, "lineHeight": { "$value": "{lineHeight.tight}" }, - "letterSpacing": { "$value": "{letterSpacing.tight}" } + "letterSpacing": { "$value": "{letterSpacing.normal}" } }, "dialog": { "fontFamily": { "$value": "{font.family.sans}" }, @@ -236,6 +277,27 @@ "letterSpacing": { "$value": "{letterSpacing.normal}" } } }, + "modifier": { + "$description": "Single-property semantic modifiers for intentional deviations from a complete typography role.", + "leading": { + "none": { "lineHeight": { "$value": "{lineHeight.none}" } }, + "dense": { "lineHeight": { "$value": "{lineHeight.dense}" } }, + "snug": { "lineHeight": { "$value": "{lineHeight.snug}" } }, + "balanced": { "lineHeight": { "$value": "{lineHeight.balanced}" } }, + "ui": { "lineHeight": { "$value": "{lineHeight.ui}" } }, + "spacious": { "lineHeight": { "$value": "{lineHeight.spacious}" } }, + "loose": { "lineHeight": { "$value": "{lineHeight.loose}" } } + }, + "tracking": { + "tighter": { "letterSpacing": { "$value": "{letterSpacing.tighter}" } }, + "subtle": { "letterSpacing": { "$value": "{letterSpacing.subtle}" } }, + "wide": { "letterSpacing": { "$value": "{letterSpacing.wide}" } }, + "wider": { "letterSpacing": { "$value": "{letterSpacing.wider}" } }, + "widest": { "letterSpacing": { "$value": "{letterSpacing.widest}" } }, + "caps": { "letterSpacing": { "$value": "{letterSpacing.caps}" } }, + "expanded": { "letterSpacing": { "$value": "{letterSpacing.expanded}" } } + } + }, "flow": { "body": { "fontFamily": { "$value": "{font.family.sans}" }, @@ -337,6 +399,13 @@ "lineHeight": { "$value": "{lineHeight.display}" }, "letterSpacing": { "$value": "{letterSpacing.tight}" } }, + "xxl": { + "fontFamily": { "$value": "{font.family.sans}" }, + "fontSize": { "$value": "{font.size.9xl}" }, + "fontWeight": { "$value": "{font.weight.semibold}" }, + "lineHeight": { "$value": "{lineHeight.display}" }, + "letterSpacing": { "$value": "{letterSpacing.tight}" } + }, "fluidTitle": { "fontFamily": { "$value": "{font.family.sans}" }, "fontSize": { "$value": "clamp({font.size.5xl}, 3.2vw, {font.size.7xl})" }, diff --git a/design-system/packages/design-tokens/src/typography-runtime.mjs b/design-system/packages/design-tokens/src/typography-runtime.mjs index 9f6153f21f..be5230197d 100644 --- a/design-system/packages/design-tokens/src/typography-runtime.mjs +++ b/design-system/packages/design-tokens/src/typography-runtime.mjs @@ -12,8 +12,11 @@ export const TYPOGRAPHY_SIZE_OFFSETS = Object.freeze({ base: 0, lg: 1, xl: 2, + "xl-plus": 3, "2xl": 4, + "2xl-plus": 6, "3xl": 8, + "3xl-plus": 10, "4xl": 12, "5xl": 18, "6xl": 26, diff --git a/design-system/packages/design-tokens/tests/contract.test.mjs b/design-system/packages/design-tokens/tests/contract.test.mjs index 8e9b29d9cf..dea11c29aa 100644 --- a/design-system/packages/design-tokens/tests/contract.test.mjs +++ b/design-system/packages/design-tokens/tests/contract.test.mjs @@ -386,6 +386,7 @@ test("shared system scales preserve the migrated Web UI foundation contract", () assert.equal(tokens["font.size.meta"], "11px"); assert.equal(tokens["font.size.xs"], "12px"); assert.equal(tokens["font.size.sm"], "13px"); + assert.equal(tokens["font.size.3xl-plus"], "24px"); assert.equal(tokens["font.size.4xl"], "26px"); assert.equal(tokens["font.size.8xl"], "56px"); assert.equal(tokens["font.weight.regular"], 400); @@ -413,7 +414,35 @@ test("semantic typography roles resolve to the canonical foundation", async () = assert.equal(systemDocument.type.flow.body.lineHeight.$value, "{lineHeight.reading}"); assert.equal(tokens["type.body.md.fontSize"], "14px"); assert.equal(tokens["type.label.selected.fontWeight"], 600); - assert.equal(tokens["type.heading.page.fontSize"], "18px"); + assert.equal(systemDocument.type.heading.page.fontFamily.$value, "{font.family.control}"); + assert.equal(systemDocument.type.heading.page.fontWeight.$value, "{font.weight.bold}"); + assert.equal(systemDocument.type.heading.navigation.fontSize.$value, "{font.size.xl-plus}"); + assert.equal(systemDocument.type.heading.compactPage.fontSize.$value, "{font.size.2xl-plus}"); + assert.equal(systemDocument.type.heading.section.fontSize.$value, "{font.size.lg}"); + assert.equal(systemDocument.type.heading.card.fontSize.$value, "{font.size.sm}"); + assert.equal(systemDocument.type.body.lg.fontSize.$value, "{font.size.lg}"); + assert.equal(systemDocument.type.support.fontSize.$value, "{font.size.meta}"); + assert.equal(systemDocument.type.label.md.fontWeight.$value, "{font.weight.regular}"); + assert.equal(systemDocument.type.overline.xs.fontSize.$value, "{font.size.3xs}"); + assert.equal(systemDocument.type.overline.sm.fontSize.$value, "{font.size.2xs}"); + assert.equal(systemDocument.type.modifier.leading.ui.lineHeight.$value, "{lineHeight.ui}"); + assert.equal(systemDocument.type.modifier.leading.balanced.lineHeight.$value, "{lineHeight.balanced}"); + assert.equal(systemDocument.type.modifier.tracking.wider.letterSpacing.$value, "{letterSpacing.wider}"); + assert.equal(systemDocument.type.display.xxl.fontSize.$value, "{font.size.9xl}"); + assert.equal(tokens["type.heading.page.fontSize"], "24px"); + assert.equal(tokens["type.heading.page.fontWeight"], 700); + assert.equal(tokens["type.heading.navigation.fontSize"], "17px"); + assert.equal(tokens["type.heading.compactPage.fontSize"], "20px"); + assert.equal(tokens["type.heading.section.fontSize"], "15px"); + assert.equal(tokens["type.heading.card.fontSize"], "13px"); + assert.equal(tokens["type.body.lg.fontSize"], "15px"); + assert.equal(tokens["type.support.fontSize"], "11px"); + assert.equal(tokens["type.label.md.fontWeight"], 400); + assert.equal(tokens["type.overline.xs.fontSize"], "8px"); + assert.equal(tokens["type.modifier.leading.ui.lineHeight"], 1.4); + assert.equal(tokens["type.modifier.leading.balanced.lineHeight"], 1.35); + assert.equal(tokens["type.modifier.tracking.wider.letterSpacing"], "0.04em"); + assert.equal(tokens["type.display.xxl.fontSize"], "64px"); assert.equal(tokens["type.code.md.fontSize"], "13px"); assert.equal(tokens["type.flow.body.lineHeight"], 1.58); }); @@ -424,6 +453,10 @@ test("generated CSS preserves semantic typography references", async () => { assert.match(css, /--bf-type-body-md-font-size: var\(--bf-font-size-base\);/); assert.match(css, /--bf-type-flow-body-line-height: var\(--bf-line-height-reading\);/); assert.match(css, /--bf-type-label-selected-font-weight: var\(--bf-font-weight-semibold\);/); + assert.match(css, /--bf-type-heading-compact-page-font-size: var\(--bf-font-size-2xl-plus\);/); + assert.match(css, /--bf-type-modifier-leading-ui-line-height: var\(--bf-line-height-ui\);/); + assert.match(css, /--bf-type-modifier-leading-balanced-line-height: var\(--bf-line-height-balanced\);/); + assert.match(css, /--bf-type-modifier-tracking-wider-letter-spacing: var\(--bf-letter-spacing-wider\);/); }); test("runtime typography scaling uses the canonical complete size ladder", () => { @@ -438,8 +471,11 @@ test("runtime typography scaling uses the canonical complete size ladder", () => base: "14px", lg: "15px", xl: "16px", + "xl-plus": "17px", "2xl": "18px", + "2xl-plus": "20px", "3xl": "22px", + "3xl-plus": "24px", "4xl": "26px", "5xl": "32px", "6xl": "40px", diff --git a/design-system/packages/ui/src/components/ActionCard/ActionCard.meta.ts b/design-system/packages/ui/src/components/ActionCard/ActionCard.meta.ts index bbcb72122a..3a40eac9fb 100644 --- a/design-system/packages/ui/src/components/ActionCard/ActionCard.meta.ts +++ b/design-system/packages/ui/src/components/ActionCard/ActionCard.meta.ts @@ -37,10 +37,7 @@ export const actionCardMeta = { "control.actionCard.actionsGap", "control.actionCard.actionsPaddingInlineEnd", "control.actionCard.radius", - "font.family.control", - "font.size.lg", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.heading.card.fontSize", + "type.body.sm.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/ActionCard/ActionCard.module.css b/design-system/packages/ui/src/components/ActionCard/ActionCard.module.css index 207d553422..976e19865f 100644 --- a/design-system/packages/ui/src/components/ActionCard/ActionCard.module.css +++ b/design-system/packages/ui/src/components/ActionCard/ActionCard.module.css @@ -18,7 +18,6 @@ border-radius: var(--bf-control-action-card-radius); color: var(--bf-color-action-neutral-content); background: var(--bf-color-action-neutral-surface); - font-family:var(--bf-font-family-sans); transition: color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), background-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), @@ -117,16 +116,20 @@ .title { color: var(--bf-color-content-primary); - font-size: var(--bf-font-size-lg); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-heading-card-font-family); + font-size: var(--bf-type-heading-card-font-size); + font-weight: var(--bf-type-heading-card-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-heading-card-letter-spacing); } .description { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .actions { diff --git a/design-system/packages/ui/src/components/ActionItem/ActionItem.meta.ts b/design-system/packages/ui/src/components/ActionItem/ActionItem.meta.ts index 34250fa0fd..83a5d10bbf 100644 --- a/design-system/packages/ui/src/components/ActionItem/ActionItem.meta.ts +++ b/design-system/packages/ui/src/components/ActionItem/ActionItem.meta.ts @@ -26,10 +26,9 @@ export const actionItemMeta = { "color.status.danger.content", "color.status.danger.surface", "control.height.sm", - "font.family.control", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.label.md.fontSize", + "type.label.selected.fontWeight", + "type.meta.fontSize", "radius.base", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/ActionItem/ActionItem.module.css b/design-system/packages/ui/src/components/ActionItem/ActionItem.module.css index ae15fd5504..c2011bdacc 100644 --- a/design-system/packages/ui/src/components/ActionItem/ActionItem.module.css +++ b/design-system/packages/ui/src/components/ActionItem/ActionItem.module.css @@ -26,7 +26,7 @@ .root:not([data-disabled="true"]):has(.trigger:active) .label, .root:not([data-disabled="true"]):has(.trigger[data-bf-preview-state="active"]) .label { - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .root:has(.trigger:focus-visible) { @@ -94,10 +94,11 @@ overflow: hidden; flex: 1 1 auto; min-inline-size: 0; - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } @@ -112,9 +113,11 @@ .metadata { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-meta-font-family); + font-size: var(--bf-type-meta-font-size); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/ActivityItem/ActivityItem.meta.ts b/design-system/packages/ui/src/components/ActivityItem/ActivityItem.meta.ts index 50f6349893..32a1f1482f 100644 --- a/design-system/packages/ui/src/components/ActivityItem/ActivityItem.meta.ts +++ b/design-system/packages/ui/src/components/ActivityItem/ActivityItem.meta.ts @@ -32,7 +32,8 @@ export const activityItemMeta = { "control.activityItem.inlineGap", "control.activityItem.inlineIconSize", "type.meta.fontSize", - "lineHeight.comfortable", + "type.label.md.fontSize", + "type.label.sm.fontWeight", "control.activityItem.surfaceHeight", "control.activityItem.surfaceGap", "control.activityItem.surfacePaddingBlock", @@ -48,8 +49,5 @@ export const activityItemMeta = { "control.changeCount.radius", "control.iconButton.xsSize", "control.iconButton.xsIconSize", - "font.family.control", - "font.size.sm", - "font.weight.medium", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/ActivityItem/ActivityItem.module.css b/design-system/packages/ui/src/components/ActivityItem/ActivityItem.module.css index 5065498256..84996e8391 100644 --- a/design-system/packages/ui/src/components/ActivityItem/ActivityItem.module.css +++ b/design-system/packages/ui/src/components/ActivityItem/ActivityItem.module.css @@ -21,7 +21,9 @@ align-items: center; min-inline-size: 0; color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-meta-font-family); + font-weight: var(--bf-type-meta-font-weight); + letter-spacing: var(--bf-type-meta-letter-spacing); } .root[data-has-detail="true"] { @@ -97,7 +99,7 @@ .label { flex: 0 0 auto; color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-sm-font-weight); } .description { @@ -107,7 +109,7 @@ .root[data-appearance="inline"] { gap: var(--bf-control-activity-item-inline-gap); font-size: var(--bf-type-meta-font-size); - line-height: var(--bf-line-height-comfortable); + line-height: var(--bf-type-meta-line-height); } .root[data-appearance="inline"] .trigger, @@ -130,8 +132,11 @@ border: var(--bf-border-width-default) solid var(--bf-color-border-subtle); border-radius: var(--bf-control-activity-item-surface-radius); background: var(--bf-color-surface-raised); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); transition: background-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), border-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard); @@ -201,10 +206,11 @@ padding-block: var(--bf-control-change-count-padding-block); padding-inline: var(--bf-control-change-count-padding-inline); border-radius: var(--bf-control-change-count-radius); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-meta-font-family); font-size: var(--bf-type-meta-font-size); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); } .additions { diff --git a/design-system/packages/ui/src/components/Alert/Alert.module.css b/design-system/packages/ui/src/components/Alert/Alert.module.css index f72693c1a3..2f52203ca7 100644 --- a/design-system/packages/ui/src/components/Alert/Alert.module.css +++ b/design-system/packages/ui/src/components/Alert/Alert.module.css @@ -1,13 +1,13 @@ @layer bf.components { - .root { display: flex; align-items: flex-start; gap: var(--bf-space-3); padding: var(--bf-space-3) var(--bf-space-4); border: var(--bf-border-width-default) solid var(--bf-color-status-info-border); border-radius: var(--bf-radius-base); color: var(--bf-color-status-info-content); background: var(--bf-color-status-info-surface); font-family:var(--bf-font-family-sans); font-size: var(--bf-font-size-sm); line-height: var(--bf-line-height-base); } + .root { display: flex; align-items: flex-start; gap: var(--bf-space-3); padding: var(--bf-space-3) var(--bf-space-4); border: var(--bf-border-width-default) solid var(--bf-color-status-info-border); border-radius: var(--bf-radius-base); color: var(--bf-color-status-info-content); background: var(--bf-color-status-info-surface); font-family: var(--bf-type-body-sm-font-family); font-size: var(--bf-type-body-sm-font-size); font-weight: var(--bf-type-body-sm-font-weight); line-height: var(--bf-type-body-sm-line-height); letter-spacing: var(--bf-type-body-sm-letter-spacing); } .root[data-bf-tone="success"] { border-color: var(--bf-color-status-success-border); color: var(--bf-color-status-success-content); background: var(--bf-color-status-success-surface); } .root[data-bf-tone="warning"] { border-color: var(--bf-color-status-warning-border); color: var(--bf-color-status-warning-content); background: var(--bf-color-status-warning-surface); } .root[data-bf-tone="error"] { border-color: var(--bf-color-status-danger-border); color: var(--bf-color-status-danger-content); background: var(--bf-color-status-danger-surface); } .icon { display: inline-flex; flex: 0 0 auto; margin-block-start: 1px; } .content { display: flex; flex: 1 1 auto; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-1); } - .title { color: var(--bf-color-content-primary); font-weight: var(--bf-font-weight-semibold); } + .title { color: var(--bf-color-content-primary); font-family: var(--bf-type-heading-card-font-family); font-size: var(--bf-type-heading-card-font-size); font-weight: var(--bf-type-heading-card-font-weight); line-height: var(--bf-type-heading-card-line-height); letter-spacing: var(--bf-type-heading-card-letter-spacing); } .message { color: var(--bf-color-content-primary); } - .description { color: var(--bf-color-content-secondary); font-size: var(--bf-font-size-xs); } + .description { color: var(--bf-color-content-secondary); font-family: var(--bf-type-support-font-family); font-size: var(--bf-type-support-font-size); font-weight: var(--bf-type-support-font-weight); line-height: var(--bf-type-support-line-height); letter-spacing: var(--bf-type-support-letter-spacing); } .close { flex: 0 0 auto; margin: calc(var(--bf-space-1) * -1); } @media (forced-colors: active) { .root { border-color: CanvasText; } } } diff --git a/design-system/packages/ui/src/components/Avatar/Avatar.module.css b/design-system/packages/ui/src/components/Avatar/Avatar.module.css index 4a3e5601ed..cc9ae59bdb 100644 --- a/design-system/packages/ui/src/components/Avatar/Avatar.module.css +++ b/design-system/packages/ui/src/components/Avatar/Avatar.module.css @@ -1,6 +1,6 @@ @layer bf.components { - .root { display: inline-flex; align-items: center; justify-content: center; inline-size: var(--bf-control-height-md); block-size: var(--bf-control-height-md); overflow: hidden; flex: 0 0 auto; border: var(--bf-border-width-default) solid var(--bf-color-field-border); border-radius: var(--bf-radius-pill); color: var(--bf-color-content-secondary); background: var(--bf-color-action-neutral-surface); font-family:var(--bf-font-family-sans); font-size: var(--bf-font-size-sm); font-weight: var(--bf-font-weight-semibold); } - .root[data-size="sm"] { inline-size: var(--bf-control-height-sm); block-size: var(--bf-control-height-sm); font-size: var(--bf-font-size-xs); } + .root { display: inline-flex; align-items: center; justify-content: center; inline-size: var(--bf-control-height-md); block-size: var(--bf-control-height-md); overflow: hidden; flex: 0 0 auto; border: var(--bf-border-width-default) solid var(--bf-color-field-border); border-radius: var(--bf-radius-pill); color: var(--bf-color-content-secondary); background: var(--bf-color-action-neutral-surface); font-family: var(--bf-type-label-selected-font-family); font-size: var(--bf-type-label-selected-font-size); font-weight: var(--bf-type-label-selected-font-weight); line-height: var(--bf-type-label-selected-line-height); letter-spacing: var(--bf-type-label-selected-letter-spacing); } + .root[data-size="sm"] { inline-size: var(--bf-control-height-sm); block-size: var(--bf-control-height-sm); font-size: var(--bf-type-label-sm-font-size); } .root[data-size="lg"] { inline-size: var(--bf-control-height-lg); block-size: var(--bf-control-height-lg); } .root[data-bf-shape="square"] { border-radius: var(--bf-radius-base); } .image { inline-size: 100%; block-size: 100%; object-fit: cover; } diff --git a/design-system/packages/ui/src/components/Button/Button.meta.ts b/design-system/packages/ui/src/components/Button/Button.meta.ts index c0ebaab9c8..21c455ced2 100644 --- a/design-system/packages/ui/src/components/Button/Button.meta.ts +++ b/design-system/packages/ui/src/components/Button/Button.meta.ts @@ -40,10 +40,10 @@ export const buttonMeta = { "control.button.xsLeadingIconSize", "control.button.xsTrailingIconSize", "type.meta.fontSize", - "font.family.control", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.label.sm.fontSize", + "type.label.md.fontSize", + "type.label.lg.fontSize", + "type.label.selected.fontWeight", "radius.pill", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Button/Button.module.css b/design-system/packages/ui/src/components/Button/Button.module.css index f1ca42b849..aae5ce6fdb 100644 --- a/design-system/packages/ui/src/components/Button/Button.module.css +++ b/design-system/packages/ui/src/components/Button/Button.module.css @@ -5,7 +5,7 @@ --_button-background-active: var(--bf-color-action-neutral-surface); --_button-border: var(--bf-color-action-neutral-border); --_button-content: var(--bf-color-action-neutral-content); - --_button-font-size: var(--bf-font-size-sm); + --_button-font-size: var(--bf-type-label-md-font-size); --_button-height: var(--bf-control-height-md); --_button-leading-icon-size: 16px; --_button-padding-block: var(--bf-space-component-block); @@ -24,11 +24,11 @@ border-radius: var(--bf-radius-pill); color: var(--_button-content); background: var(--_button-background); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-label-md-font-family); font-size: var(--_button-font-size); - font-weight: var(--bf-font-weight-regular); - letter-spacing: var(--bf-letter-spacing-normal); - line-height: var(--bf-line-height-tight); + font-weight: var(--bf-type-label-md-font-weight); + letter-spacing: var(--bf-type-label-md-letter-spacing); + line-height: var(--bf-type-label-md-line-height); white-space: nowrap; cursor: pointer; transition: @@ -43,7 +43,7 @@ .button:is(:active, [data-bf-preview-state="active"]):not(:disabled) { background: var(--_button-background-active); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .button:focus-visible { @@ -146,7 +146,7 @@ } .button[data-size="sm"] { - --_button-font-size: var(--bf-font-size-xs); + --_button-font-size: var(--bf-type-label-sm-font-size); --_button-height: var(--bf-control-height-sm); --_button-leading-icon-size: 12px; --_button-padding-block: var(--bf-space-1); @@ -155,7 +155,7 @@ } .button[data-size="lg"] { - --_button-font-size: var(--bf-font-size-base); + --_button-font-size: var(--bf-type-label-lg-font-size); --_button-height: var(--bf-control-height-lg); --_button-leading-icon-size: 20px; --_button-padding-inline: var(--bf-space-6); @@ -174,7 +174,7 @@ align-items: center; min-inline-size: 0; gap: var(--bf-space-1); - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-sm-line-height); overflow: hidden; text-overflow: ellipsis; } diff --git a/design-system/packages/ui/src/components/Card/Card.meta.ts b/design-system/packages/ui/src/components/Card/Card.meta.ts index 75bba8e34d..aaf8741640 100644 --- a/design-system/packages/ui/src/components/Card/Card.meta.ts +++ b/design-system/packages/ui/src/components/Card/Card.meta.ts @@ -37,10 +37,7 @@ export const cardMeta = { "layout.card.titleDescriptionGap", "layout.card.footerGap", "layout.card.mediaMinBlockSize", - "font.family.control", - "font.size.lg", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.heading.card.fontSize", + "type.body.sm.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Card/Card.module.css b/design-system/packages/ui/src/components/Card/Card.module.css index fc0ebd1829..06513c6517 100644 --- a/design-system/packages/ui/src/components/Card/Card.module.css +++ b/design-system/packages/ui/src/components/Card/Card.module.css @@ -123,20 +123,22 @@ min-inline-size: 0; overflow-wrap: anywhere; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-lg); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-heading-card-font-family); + font-size: var(--bf-type-heading-card-font-size); + font-weight: var(--bf-type-heading-card-font-weight); + line-height: var(--bf-type-heading-card-line-height); + letter-spacing: var(--bf-type-heading-card-letter-spacing); } .description, .body { min-inline-size: 0; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .body[data-align="start"] { diff --git a/design-system/packages/ui/src/components/Checkbox/Checkbox.module.css b/design-system/packages/ui/src/components/Checkbox/Checkbox.module.css index 84dc7427cf..6d8dc03c26 100644 --- a/design-system/packages/ui/src/components/Checkbox/Checkbox.module.css +++ b/design-system/packages/ui/src/components/Checkbox/Checkbox.module.css @@ -7,9 +7,11 @@ min-inline-size: 0; gap: var(--bf-space-2); color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); cursor: pointer; } @@ -77,7 +79,7 @@ .input:is(:checked, :indeterminate) + .box .icon { opacity: 1; } .content { display: inline-flex; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-1); } .label { color: inherit; } - .description { color: var(--bf-color-content-muted); font-size: var(--bf-font-size-xs); } + .description { color: var(--bf-color-content-muted); font-family: var(--bf-type-support-font-family); font-size: var(--bf-type-support-font-size); font-weight: var(--bf-type-support-font-weight); line-height: var(--bf-type-support-line-height); letter-spacing: var(--bf-type-support-letter-spacing); } @media (prefers-reduced-motion: reduce) { .box { transition: none; } } @media (forced-colors: active) { diff --git a/design-system/packages/ui/src/components/Combobox/Combobox.module.css b/design-system/packages/ui/src/components/Combobox/Combobox.module.css index 6d0ccfcfbc..b59129e3ba 100644 --- a/design-system/packages/ui/src/components/Combobox/Combobox.module.css +++ b/design-system/packages/ui/src/components/Combobox/Combobox.module.css @@ -40,10 +40,11 @@ .visibleLabel { color: var(--bf-color-content-secondary); - font-family: var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); } .error { @@ -52,6 +53,7 @@ font-size: var(--bf-type-support-font-size); font-weight: var(--bf-type-support-font-weight); line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); } .control { @@ -81,10 +83,11 @@ outline: 0; color: inherit; background: var(--bf-color-field-background); - font-family: var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); text-align: start; cursor: pointer; transition: diff --git a/design-system/packages/ui/src/components/Composer/Composer.meta.ts b/design-system/packages/ui/src/components/Composer/Composer.meta.ts index 953be42114..1e9e23cf72 100644 --- a/design-system/packages/ui/src/components/Composer/Composer.meta.ts +++ b/design-system/packages/ui/src/components/Composer/Composer.meta.ts @@ -36,9 +36,7 @@ export const composerMeta = { "control.composer.editorPadding", "control.composer.toolbarGap", "control.composer.dividerBlockSize", - "font.family.control", - "font.size.sm", - "font.weight.regular", + "type.body.sm.fontSize", "shadow.composer", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Composer/Composer.module.css b/design-system/packages/ui/src/components/Composer/Composer.module.css index d013bde23f..2e8d0eb72f 100644 --- a/design-system/packages/ui/src/components/Composer/Composer.module.css +++ b/design-system/packages/ui/src/components/Composer/Composer.module.css @@ -99,10 +99,11 @@ min-block-size: 0; padding: var(--bf-control-composer-editor-padding); color: inherit; - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .editor > :where(textarea, input, [contenteditable="true"]) { diff --git a/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.meta.ts b/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.meta.ts index b6b033c650..13d4d83aa6 100644 --- a/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.meta.ts +++ b/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.meta.ts @@ -45,9 +45,7 @@ export const confirmDialogMeta = { "layout.confirmDialog.previewPaddingBlock", "layout.confirmDialog.previewPaddingInline", "layout.confirmDialog.previewRadius", - "font.family.control", - "font.family.mono", - "font.size.base", - "font.size.xs", + "type.body.md.fontSize", + "type.code.sm.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.module.css b/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.module.css index 3098f0ebe6..d43e468a0e 100644 --- a/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.module.css +++ b/design-system/packages/ui/src/components/ConfirmDialog/ConfirmDialog.module.css @@ -58,10 +58,11 @@ min-inline-size: 0; flex: 1 1 auto; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-base); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-md-font-family); + font-size: var(--bf-type-body-md-font-size); + font-weight: var(--bf-type-body-md-font-weight); + line-height: var(--bf-type-body-md-line-height); + letter-spacing: var(--bf-type-body-md-letter-spacing); } .message > :first-child { @@ -89,9 +90,11 @@ .preview pre { margin: 0; color: inherit; - font-family: var(--bf-font-family-mono); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-code-sm-font-family); + font-size: var(--bf-type-code-sm-font-size); + font-weight: var(--bf-type-code-sm-font-weight); + line-height: var(--bf-type-code-sm-line-height); + letter-spacing: var(--bf-type-code-sm-letter-spacing); white-space: pre-wrap; overflow-wrap: anywhere; } diff --git a/design-system/packages/ui/src/components/Dialog/Dialog.module.css b/design-system/packages/ui/src/components/Dialog/Dialog.module.css index 5e44f77d97..a862d85a23 100644 --- a/design-system/packages/ui/src/components/Dialog/Dialog.module.css +++ b/design-system/packages/ui/src/components/Dialog/Dialog.module.css @@ -95,7 +95,8 @@ font-family: var(--bf-type-heading-dialog-font-family); font-size: var(--bf-type-heading-dialog-font-size); font-weight: var(--bf-type-heading-dialog-font-weight); - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-heading-dialog-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/Disclosure/Disclosure.meta.ts b/design-system/packages/ui/src/components/Disclosure/Disclosure.meta.ts index fabda08258..1445a926cb 100644 --- a/design-system/packages/ui/src/components/Disclosure/Disclosure.meta.ts +++ b/design-system/packages/ui/src/components/Disclosure/Disclosure.meta.ts @@ -24,10 +24,9 @@ export const disclosureMeta = { "color.action.neutral.surfacePressed", "color.content.muted", "color.focus.ring", - "font.family.control", - "font.size.xs", - "font.size.sm", - "font.weight.medium", + "type.label.md.fontSize", + "type.body.sm.lineHeight", + "type.support.fontSize", "layout.disclosure.triggerMinBlockSize", "layout.disclosure.triggerPaddingBlock", "layout.disclosure.triggerPaddingInline", @@ -37,8 +36,6 @@ export const disclosureMeta = { "layout.disclosure.actionsGap", "layout.disclosure.contentPaddingBlock", "layout.disclosure.contentPaddingInline", - "lineHeight.base", - "lineHeight.tight", "space.1", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Disclosure/Disclosure.module.css b/design-system/packages/ui/src/components/Disclosure/Disclosure.module.css index c0af055772..6477ff0162 100644 --- a/design-system/packages/ui/src/components/Disclosure/Disclosure.module.css +++ b/design-system/packages/ui/src/components/Disclosure/Disclosure.module.css @@ -2,7 +2,6 @@ .root { min-inline-size: 0; color: var(--bf-color-action-neutral-content); - font-family:var(--bf-font-family-sans); } .header { @@ -81,17 +80,22 @@ .summary { overflow: hidden; - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } .description { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-support-font-family); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-support-font-weight); + line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); } .actions { diff --git a/design-system/packages/ui/src/components/Empty/Empty.module.css b/design-system/packages/ui/src/components/Empty/Empty.module.css index cabf3463d5..d761235107 100644 --- a/design-system/packages/ui/src/components/Empty/Empty.module.css +++ b/design-system/packages/ui/src/components/Empty/Empty.module.css @@ -39,18 +39,21 @@ .title { color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-base); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-heading-card-font-family); + font-size: var(--bf-type-heading-card-font-size); + font-weight: var(--bf-type-heading-card-font-weight); + line-height: var(--bf-type-heading-card-line-height); + letter-spacing: var(--bf-type-heading-card-letter-spacing); } .description { max-inline-size: 42ch; color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .actions { diff --git a/design-system/packages/ui/src/components/Field/Field.meta.ts b/design-system/packages/ui/src/components/Field/Field.meta.ts index d90cdbaf8c..ef5c7bd81a 100644 --- a/design-system/packages/ui/src/components/Field/Field.meta.ts +++ b/design-system/packages/ui/src/components/Field/Field.meta.ts @@ -35,10 +35,7 @@ export const fieldMeta = { "layout.field.labelGap", "layout.field.labelActionGap", "layout.field.controlGap", - "font.family.control", - "font.size.xs", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.label.md.fontSize", + "type.support.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Field/Field.module.css b/design-system/packages/ui/src/components/Field/Field.module.css index f8764cfe83..d4c2180adb 100644 --- a/design-system/packages/ui/src/components/Field/Field.module.css +++ b/design-system/packages/ui/src/components/Field/Field.module.css @@ -66,10 +66,11 @@ align-items: center; gap: var(--bf-layout-field-label-gap); color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); } .required { @@ -85,19 +86,21 @@ .description { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-support-font-family); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-support-font-weight); + line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); } .error { grid-column: 1 / -1; color: var(--bf-color-status-danger-content); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-support-font-family); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-support-font-weight); + line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); } .control { diff --git a/design-system/packages/ui/src/components/FieldGroup/FieldGroup.meta.ts b/design-system/packages/ui/src/components/FieldGroup/FieldGroup.meta.ts index a5e296a20c..eee40d9b75 100644 --- a/design-system/packages/ui/src/components/FieldGroup/FieldGroup.meta.ts +++ b/design-system/packages/ui/src/components/FieldGroup/FieldGroup.meta.ts @@ -25,13 +25,10 @@ export const fieldGroupMeta = { "layout.formSection.gap", "layout.formSection.headerGap", "layout.formSection.titleDescriptionGap", - "type.body.lg.fontSize", + "type.heading.section.fontSize", + "type.body.sm.fontSize", "layout.fieldGroup.radius", "layout.fieldGroup.rowPaddingBlock", "layout.fieldGroup.rowPaddingInline", - "font.family.control", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/FieldGroup/FieldGroup.module.css b/design-system/packages/ui/src/components/FieldGroup/FieldGroup.module.css index 75f83d1135..4311e06f6c 100644 --- a/design-system/packages/ui/src/components/FieldGroup/FieldGroup.module.css +++ b/design-system/packages/ui/src/components/FieldGroup/FieldGroup.module.css @@ -55,18 +55,20 @@ .title { margin: 0; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-type-body-lg-font-size); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-heading-section-font-family); + font-size: var(--bf-type-heading-section-font-size); + font-weight: var(--bf-type-heading-section-font-weight); + line-height: var(--bf-type-heading-section-line-height); + letter-spacing: var(--bf-type-heading-section-letter-spacing); } .description { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .actions { diff --git a/design-system/packages/ui/src/components/Input/Input.meta.ts b/design-system/packages/ui/src/components/Input/Input.meta.ts index 0d14c5b3eb..3fe09eb07f 100644 --- a/design-system/packages/ui/src/components/Input/Input.meta.ts +++ b/design-system/packages/ui/src/components/Input/Input.meta.ts @@ -32,9 +32,7 @@ export const inputMeta = { "control.height.sm", "control.height.md", "control.height.lg", - "font.family.control", - "font.size.sm", - "font.weight.regular", + "type.label.md.fontSize", "radius.base", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Input/Input.module.css b/design-system/packages/ui/src/components/Input/Input.module.css index 046587241b..4ab7e33059 100644 --- a/design-system/packages/ui/src/components/Input/Input.module.css +++ b/design-system/packages/ui/src/components/Input/Input.module.css @@ -63,10 +63,11 @@ caret-color: var(--bf-color-accent-default); color: inherit; background: transparent; - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); } .input::placeholder { diff --git a/design-system/packages/ui/src/components/KeyHint/KeyHint.meta.ts b/design-system/packages/ui/src/components/KeyHint/KeyHint.meta.ts index 362864a587..6b2ef77c68 100644 --- a/design-system/packages/ui/src/components/KeyHint/KeyHint.meta.ts +++ b/design-system/packages/ui/src/components/KeyHint/KeyHint.meta.ts @@ -13,9 +13,7 @@ export const keyHintMeta = { tokens: [ "color.content.muted", "color.keyHint.background", - "font.family.control", - "font.size.micro", - "font.weight.regular", + "type.micro.fontSize", "radius.xs", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/KeyHint/KeyHint.module.css b/design-system/packages/ui/src/components/KeyHint/KeyHint.module.css index 927a2a7507..2a6b7adc50 100644 --- a/design-system/packages/ui/src/components/KeyHint/KeyHint.module.css +++ b/design-system/packages/ui/src/components/KeyHint/KeyHint.module.css @@ -13,11 +13,11 @@ border-radius: var(--bf-radius-xs); color: var(--bf-color-content-muted); background: var(--bf-color-key-hint-background); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-micro); - font-weight: var(--bf-font-weight-regular); - letter-spacing: var(--bf-letter-spacing-normal); - line-height: var(--bf-line-height-none); + font-family: var(--bf-type-micro-font-family); + font-size: var(--bf-type-micro-font-size); + font-weight: var(--bf-type-micro-font-weight); + letter-spacing: var(--bf-type-micro-letter-spacing); + line-height: var(--bf-type-micro-line-height); text-decoration: none; vertical-align: middle; white-space: nowrap; diff --git a/design-system/packages/ui/src/components/Listbox/Listbox.module.css b/design-system/packages/ui/src/components/Listbox/Listbox.module.css index 243531a658..229c4ef8b8 100644 --- a/design-system/packages/ui/src/components/Listbox/Listbox.module.css +++ b/design-system/packages/ui/src/components/Listbox/Listbox.module.css @@ -48,10 +48,11 @@ min-block-size: var(--bf-overlay-menu-heading-height); padding-inline: var(--bf-overlay-menu-heading-padding-inline); color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-sans); + font-family: var(--bf-type-meta-font-family); font-size: var(--bf-type-meta-font-size); - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-meta-font-weight); line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); } .option { @@ -129,14 +130,15 @@ .description, .metadata { overflow: hidden; - font-family: var(--bf-font-family-sans); + font-family: var(--bf-type-label-md-font-family); text-overflow: ellipsis; } .label { - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); white-space: nowrap; } @@ -144,7 +146,9 @@ .metadata { color: var(--bf-color-content-muted); font-size: var(--bf-type-meta-font-size); - line-height: var(--bf-line-height-tight); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); } .description { @@ -163,9 +167,11 @@ .empty { padding: var(--bf-space-3); color: var(--bf-color-content-muted); - font-family: var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); text-align: center; } diff --git a/design-system/packages/ui/src/components/Menu/Menu.module.css b/design-system/packages/ui/src/components/Menu/Menu.module.css index d0d92d439a..81c2c5fac5 100644 --- a/design-system/packages/ui/src/components/Menu/Menu.module.css +++ b/design-system/packages/ui/src/components/Menu/Menu.module.css @@ -78,10 +78,11 @@ flex: 1 1 auto; min-inline-size: 0; color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-meta-font-family); font-size: var(--bf-type-meta-font-size); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-base); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.meta.ts b/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.meta.ts index e17a2a2fed..8fd1c9c069 100644 --- a/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.meta.ts +++ b/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.meta.ts @@ -19,9 +19,7 @@ export const navigationPanelMeta = { "color.action.neutral.surface", "color.action.neutral.surfacePressed", "color.focus.ring", - "font.family.control", - "font.weight.medium", - "font.weight.semibold", + "type.label.selected.fontWeight", "layout.navigationPanel.inlineSize", "layout.navigationPanel.surfacePadding", "layout.navigationPanel.contentGap", diff --git a/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.module.css b/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.module.css index de44f667c3..cd5ece3406 100644 --- a/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.module.css +++ b/design-system/packages/ui/src/components/NavigationPanel/NavigationPanel.module.css @@ -90,7 +90,8 @@ font-family: var(--bf-type-meta-font-family); font-size: var(--bf-type-meta-font-size); font-weight: var(--bf-type-meta-font-weight); - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); text-overflow: ellipsis; white-space: nowrap; } @@ -132,7 +133,7 @@ } .item > [data-bf-part="trigger"][aria-current] > [data-bf-part="label"] { - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .separator { diff --git a/design-system/packages/ui/src/components/NumberBadge/NumberBadge.meta.ts b/design-system/packages/ui/src/components/NumberBadge/NumberBadge.meta.ts index 34fb5eaf90..f4942f8bf4 100644 --- a/design-system/packages/ui/src/components/NumberBadge/NumberBadge.meta.ts +++ b/design-system/packages/ui/src/components/NumberBadge/NumberBadge.meta.ts @@ -11,8 +11,7 @@ export const numberBadgeMeta = { ], states: ["default"], tokens: [ - "space.1", "space.5", "space.6", "font.family.control", "font.size.meta", - "font.weight.medium", "lineHeight.tight", "radius.pill", + "space.1", "space.5", "space.6", "type.meta.fontSize", "radius.pill", "color.action.neutral.content", "color.action.neutral.surface", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/NumberBadge/NumberBadge.module.css b/design-system/packages/ui/src/components/NumberBadge/NumberBadge.module.css index adf098d3d3..ce29b83f54 100644 --- a/design-system/packages/ui/src/components/NumberBadge/NumberBadge.module.css +++ b/design-system/packages/ui/src/components/NumberBadge/NumberBadge.module.css @@ -10,10 +10,11 @@ padding: calc(var(--bf-space-1) / 2); vertical-align: middle; color: var(--bf-color-action-neutral-content); - font-family: var(--bf-font-family-control); - font-size: var(--bf-font-size-meta); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-meta-font-family); + font-size: var(--bf-type-meta-font-size); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); font-variant-numeric: tabular-nums; white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/NumberInput/NumberInput.module.css b/design-system/packages/ui/src/components/NumberInput/NumberInput.module.css index 5638145ecb..ab84cdcaec 100644 --- a/design-system/packages/ui/src/components/NumberInput/NumberInput.module.css +++ b/design-system/packages/ui/src/components/NumberInput/NumberInput.module.css @@ -1,19 +1,19 @@ @layer bf.components { - .root { --_height: var(--bf-control-height-md); display: inline-flex; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-2); color: var(--bf-color-content-primary); font-family:var(--bf-font-family-sans); } + .root { --_height: var(--bf-control-height-md); display: inline-flex; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-2); color: var(--bf-color-content-primary); } .root[data-size="sm"] { --_height: var(--bf-control-height-sm); } .root[data-size="lg"] { --_height: var(--bf-control-height-lg); } - .label { font-size: var(--bf-font-size-sm); font-weight: var(--bf-font-weight-medium); } + .label { font-family: var(--bf-type-label-md-font-family); font-size: var(--bf-type-label-md-font-size); font-weight: var(--bf-type-label-md-font-weight); line-height: var(--bf-type-label-md-line-height); letter-spacing: var(--bf-type-label-md-letter-spacing); } .control { display: inline-flex; align-items: stretch; min-inline-size: 0; block-size: var(--_height); overflow: hidden; border: var(--bf-border-width-default) solid var(--bf-color-field-border); border-radius: var(--bf-radius-base); background: var(--bf-color-field-background); transition: border-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), box-shadow var(--bf-motion-duration-fast) var(--bf-motion-easing-standard); } .control:hover { border-color: var(--bf-color-field-border-hover); } .control:focus-within { border-color: var(--bf-color-field-border-focus); box-shadow: 0 0 0 var(--bf-focus-width) var(--bf-color-focus-ring); } - .input { min-inline-size: 0; inline-size: 100%; padding-inline: var(--bf-space-3); border: 0; outline: 0; color: inherit; background: transparent; font: inherit; font-size: var(--bf-font-size-sm); text-align: end; } - .unit { display: inline-flex; align-items: center; padding-inline-end: var(--bf-space-2); color: var(--bf-color-content-muted); font-size: var(--bf-font-size-xs); } + .input { min-inline-size: 0; inline-size: 100%; padding-inline: var(--bf-space-3); border: 0; outline: 0; color: inherit; background: transparent; font-family: var(--bf-type-label-md-font-family); font-size: var(--bf-type-label-md-font-size); font-weight: var(--bf-type-label-md-font-weight); line-height: var(--bf-type-label-md-line-height); letter-spacing: var(--bf-type-label-md-letter-spacing); text-align: end; } + .unit { display: inline-flex; align-items: center; padding-inline-end: var(--bf-space-2); color: var(--bf-color-content-muted); font-family: var(--bf-type-support-font-family); font-size: var(--bf-type-support-font-size); font-weight: var(--bf-type-support-font-weight); line-height: var(--bf-type-support-line-height); letter-spacing: var(--bf-type-support-letter-spacing); } .buttons { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-inline-start: var(--bf-border-width-default) solid var(--bf-color-field-border); } .buttons button { min-inline-size: 22px; padding: 0; border: 0; color: var(--bf-color-content-muted); background: transparent; font: inherit; cursor: pointer; } .buttons button:hover:not(:disabled) { color: var(--bf-color-content-primary); background: var(--bf-color-action-neutral-surface-hover); } .buttons button:disabled, .root[data-disabled="true"] { color: var(--bf-color-content-disabled); cursor: not-allowed; } .root[data-variant="default"] .buttons { grid-template-columns: 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); } - .root[data-variant="default"] .buttons button { min-inline-size: 20px; font-size: var(--bf-font-size-xs); line-height: var(--bf-line-height-none); } + .root[data-variant="default"] .buttons button { min-inline-size: 20px; font-size: var(--bf-type-meta-font-size); line-height: var(--bf-type-meta-line-height); } @media (prefers-reduced-motion: reduce) { .control { transition: none; } } @media (forced-colors: active) { .control { border-color: ButtonText; } .control:focus-within { border-color: Highlight; box-shadow: 0 0 0 var(--bf-focus-width) Highlight; } } } diff --git a/design-system/packages/ui/src/components/PageHeader/PageHeader.meta.ts b/design-system/packages/ui/src/components/PageHeader/PageHeader.meta.ts index b533befb7a..7a26915413 100644 --- a/design-system/packages/ui/src/components/PageHeader/PageHeader.meta.ts +++ b/design-system/packages/ui/src/components/PageHeader/PageHeader.meta.ts @@ -20,14 +20,11 @@ export const pageHeaderMeta = { "color.accent.default", "color.content.primary", "color.content.muted", - "font.family.sans", - "font.size.sm", - "font.size.base", - "font.size.lg", - "font.size.2xl", - "font.size.3xl", - "font.size.4xl", - "font.weight.regular", - "font.weight.semibold", + "type.heading.page.fontSize", + "type.heading.section.fontSize", + "type.heading.display.fontSize", + "type.display.sm.fontSize", + "type.body.lg.fontSize", + "type.body.sm.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/PageHeader/PageHeader.module.css b/design-system/packages/ui/src/components/PageHeader/PageHeader.module.css index eb415fe5b1..429dd70760 100644 --- a/design-system/packages/ui/src/components/PageHeader/PageHeader.module.css +++ b/design-system/packages/ui/src/components/PageHeader/PageHeader.module.css @@ -36,22 +36,35 @@ .heading { margin: 0; color: inherit; - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-2xl); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-heading-page-font-family); + font-size: var(--bf-type-heading-page-font-size); + font-weight: var(--bf-type-heading-page-font-weight); + line-height: var(--bf-type-heading-page-line-height); + letter-spacing: var(--bf-type-heading-page-letter-spacing); } .root[data-size="sm"] .heading { - font-size: var(--bf-font-size-lg); + font-family: var(--bf-type-heading-section-font-family); + font-size: var(--bf-type-heading-section-font-size); + font-weight: var(--bf-type-heading-section-font-weight); + line-height: var(--bf-type-heading-section-line-height); + letter-spacing: var(--bf-type-heading-section-letter-spacing); } .root[data-size="lg"] .heading { - font-size: var(--bf-font-size-3xl); + font-family: var(--bf-type-heading-display-font-family); + font-size: var(--bf-type-heading-display-font-size); + font-weight: var(--bf-type-heading-display-font-weight); + line-height: var(--bf-type-heading-display-line-height); + letter-spacing: var(--bf-type-heading-display-letter-spacing); } .root[data-size="display"] .heading { - font-size: var(--bf-font-size-4xl); + font-family: var(--bf-type-display-sm-font-family); + font-size: var(--bf-type-display-sm-font-size); + font-weight: var(--bf-type-display-sm-font-weight); + line-height: var(--bf-type-display-sm-line-height); + letter-spacing: var(--bf-type-display-sm-letter-spacing); } .required { @@ -61,14 +74,19 @@ .description { color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-base); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-lg-font-family); + font-size: var(--bf-type-body-lg-font-size); + font-weight: var(--bf-type-body-lg-font-weight); + line-height: var(--bf-type-body-lg-line-height); + letter-spacing: var(--bf-type-body-lg-letter-spacing); } .root[data-size="sm"] .description { - font-size: var(--bf-font-size-sm); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); } .action { diff --git a/design-system/packages/ui/src/components/Radio/Radio.module.css b/design-system/packages/ui/src/components/Radio/Radio.module.css index b6e146e8ea..25c003fcdf 100644 --- a/design-system/packages/ui/src/components/Radio/Radio.module.css +++ b/design-system/packages/ui/src/components/Radio/Radio.module.css @@ -7,7 +7,6 @@ align-items: flex-start; gap: var(--bf-space-2); color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); cursor: pointer; } @@ -99,15 +98,20 @@ } .label { - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); } .description { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-support-font-family); + font-size: var(--bf-type-support-font-size); + font-weight: var(--bf-type-support-font-weight); + line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); } @media (prefers-reduced-motion: reduce) { diff --git a/design-system/packages/ui/src/components/SearchField/SearchField.meta.ts b/design-system/packages/ui/src/components/SearchField/SearchField.meta.ts index 8d4088bf3c..7efa01f9dd 100644 --- a/design-system/packages/ui/src/components/SearchField/SearchField.meta.ts +++ b/design-system/packages/ui/src/components/SearchField/SearchField.meta.ts @@ -35,9 +35,8 @@ export const searchFieldMeta = { "control.height.sm", "control.height.md", "control.height.lg", - "font.family.control", - "font.size.xs", - "font.size.sm", + "type.label.md.fontSize", + "type.meta.fontSize", "radius.pill", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/SearchField/SearchField.module.css b/design-system/packages/ui/src/components/SearchField/SearchField.module.css index e67a6265c2..195924aa35 100644 --- a/design-system/packages/ui/src/components/SearchField/SearchField.module.css +++ b/design-system/packages/ui/src/components/SearchField/SearchField.module.css @@ -26,9 +26,11 @@ justify-content: center; min-inline-size: 0; color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-xs); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-meta-font-family); + font-size: var(--bf-type-meta-font-size); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.meta.ts b/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.meta.ts index f3f795be61..7b46b613f4 100644 --- a/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.meta.ts +++ b/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.meta.ts @@ -31,9 +31,7 @@ export const segmentedControlMeta = { "control.segmentedControl.segmentGap", "control.segmentedControl.segmentRadius", "control.segmentedControl.iconSize", - "type.meta.fontSize", - "font.family.control", - "font.weight.regular", - "font.weight.medium", + "type.label.md.fontSize", + "type.label.selected.fontWeight", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.module.css b/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.module.css index b665a46160..fa01d5f5b2 100644 --- a/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.module.css +++ b/design-system/packages/ui/src/components/SegmentedControl/SegmentedControl.module.css @@ -30,10 +30,11 @@ border-radius: var(--bf-control-segmented-control-segment-radius); color: var(--bf-color-action-neutral-content); background: transparent; - font-family:var(--bf-font-family-sans); - font-size: var(--bf-type-meta-font-size); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); white-space: nowrap; cursor: pointer; transition: @@ -44,7 +45,7 @@ .segment[aria-checked="true"] { color: var(--bf-color-content-primary); background: var(--bf-color-surface-raised); - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-selected-font-weight); } .segment:hover:not(:disabled)[aria-checked="false"], @@ -85,7 +86,7 @@ .label { min-inline-size: 0; - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-sm-line-height); overflow: hidden; text-overflow: ellipsis; } diff --git a/design-system/packages/ui/src/components/Select/Select.meta.ts b/design-system/packages/ui/src/components/Select/Select.meta.ts index 925b36fe63..39617b8b01 100644 --- a/design-system/packages/ui/src/components/Select/Select.meta.ts +++ b/design-system/packages/ui/src/components/Select/Select.meta.ts @@ -37,8 +37,6 @@ export const selectMeta = { "control.select.contentGap", "control.select.indicatorSize", "control.select.radius", - "font.family.control", - "font.size.sm", - "font.weight.regular", + "type.label.md.fontSize", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Select/Select.module.css b/design-system/packages/ui/src/components/Select/Select.module.css index a20d4878d2..f2a8d074eb 100644 --- a/design-system/packages/ui/src/components/Select/Select.module.css +++ b/design-system/packages/ui/src/components/Select/Select.module.css @@ -53,10 +53,11 @@ outline: 0; color: inherit; background: var(--bf-color-field-background); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + line-height: var(--bf-type-label-md-line-height); + letter-spacing: var(--bf-type-label-md-letter-spacing); appearance: none; cursor: pointer; transition: diff --git a/design-system/packages/ui/src/components/Spinner/Spinner.module.css b/design-system/packages/ui/src/components/Spinner/Spinner.module.css index b7c2c62889..44a266ba6a 100644 --- a/design-system/packages/ui/src/components/Spinner/Spinner.module.css +++ b/design-system/packages/ui/src/components/Spinner/Spinner.module.css @@ -62,12 +62,12 @@ align-items: center; justify-content: center; gap: 0.2em; - font-size: var(--bf-font-size-2xl); + font-size: var(--bf-type-flow-section-title-font-size); } - .root[data-variant="bars"][data-size="xs"] { font-size: var(--bf-font-size-meta); } - .root[data-variant="bars"][data-size="sm"] { font-size: var(--bf-font-size-base); } - .root[data-variant="bars"][data-size="lg"] { font-size: var(--bf-font-size-3xl); } + .root[data-variant="bars"][data-size="xs"] { font-size: var(--bf-type-support-font-size); } + .root[data-variant="bars"][data-size="sm"] { font-size: var(--bf-type-body-md-font-size); } + .root[data-variant="bars"][data-size="lg"] { font-size: var(--bf-type-flow-page-title-font-size); } .root[data-variant="bars"] .cell { inline-size: 0.22em; diff --git a/design-system/packages/ui/src/components/StatusPill/StatusPill.meta.ts b/design-system/packages/ui/src/components/StatusPill/StatusPill.meta.ts index 182e9ffa15..7e4a865c71 100644 --- a/design-system/packages/ui/src/components/StatusPill/StatusPill.meta.ts +++ b/design-system/packages/ui/src/components/StatusPill/StatusPill.meta.ts @@ -29,7 +29,5 @@ export const statusPillMeta = { "control.statusPill.radius", "control.statusPill.iconSize", "type.meta.fontSize", - "font.family.control", - "font.weight.regular", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/StatusPill/StatusPill.module.css b/design-system/packages/ui/src/components/StatusPill/StatusPill.module.css index 924c199d37..f0e6a4f03a 100644 --- a/design-system/packages/ui/src/components/StatusPill/StatusPill.module.css +++ b/design-system/packages/ui/src/components/StatusPill/StatusPill.module.css @@ -15,10 +15,11 @@ border-radius: var(--bf-control-status-pill-radius); color: var(--bf-color-status-success-content); background: var(--bf-color-status-success-surface); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-meta-font-family); font-size: var(--bf-type-meta-font-size); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-tight); + font-weight: var(--bf-type-meta-font-weight); + line-height: var(--bf-type-meta-line-height); + letter-spacing: var(--bf-type-meta-letter-spacing); white-space: nowrap; } diff --git a/design-system/packages/ui/src/components/TabGroup/TabGroup.meta.ts b/design-system/packages/ui/src/components/TabGroup/TabGroup.meta.ts index 53b4baa045..059649056e 100644 --- a/design-system/packages/ui/src/components/TabGroup/TabGroup.meta.ts +++ b/design-system/packages/ui/src/components/TabGroup/TabGroup.meta.ts @@ -28,10 +28,9 @@ export const tabGroupMeta = { "control.tabGroup.itemActionSize", "control.tabGroup.itemActionInset", "control.tabGroup.itemRadius", - "font.family.control", - "font.size.sm", - "font.weight.regular", - "font.weight.semibold", + "type.label.md.fontSize", + "type.label.selected.fontWeight", + "type.body.sm.lineHeight", "radius.pill", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/TabGroup/TabGroup.module.css b/design-system/packages/ui/src/components/TabGroup/TabGroup.module.css index 6be393354e..790b045b45 100644 --- a/design-system/packages/ui/src/components/TabGroup/TabGroup.module.css +++ b/design-system/packages/ui/src/components/TabGroup/TabGroup.module.css @@ -31,11 +31,11 @@ border-radius: var(--bf-control-tab-group-item-radius); color: var(--_tab-content); background: var(--_tab-background); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - letter-spacing: var(--bf-letter-spacing-normal); - line-height: var(--bf-line-height-tight); + font-family: var(--bf-type-label-md-font-family); + font-size: var(--bf-type-label-md-font-size); + font-weight: var(--bf-type-label-md-font-weight); + letter-spacing: var(--bf-type-label-md-letter-spacing); + line-height: var(--bf-type-label-md-line-height); white-space: nowrap; cursor: pointer; transition: @@ -57,7 +57,7 @@ --_tab-background-hover: var(--bf-color-action-neutral-surface-hover); --_tab-border: transparent; - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .tab:hover:not(:disabled), @@ -69,7 +69,7 @@ .tab:active:not(:disabled), .tabGroup[data-bf-preview-state="active"] .tab[aria-selected="false"]:not(:disabled) { background: var(--_tab-background-active); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .tab:focus-visible { @@ -102,7 +102,7 @@ .label { min-inline-size: 0; - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-sm-line-height); overflow: hidden; text-overflow: ellipsis; } diff --git a/design-system/packages/ui/src/components/Textarea/Textarea.meta.ts b/design-system/packages/ui/src/components/Textarea/Textarea.meta.ts index cf54844c2d..304bf0bd90 100644 --- a/design-system/packages/ui/src/components/Textarea/Textarea.meta.ts +++ b/design-system/packages/ui/src/components/Textarea/Textarea.meta.ts @@ -11,5 +11,5 @@ export const textareaMeta = { { name: "autoResize", type: "boolean", defaultValue: "false" }, { name: "showCount", type: "boolean", defaultValue: "false" }, ], states: ["default", "hover", "focus-visible", "invalid", "disabled"], - tokens: ["color.content.primary", "color.content.muted", "color.content.disabled", "color.field.background", "color.field.border", "color.field.borderFocus", "color.focus.ring", "color.status.danger.border"], + tokens: ["color.content.primary", "color.content.muted", "color.content.disabled", "color.field.background", "color.field.border", "color.field.borderFocus", "color.focus.ring", "color.status.danger.border", "type.label.md.fontSize", "type.body.sm.fontSize", "type.support.fontSize", "type.code.md.fontSize"], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Textarea/Textarea.module.css b/design-system/packages/ui/src/components/Textarea/Textarea.module.css index 9387d60df7..e266af2cb8 100644 --- a/design-system/packages/ui/src/components/Textarea/Textarea.module.css +++ b/design-system/packages/ui/src/components/Textarea/Textarea.module.css @@ -1,7 +1,7 @@ @layer bf.components { - .root { display: inline-flex; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-2); color: var(--bf-color-content-primary); font-family:var(--bf-font-family-sans); } + .root { display: inline-flex; min-inline-size: 0; flex-direction: column; gap: var(--bf-space-2); color: var(--bf-color-content-primary); } .root[data-layout="fill"] { flex: 1 1 auto; min-block-size: 0; } - .label { font-size: var(--bf-font-size-sm); font-weight: var(--bf-font-weight-medium); line-height: var(--bf-line-height-tight); } + .label { font-family: var(--bf-type-label-md-font-family); font-size: var(--bf-type-label-md-font-size); font-weight: var(--bf-type-label-md-font-weight); line-height: var(--bf-type-label-md-line-height); letter-spacing: var(--bf-type-label-md-letter-spacing); } .required, .error { color: var(--bf-color-status-danger-content); } .textarea { min-block-size: calc(var(--bf-control-height-lg) * 2); @@ -15,13 +15,15 @@ caret-color: var(--bf-color-accent-default); color: var(--bf-color-content-primary); background: var(--bf-color-field-background); - font: inherit; - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family: var(--bf-type-body-sm-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-sm-font-weight); + line-height: var(--bf-type-body-sm-line-height); + letter-spacing: var(--bf-type-body-sm-letter-spacing); transition: background-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), border-color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard), box-shadow var(--bf-motion-duration-fast) var(--bf-motion-easing-standard); } .root[data-auto-resize="true"] .textarea { overflow: hidden; resize: none; } - .root[data-font="mono"] .textarea { font-family: var(--bf-font-family-mono); } + .root[data-font="mono"] .textarea { font-family: var(--bf-type-code-md-font-family); font-size: var(--bf-type-code-md-font-size); font-weight: var(--bf-type-code-md-font-weight); line-height: var(--bf-type-code-md-line-height); letter-spacing: var(--bf-type-code-md-letter-spacing); } .root[data-layout="fill"] .textarea { flex: 1 1 auto; min-block-size: 0; } .root[data-resize="none"] .textarea { resize: none; } .root[data-variant="filled"] .textarea { border-color: transparent; } @@ -30,7 +32,7 @@ .root[data-invalid="true"] .textarea { border-color: var(--bf-color-status-danger-border); } .textarea:disabled { color: var(--bf-color-content-disabled); cursor: not-allowed; } .textarea::placeholder, .hint, .count { color: var(--bf-color-content-muted); } - .support { display: flex; justify-content: space-between; gap: var(--bf-space-3); font-size: var(--bf-font-size-xs); line-height: var(--bf-line-height-tight); } + .support { display: flex; justify-content: space-between; gap: var(--bf-space-3); font-family: var(--bf-type-support-font-family); font-size: var(--bf-type-support-font-size); font-weight: var(--bf-type-support-font-weight); line-height: var(--bf-type-support-line-height); letter-spacing: var(--bf-type-support-letter-spacing); } .count { margin-inline-start: auto; white-space: nowrap; } @media (prefers-reduced-motion: reduce) { .textarea { transition: none; } } @media (forced-colors: active) { .textarea { border-color: ButtonText; } .textarea:focus { border-color: Highlight; box-shadow: 0 0 0 var(--bf-focus-width) Highlight; } } diff --git a/design-system/packages/ui/src/components/Toolbar/Toolbar.meta.ts b/design-system/packages/ui/src/components/Toolbar/Toolbar.meta.ts index a4bbaaa3f5..453a41f7aa 100644 --- a/design-system/packages/ui/src/components/Toolbar/Toolbar.meta.ts +++ b/design-system/packages/ui/src/components/Toolbar/Toolbar.meta.ts @@ -35,8 +35,6 @@ export const toolbarMeta = { "type.meta.fontSize", "layout.toolbar.separatorBlockSize", "layout.toolbar.overflowFadeExtent", - "font.family.control", - "font.weight.medium", "radius.pill", ], } as const satisfies ComponentMeta; diff --git a/design-system/packages/ui/src/components/Tooltip/Tooltip.meta.ts b/design-system/packages/ui/src/components/Tooltip/Tooltip.meta.ts index 8f81b7512c..e7a5c8e334 100644 --- a/design-system/packages/ui/src/components/Tooltip/Tooltip.meta.ts +++ b/design-system/packages/ui/src/components/Tooltip/Tooltip.meta.ts @@ -23,8 +23,6 @@ export const tooltipMeta = { "color.border.subtle", "color.border.default", "color.border.strong", - "font.family.sans", - "font.weight.regular", "shadow.sm", "overlay.tooltip.maxInlineSize", "overlay.tooltip.maxBlockSize", diff --git a/design-system/packages/ui/src/components/Tooltip/Tooltip.module.css b/design-system/packages/ui/src/components/Tooltip/Tooltip.module.css index f2ce60cccf..dd52be8baf 100644 --- a/design-system/packages/ui/src/components/Tooltip/Tooltip.module.css +++ b/design-system/packages/ui/src/components/Tooltip/Tooltip.module.css @@ -41,10 +41,11 @@ border-radius: var(--bf-overlay-tooltip-surface-radius); background: color-mix(in srgb, var(--bf-color-surface-raised) 96%, transparent); color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); + font-family: var(--bf-type-support-font-family); font-size: var(--bf-type-support-font-size); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-weight: var(--bf-type-support-font-weight); + line-height: var(--bf-type-support-line-height); + letter-spacing: var(--bf-type-support-letter-spacing); overflow-wrap: break-word; user-select: text; box-shadow: var(--bf-shadow-sm); diff --git a/design-system/packages/ui/src/flow-chat/ask-user/AskUser.module.css b/design-system/packages/ui/src/flow-chat/ask-user/AskUser.module.css index 91a32c8d71..d87525025d 100644 --- a/design-system/packages/ui/src/flow-chat/ask-user/AskUser.module.css +++ b/design-system/packages/ui/src/flow-chat/ask-user/AskUser.module.css @@ -10,8 +10,8 @@ background: var(--bf-color-surface-panel); box-shadow: none; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); - line-height: var(--bf-line-height-tight); + font-family:var(--bf-type-body-md-font-family); + line-height: var(--bf-type-heading-page-line-height); } .header, @@ -29,8 +29,8 @@ padding-block: var(--bf-control-ask-user-summary-padding-block); padding-inline: var(--bf-control-ask-user-summary-padding-inline-start); border-block-end: var(--bf-border-width-default) solid var(--bf-color-border-subtle); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .summaryButton { @@ -70,9 +70,9 @@ .summaryCopy { flex: 1 1 auto; gap: var(--bf-space-1); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); + line-height: var(--bf-type-heading-page-line-height); } .summaryIcon, @@ -175,9 +175,9 @@ inline-size: 100%; padding-inline: var(--bf-control-ask-user-question-padding-inline); color: var(--bf-color-action-neutral-content); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); - line-height: var(--bf-line-height-tight); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + line-height: var(--bf-type-heading-page-line-height); } .options { @@ -252,15 +252,15 @@ .optionLabel, .optionDescription { - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .optionLabel { flex: 0 1 auto; min-inline-size: 0; color: var(--bf-color-action-neutral-content); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-tight); + font-weight: var(--bf-type-label-lg-font-weight); + line-height: var(--bf-type-heading-page-line-height); } .optionDescription { @@ -269,7 +269,7 @@ max-inline-size: var(--bf-control-ask-user-description-max-width); min-inline-size: 0; color: var(--bf-color-content-muted); - font-weight: var(--bf-font-weight-regular); + font-weight: var(--bf-type-body-md-font-weight); line-height: var(--bf-type-body-sm-line-height); text-align: end; text-overflow: ellipsis; @@ -322,9 +322,9 @@ } .statusText { - font-size: var(--bf-font-size-xs); - font-weight: var(--bf-font-weight-medium); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-xs-font-size); + font-weight: var(--bf-type-label-lg-font-weight); + line-height: var(--bf-type-body-md-line-height); } .root[data-bf-state="asking"] .statusIcon, diff --git a/design-system/packages/ui/src/flow-chat/composer/ChatComposer.module.css b/design-system/packages/ui/src/flow-chat/composer/ChatComposer.module.css index 5c197980d9..ddcd8fec9d 100644 --- a/design-system/packages/ui/src/flow-chat/composer/ChatComposer.module.css +++ b/design-system/packages/ui/src/flow-chat/composer/ChatComposer.module.css @@ -7,7 +7,7 @@ border-radius: var(--bf-radius-2xl); color: var(--bf-color-content-primary); background: transparent; - font-family:var(--bf-font-family-sans); + font-family:var(--bf-type-body-md-font-family); } .root[data-has-context="true"] { @@ -133,9 +133,9 @@ align-self: stretch; align-items: center; padding: var(--bf-space-1); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-md-font-weight); + line-height: var(--bf-type-body-md-line-height); } .surface[data-bf-layout="expanded"] .content { diff --git a/design-system/packages/ui/src/flow-chat/composer/ChatComposerQueue.module.css b/design-system/packages/ui/src/flow-chat/composer/ChatComposerQueue.module.css index 52ebbe49c6..f5a535a850 100644 --- a/design-system/packages/ui/src/flow-chat/composer/ChatComposerQueue.module.css +++ b/design-system/packages/ui/src/flow-chat/composer/ChatComposerQueue.module.css @@ -11,7 +11,7 @@ border-radius: var(--bf-radius-lg); color: var(--bf-color-content-primary); background: var(--bf-color-surface-subtle); - font-family:var(--bf-font-family-sans); + font-family:var(--bf-type-body-md-font-family); } .header { @@ -20,9 +20,9 @@ align-items: center; gap: var(--bf-space-1); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-body-md-font-weight); + line-height: var(--bf-type-body-md-line-height); } .header > :where(svg, img) { @@ -105,9 +105,9 @@ flex-direction: column; gap: var(--bf-space-1); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-base); - font-weight: var(--bf-font-weight-regular); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-md-font-size); + font-weight: var(--bf-type-body-md-font-weight); + line-height: var(--bf-type-body-md-line-height); transition: color var(--bf-motion-duration-fast) var(--bf-motion-easing-standard); } @@ -127,10 +127,10 @@ border-radius: var(--bf-radius-pill); color: var(--bf-color-content-secondary); background: var(--bf-color-surface-raised); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); font-variant-numeric: tabular-nums; - line-height: var(--bf-line-height-none); + line-height: var(--bf-type-modifier-leading-none-line-height); } .actions { diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/CommandToolCard.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/CommandToolCard.module.css index 366f6d0bde..9c4fc5330e 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/CommandToolCard.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/CommandToolCard.module.css @@ -13,9 +13,9 @@ border-radius: 0; color: var(--bf-color-content-secondary); background: transparent; - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); text-overflow: ellipsis; white-space: nowrap; } @@ -23,7 +23,7 @@ .command[data-empty="true"] { color: var(--bf-color-content-muted); font-style: italic; - font-weight: var(--bf-font-weight-regular); + font-weight: var(--bf-type-body-md-font-weight); } .statusSummary { @@ -32,7 +32,7 @@ align-items: center; gap: var(--bf-space-1); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .statusLabel { @@ -42,8 +42,8 @@ padding-inline: var(--bf-space-2); border-radius: var(--bf-radius-sm); background: var(--bf-color-action-neutral-surface); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); white-space: nowrap; } @@ -116,7 +116,7 @@ justify-content: center; padding: var(--bf-space-3); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); font-style: italic; text-align: center; } @@ -149,7 +149,7 @@ border-radius: var(--bf-radius-sm); color: var(--bf-color-content-muted); background: var(--bf-color-surface-raised); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .footerItem { @@ -170,8 +170,8 @@ .footerLabel { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); } .footerValue { @@ -181,7 +181,7 @@ } .footerItem[data-monospace="true"] .footerValue { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .footerItem[data-tone="success"] .footerValue { @@ -198,8 +198,8 @@ .error { color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/ContextCompressionToolCard.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/ContextCompressionToolCard.module.css index d213f65200..9be73ab281 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/ContextCompressionToolCard.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/ContextCompressionToolCard.module.css @@ -9,13 +9,13 @@ overflow: hidden; min-inline-size: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } .summary { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); font-variant-numeric: tabular-nums; } @@ -25,8 +25,8 @@ } .error { - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; color: var(--bf-color-status-danger-content); diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/FileOperationToolCard.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/FileOperationToolCard.module.css index 1467267aca..c741a16671 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/FileOperationToolCard.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/FileOperationToolCard.module.css @@ -8,8 +8,8 @@ overflow: hidden; min-inline-size: 0; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -36,7 +36,7 @@ border-radius: var(--bf-radius-sm); color: var(--bf-color-content-muted); background: var(--bf-color-action-neutral-surface); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); white-space: nowrap; } @@ -56,8 +56,8 @@ flex-direction: column; gap: var(--bf-space-2); color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .error[data-guidance="true"] { @@ -68,7 +68,7 @@ display: inline-flex; align-items: center; gap: var(--bf-space-2); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .errorMessage { diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/FlowChatToolCard.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/FlowChatToolCard.module.css index a74901e09c..882dd8beb7 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/FlowChatToolCard.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/FlowChatToolCard.module.css @@ -11,7 +11,7 @@ min-inline-size: 0; flex-direction: column; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-sans); + font-family:var(--bf-type-body-md-font-family); } .prominentRoot { @@ -68,26 +68,26 @@ gap: var(--bf-space-2); padding-block: var(--bf-space-1); padding-inline: var(--bf-space-3) var(--bf-space-1); - line-height: var(--bf-line-height-tight); + line-height: var(--bf-type-heading-page-line-height); } .actionLabel, .content, .extra { - font-size: var(--bf-font-size-base); + font-size: var(--bf-type-body-md-font-size); } .ambientAction, .ambientContent, .ambientExtra { min-inline-size: 0; - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .actionLabel { flex: 0 0 auto; color: var(--bf-color-content-primary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); white-space: nowrap; } @@ -98,7 +98,7 @@ align-items: center; gap: var(--bf-space-2); color: var(--bf-color-content-secondary); - font-weight: var(--bf-font-weight-regular); + font-weight: var(--bf-type-body-md-font-weight); text-overflow: ellipsis; white-space: nowrap; } @@ -121,7 +121,7 @@ gap: var(--bf-space-1); margin-inline-start: auto; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .changeSummary { @@ -130,10 +130,10 @@ align-items: center; gap: var(--bf-space-1); color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); font-variant-numeric: tabular-nums; - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); white-space: nowrap; } @@ -380,8 +380,8 @@ padding: var(--bf-space-3); border-block-start: var(--bf-border-width-default) solid var(--bf-color-border-subtle); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .error { @@ -391,7 +391,7 @@ .ambientRoot { gap: 0; color: var(--bf-color-content-muted); - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-md-line-height); } .ambientRoot[data-bf-direct-action="true"] { @@ -438,7 +438,7 @@ .ambientAction { flex: 0 0 auto; color: inherit; - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-lg-font-weight); white-space: nowrap; } @@ -446,7 +446,7 @@ overflow: hidden; flex: 1 1 auto; color: inherit; - font-weight: var(--bf-font-weight-regular); + font-weight: var(--bf-type-body-md-font-weight); text-overflow: ellipsis; white-space: nowrap; } diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/ProminentToolCards.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/ProminentToolCards.module.css index fc9120e315..3984483d8d 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/ProminentToolCards.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/ProminentToolCards.module.css @@ -4,8 +4,8 @@ min-inline-size: 0; overflow: hidden; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -17,7 +17,7 @@ align-items: center; gap: var(--bf-space-1); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .summary { @@ -50,9 +50,9 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-canvas); color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } @@ -66,10 +66,10 @@ .outputLabel, .sectionLabel { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); text-transform: uppercase; - letter-spacing: var(--bf-letter-spacing-wider); + letter-spacing: var(--bf-type-modifier-tracking-wider-letter-spacing); } .outputGroup[data-tone="warning"] .outputBlock { @@ -92,7 +92,7 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-raised); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .footerItem { @@ -107,7 +107,7 @@ } .footerLabel { - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .footerValue { @@ -119,7 +119,7 @@ } .footerItem[data-monospace="true"] .footerValue { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .footerItem[data-tone="success"] .footerValue { @@ -132,8 +132,8 @@ .error { color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } @@ -141,8 +141,8 @@ .errorMeta { margin-block-start: var(--bf-space-2); color: var(--bf-color-content-muted); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); } .diffPath { @@ -150,8 +150,8 @@ overflow: hidden; min-inline-size: 0; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); text-overflow: ellipsis; white-space: nowrap; } @@ -167,7 +167,7 @@ padding-block-end: var(--bf-space-2); border-block-end: 1px solid var(--bf-color-border-subtle); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .reviewDetails, @@ -181,8 +181,8 @@ .reviewSummary { margin: 0; color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .fileList { @@ -191,9 +191,9 @@ margin: 0; padding-inline-start: var(--bf-space-4); color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } .actions { @@ -209,12 +209,12 @@ grid-template-columns: minmax(6rem, auto) minmax(0, 1fr); gap: var(--bf-space-2); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .fieldLabel { color: var(--bf-color-content-muted); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .fieldValue { @@ -223,7 +223,7 @@ } .field[data-monospace="true"] .fieldValue { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .agentHeader { @@ -276,13 +276,13 @@ } .agentName { - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-medium); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-lg-font-weight); } .agentStatus { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .agentStatus[data-tone="success"] { @@ -323,8 +323,8 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-canvas); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); } @media (prefers-reduced-motion: reduce) { diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/SearchResultsToolCards.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/SearchResultsToolCards.module.css index c20dec4651..644b0b7fbc 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/SearchResultsToolCards.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/SearchResultsToolCards.module.css @@ -15,13 +15,13 @@ align-items: baseline; gap: var(--bf-space-1); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .detailLabel { flex: 0 0 auto; color: var(--bf-color-content-secondary); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .detailValue { @@ -30,7 +30,7 @@ } .detail[data-monospace="true"] .detailValue { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .results { @@ -49,7 +49,7 @@ gap: var(--bf-space-2); padding-block: var(--bf-space-2); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .result + .result { @@ -79,7 +79,7 @@ min-inline-size: 0; color: var(--bf-color-content-primary); font: inherit; - font-weight: var(--bf-font-weight-medium); + font-weight: var(--bf-type-label-lg-font-weight); text-align: start; overflow-wrap: anywhere; } @@ -102,13 +102,13 @@ .resultUrl, .resultMeta { color: var(--bf-color-content-muted); - line-height: var(--bf-line-height-base); + line-height: var(--bf-type-body-md-line-height); overflow-wrap: anywhere; } .resultUrl { - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-xs); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-xs-font-size); } .resultMeta { @@ -120,9 +120,9 @@ margin: 0; overflow: auto; color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } @@ -130,7 +130,7 @@ .overflowLabel { padding-block: var(--bf-space-2); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); font-style: italic; text-align: center; } diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/SessionToolCards.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/SessionToolCards.module.css index 9fad85de87..bfe894a38c 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/SessionToolCards.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/SessionToolCards.module.css @@ -12,13 +12,13 @@ grid-template-columns: minmax(7rem, auto) minmax(0, 1fr); gap: var(--bf-space-2); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .fieldLabel, .sectionLabel { color: var(--bf-color-content-muted); - font-weight: var(--bf-font-weight-semibold); + font-weight: var(--bf-type-label-selected-font-weight); } .fieldValue { @@ -27,7 +27,7 @@ } .field[data-monospace="true"] .fieldValue { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .sessionList { @@ -45,13 +45,13 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-raised); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .sessionId { overflow-wrap: anywhere; color: var(--bf-color-content-primary); - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); } .sessionName { @@ -84,21 +84,21 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-raised); color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } .empty { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .error { color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); white-space: pre-wrap; overflow-wrap: anywhere; } diff --git a/design-system/packages/ui/src/flow-chat/tool-cards/StandardAmbientToolCards.module.css b/design-system/packages/ui/src/flow-chat/tool-cards/StandardAmbientToolCards.module.css index c4c919b1a0..b7d7308693 100644 --- a/design-system/packages/ui/src/flow-chat/tool-cards/StandardAmbientToolCards.module.css +++ b/design-system/packages/ui/src/flow-chat/tool-cards/StandardAmbientToolCards.module.css @@ -15,16 +15,16 @@ .sectionLabel { color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); - font-weight: var(--bf-font-weight-semibold); - letter-spacing: var(--bf-letter-spacing-wider); + font-size: var(--bf-type-body-sm-font-size); + font-weight: var(--bf-type-label-selected-font-weight); + letter-spacing: var(--bf-type-modifier-tracking-wider-letter-spacing); text-transform: uppercase; } .error { color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } @@ -40,9 +40,9 @@ border-radius: var(--bf-radius-sm); background: var(--bf-color-surface-canvas); color: var(--bf-color-content-secondary); - font-family:var(--bf-font-family-mono); - font-size: var(--bf-font-size-sm); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-code-md-font-family); + font-size: var(--bf-type-body-sm-font-size); + line-height: var(--bf-type-body-md-line-height); white-space: pre-wrap; overflow-wrap: anywhere; } @@ -67,18 +67,18 @@ border-radius: var(--bf-radius-pill); background: var(--bf-color-surface-raised); color: var(--bf-color-content-secondary); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .metaLabel { - font-family:var(--bf-font-family-mono); - font-weight: var(--bf-font-weight-semibold); + font-family:var(--bf-type-code-md-font-family); + font-weight: var(--bf-type-label-selected-font-weight); } .metaDescription { min-inline-size: 0; color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .fetchTitle { @@ -107,7 +107,7 @@ color: var(--bf-color-action-primary-content); background: transparent; font: inherit; - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); text-align: start; cursor: pointer; } @@ -182,7 +182,7 @@ inline-size: 100%; padding: var(--bf-space-3); color: var(--bf-color-status-danger-content); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); text-align: center; } @@ -215,7 +215,7 @@ align-items: center; gap: var(--bf-space-2); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .todoCompactIcon { @@ -230,7 +230,7 @@ } .todoCompactMeta { - font-family:var(--bf-font-family-mono); + font-family:var(--bf-type-code-md-font-family); white-space: nowrap; } @@ -264,7 +264,7 @@ gap: var(--bf-space-2); padding-block: var(--bf-space-2); color: var(--bf-color-content-muted); - font-size: var(--bf-font-size-sm); + font-size: var(--bf-type-body-sm-font-size); } .todoItem + .todoItem { diff --git a/design-system/packages/ui/src/primitives/ThemeRoot/ThemeRoot.module.css b/design-system/packages/ui/src/primitives/ThemeRoot/ThemeRoot.module.css index 75097d917c..164f2dd4ab 100644 --- a/design-system/packages/ui/src/primitives/ThemeRoot/ThemeRoot.module.css +++ b/design-system/packages/ui/src/primitives/ThemeRoot/ThemeRoot.module.css @@ -3,9 +3,9 @@ min-inline-size: 0; color: var(--bf-color-content-primary); background: var(--bf-color-surface-canvas); - font-family:var(--bf-font-family-sans); - font-size: var(--bf-font-size-base); - line-height: var(--bf-line-height-base); + font-family:var(--bf-type-body-md-font-family); + font-size: var(--bf-type-body-md-font-size); + line-height: var(--bf-type-body-md-line-height); } .root[data-color-scheme="light"] { diff --git a/design-system/packages/ui/tests/ask-user.test.mjs b/design-system/packages/ui/tests/ask-user.test.mjs index d86c250b06..9a0fd4f51b 100644 --- a/design-system/packages/ui/tests/ask-user.test.mjs +++ b/design-system/packages/ui/tests/ask-user.test.mjs @@ -83,7 +83,7 @@ test("AskUser styles use public semantic and component geometry tokens", async ( assert.match(styles, /--bf-color-action-neutral-content/); assert.match(styles, /--bf-color-content-muted/); assert.match(styles, /--bf-color-status-success-content/); - assert.match(styles, /--bf-line-height-tight/); + assert.match(styles, /--bf-type-heading-page-line-height/); assert.match( styles, /circle:nth-of-type\(2\)\s*\{\s*fill:\s*currentColor/, diff --git a/design-system/packages/ui/tests/button.test.mjs b/design-system/packages/ui/tests/button.test.mjs index 88b366e000..b050c45eae 100644 --- a/design-system/packages/ui/tests/button.test.mjs +++ b/design-system/packages/ui/tests/button.test.mjs @@ -90,14 +90,14 @@ test("primary and text variants expose semantic emphasis without changing button test("Button owns the reference pill geometry and typography", async () => { const styles = await readFile(new URL("../dist/styles.css", import.meta.url), "utf8"); - assert.match(styles, /letter-spacing:var\(--bf-letter-spacing-normal\)/); + assert.match(styles, /letter-spacing:var\(--bf-type-label-md-letter-spacing\)/); assert.match(styles, /border-radius:var\(--bf-radius-pill\)/); assert.match(styles, /--_button-height:\s*var\(--bf-control-height-md\)/); assert.match(styles, /--_button-leading-icon-size:\s*16px/); assert.match(styles, /--_button-trailing-icon-size:\s*14px/); - assert.match(styles, /--_button-font-size:\s*var\(--bf-font-size-sm\)/); - assert.match(styles, /font-family:var\(--bf-font-family-sans\)/); - assert.match(styles, /font-weight:var\(--bf-font-weight-regular\)/); + assert.match(styles, /--_button-font-size:\s*var\(--bf-type-label-md-font-size\)/); + assert.match(styles, /font-family:var\(--bf-type-label-md-font-family\)/); + assert.match(styles, /font-weight:var\(--bf-type-label-md-font-weight\)/); assert.match(styles, /padding-block:var\(--_button-padding-block\)/); assert.match(styles, /padding-inline:var\(--_button-padding-inline\)/); assert.match(styles, /--_button-padding-inline:\s*var\(--bf-space-5\)/); @@ -155,8 +155,8 @@ test("real and preview active states share the semibold component rule", async ( styles, /:is\(:active,\s*\[data-bf-preview-state=(?:"active"|active)\]\):not\(:disabled\)/, ); - assert.match(styles, /font-weight:\s*var\(--bf-font-weight-semibold\)/); - assert.equal((styles.match(/--bf-font-weight-semibold/g) ?? []).length, 1); + assert.match(styles, /font-weight:\s*var\(--bf-type-label-selected-font-weight\)/); + assert.equal((styles.match(/--bf-type-label-selected-font-weight/g) ?? []).length, 1); }); test("fill uses neutral semantic state colors and icons inherit content color", async () => { diff --git a/design-system/packages/ui/tests/confirm-dialog.test.mjs b/design-system/packages/ui/tests/confirm-dialog.test.mjs index 49ee8345cd..7b9648d286 100644 --- a/design-system/packages/ui/tests/confirm-dialog.test.mjs +++ b/design-system/packages/ui/tests/confirm-dialog.test.mjs @@ -53,5 +53,5 @@ test("ConfirmDialog styles use public status, layout, and typography tokens", as assert.match(styles, /--bf-layout-confirm-dialog-preview-padding-inline/); assert.match(styles, /--bf-color-status-warning-content/); assert.match(styles, /--bf-color-status-danger-surface/); - assert.match(styles, /--bf-font-family-mono/); + assert.match(styles, /--bf-type-code-sm-font-family/); }); diff --git a/design-system/packages/ui/tests/field.test.mjs b/design-system/packages/ui/tests/field.test.mjs index d35c0f34db..39d3aad52c 100644 --- a/design-system/packages/ui/tests/field.test.mjs +++ b/design-system/packages/ui/tests/field.test.mjs @@ -100,8 +100,8 @@ test("Field styles consume shared content and typography tokens", async () => { assert.match(styles, /--bf-color-content-primary/); assert.match(styles, /--bf-color-content-muted/); assert.match(styles, /--bf-color-accent-default/); - assert.match(styles, /--bf-font-size-xs/); - assert.match(styles, /--bf-font-weight-semibold/); + assert.match(styles, /--bf-type-label-md-font-size/); + assert.match(styles, /--bf-type-support-font-size/); assert.match(styles, /--bf-layout-field-root-gap/); assert.match(styles, /--bf-layout-field-label-action-gap/); assert.match(styles, /--bf-layout-field-control-gap/); diff --git a/design-system/packages/ui/tests/flow-chat-tool-card.test.mjs b/design-system/packages/ui/tests/flow-chat-tool-card.test.mjs index cf66db66a1..3150943e33 100644 --- a/design-system/packages/ui/tests/flow-chat-tool-card.test.mjs +++ b/design-system/packages/ui/tests/flow-chat-tool-card.test.mjs @@ -434,8 +434,8 @@ test("file diff header matches the compact file-operation information hierarchy" assert.doesNotMatch(markup, /Git HEAD|data-bf-part="diffType"/); assert.ok(pathRule, "file-diff path rule should exist"); assert.match(pathRule, /var\(--bf-color-content-secondary\)/); - assert.match(pathRule, /var\(--bf-font-family-mono\)/); - assert.match(pathRule, /var\(--bf-font-size-sm\)/); + assert.match(pathRule, /var\(--bf-type-code-md-font-family\)/); + assert.match(pathRule, /var\(--bf-type-body-sm-font-size\)/); }); test("concrete tool views expose semantic parts instead of legacy CSS selectors", () => { diff --git a/design-system/packages/ui/tests/key-hint.test.mjs b/design-system/packages/ui/tests/key-hint.test.mjs index f664e0ea8e..74f83d2886 100644 --- a/design-system/packages/ui/tests/key-hint.test.mjs +++ b/design-system/packages/ui/tests/key-hint.test.mjs @@ -29,16 +29,16 @@ test("KeyHint preserves textual platform modifiers in the icon slot", () => { assert.match(markup, /data-bf-part="label">K<\/span>/); }); -test("KeyHint styles use shared primitive tokens", async () => { +test("KeyHint styles use the shared micro typography role", async () => { const styles = await readFile(new URL("../dist/styles.css", import.meta.url), "utf8"); assert.match(styles, /--bf-color-key-hint-background/); assert.match(styles, /--bf-color-action-neutral-surface/); assert.match(styles, /--bf-color-content-muted/); - assert.match(styles, /--bf-font-family-sans/); - assert.match(styles, /--bf-font-size-micro/); - assert.match(styles, /--bf-letter-spacing-normal/); - assert.match(styles, /--bf-line-height-none/); + assert.match(styles, /--bf-type-micro-font-family/); + assert.match(styles, /--bf-type-micro-font-size/); + assert.match(styles, /--bf-type-micro-letter-spacing/); + assert.match(styles, /--bf-type-micro-line-height/); assert.match(styles, /--bf-radius-xs/); assert.match(styles, /--bf-radius-sm/); assert.match(styles, /flex:\s*0 0 auto/); diff --git a/design-system/packages/ui/tests/navigation-panel.test.mjs b/design-system/packages/ui/tests/navigation-panel.test.mjs index 68ec71d092..2797b68108 100644 --- a/design-system/packages/ui/tests/navigation-panel.test.mjs +++ b/design-system/packages/ui/tests/navigation-panel.test.mjs @@ -88,11 +88,11 @@ test("NavigationPanel separates group captions, destinations, and the selected d assert.match(heading, /font-family: var\(--bf-type-meta-font-family\)/); assert.match(heading, /font-size: var\(--bf-type-meta-font-size\)/); assert.match(heading, /font-weight: var\(--bf-type-meta-font-weight\)/); - assert.match(heading, /line-height: var\(--bf-line-height-base\)/); + assert.match(heading, /line-height: var\(--bf-type-body-sm-line-height\)/); assert.match(styles, /\.item\[data-bf-tone="neutral"\]:not\(\[data-disabled="true"\]\)\s*\{\s*color: var\(--bf-color-content-primary\)/); - assert.match(actionStyles, /\.label\s*\{[^}]*font-size: var\(--bf-font-size-sm\)/); - assert.match(actionStyles, /\.label\s*\{[^}]*font-weight: var\(--bf-font-weight-regular\)/); - assert.match(styles, /\.item > \[data-bf-part="trigger"\]\[aria-current\] > \[data-bf-part="label"\]\s*\{\s*font-weight: var\(--bf-font-weight-semibold\)/); + assert.match(actionStyles, /\.label\s*\{[^}]*font-size: var\(--bf-type-label-md-font-size\)/); + assert.match(actionStyles, /\.label\s*\{[^}]*font-weight: var\(--bf-type-label-md-font-weight\)/); + assert.match(styles, /\.item > \[data-bf-part="trigger"\]\[aria-current\] > \[data-bf-part="label"\]\s*\{\s*font-weight: var\(--bf-type-label-selected-font-weight\)/); assert.match(styles, /@media \(prefers-contrast: more\)[\s\S]*?color: var\(--bf-color-content-muted\)/); assert.match(styles, /:global\(\[data-contrast="high"\]\) \.headingLabel\s*\{\s*color: var\(--bf-color-content-muted\)/); assert.match(styles, /@media \(forced-colors: active\)[\s\S]*?color: CanvasText/); diff --git a/design-system/packages/ui/tests/number-badge.test.mjs b/design-system/packages/ui/tests/number-badge.test.mjs index cc18e8683a..eb7b809d90 100644 --- a/design-system/packages/ui/tests/number-badge.test.mjs +++ b/design-system/packages/ui/tests/number-badge.test.mjs @@ -25,7 +25,7 @@ test("ToolbarBadge preserves its slot hook and delegates to NumberBadge", () => test("NumberBadge uses a 24px slot, 20px surface and 11px control typography without clipping", async () => { const source = await readFile(new URL("../src/components/NumberBadge/NumberBadge.module.css", import.meta.url), "utf8"); - for (const token of ["space-6", "space-5", "font-size-meta", "font-family-control", "font-weight-medium", "color-action-neutral-content", "color-action-neutral-surface"]) assert.ok(source.includes(`--bf-${token}`), token); + for (const token of ["space-6", "space-5", "type-meta-font-size", "type-meta-font-family", "type-meta-font-weight", "color-action-neutral-content", "color-action-neutral-surface"]) assert.ok(source.includes(`--bf-${token}`), token); assert.doesNotMatch(source, /overflow:\s*(hidden|clip)|text-overflow:\s*ellipsis/); assert.match(source, /forced-colors: active/); }); diff --git a/design-system/packages/ui/tests/page-header.test.mjs b/design-system/packages/ui/tests/page-header.test.mjs index 1f3f5e2f7d..931a114a52 100644 --- a/design-system/packages/ui/tests/page-header.test.mjs +++ b/design-system/packages/ui/tests/page-header.test.mjs @@ -66,9 +66,11 @@ test("PageHeader omits the required marker by default", () => { test("PageHeader styles use shared typography and content tokens", async () => { const styles = await readFile(new URL("../dist/styles.css", import.meta.url), "utf8"); - assert.match(styles, /--bf-font-size-2xl/); - assert.match(styles, /--bf-font-size-4xl/); - assert.match(styles, /--bf-font-family-sans/); + assert.match(styles, /--bf-type-heading-page-font-size/); + assert.match(styles, /--bf-type-heading-section-font-size/); + assert.match(styles, /--bf-type-heading-display-font-size/); + assert.match(styles, /--bf-type-display-sm-font-size/); + assert.match(styles, /--bf-type-body-lg-font-size/); assert.match(styles, /--bf-color-content-primary/); assert.match(styles, /--bf-color-content-muted/); assert.match(styles, /--bf-color-accent-default/); diff --git a/design-system/packages/ui/tests/search-field.test.mjs b/design-system/packages/ui/tests/search-field.test.mjs index 00fd8aa567..391e5dd0d4 100644 --- a/design-system/packages/ui/tests/search-field.test.mjs +++ b/design-system/packages/ui/tests/search-field.test.mjs @@ -69,7 +69,8 @@ test("SearchField owns pill composition while reusing Input behavior", async () const styles = await readFile(new URL("../dist/styles.css", import.meta.url), "utf8"); assert.match(styles, /border-radius:var\(--bf-radius-pill\)/); - assert.match(styles, /--bf-font-size-xs/); + assert.match(styles, /--bf-type-label-md-font-size/); + assert.match(styles, /--bf-type-meta-font-size/); }); test("SearchField focus changes only the existing border color", async () => { diff --git a/design-system/packages/ui/tests/tab-group.test.mjs b/design-system/packages/ui/tests/tab-group.test.mjs index 775d1a0da1..bb3fccc9f5 100644 --- a/design-system/packages/ui/tests/tab-group.test.mjs +++ b/design-system/packages/ui/tests/tab-group.test.mjs @@ -105,8 +105,8 @@ test("TabGroup styling uses its geometry contract and Button semantic colors", a assert.match(styles, /--bf-color-action-neutral-border/); assert.match(styles, /--bf-color-action-neutral-content/); assert.match(styles, /--bf-color-action-neutral-surface/); - assert.match(styles, /--bf-font-weight-regular/); - assert.match(styles, /--bf-font-weight-semibold/); + assert.match(styles, /--bf-type-label-md-font-weight/); + assert.match(styles, /--bf-type-label-selected-font-weight/); assert.doesNotMatch(styles, /#[0-9a-f]{3,8}/i); }); diff --git a/design-system/packages/ui/tests/text-clipping.test.mjs b/design-system/packages/ui/tests/text-clipping.test.mjs index 3b6f93fb12..34d2799500 100644 --- a/design-system/packages/ui/tests/text-clipping.test.mjs +++ b/design-system/packages/ui/tests/text-clipping.test.mjs @@ -29,7 +29,7 @@ for (const [component, selector] of [ declarations[declaration.slice(0, colon).trim()] = declaration.slice(colon + 1).trim(); } } - assert.equal(declarations["line-height"], "var(--bf-line-height-base)"); + assert.match(declarations["line-height"], /^var\(--bf-(?:line-height-base|type-body-sm-line-height)\)$/); assert.equal(declarations.overflow, "hidden"); assert.equal(declarations["text-overflow"], "ellipsis"); assert.equal(declarations["block-size"], undefined); diff --git a/scripts/audit-typography-tokens.mjs b/scripts/audit-typography-tokens.mjs index b3d8d927df..c4f534d786 100644 --- a/scripts/audit-typography-tokens.mjs +++ b/scripts/audit-typography-tokens.mjs @@ -13,6 +13,8 @@ const SOURCE_GROUPS = Object.freeze({ ], 'web-ui': [ 'src/web-ui/src', + 'src/mobile-web/src', + 'BitFun-Installer/src', ], }); @@ -31,6 +33,26 @@ const WEB_FONT_PROFILE_STACK_PROPERTIES = new Set([ '--bf-font-family-mono', ]); +const SEMANTIC_ROLE_COMPONENT_STYLE_ROOT = 'design-system/packages/ui/src/'; +const SEMANTIC_ROLE_COMPONENT_STYLE_EXCEPTIONS = new Set([ + // The bars variant uses the font-size property as a scalable graphic cell, + // while its user-visible label already consumes type.support. + 'design-system/packages/ui/src/components/Spinner/Spinner.module.css', +]); + +const SEMANTIC_ROLE_PRODUCT_STYLE_ROOTS = [ + 'src/web-ui/src/', + 'src/mobile-web/src/', + 'BitFun-Installer/src/', + 'design-system/apps/design-lab/src/', +]; + +const COMPLETE_PRODUCT_STYLE_ROOTS = [ + 'src/web-ui/src/', + 'src/mobile-web/src/', + 'BitFun-Installer/src/', +]; + const TYPOGRAPHY_PROPERTIES = new Set([ 'font', 'fontFamily', @@ -548,6 +570,11 @@ function isRawTypographyLiteral(property, literal) { } } +function isFoundationTypographyLiteral(literal) { + return literal?.kind === 'string' + && /^var\(--bf-(?:font-(?:family|size|weight)|line-height|letter-spacing)-[a-z0-9-]+\)$/i.test(literal.value.trim()); +} + function scriptKindForPath(relativePath) { if (relativePath.endsWith('.tsx')) return ts.ScriptKind.TSX; if (relativePath.endsWith('.jsx')) return ts.ScriptKind.JSX; @@ -566,6 +593,18 @@ function auditScriptTypography(text, relativePath) { ); function report(node, property, literal) { + if (requiresSemanticRoleConsumption(relativePath) && isFoundationTypographyLiteral(literal)) { + const start = node.getStart(sourceFile); + const { line } = sourceFile.getLineAndCharacterOfPosition(start); + issues.push(createIssue( + relativePath, + line + 1, + 'foundation-typography-in-semantic-consumer', + 'Product frontend inline text styles must consume a semantic --bf-type-* role.', + node.getText(sourceFile), + )); + return; + } if (!isRawTypographyLiteral(property, literal)) return; const start = node.getStart(sourceFile); const { line } = sourceFile.getLineAndCharacterOfPosition(start); @@ -632,6 +671,55 @@ function auditRetiredReferences(text, relativePath) { return issues; } +function requiresSemanticRoleConsumption(relativePath) { + if (relativePath.startsWith(WEB_FONT_PROFILE_STYLE_ROOT)) return false; + + return ( + relativePath.startsWith(SEMANTIC_ROLE_COMPONENT_STYLE_ROOT) + && relativePath.endsWith('.module.css') + && !SEMANTIC_ROLE_COMPONENT_STYLE_EXCEPTIONS.has(relativePath) + ) + || SEMANTIC_ROLE_PRODUCT_STYLE_ROOTS.some(root => relativePath.startsWith(root)); +} + +function auditSemanticRoleConsumption(text, relativePath) { + if (!requiresSemanticRoleConsumption(relativePath)) return []; + + const issues = []; + const source = stripCommentsPreservingLines(text); + const lines = text.split(/\r?\n/); + const governsCompleteProductStyle = COMPLETE_PRODUCT_STYLE_ROOTS.some(root => relativePath.startsWith(root)) + && STYLE_EXTENSIONS.has(path.extname(relativePath).toLowerCase()); + const foundationPattern = governsCompleteProductStyle + ? /(--bf-(?:font-family|font-size|font-weight|line-height|letter-spacing)-[a-z0-9-]+)/gi + : /(?:font-family|font-size|font-weight|line-height|letter-spacing)\s*:\s*[^;{}\r\n]*?(--bf-(?:font-family|font-size|font-weight|line-height|letter-spacing)-[a-z0-9-]+)/gi; + for (const match of source.matchAll(foundationPattern)) { + const token = match[1]; + const tokenOffset = match[0].lastIndexOf(token); + const line = lineNumberAt(source, (match.index ?? 0) + Math.max(0, tokenOffset)); + if (hasLocalTypographyException(lines, line)) continue; + issues.push(createIssue( + relativePath, + line, + 'foundation-typography-in-semantic-consumer', + 'Text-bearing public components and migrated product surfaces must consume a semantic --bf-type-* role.', + token, + )); + } + + const hasTypographyDeclaration = /(?:^|[;{}\r\n])\s*(?:font-family|font-size|font-weight|letter-spacing|line-height)\s*:/im.test(source); + if (hasTypographyDeclaration && !/--bf-type-[a-z0-9-]+-(?:font-family|font-size|font-weight|letter-spacing|line-height)/i.test(source)) { + issues.push(createIssue( + relativePath, + 1, + 'semantic-typography-role-missing', + 'A governed text-bearing stylesheet must identify its typography through a semantic --bf-type-* role.', + )); + } + + return issues; +} + export function auditTypographyText(text, relativePath, options = {}) { const normalizedPath = normalizePath(relativePath); const extension = path.extname(normalizedPath).toLowerCase(); @@ -641,9 +729,11 @@ export function auditTypographyText(text, relativePath, options = {}) { if (options.retiredOnly) return issues; if (STYLE_EXTENSIONS.has(extension) && productionSource) { issues.push(...auditCssDeclarations(text, normalizedPath)); + issues.push(...auditSemanticRoleConsumption(text, normalizedPath)); } if (SCRIPT_EXTENSIONS.has(extension) && productionSource) { issues.push(...auditCssDeclarations(text, normalizedPath)); + issues.push(...auditSemanticRoleConsumption(text, normalizedPath)); issues.push(...auditScriptTypography(text, normalizedPath)); } diff --git a/scripts/audit-typography-tokens.test.mjs b/scripts/audit-typography-tokens.test.mjs index acda53afe4..06b2b8aa74 100644 --- a/scripts/audit-typography-tokens.test.mjs +++ b/scripts/audit-typography-tokens.test.mjs @@ -76,6 +76,90 @@ test('rejects unrelated raw typography inside Web font profiles', () => { assert.equal(codes.filter(code => code === 'raw-private-typography-token').length, 1); }); +test('requires semantic roles in the complete component library and every React product frontend', () => { + const primitiveCodes = codesFor(` + .title { + font-family: var(--bf-font-family-control); + font-size: var(--bf-font-size-sm); + font-weight: var(--bf-font-weight-semibold); + line-height: var(--bf-line-height-tight); + letter-spacing: var(--bf-letter-spacing-normal); + } + `, 'design-system/packages/ui/src/components/Card/Card.module.css'); + + assert.equal( + primitiveCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 5, + ); + + const semanticIssues = auditTypographyText(` + .title { + font-family: var(--bf-type-heading-card-font-family); + font-size: var(--bf-type-heading-card-font-size); + font-weight: var(--bf-type-heading-card-font-weight); + line-height: var(--bf-type-heading-card-line-height); + letter-spacing: var(--bf-type-heading-card-letter-spacing); + } + `, 'design-system/packages/ui/src/components/Card/Card.module.css'); + + assert.deepEqual(semanticIssues, []); + + const geometryIssues = auditTypographyText(` + .icon { inline-size: var(--bf-font-size-sm); block-size: var(--bf-font-size-sm); } + `, 'design-system/packages/ui/src/components/ActionItem/ActionItem.module.css'); + + assert.deepEqual(geometryIssues, []); + + const flowChatCodes = codesFor(` + .message { font-size: var(--bf-font-size-sm); } + `, 'design-system/packages/ui/src/flow-chat/Message.module.css'); + + assert.equal( + flowChatCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 1, + ); + + const webUiCodes = codesFor(` + .label { + font-size: var(--bf-font-size-xs); + line-height: var(--bf-line-height-tight); + } + `, 'src/web-ui/src/app/components/LegacyLabel.scss'); + + assert.equal( + webUiCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 2, + ); + + const webUiIndirectCodes = codesFor(` + .title { + --local-title-font: var(--bf-font-family-sans); + min-height: calc(var(--bf-font-size-sm) * var(--bf-line-height-base)); + } + `, 'src/web-ui/src/app/components/LegacyTitle.scss'); + + assert.equal( + webUiIndirectCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 3, + ); + + for (const productPath of [ + 'src/mobile-web/src/styles/LegacyLabel.scss', + 'BitFun-Installer/src/styles/LegacyLabel.css', + 'design-system/apps/design-lab/src/LegacyLabel.css', + ]) { + const productCodes = codesFor(` + .label { font-size: var(--bf-font-size-xs); } + `, productPath); + + assert.equal( + productCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 1, + productPath, + ); + } +}); + test('rejects static TypeScript typography but accepts tokens, adapters, and dynamic previews', () => { const codes = codesFor(` const RAW_FONT_SIZE = 12; @@ -92,6 +176,39 @@ test('rejects static TypeScript typography but accepts tokens, adapters, and dyn assert.equal(codes.filter(code => code === 'raw-script-typography').length, 5); }); +test('requires semantic roles in product frontend inline styles and embedded CSS', () => { + const codes = codesFor(` + const style = { fontSize: 'var(--bf-font-size-sm)' }; + const shell = \`\`; + `, 'src/web-ui/src/fixture.tsx'); + + assert.equal( + codes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 2, + ); + + const semanticIssues = auditTypographyText(` + const style = { fontSize: 'var(--bf-type-label-md-font-size)' }; + const shell = \`\`; + `, 'src/web-ui/src/fixture.tsx'); + + assert.deepEqual(semanticIssues, []); + + for (const productPath of [ + 'src/mobile-web/src/fixture.tsx', + 'BitFun-Installer/src/fixture.tsx', + ]) { + const productCodes = codesFor(` + const style = { fontSize: 'var(--bf-font-size-sm)' }; + `, productPath); + assert.equal( + productCodes.filter(code => code === 'foundation-typography-in-semantic-consumer').length, + 1, + productPath, + ); + } +}); + test('rejects retired aliases and FlowChat font APIs', () => { const codes = codesFor(` const oldToken = 'font.size.body'; diff --git a/src/apps/mobile/design-system/README.md b/src/apps/mobile/design-system/README.md index e73fea7906..b8a84ebd7f 100644 --- a/src/apps/mobile/design-system/README.md +++ b/src/apps/mobile/design-system/README.md @@ -41,6 +41,22 @@ platform presentation primitives. scale. Validate the standard size and at least one enlarged accessibility size without changing display zoom, and prefer wrapping or ellipsis over clipping. +The native role names map to the product's formal content purposes as follows: + +| Content purpose | Native role | +| --- | --- | +| Page title | `display_large`, or `headline_large` in a compact container | +| Section title | `headline_small` | +| Card or row title | `title_small` / `title_medium` | +| Body copy | `body_medium`, with `body_large` for reading emphasis | +| Supporting text | `body_small` | +| Control label | `label_medium` / `label_large` | +| Compact metadata | `label_small` | + +Platform renderers may choose the listed size variant for available width, but +must not substitute a different content purpose merely to obtain a preferred +metric. + ## Simulator captures The native galleries can be launched without changing the normal app path: diff --git a/src/crates/contracts/product-domains/src/miniapp/generated/default_appearance_style.html b/src/crates/contracts/product-domains/src/miniapp/generated/default_appearance_style.html index 5758e1a8c2..7675d78d52 100644 --- a/src/crates/contracts/product-domains/src/miniapp/generated/default_appearance_style.html +++ b/src/crates/contracts/product-domains/src/miniapp/generated/default_appearance_style.html @@ -4,8 +4,8 @@ background: transparent; --bitfun-radius: 8px; --bitfun-radius-lg: 12px; - --bitfun-font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; - --bitfun-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, 'Cascadia Mono', 'Cascadia Code', Consolas, 'Liberation Mono', 'Courier New', monospace; + --bitfun-font-sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Segoe UI', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; + --bitfun-font-mono: 'JetBrains Mono', 'FiraCode', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, 'Cascadia Mono', 'Cascadia Code', Consolas, 'Liberation Mono', 'Courier New', monospace; --bitfun-bg: #0e0e10; --bitfun-bg-secondary: #1c1c1f; --bitfun-bg-tertiary: #0e0e10; diff --git a/src/mobile-web/src/components/ErrorBoundary.tsx b/src/mobile-web/src/components/ErrorBoundary.tsx index 822fe3a770..d896de6092 100644 --- a/src/mobile-web/src/components/ErrorBoundary.tsx +++ b/src/mobile-web/src/components/ErrorBoundary.tsx @@ -41,14 +41,24 @@ export class ErrorBoundary extends React.Component + {/* typography-audit: allow -- warning glyph geometry, not product text */}
âš 
-

+

Something went wrong

-

+

{this.state.error?.message || 'An unexpected error occurred.'}

- {isRunning && onStop ? ( - } - title={t('card.stop')} - /> - ) : ( - } - title={t('card.delete')} - /> - )} -
-
+
+
+ +
+
+ + V{marketReleaseNumber ?? app.version} + + {displayedTags.map((tag) => ( + {tag} + ))} + {overflowTags.length > 0 ? ( + + +{overflowTags.length} + + ) : null} +
+
event.stopPropagation()}> + {isRunning && onStop ? ( + } + onClick={handleStopClick} + shape="circle" + size="xs" + title={t('card.stop')} + variant="primary" + /> + ) : ( + } + onClick={handleOpenClick} + shape="circle" + size="xs" + title={t('card.start')} + variant="primary" + /> + )}
diff --git a/src/web-ui/src/app/scenes/miniapps/utils/miniAppIcons.tsx b/src/web-ui/src/app/scenes/miniapps/utils/miniAppIcons.tsx index 7d774794fe..b8b5681136 100644 --- a/src/web-ui/src/app/scenes/miniapps/utils/miniAppIcons.tsx +++ b/src/web-ui/src/app/scenes/miniapps/utils/miniAppIcons.tsx @@ -1,5 +1,10 @@ import React from 'react'; import { Icon, type IconName, type IconSize } from '@bitfun/ui'; +import codingFootprintIcon from '@/assets/miniapps/catalog/coding-footprint.png'; +import dailyDivinationIcon from '@/assets/miniapps/catalog/daily-divination.png'; +import gomokuIcon from '@/assets/miniapps/catalog/gomoku.png'; +import pptLiveIcon from '@/assets/miniapps/catalog/ppt-live.png'; +import regexPlaygroundIcon from '@/assets/miniapps/catalog/regex-playground.png'; import { Aperture, AppWindow, @@ -65,6 +70,18 @@ const MINI_APP_ICONS = { Wrench, } satisfies Record; +const BUILTIN_MINI_APP_ICON_ASSETS: Readonly> = { + 'builtin-coding-selfie': codingFootprintIcon, + 'builtin-daily-divination': dailyDivinationIcon, + 'builtin-gomoku': gomokuIcon, + 'builtin-ppt-live': pptLiveIcon, + 'builtin-regex-playground': regexPlaygroundIcon, +}; + +export function getMiniAppIconAsset(id: string): string | undefined { + return BUILTIN_MINI_APP_ICON_ASSETS[id]; +} + export function renderMiniAppIcon(name: string, size = 28): React.ReactNode { const key = name .split('-') diff --git a/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.scss b/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.scss index d063c48b7f..2afc1dd3c2 100644 --- a/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.scss +++ b/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.scss @@ -1,80 +1,50 @@ .miniapp-gallery { + container-type: inline-size; background: var(--bf-color-surface-scene); .gallery-page-header { position: relative; - padding-block: var(--bf-space-6) var(--bf-space-5); + width: min(calc(100% - var(--bf-space-6)), 680px); + padding: var(--bf-space-10) 0 0; background: var(--bf-color-surface-scene); backdrop-filter: none; -webkit-backdrop-filter: none; } - .gallery-zones { - gap: var(--bf-space-6); - padding-top: var(--bf-space-3); + .gallery-page-header__subtitle { + max-width: 410px; } - .gallery-zone { - gap: var(--bf-space-3); + .gallery-page-header__title { + white-space: nowrap; } - &__running-zone { - .gallery-zone__title { - display: inline-flex; - align-items: center; - gap: var(--bf-space-2); - - &::before { - content: ''; - flex: 0 0 auto; - width: 8px; - height: 8px; - border-radius: var(--bf-radius-pill); - background: var(--bf-color-content-primary); - box-shadow: 0 0 0 2px var(--bf-color-action-neutral-surface-hover); - } - } + .gallery-page-header__actions { + padding-top: 0; - &:not(.is-empty) .gallery-zone__header { - min-height: 58px; - padding: 0 var(--bf-space-4); - border: 1px solid var(--bf-color-border-subtle); - border-radius: var(--bf-radius-lg); - background: var(--bf-color-surface-subtle); - box-sizing: border-box; + > :first-child { + width: 162px; } + } - &.is-empty { - display: grid; - grid-template-columns: max-content minmax(0, 1fr); - align-items: center; - min-height: 58px; - padding: 0 var(--bf-space-4); - column-gap: var(--bf-space-4); - border: 1px solid var(--bf-color-border-subtle); - border-radius: var(--bf-radius-lg); - background: var(--bf-color-surface-subtle); - box-sizing: border-box; - - .gallery-zone__header { - min-height: 0; - } + .gallery-zones { + width: min(calc(100% - var(--bf-space-6)), 680px); + gap: var(--bf-space-6); + padding: var(--bf-space-6) 0 var(--bf-space-8); + } - .gallery-run-empty { - min-width: 0; - padding: 0; - overflow: hidden; - text-align: left; - text-overflow: ellipsis; - white-space: nowrap; - } - } + .gallery-zone { + gap: var(--bf-space-3); } - .gallery-page-header__actions { - > :first-child { - width: 220px; - } + &__running-zone .gallery-zone__title::before { + content: ''; + display: inline-block; + width: 8px; + height: 8px; + margin-inline-end: var(--bf-space-2); + border-radius: var(--bf-radius-pill); + background: var(--bf-color-status-success-content); } &__import-anchor { @@ -82,18 +52,19 @@ } &__card-grid { - justify-items: start; + grid-template-columns: repeat(2, minmax(0, 1fr)); + justify-items: stretch; } &__card-grid.gallery-grid--skeleton .gallery-skeleton-card { width: 100%; - max-width: 400px; - height: 152px; - min-height: 152px; + height: 193px; + min-height: 193px; + border-radius: var(--bf-radius-xl); } &__categories { - max-width: min(56vw, 720px); + max-width: 500px; overflow-x: auto; scrollbar-width: thin; @@ -101,7 +72,50 @@ flex: 0 0 auto; } } +} + +@container (max-width: 760px) { + .miniapp-gallery { + .gallery-page-header { + flex-direction: column; + width: calc(100% - var(--bf-space-8)); + padding-top: var(--bf-space-6); + } + + .gallery-page-header__actions { + width: 100%; + flex-wrap: wrap; + + > :first-child { + width: min(100%, 240px); + } + } + + .gallery-zones { + width: calc(100% - var(--bf-space-8)); + padding-top: var(--bf-space-5); + } + + .gallery-zone__header { + flex-direction: column; + align-items: flex-start; + } + + .gallery-zone__tools { + width: 100%; + margin-left: 0; + justify-content: flex-start; + } + + &__card-grid { + grid-template-columns: 1fr; + } + &__categories { + width: 100%; + max-width: 100%; + } + } } /* Positioning-only overrides; the design-system Menu owns the surface look. */ @@ -113,10 +127,10 @@ @media (max-width: 720px) { .miniapp-gallery { - &__running-zone.is-empty { - grid-template-columns: max-content minmax(0, 1fr); - padding-inline: var(--bf-space-3); - column-gap: var(--bf-space-3); + .gallery-page-header { + flex-direction: column; + width: calc(100% - var(--bf-space-8)); + padding-top: var(--bf-space-6); } .gallery-page-header__actions { @@ -125,17 +139,17 @@ } } - &__categories { - max-width: min(64vw, 520px); + .gallery-zones { + width: calc(100% - var(--bf-space-8)); + padding-top: var(--bf-space-5); } - } -} -@media (max-width: 480px) { - .miniapp-gallery { - .miniapp-card, - &__card-grid.gallery-grid--skeleton .gallery-skeleton-card { - max-width: 100%; + &__card-grid { + grid-template-columns: 1fr; + } + + &__categories { + max-width: calc(100vw - var(--bf-space-8)); } } } diff --git a/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.tsx b/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.tsx index 75af63e965..d644ec8068 100644 --- a/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.tsx +++ b/src/web-ui/src/app/scenes/miniapps/views/MiniAppGalleryView.tsx @@ -2,7 +2,10 @@ import React, { useState, useMemo, useCallback, useEffect, useRef } from 'react' import { createPortal } from 'react-dom'; import { FolderPlus, + Gamepad2, + House, LayoutGrid, + Lightbulb, PackagePlus, } from 'lucide-react'; import { open } from '@tauri-apps/plugin-dialog'; @@ -57,7 +60,11 @@ import './MiniAppGalleryView.scss'; const log = createLogger('MiniAppGalleryView'); const MINIAPP_CARD_MIN_WIDTH = 280; -const MiniAppGalleryView: React.FC = () => { +interface MiniAppGalleryViewProps { + tabs?: React.ReactNode; +} + +const MiniAppGalleryView: React.FC = ({ tabs }) => { const apps = useMiniAppStore((state) => state.apps); const loading = useMiniAppStore((state) => state.loading); const customizingAppIds = useMiniAppStore((state) => state.customizingAppIds); @@ -409,7 +416,6 @@ const MiniAppGalleryView: React.FC = () => { marketReleaseNumber={marketOrigins[app.id]?.releaseNumber} onOpenDetails={setSelectedApp} onOpen={handleOpenApp} - onDelete={handleDeleteRequest} onStop={handleStopRunning} /> ))} @@ -434,7 +440,7 @@ const MiniAppGalleryView: React.FC = () => { setImportMenuOpen(open => !open)} disabled={loading} title={t('importAction')} @@ -442,7 +448,7 @@ const MiniAppGalleryView: React.FC = () => { aria-haspopup="menu" aria-expanded={importMenuOpen} data-testid="miniapp-import-action" - icon={} + icon={} /> {importMenuOpen ? createPortal( { ) : null} void handleCreateWithCreative()} loading={creatingWithCreative} title={t('creationMode.action')} aria-label={t('creationMode.action')} data-testid="miniapp-create-action" - icon={} + icon={} /> )} /> + {tabs} +
- 0 ? : null} - > - {activeApps.length > 0 ? ( + {activeApps.length > 0 ? ( + } + data-testid="miniapp-running-zone" + className="miniapp-gallery__running-zone" + > {activeApps.map((app, index) => ( { marketReleaseNumber={marketOrigins[app.id]?.releaseNumber} onOpenDetails={setSelectedApp} onOpen={handleOpenApp} - onDelete={handleDeleteRequest} onStop={handleStopRunning} /> ))} - ) : ( -
- {t('noRunningApps')} -
- )} -
+
+ ) : null} } tools={( - <> - {categories.length > 1 ? ( -
- ({ + categories.length > 1 ? ( +
+ { + const normalizedCategory = category.toLowerCase(); + const categoryIcon = normalizedCategory === 'productivity' + ? + : normalizedCategory === 'developer' + ? + : normalizedCategory === 'lifestyle' + ? + : normalizedCategory === 'game' + ? + : undefined; + return { + icon: categoryIcon, label: ( - {category === 'all' ? t('all') : category} + {category === 'all' + ? t('all') + : category.replace(/^./, (character) => character.toUpperCase())} ), value: category, - }))} - value={categoryFilter} - onValueChange={setCategoryFilter} - aria-label={t('allApps')} - /> -
- ) : null} - {t('count', { count: filtered.length })} - + }; + })} + value={categoryFilter} + onValueChange={setCategoryFilter} + aria-label={t('allApps')} + variant="pills" + /> +
+ ) : null )} > {renderGrid()} diff --git a/src/web-ui/src/app/scenes/miniapps/views/MiniAppMarketView.tsx b/src/web-ui/src/app/scenes/miniapps/views/MiniAppMarketView.tsx index c6ebc64734..a20544c443 100644 --- a/src/web-ui/src/app/scenes/miniapps/views/MiniAppMarketView.tsx +++ b/src/web-ui/src/app/scenes/miniapps/views/MiniAppMarketView.tsx @@ -62,7 +62,11 @@ const CATEGORIES = [ 'other', ] as const; -const MiniAppMarketView: React.FC = () => { +interface MiniAppMarketViewProps { + tabs?: React.ReactNode; +} + +const MiniAppMarketView: React.FC = ({ tabs }) => { const { t, formatNumber, currentLanguage } = useI18n('scenes/miniapp'); const notification = useNotification(); const { workspace } = useCurrentWorkspace(); @@ -288,6 +292,8 @@ const MiniAppMarketView: React.FC = () => { )} /> + {tabs} +
{ } } -const MiniAppSubmissionsView: React.FC = () => { +interface MiniAppSubmissionsViewProps { + tabs?: React.ReactNode; +} + +const MiniAppSubmissionsView: React.FC = ({ tabs }) => { const { t } = useI18n('scenes/miniapp'); const notification = useNotification(); const { workspace } = useCurrentWorkspace(); @@ -241,6 +245,7 @@ const MiniAppSubmissionsView: React.FC = () => { if (!authResolved || loading) { return ( + {tabs}
); @@ -253,6 +258,7 @@ const MiniAppSubmissionsView: React.FC = () => { title={t('market.submissions.title')} subtitle={t('market.submissions.subtitle')} /> + {tabs} } message={t('market.submissions.signInRequired')} @@ -278,6 +284,8 @@ const MiniAppSubmissionsView: React.FC = () => { )} /> + {tabs} + {localActionsDisabled ? (
diff --git a/src/web-ui/src/assets/miniapps/catalog/coding-footprint.png b/src/web-ui/src/assets/miniapps/catalog/coding-footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f9dd4a25e824d5d2514d98c46c79fe4424e947 GIT binary patch literal 107015 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�hdTX< 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%0Af*Ju$&2-J93Jo&%;oUTs_crX4@;x;q(&jK8!8O zLAgvLRwdFc((yvJHVVcyj=e_FphvCv3bV{-u4?;h%0$7rFNI{;6iig~qnSX2 z1i5eO9FHGW!8a{c!NUfBB#$pP7vJ3MgQKNA#iV2pUwn9-b-$;xF(CyV>@1a(+3C=Z zCzV(?M=0J8d^4k@n8&>Kiq9P$^qyiM0%Vu$6)r6)_y8;_U$cYeTIl#Vb*G?c4jTMG zl)6Vlsi<)rx6JI()=bjV@6jKug2lx4i83W;2Q>>*Wh4HuCSKi_OG7gI8$f<=x#-WUJgr4OB0gRXa{Tb z;sz2Rrt`-EBpBs$(DMe9lk@#KGQPjJxBh{y1rN`1YPZjb3R{Pcj!q>YsBGAw##hon`wBdO)Q=A2I$(hlCrbfM z{mS1l{-hgN2r9t@y`s&K)j^i2LI}?K^inVEy(TN4pC<{`qAi1 zj2X6O6ni*vaIor*?agekm~5a{@2nxK>>bG1)8{zLsd(LbV`F1%ZLPy7jm(oenwpZ8 z<+8Al)#h&%M(wmfje$IZZQA^USty4-sNKRvSr7Um?@!q3C^qolLm{{6Z}HTQcR`99 zuYm<|?{KKlvJvR37P+sbqPjX|EEBRr8cT9=3jWS_>iQFjlwlL&^3Pws2(X#s{tPtP zwA|f3eF}Qq!^GpQP8ZBknuGJ05o?yG7lUomc@&P9vyU6wRx8Z+{UMND9me5hHwB-S z7_?Kf{=cz$pFv!oDi6MY_+dFTR6br?+jAyORAOQLi70nsgojKbS}bt^L=*#GMt68N zPH{HkVlE=NoEmiI8*3GoyL#jns>_4S&CE{b4Wwk5%y;$5udC$Ec6H0HKKI{5v2{iO zt9d*;?1w4DyEDAthtJ{*BpVXYc^tOg_D~|!{Sz@+(d+8DXSgA?>Z*AnK zaP%0Zy@t8ro!-%}NRAB+t(g{nAV-PK%cG-R(-Iho9y^0Xc=4?QE8J(GTIV*g78mrU zch{KMKZn<)+cn}QUAeTx_3jL+{qdO+Zl;KApAj)>LChc{h1{kBo}pSk2|r9hyx*-Q zA8a4)$;slZn1hAUE4*@fejo8!z?+%O!MD~HPs!sVfG zIe&BvPdteHE$z#l#MI0{1xcx0D^_c+>gv9BKKYEM?Z0--&m{>NEkXMe zz~1QLnxtJDpxZ97W=2u}cDEc5L>F3ijF*|oFoxQ^Am~j0%x&$n=s=&nb@vdvUN>|k1r2_)uW{u3fHqfCvi18=>?5;!uF7S#+aVJ_xo_(~%{%>hiiM7A3n$cd0 z0_Ylsuk<0$){PyyAA-Std}Ny3E*g7-rRC@m)3~wCJ(zA8bk8Pm*1RdSVF)gz$ia|Z z(>xy{!uaT@R#}`qpnVa+areOUiNOKl>z2)C5IlsRWamre8f0>#8(Cgxxt!9AVrtTi z8?zZ?^^jwx;ynNAJD)Zx)jD9ANP<5;mM{Va*afK!eNK-5J^w9lpqH+>f8xZ6587(V gkpH)u8SO{zb8dc{R%&t)Krtt@)%DeIDz>5j0p}m4X8-^I literal 0 HcmV?d00001 diff --git a/src/web-ui/src/assets/miniapps/catalog/daily-divination.png b/src/web-ui/src/assets/miniapps/catalog/daily-divination.png new file mode 100644 index 0000000000000000000000000000000000000000..89a00eddbec9fdfe890e1f9562e622f8f5abb191 GIT binary patch literal 46093 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�-z|RXOtBU8;IoC5?!taWGG@KOPMF@}yc|sz6AMQNT46nUBE%7K$ zzQI~qjqdP^F^(BMe$rq|eCt+EaV5I{1uB&V0XFWz$k$7q(v@yPqDao1?Ciml?ZaVA zR34AxoN6MESzJ|BH^m$Ez1rOg#nYYXHdCHN<;+r@`uYGXVB|b>P^nVjA(qecrA}km zROsobJc^zQjv519ypO43vvGxbv*c`9Mm)A-zZTYnwDo<<)0I+$UT{3h>)GG8s@B(^ zG|~4PKhZh%jsu6N|E+e|P8cEeNv8h5Dl;qK05A!orDO$Fm0d-rM|Qd+wh=>FjrN2w*~JU_C$oKJk%>yKQGDl{Sgr#(b(B439z( z?JcirDs4s!$5mk4?+J;-yaYsQ`_{}=a-uM+-lk@yHi+-4+2-p}t+vAOwMZ}v3$eRv<(bAP!v$9C0@ z^SJ=#o^ub{10p4h-Kpx+Kbt??ZS>II?KjbgZ9ep;_i5!TfS#d0Jtpc1j}Y}^6+Vw} zV)!7JnvrGE`8!5_#lTPabFusGbqR}N{q<{9=)D_v)tVpRb8(dDi$Vpt96e`%2??na zkiaqlQPoQV0+HPH*oN^@!6F|ZmOTlKrtwwO28eNGx+e&b3+H84rQYCE1gH8O{Egs^ z0p$K@Ocnqwyjyn=zuPc-bWH2u>R+?drHl_WANkxynBk~_dfzY$R;7fkBG;TrQTNj~ z;gnpj#GU$)U$-~oQDj#jJyQAh34*$a_eCWOpyI8rSqU#eMnFm$z?5+|;J$ju|=rC&TRlr#+dKMjP@od5s; literal 0 HcmV?d00001 diff --git a/src/web-ui/src/assets/miniapps/catalog/gomoku.png b/src/web-ui/src/assets/miniapps/catalog/gomoku.png new file mode 100644 index 0000000000000000000000000000000000000000..5462fee136abbea99bdbb2a1f32e9c9140f7d8fa GIT binary patch literal 90617 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�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 *&Vb^X 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 literal 0 HcmV?d00001 diff --git a/src/web-ui/src/assets/miniapps/catalog/ppt-live.png b/src/web-ui/src/assets/miniapps/catalog/ppt-live.png new file mode 100644 index 0000000000000000000000000000000000000000..39116bfd01d6b16bc3d8d33d360128c35109bf4f GIT binary patch literal 75627 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 literal 0 HcmV?d00001