A wider screen, please

This page features interactive demos and side-by-side code samples that need at least 340 pixels of horizontal space. Please widen your browser window, or rotate your device, to continue.

Morpheus v0.1.0
v0.1.0

Input group#

Component <neo-input-group> is a layout wrapper that flushes leading and trailing addons (text, icons, buttons) against an <input> or <neo-textinput> under one merged border. DOM order decides placement; the group owns border, radius, and focus ring so the inner field drops its own.

Default
Currency prefix
Search
Search with shortcut
Search with submit
Toolbar
Disabled
Deactivate Rename Duplicate
Delete
New state Toggle autoplay
HTML CSS

The selected state's markup and its scoped CSS. The CSS is wrapped in <style>@scope { ... }</style> and applies to the preview only. Edits change the preview above, applied live while Sync is on, or when you click Patch or Replace. Patch morphs the preview; Replace swaps it outright.

Replace Patch

Signals

Datastar signals declared in the selected state's markup. Change a value to drive the preview, applied live while Sync is on, or when you click Patch.

Patch

Reference#

Slots #

NameDescription
defaultAn <input> or <neo-textinput>, paired with optional addons.
neo-iconA direct leading or trailing icon addon.
span / neo-kbd / neo-kbd-groupA direct passive text, unit, or shortcut addon.

CSS variables #

NameDefaultDescription
--neo-input-group-addon-padding0 0.6remInline padding of text and button addons.
--neo-input-group-addon-bgcolor-mix(in srgb, var(--page-fg) 4%, transparent)Background fill distinguishing addons from the input surface.

Examples#

Currency prefix#

A direct <span> addon gets a muted background while the group keeps one shared outer border. Click the addon and the caret lands in the input.

$

Username + domain#

Drop a <neo-combobox> in as a trailing addon to let the user pick from a short list of domains. The combobox's trigger adopts the addon background via a small demo-only override.

@gmail.com @outlook.com @yahoo.com @icloud.com @proton.me

Range bounds#

Several addons at once: a <neo-toggle> flipping between min and max on the left, a stack of <neo-select>s on the right (mass unit + rate denominator). The inner input takes the remaining horizontal space.

min maxmg g kg t/ second / minute / hour / day

Comparison#

A <neo-select> of comparison operators sits between two number-only <neo-textinput> fields, composing one condition. The operator is a fixed glyph-width column that opens on hover; the operands share the rest.

== != > < <= >=

A direct <neo-icon> addon is recognized automatically and stays flush with no separator, leaving the icon as a subtle inline mark.

Search with shortcut#

Combine an icon addon with a trailing pair of <neo-kbd> chips inside a text addon.

K

Search with submit#

Pair an input with an action button (copy, submit, toggle visibility…). A direct <neo-button> automatically drops its border and radius so it sits flush.

Toolbar#

A window menubar: each <neo-button> opens a <neo-menu> dropdown and the group merges them under one border.

FileNew file Open… Save
Quit
EditUndo Redo
Cut Copy Paste
ViewZoom in Zoom out
Light Dark System
SelectionSelect all Expand selection Shrink selection
Copy line up Copy line down

Disabled#

When the inner input goes disabled, the group mirrors that to its own aria-disabled and the whole assembly fades together.

$USD

Settings

Theme

Default Sunshine Ocean Matrix Rose

Accessibility

Playgrounds

Server Simulator