All components

44 components from @juxtui/ui in 7 categories – each with variants, states and at least one real use case. Everything is interactive.

Actions

1

Button

<JButton>

Triggers an action. Five variants cover every level of emphasis, and the loading state keeps its width so nothing around it moves.

Variantsprimary only for the most important action
Sizesxs · sm · md · lg
With iconsleading · trailing · icon-only
SettingsDownload
Statesloading · disabled
Use Case Form save bar
Unsaved changes

Forms

11

Input

<JInput>

Single-line text field with integrated label, description and error message.

Label & description

This is how your team sees you.

Live validationerror
Type an invalid address to see the error.
Leading & trailingsearch · password · prefix
CtrlK
acme.app/
Sizes & statessm · md · lg · readonly · disabled

Textarea

<JTextarea>

Multi-line text with optional auto-resize.

Auto-resizeautoresize · maxRows

Grows up to 6 rows, then scrolls.

Use Case With a character limit

61/120 characters

Read-only & disabled

Checkbox

<JCheckbox>

Native checkbox with an animated fill and a drawn tick.

Use Case Consent
You can delete your account at any time.
Select allindeterminate
States

Switch

<JSwitch>

For settings that take effect immediately – no save button needed.

Use Case Notifications
Instantly for mentions and comments.
A daily digest.
Every Monday at 9:00 am.
Sizes & states

Select

<JSelect>

Pick one option – with keyboard navigation and typeahead.

With descriptionsoptions as objects

Where your functions run.

Selected: fra
String options & placeholder
Required with errorerror · size

Please choose a role.

Radio

<JRadioGroup><JRadio>

One choice from a small group under a shared legend.

Use Case Choose a plan
Plan

You can switch at any time.

Free · 1 project
$19 / month · unlimited projects
$79 / month · SSO & audit log
Contact us
Horizontal & error
Shipping
Size

Please choose a size.

Slider

<JSlider>

Pick a number or a range with a draggable thumb.

Single valueshowValue
Volume: 40%
40
Use Case Price filter (range)[low, high] · format · step
$200 – $800
$200$800
Sizes & disabled

Toggle Group

<JToggleGroup><JToggleGroupItem>

A row of buttons that works as one control.

Text alignmenttype=single · icon-only

This text follows the selection.

Formattingtype=multiple

The quick brown fox jumps over the lazy dog.

Use Case Switch views
File 1
File 2
File 3
File 4

Progress

<JProgress>

Horizontal bar for task completion or ongoing work.

Use Case File upload
report-q3.pdf0%
Use Case Onboarding steps
Step 2 of 4: Profile
Variantsindeterminate · neutral · sm
Syncing…
Storage (72 of 100 GB)72%
Small

Rating

<JRating>

Star rating – editable by default, optionally read-only.

Rate it
4 / 5 – Good
Use Case Product averagereadonly · allowHalf
4.5(1,284 reviews)
Delivery
Sizes & count

Editor

<JEditor>

Rich text editor with toolbar, selection menu, slash commands and Markdown shortcuts.

Fulltoolbar=full · bubbleMenu · slashCommands
Use Case Commenttoolbar=minimal · limit
Read-onlyreadonly · toolbar=false

Overlays

5

Dialog

<JDialog>

A modal window for a single task. Traps focus, locks scrolling and returns focus when it closes.

Use Case Confirm deletionsize=sm · footer slot
Use Case Form in a dialogfocus lands in the first field
Long contentsize=lg · scrolls inside
Forced decisioncloseOnOverlay/Escape=false · hideClose

Tooltip

<JTooltip>

A short label on hover or keyboard focus. Focus opens it immediately, hover after a short delay.

Use Case Editor toolbaricon buttons need labels
Bold (⌘B)Italic (⌘I)Underline (⌘U)
Insert imageCode block
Sidestop · right · bottom · left
TopRightBottomLeft
Delay & alignmentdelay · align · disabled
Instantly thereAfter one secondAligned to the start

Popover

<JPopover>

A non-modal anchored surface for small content or forms.

Use Case Filterform in a popover
Use Case Share a link
Profile cardplacement=top

Sheet

<JSheet>

A modal panel that slides in from an edge – for filters, details and longer forms.

Use Case Filter panelside=right
Mobile navigationside=left · size=sm
Bottom sheet & sizesside=bottom · sm/md/lg

Feedback

7

Toast

<JToaster><toast()>

Stacking notifications with auto-dismiss. toast() works anywhere – inside and outside components.

Typesdefault · success · error · warning · info
Use Case With an actionundo pattern
Use Case Async statuspromise · loading → update

Badge

<JBadge>

A compact label for status and counts.

Variants
NeutralNewActivePendingError
Status style & sizesdot · sm/md · leading
OnlineDegradedDownsmmd Pro
Use Case Counts & deploy list
mainReady
feat/tabsBuilding
fix/ssrFailed

Skeleton

<JSkeleton>

A loading placeholder that anticipates the shape of the content.

Use Case Loading a profile card
Shapesrect · text · circle

Spinner

<JSpinner>

A small indeterminate loading indicator.

Sizessm · md · lg
LoadingLoadingLoading
Use Case Inline with text
Loading more entries…
Generating reportGenerating report

Empty State

<JEmptyState>

A placeholder for when there is nothing (yet) to show – with icon, text and an action.

Use Case No search results

Nobody found

No one matches “xyz”.
Sizessm · md

No notifications

You’re all caught up.

Inbox empty

