Personal Introduction
Personal portfolio page on QuickUI 0.6.2: Home with typing-effect title and floating gradient blobs, Portfolio grid filtered by ?type= with copy-link share.
Overview
Live Preview
Open the example in a new tab
Page Sections
Interactions
- new QUI({ id: 'body', data, event, when }) with page / type read from URL search params (?page=portfolio&type=...).
- event.page switches isHome and tab classes without reload, then restarts the typing effect.
- event.dynamicInput: setInterval loop deletes and retypes #typing-area through iOS工程師 / 網站工程師 / 程式設計師 / Pardn Chiu every 8s.
- event.expand: under 800px the first tap expands the category tab list, a second tap navigates to its data-href.
- event.copy: copies the image URL with QuickUI String.$copy and shows '已複製' for 500ms.
- event.show adds 'show' to #mobile-tab.
Dependencies
Styling
index.scss holds the reset, nav, mobile tab sheet and animated gradient circles; _home styles the hero and typing caret; _portfolio the tab bar and grid; _about styles div.about, which the HTML does not use.
cd target/20230220
npx sass sass/index.scss css/index.css --no-source-map || exit 1
Techniques
- QuickUI template syntax: {{ }}, :for, :if / :else, :class, :href, :data-*, :lazyload, :path (inline SVG), @click.
- Theme CSS variables in inline <style>: --clr-txt, --clr-grad-start / -end, --clr-main, --clr-bg, --grid-interval, --grid-radius, --grid-radio.
- Floating gradient circles via ::before / ::after with aspect-ratio and infinite keyframes; backdrop-filter blur panels.
- Sass @for generates [data-target="N"] > li selected-tab rules; grid widths via calc() with var(--grid-interval).
- Mobile-first breakpoints 480 / 640 / 800 / 960 / 1024 / 1440px.
External Assets
https://fakeimg.pl/1024/282828/eae0d0/?text=sample
https://pardn.io/image/head.png
- https://pardn.io/web-template/image/20230320.jpg (og:image; canonical also points to /target/20230320)
- image/home.svg, image/temp1.png (relative, included in folder)