Communitygithub.com

ZeroSum-Solutions/mishmash

Dark "About Me" section for a freelance designer's portfolio, built as a single self-contained HTML page. A gradient headline reading "About me" sits above a bio paragraph whose characters brighten left-to-right as the page scrolls, framed by four glassy 3D corner icons (moon, brick, smiley, cursor) that slide in from the left and right on load, with a magenta-to-orange gradient pill button beneath.

What is mishmash?

mishmash is a Cursor agent skill that dark "About Me" section for a freelance designer's portfolio, built as a single self-contained HTML page. A gradient headline reading "About me" sits above a bio paragraph whose characters brighten left-to-right as the page scrolls, framed by four glassy 3D corner icons (moon, brick, smiley, cursor) that slide in from the left and right on load, with a magenta-to-orange gradient pill button beneath.

Works with~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ZeroSum-Solutions/mishmash/tree/HEAD/design-templates/portfolio-about-section

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Portfolio About Me — Scroll-Brightened Bio

Derived from a licensed MotionSites prompt; rebuilt as a self-contained page.

Dark "About Me" section for a freelance designer's portfolio, built as a single self-contained HTML page. A gradient headline reading "About me" sits above a bio paragraph whose characters brighten left-to-right as the page scrolls, framed by four glassy 3D corner icons (moon, brick, smiley, cursor) that slide in from the left and right on load, with a magenta-to-orange gradient pill button beneath. The section is min-height: 100vh and centered on both axes, so it fills the page by itself with no extra chrome — this page's only reason to exist is this section.

Workflow

  1. Clone example.html into the user's workspace as the working file.
  2. Replace the bio paragraph with the user's real copy. The scroll-brightening script re-splits whatever plain text sits in #about-copy into characters at load, so no other markup changes are needed — just edit the sentence.
  3. Swap the four corner icons in assets/ (or drop new ones in and repoint the src attributes) if the user wants different glyphs; keep the four-corner composition and the alternating slide-in directions.
  4. Preserve the design system. The near-black background, the steel-gradient headline text, the four-corner icon frame, and the magenta-to-orange button gradient are the identity — do not recolor by hand or drop the character-reveal effect.
  5. Point the button at a real destination. It links to #contact by default (matching the source prompt); repoint href once the user has an actual contact section or page.
  6. Keep motion accessible. Both the mount fade-ins and the scroll-brightening effect collapse to a fully visible, static state under prefers-reduced-motion, as the build spec requires.

Build spec

Palette

  • --bg: #0c0c0c — page and section background (the source prompt inherits this from the page, so it is set once on html, body).
  • --paragraph-color: #d7e2ea — bio paragraph text.
  • --heading-grad-top: #646973 / --heading-grad-bottom: #bbccd7 — the top-to-bottom gradient clipped to the "About me" headline text.
  • --accent-1: #18011f, --accent-2: #b600a8, --accent-3: #7621b0, --accent-4: #be4c00 — the four stops of the contact button's gradient (linear-gradient(123deg, ...)). This is the section's one genuinely chromatic surface in the source design — not an invented accent — so the gradient stops are declared as real parseable root colors and the gradient itself is written with var() stops, satisfying this repo's recolor-pass contract without changing a single rendered pixel.
  • --focus-ring: #b600a8 — reuses --accent-2 for the keyboard focus ring on the button and corner icons; only visible on :focus-visible, never in the resting render.

Type

Kanit (Google Fonts, weights 300–900) is the only font, applied to the whole page via html, body.

Layout

One <section id="about">, min-height: 100vh, flex column, centered on both axes, padding: 80px 20px stepping to 80px 32px / 80px 40px at 640px / 768px:

  1. Four decorative corner images (position: absolute, z-0, aria-hidden) — moon (top-left), a smiley-face glyph (bottom-left), a Lego-style brick (top-right), and a cursor-arrow glyph (bottom-right). Each has its own responsive width (120px → 160px → 210px for the two larger corners, 100px → 140px → 180px and 130px → 170px → 220px for the other two) and percentage-based inset that also steps at the same two breakpoints.
  2. Centered content column (max-width: 896px, z-10), holding:
    • Text group — the gradient <h1> "About me" (clamp(3rem, 12vw, 160px), font-weight: 900, uppercase) above the bio paragraph (clamp(1rem, 2vw, 1.35rem), max-width: 560px, centered).
    • CTA group — the "Contact Me" pill button, href="#contact".

