@micha.bigler/ui-core-micha 3.14.4 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +7 -0
- package/dist/chat/kitSxRegistry.js +9 -0
- package/dist/components/charts/kitSxRegistry.js +6 -0
- package/dist/entries/charts.js +6 -0
- package/dist/entries/chat.js +8 -0
- package/dist/entries/markdown.js +1 -0
- package/dist/index.js +0 -14
- package/dist/pages/AccountPage.js +1 -2
- package/dist/pages/LoginPage.js +1 -2
- package/dist/pages/PasswordChangePage.js +1 -2
- package/dist/pages/PasswordInvitePage.js +1 -2
- package/dist/pages/PasswordResetRequestPage.js +1 -2
- package/dist/pages/SignUpPage.js +1 -2
- package/dist/pages/SignupConfirmPage.js +1 -2
- package/dist/theme/kitSxEntry.js +11 -0
- package/dist/theme/kitSxRegistry.js +2 -15
- package/package.json +32 -7
- package/.github/workflows/ci.yml +0 -35
- package/.github/workflows/publish.yml +0 -126
- package/DESIGN.md +0 -60
- package/WORK_ORDERS.md +0 -150
- package/dev/entries.jsx +0 -721
- package/dev/fixtures.js +0 -26
- package/dev/main.jsx +0 -75
- package/dev/mockTransport.jsx +0 -128
- package/docs/CHART-LAYOUT.md +0 -157
- package/docs/DARK-TOKENS.md +0 -140
- package/docs/TYPE-SCALE.md +0 -111
- package/docs/messaging-deviations.md +0 -118
- package/index.html +0 -12
- package/renovate.json +0 -10
- package/scripts/chart-api-census.mjs +0 -415
- package/src/auth/AuthContext.jsx +0 -158
- package/src/auth/ReauthModal.jsx +0 -82
- package/src/auth/UserMenu.jsx +0 -121
- package/src/auth/apiClient.jsx +0 -232
- package/src/auth/authApi.jsx +0 -539
- package/src/auth/authConfig.jsx +0 -34
- package/src/auth/reauth.js +0 -47
- package/src/chat/ChatComposer.jsx +0 -36
- package/src/chat/ChatList.jsx +0 -87
- package/src/chat/ChatThread.jsx +0 -128
- package/src/chat/ChatWorkspace.jsx +0 -244
- package/src/chat/MarkdownReply.jsx +0 -22
- package/src/chat/ModelPicker.jsx +0 -85
- package/src/chat/api.js +0 -18
- package/src/chat/useChatSocket.js +0 -32
- package/src/chat/wire.js +0 -7
- package/src/components/AccessCodeManager.jsx +0 -288
- package/src/components/AccessCodeSingleUseToggle.jsx +0 -92
- package/src/components/AllowedEmailDomainsManager.jsx +0 -92
- package/src/components/AuthFactorRequirementCard.jsx +0 -95
- package/src/components/BulkInviteCsvTab.jsx +0 -198
- package/src/components/EmptyState.jsx +0 -38
- package/src/components/LoginForm.jsx +0 -159
- package/src/components/MFAComponent.jsx +0 -350
- package/src/components/MfaLoginComponent.jsx +0 -252
- package/src/components/MobileBottomNav.jsx +0 -82
- package/src/components/PasskeysComponent.jsx +0 -252
- package/src/components/PasswordChangeForm.jsx +0 -87
- package/src/components/PasswordResetRequestForm.jsx +0 -43
- package/src/components/PasswordSetForm.jsx +0 -97
- package/src/components/ProfileComponent.jsx +0 -348
- package/src/components/QrSignupManager.jsx +0 -404
- package/src/components/QrSignupValidityManager.jsx +0 -106
- package/src/components/RegistrationMethodsManager.jsx +0 -150
- package/src/components/SecurityComponent.jsx +0 -141
- package/src/components/SocialLoginButtons.jsx +0 -83
- package/src/components/SoftChip.jsx +0 -93
- package/src/components/StatTile.jsx +0 -39
- package/src/components/SupportRecoveryRequestsTab.jsx +0 -482
- package/src/components/TurnstileWidget.jsx +0 -99
- package/src/components/UserInviteComponent.jsx +0 -76
- package/src/components/UserListComponent.jsx +0 -618
- package/src/components/charts/BarChart.jsx +0 -102
- package/src/components/charts/ChartFrame.jsx +0 -214
- package/src/components/charts/LineChart.jsx +0 -126
- package/src/components/charts/ScatterChart.jsx +0 -299
- package/src/components/charts/TimeSeriesChart.jsx +0 -300
- package/src/components/charts/chartDefaults.js +0 -644
- package/src/components/charts/chartLabels.js +0 -36
- package/src/components/charts/exportChart.js +0 -258
- package/src/components/charts/formatters.js +0 -39
- package/src/components/charts/palette.js +0 -33
- package/src/components/charts/yearTickInterval.js +0 -7
- package/src/i18n/authTranslations.ts +0 -2651
- package/src/i18n/chartsTranslations.ts +0 -91
- package/src/i18n/chatTranslations.ts +0 -55
- package/src/i18n/messagingTranslations.ts +0 -120
- package/src/i18n/notificationsTranslations.ts +0 -32
- package/src/i18n/onboardingTranslations.ts +0 -29
- package/src/i18n/sectionNavTranslations.ts +0 -20
- package/src/i18n/uiCoreTranslations.js +0 -29
- package/src/i18n/userMenuTranslations.ts +0 -5
- package/src/index.js +0 -158
- package/src/layout/PageLayout.jsx +0 -36
- package/src/layout/SectionNav.jsx +0 -320
- package/src/messaging/AttachmentList.jsx +0 -145
- package/src/messaging/Composer.jsx +0 -197
- package/src/messaging/ConversationLaunchers.jsx +0 -51
- package/src/messaging/ConversationList.jsx +0 -109
- package/src/messaging/DirectMessageLauncher.jsx +0 -112
- package/src/messaging/MessageBubble.jsx +0 -183
- package/src/messaging/MessagingProvider.jsx +0 -0
- package/src/messaging/MessagingScopeConfig.jsx +0 -24
- package/src/messaging/PollCard.jsx +0 -163
- package/src/messaging/ReactionBar.jsx +0 -43
- package/src/messaging/ReadTicks.jsx +0 -82
- package/src/messaging/Thread.jsx +0 -195
- package/src/messaging/api.js +0 -48
- package/src/messaging/composerImageCompression.js +0 -35
- package/src/messaging/linkifyText.jsx +0 -37
- package/src/notifications/NotificationBell.jsx +0 -84
- package/src/notifications/NotificationSettings.jsx +0 -330
- package/src/notifications/NotificationsProvider.jsx +0 -224
- package/src/notifications/PopupSurface.jsx +0 -105
- package/src/notifications/api.js +0 -55
- package/src/notifications/feedApi.js +0 -18
- package/src/notifications/realtime.jsx +0 -138
- package/src/notifications/serviceWorker/sw.js +0 -50
- package/src/onboarding/OnboardingProvider.jsx +0 -326
- package/src/onboarding/OnboardingWizard.jsx +0 -61
- package/src/onboarding/WizardDialogShell.jsx +0 -51
- package/src/onboarding/api.js +0 -13
- package/src/onboarding/stepSelection.js +0 -16
- package/src/onboarding/steps/BrowserPushStep.jsx +0 -121
- package/src/onboarding/steps/CompleteNameStep.jsx +0 -46
- package/src/onboarding/steps/CookieConsentStep.jsx +0 -133
- package/src/onboarding/steps/PwaInstallStep.jsx +0 -47
- package/src/pages/AccountPage.jsx +0 -394
- package/src/pages/LoginPage.jsx +0 -343
- package/src/pages/PasswordChangePage.jsx +0 -62
- package/src/pages/PasswordInvitePage.jsx +0 -177
- package/src/pages/PasswordResetRequestPage.jsx +0 -68
- package/src/pages/SignUpPage.jsx +0 -268
- package/src/pages/SignupConfirmPage.jsx +0 -155
- package/src/testing/checkKitIntegration.js +0 -233
- package/src/theme/createAppTheme.js +0 -423
- package/src/theme/fonts.js +0 -3
- package/src/theme/index.js +0 -21
- package/src/theme/kitSxRegistry.js +0 -285
- package/src/theme/themeCompleteness.js +0 -1045
- package/src/theme/tokens.js +0 -478
- package/src/utils/auth-errors.js +0 -76
- package/src/utils/authService.js +0 -223
- package/src/utils/resolveErrorText.js +0 -28
- package/src/utils/webauthn.js +0 -51
- package/tests/AccountPage.profileStatements.test.jsx +0 -162
- package/tests/AccountPage.test.jsx +0 -200
- package/tests/AuthContext.test.jsx +0 -129
- package/tests/BarChart.test.jsx +0 -112
- package/tests/BrowserPushStep.test.jsx +0 -110
- package/tests/ChartFrame.test.jsx +0 -336
- package/tests/ConversationList.test.jsx +0 -144
- package/tests/CookieConsentStep.test.jsx +0 -69
- package/tests/EmptyState.test.jsx +0 -62
- package/tests/LineChart.test.jsx +0 -80
- package/tests/MessagingProvider.test.jsx +0 -50
- package/tests/MobileBottomNav.test.jsx +0 -319
- package/tests/NotificationBell.test.jsx +0 -60
- package/tests/NotificationSettings.test.jsx +0 -276
- package/tests/NotificationsProvider.test.jsx +0 -240
- package/tests/OnboardingProvider.test.jsx +0 -294
- package/tests/OnboardingWizard.test.jsx +0 -143
- package/tests/PasswordChangeForm.test.jsx +0 -70
- package/tests/PasswordInvitePage.test.jsx +0 -142
- package/tests/PasswordSetForm.test.jsx +0 -70
- package/tests/PopupSurface.test.jsx +0 -142
- package/tests/ProfileComponent.refresh.test.jsx +0 -194
- package/tests/QrSignupManager.registrationContext.test.jsx +0 -106
- package/tests/QrSignupManagerInfoBox.test.jsx +0 -49
- package/tests/ScatterChart.test.jsx +0 -270
- package/tests/SectionNav.test.jsx +0 -363
- package/tests/SignUpPage.test.jsx +0 -208
- package/tests/SoftChip.test.jsx +0 -105
- package/tests/StatTile.test.jsx +0 -57
- package/tests/Thread.test.jsx +0 -151
- package/tests/TimeSeriesChart.test.jsx +0 -367
- package/tests/UserListComponent.test.jsx +0 -192
- package/tests/UserMenu.test.jsx +0 -171
- package/tests/apiClientLanguage.test.js +0 -33
- package/tests/apiClientPublicPaths.test.js +0 -178
- package/tests/authApiLogin.test.js +0 -42
- package/tests/authApiRegistration.test.js +0 -31
- package/tests/authErrorCodeRendering.test.jsx +0 -77
- package/tests/authErrors.test.js +0 -74
- package/tests/authTranslations.test.js +0 -74
- package/tests/chart-api-census.test.js +0 -366
- package/tests/chartAxisTickBand.test.jsx +0 -95
- package/tests/chartDefaults.test.js +0 -902
- package/tests/chartLabels.test.js +0 -50
- package/tests/chartsPalette.test.js +0 -99
- package/tests/chatApi.test.js +0 -48
- package/tests/chatDriverNames.test.jsx +0 -71
- package/tests/chatExports.test.js +0 -3
- package/tests/chatList.test.jsx +0 -84
- package/tests/chatPicker.test.jsx +0 -82
- package/tests/chatSocket.test.jsx +0 -26
- package/tests/chatThread.test.jsx +0 -116
- package/tests/chatTranslations.test.js +0 -47
- package/tests/chatWorkspace.test.jsx +0 -234
- package/tests/checkKitIntegration.test.jsx +0 -219
- package/tests/createAppTheme.test.js +0 -132
- package/tests/createAppThemeDark.test.js +0 -127
- package/tests/createAppThemeLightGuard.test.js +0 -40
- package/tests/createAppThemePageContrast.test.js +0 -108
- package/tests/createAppThemeTypography.test.js +0 -53
- package/tests/errorCallSiteGuard.test.js +0 -32
- package/tests/exportChart.test.js +0 -313
- package/tests/feedApi.test.js +0 -46
- package/tests/fixtures/light-theme-baseline.json +0 -2234
- package/tests/i18nAggregate.test.js +0 -120
- package/tests/i18nGermanVariant.test.js +0 -65
- package/tests/loginPageErrorResolution.test.jsx +0 -102
- package/tests/messagingApi.test.js +0 -32
- package/tests/messagingChunk6.test.jsx +0 -116
- package/tests/messagingCompactBubble.test.jsx +0 -64
- package/tests/messagingComposer.test.jsx +0 -136
- package/tests/messagingComposerChunk5.test.jsx +0 -113
- package/tests/messagingContractConformance.test.js +0 -69
- package/tests/messagingDirectMessageLauncher.test.jsx +0 -151
- package/tests/messagingExports.test.js +0 -21
- package/tests/messagingInteractions.test.jsx +0 -136
- package/tests/messagingLastMessagePreview.test.jsx +0 -93
- package/tests/messagingLinkify.test.jsx +0 -51
- package/tests/messagingMessageActions.test.jsx +0 -163
- package/tests/messagingMsg6.test.jsx +0 -105
- package/tests/messagingMsg6f.test.jsx +0 -155
- package/tests/messagingMsg6g.test.jsx +0 -166
- package/tests/messagingMsg6h.test.jsx +0 -136
- package/tests/messagingMsg6i.test.jsx +0 -129
- package/tests/messagingPollRendering.test.jsx +0 -142
- package/tests/messagingReactionMerge.test.jsx +0 -77
- package/tests/messagingReadTicksTooltip.test.jsx +0 -36
- package/tests/messagingThreadReceipts.test.jsx +0 -178
- package/tests/messagingThreadingQuoting.test.jsx +0 -87
- package/tests/messagingUnreadLifecycle.test.jsx +0 -78
- package/tests/notificationsApi.test.js +0 -41
- package/tests/notificationsExports.test.js +0 -34
- package/tests/onboardingDescriptors.test.js +0 -132
- package/tests/packageTreeShaking.test.js +0 -126
- package/tests/realtime.test.jsx +0 -219
- package/tests/resolveErrorText.test.js +0 -72
- package/tests/stepSelection.test.js +0 -53
- package/tests/themeCompleteness.test.js +0 -626
- package/tests/timeSeriesLegend.test.js +0 -99
- package/tests/userScreenTranslations.test.jsx +0 -218
- package/tsconfig.build.json +0 -18
- package/vite.config.mjs +0 -6
- package/work-orders/AUTH-1.md +0 -74
- package/work-orders/AUTH-2.md +0 -74
- package/work-orders/AUTH-4.md +0 -183
- package/work-orders/AUTH-5.md +0 -154
- package/work-orders/AUTH-7.md +0 -181
- package/work-orders/AUTH-8.md +0 -184
- package/work-orders/CHART-1.md +0 -285
- package/work-orders/CHART-2.md +0 -222
- package/work-orders/CHART-3.md +0 -163
- package/work-orders/CHART-4.md +0 -203
- package/work-orders/CHART-5.md +0 -226
- package/work-orders/CHART-6.md +0 -428
- package/work-orders/CHART-7.md +0 -175
- package/work-orders/DX-1.md +0 -169
- package/work-orders/DX-2.md +0 -188
- package/work-orders/DX-3.md +0 -195
- package/work-orders/I18N-1.md +0 -254
- package/work-orders/I18N-3.md +0 -207
- package/work-orders/MSG-3.md +0 -375
- package/work-orders/MSG-3b.md +0 -1002
- package/work-orders/MSG-3c.md +0 -378
- package/work-orders/MSG-3d.md +0 -268
- package/work-orders/MSG-3e.md +0 -164
- package/work-orders/MSG-3f.md +0 -391
- package/work-orders/MSG-6e.md +0 -308
- package/work-orders/MSG-6f.md +0 -214
- package/work-orders/MSG-6g.md +0 -244
- package/work-orders/MSG-6h.md +0 -238
- package/work-orders/MSG-6i.md +0 -271
- package/work-orders/MSG-6j.md +0 -117
- package/work-orders/NOTIF-12.md +0 -214
- package/work-orders/NOTIF-13.md +0 -142
- package/work-orders/NOTIF-14.md +0 -151
- package/work-orders/PRIM-1.md +0 -177
- package/work-orders/SHELL-1.md +0 -255
- package/work-orders/SHELL-2.md +0 -197
- package/work-orders/SHELL-3.md +0 -359
- package/work-orders/SHELL-4.md +0 -351
- package/work-orders/SHELL-5.md +0 -345
- package/work-orders/SHELL-6.md +0 -210
- package/work-orders/THEME-1.md +0 -587
- package/work-orders/THEME-10.md +0 -303
- package/work-orders/THEME-11.md +0 -208
- package/work-orders/THEME-2.md +0 -339
- package/work-orders/THEME-3.md +0 -210
- package/work-orders/THEME-4.md +0 -271
- package/work-orders/THEME-5.md +0 -341
- package/work-orders/THEME-6.md +0 -247
- package/work-orders/THEME-7.md +0 -82
- package/work-orders/THEME-8.md +0 -211
- package/work-orders/THEME-9.md +0 -194
- package/work-orders/UCM-AUTH-10.md +0 -490
- package/work-orders/UCM-AUTH-11.md +0 -185
- package/work-orders/UCM-AUTH-12.md +0 -98
- package/work-orders/UCM-AUTH-13.md +0 -47
- package/work-orders/UCM-AUTH-9.md +0 -207
- package/work-orders/UCM-CHART-10.md +0 -150
- package/work-orders/UCM-CHART-11.md +0 -132
- package/work-orders/UCM-CHART-12.md +0 -348
- package/work-orders/UCM-CHART-13.md +0 -122
- package/work-orders/UCM-CHART-14.md +0 -198
- package/work-orders/UCM-CHART-15.md +0 -187
- package/work-orders/UCM-CHART-16.md +0 -169
- package/work-orders/UCM-CHART-17.md +0 -195
- package/work-orders/UCM-CHART-18.md +0 -200
- package/work-orders/UCM-CHART-8.md +0 -147
- package/work-orders/UCM-CHART-9.md +0 -265
- package/work-orders/UCM-CHAT-1.md +0 -190
- package/work-orders/UCM-CHAT-2.md +0 -75
- package/work-orders/UCM-CI-1.md +0 -65
- package/work-orders/UCM-DEP-1.md +0 -63
- package/work-orders/UCM-I18N-4.md +0 -226
- package/work-orders/UCM-I18N-5.md +0 -211
- package/work-orders/UCM-MSG-20.md +0 -192
- package/work-orders/UCM-PRIM-2.md +0 -114
- package/work-orders/UCM-SHELL-7.md +0 -134
- package/work-orders/UCM-SHELL-8.md +0 -125
- package/work-orders/UCM-TEST-1.md +0 -304
- package/work-orders/UCM-THEME-13.md +0 -69
- package/work-orders/UCM-THEME-14.md +0 -312
- package/work-orders/UCM-THEME-15.md +0 -356
- package/work-orders/UCM-THEME-16.md +0 -80
- package/work-orders/UCM-THEME-17.md +0 -111
- package/work-orders/UCM-THEME-18.md +0 -184
- package/work-orders/assets/AUTH-4-user-list-card.html +0 -407
- package/work-orders/assets/PRIM-1-dashboard-primitives.html +0 -624
- package/work-orders/assets/SHELL-2-account-navigation.html +0 -1159
- package/work-orders/assets/THEME-1-baseline-reference-sheet.html +0 -1352
- package/work-orders/assets/UCM-CHAT-1-ai-chat.html +0 -447
- package/work-orders/assets/UCM-THEME-13-dark-prototype.html +0 -390
- package/work-orders/assets/UCM-THEME-17-type-scale.html +0 -391
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="de">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>UCM-THEME-17 Type Scale</title>
|
|
7
|
-
<style>
|
|
8
|
-
@font-face { font-family: 'DM Sans'; font-weight: 400; font-style: normal; src: url(data:font/woff2;base64,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) format('woff2'); }
|
|
9
|
-
@font-face { font-family: 'DM Sans'; font-weight: 500; font-style: normal; src: url(data:font/woff2;base64,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) format('woff2'); }
|
|
10
|
-
@font-face { font-family: 'DM Sans'; font-weight: 600; font-style: normal; src: url(data:font/woff2;base64,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) format('woff2'); }
|
|
11
|
-
|
|
12
|
-
/* Sheet chrome: the ucm light baseline, so the sheet itself is judged by the same tokens. */
|
|
13
|
-
:root {
|
|
14
|
-
--page: #FAFAFA; --paper: #FFFFFF; --subtle: #F4F5F6;
|
|
15
|
-
--ink1: #212529; --ink2: #5B6670; --ink3: #6A7178;
|
|
16
|
-
--divider: rgba(33,37,41,.10); --ctl: rgba(33,37,41,.50);
|
|
17
|
-
--font: 'DM Sans', -apple-system, 'Segoe UI', sans-serif;
|
|
18
|
-
}
|
|
19
|
-
* { box-sizing: border-box; }
|
|
20
|
-
html, body { margin: 0; background: var(--page); color: var(--ink1); font-family: var(--font); font-size: 14px; line-height: 1.55; }
|
|
21
|
-
.sheet { max-width: 1360px; margin: 0 auto; padding: 32px 16px 80px; }
|
|
22
|
-
.sheet > header h1 { font-size: 26px; font-weight: 600; margin: 0 0 4px; }
|
|
23
|
-
.sheet > header p { margin: 0 0 6px; color: var(--ink2); max-width: 900px; }
|
|
24
|
-
.sheet h2.sec { font-size: 18px; font-weight: 600; margin: 48px 0 6px; padding-top: 16px; border-top: 1px solid var(--divider); }
|
|
25
|
-
.sheet p.note { color: var(--ink2); margin: 0 0 12px; max-width: 900px; }
|
|
26
|
-
.sheet code { font-size: 12.5px; background: var(--subtle); padding: 1px 4px; border-radius: 3px; }
|
|
27
|
-
.controls { position: sticky; top: 0; z-index: 5; background: var(--page); border-bottom: 1px solid var(--divider); padding: 10px 0; margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
|
|
28
|
-
.controls label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; font-variant-numeric: tabular-nums; }
|
|
29
|
-
.controls .lbl { color: var(--ink2); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; font-weight: 600; }
|
|
30
|
-
table.data { border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 8px 0 4px; }
|
|
31
|
-
table.data th, table.data td { text-align: left; padding: 6px 14px 6px 0; border-bottom: 1px solid var(--divider); vertical-align: top; }
|
|
32
|
-
table.data th { font-weight: 600; font-size: 12px; color: var(--ink2); }
|
|
33
|
-
.pass { color: #2E7D4F; } .warn { color: #8A6100; } .fail { color: #BF3227; }
|
|
34
|
-
ol.decisions { margin: 6px 0 0; padding-left: 20px; max-width: 900px; } ol.decisions li { margin: 2px 0; }
|
|
35
|
-
|
|
36
|
-
/* Frames */
|
|
37
|
-
.row375 { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; margin-top: 12px; }
|
|
38
|
-
.stack1280 { display: flex; flex-direction: column; gap: 24px; margin-top: 20px; }
|
|
39
|
-
.scroll { overflow-x: auto; max-width: 100%; }
|
|
40
|
-
.fwrap { flex: none; }
|
|
41
|
-
.fwrap > .cap-head { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--ink2); margin-bottom: 6px; font-variant-numeric: tabular-nums; }
|
|
42
|
-
.fwrap > .cap-head b { color: var(--ink1); font-weight: 600; }
|
|
43
|
-
.frame { background: var(--fpage, #FAFAFA); border: 1px solid var(--divider); color: var(--ink1); font-family: var(--font); overflow: hidden; }
|
|
44
|
-
.w375 { width: 375px; padding: 16px 12px 20px; }
|
|
45
|
-
.w1280 { width: 1280px; padding: 28px 32px 32px; }
|
|
46
|
-
.hidden { display: none !important; }
|
|
47
|
-
|
|
48
|
-
/* Type roles inside frames: every value comes from the scale's custom properties. */
|
|
49
|
-
.frame .t-h3 { font-size: var(--h3-fs); font-weight: var(--h3-fw); line-height: var(--h3-lh); margin: 0; }
|
|
50
|
-
.frame .t-h4 { font-size: var(--h4-fs); font-weight: var(--h4-fw); line-height: var(--h4-lh); margin: 0; }
|
|
51
|
-
.frame.w375 .t-h4 { font-size: var(--h4m-fs); }
|
|
52
|
-
.frame .t-h5 { font-size: var(--h5-fs); font-weight: var(--h5-fw); line-height: var(--h5-lh); margin: 0; }
|
|
53
|
-
.frame .t-h6 { font-size: var(--h6-fs); font-weight: var(--h6-fw); line-height: var(--h6-lh); margin: 0; }
|
|
54
|
-
.frame .t-s1 { font-size: var(--s1-fs); font-weight: var(--s1-fw); line-height: var(--s1-lh); margin: 0; }
|
|
55
|
-
.frame .t-s2 { font-size: var(--s2-fs); font-weight: var(--s2-fw); line-height: 1.4; margin: 0; }
|
|
56
|
-
.frame .t-b1 { font-size: var(--b1-fs); font-weight: 400; line-height: var(--b1-lh); margin: 0; }
|
|
57
|
-
.frame .t-b2 { font-size: var(--b2-fs); font-weight: 400; line-height: var(--b2-lh); margin: 0; }
|
|
58
|
-
.frame .t-cap { font-size: var(--cap-fs); font-weight: 400; line-height: 1.4; color: var(--ink2); margin: 0; }
|
|
59
|
-
.frame .t-btn { font-size: var(--btn-fs); font-weight: 500; line-height: 1.4; text-transform: var(--btn-tt); letter-spacing: var(--btn-ls); }
|
|
60
|
-
.frame .t-ovl { font-size: var(--ovl-fs); font-weight: var(--ovl-fw); text-transform: uppercase; letter-spacing: .4px; line-height: 1.4; }
|
|
61
|
-
.frame .muted { color: var(--ink2); }
|
|
62
|
-
|
|
63
|
-
/* Shared frame components: spacing is fixed across scales, so only type moves. */
|
|
64
|
-
.frame .card { background: var(--paper); border: 1px solid var(--divider); border-radius: 3px; padding: 16px; }
|
|
65
|
-
.frame.w375 .card { padding: 12px; }
|
|
66
|
-
.frame .stack > * + * { margin-top: 16px; }
|
|
67
|
-
.frame .gap8 > * + * { margin-top: 8px; }
|
|
68
|
-
.frame .gap4 > * + * { margin-top: 4px; }
|
|
69
|
-
.frame .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
|
70
|
-
.frame.w375 .grid2 { grid-template-columns: 1fr; }
|
|
71
|
-
.frame .bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
|
|
72
|
-
.frame .tabs { display: flex; gap: 20px; border-bottom: 1px solid var(--divider); overflow: hidden; white-space: nowrap; }
|
|
73
|
-
.frame .tabs span { padding: 8px 0 10px; color: var(--ink2); }
|
|
74
|
-
.frame .tabs span.on { color: var(--accent); box-shadow: inset 0 -2px 0 var(--accent); }
|
|
75
|
-
.frame .btn-o, .frame .btn-c { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 3px; white-space: nowrap; }
|
|
76
|
-
.frame .btn-o { border: 1px solid var(--ctl); color: var(--ink1); background: var(--paper); }
|
|
77
|
-
.frame .btn-c { background: var(--accent); color: #fff; border: 1px solid var(--accent); }
|
|
78
|
-
.frame .btn-t { color: var(--accent); padding: 5px 4px; }
|
|
79
|
-
.frame table.tbl { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
|
|
80
|
-
.frame table.tbl th { text-align: left; color: var(--ink2); padding: 6px 8px 6px 0; border-bottom: 1px solid var(--divider); }
|
|
81
|
-
.frame table.tbl td { padding: 8px 8px 8px 0; border-bottom: 1px solid var(--divider); }
|
|
82
|
-
.frame .chip { display: inline-block; padding: 1px 8px; border-radius: 10px; background: var(--subtle); color: var(--ink2); }
|
|
83
|
-
.frame .chip.ok { background: #E6F2EA; color: #2E6B47; }
|
|
84
|
-
.frame .chip.wa { background: #FBF1DC; color: #7A5A12; }
|
|
85
|
-
.frame .li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--divider); }
|
|
86
|
-
.frame .li:last-child { border-bottom: 0; }
|
|
87
|
-
.frame .kv { display: grid; grid-template-columns: 160px 1fr; gap: 6px 12px; }
|
|
88
|
-
.frame.w375 .kv { grid-template-columns: 120px 1fr; }
|
|
89
|
-
.frame .opt { display: flex; gap: 10px; align-items: center; padding: 4px 0; }
|
|
90
|
-
.frame .radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--ctl); flex: none; }
|
|
91
|
-
.frame .hero { height: 120px; border-radius: 3px; background: linear-gradient(135deg, #D9D4EE, #B9B0DD); }
|
|
92
|
-
.frame.w375 .hero { height: 80px; }
|
|
93
|
-
.frame .site-nav { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--divider); }
|
|
94
|
-
.frame .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; margin-right: 6px; }
|
|
95
|
-
|
|
96
|
-
/* Ladder */
|
|
97
|
-
.ladder { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-top: 12px; }
|
|
98
|
-
.ladder .frame { padding: 16px; }
|
|
99
|
-
.ladder .rung { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--divider); }
|
|
100
|
-
.ladder .rung .px { font-size: 11px; color: var(--ink3); font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
101
|
-
</style>
|
|
102
|
-
</head>
|
|
103
|
-
<body>
|
|
104
|
-
<div class="sheet">
|
|
105
|
-
<header>
|
|
106
|
-
<h1>UCM-THEME-17 · Typo-Skala</h1>
|
|
107
|
-
<p>Prüfblatt für die Baseline-Typografie von <code>ui-core-micha</code>. Drei Kandidaten neben der heutigen Baseline und dem MUI-Standard, auf vier Ansichten aus dem Bestand, je bei 375 px und 1280 px.</p>
|
|
108
|
-
<p>Alle Grössen, Verhältnisse und Höhen unten werden <b>beim Laden im Browser gemessen</b> (<code>getComputedStyle</code>, <code>offsetHeight</code>), nicht eingetippt. Abstände, Farben und Schrift (DM Sans, eingebettet) sind in allen Spalten gleich; es bewegt sich nur die Typografie.</p>
|
|
109
|
-
<ol class="decisions">
|
|
110
|
-
<li>Eine Skala für alle Apps und Seitentypen; der Text bleibt bei der Werkzeugdichte.</li>
|
|
111
|
-
<li>Der Seitentitel (h4) wird bei schmalen Bildschirmen eine Stufe kleiner.</li>
|
|
112
|
-
<li>Die Grösse trägt die Hierarchie, das Gewicht ist fix: alle Überschriften 600.</li>
|
|
113
|
-
<li>Das Abschnittslabel (subtitle1) liegt unter der Textgrösse und wird über das Gewicht abgesetzt.</li>
|
|
114
|
-
</ol>
|
|
115
|
-
<p class="note" style="margin-top:8px"><b>Wertrunde 1 (2026-10-04):</b> Mobiler Seitentitel näher an den Desktop-Titel, jetzt Desktop minus 2 px in allen Kandidaten (vorher A 19, B 20, C 22).</p>
|
|
116
|
-
<p class="note"><b>Wertrunde 2 (2026-10-04):</b> Kandidat B gewählt. Mobiler Seitentitel 23 px (bei 22 läge Titel zu Panel bei 375 nur bei 1.10). h1 / h2 / h3 = 36 / 32 / 28, fix. Die übrigen Spalten bleiben als verworfene Kandidaten stehen.</p>
|
|
117
|
-
<p class="note"><b>Eingefroren 2026-10-04.</b> Wertquelle ist <code>docs/TYPE-SCALE.md</code>, nicht dieses Blatt.</p>
|
|
118
|
-
<p class="note">Strukturentscheide des Operators vom 2026-10-04. MUI ist der rohe Framework-Standard (Roboto ersetzt durch DM Sans, damit nur die Grössen verglichen werden).</p>
|
|
119
|
-
</header>
|
|
120
|
-
|
|
121
|
-
<div class="controls" id="controls"><span class="lbl">Spalten</span></div>
|
|
122
|
-
|
|
123
|
-
<h2 class="sec">1 · Die Leiter</h2>
|
|
124
|
-
<p class="note">Jede Rolle in jeder Skala, mit der gemessenen Pixelgrösse. Darunter die Verhältnisse zwischen benachbarten Stufen.</p>
|
|
125
|
-
<div class="ladder" id="ladder"></div>
|
|
126
|
-
<div class="scroll"><table class="data" id="ratios"></table></div>
|
|
127
|
-
<p class="note">Zum Lesen: Ein Verhältnis unter etwa 1.12 zwischen zwei Überschriftenstufen reicht bei gleichem Gewicht nicht als Unterscheidung (heute h4/h5 = 1.11, h5/h6 = 1.13). Die Schwelle ist eine Arbeitsannahme dieses Blatts, kein Standard.</p>
|
|
128
|
-
|
|
129
|
-
<div id="screens"></div>
|
|
130
|
-
|
|
131
|
-
<h2 class="sec">Nicht gezeigt</h2>
|
|
132
|
-
<p class="note">h1 bis h3 (fast nur öffentliche Seiten) werden nach dem Entscheid über h4 bis h6 im gleichen Verhältnis gesetzt. Nicht gezeigt sind auch Zeilenumbrüche langer Titel in anderen Sprachen, Dialoge sowie Hover- und Fokuszustände. Die Ansichten folgen dem Aufbau der echten Seiten und den Varianten, die dort im Code stehen; die Inhalte sind vereinfacht.</p>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
<script>
|
|
136
|
-
const SCALES = [
|
|
137
|
-
{ id: 'mui', name: 'MUI', sub: 'Framework-Standard',
|
|
138
|
-
h3: [48, 400, 1.167], h4: [34, 400, 1.235], h4m: 34, h5: [24, 400, 1.334], h6: [20, 500, 1.6],
|
|
139
|
-
s1: [16, 400, 1.75], s2: [14, 500], b1: [16, 1.5], b2: [14, 1.43], cap: 12, btn: [14, 'uppercase', '.4px'], ovl: [12, 400] },
|
|
140
|
-
{ id: 'today', name: 'heute', sub: 'Baseline 3.11',
|
|
141
|
-
h3: [24, 600, 1.25], h4: [20, 600, 1.3], h4m: 20, h5: [18, 600, 1.3], h6: [16, 600, 1.35],
|
|
142
|
-
s1: [15, 600, 1.4], s2: [13, 500], b1: [14, 1.55], b2: [13, 1.55], cap: 12, btn: [14, 'none', '0'], ovl: [11, 600] },
|
|
143
|
-
{ id: 'a', name: 'A', sub: 'knapp',
|
|
144
|
-
h3: [26, 600, 1.25], h4: [22, 600, 1.3], h4m: 20, h5: [18, 600, 1.3], h6: [16, 600, 1.35],
|
|
145
|
-
s1: [13, 600, 1.4], s2: [13, 500], b1: [14, 1.55], b2: [13, 1.55], cap: 12, btn: [14, 'none', '0'], ovl: [11, 600] },
|
|
146
|
-
{ id: 'b', name: 'B', sub: 'Mitte der Prototypen',
|
|
147
|
-
h3: [28, 600, 1.25], h4: [24, 600, 1.3], h4m: 23, h5: [20, 600, 1.3], h6: [16, 600, 1.35],
|
|
148
|
-
s1: [13, 600, 1.4], s2: [13, 500], b1: [14, 1.55], b2: [13, 1.55], cap: 12, btn: [14, 'none', '0'], ovl: [11, 600] },
|
|
149
|
-
{ id: 'c', name: 'C', sub: 'weit',
|
|
150
|
-
h3: [32, 600, 1.25], h4: [28, 600, 1.3], h4m: 26, h5: [22, 600, 1.3], h6: [17, 600, 1.35],
|
|
151
|
-
s1: [12, 600, 1.4], s2: [13, 500], b1: [14, 1.55], b2: [13, 1.55], cap: 12, btn: [14, 'none', '0'], ovl: [11, 600] },
|
|
152
|
-
];
|
|
153
|
-
|
|
154
|
-
function vars(s) {
|
|
155
|
-
const px = v => v + 'px';
|
|
156
|
-
return [
|
|
157
|
-
['--h3-fs', px(s.h3[0])], ['--h3-fw', s.h3[1]], ['--h3-lh', s.h3[2]],
|
|
158
|
-
['--h4-fs', px(s.h4[0])], ['--h4-fw', s.h4[1]], ['--h4-lh', s.h4[2]], ['--h4m-fs', px(s.h4m)],
|
|
159
|
-
['--h5-fs', px(s.h5[0])], ['--h5-fw', s.h5[1]], ['--h5-lh', s.h5[2]],
|
|
160
|
-
['--h6-fs', px(s.h6[0])], ['--h6-fw', s.h6[1]], ['--h6-lh', s.h6[2]],
|
|
161
|
-
['--s1-fs', px(s.s1[0])], ['--s1-fw', s.s1[1]], ['--s1-lh', s.s1[2]],
|
|
162
|
-
['--s2-fs', px(s.s2[0])], ['--s2-fw', s.s2[1]],
|
|
163
|
-
['--b1-fs', px(s.b1[0])], ['--b1-lh', s.b1[1]], ['--b2-fs', px(s.b2[0])], ['--b2-lh', s.b2[1]],
|
|
164
|
-
['--cap-fs', px(s.cap)], ['--btn-fs', px(s.btn[0])], ['--btn-tt', s.btn[1]], ['--btn-ls', s.btn[2]],
|
|
165
|
-
['--ovl-fs', px(s.ovl[0])], ['--ovl-fw', s.ovl[1]],
|
|
166
|
-
].map(([k, v]) => `${k}:${v}`).join(';');
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/* Screens. Each names the variant the real page uses for each role (source in `src`). */
|
|
170
|
-
const SCREENS = [
|
|
171
|
-
{ id: 'hram', title: 'hram · Research', accent: '#2F4F96',
|
|
172
|
-
src: '<code>hram/frontend/src/pages/ResearchPage.jsx:353</code> (h4), <code>ResearchComponents/CampaignsTab.jsx</code> (h5); Rollen wie im THEME-1-Blatt.',
|
|
173
|
-
roles: 'Seitentitel h4 · Panel h5 · Abschnitt subtitle1 · Tabelle body2',
|
|
174
|
-
html: w => `
|
|
175
|
-
<div class="stack">
|
|
176
|
-
<div class="bar"><h1 class="t-h4">Research</h1><span class="t-btn btn-o">Export</span></div>
|
|
177
|
-
<div class="tabs t-btn"><span class="on">Campaigns</span><span>Scenarios</span><span>Sensitivity</span>${w === 1280 ? '<span>Verification</span>' : ''}</div>
|
|
178
|
-
<div class="${w === 1280 ? 'grid2' : 'stack'}">
|
|
179
|
-
<div class="card stack">
|
|
180
|
-
<div class="bar"><h2 class="t-h5">Campaigns</h2><span class="t-btn btn-c">New campaign</span></div>
|
|
181
|
-
<div class="gap8">
|
|
182
|
-
<h3 class="t-s1">Active</h3>
|
|
183
|
-
<table class="tbl t-b2"><thead><tr><th>Name</th><th>Window</th><th>Status</th></tr></thead><tbody>
|
|
184
|
-
<tr><td>Kilombero 2026</td><td>19 d</td><td><span class="chip ok t-cap">solved</span></td></tr>
|
|
185
|
-
<tr><td>Synth 2026</td><td>19 d</td><td><span class="chip wa t-cap">queued</span></td></tr>
|
|
186
|
-
<tr><td>Morogoro pilot</td><td>12 d</td><td><span class="chip t-cap">draft</span></td></tr>
|
|
187
|
-
</tbody></table>
|
|
188
|
-
</div>
|
|
189
|
-
<div class="gap8">
|
|
190
|
-
<h3 class="t-s1">Archived</h3>
|
|
191
|
-
<p class="t-b2 muted">Two campaigns, last run 2026-08-14.</p>
|
|
192
|
-
</div>
|
|
193
|
-
</div>
|
|
194
|
-
<div class="card stack">
|
|
195
|
-
<h2 class="t-h5">Scenario results</h2>
|
|
196
|
-
<div class="gap8">
|
|
197
|
-
<h3 class="t-s1">Parameters</h3>
|
|
198
|
-
<div class="kv t-b1"><span class="muted">Budget</span><span>TZS 412 m / year</span><span class="muted">Allocation</span><span>preallocation</span><span class="muted">Divisions</span><span>14</span></div>
|
|
199
|
-
</div>
|
|
200
|
-
<div class="gap4">
|
|
201
|
-
<h3 class="t-s1">Coverage</h3>
|
|
202
|
-
<p class="t-b1">78.4 % of the target population within 5 km.</p>
|
|
203
|
-
<p class="t-cap">Solved 2026-10-02 · 11 min · MILP gap 0.4 %</p>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
</div>` },
|
|
208
|
-
{ id: 'jg', title: 'jg-ferien · Dashboard', accent: '#367964',
|
|
209
|
-
src: '<code>jg-ferien/frontend/src/pages/DashboardPage.jsx:187</code> (h5 als Seitentitel), <code>:202</code>, <code>:264</code> (h6).',
|
|
210
|
-
roles: 'Seitentitel <b>h5</b> (Rolle wäre h4) · Karte h6 · Liste body1',
|
|
211
|
-
flag: 'Diese Seite nutzt h5 als Seitentitel. Sie bekommt darum nicht den Seitentitel-Wert der Skala und keine Mobilstufe, sondern den Panel-Wert. Wie jeder Seitentitel im Bestand auf h4 kommt, regelt der Umsetzungsauftrag.',
|
|
212
|
-
html: w => `
|
|
213
|
-
<div class="stack">
|
|
214
|
-
<div class="card"><h1 class="t-h5">Hallo Micha</h1><p class="t-b2 muted" style="margin-top:4px">Sommerlager 2026 · Leitungsteam</p></div>
|
|
215
|
-
<div class="${w === 1280 ? 'grid2' : 'stack'}">
|
|
216
|
-
<div class="card">
|
|
217
|
-
<h2 class="t-h6">Anstehend · 3</h2>
|
|
218
|
-
<div style="margin-top:8px">
|
|
219
|
-
<div class="li"><div class="gap4"><p class="t-b1">Lagerprogramm freigeben</p><p class="t-cap">bis Fr, 10. Okt.</p></div><span class="t-btn btn-t">Erledigt</span></div>
|
|
220
|
-
<div class="li"><div class="gap4"><p class="t-b1">Anmeldungen prüfen (4 neu)</p><p class="t-cap">seit gestern</p></div><span class="t-btn btn-t">Erledigt</span></div>
|
|
221
|
-
<div class="li"><div class="gap4"><p class="t-b1">Material-Liste ergänzen</p><p class="t-cap">bis Mo, 13. Okt.</p></div><span class="t-btn btn-t">Erledigt</span></div>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
<div class="card">
|
|
225
|
-
<h2 class="t-h6">Deine Events</h2>
|
|
226
|
-
<div style="margin-top:8px">
|
|
227
|
-
<div class="li"><div class="gap4"><p class="t-b1">Leitungsweekend</p><p class="t-cap">18.–19. Okt. · Gurnigel</p></div><span class="t-btn btn-c">Anmelden</span></div>
|
|
228
|
-
<div class="li"><div class="gap4"><p class="t-b1">Sommerlager 2026</p><p class="t-cap">12.–25. Juli · Kandersteg</p></div><span class="chip ok t-cap">angemeldet</span></div>
|
|
229
|
-
</div>
|
|
230
|
-
</div>
|
|
231
|
-
</div>
|
|
232
|
-
</div>` },
|
|
233
|
-
{ id: 'kz', title: 'kerzenziehen · Admin', accent: '#468AB2',
|
|
234
|
-
src: 'Messung vom 2026-10-04 (Seitentitel h5 18/600); Aufbau nach der Admin-Ansicht, Inhalt vereinfacht.',
|
|
235
|
-
roles: 'Seitentitel <b>h5</b> (Rolle wäre h4) · Abschnitt subtitle1 · Tabelle body2',
|
|
236
|
-
flag: 'Wie jg: h5 als Seitentitel, also Panel-Wert statt Seitentitel-Wert.',
|
|
237
|
-
html: w => `
|
|
238
|
-
<div class="stack">
|
|
239
|
-
<div class="bar"><h1 class="t-h5">Zeitfenster</h1><span class="t-btn btn-c">Neues Zeitfenster</span></div>
|
|
240
|
-
<div class="card stack">
|
|
241
|
-
<div class="gap8">
|
|
242
|
-
<h2 class="t-s1">Samstag, 6. Dezember</h2>
|
|
243
|
-
<table class="tbl t-b2"><thead><tr><th>Zeit</th><th>Belegt</th>${w === 1280 ? '<th>Gruppe</th>' : ''}<th>Status</th></tr></thead><tbody>
|
|
244
|
-
<tr><td>10:00–11:30</td><td>18 / 20</td>${w === 1280 ? '<td>Familien</td>' : ''}<td><span class="chip wa t-cap">fast voll</span></td></tr>
|
|
245
|
-
<tr><td>13:00–14:30</td><td>9 / 20</td>${w === 1280 ? '<td>Familien</td>' : ''}<td><span class="chip ok t-cap">offen</span></td></tr>
|
|
246
|
-
<tr><td>15:00–16:30</td><td>20 / 20</td>${w === 1280 ? '<td>Schulklasse</td>' : ''}<td><span class="chip t-cap">voll</span></td></tr>
|
|
247
|
-
</tbody></table>
|
|
248
|
-
</div>
|
|
249
|
-
<div class="gap8">
|
|
250
|
-
<h2 class="t-s1">Sonntag, 7. Dezember</h2>
|
|
251
|
-
<table class="tbl t-b2"><tbody>
|
|
252
|
-
<tr><td>10:00–11:30</td><td>4 / 20</td>${w === 1280 ? '<td>Familien</td>' : ''}<td><span class="chip ok t-cap">offen</span></td></tr>
|
|
253
|
-
</tbody></table>
|
|
254
|
-
</div>
|
|
255
|
-
</div>
|
|
256
|
-
</div>` },
|
|
257
|
-
{ id: 'sva', title: 'survey_app · Umfrageseite', accent: '#432CA1',
|
|
258
|
-
src: '<code>SurveyRenderer.jsx:2036</code> (h4 Abschnittstitel), <code>SurveyQuestionHeader.jsx:92</code> (h6 Fragetitel).',
|
|
259
|
-
roles: 'Abschnittstitel h4 · Fragetitel h6 · Antworten body1',
|
|
260
|
-
flag: 'Die Seiten setzen heute alle Überschriften auf 800 (Site-Builder). Nach Entscheid 3 gilt hier das fixe Gewicht der Skala; gezeigt ist 600.',
|
|
261
|
-
html: w => `
|
|
262
|
-
<div class="stack">
|
|
263
|
-
<div class="site-nav"><span class="t-h6"><span class="dot"></span>Hafen Basel</span><span class="t-b2 muted">DE · FR</span></div>
|
|
264
|
-
<div class="hero"></div>
|
|
265
|
-
<div class="gap8">
|
|
266
|
-
<h1 class="t-h4">Ihr Aufenthalt im Hafen</h1>
|
|
267
|
-
<p class="t-b1 muted">Abschnitt 2 von 4 · etwa 3 Minuten</p>
|
|
268
|
-
</div>
|
|
269
|
-
<div class="card stack">
|
|
270
|
-
<div class="gap8">
|
|
271
|
-
<h2 class="t-h6">Wie sind Sie heute angereist?</h2>
|
|
272
|
-
<div class="t-b1"><div class="opt"><span class="radio"></span>Zu Fuss oder mit dem Velo</div><div class="opt"><span class="radio"></span>Mit Tram oder Bus</div><div class="opt"><span class="radio"></span>Mit dem Auto</div></div>
|
|
273
|
-
</div>
|
|
274
|
-
<div class="gap8">
|
|
275
|
-
<h2 class="t-h6">Wie lange bleiben Sie ungefähr?</h2>
|
|
276
|
-
<p class="t-cap">Eine Schätzung genügt.</p>
|
|
277
|
-
<div class="t-b1"><div class="opt"><span class="radio"></span>Weniger als eine Stunde</div><div class="opt"><span class="radio"></span>Ein bis drei Stunden</div></div>
|
|
278
|
-
</div>
|
|
279
|
-
</div>
|
|
280
|
-
<div class="bar"><span class="t-btn btn-o">Zurück</span><span class="t-btn btn-c">Weiter</span></div>
|
|
281
|
-
</div>` },
|
|
282
|
-
];
|
|
283
|
-
|
|
284
|
-
const LADDER = [
|
|
285
|
-
['t-h4', 'h4', 'Seitentitel'], ['t-h4 m', 'h4 @375', 'Seitentitel'], ['t-h5', 'h5', 'Panel / Dialog'],
|
|
286
|
-
['t-h6', 'h6', 'Kartentitel'], ['t-b1', 'body1', 'Fliesstext'], ['t-s1', 'subtitle1', 'Abschnittslabel'],
|
|
287
|
-
['t-b2', 'body2', 'Tabelle und Nebentext'], ['t-cap', 'caption', 'Datum, Hinweis'],
|
|
288
|
-
];
|
|
289
|
-
|
|
290
|
-
const fmt = n => (Math.round(n * 100) / 100).toFixed(2);
|
|
291
|
-
const fsOf = el => parseFloat(getComputedStyle(el).fontSize);
|
|
292
|
-
|
|
293
|
-
function buildControls() {
|
|
294
|
-
const c = document.getElementById('controls');
|
|
295
|
-
SCALES.forEach(s => {
|
|
296
|
-
const l = document.createElement('label');
|
|
297
|
-
l.innerHTML = `<input type="checkbox" checked data-scale="${s.id}"> <b>${s.name}</b> <span style="color:var(--ink2)">${s.sub}</span>`;
|
|
298
|
-
c.appendChild(l);
|
|
299
|
-
});
|
|
300
|
-
c.addEventListener('change', e => {
|
|
301
|
-
const id = e.target.dataset.scale;
|
|
302
|
-
document.querySelectorAll(`[data-scale-col="${id}"]`).forEach(el => el.classList.toggle('hidden', !e.target.checked));
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
function buildLadder() {
|
|
307
|
-
const host = document.getElementById('ladder');
|
|
308
|
-
SCALES.forEach(s => {
|
|
309
|
-
const wrap = document.createElement('div');
|
|
310
|
-
wrap.className = 'fwrap'; wrap.dataset.scaleCol = s.id;
|
|
311
|
-
const rungs = LADDER.map(([cls, v, text]) => {
|
|
312
|
-
const mobile = cls.endsWith(' m');
|
|
313
|
-
const c = cls.replace(' m', '');
|
|
314
|
-
return `<div class="rung"><span class="${c}" data-m="${mobile ? 1 : 0}">${text}</span><span class="px" data-px>${v}</span></div>`;
|
|
315
|
-
}).join('');
|
|
316
|
-
wrap.innerHTML = `<div class="cap-head"><span><b>${s.name}</b> · ${s.sub}</span></div><div class="frame" style="${vars(s)}">${rungs}</div>`;
|
|
317
|
-
host.appendChild(wrap);
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
function measureLadder() {
|
|
322
|
-
document.querySelectorAll('#ladder .rung').forEach(r => {
|
|
323
|
-
const el = r.querySelector('[data-m]');
|
|
324
|
-
const frame = el.closest('.frame');
|
|
325
|
-
let fs = fsOf(el);
|
|
326
|
-
if (el.dataset.m === '1') fs = parseFloat(getComputedStyle(frame).getPropertyValue('--h4m-fs'));
|
|
327
|
-
const fw = getComputedStyle(el).fontWeight;
|
|
328
|
-
if (el.dataset.m === '1') el.style.fontSize = fs + 'px';
|
|
329
|
-
const tag = r.querySelector('[data-px]');
|
|
330
|
-
tag.textContent = `${tag.textContent} · ${fs}/${fw}`;
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
function buildRatios() {
|
|
335
|
-
const t = document.getElementById('ratios');
|
|
336
|
-
const probe = document.createElement('div');
|
|
337
|
-
probe.className = 'frame'; probe.style.position = 'absolute'; probe.style.visibility = 'hidden';
|
|
338
|
-
probe.innerHTML = '<span class="t-h4"></span><span class="t-h5"></span><span class="t-h6"></span><span class="t-b1"></span><span class="t-s1"></span>';
|
|
339
|
-
document.body.appendChild(probe);
|
|
340
|
-
const rows = SCALES.map(s => {
|
|
341
|
-
probe.setAttribute('style', vars(s) + ';position:absolute;visibility:hidden');
|
|
342
|
-
const [h4, h5, h6, b1, s1] = [...probe.children].map(fsOf);
|
|
343
|
-
const h4m = parseFloat(getComputedStyle(probe).getPropertyValue('--h4m-fs'));
|
|
344
|
-
const cell = (r, lo) => `<td class="${r < lo ? 'warn' : 'pass'}">${fmt(r)}</td>`;
|
|
345
|
-
return `<tr data-scale-col="${s.id}"><td><b>${s.name}</b></td>${cell(h4 / h5, 1.12)}${cell(h5 / h6, 1.12)}${cell(h6 / b1, 1.12)}<td>${fmt(h4 / b1)}</td><td>${fmt(h4m / b1)}</td>${cell(h4m / h5, 1.12)}<td class="${s1 < b1 ? 'pass' : 'warn'}">${fmt(s1 / b1)}</td></tr>`;
|
|
346
|
-
}).join('');
|
|
347
|
-
probe.remove();
|
|
348
|
-
t.innerHTML = `<thead><tr><th>Skala</th><th>h4 / h5<br>Titel zu Panel</th><th>h5 / h6<br>Panel zu Karte</th><th>h6 / body1<br>Karte zu Text</th><th>h4 / body1<br>bei 1280</th><th>h4 / body1<br>bei 375</th><th>h4 / h5<br>bei 375</th><th>subtitle1 / body1<br>Label zu Text (< 1 gewollt)</th></tr></thead><tbody>${rows}</tbody>`;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
function buildScreens() {
|
|
352
|
-
const host = document.getElementById('screens');
|
|
353
|
-
SCREENS.forEach((sc, i) => {
|
|
354
|
-
const sec = document.createElement('section');
|
|
355
|
-
const frames = w => SCALES.map(s => `
|
|
356
|
-
<div class="fwrap" data-scale-col="${s.id}">
|
|
357
|
-
<div class="cap-head"><span><b>${s.name}</b> · ${s.sub} · ${w} px</span><span data-h="${sc.id}-${w}-${s.id}"></span></div>
|
|
358
|
-
<div class="frame w${w}" style="${vars(s)};--accent:${sc.accent}">${sc.html(w)}</div>
|
|
359
|
-
</div>`).join('');
|
|
360
|
-
sec.innerHTML = `
|
|
361
|
-
<h2 class="sec">${i + 2} · ${sc.title}</h2>
|
|
362
|
-
<p class="note">Rollen: ${sc.roles}. Quelle: ${sc.src}</p>
|
|
363
|
-
${sc.flag ? `<p class="note"><b>Hinweis:</b> ${sc.flag}</p>` : ''}
|
|
364
|
-
<h3 style="font-size:14px;font-weight:600;margin:16px 0 0">375 px</h3>
|
|
365
|
-
<div class="row375">${frames(375)}</div>
|
|
366
|
-
<h3 style="font-size:14px;font-weight:600;margin:28px 0 0">1280 px</h3>
|
|
367
|
-
<div class="scroll"><div class="stack1280">${frames(1280)}</div></div>`;
|
|
368
|
-
host.appendChild(sec);
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
function measureHeights() {
|
|
373
|
-
SCREENS.forEach(sc => [375, 1280].forEach(w => {
|
|
374
|
-
const frameOf = id => document.querySelector(`[data-h="${sc.id}-${w}-${id}"]`).closest('.fwrap').querySelector('.frame');
|
|
375
|
-
const h0 = frameOf('today').offsetHeight;
|
|
376
|
-
SCALES.forEach(s => {
|
|
377
|
-
const h = frameOf(s.id).offsetHeight;
|
|
378
|
-
const d = h - h0;
|
|
379
|
-
const tag = document.querySelector(`[data-h="${sc.id}-${w}-${s.id}"]`);
|
|
380
|
-
tag.textContent = s.id === 'today' ? `Höhe ${h} px` : `Höhe ${h} px (${d >= 0 ? '+' : ''}${d} / ${d >= 0 ? '+' : ''}${(d / h0 * 100).toFixed(1)} %)`;
|
|
381
|
-
});
|
|
382
|
-
}));
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
buildControls();
|
|
386
|
-
buildLadder();
|
|
387
|
-
buildScreens();
|
|
388
|
-
document.fonts.ready.then(() => { measureLadder(); buildRatios(); measureHeights(); });
|
|
389
|
-
</script>
|
|
390
|
-
</body>
|
|
391
|
-
</html>
|