目的・役割
豆知識1件をカード形式で表示。ホーム・カレンダー・お気に入り画面で共通利用。
ライトスタイル(白背景)と通常スタイル(テーマ背景)の2バリエーション。
UI 構成
| 要素 | 種類 | 説明 |
| カテゴリバッジ | Capsule | tip.category(歴史・科学等) |
| タイトル | Text (large) | tip.title |
| 本文 | Text | tip.content |
| ♥ ボタン | Button | FavoriteService.toggleFavorite |
| 共有ボタン | Button | ShareCardView 経由 |
| クイズボタン | Button | tip.quiz があるときのみ表示 |
状態
| 状態 | 表示内容 |
| クイズあり | クイズボタン表示 |
| クイズなし | クイズボタン非表示 |
| お気に入り済 | ♥ ハート塗りつぶし |
| 未お気に入り | ♡ ハート枠線のみ |
| ライトスタイル(isLightStyle=true) | 白背景・暗テキスト |
| 通常スタイル | テーマグラデーション・明テキスト |
使用するデータモデル
DailyTip {
let id: String
let title: String
let content: String
let category: String
let quiz: TipQuiz?
}
実装メモ
isLightStyle: Bool プロパティで背景色切り替え
- FavoriteService.toggleFavorite() で UI 即時更新(楽観UI)
- クイズボタンタップで QuizView を sheet 表示
関連
変更履歴
| バージョン | 日付 | 変更内容 |
| 1.0 | 2026-05-09 | 初版作成 |