AutoSkill 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.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/kivymd-single-screen-portfolio-app-generator" ~/.claude/skills/ecnu-icalk-autoskill-kivymd-single-screen-portfolio-app-generator && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8/kivymd-single-screen-portfolio-app-generator/SKILL.mdsource content
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
-
Layout Structure:
- Use
withMDBoxLayout
.orientation='vertical' - Set
andpadding='24dp'
(or similar) for spacing.spacing='16dp' - Ensure all components are centered horizontally using
.pos_hint={'center_x': 0.5} - Ensure components are ordered from top to bottom without overlapping.
- Use
-
Components (in order):
- Profile Image: Use
. Setkivy.uix.image.Image
andsize_hint=(None, None)
. Center it.size=('200dp', '200dp') - Name Label: Use
withMDLabel
,font_style='H4'
, andhalign='center'
.size_hint_y=None - Role/Description Label: Use
withMDLabel
,font_style='Subtitle1'
,halign='center'
, andtheme_text_color='Secondary'
.size_hint_y=None - Biography Label: Use
withMDLabel
,font_style='Body1'
,halign='center'
, andtheme_text_color='Secondary'
. Crucial: Bind the label'ssize_hint_y=None
to itstexture_size
to ensure it expands dynamically without overlapping:height
.label.bind(texture_size=lambda *x: label.setter('height')(label, label.texture_size[1])) - Footer Label: Use
withMDLabel
,font_style='Caption'
,halign='center'
, andtheme_text_color='Secondary'
.size_hint_y=None
- Profile Image: Use
-
Theme:
- Set
.self.theme_cls.theme_style = 'Dark' - Set
.self.theme_cls.primary_palette = 'BlueGray'
- Set
Anti-Patterns
- Do NOT use
for the biography text unless explicitly requested.ScrollView - Do NOT use the
property on the standard Kivyradius
widget (it causes a TypeError).Image - Do NOT include a company card or list unless explicitly requested.
- Do NOT allow components to overlap; ensure
is set for all child widgets.size_hint_y=None
Triggers
- create a personal portfolio app in kivymd
- kivymd portfolio template
- single screen portfolio layout
- kivymd profile page