Skip to content
OnepageField NotesA guide / 2024Reading time · 8 min · By the Onepage team
···

Editor's note

AI can build a page very fast. That's useful, but it also creates a common problem: the first result often looks "good enough" in the same way most AI pages look good enough. This article is for those who want to push past it.

In this issue
I.
Getting your desired style right
II.
Creating the next sections
III.
Orchestrating animations & effects
IV.
Final polish

The way we generally work with Onepage AI can be formulated in a single sentence:

Focus on one part of the work at a time.

Here is one of the key takeaways of many thousand hours of working with LLMs in terms of pages : all of us are getting very similar results. Standing out with AI-generated pages is hard, because LLMs have a bias: a limited pool of knowledge about styles and layouts, pushing us toward available angles.

And there is nothing wrong with general styles unless you are trying to create something you really like.

So let's see what "general" prompt output from LLMs really looks like.

One of these styles an LLM will create for you if you ask it to make a "nice", "awesome", "polished" or any other adjective of "superior" quality page.

Many people think that by adding one of those adjective it will get an LLM to "think" in a more creative direction while in fact it actually narrows down the range of styles it can potentially produce (mostly to the 3 mentioned above)

They look cool, but in this article let's talk about how to push the LLM toward your own desired style.

I.Chapter10–20 minutes

Getting your desired style right

I start with a visual reference.

Sometimes I find a page online.
Sometimes I generate a rough full-page concept with GPT Image.

The reference does not need to be perfect or high resolution. What matters is that it has a distinct look: the colors, the buttons, the frames, the shadows, the type of background, the feeling of the surfaces.

And it has to be something you weren't able to get out of AI easily with simple prompts.

Plate 04
Plate 05

Two valid starting points. A found page on the left, an AI-generated mood concept on the right.

Then I upload that reference into Onepage AI and ask it to do only one thing: recreate the visual style.

After the first result, I check only the style without worrying too much about whether the layout is good yet. I look at the materials, the buttons, frames, hover effects, and the general mood, and I'm trying to spot the weaknesses.

A bit of positive reinforcement with acknowledging a great start

This step may take a few tries. That is normal. AI will not get it right on the first go, so 2–3 more prompts are required to get it right. The goal is to create one strong section, usually the hero, that becomes the style base for the rest of the page.

Once the style feels right, I switch to layout. This is a separate step. I ask the AI to keep the style and focus only on composition: spacing, alignment, density, hierarchy, and the position of elements.

This separation makes the process much easier to control. If I ask for better style and better layout at the same time, the AI may improve one thing and damage another.

When I separate the tasks, I can see exactly what changed. Because the models can actually "see" from screenshots, I may paste a screenshot or two pointing out examples of what it did wrong alongside the correction prompt.

After the first section works, I use it as the reference for the next sections. It's done now. You won't have to re-explain that much anymore as soon as the first section is built, because everything that follows will be "inspired" by the already existing sections.

II.Chapter60–90 minutes

Creating the next sections

If I have another screenshot with a layout I like, I may upload it too, but only for structure. I ask the AI to copy the composition from the new screenshot while taking the style from the section we already built. It can also be done without a screenshot at all.

This works well because the AI usually understands an existing coded section better than a screenshot. Once the style is already created in code, the model can reuse it more consistently. The page starts to feel like one design instead of a collection of separate AI outputs.

Now don't get me wrong. The way Onepage AI works is that whatever you do, it will always try to inherit an overall style of the page even without you prompting. But the prompt always works better.

I repeat this process section by section. First I fix the style if it drifts. Then I fix the layout. Then I move on. I usually leave animation until the end. It's easier to judge when the page already has a clear structure.

III.Chapter30–60 minutes

Orchestrating animations & effects

At this point I can ask the AI to think about the full sequence: what appears first, what moves next, which elements should stay calm, and where the page can have a stronger effect.

Sometimes I also ask the AI to suggest libraries or techniques. This is useful because I may not know all the best options myself. I can test one approach, roll it back if it does not work, and try another.

For later sections, I may ask the AI to reuse an animation style from a section that already works.

The main idea is to manage the AI's attention. A broad prompt gives a broad result. A focused prompt gives more control.

Instead of asking Onepage AI to make a full page in one step, I build a strong reference section first. Then I use it as the base for the rest of the page. Style first, layout second, section by section, and animation at the end.

It takes a little more time, but the result is easier to guide. The page looks more consistent, less generic, and closer to the original design direction.

Case studyIn practice

Creating a law firm page

For this one I picked an example of a style I wasn't working with before: a nice editorial, asymmetric page for a lawyer. It may seem AI can "one-shot" these and it truly can, but my goal is to push it to the next level. Here's the screenshot of the style we're starting with.

Plate 06The starting reference. Fonts and colors I ideally pick with Onepage. DM Serif Text and Assistant as a paragraph font.
One.

Initial version

Initial version it came up with. Decent, but generic. The AI defaulted to safe layout choices.

Plate 07First output. Symmetric, predictable, missing editorial detail.
Two.

Style correction prompt

Now applying the style correction prompt. After the first prompt, the result is way closer to the original screenshot.

Plate 08After the style pass. Closer to the original screenshot.
Three.

Layout + missing elements

Layout prompt + pointing out what the LLM had missed (elements on the left). Hint: AI cannot generate logos, and SVG figures it generates are always meh, so I'm leaving that part for later.

Plate 09Layout pass plus correcting missed elements.
Four.

About section

Now the next section: the "about us". Asking the AI to use the existing Hero as the style reference.

Plate 10Creating the About section using the Hero as a reference.
Five.

New layout iteration

The next section had too many copied bits from the previous one, so I asked the AI to actually invent a new layout in a new iteration.

Plate 11Way better now. Closer to what I imagined. I specifically don't want too much craziness in this page in terms of layouts, to then create a "wow" effect later while applying motion.
Six.

Services section

Now onto the "services" section, using this prompt:

And basically I just continue the loop. Asking for a new section, then style check, then layout, then one or two corrections, and onto the next one until it's done.

A note from the marginExtra tip

Prompting the settings

What I would do very frequently is, instead of re-prompting a dozen times something I don't like (an element or a layout), I'd ask the AI to give me all the possible settings for this block or element and simply tweak it to my liking. This is where Onepage is really different from any coding tool.

You can and should ask it to add more settings.

Like here, for example: I asked it for a 9:16 image and for some reason it still appeared too tall.

Plate 12Image ratio still off after re-prompting.

So I asked the AI to give me complete control over it via settings, and simply tweaked the ratio myself.

Plate 13Settings exposed. Two clicks instead of ten prompts.
IV.Chapter30–60 minutes+

Final polish

Now, here's how my final result looks like, and as you can see it's pretty static, so let's turn it into something beautiful.

Everyone has seen those beautiful websites (especially showcased on Twitter) that are supposedly "made with AI". While it's true, it requires a ton of work and it's not as easy as many of those people claim. The key is always assets and libraries.

Plate 14Final static version. Solid foundation, but it's missing motion.

What is a library? Something Onepage AI can connect to your website with ready-made effects. There are libraries for many things (charts, background effects, general animators) and you'll always win big if you can tell the AI to connect a certain library, or ASK the AI which library it can use.

Let's do exactly that.

Plate 15See, it recommends Framer Motion as a key setup for animations.

With overall effects, there's no cheatsheet aside from this: you have to be able to explain desired effects with human knowledge after the libraries are picked. I went for the "layered" and "parallax" effects and started applying an "orchestrated sequence" for the hero section.

Built with this approach

See it on real pages

A few projects shipped using exactly this loop. Click any of them to view the live site.

  1. Lawyer№ 01LawyerLanding page
  2. AI Conference№ 02AI ConferenceConference page
  3. Agency№ 03AgencyAgency page
ReferenceTools of the trade

A library shortlist

Most of the "how is this even a website" pages you've seen on Twitter are not pure CSS. They lean on a small set of libraries that solve the hard parts: smooth scroll, sequenced timelines, GPU-driven visuals, physics, maps, charts, proper icons. Below is a shortlist of what the good ones tend to use, with a starter prompt for each.