Motion inventory

  • Mount fade-ins — the four corner icons and the heading and button all start opacity: 0 with a per-element translate offset (corner icons ±80px horizontal; heading y: 40px; button y: 20px) and animate to their resting position on a shared cubic-bezier(0.25, 0.1, 0.25, 1) curve. Each element carries its own delay/duration as CSS custom properties (--fade-delay, --fade-duration) so one shared .fade-in rule drives all six: corner icons at 0.1s/0.15s/0.25s/0.3s delay and 0.9s duration, heading at 0s delay, button at 0.3s delay, both at the 0.7s default duration. A single IntersectionObserver (rootMargin: 50px, threshold: 0, fires once per element) triggers the reveal — since the section fills the initial viewport, this fires almost immediately on load.
  • Scroll-brightened paragraph — the bio paragraph is split into one <span> per character at load. Each character's "resting" scroll position is compared against a progress value computed from the paragraph's own getBoundingClientRect() on every scroll/resize tick (batched through requestAnimationFrame), using the same math as the source's useScroll({ offset: ['start 0.8', 'end 0.2'] }) + per-character useTransform window (charProgress ± 0.1/0.05, output range [0.2, 1]). Because the section is vertically centered and taller than its content, the paragraph already sits partway through that scroll window on first load — which is why a subset of characters starts brighter than the rest even before the user scrolls, matching the reference capture exactly.
  • Button hover/active — opacity: 0.9 on hover, 0.75 on active, 200ms transition, matching the source spec digit-for-digit.

Accessibility

  • The page has exactly one heading (<h1>About me</h1>), so the hierarchy is trivially correct for a single-section page.
  • All four corner images carry alt="" and aria-hidden="true" — they are purely decorative and contribute nothing to the page's meaning.
  • The bio paragraph's real text always lives in #about-copy. The character-split version (#about-copy-animated) is a purely decorative duplicate: it starts hidden and aria-hidden="true", and is only populated and revealed once JavaScript confirms motion is allowed. When it takes over visually, the original plain paragraph is switched to .sr-only rather than removed, so a screen reader always announces the one real sentence — never 237 individual character nodes, and never nothing if JavaScript fails to run.
  • The "Contact Me" button is a real <a> with visible text and a :focus-visible outline in --focus-ring; the corner images also carry a focus-visible style as defense-in-depth even though they are non-interactive (aria-hidden, unfocusable by default).

Reduced motion

prefers-reduced-motion: reduce is checked once at load and short-circuits both motion systems at the source, not just via CSS: when set, every .fade-in element is marked visible immediately (skipping the IntersectionObserver entirely), and the character-split paragraph enhancement returns before it ever builds a single <span> — leaving the plain, fully opaque static paragraph as the permanent result. A companion @media (prefers-reduced-motion: reduce) CSS block forces the fade-in opacity/transform to their resting values as a defense-in-depth backstop for any element that class-toggles before the media query is checked.

Responsive

Breakpoints match the source's Tailwind sm/md scale (640px / 768px): section padding, the two content-column gap tiers, the four corner icons' size and inset, and the button's padding/font-size all step at both breakpoints. The bio paragraph's max-width: 560px cap means its wrap width is breakpoint-independent above that size. Verified in real (not headless) Chrome at 1440×900 and 375×812: no horizontal scroll, no console errors, all four images resolve.

Note on verification method: headless Chrome's --screenshot flag silently clamps very narrow --window-size requests (375px was rendered at an internal ~500px viewport, then downscaled into the requested output image), which produced a false-positive "overflow" during QA. Confirming through a real, correctly-sized Chrome window (window.innerWidth read back as exactly 375) showed no overflow at all — document.documentElement.scrollWidth equals window.innerWidth at both tested sizes.

Output contract

Emit between <artifact> tags:

<artifact identifier="portfolio-about-section" type="text/html" title="Portfolio About Me — Scroll-Brightened Bio">
<!doctype html>
<html>...</html>
</artifact>

Source note

Generated output under a MotionSites unlimited-plan subscription (https://motionsites.ai/?prompt=portfolio-about). The upstream prompt text is design evidence only and is not included in this repository or this file — everything above describes the page actually built, in this project's own words. No upstream license claim is made; this is not a vendored_from entry, and there is no standalone .js file — all script is inline in example.html.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ZeroSum-Solutions/mishmash

Two-section scroll landing for **S.P.D**, a fictional daily-operations automation platform. Section one is a full-bleed black hero: a muted, looping period-painting video plays edge to edge behind a top-left wordmark and tagline, a top-right pill CTA, and a large right-aligned serif headline low in the frame. A cloud-plume image straddles the seam into section two, a saturated red panel holding a centered monogram, an uppercase mission line, a large script signature, two closing lines of copy, and a second looping video with a soft fade into the red. Motion is a staggered load-in fade on the hero, an IntersectionObserver reveal on the red section's content, and a scroll-linked parallax on the cloud plume — all degrading to a static, fully-visible layout under reduced motion.

ZeroSum-Solutions/mishmash

Full-screen, single-viewport (100vh, no scroll) dark hero landing page for **Asme**, a fictional no-code AI app platform. The fullscreen background is an HLS video stream from Mux, playing natively on Safari and via hls.js MediaSource on other browsers. A liquid-glass pill navbar (luminosity-blended glass with a masked `::before` gradient border) floats above an Instrument Serif hero heading and an animated email-capture CTA — "Get early access" expands to a form with a 60 ms/char typewriter placeholder, flips `ArrowRight` to `Check` on submit, and auto-resets after 4 seconds. All elements animate in on load with Motion (Framer Motion).

ZeroSum-Solutions/mishmash

A pixel-spec, dark-themed single-page marketing landing site for **Asme**, a fictional knowledge and insights platform, featuring a signature reusable `.liquid-glass` surface treatment — luminosity-blended translucent fill, 4px backdrop blur, inset top highlight, and a masked `::before` gradient border — applied consistently across the navbar pill, email capture, buttons, cards, and icon chips. The full-viewport hero loops a locally vendored `.mp4` video via a vanilla `requestAnimationFrame` opacity crossfade (fade in on `canplay`, fade out at 0.55s remaining, 100ms gap restart). Four scroll-triggered sections animate in with Framer Motion `useInView`: About, Featured Video, Innovation × Vision (video + two columns sliding from opposite sides), and Services (two glass cards with hover-zoom video). Instrument Serif display type sits against pure black throughout.

ZeroSum-Solutions/mishmash

A premium, dark-cinematic landing page for **Aura**, a fictional AI-native email client, featuring a looping fullscreen background video, a gradient-clip shiny headline, a macOS-style menu bar mockup, a realistic inbox preview, and a custom liquid-glass card treatment. The multi-section layout covers navbar, hero, menu bar, inbox mockup, feature triage, logo cloud, testimonials, pricing, and a final CTA — targeting the AI productivity app and SaaS landing page use case.

ZeroSum-Solutions/mishmash

A modern React landing page for a fictional broadcast-grade live video platform featuring a full-screen adaptive HLS video background, a glassmorphic navigation header, and hero content pinned to the bottom-left corner. Dark cinematic aesthetic with Gloock display serif, Archivo body, JetBrains Mono telemetry labels, and an aurora-green signal accent — ideal as a live streaming platform or video SaaS landing page template.

ZeroSum-Solutions/mishmash

A single-screen marketing landing page for "dot.", a calm-messaging product that links you with one anonymous peer for a single message each day. The hero is a full-screen looping background video of a phone, fronted by an animated Instrument Serif headline and a typewriter effect that types and deletes short messages ("Are you here?", "Yes, I am.", "Speak soon.") positioned to sit on the phone's on-screen display — evoking a quiet, analog rhythm. A floating pill navbar with a glinting "Link up" CTA completes the single-screen composition.

ZeroSum-Solutions/mishmash

A single-page "scrollytelling" landing page called Step Into Wonder: a 4.8-screen pinned scroll sequence where painted curtains part over a glowing crystal-cave portal, the world zooms and the portal irises open toward a sky beyond, then a giant arc of nine pastel destination cards sweeps across the closing scroll like a slow ferris wheel. Serif display headlines (Viaoda Libre) pair with a plain sans body face (Imprima) over a near-black stage, with mouse parallax on every layer and a dignified static fallback under reduced motion.

ZeroSum-Solutions/mishmash

Full landing page for the fictional AI workflow-automation platform **FlowMate** — a fixed left sidebar with a logo mark and section nav, a translucent blurred navbar, a large serif hero headline, a liquid-glass chat-composer card overlaid on a looping ambient video, a six-card feature grid, and an auto-rotating three-up cards carousel, all on an off-white minimalist palette with one indigo-violet chromatic accent.

ZeroSum-Solutions/mishmash

A single-page landing page for GroundAI, an interior-design AI product, built with TanStack Start v1 on file-based routing, React 19, TypeScript, Tailwind CSS v4, framer-motion for all animation, and lucide-react for icons. The page is composed of four stacked sections: a full-bleed autoplaying video hero with spring-animated header, expanding glass nav pill, and word-by-word animated description; a CSS marquee of partner brand wordmarks; a CraftExperiences section with a spring-driven style carousel, a skeleton-morphing chat card, and a staggered adaptable list; and a two-column testimonials block with animated word reveals.

ZeroSum-Solutions/mishmash

Produce a print-grade single-page kami (紙 / 纸) document — warm parchment canvas, ink-blue accent, serif at one weight, no italic, no cool grays. The output reads like a professional white paper or studio one-pager, not an app UI. Multilingual by design (EN · zh-CN · ja). One self-contained HTML file, zero dependencies.

ZeroSum-Solutions/mishmash

A single-page, desktop-only dark hero landing for the fictional studio **Kubric™**, built on **TanStack Start v1 + React 19 + Vite 7 + Tailwind v4** with file-based routing. Features a looping background video with a progressive 8-layer `backdrop-filter` blur at the bottom, an animated SVG logo with arc stroke-dashoffset reveals, a glass nav pill, a character-by-character headline reveal, a vertical right-side section nav, and a white "About us" card. Everything animates in on first load once the background video is ready.

ZeroSum-Solutions/mishmash

ProFolioX is a static reproduction of the current Lexington Themes portfolio template. It combines a fixed desktop sidebar, responsive mobile navigation, Geist typography, light and dark themes, animated project cards, searchable content, and editorial portfolio layouts.

ZeroSum-Solutions/mishmash

Warm, editorial single-page landing for **Velar.**, a fictional luxury real-estate brand. A deep-teal typewriter preloader gives way to a sky-backdrop hero ("Live in Irreplaceable") with a cutout building image that rises from below on load, then a scroll-driven centerpiece: as the user scrolls, that same building drifts upward and scales to 1.45x while pinning toward the bottom of a sticky black statement section with count-up stats. A hover-expand five-tile video gallery slides up over the statement section, and a bronze-gradient "Inquire" close finishes the page. Syne (display) pairs with Inter (body) throughout, on a warm off-white ground with one chromatic bronze accent.

ZeroSum-Solutions/mishmash

A full-screen, cinematic hero landing page for a creative agency called Mainframe, featuring a fixed background video that scrubs forward and backward in response to horizontal mouse movement, an AI-assistant-themed blurred intro label, a typewriter-animated headline, and a row of pill-shaped action buttons with a clipboard copy email link. The design pairs HelveticaNowDisplay-Medium headings with HelveticaNowDisplayW01-Rg body text, both vendored locally for offline use. Built with React 19, TypeScript, Vite, and Tailwind CSS v3.

ZeroSum-Solutions/mishmash

A cinematic, single-section landing hero for mėntality, a fictional mental-health resources product. The page pairs a full-bleed background video that gradient-masks into a soft `#edeef5` base with a glassmorphic, fixed navigation bar, built in React 19 + Vite and animated with Motion (formerly Framer Motion). Notable techniques include `backdrop-blur` glassmorphism, a gradient mask that blends the video top into the base color, `clamp()` fluid headline sizing, an animated SVG hamburger that morphs into an X, an inline blinking "eye/pupil" pill in the headline, and an animated `pl`/`en` language toggle. Styling is Tailwind CSS 4 via the `@tailwindcss/vite` plugin (CSS-first `@theme`, no config file), with Inter and Outfit from Google Fonts.

ZeroSum-Solutions/mishmash

A pure-black (#000) monochrome landing page for Mindloop, a newsletter and content platform, where white typography does the talking — Inter for structure and Instrument Serif italics for accent words. The seven-section page flows through a fixed glass navbar, a full-viewport MP4 hero with email capture, an AI-platform awareness section, a scroll-driven word-by-word opacity reveal, a solution feature grid with a 3:1 video panel, an HLS-streamed CTA section via hls.js (with native Safari fallback), and a minimal footer — with Framer Motion entrances and a liquid-glass CSS border effect throughout.

ZeroSum-Solutions/mishmash

Cinematic single-page landing for the fictional neural-AI platform **SynapseX**. A fixed, full-viewport background video scrubs frame-by-frame as the page scrolls and progressively blurs, sitting behind a scramble-in split-corner hero headline, a 3D-tilted cinematic paragraph reveal, and a frosted-glass horizontal metrics carousel. Pure black-and-white scaffolding is punctuated by one neon-green "synaptic" accent that ties the UI to the glowing footage underneath it.

ZeroSum-Solutions/mishmash

A dark, full-bleed landing page for Neuralyn, a fictional analytics-dashboard SaaS, featuring a full-viewport hero with a scroll-linked parallax dashboard composited over a looping background video and a scroll-driven testimonial where each word lights up as you scroll. The aesthetic is pure-black background, white type, a single italic serif accent word, and a liquid-glass tag pill. Built with React 18 + Vite and TypeScript, styled with Tailwind CSS 3 and shadcn/ui-style primitives, animated via Framer Motion (`useScroll`/`useTransform`) for scroll-linked parallax and the word-by-word color reveal, with fonts self-hosted via Fontsource.

ZeroSum-Solutions/mishmash

A monochrome, editorial landing page for a fictional Natural History Museum paleontology collection, featuring a three-section continuous scroll: a full-viewport hero with a delayed background video reveal and an animated geometric "NHM" SVG logotype (per-polygon slide-up reveal), an "Explore Our World" section with scroll-revealed display heading and action pills, and a dark "Ancient Collection" chapter browser with auto-cycling fossil images and a custom SVG `feTurbulence`/`feDisplacementMap` sand-dissolve transition effect. Built with React 19, Vite 6, Tailwind CSS 4 (CSS-first config), and Motion (Framer Motion), in a strictly monochrome black/white/gray palette — no color accents.

ZeroSum-Solutions/mishmash

A single-page NFT landing site with four full-bleed sections (Hero, About, Collection, CTA) on a dark space theme. The page uses looping muted background videos, a CSS liquid-glass UI effect, a fixed grain texture overlay, and a tight color system (deep navy `#010828`, off-white `#EFF4FF`, neon green `#6FFF00`; Anton headings, Condiment cursive accents, system mono body). Showcases a three-card NFT collection grid with rarity scores and video previews.

Related Skills