shadcn.io is not affiliated with official shadcn/ui
Feature Tour Login Block for React
A split sign-in page for a spreadsheet that works like a database: the form beside a wide three-tab tour (Boards, Timeline, Reports), each tab a drawn greyscale view of one table and a sentence.
Installation
Overview
Give the sign-in a tour of the product with this feature showcase login block for React with Base UI. It's the sign-in of Gridfinch, a spreadsheet that works like a database: the page's two side rails run its full height and one band crosses the screen between two rules. The form takes five twelfths of the band at its end: a Field with the email Input, another with the Password Input and a "Forgot password?" link, and the Shine Button, the only colored control. At the start, behind a divider that meets both rules at a plus mark, seven twelfths of the band hold a three-tab Tabs tour: Boards, Timeline and Reports are each a drawn greyscale view of one table with a sentence about it, and the arrow keys move between the tabs. Every drawing has the same height, so switching never moves the page. On a phone the tour is gone and the form takes the screen. It's built from Tabs, Field, Input, Password Input, Shine Button and Guides, with a CSS entrance only. For a sign-in that shows what's inside.
FAQ
What happens when I sign in, and what stays in the page?
Nothing leaves the page. Sign in waits under a spinner for less than a second, then shows "You're signed in" with the address you typed, and a polite status message says nothing was sent; Sign out brings the form back with your email still filled in. The tour is drawn from typed data (the lanes and cards, the tasks and the eight days of rows are all made up) and nothing in it is a real table. To wire the form for real, post the email and password to your auth endpoint where the code says so, keep the busy state until it answers, then redirect, or show its error under the field it concerns.
How do the tabs work with a keyboard?
It's a real tab list: Tab moves focus onto the selected tab, and the arrow keys move between Boards, Timeline and Reports, with Home and End jumping to the first and last; the panel under the list changes with the selected tab. A tab is selected as soon as it gets focus. The drawings are hidden from assistive technology and the sentence under each is real text, so a screen reader hears what the tab shows.
Why doesn't the page move when I switch tabs?
Every drawing sits in a box of the same height (15 rem) and each sentence reserves two lines, so whichever tab is selected, the panel is the same size. A panel that varied would need an unseen copy of each panel in one grid cell; fixed sizes make that unnecessary.
How are the drawings made, and can I use my own?
They're built from plain boxes and bars in greyscale, with lane and task data typed at the top of the file: the Boards lanes hold cards with literal width classes, the Timeline rows have literal column classes on a twelve-column week grid, and the Reports bars take their height from the eight values, with the total worked out from them. Replace a drawing with a real screenshot of your own, or an image you have the rights to use, and keep its alt text empty if the sentence says what it shows.
Why is the Sign in button never disabled?
A disabled button can't explain itself, and keyboard users can't reach it. Here it stays enabled: pressing it with an empty or malformed email, or no password, marks those fields invalid, writes one sentence under each and moves focus to the first, which reads its problem out. Typing clears that field's problem. The browser's own validation bubbles are turned off with noValidate, so the messages look the same in every browser, and each field keeps a line for its problem even when there is none, so a problem never pushes the page.
Why is the form first in the page when the side comes first on screen?
The form comes first in the markup, so Tab order and the reading order for a screen reader start with the sign-in and the heading, and on a phone, where the side is gone, nothing has to be reordered. The side is placed at the start of the band with two grid classes (lg:col-start-1 lg:row-start-1) and the divider is its end border. It follows the page direction, so in a right-to-left layout the side sits at the right.
Related
- Pro
Benefits Accordion Login
Split with a panelA split sign-in page for a freelancer back office: the form with Remember me beside five benefits as an accordion, one open at a time and the first open to start, with ruled rows.
- Pro
Diagonal Split Release Notes Login
Split with a panelA split sign-in page for a product analytics tool: the form beside a What's new list of three releases with a slanted edge, each release a disclosure that opens its detail, and one GitHub row.
- Pro
Split Product Sketch Login
Split with a panelA split sign-in page for a grocery delivery service: the form at the end beside a drawn sketch of the product (a basket, a delivery slot and a total in an inset frame), with Remember me and a simulated sign-in.
- Pro
Tab Swap Split Showcase Features
Tabs and accordionsA features section for a release tool: a line tab switch (Plan, Ship, Review) that swaps one split band, with a drawing flush to the start rail and the copy on the end side.
- Pro
Split Quote Stepper Login
Social proofA split sign-in page for a project tool for makers: the form beside a narrow stepper of three customer quotes with Previous and Next buttons, a count and the arrow keys. It never turns by itself.
- Pro
App Download Login
Split with a panelA reverse split sign-in page for a running tracker: a real QR code of a download link with an iOS and Android switch that re-encodes it, a copyable link, and the sign-in form beside it. On a phone the code gives way to a Get the app link.