A heads-up before you copy-paste: not all of these are wired into Onepage AI yet, but most are. A few of the heavier ones (raw WebGL shaders, physics, custom map styles) may need a manual setup or a follow-up prompt or two. Support is rolling out continuously.

  1. 01

    GSAP + ScrollTrigger

    The animation engine of the modern web

    Industry-standard timeline animation library. Pairs with ScrollTrigger for scroll-driven scenes, pinning, scrubbing, and complex sequencing. Free for commercial use since 2024. If you've watched a section pin, scrub, and reveal step by step on a polished site, it's almost certainly this.

    Spotted onApple product pages, Stripe, the majority of Awwwards Site of the Month winners

    Starter prompt

    Connect GSAP and ScrollTrigger to this section. Build a scroll-driven timeline that pins the section, animates each element in sequence as the user scrolls through it, then unpins cleanly after the last keyframe. Keep the timing tasteful and easings soft.

  2. 02

    Raw WebGL (OGL)

    GPU visuals without the bloat

    Direct WebGL via a tiny wrapper like OGL, or hand-written shaders on a canvas. The lighter, more reliable path to custom shaders, distortion fields, particle clouds, and gradient meshes than full 3D engines. If you want the visual without the framework weight, this is the route.

    Spotted onAwwwards hero backgrounds, agency sites, editorial experimentals

    Starter prompt

    Add a raw WebGL canvas as a full-bleed background for this section using OGL or a plain WebGL2 context. Render a slowly animated fragment shader (a flowing noise gradient that drifts with mouse position). Cap device pixel ratio at 1.5 and pause the render loop when the section is offscreen.

  3. 03

    Framer Motion (Motion)

    Motion for React

    Declarative animation API for React components. Best in class for layout transitions, gestures, shared element animations, and viewport-triggered reveals. Recently rebranded as just "Motion" with a hardware-accelerated successor.

    Spotted onVercel, Linear, most modern SaaS marketing pages

    Starter prompt

    Use Framer Motion to add staggered fade-up entrance animations to the items in this section. Trigger them once when entering the viewport using whileInView with viewport.once true. Stagger children by 80ms and use a soft spring on the parent.

  4. 04

    Lenis

    Smooth scroll, done right

    Studio Freight's smooth-scroll library. Lightweight, framerate-independent, integrates cleanly with ScrollTrigger and CSS scroll-driven animations. The reason almost every Awwwards-grade site in 2024 has that buttery scroll feel.

    Spotted onstudiofreight.com, awwwards.com itself, dozens of Site of the Month winners

    Starter prompt

    Add Lenis smooth scrolling to the entire page. Use a duration around 1.2 seconds with a soft cubic easing. Make sure it syncs with any existing ScrollTrigger animations and degrades gracefully on touch devices.

  5. 05

    PixiJS

    2D WebGL, blazingly fast

    Hardware-accelerated 2D rendering. Used for image distortions, displacement effects, particle systems, and interactive backgrounds where a full 3D engine would be overkill. Pairs well with shaders for editorial image effects.

    Spotted onAwwwards image-effect heroes, news experimentals, music album sites

    Starter prompt

    Add a PixiJS displacement effect to the hero image. Use a noise displacement map that intensifies on mouse hover and idles back when the cursor leaves. Keep the original image as an accessible img tag underneath.

  6. 06

    Cobe

    The interactive globe everyone uses

    Tiny WebGL globe library (~5kb) that powers the spinning earth you've seen on every modern dev-tool homepage. Pure canvas, no Three.js, no bloat. Drop it in a hero and pin markers, animate rotation, hook scroll progress to camera. The single fastest way to add something visual that feels expensive.

    Spotted onStripe, Linear, GitHub, Resend, Cal.com, basically every YC homepage in 2024

    Starter prompt

    Add a Cobe interactive globe to this section as the hero visual. Style it with this page's accent color for the markers and a soft monochrome base sphere. Auto-rotate slowly when idle, slow down on mouse hover, and pin a few markers at city coordinates.

  7. 07

    react-fast-marquee

    Infinite scrolling rows, done right

    The infinite logo strips, ticker tapes, and edge-to-edge headlines you see on every Awwwards homepage in 2024. Hardware-accelerated, pause on hover, gradient masks at the edges, two-direction support. Cleaner and more reliable than rolling your own CSS keyframes.

    Spotted onModern SaaS logo strips, agency portfolios, fashion and editorial sites, indie launches

    Starter prompt

    Replace this static row with a react-fast-marquee component. Loop the items horizontally at a slow speed, pause on hover, add gradient fade masks on the left and right edges, and duplicate the items so the loop reads as continuous. Match the page's text and accent colors.

  8. 08

    SplitType

    Split text into chars, words, lines

    Tiny utility that wraps every character, word, or line of a heading in its own span. The companion to GSAP for kinetic typography. If you've seen a hero where letters rise, fade, or stagger in one by one, SplitType (or its predecessor Splitting.js) is doing the wrapping. Saves you from writing fragile manual wrappers by hand.

    Spotted onAwwwards SOTM heroes, agency portfolios, modern editorial homepages

    Starter prompt

    Use SplitType to split the main heading in this section into individual characters. Then animate each char with GSAP: a fade-in plus 12px rise, staggered by 30ms, triggered when the heading enters the viewport. Preserve accessibility by keeping the original text in an aria-label on the parent.

  9. 09

    Embla Carousel

    The modern carousel

    Tiny, dependency-free, swipe-aware carousel with first-class React support. Has quietly replaced Swiper as the default choice for most modern sites. Composable through plugins (autoplay, parallax, wheel gestures).

    Spotted onLinear, Vercel, modern e-commerce, design system docs

    Starter prompt

    Replace this static row with an Embla Carousel. Enable drag scrolling, snap-aligned slides, and add subtle horizontal parallax to the slide content based on Embla's scroll progress events.

  10. 10

    MapLibre GL

    Real maps, on your terms

    Open-source WebGL map renderer (a free fork of Mapbox GL). Beats embedded Google Maps iframes in every way: vector tiles, custom styling, smooth pan and zoom, animated camera flights, 3D terrain. Use it any time the AI tries to give you a static map screenshot.

    Spotted onStripe Atlas, Strava, modern travel and logistics startups

    Starter prompt

    Replace the static map placeholder with a MapLibre GL map. Use a minimal monochrome style that matches this page's palette, add a single pin at the office location, and animate a slow camera fly-to on viewport entry. Disable scroll-zoom by default; require a click to interact.

  11. 11

    Rough.js

    Make anything look hand-drawn

    Tiny library that renders shapes, lines, and SVG paths in a sketchy, hand-drawn style. The engine inside Excalidraw. The single best antidote to LLM-generated SVGs that always look stiff and generic. Great for charts, diagrams, decorative borders, and giving editorial sites a human, illustrated feel.

    Spotted onExcalidraw, hand-drawn explainer sites, indie product docs, conference microsites

    Starter prompt

    Use Rough.js to convert the decorative shapes and dividers in this section into hand-drawn versions. Use a 1.5px stroke, mild roughness around 1.2, and the page's text color. Keep semantic SVG underneath for accessibility; only the rendered look should be sketchy.

  12. 12

    Vivus

    SVG paths that draw themselves

    The classic library for animating SVG paths as if a pen were drawing them in real time. Pair with any line-art logo, signature, icon, or illustration to get the iconic self-drawing reveal that AI cannot fake with motion alone. Tiny, dependency-free, works with any SVG.

    Spotted onAgency intros, signature reveals, logo loaders, kinetic illustration sites

    Starter prompt

    Take the SVG illustration in this section and animate it with Vivus using the 'sync' style so all paths draw at once over 1.4s. Trigger the animation when the illustration enters the viewport. Use the page's text color for the stroke and 1.25px width.

  13. 13

    Two.js

    Programmatic vector scene-building

    A 2D drawing API for composing shapes, paths, and groups into figures programmatically, rendering to SVG, canvas, or WebGL from the same code. Use it when you want a generative illustration or animated diagram and don't trust the LLM to author the geometry by hand. Cleaner than Paper.js and more focused than Pixi.

    Spotted onGenerative art portfolios, interactive explainers, custom data viz, motion-design sites

    Starter prompt

    Use Two.js to build the abstract illustration in this section programmatically: a grid of evenly spaced circles, each with a slight random offset, slowly drifting. Render to SVG so it stays crisp at any size, and use the page's accent color with a 60% opacity fill.

  14. 14

    Recharts

    Composable React charts

    The default charting library for React in 2024. Built on D3, but with a clean component API. Use it whenever the AI generates a fake chart as an SVG illustration: real data, real responsiveness, real animation, with maybe 30 lines of code.

    Spotted onVercel dashboards, Linear, fintech and analytics startups

    Starter prompt

    Replace this static chart illustration with a real Recharts area chart. Accept the data via a settings array. Style it with this page's accent color, soft grid lines, and a smooth monotone curve. Add a simple tooltip on hover.

  15. 15

    Leaflet + OpenStreetMap

    The classic, zero-config map

    Leaflet is the lightweight, battle-tested map library that pairs with free OpenStreetMap tiles. No API keys, no billing, no signup. Pick this over MapLibre when you don't need vector tiles or 3D camera tricks and just want a real map on the page in 20 lines of code.

    Spotted onWikipedia, OSM itself, indie tools, open-data sites, government portals

    Starter prompt

    Add a Leaflet map to this section using free OpenStreetMap tiles (no API key needed). Center it on the office location, drop a single marker with a popup, and use the standard OSM tile layer. Disable scroll-zoom by default; require a click before the map captures wheel events.

You don't need to know the internals. You need to know which tool fits the moment, and ask the AI to wire it up. Half the work of a memorable page is just making the right pick from this list.

There's also many more libraries out there on the web that you can explore

···

Fin.

Style first. Layout second. Animation last.

That's the loop. Section by section, prompt by prompt, managing the AI's attention rather than asking it to do everything at once. The result is a page that doesn't look like a page made by AI and makes you or your client proud.

Onepage team