From 0ebe85b1aa5614491855186db2a32d03e79ad8f2 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Wed, 11 Feb 2026 17:45:33 +0000 Subject: [PATCH 01/15] [SR] Add SourceTextButton to Android source --- .../com/gu/source/previews/ButtonPreview.kt | 3 + .../components/buttons/SourceTextButton.kt | 159 ++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt index 7943484f3..9e5869694 100644 --- a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt +++ b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt @@ -16,6 +16,7 @@ import com.gu.source.components.buttons.ButtonColours import com.gu.source.components.buttons.PlainSourceButton import com.gu.source.components.buttons.SourceButton import com.gu.source.components.buttons.SourceIconButton +import com.gu.source.components.buttons.SourceTextButtonPreview import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.daynight.AppColour import com.gu.source.foundation.icons.base.Checkmark @@ -114,6 +115,8 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ) } + SourceTextButtonPreview() + PlainSourceButton( text = "Custom themed", onClick = {}, diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt new file mode 100644 index 000000000..4ab738481 --- /dev/null +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -0,0 +1,159 @@ +package com.gu.source.components.buttons + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +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.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.gu.source.Source +import com.gu.source.foundation.palette.Brand400 +import com.gu.source.foundation.palette.BrandAlt400 +import com.gu.source.foundation.palette.Neutral0 +import com.gu.source.foundation.palette.Neutral100 +import com.gu.source.foundation.typography.TextSansBold17 +import com.gu.source.utils.PreviewPhoneBothMode +import com.gu.source.utils.PreviewTabletBothMode + +/** + * SourceTextButton is a text button component that can be used in the Source design system. + * It is a simple button that contains text and has no background. + * The color of the text is determined by the priority of the button, + * which should be chosen based on the background color of the button. + */ +object SourceTextButton { + + enum class Size(val testStyle: TextStyle) { + SMALL( + testStyle = Source.Typography.TextSansBold17.copy(lineHeight = 22.95.sp), + ), + MEDIUM( + testStyle = Source.Typography.TextSansBold17.copy( + fontSize = 15.sp, + lineHeight = 20.25.sp, + ), + ); + } + + enum class Priority { + ON_BLUE_BACKGROUND, + ON_WHITE_BACKGROUND, + ON_YELLOW_BACKGROUND, + } + +} + +/** + * A text button is a button that contains text and has no background. + * It can be used in places where a less prominent action is needed. + * + * @param text The text to display inside the button. + * @param priority The priority of the button, which determines the color of the text. + * This should be chosen based on the background color of the button. + * @param size The size of the button, which determines the typography style of the text. + * @param onClick The callback to be invoked when this button is clicked. + * @param isUnderlined Whether the text should be underlined or not. + */ +@Composable +fun SourceTextButton( + text: String, + priority: SourceTextButton.Priority, + size: SourceTextButton.Size, + onClick: () -> Unit, + isUnderlined: Boolean = false, +) { + when (size) { + SourceTextButton.Size.SMALL -> { + Text( + text = text, + style = size.testStyle.copy( + color = when (priority) { + SourceTextButton.Priority.ON_BLUE_BACKGROUND -> { + Source.Palette.Neutral100 + } + + SourceTextButton.Priority.ON_WHITE_BACKGROUND -> { + Source.Palette.Brand400 + } + + SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> { + Source.Palette.Neutral0 + } + }, + textDecoration = if (isUnderlined) TextDecoration.Underline else null, + ), + modifier = Modifier.clickable(onClick = onClick, role = Role.Button), + ) + } + + SourceTextButton.Size.MEDIUM -> { + Text( + text = text, + style = size.testStyle.copy( + color = when (priority) { + SourceTextButton.Priority.ON_BLUE_BACKGROUND -> { + Source.Palette.Neutral100 + } + + SourceTextButton.Priority.ON_WHITE_BACKGROUND -> { + Source.Palette.Brand400 + } + + SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> { + Source.Palette.Neutral0 + } + }, + textDecoration = if (isUnderlined) TextDecoration.Underline else null, + ), + modifier = Modifier.clickable(onClick = onClick, role = Role.Button), + ) + } + } +} + +@Composable +@PreviewPhoneBothMode +@PreviewTabletBothMode +fun SourceTextButtonPreview() { + Column( + verticalArrangement = Arrangement.spacedBy(space = 8.dp), + modifier = Modifier.padding(all = 16.dp), + ) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.spacedBy(16.dp), + ) { + SourceTextButton.Size.entries.forEach { size -> + val background = when (priority) { + SourceTextButton.Priority.ON_BLUE_BACKGROUND -> Source.Palette.Brand400 + SourceTextButton.Priority.ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 + SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 + } + Box( + contentAlignment = Alignment.Center, + modifier = Modifier + .background(color = background) + .padding(all = 16.dp) + ) { + SourceTextButton( + text = "Hello world", + priority = priority, + size = size, + onClick = {} + ) + } + } + } + } + } +} \ No newline at end of file From 2301ea7badc047efa5f6afd328c518e20df2c317 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 10:26:36 +0000 Subject: [PATCH 02/15] [SR] Update SourceTextButton.kt --- .../components/buttons/SourceTextButton.kt | 114 ++++++++---------- 1 file changed, 52 insertions(+), 62 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index 4ab738481..0e6ee9a5c 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -3,17 +3,18 @@ package com.gu.source.components.buttons import androidx.compose.foundation.background import androidx.compose.foundation.clickable 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.defaultMinSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.gu.source.Source @@ -33,24 +34,42 @@ import com.gu.source.utils.PreviewTabletBothMode */ object SourceTextButton { - enum class Size(val testStyle: TextStyle) { + enum class Size( + val textStyle: TextStyle, + val minButtonHeight: Dp, + ) { SMALL( - testStyle = Source.Typography.TextSansBold17.copy(lineHeight = 22.95.sp), - ), - MEDIUM( - testStyle = Source.Typography.TextSansBold17.copy( + textStyle = Source.Typography.TextSansBold17.copy( fontSize = 15.sp, lineHeight = 20.25.sp, ), + minButtonHeight = 20.dp, + ), + MEDIUM( + textStyle = Source.Typography.TextSansBold17.copy( + lineHeight = 22.95.sp, + ), + minButtonHeight = 23.dp, ); } enum class Priority { ON_BLUE_BACKGROUND, ON_WHITE_BACKGROUND, - ON_YELLOW_BACKGROUND, - } + ON_YELLOW_BACKGROUND; + internal fun textColor(): Color = when (this) { + ON_BLUE_BACKGROUND -> Source.Palette.Neutral100 + ON_WHITE_BACKGROUND -> Source.Palette.Brand400 + ON_YELLOW_BACKGROUND -> Source.Palette.Neutral0 + } + + internal fun demoBackgroundColor(): Color = when (this) { + ON_BLUE_BACKGROUND -> Source.Palette.Brand400 + ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 + ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 + } + } } /** @@ -62,7 +81,7 @@ object SourceTextButton { * This should be chosen based on the background color of the button. * @param size The size of the button, which determines the typography style of the text. * @param onClick The callback to be invoked when this button is clicked. - * @param isUnderlined Whether the text should be underlined or not. + * @param modifier The [Modifier] to be applied to this button. */ @Composable fun SourceTextButton( @@ -70,52 +89,30 @@ fun SourceTextButton( priority: SourceTextButton.Priority, size: SourceTextButton.Size, onClick: () -> Unit, - isUnderlined: Boolean = false, + modifier: Modifier = Modifier, ) { when (size) { SourceTextButton.Size.SMALL -> { Text( text = text, - style = size.testStyle.copy( - color = when (priority) { - SourceTextButton.Priority.ON_BLUE_BACKGROUND -> { - Source.Palette.Neutral100 - } - - SourceTextButton.Priority.ON_WHITE_BACKGROUND -> { - Source.Palette.Brand400 - } - - SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> { - Source.Palette.Neutral0 - } - }, - textDecoration = if (isUnderlined) TextDecoration.Underline else null, + style = size.textStyle.copy( + color = priority.textColor(), ), - modifier = Modifier.clickable(onClick = onClick, role = Role.Button), + modifier = modifier + .defaultMinSize(minHeight = size.minButtonHeight) + .clickable(onClick = onClick, role = Role.Button), ) } SourceTextButton.Size.MEDIUM -> { Text( text = text, - style = size.testStyle.copy( - color = when (priority) { - SourceTextButton.Priority.ON_BLUE_BACKGROUND -> { - Source.Palette.Neutral100 - } - - SourceTextButton.Priority.ON_WHITE_BACKGROUND -> { - Source.Palette.Brand400 - } - - SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> { - Source.Palette.Neutral0 - } - }, - textDecoration = if (isUnderlined) TextDecoration.Underline else null, + style = size.textStyle.copy( + color = priority.textColor(), ), - modifier = Modifier.clickable(onClick = onClick, role = Role.Button), + modifier = modifier + .defaultMinSize(minHeight = size.minButtonHeight) + .clickable(onClick = onClick, role = Role.Button), ) } } @@ -131,27 +128,20 @@ fun SourceTextButtonPreview() { ) { SourceTextButton.Priority.entries.forEach { priority -> Row( - horizontalArrangement = Arrangement.spacedBy(16.dp), + horizontalArrangement = Arrangement.spacedBy(space = 8.dp), + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.background(color = priority.demoBackgroundColor()), ) { SourceTextButton.Size.entries.forEach { size -> - val background = when (priority) { - SourceTextButton.Priority.ON_BLUE_BACKGROUND -> Source.Palette.Brand400 - SourceTextButton.Priority.ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 - SourceTextButton.Priority.ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 - } - Box( - contentAlignment = Alignment.Center, - modifier = Modifier - .background(color = background) - .padding(all = 16.dp) - ) { - SourceTextButton( - text = "Hello world", - priority = priority, - size = size, - onClick = {} - ) - } + SourceTextButton( + text = when (size) { + SourceTextButton.Size.SMALL -> "Small" + SourceTextButton.Size.MEDIUM -> "Medium" + }, + priority = priority, + size = size, + onClick = {}, + ) } } } From 25af43b156ea452ad5ffa8dbf10a96a17a049dff Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 10:55:16 +0000 Subject: [PATCH 03/15] [SR] Use TextButton as the base for SourceTextButton --- .../components/buttons/SourceTextButton.kt | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index 0e6ee9a5c..69e93019f 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -1,18 +1,18 @@ package com.gu.source.components.buttons import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -93,27 +93,31 @@ fun SourceTextButton( ) { when (size) { SourceTextButton.Size.SMALL -> { - Text( - text = text, - style = size.textStyle.copy( - color = priority.textColor(), - ), - modifier = modifier - .defaultMinSize(minHeight = size.minButtonHeight) - .clickable(onClick = onClick, role = Role.Button), - ) + TextButton( + onClick = onClick, + modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), + ) { + Text( + text = text, + style = size.textStyle.copy( + color = priority.textColor(), + ), + ) + } } SourceTextButton.Size.MEDIUM -> { - Text( - text = text, - style = size.textStyle.copy( - color = priority.textColor(), - ), - modifier = modifier - .defaultMinSize(minHeight = size.minButtonHeight) - .clickable(onClick = onClick, role = Role.Button), - ) + TextButton( + onClick = onClick, + modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), + ) { + Text( + text = text, + style = size.textStyle.copy( + color = priority.textColor(), + ), + ) + } } } } @@ -123,8 +127,11 @@ fun SourceTextButton( @PreviewTabletBothMode fun SourceTextButtonPreview() { Column( + horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(space = 8.dp), - modifier = Modifier.padding(all = 16.dp), + modifier = Modifier + .fillMaxWidth() + .padding(all = 16.dp), ) { SourceTextButton.Priority.entries.forEach { priority -> Row( From af64360c4302d948ae4119fa3b84a75773884f08 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 11:19:31 +0000 Subject: [PATCH 04/15] [SR] Update preview for SourceTextButton --- .../com/gu/source/previews/ButtonPreview.kt | 5 +- .../components/buttons/SourceTextButton.kt | 84 ++++++++++++++----- 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt index 9e5869694..186d9a8b8 100644 --- a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt +++ b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt @@ -16,6 +16,7 @@ import com.gu.source.components.buttons.ButtonColours import com.gu.source.components.buttons.PlainSourceButton import com.gu.source.components.buttons.SourceButton import com.gu.source.components.buttons.SourceIconButton +import com.gu.source.components.buttons.SourceTextButton import com.gu.source.components.buttons.SourceTextButtonPreview import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.daynight.AppColour @@ -115,8 +116,6 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ) } - SourceTextButtonPreview() - PlainSourceButton( text = "Custom themed", onClick = {}, @@ -136,6 +135,8 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ), ), ) + + SourceTextButtonPreview() } } diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index 69e93019f..df2267b7a 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -128,29 +128,75 @@ fun SourceTextButton( fun SourceTextButtonPreview() { Column( horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(space = 8.dp), modifier = Modifier .fillMaxWidth() .padding(all = 16.dp), ) { - SourceTextButton.Priority.entries.forEach { priority -> - Row( - horizontalArrangement = Arrangement.spacedBy(space = 8.dp), - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.background(color = priority.demoBackgroundColor()), - ) { - SourceTextButton.Size.entries.forEach { size -> - SourceTextButton( - text = when (size) { - SourceTextButton.Size.SMALL -> "Small" - SourceTextButton.Size.MEDIUM -> "Medium" - }, - priority = priority, - size = size, - onClick = {}, - ) - } - } + Row( + horizontalArrangement = Arrangement.spacedBy( + alignment = Alignment.CenterHorizontally, + space = 8.dp, + ), + modifier = Modifier + .fillMaxWidth() + .background(color = Source.Palette.BrandAlt400), + ) { + SourceTextButton( + text = "Small", + priority = SourceTextButton.Priority.ON_YELLOW_BACKGROUND, + size = SourceTextButton.Size.SMALL, + onClick = {}, + ) + SourceTextButton( + text = "Medium", + priority = SourceTextButton.Priority.ON_YELLOW_BACKGROUND, + size = SourceTextButton.Size.MEDIUM, + onClick = {}, + ) + } + Row( + horizontalArrangement = Arrangement.spacedBy( + alignment = Alignment.CenterHorizontally, + space = 8.dp, + ), + modifier = Modifier + .fillMaxWidth() + .background(color = Source.Palette.Neutral100), + ) { + SourceTextButton( + text = "Small", + priority = SourceTextButton.Priority.ON_WHITE_BACKGROUND, + size = SourceTextButton.Size.SMALL, + onClick = {}, + ) + SourceTextButton( + text = "Medium", + priority = SourceTextButton.Priority.ON_WHITE_BACKGROUND, + size = SourceTextButton.Size.MEDIUM, + onClick = {}, + ) + } + Row( + horizontalArrangement = Arrangement.spacedBy( + alignment = Alignment.CenterHorizontally, + space = 8.dp, + ), + modifier = Modifier + .fillMaxWidth() + .background(color = Source.Palette.Brand400), + ) { + SourceTextButton( + text = "Small", + priority = SourceTextButton.Priority.ON_BLUE_BACKGROUND, + size = SourceTextButton.Size.SMALL, + onClick = {}, + ) + SourceTextButton( + text = "Medium", + priority = SourceTextButton.Priority.ON_BLUE_BACKGROUND, + size = SourceTextButton.Size.MEDIUM, + onClick = {}, + ) } } } \ No newline at end of file From daf0262546bb8e43dff79c5d561bc3fa5bfb7b08 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 11:29:56 +0000 Subject: [PATCH 05/15] [SR] Add screen shot tests --- .../components/buttons/SourceButtonTest.kt | 7 +++++++ ...SourceButtonTest_sourceTextButton[NIGHT].png | Bin 0 -> 19883 bytes ...rceButtonTest_sourceTextButton[NOTNIGHT].png | Bin 0 -> 19883 bytes 3 files changed, 7 insertions(+) create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png diff --git a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt index 5a24dab87..3103a90e7 100644 --- a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt +++ b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt @@ -54,4 +54,11 @@ class SourceButtonTest(@TestParameter private val nightMode: NightMode) { RrButtonIconAfterPreview() } } + + @Test + fun sourceTextButton() { + paparazzi.snapshot { + SourceTextButtonPreview() + } + } } \ No newline at end of file diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png new file mode 100644 index 0000000000000000000000000000000000000000..665d080d14038d488872601e219e60936008f0ea GIT binary patch literal 19883 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 AhX4Qo literal 0 HcmV?d00001 diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png new file mode 100644 index 0000000000000000000000000000000000000000..665d080d14038d488872601e219e60936008f0ea GIT binary patch literal 19883 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 AhX4Qo literal 0 HcmV?d00001 From c639d52a510e742efcc7b60ffd10dda88c9f6111 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 11:37:28 +0000 Subject: [PATCH 06/15] [SR] Update access modifier --- .../kotlin/com/gu/source/components/buttons/SourceTextButton.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index df2267b7a..a0b099fba 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -125,7 +125,7 @@ fun SourceTextButton( @Composable @PreviewPhoneBothMode @PreviewTabletBothMode -fun SourceTextButtonPreview() { +internal fun SourceTextButtonPreview() { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier From ae95c040f22d0c54b5bdbfe037a95620e60b4949 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 12:12:08 +0000 Subject: [PATCH 07/15] [SR] Reduce duplication in SourceTextButtonPreview --- .../com/gu/source/previews/ButtonPreview.kt | 4 - .../components/buttons/SourceTextButton.kt | 101 +++++------------- 2 files changed, 29 insertions(+), 76 deletions(-) diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt index 186d9a8b8..7943484f3 100644 --- a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt +++ b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt @@ -16,8 +16,6 @@ import com.gu.source.components.buttons.ButtonColours import com.gu.source.components.buttons.PlainSourceButton import com.gu.source.components.buttons.SourceButton import com.gu.source.components.buttons.SourceIconButton -import com.gu.source.components.buttons.SourceTextButton -import com.gu.source.components.buttons.SourceTextButtonPreview import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.daynight.AppColour import com.gu.source.foundation.icons.base.Checkmark @@ -135,8 +133,6 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ), ), ) - - SourceTextButtonPreview() } } diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index a0b099fba..af040dbc8 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable @@ -34,6 +33,13 @@ import com.gu.source.utils.PreviewTabletBothMode */ object SourceTextButton { + /** + * The size of the button, which determines + * the typography style of the text and the minimum height of the button. + * + * @property textStyle The typography style of the text inside the button. + * @property minButtonHeight The minimum height of the button. + */ enum class Size( val textStyle: TextStyle, val minButtonHeight: Dp, @@ -53,6 +59,10 @@ object SourceTextButton { ); } + /** + * The priority of the button, which determines the color of the text. + * This should be chosen based on the background color of the button. + */ enum class Priority { ON_BLUE_BACKGROUND, ON_WHITE_BACKGROUND, @@ -126,77 +136,24 @@ fun SourceTextButton( @PreviewPhoneBothMode @PreviewTabletBothMode internal fun SourceTextButtonPreview() { - Column( - horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier - .fillMaxWidth() - .padding(all = 16.dp), - ) { - Row( - horizontalArrangement = Arrangement.spacedBy( - alignment = Alignment.CenterHorizontally, - space = 8.dp, - ), - modifier = Modifier - .fillMaxWidth() - .background(color = Source.Palette.BrandAlt400), - ) { - SourceTextButton( - text = "Small", - priority = SourceTextButton.Priority.ON_YELLOW_BACKGROUND, - size = SourceTextButton.Size.SMALL, - onClick = {}, - ) - SourceTextButton( - text = "Medium", - priority = SourceTextButton.Priority.ON_YELLOW_BACKGROUND, - size = SourceTextButton.Size.MEDIUM, - onClick = {}, - ) - } - Row( - horizontalArrangement = Arrangement.spacedBy( - alignment = Alignment.CenterHorizontally, - space = 8.dp, - ), - modifier = Modifier - .fillMaxWidth() - .background(color = Source.Palette.Neutral100), - ) { - SourceTextButton( - text = "Small", - priority = SourceTextButton.Priority.ON_WHITE_BACKGROUND, - size = SourceTextButton.Size.SMALL, - onClick = {}, - ) - SourceTextButton( - text = "Medium", - priority = SourceTextButton.Priority.ON_WHITE_BACKGROUND, - size = SourceTextButton.Size.MEDIUM, - onClick = {}, - ) - } - Row( - horizontalArrangement = Arrangement.spacedBy( - alignment = Alignment.CenterHorizontally, - space = 8.dp, - ), - modifier = Modifier - .fillMaxWidth() - .background(color = Source.Palette.Brand400), - ) { - SourceTextButton( - text = "Small", - priority = SourceTextButton.Priority.ON_BLUE_BACKGROUND, - size = SourceTextButton.Size.SMALL, - onClick = {}, - ) - SourceTextButton( - text = "Medium", - priority = SourceTextButton.Priority.ON_BLUE_BACKGROUND, - size = SourceTextButton.Size.MEDIUM, - onClick = {}, - ) + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(priority.demoBackgroundColor()) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = size.name.lowercase(), + priority = priority, + size = size, + onClick = {}, + ) + } + } + } } } \ No newline at end of file From 17737eb32f347be94e585554ad8053c5fd637245 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 12:17:38 +0000 Subject: [PATCH 08/15] [SR] Lint and detekt --- .../components/buttons/SourceTextButton.kt | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index af040dbc8..f3d483ac9 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -44,6 +44,9 @@ object SourceTextButton { val textStyle: TextStyle, val minButtonHeight: Dp, ) { + /** + * The small size of the button. + */ SMALL( textStyle = Source.Typography.TextSansBold17.copy( fontSize = 15.sp, @@ -51,12 +54,16 @@ object SourceTextButton { ), minButtonHeight = 20.dp, ), + + /** + * The small size of the button. + */ MEDIUM( textStyle = Source.Typography.TextSansBold17.copy( lineHeight = 22.95.sp, ), minButtonHeight = 23.dp, - ); + ), } /** @@ -64,9 +71,20 @@ object SourceTextButton { * This should be chosen based on the background color of the button. */ enum class Priority { + /** + * Use this priority when the button is on a blue background, such as the brand color. + */ ON_BLUE_BACKGROUND, + + /** + * Use this priority when the button is on a white background. + */ ON_WHITE_BACKGROUND, - ON_YELLOW_BACKGROUND; + + /** + * Use this priority when the button is on a yellow background, such as the brand alt color. + */ + ON_YELLOW_BACKGROUND, ; internal fun textColor(): Color = when (this) { ON_BLUE_BACKGROUND -> Source.Palette.Neutral100 @@ -153,7 +171,6 @@ internal fun SourceTextButtonPreview() { ) } } - } } } \ No newline at end of file From 56f5f1289aa2eb63c989a567ef790374ff44d507 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 13:27:29 +0000 Subject: [PATCH 09/15] [SR] Update screen shot tests --- ...urceButtonTest_sourceTextButton[NIGHT].png | Bin 19883 -> 17140 bytes ...eButtonTest_sourceTextButton[NOTNIGHT].png | Bin 19883 -> 17140 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png index 665d080d14038d488872601e219e60936008f0ea..92b30f46ae248a657d33bf988df6c30f4ff41b8c 100644 GIT binary patch literal 17140 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 literal 19883 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 AhX4Qo diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png index 665d080d14038d488872601e219e60936008f0ea..92b30f46ae248a657d33bf988df6c30f4ff41b8c 100644 GIT binary patch literal 17140 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 literal 19883 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 AhX4Qo From 1043d1af62cf67dfae5368e86a9fd00f665b1e8a Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 13:38:46 +0000 Subject: [PATCH 10/15] [SR] Add button previews to sample app --- .../com/gu/source/previews/ButtonPreview.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt index 7943484f3..d6e3e0752 100644 --- a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt +++ b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt @@ -1,5 +1,6 @@ package com.gu.source.previews +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -16,11 +17,18 @@ import com.gu.source.components.buttons.ButtonColours import com.gu.source.components.buttons.PlainSourceButton import com.gu.source.components.buttons.SourceButton import com.gu.source.components.buttons.SourceIconButton +import com.gu.source.components.buttons.SourceTextButton +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_BLUE_BACKGROUND +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_WHITE_BACKGROUND +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_YELLOW_BACKGROUND import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.daynight.AppColour import com.gu.source.foundation.icons.base.Checkmark +import com.gu.source.foundation.palette.Brand400 +import com.gu.source.foundation.palette.BrandAlt400 import com.gu.source.foundation.palette.Culture200 import com.gu.source.foundation.palette.Culture800 +import com.gu.source.foundation.palette.Neutral100 import com.gu.source.foundation.typography.TextSansBold17 @Composable @@ -133,6 +141,31 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ), ), ) + + Column(horizontalAlignment = CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + val backgroundColor = when (priority) { + ON_BLUE_BACKGROUND -> Source.Palette.Brand400 + ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 + ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 + } + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(color = backgroundColor) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = "text button - ${size.name.lowercase()}", + priority = priority, + size = size, + onClick = {}, + ) + } + } + } + } } } From e405faa564641375e53e42a0e27c5740a86fc39d Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Thu, 12 Feb 2026 14:00:47 +0000 Subject: [PATCH 11/15] [SR] Update SourceTextButton to support themes --- .../source/components/buttons/SourceTextButton.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index f3d483ac9..d80e8b37c 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.gu.source.Source +import com.gu.source.components.theme.LocalSourceTheme import com.gu.source.foundation.palette.Brand400 import com.gu.source.foundation.palette.BrandAlt400 import com.gu.source.foundation.palette.Neutral0 @@ -86,8 +87,12 @@ object SourceTextButton { */ ON_YELLOW_BACKGROUND, ; - internal fun textColor(): Color = when (this) { - ON_BLUE_BACKGROUND -> Source.Palette.Neutral100 + internal fun textColor(theme: Source.Theme): Color = when (this) { + ON_BLUE_BACKGROUND -> if (theme == Source.Theme.ReaderRevenue) { + Source.Palette.BrandAlt400 + } else { + Source.Palette.Neutral100 + } ON_WHITE_BACKGROUND -> Source.Palette.Brand400 ON_YELLOW_BACKGROUND -> Source.Palette.Neutral0 } @@ -119,6 +124,8 @@ fun SourceTextButton( onClick: () -> Unit, modifier: Modifier = Modifier, ) { + val currentTheme = LocalSourceTheme.current + when (size) { SourceTextButton.Size.SMALL -> { TextButton( @@ -128,7 +135,7 @@ fun SourceTextButton( Text( text = text, style = size.textStyle.copy( - color = priority.textColor(), + color = priority.textColor(theme = currentTheme), ), ) } @@ -142,7 +149,7 @@ fun SourceTextButton( Text( text = text, style = size.textStyle.copy( - color = priority.textColor(), + color = priority.textColor(theme = currentTheme), ), ) } From bba25620ed4efe7d45bb85f3f1d1c9b766341996 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Fri, 13 Feb 2026 09:27:20 +0000 Subject: [PATCH 12/15] [SR] Add underline to sourcetextbutton --- .../main/kotlin/com/gu/source/MainActivity.kt | 14 ++ .../com/gu/source/previews/ButtonPreview.kt | 33 ----- .../gu/source/previews/TextButtonPreview.kt | 92 ++++++++++++ .../components/buttons/SourceTextButton.kt | 137 ++++++++++++++++-- .../components/buttons/SourceButtonTest.kt | 11 +- ...est_sourceTextButtonNoUnderline[NIGHT].png | Bin 0 -> 34194 bytes ..._sourceTextButtonNoUnderline[NOTNIGHT].png | Bin 0 -> 34194 bytes ...nTest_sourceTextButtonUnderline[NIGHT].png | Bin 0 -> 34700 bytes ...st_sourceTextButtonUnderline[NOTNIGHT].png | Bin 0 -> 34700 bytes 9 files changed, 236 insertions(+), 51 deletions(-) create mode 100644 android/sample/src/main/kotlin/com/gu/source/previews/TextButtonPreview.kt create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonNoUnderline[NIGHT].png create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonNoUnderline[NOTNIGHT].png create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonUnderline[NIGHT].png create mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonUnderline[NOTNIGHT].png diff --git a/android/sample/src/main/kotlin/com/gu/source/MainActivity.kt b/android/sample/src/main/kotlin/com/gu/source/MainActivity.kt index d81941bc0..2b7e39c22 100644 --- a/android/sample/src/main/kotlin/com/gu/source/MainActivity.kt +++ b/android/sample/src/main/kotlin/com/gu/source/MainActivity.kt @@ -41,6 +41,7 @@ import com.gu.source.previews.IconsPreview import com.gu.source.previews.ImagePagerWithProgressIndicator import com.gu.source.previews.Palette import com.gu.source.previews.RatingPreview +import com.gu.source.previews.TextButtonPreview import com.gu.source.utils.PreviewPhoneBothMode import com.gu.source.utils.plus import kotlinx.coroutines.launch @@ -61,6 +62,7 @@ private enum class SheetContentType { Palette, PagerProgressBar, Buttons, + TextButtons, CoreIcons, AlertBanner, Chips, @@ -85,6 +87,7 @@ private fun Greeting(modifier: Modifier = Modifier) { SheetContentType.Palette -> Palette(sheetModifier) SheetContentType.PagerProgressBar -> ImagePagerWithProgressIndicator(sheetModifier) SheetContentType.Buttons -> ButtonPreview(sheetModifier) + SheetContentType.TextButtons -> TextButtonPreview(sheetModifier) SheetContentType.CoreIcons -> IconsPreview(sheetModifier) SheetContentType.AlertBanner -> AlertBannerPreview(sheetModifier) SheetContentType.Chips -> ChipsPreview(sheetModifier) @@ -168,6 +171,17 @@ private fun Greeting(modifier: Modifier = Modifier) { }, ) + SourceButton( + text = "Open text buttons preview", + priority = SourceButton.Priority.TertiaryOnWhite, + onClick = { + sheetContentType = SheetContentType.TextButtons + coroutineScope.launch { + scaffoldState.bottomSheetState.expand() + } + }, + ) + SourceButton( text = "Open icons preview", priority = SourceButton.Priority.TertiaryOnWhite, diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt index d6e3e0752..7943484f3 100644 --- a/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt +++ b/android/sample/src/main/kotlin/com/gu/source/previews/ButtonPreview.kt @@ -1,6 +1,5 @@ package com.gu.source.previews -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -17,18 +16,11 @@ import com.gu.source.components.buttons.ButtonColours import com.gu.source.components.buttons.PlainSourceButton import com.gu.source.components.buttons.SourceButton import com.gu.source.components.buttons.SourceIconButton -import com.gu.source.components.buttons.SourceTextButton -import com.gu.source.components.buttons.SourceTextButton.Priority.ON_BLUE_BACKGROUND -import com.gu.source.components.buttons.SourceTextButton.Priority.ON_WHITE_BACKGROUND -import com.gu.source.components.buttons.SourceTextButton.Priority.ON_YELLOW_BACKGROUND import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.daynight.AppColour import com.gu.source.foundation.icons.base.Checkmark -import com.gu.source.foundation.palette.Brand400 -import com.gu.source.foundation.palette.BrandAlt400 import com.gu.source.foundation.palette.Culture200 import com.gu.source.foundation.palette.Culture800 -import com.gu.source.foundation.palette.Neutral100 import com.gu.source.foundation.typography.TextSansBold17 @Composable @@ -141,31 +133,6 @@ internal fun ButtonPreview(modifier: Modifier = Modifier) { ), ), ) - - Column(horizontalAlignment = CenterHorizontally) { - SourceTextButton.Priority.entries.forEach { priority -> - val backgroundColor = when (priority) { - ON_BLUE_BACKGROUND -> Source.Palette.Brand400 - ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 - ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 - } - Row( - horizontalArrangement = Arrangement.SpaceEvenly, - modifier = Modifier - .background(color = backgroundColor) - .fillMaxWidth(), - ) { - SourceTextButton.Size.entries.forEach { size -> - SourceTextButton( - text = "text button - ${size.name.lowercase()}", - priority = priority, - size = size, - onClick = {}, - ) - } - } - } - } } } diff --git a/android/sample/src/main/kotlin/com/gu/source/previews/TextButtonPreview.kt b/android/sample/src/main/kotlin/com/gu/source/previews/TextButtonPreview.kt new file mode 100644 index 000000000..650773fe3 --- /dev/null +++ b/android/sample/src/main/kotlin/com/gu/source/previews/TextButtonPreview.kt @@ -0,0 +1,92 @@ +package com.gu.source.previews + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment.Companion.CenterHorizontally +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.gu.source.Source +import com.gu.source.components.buttons.SourceTextButton +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_BLUE_BACKGROUND +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_WHITE_BACKGROUND +import com.gu.source.components.buttons.SourceTextButton.Priority.ON_YELLOW_BACKGROUND +import com.gu.source.components.theme.ReaderRevenueTheme +import com.gu.source.foundation.palette.Brand400 +import com.gu.source.foundation.palette.BrandAlt400 +import com.gu.source.foundation.palette.Neutral100 +import com.gu.source.foundation.typography.TextSansBold17 + +@Composable +internal fun TextButtonPreview(modifier: Modifier = Modifier) { + Column( + modifier = modifier.padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Text( + text = "Core Theme text button - no underline - variants", + style = Source.Typography.TextSansBold17, + ) + TextButtonRows() + Text( + text = "Reader Revenue theme text button - no underline - variant", + style = Source.Typography.TextSansBold17, + ) + ReaderRevenueTheme { + TextButtonRows() + } + Text( + text = "Core Theme text button - underline - variants", + style = Source.Typography.TextSansBold17, + ) + TextButtonRows(textButtonHasUnderline = true) + Text( + text = "Reader Revenue theme text button - underline - variant", + style = Source.Typography.TextSansBold17, + ) + ReaderRevenueTheme { + TextButtonRows(textButtonHasUnderline = true) + } + } +} + +@Composable +private fun TextButtonRows(textButtonHasUnderline: Boolean = false) { + Column(horizontalAlignment = CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + val backgroundColor = when (priority) { + ON_BLUE_BACKGROUND -> Source.Palette.Brand400 + ON_WHITE_BACKGROUND -> Source.Palette.Neutral100 + ON_YELLOW_BACKGROUND -> Source.Palette.BrandAlt400 + } + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(color = backgroundColor) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = "text button - ${size.name.lowercase()}", + priority = priority, + size = size, + hasUnderline = textButtonHasUnderline, + onClick = {}, + ) + } + } + } + } +} + +@Preview +@Composable +private fun TextButtonsPreview() { + TextButtonPreview() +} \ No newline at end of file diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index d80e8b37c..15cc5ddd6 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable @@ -13,11 +15,13 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.gu.source.Source import com.gu.source.components.theme.LocalSourceTheme +import com.gu.source.components.theme.ReaderRevenueTheme import com.gu.source.foundation.palette.Brand400 import com.gu.source.foundation.palette.BrandAlt400 import com.gu.source.foundation.palette.Neutral0 @@ -115,6 +119,7 @@ object SourceTextButton { * @param size The size of the button, which determines the typography style of the text. * @param onClick The callback to be invoked when this button is clicked. * @param modifier The [Modifier] to be applied to this button. + * @param hasUnderline Whether the text inside the button should have an underline. */ @Composable fun SourceTextButton( @@ -123,12 +128,21 @@ fun SourceTextButton( size: SourceTextButton.Size, onClick: () -> Unit, modifier: Modifier = Modifier, + hasUnderline: Boolean = false, ) { val currentTheme = LocalSourceTheme.current when (size) { SourceTextButton.Size.SMALL -> { TextButton( + shape = CircleShape, + elevation = ButtonDefaults.buttonElevation( + defaultElevation = 0.dp, + pressedElevation = 0.dp, + focusedElevation = 0.dp, + hoveredElevation = 0.dp, + disabledElevation = 0.dp, + ), onClick = onClick, modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), ) { @@ -136,6 +150,11 @@ fun SourceTextButton( text = text, style = size.textStyle.copy( color = priority.textColor(theme = currentTheme), + textDecoration = if (hasUnderline) { + TextDecoration.Underline + } else { + null + }, ), ) } @@ -143,6 +162,14 @@ fun SourceTextButton( SourceTextButton.Size.MEDIUM -> { TextButton( + shape = CircleShape, + elevation = ButtonDefaults.buttonElevation( + defaultElevation = 0.dp, + pressedElevation = 0.dp, + focusedElevation = 0.dp, + hoveredElevation = 0.dp, + disabledElevation = 0.dp, + ), onClick = onClick, modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), ) { @@ -150,6 +177,11 @@ fun SourceTextButton( text = text, style = size.textStyle.copy( color = priority.textColor(theme = currentTheme), + textDecoration = if (hasUnderline) { + TextDecoration.Underline + } else { + null + }, ), ) } @@ -160,22 +192,95 @@ fun SourceTextButton( @Composable @PreviewPhoneBothMode @PreviewTabletBothMode -internal fun SourceTextButtonPreview() { - Column(horizontalAlignment = Alignment.CenterHorizontally) { - SourceTextButton.Priority.entries.forEach { priority -> - Row( - horizontalArrangement = Arrangement.SpaceEvenly, - modifier = Modifier - .background(priority.demoBackgroundColor()) - .fillMaxWidth(), - ) { - SourceTextButton.Size.entries.forEach { size -> - SourceTextButton( - text = size.name.lowercase(), - priority = priority, - size = size, - onClick = {}, - ) +internal fun SourceTextButtonPreviewNoUnderline() { + Column { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(priority.demoBackgroundColor()) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = size.name.lowercase(), + priority = priority, + size = size, + onClick = {}, + ) + } + } + } + } + ReaderRevenueTheme { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(priority.demoBackgroundColor()) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = size.name.lowercase(), + priority = priority, + size = size, + onClick = {}, + ) + } + } + } + } + } + } +} + +@Composable +@PreviewPhoneBothMode +@PreviewTabletBothMode +internal fun SourceTextButtonPreviewUnderline() { + Column { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(priority.demoBackgroundColor()) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = size.name.lowercase(), + priority = priority, + size = size, + hasUnderline = true, + onClick = {}, + ) + } + } + } + } + ReaderRevenueTheme { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SourceTextButton.Priority.entries.forEach { priority -> + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(priority.demoBackgroundColor()) + .fillMaxWidth(), + ) { + SourceTextButton.Size.entries.forEach { size -> + SourceTextButton( + text = size.name.lowercase(), + priority = priority, + size = size, + hasUnderline = true, + onClick = {}, + ) + } + } } } } diff --git a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt index 3103a90e7..2e370a636 100644 --- a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt +++ b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt @@ -56,9 +56,16 @@ class SourceButtonTest(@TestParameter private val nightMode: NightMode) { } @Test - fun sourceTextButton() { + fun sourceTextButtonNoUnderline() { paparazzi.snapshot { - SourceTextButtonPreview() + SourceTextButtonPreviewNoUnderline() + } + } + + @Test + fun sourceTextButtonUnderline() { + paparazzi.snapshot { + SourceTextButtonPreviewUnderline() } } } \ No newline at end of file diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonNoUnderline[NIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonNoUnderline[NIGHT].png new file mode 100644 index 0000000000000000000000000000000000000000..8e97b5de7e4f90d5faa532286267aa96db88ac84 GIT binary patch literal 34194 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®jL~tL2W@~8<{!2M-ps$nD_7IK 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 VQQg0mwZp*PFf_eZdiCCu{{b2DD);~Z literal 0 HcmV?d00001 diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonUnderline[NOTNIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButtonUnderline[NOTNIGHT].png new file mode 100644 index 0000000000000000000000000000000000000000..b9492d2a68cafff3cf77252902ca71fad11054f6 GIT binary patch literal 34700 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®jL~tL2W@~8<{!2M-ps$nD_7IK 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 VQQg0mwZp*PFf_eZdiCCu{{b2DD);~Z literal 0 HcmV?d00001 From 137c240be41899024b95a38a003c27925beae838 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Fri, 13 Feb 2026 09:28:24 +0000 Subject: [PATCH 13/15] [SR] Update names of previews --- .../com/gu/source/components/buttons/SourceTextButton.kt | 4 ++-- .../com/gu/source/components/buttons/SourceButtonTest.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index 15cc5ddd6..03a1e8495 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -192,7 +192,7 @@ fun SourceTextButton( @Composable @PreviewPhoneBothMode @PreviewTabletBothMode -internal fun SourceTextButtonPreviewNoUnderline() { +internal fun SourceTextButtonNoUnderlinePreview() { Column { Column(horizontalAlignment = Alignment.CenterHorizontally) { SourceTextButton.Priority.entries.forEach { priority -> @@ -240,7 +240,7 @@ internal fun SourceTextButtonPreviewNoUnderline() { @Composable @PreviewPhoneBothMode @PreviewTabletBothMode -internal fun SourceTextButtonPreviewUnderline() { +internal fun SourceTextButtonUnderlinePreview() { Column { Column(horizontalAlignment = Alignment.CenterHorizontally) { SourceTextButton.Priority.entries.forEach { priority -> diff --git a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt index 2e370a636..586704ba1 100644 --- a/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt +++ b/android/source/src/test/kotlin/com/gu/source/components/buttons/SourceButtonTest.kt @@ -58,14 +58,14 @@ class SourceButtonTest(@TestParameter private val nightMode: NightMode) { @Test fun sourceTextButtonNoUnderline() { paparazzi.snapshot { - SourceTextButtonPreviewNoUnderline() + SourceTextButtonNoUnderlinePreview() } } @Test fun sourceTextButtonUnderline() { paparazzi.snapshot { - SourceTextButtonPreviewUnderline() + SourceTextButtonUnderlinePreview() } } } \ No newline at end of file From a9b26d671ca18b435c20f4cfc6ed0463e9c14603 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Fri, 13 Feb 2026 10:16:26 +0000 Subject: [PATCH 14/15] [SR] Remove duplication --- .../components/buttons/SourceTextButton.kt | 83 ++++++------------- 1 file changed, 27 insertions(+), 56 deletions(-) diff --git a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt index 03a1e8495..64ed8180c 100644 --- a/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt +++ b/android/source/src/main/kotlin/com/gu/source/components/buttons/SourceTextButton.kt @@ -61,7 +61,7 @@ object SourceTextButton { ), /** - * The small size of the button. + * The medium size of the button. */ MEDIUM( textStyle = Source.Typography.TextSansBold17.copy( @@ -89,7 +89,8 @@ object SourceTextButton { /** * Use this priority when the button is on a yellow background, such as the brand alt color. */ - ON_YELLOW_BACKGROUND, ; + ON_YELLOW_BACKGROUND, + ; internal fun textColor(theme: Source.Theme): Color = when (this) { ON_BLUE_BACKGROUND -> if (theme == Source.Theme.ReaderRevenue) { @@ -97,6 +98,7 @@ object SourceTextButton { } else { Source.Palette.Neutral100 } + ON_WHITE_BACKGROUND -> Source.Palette.Brand400 ON_YELLOW_BACKGROUND -> Source.Palette.Neutral0 } @@ -132,60 +134,29 @@ fun SourceTextButton( ) { val currentTheme = LocalSourceTheme.current - when (size) { - SourceTextButton.Size.SMALL -> { - TextButton( - shape = CircleShape, - elevation = ButtonDefaults.buttonElevation( - defaultElevation = 0.dp, - pressedElevation = 0.dp, - focusedElevation = 0.dp, - hoveredElevation = 0.dp, - disabledElevation = 0.dp, - ), - onClick = onClick, - modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), - ) { - Text( - text = text, - style = size.textStyle.copy( - color = priority.textColor(theme = currentTheme), - textDecoration = if (hasUnderline) { - TextDecoration.Underline - } else { - null - }, - ), - ) - } - } - - SourceTextButton.Size.MEDIUM -> { - TextButton( - shape = CircleShape, - elevation = ButtonDefaults.buttonElevation( - defaultElevation = 0.dp, - pressedElevation = 0.dp, - focusedElevation = 0.dp, - hoveredElevation = 0.dp, - disabledElevation = 0.dp, - ), - onClick = onClick, - modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), - ) { - Text( - text = text, - style = size.textStyle.copy( - color = priority.textColor(theme = currentTheme), - textDecoration = if (hasUnderline) { - TextDecoration.Underline - } else { - null - }, - ), - ) - } - } + TextButton( + shape = CircleShape, + elevation = ButtonDefaults.buttonElevation( + defaultElevation = 0.dp, + pressedElevation = 0.dp, + focusedElevation = 0.dp, + hoveredElevation = 0.dp, + disabledElevation = 0.dp, + ), + onClick = onClick, + modifier = modifier.defaultMinSize(minHeight = size.minButtonHeight), + ) { + Text( + text = text, + style = size.textStyle.copy( + color = priority.textColor(theme = currentTheme), + textDecoration = if (hasUnderline) { + TextDecoration.Underline + } else { + null + }, + ), + ) } } From 35d823f3101608fa4603e4f3a1a981ab62586ab2 Mon Sep 17 00:00:00 2001 From: James Dudhi-Price Date: Fri, 13 Feb 2026 10:29:15 +0000 Subject: [PATCH 15/15] [SR] Remove irrelevant snapshots --- ...SourceButtonTest_sourceTextButton[NIGHT].png | Bin 17140 -> 0 bytes ...rceButtonTest_sourceTextButton[NOTNIGHT].png | Bin 17140 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png delete mode 100644 android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NIGHT].png deleted file mode 100644 index 92b30f46ae248a657d33bf988df6c30f4ff41b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17140 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 diff --git a/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png b/android/source/src/test/snapshots/images/com.gu.source.components.buttons_SourceButtonTest_sourceTextButton[NOTNIGHT].png deleted file mode 100644 index 92b30f46ae248a657d33bf988df6c30f4ff41b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17140 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