-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
enhancementNew feature or requestNew feature or request
Description
from Devin.ai
背景
散布図の可視化において、様々な色覚特性を持つユーザーへの配慮が十分ではないという課題があります。現状では:
- 第一色覚(赤系統の識別が困難)の方にとって、クラスター間の区別が難しい場合がある
- 第二色覚(緑系統の識別が困難)の方にとって、近似した色相の区別が困難な場合がある
- 第三色覚(青系統の識別が困難)の方にとって、特定の色の組み合わせが見分けにくい場合がある
これらの課題に対応し、より多くのユーザーが散布図を効果的に利用できるようにする必要があります。
提案内容
色覚特性に配慮した複数のカラーパレットを実装し、ユーザーが自身に適した表示方法を選択できるようにします:
- パレットの種類
- デフォルト:既存の配色
- カラーユニバーサル:色覚の多様性に配慮した8色セット
- 第一色覚対応:赤系統の識別を考慮した配色
- 第二色覚対応:緑系統の識別を考慮した配色
- 第三色覚対応:青系統の識別を考慮した配色
- 実装方針
- フルスクリーンマップビューにパレット選択用ドロップダウンを追加
- 選択したパレットをlocalStorageに保存し、次回訪問時も維持
- 各パレットは明度と彩度の差を活用し、色相だけでなく明るさでも区別可能に
その他
実装内容
1. カラーパレットの定義 (useColorPalettes.ts)
- 各色覚特性に対応した専用パレットの実装
- カラーユニバーサルデザインに基づく8色パレットの定義
- 明度と彩度の差を考慮した配色設計
2. 色生成ロジックの改修 (useClusterColor.ts)
- パレット選択に応じた動的な色生成
- クラスター数に応じた最適な色分配
- 色の一貫性維持の実装
3. UI実装 (DesktopFullscreenTools.tsx)
- パレット選択用ドロップダウンの追加
- 選択状態のlocalStorage永続化
- 日本語表示による使いやすさの向上
4. 状態管理とコンポーネント連携
Report.tsx: アプリケーション全体での状態管理DesktopMap.tsx: 選択パレットの散布図への適用- パレット切り替え時の適切な再描画処理
技術的な実装詳細
パレット定義例
const colorUniversalPalette = [
'#000000', // 黒
'#E69F00', // オレンジ
'#56B4E9', // 水色
'#009E73', // 緑
'#F0E442', // 黄色
'#0072B2', // 青
'#D55E00', // 赤
'#CC79A7' // ピンク
];状態管理
// パレット選択状態の永続化
const [selectedPalette, setSelectedPalette] = useState(() => {
if (typeof window !== 'undefined') {
return localStorage.getItem('selectedColorPalette') || 'default';
}
return 'default';
});Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request