타입 스케일·공통 크롬을 Figma 기준으로 정렬 — 상단 내비게이션 · 하단 탭 아이콘 · 버튼 · 시트
This commit is contained in:
@@ -31,6 +31,8 @@ abstract final class AppColors {
|
||||
static const onCosmic = Color(0xFFFFFFFF); // color-on-cosmic #FFFFFF
|
||||
static const onCosmicVariant = Color(0xFFA3A2A0); // color-on-cosmic-variant #A3A2A0
|
||||
static const onCosmicMuted = Color(0xFF767676); // color-on-cosmic-muted #767676
|
||||
static const cosmicSheet = Color(0xFF2C2C2E); // color-cosmic-sheet #2C2C2E
|
||||
static const cosmicDialog = Color(0xFF2D2D2D); // color-cosmic-dialog #2D2D2D
|
||||
static const cosmicAccent = Color(0xFFFF7DDD); // color-cosmic-accent #FF7DDD
|
||||
static const onCosmicAccent = Color(0xFF141414); // color-on-cosmic-accent #141414
|
||||
static const neonCyan = Color(0xFF64EFF9); // color-neon-cyan #64EFF9
|
||||
@@ -153,18 +155,22 @@ abstract final class AppFonts {
|
||||
|
||||
/// 타입 스케일. 값은 design-tokens.md 의 type 블록 그대로다.
|
||||
abstract final class AppType {
|
||||
static const displayL = TypeToken(family: AppFonts.display, size: 44.0, weight: 700, height: 1.06, letterSpacing: -0.44); // type-display-l
|
||||
static const displayM = TypeToken(family: AppFonts.display, size: 32.0, weight: 700, height: 1.2, letterSpacing: -0.224); // type-display-m
|
||||
static const titleL = TypeToken(family: AppFonts.display, size: 24.0, weight: 700, height: 1.3, letterSpacing: 0.0); // type-title-l
|
||||
static const titleM = TypeToken(family: AppFonts.body, size: 18.0, weight: 600, height: 1.3); // type-title-m
|
||||
static const bodyL = TypeToken(family: AppFonts.body, size: 18.0, weight: 400, height: 1.6); // type-body-l
|
||||
static const bodyM = TypeToken(family: AppFonts.body, size: 16.0, weight: 400, height: 1.6); // type-body-m
|
||||
static const bodyS = TypeToken(family: AppFonts.body, size: 14.0, weight: 400, height: 1.55); // type-body-s
|
||||
static const labelL = TypeToken(family: AppFonts.body, size: 14.0, weight: 500, height: 1.2); // type-label-l
|
||||
static const displayL = TypeToken(family: AppFonts.display, size: 46.0, weight: 400, height: 1.0); // type-display-l
|
||||
static const displayM = TypeToken(family: AppFonts.display, size: 32.0, weight: 400, height: 1.4, letterSpacing: -0.8); // type-display-m
|
||||
static const titleL = TypeToken(family: AppFonts.body, size: 20.0, weight: 600, height: 1.4, letterSpacing: -0.5); // type-title-l
|
||||
static const titleM = TypeToken(family: AppFonts.body, size: 16.0, weight: 600, height: 1.4, letterSpacing: -0.4); // type-title-m
|
||||
static const bodyL = TypeToken(family: AppFonts.body, size: 16.0, weight: 500, height: 1.4, letterSpacing: -0.4); // type-body-l
|
||||
static const bodyM = TypeToken(family: AppFonts.body, size: 14.0, weight: 500, height: 1.3, letterSpacing: -0.35); // type-body-m
|
||||
static const bodyS = TypeToken(family: AppFonts.body, size: 12.0, weight: 500, height: 1.3, letterSpacing: -0.3); // type-body-s
|
||||
static const labelL = TypeToken(family: AppFonts.body, size: 14.0, weight: 600, height: 1.3, letterSpacing: -0.35); // type-label-l
|
||||
static const labelMobile = TypeToken(family: AppFonts.body, size: 16.0, weight: 700, height: 1.4); // type-label-mobile
|
||||
static const metaMobile = TypeToken(family: AppFonts.body, size: 13.0, weight: 600, height: 1.4); // type-meta-mobile
|
||||
static const eyebrow = TypeToken(family: AppFonts.body, size: 12.0, weight: 600, letterSpacing: 0.48); // type-eyebrow
|
||||
static const caption = TypeToken(family: AppFonts.body, size: 12.0, weight: 500, height: 1.4); // type-caption
|
||||
static const eyebrow = TypeToken(family: AppFonts.body, size: 12.0, weight: 600, height: 1.0, letterSpacing: -0.3); // type-eyebrow
|
||||
static const caption = TypeToken(family: AppFonts.body, size: 12.0, weight: 500, height: 1.3, letterSpacing: -0.3); // type-caption
|
||||
static const meta = TypeToken(family: AppFonts.body, size: 10.0, weight: 500, height: 1.3, letterSpacing: -0.25); // type-meta
|
||||
static const navTitle = TypeToken(family: AppFonts.body, size: 16.0, weight: 600, height: 1.5); // type-nav-title
|
||||
static const tabTitle = TypeToken(family: AppFonts.display, size: 20.0, weight: 400, height: 1.4); // type-tab-title
|
||||
static const navLabel = TypeToken(family: AppFonts.display, size: 10.0, weight: 400, height: 1.6); // type-nav-label
|
||||
// type-mono-num: {'family': 'font-mono', 'feature': 'tnum', 'note': '가격·지표·표는 tabular'} (크기 없는 지시자 — TextStyle 로 못 옮긴다)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user