shadcn.io is not affiliated with official shadcn/ui
SaaS Link Cells Footer Block for Vue
A product footer for a scheduling tool: a lean brand row, three link groups as separate cells whose first link carries a one-line description and a badge, and a legal band.
Installation
Overview
A product footer for Vue with Ark UI, for sites that want visitors to notice a few links. A lean row at the top holds the wordmark and one sentence. Under it, a nav labelled Footer holds three cells (Product, Developers, Company), each a heading over five links, with its hairlines running a little past its corners and a + on the top-start corner. The first link in each cell is the one to read twice: a Badge (New, Beta, Hiring) beside its label and a one-line description under it. A legal band carries the copyright and the policies. The page's rails and top rule come from the Guides spine, so the footer joins the block above it with one line. On a phone the cells stack, one per row. It's built from Guides, Badge, plain links and your theme's tokens, with no JavaScript of its own.
FAQ
How do I change the links, the descriptions and the badges?
Edit GROUPS at the top of the file: each group is a title and its links, and a link is an href and a label, with an optional note (the description) and badge (its text). Any link can carry them, not only the first; keep to one or two per cell so the plain links still read as a list. Every link is an anchor with href="#", so point each at its page or swap the anchor for your router's link.
Do the badges stay readable in every theme?
Yes. They are the outline Badge: a hairline and your theme's text colour on the page background, so the contrast holds in light and dark and in any preset. Nothing is a fixed colour, and the badge never uses the primary colour, which stays free for your buttons.
How do screen readers move through it?
The block is a footer element, the page's content-info landmark when placed outside main. The three cells sit in a nav labelled Footer, each with a small h2 over its list, so a screen reader can jump between groups by heading. A link with a description reads as one link: its label, its badge and its description are announced together. The policy links are a list named Legal.
Why do the cell lines run past the corners?
It is the Guides component's overshoot: each cell draws its own four hairlines, extended a little beyond the corners with a + on the top-start one, so the three cells read as separate sheets on one drawing. The cells sit eight units apart so neighbouring lines never touch, and the group is inset from the page rails for the same reason.
How does it fit on a phone?
Below md the three cells stack, one per row, each at the full width with its lines inside the page rails, and the legal band's copyright sits above the policy links. The descriptions wrap rather than truncate. From md the cells sit three across. Nothing scrolls sideways at 320 pixels.