Vue templateFree

Portfolio Minimal

Minimal one-page portfolio template in Vue 3 and Tailwind CSS: intro, selected work with drawn project covers, about, experience and contact.

by Vueplayv1.0.0Updated 3 hours ago

Install
Full screen ↗

About this template

A quiet, type-led personal site for designers and developers who want the work to do the talking. One page, five sections, lots of whitespace and a single violet accent.

Project covers are small drawn scenes built with divs and SVG (a dashboard, phone screens, a brand board, a type specimen, a landing page and a component sheet), so the template looks finished before you have screenshots. Replace any cover with an <img> when you do.

All content lives in src/data.ts: your name, availability, projects, experience and services. The header collapses to a menu on phones, the contact block has a copy-email button, and every section works in light and dark mode.

  • Intro with availability badge
  • Selected work grid with six drawn project covers
  • About, services and experience timeline
  • Contact section with copy-to-clipboard email
  • Sticky header with mobile menu, light and dark mode

Code

18 files in the repo
<script setup lang="ts">
import { person } from './data'
import AboutSection from './components/AboutSection.vue'
import ContactSection from './components/ContactSection.vue'
import ExperienceList from './components/ExperienceList.vue'
import IntroSection from './components/IntroSection.vue'
import SiteNav from './components/SiteNav.vue'
import WorkGrid from './components/WorkGrid.vue'
</script>

<template>
  <div id="top" class="min-h-screen scroll-smooth bg-white text-gray-900 antialiased dark:bg-gray-950 dark:text-white">
    <SiteNav />
    <main class="mx-auto max-w-5xl px-5 sm:px-8">
      <IntroSection />
      <WorkGrid />
      <AboutSection />
      <ExperienceList />
      <ContactSection />
    </main>
    <footer class="mx-auto flex max-w-5xl flex-col gap-2 border-t border-gray-200 px-5 py-8 text-sm text-gray-500 sm:flex-row sm:justify-between sm:px-8 dark:border-white/10 dark:text-gray-400">
      <p>© 2026 {{ person.name }}</p>
      <a href="#top" class="rounded hover:text-gray-900 focus-visible:outline-2 focus-visible:outline-violet-500 dark:hover:text-white">Back to top ↑</a>
    </footer>
  </div>
</template>
All portfolios →
Preview of 404 Not Found PageFree

Template · Error pages

404 Not Found Page

Friendly Vue 3 404 page with a drawn compass illustration, live search suggestions and helpful links, plus a compact 500 error variant. Tailwind CSS.

by Vueplay
Preview of Admin Dashboard$29

Template · Dashboards

Admin Dashboard

A complete Vue 3 admin dashboard template with a collapsible sidebar, hand-drawn SVG charts, a sortable customers table and settings. Tailwind CSS, dark mode.

by Vueplay
Preview of Analytics DashboardFree

Template · Dashboards

Analytics Dashboard

Web analytics dashboard template for Vue 3 and Tailwind CSS: SVG area chart, metric tabs, top pages, sources, a devices donut and a date range picker.

by Vueplay
Preview of App LandingFree

Template · Landing pages

App Landing

Vue 3 landing page for a mobile app with a CSS-drawn phone mockup, feature highlights, a screenshot strip and download buttons. Tailwind CSS, dark mode.

by Vueplay

Pro feature

Upgrade to Pro

Upgrade to unlock more of Vueplay. Cancel any time.

  • Custom domains with HTTPS
  • Private projects
  • No "Made with Vueplay" badge
  • GitHub sync

$120/year

Compare plansBilling settings