tailthemes
all-access

sent here for Bellows

photography portfolio template nextjsReact and HTML source

portfolionew

Bellowsphotography portfolio template Next.js

A photography portfolio template nextjs and Tailwind v4 developers can hand to a working photographer, built on the half of the category that every other template omits: what the client receives, and what they may do with it.

Live Preview
$39
both modes at 1280px
Bellows — Photography Portfolio & Licensing home page, light mode
Bellows — Photography Portfolio & Licensing home page, light mode
Bellows — Photography Portfolio & Licensing home page, dark mode
lightdarkloading live preview
63 / 63
light / dark tokens
2
modes, both designed
1
DOM, rendered twice
photography portfolio template nextjsphotographer website template nextjscommercial photography website templatetailwind photography portfolio templatephotography licensing website templatereact photographer portfolio templatetailwind-v4
$39one-time · unlimited projects
45components · every one pictured below
Live Preview
  • unlimited projects, client work included
  • 12 months of updates
  • 14 days, no questions
license terms

AGENTS.md and 4 skills ship in the zip, so your own agent keeps changing it after you buy.

docs: install, use, customize
018

pages, composed from 24 sections

Every page is a real render from the publish gate, in the mode on show. Open any of them in the live preview.

Colorlib's own round-up of twenty-four photography templates has one that mentions session pricing, none that mention usage or licensing, and an FAQ that sends readers to a third-party service for proofing. This ships the commercial surface instead of the gallery. Eight routes: a home page that opens on the signature at full size, a frame sheet of fourteen delivered crops at equal optical area, one commission followed end to end to a fee that is a sum of its own lines, a filterable and sortable register of every frame and every licence issued against it, a licensing page that prices four usage forms and states plainly what a licence does not grant, a studio page whose delivery record shows all six of its inputs, an enquiry form that redraws the crop as the usage changes, and a living component styleguide. The signature is the cut. Every photograph is shown as the whole frame it came out of, veiled, with the delivered licensed rectangle drawn on it at full strength, and the amount the negative overhangs the page is not a design choice but sensor divided by crop. Every figure in the margin is that function's output: sixteen point six megapixels, four by five, thirty-six point six per cent of the frame, three hundred and eighty-six millimetres at 300 dpi. The build refuses a page opener whose crop is not interior on all four edges, so the drawing can never collapse into two rules on a grey field. One chromatic token, an aniline stamp plum, carries the crop mark, the corner ticks, every hairline, every figure, every link and the filled button. Everything else is achromatic. There is no status colour anywhere: a licence reads live, expiring or expired from a solid, dashed or cancelled rule and the word beside it, so the distinction survives greyscale and a colour-blind reader. The board sits at L 0.92 rather than white, because a print on white reads as a blown highlight, and the card sits above it. Radius zero, one language, no exceptions. Fourteen photographs ship uncropped at 2400 by 1600, one per delivered frame, because the crop is performed in code and a register where two frames shared a photograph would be a lie the drawing itself exposes. Sixty-three design tokens, every one re-authored for dark, all derived in OKLCH and every pair computed against its contrast tier. Self-hosted Zilla Slab, Commissioner and Inconsolata. Built for Tailwind v4, Next.js 15 and React 19, and shipped with an independently authored HTML and vanilla JavaScript edition; every colour lives in theme.css.

0224 + 21

sections and primitives

You get the parts, not just the demo site. Every frame is a real capture from the theme's own styleguide page, and the source path under it is where the file lands in your project. 34 frames cover them, with 12 primitives sharing the ui/* frame.

ui/cut

src/components/ui/cut.tsx

The signature: a licensed rectangle drawn at full strength on its own veiled negative, with corner ticks in the veil and every figure computed from the cut.

Bellows photography portfolio template Next.js — ui/cut component at full size
1 / 34
0363

tokens, both modes

Change one variable and every part follows. Each badge is one token split down the middle: its light value on the left, its dark value on the right, with the theme's own paired ink on both halves.

roles6 of 63

hover or tab a badge for its name and both values, enter copies

supporting19
radius
0rem

The cut: every photograph shown as the whole frame it came out of, veiled, with the delivered licensed rectangle drawn on it at full strength and the overhang computed as sensor divided by cut.

every token

043

typefaces, self-hosted

Real woff2 files in src/fonts/, wired through next/font and licensed under OFL. Nothing is fetched from Google at build time, so the zip renders these letterforms offline. Scale ratio 1.333.

Bellows

A photography portfolio template nextjs and Tailwind v4 developers can hand to a working photographer, built on the half of the category that every other template omits: what the client receives, and what they may do with it.

const { open, close } = useLedger("2026-03") // 0123456789

icons · lucide-react · stroke 2
13px
14px
16px
display
Zilla Slab
text
Commissioner
mono
Inconsolata
scaleratio 1.333
  • captionAg
  • smallAg
  • bodyAg
  • leadAg
  • d1Ag
  • d2Ag
  • d3Ag
  • d4Ag
05375–1920

every width is a real render from the publish gate

