diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index 3665b42bf..3c4dd24a3 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1552,4 +1552,4 @@ fun Context.getVersionCode(): Int = getPackageInfo().versionCode } -fun Int.toBool() = if (this > 0) true else false +fun Int.toBool() = this > 0 diff --git a/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt b/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt index 92b29d2fb..2779f0776 100644 --- a/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt +++ b/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt @@ -695,7 +695,7 @@ fun PostAndCommunityContextHeader( ) { Text( text = post.name, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleSmall, modifier = Modifier.clickable { onPostClick(post.id) }, ) Row( diff --git a/app/src/main/java/com/jerboa/ui/components/common/AppBars.kt b/app/src/main/java/com/jerboa/ui/components/common/AppBars.kt index ef98785b7..cf94c3784 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/AppBars.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/AppBars.kt @@ -51,6 +51,7 @@ import androidx.compose.ui.unit.dp import com.jerboa.R import com.jerboa.datatypes.UserViewType import com.jerboa.datatypes.VoteDisplayMode +import com.jerboa.datatypes.data import com.jerboa.datatypes.samplePerson import com.jerboa.datatypes.samplePost import com.jerboa.db.entity.Account @@ -63,6 +64,7 @@ import com.jerboa.siFormat import com.jerboa.ui.components.home.NavTab import com.jerboa.ui.components.person.PersonProfileLink import com.jerboa.ui.theme.* +import it.vercruysse.lemmyapi.dto.SortType import it.vercruysse.lemmyapi.v0x19.datatypes.CommunityModeratorView import it.vercruysse.lemmyapi.v0x19.datatypes.Person import it.vercruysse.lemmyapi.v0x19.datatypes.PersonId @@ -562,7 +564,7 @@ fun Sidebar( title?.also { Text( text = it, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, ) } TimeAgo( @@ -811,3 +813,35 @@ fun ActionTopBar( }, ) } + +@Composable +fun DualHeaderTitle( + topText: String, + bottomText: String, + @SuppressLint("ModifierParameter") topModifier: Modifier = Modifier, +) { + Column { + Text( + text = topText, + maxLines = 1, + style = MaterialTheme.typography.titleSmall, + modifier = topModifier, + ) + Text( + text = bottomText, + maxLines = 1, + style = MaterialTheme.typography.labelSmall, + ) + } +} + +@Composable +fun DualHeaderTitle( + topText: String, + selectedSortType: SortType, + @SuppressLint("ModifierParameter") topModifier: Modifier = Modifier, +) = DualHeaderTitle( + topText = topText, + bottomText = stringResource(selectedSortType.data.shortForm), + topModifier = topModifier, +) diff --git a/app/src/main/java/com/jerboa/ui/components/common/InputFields.kt b/app/src/main/java/com/jerboa/ui/components/common/InputFields.kt index f717470cd..b17f2bd8e 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/InputFields.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/InputFields.kt @@ -195,7 +195,7 @@ fun CreateLinkDialog( ) { Text( text = stringResource(R.string.input_fields_insert_link), - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurface, ) OutlinedTextField( diff --git a/app/src/main/java/com/jerboa/ui/components/community/Community.kt b/app/src/main/java/com/jerboa/ui/components/community/Community.kt index 30b363a4a..9e913cd87 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/Community.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/Community.kt @@ -1,6 +1,5 @@ package com.jerboa.ui.components.community -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -40,16 +39,15 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.jerboa.PostViewMode import com.jerboa.R -import com.jerboa.datatypes.data import com.jerboa.datatypes.sampleCommunityView import com.jerboa.feat.BlurNSFW import com.jerboa.feat.needBlur +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.LargerCircularIcon import com.jerboa.ui.components.common.PictrsBannerImage import com.jerboa.ui.components.common.SortOptionsDropdown @@ -100,7 +98,7 @@ fun CommunityTopSection( ) { Text( text = communityView.community.title, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurface, ) } @@ -185,9 +183,10 @@ fun CommunityHeader( TopAppBar( scrollBehavior = scrollBehavior, title = { - CommunityHeaderTitle( - communityName = communityName, + DualHeaderTitle( + topText = communityName, selectedSortType = selectedSortType, + topModifier = Modifier.customMarquee(), ) }, navigationIcon = { @@ -245,27 +244,6 @@ fun CommunityHeader( ) } -@OptIn(ExperimentalFoundationApi::class) -@Composable -fun CommunityHeaderTitle( - communityName: String, - selectedSortType: SortType, -) { - val ctx = LocalContext.current - Column { - Text( - text = communityName, - style = MaterialTheme.typography.titleLarge, - maxLines = 1, - modifier = Modifier.customMarquee(), - ) - Text( - text = ctx.getString(selectedSortType.data.shortForm), - style = MaterialTheme.typography.titleMedium, - ) - } -} - @Composable fun CommunityMoreDropdown( expanded: Boolean, diff --git a/app/src/main/java/com/jerboa/ui/components/community/CommunityLink.kt b/app/src/main/java/com/jerboa/ui/components/community/CommunityLink.kt index 250e6e873..736df83ac 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/CommunityLink.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/CommunityLink.kt @@ -135,7 +135,7 @@ fun CommunityLinkLarger( CommunityLink( community = community, color = MaterialTheme.colorScheme.onSurface, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, size = LINK_ICON_SIZE, thumbnailSize = LARGER_ICON_THUMBNAIL_SIZE, spacing = DRAWER_ITEM_SPACING, @@ -169,7 +169,7 @@ fun CommunityLinkLargerWithUserCount( Modifier .padding(LARGE_PADDING) .fillMaxWidth(), - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, onClick = onClick, showDefaultIcon = showDefaultIcon, blurNSFW = blurNSFW, diff --git a/app/src/main/java/com/jerboa/ui/components/home/Home.kt b/app/src/main/java/com/jerboa/ui/components/home/Home.kt index 15fd56293..4ff67384f 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/Home.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/Home.kt @@ -40,8 +40,8 @@ import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.tooling.preview.Preview import com.jerboa.PostViewMode import com.jerboa.R -import com.jerboa.datatypes.data import com.jerboa.datatypes.getLocalizedListingTypeName +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.MenuItem import com.jerboa.ui.components.common.MyMarkdownText import com.jerboa.ui.components.common.SortOptionsDropdown @@ -51,24 +51,6 @@ import it.vercruysse.lemmyapi.dto.SortType import it.vercruysse.lemmyapi.v0x19.datatypes.Tagline import me.saket.cascade.CascadeDropdownMenu -@Composable -fun HomeHeaderTitle( - selectedSortType: SortType, - selectedListingType: ListingType, -) { - val ctx = LocalContext.current - Column { - Text( - text = getLocalizedListingTypeName(ctx, selectedListingType), - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = ctx.getString(selectedSortType.data.shortForm), - style = MaterialTheme.typography.titleMedium, - ) - } -} - @OptIn(ExperimentalMaterial3Api::class) @Composable fun HomeHeader( @@ -83,6 +65,7 @@ fun HomeHeader( onClickSiteInfo: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, ) { + val ctx = LocalContext.current var showSortOptions by remember { mutableStateOf(false) } var showListingTypeOptions by remember { mutableStateOf(false) } var showMoreOptions by remember { mutableStateOf(false) } @@ -90,9 +73,9 @@ fun HomeHeader( TopAppBar( scrollBehavior = scrollBehavior, title = { - HomeHeaderTitle( + DualHeaderTitle( selectedSortType = selectedSortType, - selectedListingType = selectedListingType, + topText = getLocalizedListingTypeName(ctx, selectedListingType), ) }, navigationIcon = { diff --git a/app/src/main/java/com/jerboa/ui/components/inbox/Inbox.kt b/app/src/main/java/com/jerboa/ui/components/inbox/Inbox.kt index 684671c8a..6f676481b 100644 --- a/app/src/main/java/com/jerboa/ui/components/inbox/Inbox.kt +++ b/app/src/main/java/com/jerboa/ui/components/inbox/Inbox.kt @@ -1,7 +1,6 @@ package com.jerboa.ui.components.inbox import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.DoneAll import androidx.compose.material.icons.outlined.FilterList @@ -9,8 +8,6 @@ import androidx.compose.material.icons.outlined.Menu import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable @@ -23,6 +20,7 @@ import androidx.compose.ui.res.stringResource import com.jerboa.R import com.jerboa.UnreadOrAll import com.jerboa.datatypes.getLocalizedUnreadOrAllName +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.UnreadOrAllOptionsDropDown @OptIn(ExperimentalMaterial3Api::class) @@ -90,19 +88,11 @@ fun InboxHeaderTitle( selectedUnreadOrAll: UnreadOrAll, unreadCount: Long? = null, ) { - var title = stringResource(R.string.inbox_inbox) val ctx = LocalContext.current + var title = stringResource(R.string.inbox_inbox) + if (unreadCount != null && unreadCount > 0) { - title = "$title ($unreadCount)" - } - Column { - Text( - text = title, - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll), - style = MaterialTheme.typography.titleMedium, - ) + title += " ($unreadCount)" } + DualHeaderTitle(topText = title, bottomText = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll)) } diff --git a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt index 45ad43c16..91582213a 100644 --- a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt +++ b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt @@ -41,10 +41,10 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.jerboa.R -import com.jerboa.datatypes.data import com.jerboa.datatypes.samplePersonView import com.jerboa.feat.openMatrix import com.jerboa.ui.components.common.DotSpacer +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.LargerCircularIcon import com.jerboa.ui.components.common.MenuItem import com.jerboa.ui.components.common.MyMarkdownText @@ -103,7 +103,7 @@ fun PersonProfileTopSection( ) { PersonName( person = personView.person, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, ) TimeAgo( @@ -181,8 +181,8 @@ fun PersonProfileHeader( TopAppBar( scrollBehavior = scrollBehavior, title = { - PersonProfileHeaderTitle( - personName = personName, + DualHeaderTitle( + topText = personName, selectedSortType = selectedSortType, ) }, @@ -270,23 +270,6 @@ fun PersonProfileHeader( ) } -@Composable -fun PersonProfileHeaderTitle( - personName: String, - selectedSortType: SortType, -) { - Column { - Text( - text = personName, - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = LocalContext.current.getString(selectedSortType.data.shortForm), - style = MaterialTheme.typography.titleMedium, - ) - } -} - @Composable fun PersonProfileMoreDropdown( personName: String, diff --git a/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt b/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt index a1c8e05f1..4681e586b 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt @@ -20,10 +20,8 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.SnackbarHostState -import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.rememberTopAppBarState @@ -83,6 +81,7 @@ import com.jerboa.ui.components.comment.reply.CommentReplyReturn import com.jerboa.ui.components.common.ApiErrorText import com.jerboa.ui.components.common.CommentNavigationBottomAppBar import com.jerboa.ui.components.common.CommentSortOptionsDropdown +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.JerboaPullRefreshIndicator import com.jerboa.ui.components.common.JerboaSnackbarHost import com.jerboa.ui.components.common.LoadingBar @@ -115,21 +114,6 @@ object PostViewReturn { const val POST_VIEW = "post-view::return(post-view)" } -@Composable -fun CommentsHeaderTitle(selectedSortType: CommentSortType) { - val ctx = LocalContext.current - Column { - Text( - text = stringResource(R.string.post_activity_comments), - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = getLocalizedCommentSortTypeName(ctx, selectedSortType), - style = MaterialTheme.typography.titleMedium, - ) - } -} - @OptIn( ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class, @@ -246,8 +230,9 @@ fun PostActivity( Column { TopAppBar( title = { - CommentsHeaderTitle( - selectedSortType = selectedSortType, + DualHeaderTitle( + topText = stringResource(R.string.post_activity_comments), + bottomText = getLocalizedCommentSortTypeName(ctx, selectedSortType), ) }, navigationIcon = { diff --git a/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt b/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt index 3f1fbf403..a7f1bef2a 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt @@ -337,7 +337,7 @@ fun PostName( Text( text = postView.post.name, - style = MaterialTheme.typography.headlineLarge, + style = MaterialTheme.typography.headlineMedium, color = color, modifier = Modifier.testTag("jerboa:posttitle"), ) @@ -1739,7 +1739,7 @@ fun MetadataCard(post: Post) { if (post.name != embedTitle) { Text( text = embedTitle, - style = MaterialTheme.typography.titleLarge, + style = MaterialTheme.typography.titleMedium, ) if (post.embed_description != null) { HorizontalDivider(modifier = Modifier.padding(vertical = LARGE_PADDING)) diff --git a/app/src/main/java/com/jerboa/ui/components/post/composables/PostComposables.kt b/app/src/main/java/com/jerboa/ui/components/post/composables/PostComposables.kt index fae5ff5ad..379ef0523 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/composables/PostComposables.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/composables/PostComposables.kt @@ -121,7 +121,6 @@ fun CreateEditPostBody( suggestedTitle?.let { Text( text = stringResource(R.string.create_post_copy_suggested_title, it), - style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onBackground.muted, modifier = Modifier.clickable { onNameChange(it) }, ) diff --git a/app/src/main/java/com/jerboa/ui/components/registrationapplications/RegistrationApplications.kt b/app/src/main/java/com/jerboa/ui/components/registrationapplications/RegistrationApplications.kt index 20c565777..92dbd82bb 100644 --- a/app/src/main/java/com/jerboa/ui/components/registrationapplications/RegistrationApplications.kt +++ b/app/src/main/java/com/jerboa/ui/components/registrationapplications/RegistrationApplications.kt @@ -64,6 +64,7 @@ import com.jerboa.model.RegistrationApplicationsViewModel import com.jerboa.model.SiteViewModel import com.jerboa.ui.components.common.ApiEmptyText import com.jerboa.ui.components.common.ApiErrorText +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.JerboaPullRefreshIndicator import com.jerboa.ui.components.common.LoadingBar import com.jerboa.ui.components.common.MarkdownTextField @@ -143,16 +144,7 @@ fun RegistrationApplicationsHeaderTitle( if (unreadCount != null && unreadCount > 0) { title = "$title ($unreadCount)" } - Column { - Text( - text = title, - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll), - style = MaterialTheme.typography.titleMedium, - ) - } + DualHeaderTitle(topText = title, bottomText = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll)) } @OptIn(ExperimentalMaterialApi::class) diff --git a/app/src/main/java/com/jerboa/ui/components/reports/Reports.kt b/app/src/main/java/com/jerboa/ui/components/reports/Reports.kt index 177e7f9fe..3e88c1ca7 100644 --- a/app/src/main/java/com/jerboa/ui/components/reports/Reports.kt +++ b/app/src/main/java/com/jerboa/ui/components/reports/Reports.kt @@ -2,7 +2,6 @@ package com.jerboa.ui.components.reports import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material.icons.Icons @@ -31,6 +30,7 @@ import androidx.compose.ui.tooling.preview.Preview import com.jerboa.R import com.jerboa.UnreadOrAll import com.jerboa.datatypes.getLocalizedUnreadOrAllName +import com.jerboa.ui.components.common.DualHeaderTitle import com.jerboa.ui.components.common.MyMarkdownText import com.jerboa.ui.components.common.UnreadOrAllOptionsDropDown import com.jerboa.ui.components.person.PersonProfileLink @@ -100,16 +100,7 @@ fun ReportsHeaderTitle( if (unreadCount != null && unreadCount > 0) { title = "$title ($unreadCount)" } - Column { - Text( - text = title, - style = MaterialTheme.typography.titleLarge, - ) - Text( - text = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll), - style = MaterialTheme.typography.titleMedium, - ) - } + DualHeaderTitle(topText = title, bottomText = getLocalizedUnreadOrAllName(ctx, selectedUnreadOrAll)) } @Composable diff --git a/app/src/main/java/com/jerboa/ui/theme/Theme.kt b/app/src/main/java/com/jerboa/ui/theme/Theme.kt index ba8c04218..e90fa9ef3 100644 --- a/app/src/main/java/com/jerboa/ui/theme/Theme.kt +++ b/app/src/main/java/com/jerboa/ui/theme/Theme.kt @@ -10,6 +10,7 @@ import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext @@ -102,7 +103,9 @@ fun JerboaTheme( ThemeMode.Black -> makeBlack(colorPair.second) } - val typography = generateTypography(fontSize) + val typography = remember(fontSize) { + generateTypography(fontSize) + } val view = LocalView.current diff --git a/app/src/main/java/com/jerboa/ui/theme/Type.kt b/app/src/main/java/com/jerboa/ui/theme/Type.kt index f2b4a182b..31035bf41 100644 --- a/app/src/main/java/com/jerboa/ui/theme/Type.kt +++ b/app/src/main/java/com/jerboa/ui/theme/Type.kt @@ -1,76 +1,61 @@ package com.jerboa.ui.theme import androidx.compose.material3.Typography -import androidx.compose.ui.unit.sp -const val FONT_SMALL_ADD = -7 -const val FONT_MEDIUM_ADD = -3 -const val FONT_LARGE_ADD = 0 -const val LINE_HEIGHT_MULTIPLIER = 1.5 +const val COMPOSE_BODY_LARGE_DEFAULT = 16 +val BASE_TYPOGRAPHY = Typography() -// Set of Material typography styles to start with -// Example from here: https://egeniq.com/blog/dynamic-font-sizes-with-jetpack-compose/ fun generateTypography(baseFontSize: Int): Typography { + val customRatio = baseFontSize.toFloat() / COMPOSE_BODY_LARGE_DEFAULT return Typography( - bodySmall = - Typography().bodySmall.copy( - fontSize = baseFontSize.plus(FONT_SMALL_ADD).sp, - lineHeight = baseFontSize.plus(FONT_SMALL_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - bodyMedium = - Typography().bodyMedium.copy( - fontSize = baseFontSize.plus(FONT_MEDIUM_ADD).sp, - lineHeight = baseFontSize.plus(FONT_MEDIUM_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - bodyLarge = - Typography().bodyLarge.copy( - fontSize = baseFontSize.plus(FONT_LARGE_ADD).sp, - lineHeight = baseFontSize.plus(FONT_LARGE_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - titleSmall = - Typography().titleSmall.copy( - fontSize = baseFontSize.plus(FONT_SMALL_ADD).sp, - lineHeight = baseFontSize.plus(FONT_SMALL_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - titleMedium = - Typography().titleMedium.copy( - fontSize = baseFontSize.plus(FONT_MEDIUM_ADD).sp, - lineHeight = baseFontSize.plus(FONT_MEDIUM_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - titleLarge = - Typography().titleLarge.copy( - fontSize = baseFontSize.plus(FONT_LARGE_ADD).sp, - lineHeight = baseFontSize.plus(FONT_LARGE_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - headlineSmall = - Typography().headlineSmall.copy( - fontSize = baseFontSize.plus(FONT_SMALL_ADD).sp, - lineHeight = baseFontSize.plus(FONT_SMALL_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - headlineMedium = - Typography().headlineMedium.copy( - fontSize = baseFontSize.plus(FONT_MEDIUM_ADD).sp, - lineHeight = baseFontSize.plus(FONT_MEDIUM_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - headlineLarge = - Typography().headlineLarge.copy( - fontSize = baseFontSize.plus(FONT_LARGE_ADD).sp, - lineHeight = baseFontSize.plus(FONT_LARGE_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - labelSmall = - Typography().labelSmall.copy( - fontSize = baseFontSize.plus(FONT_SMALL_ADD).sp, - lineHeight = baseFontSize.plus(FONT_SMALL_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - labelMedium = - Typography().labelMedium.copy( - fontSize = baseFontSize.plus(FONT_MEDIUM_ADD).sp, - lineHeight = baseFontSize.plus(FONT_MEDIUM_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), - labelLarge = - Typography().labelLarge.copy( - fontSize = baseFontSize.plus(FONT_LARGE_ADD).sp, - lineHeight = baseFontSize.plus(FONT_LARGE_ADD).times(LINE_HEIGHT_MULTIPLIER).sp, - ), + bodySmall = BASE_TYPOGRAPHY.bodySmall.copy( + fontSize = BASE_TYPOGRAPHY.bodySmall.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.bodySmall.lineHeight.times(customRatio), + ), + bodyMedium = BASE_TYPOGRAPHY.bodyMedium.copy( + fontSize = BASE_TYPOGRAPHY.bodyMedium.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.bodyMedium.lineHeight.times(customRatio), + ), + bodyLarge = BASE_TYPOGRAPHY.bodyLarge.copy( + fontSize = BASE_TYPOGRAPHY.bodyLarge.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.bodyLarge.lineHeight.times(customRatio), + ), + titleSmall = BASE_TYPOGRAPHY.titleSmall.copy( + fontSize = BASE_TYPOGRAPHY.titleSmall.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleSmall.lineHeight.times(customRatio), + ), + titleMedium = BASE_TYPOGRAPHY.titleMedium.copy( + fontSize = BASE_TYPOGRAPHY.titleMedium.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleMedium.lineHeight.times(customRatio), + ), + titleLarge = BASE_TYPOGRAPHY.titleLarge.copy( + fontSize = BASE_TYPOGRAPHY.titleLarge.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleLarge.lineHeight.times(customRatio), + ), + // Headlines use titles font size on purpose, default size is unusable big for Jerboa + headlineSmall = BASE_TYPOGRAPHY.headlineSmall.copy( + fontSize = BASE_TYPOGRAPHY.titleSmall.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleSmall.lineHeight.times(customRatio), + ), + headlineMedium = BASE_TYPOGRAPHY.headlineMedium.copy( + fontSize = BASE_TYPOGRAPHY.titleMedium.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleMedium.lineHeight.times(customRatio), + ), + headlineLarge = BASE_TYPOGRAPHY.headlineLarge.copy( + fontSize = BASE_TYPOGRAPHY.titleLarge.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.titleLarge.lineHeight.times(customRatio), + ), + labelSmall = BASE_TYPOGRAPHY.labelSmall.copy( + fontSize = BASE_TYPOGRAPHY.labelSmall.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.labelSmall.lineHeight.times(customRatio), + ), + labelMedium = BASE_TYPOGRAPHY.labelMedium.copy( + fontSize = BASE_TYPOGRAPHY.labelMedium.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.labelMedium.lineHeight.times(customRatio), + ), + labelLarge = BASE_TYPOGRAPHY.labelLarge.copy( + fontSize = BASE_TYPOGRAPHY.labelLarge.fontSize.times(customRatio), + lineHeight = BASE_TYPOGRAPHY.labelLarge.lineHeight.times(customRatio), + ), ) }