ワンクリックで
stitch-to-flutter
Instructions for translating Google Stitch designs (HTML/Tailwind) into production-ready Flutter/Dart code.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Instructions for translating Google Stitch designs (HTML/Tailwind) into production-ready Flutter/Dart code.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Machine Learning integration for Flutter using TensorFlow Lite and Firebase ML
Google Maps and Mapbox integration for Flutter applications
Payment processing integration with Stripe and PayPal for Flutter
Video and audio processing capabilities for Flutter applications
WebSocket and Socket.io integration for real-time communication in Flutter
| name | stitch_to_flutter |
| description | Instructions for translating Google Stitch designs (HTML/Tailwind) into production-ready Flutter/Dart code. |
This skill documents how to translate UI designs generated by Google Stitch (which come as HTML and Tailwind CSS) into Flutter widgets, ensuring alignment with your Flutter project architecture and design system.
Structure Mapping:
<div> with flex -> Column, Row, or Flex.<div> with max-w-md mx-auto -> Center + ConstrainedBox or Container with maxWidth.padding (p-4, px-6) -> Padding widget or padding property in Container/ListView.space-y-4 -> ListView with gap (if available) or Column with SizedBox between items.Style Mapping:
Theme.of(context).colorScheme for dynamic colors. Map Tailwind custom colors (e.g., primary: "#F97316") to the project's brand colors in lib/core/theme/.font-bold) and sizes (text-3xl) to TextTheme scale tokens.
fontSize. Always use Theme.of(context).textTheme.| Tailwind / Style | M3 Type Scale Token | Usage |
|---|---|---|
text-4xl, text-5xl | displayLarge/Medium/Small | Large hero text, brand elements |
text-2xl, text-3xl | headlineLarge/Medium/Small | High-emphasis page headers |
text-xl, font-bold | titleLarge/Medium/Small | Section headers, card titles |
text-base, text-sm | bodyLarge/Medium/Small | Long-form reading, descriptions |
text-xs, uppercase | labelLarge/Medium/Small | Buttons, badges, captions |
* **Shadows**: Map `shadow-lg` to `BoxShadow` in `BoxDecoration`.
* **Border Radius**: Map `rounded-2xl` to `BorderRadius.circular(16)`.
3. Component Mapping:
* button -> ElevatedButton, TextButton, or custom Material + InkWell for complex cards.
* header -> SliverAppBar or a custom AppBar.
* nav -> BottomNavigationBar or a custom navigation widget.
* span.material-icons-round -> Icon(Icons.<icon_name>).
| Tailwind Class | Flutter Equivalent |
|---|---|
bg-white | color: Colors.white |
rounded-xl | borderRadius: BorderRadius.circular(12) |
shadow-md | BoxShadow(color: Colors.black12, blurRadius: 4, offset: Offset(0, 2)) |
border | border: Border.all(color: Colors.grey[200]!) |
flex items-center | Row(crossAxisAlignment: CrossAxisAlignment.center) |
flex flex-col | Column() |
For cards like "Informar de un animal vulnerable", use:
Material(
color: color,
borderRadius: BorderRadius.circular(24),
child: InkWell(
onTap: onTap,
child: Padding(
padding: const EdgeInsets.all(24),
// ... content
),
),
)
Always prioritize using Theme.of(context) to support Dark Mode automatically, as the Stitch designs often include dark: classes.
When translating designs, follow the Atomic Design methodology to ensure components are reusable and well-structured:
| Level | Definition | Stitch/HTML Example | Flutter Equivalent |
|---|---|---|---|
| Atoms | Basic building blocks. | <button>, <input>, <span>, <img> | AppButton, AppTextInput, AppBadge, Icon |
| Molecules | Simple groups functioning together. | Labeled input, Icon + Text pair. | LabeledInput, StatItem, StatusIndicator |
| Organisms | Complex UI sections. | Personal Data Grid, Header with Avatar & Name. | ProfileHeader, FormSection, ActionGrid |
| Templates | Page structure without content. | Page with Header and Sticky Footer. | ProfilePageLayout |
| Pages | Completed page. | Entire screen. | ProfilePage |
When converting designs, always use Theme.of(context).colorScheme tokens. The app uses Brand-Based Dynamic Color, meaning the entire ColorScheme is generated from the Brand Primary seed.
harmonized() extension if you need them to feel more integrated with the brand theme.bg-primary -> colorScheme.primarybg-primary-light -> colorScheme.primaryContainertext-on-primary -> colorScheme.onPrimarybg-surface -> colorScheme.surface.html file from Stitch..png screenshot to understand visual hierarchy and spacing.make dev-mobile-launch