Layouts

Column Deck

A column deck: an intro and links on the left, a row of snap-scrolling columns on the right — a link drives the row to its column, the active link follows the scroll, a pill slides to it. Each column scrolls vertically on its own. For personal sites, portfolios and 'second brains'.

What you can change

  • heading and lead — the title and subtitle above the layout; without them — a ghost
  • items — slots in order: 01 the left intro (title — name), 02 column, 03 column, 04 column, 05 column, 06 column; title/text/value/media
  • media — your own frame, video or a background from the Background category (surface-*) inside a slot, under the text

A link for your AI agent: preview, code and instructions.

Preview

1440pxHost theme

Use it with AI

  1. 1. Copy the link.
  2. 2. Write to your agent in your own words and drop the link into the sentence.
  3. 3. The agent opens the link and installs the component from the registry.
AI
1Pick it here

put this on the home page as the hero:

https://vibeui.ru/c/layout-015?lang=en&theme=dark

2Paste into the chat
3Get it in your project

Not sure where to paste it? Step-by-step guide

Show the full instructions

What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.

Loading…

For developers

The install command lives in the “Component source” block below — a signed link that stays valid for 24 hours.

Technical notes

One file, zero dependencies, JS only for the cursor light and undefined. An 18rem/1fr grid from 48rem, height min(46rem, 100dvh). The row is a flex with overflow-x: auto and scroll-snap-type x mandatory (data-snap), a column is flex: 0 0 var(--col) (26/32rem, data-width) with a header and an inner overflow-y: auto. Clicking a button — row.scrollTo({left: column.offsetLeft, behavior: smooth}); onScroll via rAF finds the nearest column by offsetLeft and sets aria-current; the pill is an absolute span with top/height from the active button's offsetTop and a 0.4s transition. Below 48rem — the nav is a top row, columns are full width. Slot 01 is the left intro (title = name), 02–06 are columns: title — heading, text — lead, media — your own column content instead of the ghost. Slots: 01 the left intro (title — name), 02 column, 03 column, 04 column, 05 column, 06 column — items[i] with title/text/value/media, without them — a ghost. Numbers (numbers) show which slot goes where. Entrance is its own, see above; hover — cursor light and edge highlight at the pointer. Palette --vibeui-layout-015-* with light-dark, container queries, DOM order = reading order.

Tags

  • layout
  • columns
  • deck
  • portfolio
  • sidebar
  • horizontal
  • snap
  • personal
Component source

The same file your agent installs. Here in case you would rather copy it by hand.

Loading…