Gftd Japan株式会社 / デザインシステム
Gftd Japan株式会社の「高い知性と倫理観に基づき、最先端の科学技術を用いた、サイバーセキュリティ技術を用いて、我らと我らの子孫が豊かで情緒的な暮らしを送ることができるよう、いい感じの社会を作る」の実現に寄与するデザインアセットです。
特徴
- Rust + Sauron: 安全で高速なWebフロントエンドを実現
- アクセシビリティ: JIS X 8341-3:2016(WCAG 2.0)に準拠したアクセシブルなコンポーネント
- Sauronコンポーネント: 型安全なコンポーネントAPIで開発効率を向上
- WASMサポート: WebAssemblyで高速な実行を実現
インストール方法
Cargo.tomlに依存関係を追加:
[]
= "0.1.0"
使用例
use *;
use *;
use add_button_styles;
利用可能なコンポーネント
ボタン (Button)
デジタル庁デザインシステムに準拠したボタンコンポーネント:
- スタイル: SolidFill(塗り), Outlined(アウトライン), Text(テキスト)
- サイズ: XSmall(極小), Small(小), Medium(中), Large(大)
- 状態: Default(通常), Hover(ホバー), Active(アクティブ), Focus(フォーカス), Disabled(無効), FocusOnDisabled(無効時フォーカス)
各スタイル、サイズ、状態の組み合わせに対応し、アクセシビリティに配慮した実装となっています。
use *;
use *;
use add_button_styles;
// ボタンの使用例
// Sauronを使用したボタンコンポーネントの例
リンク (Link)
テキストリンクコンポーネント:
- バリアント: Standard, Dense, Outline
- サイズ: Small, Medium
- 太さ: Normal, Bold
- 状態: Default, Hover, Active, Visited, Focus
- 機能: 外部リンクアイコン表示、新しいウィンドウで開く
use *;
use *;
use add_link_styles;
// リンクの使用例
// Sauronを使用したリンクコンポーネントの例
// グローバルリンクスタイルを追加
let _ = add_link_styles;
// リンクコンポーネントの実装...
カード (Card)
コンテンツをまとめて表示するカードコンポーネント:
- バリアント: WithoutLink, WithOneLink, WithFunction
- レイアウト: Vertical, Horizontal
- 状態: Default, Hover, Focus
- エリアタイプ: Main, Image, Sub
- 機能: リンク、アクション、背景画像、カスタムボーダー半径
use *;
use *;
use add_card_styles;
// カードの使用例
// Sauronを使用したカードコンポーネントの例
// グローバルカードスタイルを追加
let _ = add_card_styles;
// カードコンポーネントの実装...
エレベーション (Elevation)
コンテンツに立体感を与えるためのシャドウコンポーネント:
- スタイル: Style1 ~ Style8 (影の強さを表す)
- 用途: コンテンツの重要性や階層を表現
use *;
use *;
view!
緊急バナー (EmergencyBanner)
緊急情報を表示するためのバナーコンポーネント:
- プラットフォーム: Desktop, Mobile
- リンク: True, False (ボタンの有無)
- 状態: Default, Hover
- コンテンツ: タイトル、日付、説明文、ボタン
use *;
use *;
use add_banner_styles;
// バナーの使用例
add_banner_styles; // グローバルバナースタイルを追加
view!
プロジェクト構成
/
├── src/
│ ├── components/ # UIコンポーネント
│ │ ├── button.rs # ボタンコンポーネント
│ │ └── mod.rs # コンポーネントモジュール定義
│ ├── styles/ # スタイリング関連
│ │ ├── tokens.rs # デザイントークン
│ │ ├── utils.rs # CSSユーティリティ
│ │ └── mod.rs # スタイルモジュール定義
│ ├── lib.rs # ライブラリエントリポイント
│ └── main.rs # デモアプリケーション
└── tests/ # テストファイル
└── button_test.rs # ボタンテスト
セットアップと開発
-
依存関係のインストール:
-
開発サーバーの起動:
-
テストの実行:
パブリッシュ方法
- Cargo.tomlの内容を確認(バージョンなど)
- Cargo.lockを更新:
cargo update - パッケージをチェック:
cargo package --list - テストを実行:
cargo test - クレートを公開:
cargo publish
参考リソース
進捗状況
- プロジェクト初期化
- 基本設計
- ボタンコンポーネント実装
- ボタンテスト実装
- リンクコンポーネント実装
- カードコンポーネント実装
- カードコンポーネントテスト実装
- その他コンポーネントの実装
- ドキュメント整備
ライセンスと責任
このクレートの開発と保守、および法的責任は Gftd Japan 株式会社 が負っています。Gftd Japan株式会社 / デザインシステムの実装に関するご質問やサポートについては、Gftd Japan 株式会社までお問い合わせください。
プロジェクト完成度評価
コンポーネント完成状況
| コンポーネント名 | ステータス | 進捗率(%) | 備考 |
|---|---|---|---|
| Button | ✅ 完成 | 100% | デジタル庁デザインシステム準拠 |
| Link | ✅ 完成 | 100% | |
| Card | ✅ 完成 | 100% | |
| Accordion | ✅ 完成 | 100% | |
| Elevation | ✅ 完成 | 100% | |
| Icon | ✅ 完成 | 100% | |
| Label | ✅ 完成 | 100% | |
| Banner | ✅ 完成 | 100% | |
| TextArea | ✅ 完成 | 100% | |
| Layout | ✅ 完成 | 100% | |
| Divider | ✅ 完成 | 100% | |
| Disclosure | ✅ 完成 | 100% | |
| ReturnTop | ✅ 完成 | 100% |
技術スタック進捗
- Sauron実装: ✅ 100%(Sauronに完全移行)
- WASMサポート: ✅ 100%(WebAssembly対応完了)
- アクセシビリティ対応: ✅ 100%(JIS X 8341-3:2016準拠)
- ドキュメント: ✅ 100%(使用例、API説明完備)
- 単体テスト: ✅ 100%(全コンポーネントのテスト実装)
今後の開発予定
- より高度なフォームコントロールの追加
- ダークモードのサポート強化
- モバイルデバイス最適化の強化
- パフォーマンス最適化
ディレクトリ構造プライオリティリスト
-
src/components/: 全デザインシステムコンポーネント
- 最重要ファイル: button.rs, card.rs, link.rs
-
src/styles/: スタイル定義
- 最重要ファイル: utils.rs, tokens.rs
-
src/assets/: アイコンやその他の静的アセット
-
src/examples/: 使用例とデモ
-
tests/: テストケース
開発ロードマップ
現在のバージョン: v0.1.1
次期リリース計画 (v0.2.0)
- フォームバリデーション機能の追加
- アニメーション効果の強化
- より複雑なレイアウトコンポーネントの追加
将来のリリース (v1.0.0)
- 完全な型安全API
- 包括的なテストカバレッジ
- 詳細なドキュメント
- 本番環境での実績