Updated on 2026-08-14
This commit is contained in:
parent
b02359feb6
commit
1feec554e6
6 changed files with 362 additions and 46 deletions
|
|
@ -13,6 +13,7 @@ import androidx.compose.ui.text.font.Font
|
|||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.LineBreak
|
||||
import androidx.compose.ui.text.style.LineHeightStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
|
|
@ -26,6 +27,7 @@ internal val InterFamily = FontFamily(
|
|||
Font(R.font.inter_italic, style = FontStyle.Italic),
|
||||
)
|
||||
|
||||
@Suppress("LargeClass")
|
||||
@Stable
|
||||
class TangemTypography2 internal constructor(
|
||||
fontFamily: FontFamily,
|
||||
|
|
@ -40,157 +42,183 @@ class TangemTypography2 internal constructor(
|
|||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingRegular34: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 34.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = 0.37f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 40f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = 0.4f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 44f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingBold34: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 34.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
letterSpacing = TextUnit(value = 0.37f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 40f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = 0.4f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 44f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingRegular28: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 28.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = 0.36f, type = TextUnitType.Sp),
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 36f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingSemibold28: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 28.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 36f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingBold28: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 28.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
letterSpacing = TextUnit(value = 0.36f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 36f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingRegular22: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 22.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = 0.35f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 28f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val headingBold22: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 22.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
letterSpacing = TextUnit(value = 0.35f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.26f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 28f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingSemibold22: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 22.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.26f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 28f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingBold22: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 22.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
letterSpacing = TextUnit(value = -0.26f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 28f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingRegular20: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.45f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 24f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingSemibold20: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = 0.38f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -1.2f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 24f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingRegular17: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 17.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = -0.41f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.43f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingMedium17: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 17.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = -0.43f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val headingSemibold17: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 17.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = -0.2f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.43f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
lineBreak = LineBreak.Heading,
|
||||
)
|
||||
|
||||
val bodyRegular16: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = -0.32f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val bodySemibold16: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = -0.32f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.31f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
|
|
@ -202,7 +230,7 @@ class TangemTypography2 internal constructor(
|
|||
fontFamily = fontFamily,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = -0.32f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = -0.31f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
|
|
@ -210,6 +238,22 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
val bodySemibold16: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = -0.31f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 20f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
"will be removed",
|
||||
replaceWith = ReplaceWith("calloutRegular15"),
|
||||
)
|
||||
val bodyRegular15: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 15.sp,
|
||||
|
|
@ -222,6 +266,34 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
val calloutRegular15: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 15.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = -0.23f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val calloutSemibold15: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 15.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
letterSpacing = TextUnit(value = -0.23f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
message = "will be removed",
|
||||
replaceWith = ReplaceWith("calloutSemibold15"),
|
||||
)
|
||||
val bodySemibold15: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 15.sp,
|
||||
|
|
@ -234,6 +306,34 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
val subheadlineRegular14: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 14.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = -0.15f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val subheadlineMedium14: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 14.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = -0.15f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
"will be removed",
|
||||
replaceWith = ReplaceWith("subheadlineRegular14"),
|
||||
)
|
||||
val bodyRegular14: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 14.sp,
|
||||
|
|
@ -258,6 +358,10 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
message = "will be removed",
|
||||
replaceWith = ReplaceWith("captionMedium13"),
|
||||
)
|
||||
val captionSemibold13: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 13.sp,
|
||||
|
|
@ -270,6 +374,18 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
val captionMedium13: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 13.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = -0.08f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val captionRegular12: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 12.sp,
|
||||
|
|
@ -282,6 +398,10 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
"will be removed",
|
||||
replaceWith = ReplaceWith("captionMedium12"),
|
||||
)
|
||||
val captionSemibold12: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 12.sp,
|
||||
|
|
@ -294,11 +414,23 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
val captionMedium12: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 12.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = 0.0f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 16f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val captionRegular11: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 11.sp,
|
||||
fontWeight = FontWeight.Normal,
|
||||
letterSpacing = TextUnit(value = 0.07f, type = TextUnitType.Sp),
|
||||
letterSpacing = TextUnit(value = 0.06f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 12f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
|
|
@ -306,6 +438,10 @@ class TangemTypography2 internal constructor(
|
|||
),
|
||||
)
|
||||
|
||||
@Deprecated(
|
||||
"will be removed",
|
||||
replaceWith = ReplaceWith("captionMedium11"),
|
||||
)
|
||||
val captionSemibold11: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 11.sp,
|
||||
|
|
@ -317,6 +453,18 @@ class TangemTypography2 internal constructor(
|
|||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
|
||||
val captionMedium11: TextStyle = TextStyle(
|
||||
fontFamily = fontFamily,
|
||||
fontSize = 11.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
letterSpacing = TextUnit(value = 0.06f, type = TextUnitType.Sp),
|
||||
lineHeight = TextUnit(value = 12f, type = TextUnitType.Sp),
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
trim = LineHeightStyle.Trim.None,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
// region Preview
|
||||
|
|
@ -330,24 +478,29 @@ private fun TangemTypography2_Preview() {
|
|||
TangemTheme.typography2.headingRegular34,
|
||||
TangemTheme.typography2.headingBold34,
|
||||
TangemTheme.typography2.headingRegular28,
|
||||
TangemTheme.typography2.headingSemibold28,
|
||||
TangemTheme.typography2.headingBold28,
|
||||
TangemTheme.typography2.headingRegular22,
|
||||
TangemTheme.typography2.headingSemibold22,
|
||||
TangemTheme.typography2.headingBold22,
|
||||
TangemTheme.typography2.headingRegular20,
|
||||
TangemTheme.typography2.headingSemibold20,
|
||||
TangemTheme.typography2.headingRegular17,
|
||||
TangemTheme.typography2.headingMedium17,
|
||||
TangemTheme.typography2.headingSemibold17,
|
||||
TangemTheme.typography2.bodyRegular16,
|
||||
TangemTheme.typography2.bodyMedium16,
|
||||
TangemTheme.typography2.bodySemibold16,
|
||||
TangemTheme.typography2.bodyRegular15,
|
||||
TangemTheme.typography2.bodySemibold15,
|
||||
TangemTheme.typography2.bodyRegular14,
|
||||
TangemTheme.typography2.calloutRegular15,
|
||||
TangemTheme.typography2.calloutSemibold15,
|
||||
TangemTheme.typography2.subheadlineRegular14,
|
||||
TangemTheme.typography2.subheadlineMedium14,
|
||||
TangemTheme.typography2.captionRegular13,
|
||||
TangemTheme.typography2.captionSemibold13,
|
||||
TangemTheme.typography2.captionMedium13,
|
||||
TangemTheme.typography2.captionRegular12,
|
||||
TangemTheme.typography2.captionSemibold12,
|
||||
TangemTheme.typography2.captionMedium12,
|
||||
TangemTheme.typography2.captionRegular11,
|
||||
TangemTheme.typography2.captionSemibold11,
|
||||
TangemTheme.typography2.captionMedium11,
|
||||
)
|
||||
|
||||
Column(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue