ワンクリックで
animate
Review a Puree UI feature and enhance it with purposeful transitions and state changes that improve usability.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Review a Puree UI feature and enhance it with purposeful transitions and state changes that improve usability.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Create distinctive, production-grade Puree UI interfaces with high design quality. Use this skill when the user asks to build UI panels, dashboards, toolbars, or Blender addon interfaces. Generates creative, polished YAML/SCSS/Python code that avoids generic AI aesthetics.
Review Puree UI code (YAML/SCSS/Python) for correctness, common mistakes, and best practices. Use when checking code quality, debugging render issues, or validating before shipping.
Improve Puree typography by fixing font choices, hierarchy, sizing, weight consistency, and readability in YAML/SCSS. Makes text feel intentional and polished.
Create distinctive, production-grade Puree UI interfaces with high design quality. Use this skill when the user asks to build UI panels, dashboards, toolbars, or Blender addon interfaces. Generates creative, polished YAML/SCSS/Python code that avoids generic AI aesthetics.
Review Puree UI code (YAML/SCSS/Python) for correctness, common mistakes, and best practices. Use when checking code quality, debugging render issues, or validating before shipping.
Improve Puree typography by fixing font choices, hierarchy, sizing, weight consistency, and readability in YAML/SCSS. Makes text feel intentional and polished.
| name | animate |
| description | Review a Puree UI feature and enhance it with purposeful transitions and state changes that improve usability. |
| user-invocable | true |
| argument-hint | Describe the component or interaction to animate (e.g. "nav_bar hover", "button press feedback") |
Analyze a Puree feature and strategically add transitions and state changes that enhance understanding, provide feedback, and create delight.
Use the frontend-design skill — it contains design principles, anti-patterns, and the Context Gathering Protocol. Follow the protocol before proceeding — if no design context exists yet, you MUST run teach-impeccable first.
Puree supports CSS transitions only — no @keyframes, no programmatic animation libraries. Work within these constraints:
background-color, color (text), border-color, opacityease, linear, ease-in, ease-out, ease-in-outtransition: background-color 0.2s ease, opacity 0.3s lineartransition-delay:hover and :active pseudo-classescontainer.set_property() + mark_dirty() from PythonLayout properties (width, padding, margin) cannot be animated and are ignored in :hover/:active rules.
Analyze where transitions would improve the experience:
Identify static areas:
Understand the context:
If any of these are unclear from the codebase, ask the user directly to clarify what you cannot infer.
Create a purposeful transition plan:
IMPORTANT: A few well-tuned transitions beat scattered effects everywhere. Focus on high-impact moments.
Add motion systematically across these categories:
Provide visual acknowledgment when users hover over interactive elements:
// Subtle background shift on hover
.nav_item {
background-color: transparent;
transition: background-color 0.2s ease;
&:hover {
background-color: rgba(255, 255, 255, 0.08);
}
}
// Color shift for text links
.action_link {
color: $text-secondary;
transition: color 0.2s ease;
&:hover {
color: $accent;
}
}
Give tactile feedback when elements are pressed:
// Button press feedback via opacity and color
.btn_primary {
background-color: $accent;
opacity: 1.0;
transition: background-color 0.1s ease, opacity 0.1s ease;
&:hover {
background-color: lighten($accent, 8%);
}
&:active {
background-color: darken($accent, 10%);
opacity: 0.85;
}
}
Smooth out color changes triggered by Python at runtime:
// Status indicator with smooth color change
.status_badge {
background-color: $neutral;
transition: background-color 0.3s ease-out, color 0.3s ease-out;
}
# In script.py — transition happens automatically via SCSS
def update_status(container, status):
colors = {'ok': 'rgba(46,204,113,1)', 'error': 'rgba(231,76,60,1)'}
container.set_property('background-color', colors.get(status, 'rgba(149,165,166,1)'))
container.mark_dirty()
Use opacity for smooth show/reveal effects:
// Fade-in effect for content
.panel_content {
opacity: 0.0;
transition: opacity 0.3s ease-in-out;
}
// Python sets opacity to 1.0 when ready — the transition does the rest
Use border-color transitions for input-like elements or selection states:
.input_field {
border: 1px solid rgba(255, 255, 255, 0.1);
transition: border-color 0.2s ease;
&:hover {
border-color: rgba(255, 255, 255, 0.3);
}
&:active {
border-color: $accent;
}
}
Combine multiple animatable properties for richer effects:
.card {
background-color: $surface;
border: 1px solid rgba(255, 255, 255, 0.05);
opacity: 1.0;
transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
&:hover {
background-color: lighten($surface, 5%);
border-color: rgba(255, 255, 255, 0.15);
}
}
Durations by purpose:
Easing choices:
ease-out — best default, natural decelerationease-in-out — good for color transitions that feel smoothlinear — use for opacity fadesease-in — rarely needed, feels sluggish for most UIExit transitions should be faster than entrances. Use ~75% of enter duration.
NEVER:
mark_dirty() after runtime property changes — the transition won't trigger:hover/:active@keyframes or animation — Puree only supports transitionTest transitions thoroughly:
Remember: In Puree, transitions are your only animation tool — use them with precision. A well-timed 200ms color transition on hover communicates more than flashy effects ever could. Animate with purpose and restraint.