New messages will show up here.

Alert

<JAlert>

A bordered inline notice within content, with an icon and optional actions.

Variants

Note

Changes are saved automatically.

Tip

Press ⌘K to search anywhere.

Import complete

1,204 contacts were imported.

API key expires soon

In 7 days – create a new one in time.

Build failed

Module “@acme/ui” not found.
Use Case Actions, slot & optionsdismissible · actions · hideIcon · icon slot

Build failed

Error: Cannot find module '@acme/ui' in src/app.ts:3

Without an icon

hideIcon for quieter notices.

Custom icon

Via the icon slot.

Display

12

Avatar

<JAvatar>

An image with an initials fallback and an optional presence indicator.

Sizesxs · sm · md · lg · xl
Fallbacksinitials · broken image · slot
Use Case Presenceonline · away · busy · offline
Annaonline
Benaway
Clarabusy
Davidoffline

Card

<JCard>

A quiet container for related content.

Header, actions & footer

Storage

Your current usage.

68 of 100 GB
Updated 2 minutes ago
Variants & paddingoutline · muted · sm/lg

Outline

Sits on the page.

Muted

Recedes into it.

padding="lg" without a title – content only.

Kbd

<JKbd>

Keys and shortcuts – mod becomes ⌘ on Apple platforms and Ctrl elsewhere.

Hotkey syntaxkeys="mod+k"
CtrlKCtrlshiftPshiftenteraltT
Literal keysslot
EscTab↑↓Enter
Use Case Shortcut reference
Open searchCtrlK
Toggle themeCtrlshiftL
SaveCtrlS
Helpshift/

Separator

<JSeparator>

A divider, horizontal or vertical, with an optional label in the middle.

Horizontal & label

Section A

Section B

or
Use Case Vertical in a bar
Blog
Docs
Sourcev0.8.2

Tag

<JTag>

A removable chip for user selections.

Use Case Enter skillsEnter adds · × removes
VueNuxtTypeScript
Variants & sizesneutral · accent · success · warning · destructive
NeutralAccentSuccessWarningDestructiveSmallDisabled Berlin

Aspect Ratio

<JAspectRatio>

Keeps content locked to a fixed width-to-height ratio.

Use Case 16 / 9 video
1 / 1 gallery · 21 / 9
21 / 9

Visually Hidden

<JVisuallyHidden>

Invisible to the eye, but readable by screen readers.

Use Case Extra context for screen readers

Screen readers announce “Add to favorites” and “Read more about accessible components” – on screen you only see the icon and “Read more”.

Hidden headingas="h2"

Search results

The heading “Search results” is part of the document outline but isn’t displayed.

Avatar Group

<JAvatarGroup>

An overlapping stack of avatars; the rest collapses into “+N”.

Max & sizesmax · size · shape
+3
+4
Use Case Social proof
+2
Used by 4,000+ teams

Stat

<JStat>

A labeled number for dashboards, with delta and trend.

Use Case KPI row
Revenue
$48,290 +12.4%

vs. last month

Active users
3,842 +4.1%
Error rate
0.42% −0.1%

lower is better

Deployments
128 ±0

Timeline

<JTimeline><JTimelineItem>

A vertical sequence of events with markers and status.

Use Case Order trackingcomplete · current · upcoming
  1. Order placed

    Order number #10482
  2. Shipped

    UPS · 1Z999AA10123456784
  3. Out for delivery

    Expected between 12 and 3 pm.
  4. Delivered

Activity feedmarker slot
  1. Anna deployed main

  2. Ben left a comment

    “Looks good, please add the tests too.”
  3. Clara created the project

Collapsible

<JCollapsible>

A single show/hide section. For several linked ones, use Accordion.

Use Case Advanced settings
State: closed
Custom trigger & disabledtrigger slot
  • .env.local
  • .nuxtrc
  • .gitignore
Not reachable.

Accordion

<JAccordion><JAccordionItem>

A coordinated stack of disclosures in single or multiple mode.

Use Case FAQ (single, collapsible)

A small, carefully designed component library for Nuxt and Vue 3.

Yes – keyboard navigation, focus management and ARIA patterns are built in.

Yes, @juxtui/ui/tailwind.css maps the tokens onto utilities.

Not yet.
Multipletype=multiple · headingLevel=4

Free over $50.

30-day return policy.

Credit card, PayPal, Apple Pay.
Open: a

Navigation

4

Tabs

<JTabs>

Switch between views with a gliding indicator. Panels are filled through slots named after each item's value.

Use Case Page sectionsvariant=line · panels · disabled

Overview: 3 active deployments, 99.98% uptime over the last 30 days.

Time range switchvariant=pill · size=sm
Showing data for: 7d
Custom labels & filltab slot · fill

Command Palette

<JCommandPalette>

Search everything, run anything. Open this site's global palette at any time with ⌘K / Ctrl+K.

Use Case App commandsgroups · icons · shortcuts · recent · disabled
or globally: CtrlK

Pagination

<JPagination>

Navigate paged lists, with an ellipsis when there are many pages.

Use Case Invoice list
InvoiceAmountStatus
#1047$20.00Open
#1046$57.00Paid
#1045$94.00Paid
#1044$131.00Paid
#1043$168.00Paid
1–5 of 47
VariantssiblingCount · size=sm · disabled

Layout

4

Burger

<JBurger>

A menu button that morphs from three lines into a cross.

Sizes & labelssize=sm · openLabel · closeLabel
sm · md (open)