앱 공통 계층 — 데이터 저장소 · 서버 시계 · 푸시 · 결제·광고 · 다국어 5종 · 행성 표현 · 공통 UI · 화면 자산

This commit is contained in:
Sn-Kinos
2026-09-29 17:06:48 +09:00
parent cbfb72efe0
commit c4e9a9430e
165 changed files with 29991 additions and 54 deletions
+37
View File
@@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
/// 사본 `Radio` 컴포넌트(20) — 미선택은 #2A2A2C 가는 테두리, 선택은 #D1D1D2 원 안의 어두운 점.
///
/// Material [Radio] 는 2px 링을 그려 사본보다 굵고 밝다. 신고 사유 · 환불 사유가 같이 쓴다.
class AppRadio extends StatelessWidget {
const AppRadio({super.key, required this.selected});
final bool selected;
@override
Widget build(BuildContext context) => Semantics(
checked: selected,
inMutuallyExclusiveGroup: true,
child: Container(
width: 20,
height: 20,
alignment: Alignment.center,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: selected ? const Color(0xFFD1D1D2) : null,
border: selected
? null
: Border.all(color: const Color(0xFF2A2A2C), width: 1.5),
),
child: selected
? const DecoratedBox(
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Color(0xFF141414),
),
child: SizedBox.square(dimension: 8),
)
: null,
),
);
}