Four viewports, each one a render the gate produced and checked. Switch between them: the frame narrows exactly as a window does, because that is what it is.

home page at 1280px, light mode
Bellows photography portfolio template Next.js — home page at 1280px
1280
061

every token and every part on one page

The styleguide route is not documentation about the theme. It is a page in the zip that renders the real components from the real tokens, so it stays true the day you change one.

07180

files in the zip

Two independently authored editions: React for applications, plus ready HTML, CSS and vanilla JavaScript for static hosts.

what unzipsbellows-1.0.0.zip
  • AGENTS.mdthe theme's own rules, written for an agent
  • .claude/skills/4 skills, each one job
    • add-page/SKILL.mdAdd a route to Bellows
    • add-section/SKILL.mdAdd a section component to Bellows that matches the theme's idiom and cannot disagree with the register
    • check-quality/SKILL.mdRun Bellows' own quality gate
    • rebrand/SKILL.mdRepaint Bellows for a different photographer
  • src/
    • theme.css63 tokens, light and dark
    • fonts.tsthe faces, wired to the type tokens
    • app/8 files
    • components/24 files
      • ui/23 files
    • fonts/4 font files, 3 licenses
  • app/8 routes, plus layout.tsx and globals.css
  • theme.jsonthe manifest: tokens, components, pages
  • html/the framework-free edition
    • dist/8 compiled routes, deploy-ready — no build step
    • src/the Nunjucks source the routes compile from
  • scripts/build-html.ts · serve-html.ts — `bun run build:html` / `preview:html`
  • README.mdquickstart
  • 6 project filespackage.json · tsconfig.json · next.config.ts · postcss.config.mjs · env.d.ts · .gitignore
your agent reads these first
what it runs on
next >=15react >=19tailwind >=4HTMLlucide-reactstandard license
install into a project you already have
$ bunx shadcn add @tailthemes/bellows

Your key goes in TAILTHEMES_LICENSE_KEY, and the registry entry goes in components.json. The snippet is on the docs page.

or run it standalone
$ unzip bellows.zip && bun install && bun dev
Read this theme's AGENTS.md
084

skills your agent can run

Your agent reads AGENTS.md before it edits, then runs the skill that fits the change. The skills are the theme's own, and the publish gate makes an agent complete every one of them in a scratch copy before the theme goes live.

the source

45 components, 8 pages and 63 tokens, as a Next.js project.

the kit

AGENTS.md carries the design spec. Each skill is one job written against it.

add-pageadd-sectioncheck-qualityrebrand
your agent

Claude Code, Codex, or any agent that reads AGENTS.md. It runs on your machine, on your own account.

the new page

Built from the theme's own sections, on the same tokens and the same rhythm.

the spec travels with the code

The source is yours to run, edit and deploy.

The spec ships inside the folder, so the page your agent adds next month is built by the same rules as the ten it came with. Nothing calls back here.

What the standard license covers
before you decide
What do I actually get?
A runnable Next.js >=15 project — not a screenshot and not a component dump. 8 pages, 24 sections and 21 primitives, 63 light tokens with 63 dark overrides, self-hosted fonts, and every image generated for this theme. AGENTS.md and 4 skills ship inside the zip, so your own agent can keep changing it after you buy. The same pages also ship as a framework-free HTML edition, with local fonts and vanilla JavaScript.
Does it include the pages I'd otherwise have to build?
Bellows ships commissioned photography, licensed by the frame, the frame sheet, one commission, end to end, the frame register, usage and fees, the practice, brief a shoot and the parts. Every one of them is a real route in the project with real content — you can open all of them in the live preview before you pay, and what you see there is what unzips.
Will it work with my stack?
Built for Tailwind >=4, Next.js >=15 and React >=19. Runtime dependencies are lucide-react — nothing else is required. The styling is tokens and Tailwind utilities, so it drops into an existing app rather than asking you to adopt a framework.
How long before it stops looking like a template?
The palette, type and spacing are 63 named tokens in one file, with 63 overrides for dark mode — change those and every screen moves together, which is the whole reason the theme is built as a system rather than as pages. Nothing here claims a number of hours: how long it takes depends on how far you move it.
Can I use it for client work?
Yes. One payment, unlimited projects, client work included, and 12 months of updates. Fourteen days to change your mind, no questions asked. The full terms are published, and this page and that page are the same source.
activity
45
components
sections + primitives
8
pages
all in the preview
last updated
v1.0.0
roadmap
  • v1.0.0 — eight-route commissioned-photography site built on the cut: every frame shown whole and veiled with the licensed rectangle drawn on it, the overhang computed as sensor divided by cut, and a fourteen-row register where a licence's state is a texture and a word rather than a colour
  • the second commission page, once a buyer asks for more than one worked jobplanned
  • a print-ready contact sheet export, if the register turns out to be what people useplanned
for agents

This listing is also a markdown document and a JSON endpoint. The theme's own agent kit is on the kit and agents plates above.

/api/themes/bellows
mcpsearch_themesget_themeget_componentdownload_theme