diff --git a/.github/ISSUE_TEMPLATE/issue_form.yml b/.github/ISSUE_TEMPLATE/issue_form.yml
new file mode 100644
index 00000000..97a11875
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/issue_form.yml
@@ -0,0 +1,52 @@
+name: '이슈 생성'
+description: 'Repo에 이슈를 생성하며, 생성된 이슈는 Jira와 연동됩니다.'
+labels: [feat]
+title: '이슈 이름을 작성해주세요'
+body:
+ - type: input
+ id: parentKey
+ attributes:
+ label: '🎟️ 상위 작업 (Ticket Number)'
+ description: '상위 작업의 Ticket Number를 기입해주세요'
+ placeholder: 'THIP2025-00'
+ validations:
+ required: true
+
+ - type: dropdown
+ id: branchType
+ attributes:
+ label: '브랜치 타입'
+ options:
+ - feature
+ - bugfix
+ - hotfix
+ - refactor
+ validations:
+ required: true
+
+ - type: input
+ id: branch
+ attributes:
+ label: '🌳 브랜치명 (Branch)'
+ description: '영어로 브랜치명을 작성해주세요'
+ validations:
+ required: true
+
+ - type: input
+ id: description
+ attributes:
+ label: '📝 상세 내용(Description)'
+ description: '이슈에 대해서 간략히 설명해주세요'
+ validations:
+ required: true
+
+ - type: textarea
+ id: tasks
+ attributes:
+ label: '✅ 체크리스트(Tasks)'
+ description: '해당 이슈에 대해 필요한 작업목록을 작성해주세요'
+ value: |
+ - [ ] Task1
+ - [ ] Task2
+ validations:
+ required: true
diff --git a/.github/workflows/close-jira-issue.yml b/.github/workflows/close-jira-issue.yml
new file mode 100644
index 00000000..6dc9049e
--- /dev/null
+++ b/.github/workflows/close-jira-issue.yml
@@ -0,0 +1,41 @@
+name: Close Jira issue
+on:
+ issues:
+ types:
+ - closed
+
+jobs:
+ close-issue:
+ name: Close Jira issue
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Login to Jira
+ uses: atlassian/gajira-login@v3
+ env:
+ JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
+ JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
+
+ - name: Extract Jira issue key from GitHub issue title
+ id: extract-key
+ run: |
+ ISSUE_TITLE="${{ github.event.issue.title }}"
+ CLEANED_TITLE=$(echo "$ISSUE_TITLE" | tr -d '[]')
+ echo "🧼 Cleaned title: $CLEANED_TITLE"
+
+ JIRA_KEY=$(echo "$CLEANED_TITLE" | grep -oE '[A-Z0-9]+-[0-9]+')
+
+ if [ -z "$JIRA_KEY" ]; then
+ echo "❌ JIRA key could not be extracted. Exiting."
+ exit 1
+ fi
+
+ echo "✅ Extracted JIRA_KEY=$JIRA_KEY"
+ echo "JIRA_KEY=$JIRA_KEY" >> $GITHUB_ENV
+
+ - name: Transition Jira issue to Done
+ uses: atlassian/gajira-transition@v3
+ with:
+ issue: ${{ env.JIRA_KEY }}
+ transition: 완료
diff --git a/.github/workflows/create-jira-issue.yml b/.github/workflows/create-jira-issue.yml
new file mode 100644
index 00000000..d32be4c3
--- /dev/null
+++ b/.github/workflows/create-jira-issue.yml
@@ -0,0 +1,91 @@
+name: Create Jira issue
+on:
+ issues:
+ types:
+ - opened
+jobs:
+ create-issue:
+ name: Create Jira issue
+ runs-on: ubuntu-latest
+ steps:
+ - name: Login
+ uses: atlassian/gajira-login@v3
+ env:
+ JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
+ JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
+ JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
+
+ - name: Checkout main code
+ uses: actions/checkout@v4
+ with:
+ ref: main
+
+ - name: Issue Parser
+ uses: stefanbuck/github-issue-praser@v3
+ id: issue-parser
+ with:
+ template-path: .github/ISSUE_TEMPLATE/issue_form.yml
+
+ - name: Log Issue Parser
+ run: |
+ echo '${{ steps.issue-parser.outputs.issueparser_parentKey }}'
+ echo '${{ steps.issue-parser.outputs.__ticket_number }}'
+ echo '${{ steps.issue-parser.outputs.jsonString }}'
+
+ - name: Convert markdown to Jira Syntax
+ uses: peter-evans/jira2md@v1
+ id: md2jira
+ with:
+ input-text: |
+ ### Github Issue Link
+ - ${{ github.event.issue.html_url }}
+
+ ${{ github.event.issue.body }}
+ mode: md2jira
+
+ - name: Create Issue
+ id: create
+ uses: atlassian/gajira-create@v3
+ with:
+ project: THIP2025
+ issuetype: Task
+ summary: '${{ github.event.issue.title }}'
+ description: '${{ steps.md2jira.outputs.output-text }}'
+ fields: |
+ {
+ "parent": {
+ "key": "${{ steps.issue-parser.outputs.issueparser_parentKey }}"
+ }
+ }
+
+ - name: Log created issue
+ run: echo "Jira Issue ${{ steps.issue-parser.outputs.parentKey }}/${{ steps.create.outputs.issue }} was created"
+
+ - name: Checkout develop code
+ uses: actions/checkout@v4
+ with:
+ ref: develop
+
+ - name: Create branch with Ticket number
+ run: |
+ ISSUE_NUMBER="${{ steps.create.outputs.issue }}"
+ BRANCH_TYPE="${{ steps.issue-parser.outputs.issueparser_branchType }}"
+ ISSUE_TITLE="${{ steps.issue-parser.outputs.issueparser_branch }}"
+ BRANCH_NAME="${BRANCH_TYPE}/${ISSUE_NUMBER}-$(echo ${ISSUE_TITLE} | sed 's/ /-/g')"
+ git checkout -b "${BRANCH_NAME}"
+ git push origin "${BRANCH_NAME}"
+
+ - name: Update issue title
+ uses: actions-cool/issues-helper@v3
+ with:
+ actions: 'update-issue'
+ token: ${{ secrets.GITHUB_TOKEN }}
+ title: '[${{ steps.create.outputs.issue }}] ${{ github.event.issue.title }}'
+
+ - name: Add comment with Jira issue link
+ uses: actions-cool/issues-helper@v3
+ with:
+ actions: 'create-comment'
+ token: ${{ secrets.GITHUB_TOKEN }}
+ issue-number: ${{ github.event.issue.number }}
+ body: 'Jira Issue Created: [${{ steps.create.outputs.issue }}](${{ secrets.JIRA_BASE_URL }}/browse/${{ steps.create.outputs.issue }})'
diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 00000000..4a53bee8
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 00000000..371f2e29
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..4bf0b1b4
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 00000000..b268ef36
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 00000000..639c779c
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 00000000..7061a0d6
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 00000000..c224ad56
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 00000000..f8051a6f
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4dbf444d..2aa690e7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,7 +3,5 @@
-
-
-
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..16660f1d
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/texthip/thip/MainActivity.kt b/app/src/main/java/com/texthip/thip/MainActivity.kt
index eeef9c4d..100ee6c1 100644
--- a/app/src/main/java/com/texthip/thip/MainActivity.kt
+++ b/app/src/main/java/com/texthip/thip/MainActivity.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
+import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
@@ -12,6 +13,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.texthip.thip.ui.theme.ThipTheme
+import com.texthip.thip.ui.theme.ThipTheme.colors
+import com.texthip.thip.ui.theme.ThipTheme.typography
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@@ -32,10 +35,43 @@ class MainActivity : ComponentActivity() {
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
- Text(
- text = "Hello $name!",
- modifier = modifier
- )
+ Column {
+ Text(
+ text = "Hello $name!",
+ modifier = modifier,
+ style = typography.bigtitle_b700_s22_h24,
+ color = colors.Purple,
+ )
+
+ Text(
+ text = "Hello $name!",
+ modifier = modifier,
+ style = typography.smalltitle_sb600_s16_h20,
+ color = colors.NeonGreen,
+ )
+
+ Text(
+ text = "Hello $name!",
+ modifier = modifier,
+ style = typography.menu_sb600_s12,
+ color = colors.Red,
+ )
+
+ Text(
+ text = "Hello $name!",
+ modifier = modifier,
+ style = typography.navi_m500_s10,
+ color = colors.DarkGrey,
+ )
+
+ Text(
+ text = "Hello $name!",
+ modifier = modifier,
+ style = typography.view_r400_s11_h20,
+ color = colors.Black,
+ )
+ }
+
}
@Preview(showBackground = true)
diff --git a/app/src/main/java/com/texthip/thip/ui/theme/Color.kt b/app/src/main/java/com/texthip/thip/ui/theme/Color.kt
index c48c8be3..d1a9f263 100644
--- a/app/src/main/java/com/texthip/thip/ui/theme/Color.kt
+++ b/app/src/main/java/com/texthip/thip/ui/theme/Color.kt
@@ -1,11 +1,80 @@
package com.texthip.thip.ui.theme
+import androidx.compose.runtime.Immutable
+import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.Color
-val Purple80 = Color(0xFFD0BCFF)
-val PurpleGrey80 = Color(0xFFCCC2DC)
-val Pink80 = Color(0xFFEFB8C8)
+val Purple = Color(0xFF6868FF)
+val PurpleSub = Color(0xFFA1A1FF)
+val PurpleDark = Color(0xFF414194)
-val Purple40 = Color(0xFF6650a4)
-val PurpleGrey40 = Color(0xFF625b71)
-val Pink40 = Color(0xFF7D5260)
\ No newline at end of file
+val NeonGreen = Color(0xFFA7FFB4)
+val NeonGreen50 = Color(0x80A7FFB4)
+
+val Red = Color(0xFFFF9496)
+
+val PureWhite = Color(0xFFFFFFFF)
+val White = Color(0xFFFEFEFE)
+
+val Grey50 = Color(0x80C4C4C4)
+val Grey = Color(0xFFDADADA)
+val Grey01 = Color(0xFFADADAD)
+val Grey02 = Color(0xFF888888)
+val Grey03 = Color(0xFF525252)
+val DarkGrey = Color(0xFF3D3D3D)
+val DarkGrey50 = Color(0x803D3D3D)
+val DarkGrey02 = Color(0xFF282828)
+
+val Black = Color(0xFF121212)
+val Black50 = Color(0x80121212)
+val Black10 = Color(0x1A121212)
+val Black00 = Color(0x00121212)
+
+@Immutable
+data class ThipColors(
+ val Purple: Color,
+ val PurpleSub: Color,
+ val PurpleDark: Color,
+ val NeonGreen: Color,
+ val NeonGreen50: Color,
+ val Red: Color,
+ val PureWhite: Color,
+ val White: Color,
+ val Grey50: Color,
+ val Grey: Color,
+ val Grey01: Color,
+ val Grey02: Color,
+ val Grey03: Color,
+ val DarkGrey: Color,
+ val DarkGrey50: Color,
+ val DarkGrey02: Color,
+ val Black: Color,
+ val Black50: Color,
+ val Black10: Color,
+ val Black00: Color,
+)
+
+val defaultThipColors = ThipColors(
+ Purple = Purple,
+ PurpleSub = PurpleSub,
+ PurpleDark = PurpleDark,
+ NeonGreen = NeonGreen,
+ NeonGreen50 = NeonGreen50,
+ Red = Red,
+ PureWhite = PureWhite,
+ White = White,
+ Grey50 = Grey50,
+ Grey = Grey,
+ Grey01 = Grey01,
+ Grey02 = Grey02,
+ Grey03 = Grey03,
+ DarkGrey = DarkGrey,
+ DarkGrey50 = DarkGrey50,
+ DarkGrey02 = DarkGrey02,
+ Black = Black,
+ Black50 = Black50,
+ Black10 = Black10,
+ Black00 = Black00
+)
+
+val LocalThipColorsProvider = staticCompositionLocalOf { defaultThipColors }
\ No newline at end of file
diff --git a/app/src/main/java/com/texthip/thip/ui/theme/Theme.kt b/app/src/main/java/com/texthip/thip/ui/theme/Theme.kt
index a4443aa6..69f646f4 100644
--- a/app/src/main/java/com/texthip/thip/ui/theme/Theme.kt
+++ b/app/src/main/java/com/texthip/thip/ui/theme/Theme.kt
@@ -1,58 +1,69 @@
package com.texthip.thip.ui.theme
import android.app.Activity
-import android.os.Build
-import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.darkColorScheme
-import androidx.compose.material3.dynamicDarkColorScheme
-import androidx.compose.material3.dynamicLightColorScheme
-import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
-import androidx.compose.ui.platform.LocalContext
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.runtime.ReadOnlyComposable
+import androidx.compose.runtime.SideEffect
+import androidx.compose.ui.platform.LocalView
+import androidx.core.view.WindowCompat
+import com.texthip.thip.ui.theme.ThipTheme.colors
-private val DarkColorScheme = darkColorScheme(
- primary = Purple80,
- secondary = PurpleGrey80,
- tertiary = Pink80
-)
+object ThipTheme {
+ val colors: ThipColors
+ @Composable
+ @ReadOnlyComposable
+ get() = LocalThipColorsProvider.current
-private val LightColorScheme = lightColorScheme(
- primary = Purple40,
- secondary = PurpleGrey40,
- tertiary = Pink40
+ val typography: ThipTypography
+ @Composable
+ @ReadOnlyComposable
+ get() = LocalThipTypographyProvider.current
+}
- /* Other default colors to override
- background = Color(0xFFFFFBFE),
- surface = Color(0xFFFFFBFE),
- onPrimary = Color.White,
- onSecondary = Color.White,
- onTertiary = Color.White,
- onBackground = Color(0xFF1C1B1F),
- onSurface = Color(0xFF1C1B1F),
- */
-)
+@Composable
+fun ProvideThipColorsAndTypography(
+ colors: ThipColors,
+ typography: ThipTypography,
+ content: @Composable () -> Unit
+) {
+ CompositionLocalProvider(
+ LocalThipColorsProvider provides colors,
+ LocalThipTypographyProvider provides typography,
+ content = content
+ )
+}
@Composable
fun ThipTheme(
- darkTheme: Boolean = isSystemInDarkTheme(),
- // Dynamic color is available on Android 12+
- dynamicColor: Boolean = true,
content: @Composable () -> Unit
) {
- val colorScheme = when {
- dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
- val context = LocalContext.current
- if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
+ ProvideThipColorsAndTypography (
+ colors = defaultThipColors,
+ typography = defaultThipTypography
+ ) {
+ val view = LocalView.current
+ if (!view.isInEditMode) {
+ SideEffect {
+ (view.context as Activity).window.run {
+ WindowCompat.getInsetsController(this, view).isAppearanceLightStatusBars = false
+ }
+ }
}
-
- darkTheme -> DarkColorScheme
- else -> LightColorScheme
+ MaterialTheme(
+ content = {
+ Box(
+ modifier = androidx.compose.ui.Modifier
+ .fillMaxSize()
+ .background(colors.Black)
+ ) {
+ content()
+ }
+ }
+ )
}
-
- MaterialTheme(
- colorScheme = colorScheme,
- typography = Typography,
- content = content
- )
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/texthip/thip/ui/theme/Type.kt b/app/src/main/java/com/texthip/thip/ui/theme/Type.kt
index 2132a25f..03bde03a 100644
--- a/app/src/main/java/com/texthip/thip/ui/theme/Type.kt
+++ b/app/src/main/java/com/texthip/thip/ui/theme/Type.kt
@@ -1,34 +1,249 @@
package com.texthip.thip.ui.theme
-import androidx.compose.material3.Typography
+import androidx.compose.runtime.Immutable
+import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
-import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.LineHeightStyle
import androidx.compose.ui.unit.sp
+import com.texthip.thip.R
-// Set of Material typography styles to start with
-val Typography = Typography(
- bodyLarge = TextStyle(
- fontFamily = FontFamily.Default,
- fontWeight = FontWeight.Normal,
- fontSize = 16.sp,
+val thipFontBold = FontFamily(Font(R.font.bold))
+val thipFontSemiBold = FontFamily(Font(R.font.semibold))
+val thipFontMedium = FontFamily(Font(R.font.medium))
+val thipFontRegular = FontFamily(Font(R.font.regular))
+
+@Immutable
+data class ThipTypography(
+ val bigtitle_b700_s22_h24: TextStyle,
+ val bigtitle_b700_s22: TextStyle,
+ val title_b700_s20_h24: TextStyle,
+ val navipressed_b700_s10: TextStyle,
+ val smalltitle_sb600_s18_h24: TextStyle,
+ val smalltitle_sb600_s16_h24: TextStyle,
+ val smalltitle_sb600_s16_h20: TextStyle,
+ val smalltitle_sb600_s14_h20: TextStyle,
+ val menu_sb600_s14_h24: TextStyle,
+ val menu_sb600_s12_h20: TextStyle,
+ val menu_sb600_s12: TextStyle,
+ val smalltitle_m500_s18_h24: TextStyle,
+ val menu_m500_s16_h24: TextStyle,
+ val menu_m500_s14_h24: TextStyle,
+ val copy_m500_s14_h20: TextStyle,
+ val view_m500_s14: TextStyle,
+ val view_m500_s12_h20: TextStyle,
+ val info_m500_s12: TextStyle,
+ val navi_m500_s10: TextStyle,
+ val menu_r400_s14_h24: TextStyle,
+ val feedcopy_r400_s14_h20: TextStyle,
+ val copy_r400_s14: TextStyle,
+ val info_r400_s12_h24: TextStyle,
+ val copy_r400_s12_h20: TextStyle,
+ val info_r400_s12: TextStyle,
+ val view_r400_s11_h20: TextStyle,
+ val timedate_r400_s11: TextStyle,
+)
+
+val defaultThipTypography = ThipTypography(
+ bigtitle_b700_s22_h24 = TextStyle(
+ fontFamily = thipFontBold,
+ fontSize = 22.sp,
lineHeight = 24.sp,
- letterSpacing = 0.5.sp
- )
- /* Other default text styles to override
- titleLarge = TextStyle(
- fontFamily = FontFamily.Default,
- fontWeight = FontWeight.Normal,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ bigtitle_b700_s22 = TextStyle(
+ fontFamily = thipFontBold,
fontSize = 22.sp,
- lineHeight = 28.sp,
- letterSpacing = 0.sp
),
- labelSmall = TextStyle(
- fontFamily = FontFamily.Default,
- fontWeight = FontWeight.Medium,
+ title_b700_s20_h24 = TextStyle(
+ fontFamily = thipFontBold,
+ fontSize = 20.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ navipressed_b700_s10 = TextStyle(
+ fontFamily = thipFontBold,
+ fontSize = 10.sp,
+ ),
+ smalltitle_sb600_s18_h24 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 18.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ smalltitle_sb600_s16_h24 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ smalltitle_sb600_s16_h20 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 16.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ smalltitle_sb600_s14_h20 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ menu_sb600_s14_h24 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 14.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ menu_sb600_s12_h20 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 12.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ menu_sb600_s12 = TextStyle(
+ fontFamily = thipFontSemiBold,
+ fontSize = 12.sp,
+ ),
+ smalltitle_m500_s18_h24 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 18.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ menu_m500_s16_h24 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ menu_m500_s14_h24 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 14.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ copy_m500_s14_h20 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ view_m500_s14 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 14.sp,
+ ),
+ view_m500_s12_h20 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 12.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ info_m500_s12 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 12.sp,
+ ),
+ navi_m500_s10 = TextStyle(
+ fontFamily = thipFontMedium,
+ fontSize = 10.sp,
+ ),
+ menu_r400_s14_h24 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 14.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ feedcopy_r400_s14_h20 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ copy_r400_s14 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 14.sp,
+ ),
+ info_r400_s12_h24 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 12.sp,
+ lineHeight = 24.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ copy_r400_s12_h20 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 12.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ info_r400_s12 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 12.sp,
+ ),
+ view_r400_s11_h20 = TextStyle(
+ fontFamily = thipFontRegular,
+ fontSize = 11.sp,
+ lineHeight = 20.sp,
+ lineHeightStyle = LineHeightStyle(
+ alignment = LineHeightStyle.Alignment.Center,
+ trim = LineHeightStyle.Trim.None
+ )
+ ),
+ timedate_r400_s11 = TextStyle(
+ fontFamily = thipFontRegular,
fontSize = 11.sp,
- lineHeight = 16.sp,
- letterSpacing = 0.5.sp
- )
- */
-)
\ No newline at end of file
+ ),
+)
+
+val LocalThipTypographyProvider = staticCompositionLocalOf { defaultThipTypography }
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_arrow_back.xml b/app/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 00000000..55210141
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_arrow_forward.xml b/app/src/main/res/drawable/ic_arrow_forward.xml
new file mode 100644
index 00000000..6f8cfbbc
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_forward.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_booksearch.xml b/app/src/main/res/drawable/ic_booksearch.xml
new file mode 100644
index 00000000..716e939d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_booksearch.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_bye.xml b/app/src/main/res/drawable/ic_bye.xml
new file mode 100644
index 00000000..6d011db8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_bye.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml
new file mode 100644
index 00000000..bb92d906
--- /dev/null
+++ b/app/src/main/res/drawable/ic_calendar.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_center.xml b/app/src/main/res/drawable/ic_center.xml
new file mode 100644
index 00000000..e55e16d3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_center.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml
new file mode 100644
index 00000000..5be12b8e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_check.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_chevron_left.xml b/app/src/main/res/drawable/ic_chevron_left.xml
new file mode 100644
index 00000000..436e53d6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_chevron_left.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_chevron_right.xml b/app/src/main/res/drawable/ic_chevron_right.xml
new file mode 100644
index 00000000..7294529a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_chevron_right.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_comment.xml b/app/src/main/res/drawable/ic_comment.xml
new file mode 100644
index 00000000..149a9f35
--- /dev/null
+++ b/app/src/main/res/drawable/ic_comment.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml
new file mode 100644
index 00000000..5aaba5b6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_delete.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_done.xml b/app/src/main/res/drawable/ic_done.xml
new file mode 100644
index 00000000..757e5a80
--- /dev/null
+++ b/app/src/main/res/drawable/ic_done.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_downmore.xml b/app/src/main/res/drawable/ic_downmore.xml
new file mode 100644
index 00000000..697e0f25
--- /dev/null
+++ b/app/src/main/res/drawable/ic_downmore.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_dropdown_down.xml b/app/src/main/res/drawable/ic_dropdown_down.xml
new file mode 100644
index 00000000..617f5785
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dropdown_down.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_dropdown_up.xml b/app/src/main/res/drawable/ic_dropdown_up.xml
new file mode 100644
index 00000000..3d989b1a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dropdown_up.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_feed.xml b/app/src/main/res/drawable/ic_feed.xml
new file mode 100644
index 00000000..ec92620b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_feed.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_google.png b/app/src/main/res/drawable/ic_google.png
new file mode 100644
index 00000000..ddc4e4cc
Binary files /dev/null and b/app/src/main/res/drawable/ic_google.png differ
diff --git a/app/src/main/res/drawable/ic_group.xml b/app/src/main/res/drawable/ic_group.xml
new file mode 100644
index 00000000..e484c1f9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_group.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_guide.xml b/app/src/main/res/drawable/ic_guide.xml
new file mode 100644
index 00000000..11c2e35b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_guide.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_heart.xml b/app/src/main/res/drawable/ic_heart.xml
new file mode 100644
index 00000000..09411a02
--- /dev/null
+++ b/app/src/main/res/drawable/ic_heart.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_kakaotalk.png b/app/src/main/res/drawable/ic_kakaotalk.png
new file mode 100644
index 00000000..fe529cc0
Binary files /dev/null and b/app/src/main/res/drawable/ic_kakaotalk.png differ
diff --git a/app/src/main/res/drawable/ic_lock.xml b/app/src/main/res/drawable/ic_lock.xml
new file mode 100644
index 00000000..90dbf6af
--- /dev/null
+++ b/app/src/main/res/drawable/ic_lock.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_logout.xml b/app/src/main/res/drawable/ic_logout.xml
new file mode 100644
index 00000000..3c3a7aca
--- /dev/null
+++ b/app/src/main/res/drawable/ic_logout.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_makegroup.xml b/app/src/main/res/drawable/ic_makegroup.xml
new file mode 100644
index 00000000..5d669371
--- /dev/null
+++ b/app/src/main/res/drawable/ic_makegroup.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_more.xml b/app/src/main/res/drawable/ic_more.xml
new file mode 100644
index 00000000..b67768e7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_more.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_mypage.xml b/app/src/main/res/drawable/ic_mypage.xml
new file mode 100644
index 00000000..7acdded8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mypage.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_notice.xml b/app/src/main/res/drawable/ic_notice.xml
new file mode 100644
index 00000000..4cec80dd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notice.xml
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_notice_yes.xml b/app/src/main/res/drawable/ic_notice_yes.xml
new file mode 100644
index 00000000..a447be6e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notice_yes.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_pin.xml b/app/src/main/res/drawable/ic_pin.xml
new file mode 100644
index 00000000..4bd530d9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_pin.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_play.xml b/app/src/main/res/drawable/ic_play.xml
new file mode 100644
index 00000000..9f18fdae
--- /dev/null
+++ b/app/src/main/res/drawable/ic_play.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_plus.xml b/app/src/main/res/drawable/ic_plus.xml
new file mode 100644
index 00000000..0e43d70c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_plus.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_plusfriend.xml b/app/src/main/res/drawable/ic_plusfriend.xml
new file mode 100644
index 00000000..6464c2ce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_plusfriend.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_rankdash.xml b/app/src/main/res/drawable/ic_rankdash.xml
new file mode 100644
index 00000000..647ec200
--- /dev/null
+++ b/app/src/main/res/drawable/ic_rankdash.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_rankdown.xml b/app/src/main/res/drawable/ic_rankdown.xml
new file mode 100644
index 00000000..5eb95cad
--- /dev/null
+++ b/app/src/main/res/drawable/ic_rankdown.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_rankup.xml b/app/src/main/res/drawable/ic_rankup.xml
new file mode 100644
index 00000000..07895d9d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_rankup.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_reply.xml b/app/src/main/res/drawable/ic_reply.xml
new file mode 100644
index 00000000..6f9ca729
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reply.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_reset.xml b/app/src/main/res/drawable/ic_reset.xml
new file mode 100644
index 00000000..393b7ddf
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reset.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_save.xml b/app/src/main/res/drawable/ic_save.xml
new file mode 100644
index 00000000..2bbd9562
--- /dev/null
+++ b/app/src/main/res/drawable/ic_save.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml
new file mode 100644
index 00000000..9f1791e6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_search.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_send.xml b/app/src/main/res/drawable/ic_send.xml
new file mode 100644
index 00000000..49bc02c1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_send.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_unlock.xml b/app/src/main/res/drawable/ic_unlock.xml
new file mode 100644
index 00000000..b5e08b33
--- /dev/null
+++ b/app/src/main/res/drawable/ic_unlock.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_upmore.xml b/app/src/main/res/drawable/ic_upmore.xml
new file mode 100644
index 00000000..bf68da80
--- /dev/null
+++ b/app/src/main/res/drawable/ic_upmore.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_vote.xml b/app/src/main/res/drawable/ic_vote.xml
new file mode 100644
index 00000000..fe626dc4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_vote.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_write.xml b/app/src/main/res/drawable/ic_write.xml
new file mode 100644
index 00000000..db9362d4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_write.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_x.xml b/app/src/main/res/drawable/ic_x.xml
new file mode 100644
index 00000000..2375a290
--- /dev/null
+++ b/app/src/main/res/drawable/ic_x.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_x_circle.xml b/app/src/main/res/drawable/ic_x_circle.xml
new file mode 100644
index 00000000..8c6e275a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_x_circle.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/app/src/main/res/font/bold.ttf b/app/src/main/res/font/bold.ttf
new file mode 100644
index 00000000..fb07fc65
Binary files /dev/null and b/app/src/main/res/font/bold.ttf differ
diff --git a/app/src/main/res/font/medium.ttf b/app/src/main/res/font/medium.ttf
new file mode 100644
index 00000000..1db67c68
Binary files /dev/null and b/app/src/main/res/font/medium.ttf differ
diff --git a/app/src/main/res/font/regular.ttf b/app/src/main/res/font/regular.ttf
new file mode 100644
index 00000000..01147e99
Binary files /dev/null and b/app/src/main/res/font/regular.ttf differ
diff --git a/app/src/main/res/font/semibold.ttf b/app/src/main/res/font/semibold.ttf
new file mode 100644
index 00000000..9f2690f0
Binary files /dev/null and b/app/src/main/res/font/semibold.ttf differ