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.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Kivymd Single Screen Portfolio App Generator?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-kivymd-single-screen-portfolio-app-generator)
---
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