import 'package:flutter/material.dart'; import '../../../core/theme/tokens.dart'; /// Figma 사본(F5) 글자 — 크기 · 굵기 · 색 · 줄 높이를 spec.json 값 그대로 옮긴다. /// /// 자간은 Figma 의 -2.5% 를 기본으로 둔다(글자 크기 비례). ABeeZee 에 한글이 없어 /// 한글은 42dot Sans 로 떨어진다 — Figma 렌더와 같은 결과다. TextStyle campaignText( double size, int weight, Color color, { double? height, double spacing = -0.025, String family = AppFonts.body, }) => TextStyle( fontFamily: family, fontFamilyFallback: const [AppFonts.body], fontSize: size, fontWeight: FontWeight.values[weight ~/ 100 - 1], height: height, letterSpacing: size * spacing, color: color, ); /// 달성 배지 · 기여 게이지 · 말풍선의 청록→보라 그라디언트(Figma 이미지 채움 실측). const campaignGradient = LinearGradient( colors: [AppColors.cosmicTeal, Color(0xFF5A69DE)], ); /// 작성자 아바타 자리. 캠페인 문서에 작성자 사진 필드가 없어 시안의 단색 원을 쓴다. const campaignAvatarColor = Color(0xFFED7E7E);