Showcase
Every Malphas component, working, on a single page.
Actions
Modal docs
Alert Dialog docs
Focus starts on Cancel. Clicking outside does not close it: only the two answers or Escape do.
Delete the protocol?
Its steps and results go with it. This cannot be undone.
Discard your changes?
What you edited in this protocol will be lost.
Link docs
Drawer docs
Open it and try to Tab out: focus cycles inside. Escape closes it and returns focus to the button. While it is open, the page behind does not scroll.
Dropdown docs
Open it and move with ↓ ↑. Escape closes it and returns focus to the trigger. Tab closes it too, but follows the page's natural order — a menu does not trap focus.
Popover docs
Focus moves into the panel when it opens. Escape closes it and returns focus to the button; Tab goes through the content and on to the page, closing the panel.
Swap docs
Data display
Card docs
Card title
A container that groups related content.
Pro plan
Everything in the free plan, with no limits.
Item docs
PDF · 2.4 MB · updated yesterday
protocol-v2.pdf
Uploaded by Lincoln
results.csv
Generated automatically
Hover Card docs
Protocol reviewed by @lincoln yesterday at 6 pm.
Bubble docs
- Looking: 2
Marker docs
Message docs
- Like: 1
Attachment docs
Message Scroller docs
Scroll up and ask for new messages: your position stays put, and the button counts what arrived. "Load earlier" adds to the top without pushing what you are reading.
Typography docs
How the protocol works
vapulab records every step of the experiment. See the component list to build your own screen.
- Plan the steps
- Run them and log the deviations
Measure twice, cut once.
Run task dev to bring everything up locally.
Badge docs
Kbd docs
Avatar docs
Stat docs
- Revenue
- $12,400
- Subscribers
- 1,284
- Failures
- 3
+12% this month
+3% this month
last 24h
Table docs
| Service | Environment | Status |
|---|---|---|
| vapulab-api | production | Active |
| vapulab-web | production | Active |
| vapulab-jobs | staging | Degraded |
| vapulab-etl | staging | Stopped |
| Service | Environment | Status |
|---|---|---|
| vapulab-api | production | Active |
| vapulab-web | production | Active |
| vapulab-jobs | staging | Degraded |
| vapulab-etl | staging | Stopped |
Data Table docs
40 results
| Protocol | Area | Owner | Steps |
|---|---|---|---|
| Cell culture A | Microbiology | Chloé Martin | 14 |
| Cell culture B | Biochemistry | Daniel Kim | 4 |
| Cell culture C | Immunology | Elena Rossi | 8 |
| Cell culture D | Genetics | Amara Okafor | 12 |
| Cell culture E | Neuroscience | Ben Carter | 16 |
| Chromatography A | Immunology | Elena Rossi | 10 |
| Chromatography B | Genetics | Amara Okafor | 14 |
| Chromatography C | Neuroscience | Ben Carter | 4 |
Carousel docs
Tab to the slides area and use ← →. Scrolling respects prefers-reduced-motion.
Collapse docs
The initial state comes from the server, so it does not flicker on load.
Accordion docs
Yes — it is a standalone Go module, versioned by tag.
Timeline docs
-
Deploy started
build #481, branch main
-
Migrations applied
Deploy finished
zero downtime
Countdown docs
Tooltip docs
Tab to the button: the hint opens on focus, no mouse needed. Escape closes it.
Saves without closing the formData input
Input docs
Select docs
Combobox docs
Type to filter — accents are ignored, so "zurich" finds "Zürich". ↓ ↑ highlight, Enter picks, Escape closes and, pressed again, clears. Text that is not an option reverts to the previous selection when you leave the field.
Date Picker docs
Between today and the end of the year.
Calendar docs
Arrows move by day and week, Home/End go to the ends of the week, PageUp/PageDown change the month (with Shift, the year). Moving past the month loads the neighboring month and keeps focus on the day. Enter or Space picks.
Questionnaire docs
Keys 1–9 choose; Enter advances. "No" on the first question skips the one about areas. Resume saved answers
Label docs
Field docs
Used to sign in to your account.
Start with https://
Invalid address.
Textarea docs
Input Group docs
Toggle Group docs
OTP docs
Type and focus moves forward on its own; backspace in an empty box moves back. Pasting the whole code fills every box at once.
Toggle docs
Checkbox docs
Radio docs
Rating docs
Range docs
Navigation
Command docs
Last command: none
No results
Pagination docs
Click a page: the URL changes and the marker follows.
Each one starts at an edge and moves on its own, without touching the others. Move through the pages with ← → to watch the range collapse and reopen.
Tabs docs
Move between tabs with the ← → arrows. Home and End go to the ends, and the disabled tab is skipped.
Available on the Pro plan only.
Steps docs
- Account
- 2 Payment
- 3 Confirmation
- Repository cloned
- Migrations applied
- 3 Build
- 4 Deploy
Feedback
Skeleton docs
Loading docs
Progress docs
Alert docs
Toast docs
Empty docs
No projects yet
Projects hold your protocols and results. Create the first one to get started.
Layout & utilities
Divider docs
Above
Below
Aspect Ratio docs
Scroll Area docs
Resizable docs
Drag the divider, or Tab to it and use the arrows (Shift for 1% steps), Home and End. The first example's size is remembered in this browser.
Steps
1. Prepare samples · 2. Extract RNA · 3. PCR
Editor
Details of the selected step.
Chart
Amplification curve.
Log
Cycle 32: threshold reached.
Hero docs
Build in Go, without npm
chi, templ, Tailwind, HTMX and Alpine — with a design system of your own that you can reuse.