feat(mobile): Phase M-1 모바일 프로젝트 기반 + V3 마스터 플랜
- V3 모바일 마스터 플랜 작성 (docs/v3/00-mobile-master-plan.md) 11개 Phase, 5주 로드맵, 전략 결정사항 확정 - 7개 디자인 HTML 레퍼런스 저장 (docs/v3/designs/) - app.json → app.config.ts 전환 + 환경변수 체계 - 5탭 네비게이션 (DASH/HIST/REC FAB/TALK/SET) - metro.config.js monorepo 격리 (root RN 0.84 충돌 해결) - ui-native 테마 디자인 목업 색상 동기화 - SafeArea 적용 (useSafeAreaInsets) - DEV 로그인 우회 (__DEV__ 전용) - Supabase .env 연동 - iOS 시뮬레이터 검증 완료
This commit is contained in:
parent
ffca07d120
commit
211673bc6c
30 changed files with 15010 additions and 525 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// packages/ui-native/src/components/PhosphorText.tsx
|
||||
// RN용 PhosphorText — Text + 앰버 glow (textShadowColor)
|
||||
|
||||
import { Text, type TextProps, type TextStyle, type StyleProp } from 'react-native'
|
||||
import { Text, Platform, type TextProps, type TextStyle, type StyleProp } from 'react-native'
|
||||
import { d3roNativePalette, d3roNativeTypo, type D3roNativeTypoKey } from '../theme'
|
||||
|
||||
export type PhosphorVariant = D3roNativeTypoKey
|
||||
|
|
@ -34,7 +34,7 @@ export function PhosphorText({
|
|||
const baseStyle: TextStyle = {
|
||||
...typo,
|
||||
color: resolvedColor,
|
||||
fontFamily: 'monospace',
|
||||
fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',
|
||||
...(isAmberVariant
|
||||
? {
|
||||
textShadowColor: d3roNativePalette.accent.amberGlow,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
// packages/ui-native — RN용 DS 컴포넌트 barrel
|
||||
// apps/mobile이 file: 의존성으로 참조
|
||||
|
||||
export * from './theme'
|
||||
export {
|
||||
d3roNativePalette,
|
||||
d3roNativeTypo,
|
||||
d3roNativeRadius,
|
||||
d3roNativeFonts,
|
||||
type D3roNativePaletteKey,
|
||||
type D3roNativeTypoKey
|
||||
} from './theme'
|
||||
export { MetalCard, type MetalCardProps } from './components/MetalCard'
|
||||
export {
|
||||
PhosphorText,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
// RN용 테마 토큰 — MUI 없이 순수 색상/타이포/그림자 값
|
||||
// packages/ui의 d3roPalette와 의도적으로 동기화 (RN은 CSS var 불가, 정적 값)
|
||||
|
||||
import { Platform } from 'react-native'
|
||||
|
||||
export const d3roNativePalette = {
|
||||
bg: {
|
||||
app: '#19191b',
|
||||
|
|
@ -9,25 +11,28 @@ export const d3roNativePalette = {
|
|||
cardHover: '#2a2a2d',
|
||||
elevated: '#2e2e32',
|
||||
sidebar: '#1e1f21',
|
||||
inset: '#1b1c1e',
|
||||
inset: '#0f0f11',
|
||||
chassis: '#242528'
|
||||
},
|
||||
text: {
|
||||
primary: '#ffffff',
|
||||
primary: '#d4d4d8',
|
||||
white: '#ffffff',
|
||||
secondary: '#8e8e93',
|
||||
label: '#7c7c82',
|
||||
disabled: '#4a4a4e',
|
||||
inactive: '#77797c',
|
||||
muted: '#3a3b3f'
|
||||
muted: '#71717a'
|
||||
},
|
||||
accent: {
|
||||
amber: '#f25b29',
|
||||
amberDim: 'rgba(242, 91, 41, 0.15)',
|
||||
amberGlow: 'rgba(242, 91, 41, 0.6)'
|
||||
amber: '#ff5c35',
|
||||
amberDim: 'rgba(255, 92, 53, 0.15)',
|
||||
amberGlow: 'rgba(255, 92, 53, 0.6)',
|
||||
green: '#4ade80',
|
||||
greenGlow: 'rgba(74, 222, 128, 0.6)'
|
||||
},
|
||||
border: {
|
||||
subtle: 'rgba(255,255,255,0.04)',
|
||||
default: 'rgba(255,255,255,0.08)',
|
||||
default: '#2e2e32',
|
||||
strong: 'rgba(255,255,255,0.12)'
|
||||
},
|
||||
tag: {
|
||||
|
|
@ -61,5 +66,10 @@ export const d3roNativeRadius = {
|
|||
pill: 999
|
||||
} as const
|
||||
|
||||
export const d3roNativeFonts = {
|
||||
mono: Platform.OS === 'ios' ? 'Menlo' : 'monospace',
|
||||
sans: Platform.OS === 'ios' ? 'System' : 'Roboto'
|
||||
} as const
|
||||
|
||||
export type D3roNativePaletteKey = keyof typeof d3roNativePalette
|
||||
export type D3roNativeTypoKey = keyof typeof d3roNativeTypo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue