Use when the task asks for a visually strong landing page, website, app, prototype, demo, or game UI. This skill enforces restrained composition, image-led hierarchy, cohesive content structure, and tasteful motion while avoiding generic cards, weak branding, and UI clutter. For TFI in-app surfaces (tabs, modals, tables) that must work on mobile and desktop, combine with tfi-responsive-ui.
Use this skill when the quality of the work depends on art direction, hierarchy, restraint, imagery, and motion rather than component count.
Goal: ship interfaces that feel deliberate, premium, and current. Default toward award-level composition: one big idea, strong imagery, sparse copy, rigorous spacing, and a small number of memorable motions.
Before building, write three things:
Each section gets one job, one dominant visual idea, and one primary takeaway or action.
Default sequence:
Hero rules:
If the first viewport still works after removing the image, the image is too weak. If the brand disappears after hiding the nav, the hierarchy is too weak.
Viewport budget:
100vh/100svh heroes, subtract persistent UI chrome (calc(100svh - header-height)) or overlay the header instead of stacking it in normal flow.Default to Linear-style restraint:
For app UI, organize around:
Avoid:
If a panel can become plain layout without losing meaning, remove the card treatment.
Imagery must do narrative work.
The first viewport needs a real visual anchor. Decorative texture is not enough.
If deleting 30 percent of the copy improves the page, keep deleting.
When the work is a dashboard, app surface, admin tool, or operational workspace, default to utility copy over marketing copy.
Use motion to create presence and hierarchy, not noise.
Ship at least 2-3 intentional motions for visually led work:
Prefer Framer Motion when available for:
Motion rules:
When editing the TFI app under src/ (not standalone marketing pages), also apply tfi-responsive-ui: responsive layout, touch-friendly controls, safe modal/table behavior on small viewports, and shared styles in public/css/styles.css where appropriate.