A portfolio's whole job is to present what you've built. Here are clean, copy-ready ways to display your projects — and to go deeper with real case studies. Pick a component, hit Code, and drop it into your own site.
Start Here
Add Your Images
Every component below uses a coloured placeholder box so you can see the layout. To make it yours, drop an <img> inside that box. The trick is object-fit: cover — it fills the box at any size without squishing your photo.
Placeholder → real image HOW-TO
Placeholder (what you start with)
Your image dropped in
A few tips:
Keep images in an images/ folder next to your HTML, then link them like images/my-project.jpg.
Always add alt text describing the picture — it's read aloud by screen readers.
Resize big photos before uploading (aim under ~300 KB) so the page loads fast.
Use lowercase file names with no spaces: hero-shot.jpg, not Hero Shot.JPG.
HTML
<!-- BEFORE — an empty placeholder box -->
<div class="proj-thumb"></div>
<!-- AFTER — drop your own image inside it -->
<div class="proj-thumb">
<img src="images/my-project.jpg" alt="Screenshot of my project">
</div>
CSS
/* the box keeps its shape... */
.proj-thumb{
aspect-ratio:16 / 10; /* same shape every time */
overflow:hidden; /* clip anything that spills out */
border-radius:12px;
}
/* ...and the image fills it cleanly */
.proj-thumb img{
width:100%;
height:100%;
object-fit:cover; /* fill without stretching */
display:block;
}
01 — Show Your Projects
Project Cards
The workhorse of any portfolio: a tidy grid of cards with a thumbnail, tech tags, and quick links to the live site and code. Hover to reveal the actions.
Mixed-size tiles let your best project take the spotlight while others fill the gaps. The trendiest way to feature work without everything looking the same.
The most valuable thing on a portfolio. Don't just show the final screen — tell the story: the role you played, and a clear Problem → Process → Solution. This is what turns a gallery into a portfolio.
Full project write-up CASE STUDY
UXWeb App2026
Redesigning the Aurora checkout
A cart that lost shoppers at the final step. I rebuilt the checkout into one focused flow — and recovered the drop-off.
My roleDesign & Front-end
Timeline6 weeks
ToolsFigma, React
TeamSolo + 1 PM
1
The problem
68% abandoned a cluttered 4-page checkout — too many fields, no progress, hidden costs.
2
The process
Mapped the flow, ran a 5-user test, prototyped a single page with inline validation and a sticky summary.
3
The solution
Shipped a one-screen checkout with autosave, clear errors, and upfront totals — four steps down to one.
HTML
<article class="cs">
<div class="cs-cover"><img src="cover.jpg" alt=""></div>
<div class="cs-body">
<h3>Project title</h3>
<p class="lede">One-line outcome.</p>
<!-- what YOU did -->
<div class="cs-meta">
<div><small>My role</small><span>Design & Build</span></div>
<div><small>Timeline</small><span>6 weeks</span></div>
</div>
<!-- tell the story: Problem → Process → Solution -->
<div class="cs-steps">
<div class="cs-step"><div class="num">1</div>
<div><h4>The problem</h4><p>68% abandoned a cluttered 4-page checkout.</p></div></div>
<div class="cs-step"><div class="num">2</div>
<div><h4>The process</h4><p>Mapped the flow and prototyped a single page.</p></div></div>
<div class="cs-step"><div class="num">3</div>
<div><h4>The solution</h4><p>Shipped a one-screen checkout with upfront totals.</p></div></div>
</div>
</div>
</article>
.pf-gallery{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:12px;
}
/* hero spans the full width on top, thumbs fill the row below */
.pf-gallery .hero{ grid-column:1 / -1; aspect-ratio:16/7; }
.pf-gallery .shot{ aspect-ratio:4/3; }
.pf-gallery img{ width:100%; height:100%; object-fit:cover; }
08 — Go Deeper
Results & Impact
Employers want outcomes, not just visuals. Back up a project with the numbers it moved — conversions, load time, ratings. Even class projects can show before/after metrics.
Outcome metrics IMPACT
1.2s
Page load — down from 5.4s
9 / 10
Test users finished the task
4 → 1
Steps to check out
100
Lighthouse score
HTML
<div class="pf-impact">
<div class="stat"><div class="n">1.2s</div>
<div class="l">Page load — down from 5.4s</div></div>
<div class="stat"><div class="n">9 / 10</div>
<div class="l">Test users finished the task</div></div>
<div class="stat"><div class="n">4 → 1</div>
<div class="l">Steps to check out</div></div>
<div class="stat"><div class="n">100</div>
<div class="l">Lighthouse score</div></div>
</div>
A side-scrolling row of projects — popular on designer portfolios for browsing work like a timeline. Built with overflow-x and CSS scroll-snap, so each card clicks neatly into place.
A big visual on one side, the story on the other. Great for spotlighting a single standout project — the image carries the impact while the text gives context.
Two-column spotlight SPLIT
FeaturedWeb App
Lumen Analytics
A dashboard that turns raw numbers into clear, glanceable insight — rebuilt for speed and clarity.
<div class="split-feat">
<div class="vis"><img src="project.jpg" alt=""></div>
<div class="txt">
<div class="tags"><span>Featured</span><span>Web App</span></div>
<h3>Project name</h3>
<p>What it is and why it matters.</p>
<a href="#">View case study →</a>
</div>
</div>
Lead with your best work instead of a bio. A full-bleed hero puts one strong project front-and-center the moment someone lands — with a clear way to dig in.
Work-first hero FEATURE
Featured project
Aurora — a checkout people actually finish
A six-week redesign that cut a four-page checkout down to one focused screen and recovered the drop-off.
A complete one-page portfolio in the editorial style: a confident type-led intro and a clean numbered index of work. Lots of whitespace, no clutter — lets the projects speak.
Whole page — type-driven MINIMAL
Maya Chen
Designer & front-end developer making calm, useful interfaces.
Currently crafting design systems and shipping them in React. Previously at two startups.
A high-energy portfolio: a dark canvas, oversized headline with a pop of accent, and a grid of vivid project blocks. Great for showing personality and creative range.
An image-led portfolio with a warm, gallery feel: one large hero piece up top, then a tidy pair of works below. Ideal when your visuals do the talking — photography, illustration, UI.