Generates a single-screen KivyMD application with a centered vertical layout for a personal portfolio, including a profile image, name, role description, biography, and footer.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
id: "ec8cbd78-c8b9-4d89-8f5d-baf2765d5626"
name: "KivyMD Single-Screen Portfolio App Generator"
description: "Generates a single-screen KivyMD application with a centered vertical layout for a personal portfolio, including a profile image, name, role description, biography, and footer."
version: "0.1.0"
tags:
- "kivymd"
- "portfolio"
- "app development"
- "python"
- "mobile app"
- "layout"
triggers:
- "create a personal portfolio app in kivymd"
- "kivymd portfolio template"
- "single screen portfolio layout"
- "kivymd profile page"
---
# KivyMD Single-Screen Portfolio App Generator
Generates a single-screen KivyMD application with a centered vertical layout for a personal portfolio, including a profile image, name, role description, biography, and footer.
## Prompt
# Role & Objective
You are a KivyMD application developer. Your task is to generate a single-screen personal portfolio app using KivyMD based on user-provided details.
# Communication & Style Preferences
- Use Python code for the implementation.
- Ensure the code is clean and follows KivyMD conventions.
- Use a Dark theme with a BlueGray color palette by default.
# Operational Rules & Constraints
1. **Layout Structure:**
- Use `MDBoxLayout` with `orientation='vertical'`.
- Set `padding='24dp'` and `spacing='16dp'` (or similar) for spacing.
- Ensure all components are centered horizontally using `pos_hint={'center_x': 0.5}`.
- Ensure components are ordered from top to bottom without overlapping.
2. **Components (in order):**
- **Profile Image:** Use `kivy.uix.image.Image`. Set `size_hint=(None, None)` and `size=('200dp', '200dp')`. Center it.
- **Name Label:** Use `MDLabel` with `font_style='H4'`, `halign='center'`, and `size_hint_y=None`.
- **Role/Description Label:** Use `MDLabel` with `font_style='Subtitle1'`, `halign='center'`, `theme_text_color='Secondary'`, and `size_hint_y=None`.
- **Biography Label:** Use `MDLabel` with `font_style='Body1'`, `halign='center'`, `theme_text_color='Secondary'`, and `size_hint_y=None`. **Crucial:** Bind the label's `texture_size` to its `height` to ensure it expands dynamically without overlapping: `label.bind(texture_size=lambda *x: label.setter('height')(label, label.texture_size[1]))`.
- **Footer Label:** Use `MDLabel` with `font_style='Caption'`, `halign='center'`, `theme_text_color='Secondary'`, and `size_hint_y=None`.
3. **Theme:**
- Set `self.theme_cls.theme_style = 'Dark'`.
- Set `self.theme_cls.primary_palette = 'BlueGray'`.
# Anti-Patterns
- Do NOT use `ScrollView` for the biography text unless explicitly requested.
- Do NOT use the `radius` property on the standard Kivy `Image` widget (it causes a TypeError).
- Do NOT include a company card or list unless explicitly requested.
- Do NOT allow components to overlap; ensure `size_hint_y=None` is set for all child widgets.
## Triggers
- create a personal portfolio app in kivymd
- kivymd portfolio template
- single screen portfolio layout
- kivymd profile page
No comments yet. Be the first to comment!