core-components
UIの構築、デザイントークンの使用、またはコンポーネントライブラリの操作を行う際に参照するコアコンポーネントライブラリとデザインシステムのパターン集です。
description の原文を見る
Core component library and design system patterns. Use when building UI, using design tokens, or working with the component library.
SKILL.md 本文
コアコンポーネント
デザインシステム概要
プラットフォームのネイティブコンポーネントではなく、コアライブラリのコンポーネントを使用してください。これにより、スタイリングと動作の一貫性が確保されます。
デザイントークン
絶対に値をハードコードしてはいけません。常にデザイントークンを使用してください。
スペーシングトークン
// 正しい - トークンを使用
<Box padding="$4" marginBottom="$2" />
// 間違い - ハードコード値
<Box padding={16} marginBottom={8} />
| トークン | 値 |
|---|---|
$1 | 4px |
$2 | 8px |
$3 | 12px |
$4 | 16px |
$6 | 24px |
$8 | 32px |
カラートークン
// 正しい - セマンティックトークン
<Text color="$textPrimary" />
<Box backgroundColor="$backgroundSecondary" />
// 間違い - ハードコード色
<Text color="#333333" />
<Box backgroundColor="rgb(245, 245, 245)" />
| セマンティックトークン | 用途 |
|---|---|
$textPrimary | メインテキスト |
$textSecondary | サポートテキスト |
$textTertiary | 無効/ヒントテキスト |
$primary500 | ブランド/アクセントカラー |
$statusError | エラー状態 |
$statusSuccess | 成功状態 |
タイポグラフィトークン
<Text fontSize="$lg" fontWeight="$semibold" />
| トークン | サイズ |
|---|---|
$xs | 12px |
$sm | 14px |
$md | 16px |
$lg | 18px |
$xl | 20px |
$2xl | 24px |
コアコンポーネント
Box
トークンサポート付きの基本レイアウトコンポーネント:
<Box
padding="$4"
backgroundColor="$backgroundPrimary"
borderRadius="$lg"
>
{children}
</Box>
HStack / VStack
水平および垂直フレックスレイアウト:
<HStack gap="$3" alignItems="center">
<Icon name="user" />
<Text>Username</Text>
</HStack>
<VStack gap="$4" padding="$4">
<Heading>Title</Heading>
<Text>Content</Text>
</VStack>
Text
トークンサポート付きのタイポグラフィ:
<Text
fontSize="$lg"
fontWeight="$semibold"
color="$textPrimary"
>
Hello World
</Text>
Button
バリエーション付きのインタラクティブボタン:
<Button
onPress={handlePress}
variant="solid"
size="md"
isLoading={loading}
isDisabled={disabled}
>
Click Me
</Button>
| バリエーション | 用途 |
|---|---|
solid | プライマリアクション |
outline | セカンダリアクション |
ghost | ターシャリ/サブトルアクション |
link | インラインアクション |
Input
検証付きのフォーム入力:
<Input
value={value}
onChangeText={setValue}
placeholder="Enter text"
error={touched ? errors.field : undefined}
label="Field Name"
/>
Card
コンテンツコンテナ:
<Card padding="$4" gap="$3">
<CardHeader>
<Heading size="sm">Card Title</Heading>
</CardHeader>
<CardBody>
<Text>Card content</Text>
</CardBody>
</Card>
レイアウトパターン
スクリーンレイアウト
const MyScreen = () => (
<Screen>
<ScreenHeader title="Page Title" />
<ScreenContent padding="$4">
{/* Content */}
</ScreenContent>
</Screen>
);
フォームレイアウト
<VStack gap="$4" padding="$4">
<Input label="Name" {...nameProps} />
<Input label="Email" {...emailProps} />
<Button isLoading={loading}>Submit</Button>
</VStack>
リストアイテムレイアウト
<HStack
padding="$4"
gap="$3"
alignItems="center"
borderBottomWidth={1}
borderColor="$borderLight"
>
<Avatar source={{ uri: imageUrl }} size="md" />
<VStack flex={1}>
<Text fontWeight="$semibold">{title}</Text>
<Text color="$textSecondary" fontSize="$sm">{subtitle}</Text>
</VStack>
<Icon name="chevron-right" color="$textTertiary" />
</HStack>
アンチパターン
// 間違い - ハードコード値
<View style={{ padding: 16, backgroundColor: '#fff' }}>
// 正しい - デザイントークン
<Box padding="$4" backgroundColor="$backgroundPrimary">
// 間違い - プラットフォームネイティブコンポーネント
import { View, Text } from 'react-native';
// 正しい - コアコンポーネント
import { Box, Text } from 'components/core';
// 間違い - インラインスタイル
<Text style={{ fontSize: 18, fontWeight: '600' }}>
// 正しい - トークンプロップ
<Text fontSize="$lg" fontWeight="$semibold">
コンポーネントプロップパターン
コンポーネントを作成する場合は、トークンベースのプロップを使用してください:
interface CardProps {
padding?: '$2' | '$4' | '$6';
variant?: 'elevated' | 'outlined' | 'filled';
children: React.ReactNode;
}
const Card = ({ padding = '$4', variant = 'elevated', children }: CardProps) => (
<Box
padding={padding}
backgroundColor="$backgroundPrimary"
borderRadius="$lg"
{...variantStyles[variant]}
>
{children}
</Box>
);
他のスキルとの統合
- react-ui-patterns: UI状態にコアコンポーネントを使用
- testing-patterns: テストでコアコンポーネントをモック化
- storybook: コンポーネントバリエーションをドキュメント化
使用時期
このスキルは、概要で説明されているワークフローまたはアクションを実行する際に適用できます。
制限事項
- このスキルは、上記で説明されたスコープと明確に一致するタスクの場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家レビューの代替と見なさないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、中断して明確化を求めてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。