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.3.0
v0.3.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
DeactivateRenameDuplicate
Delete
New state Toggle autoplay
HTMLCSS

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.

ReplacePatch

Signals

Datastar signals declared in the selected state's markup. Change a value to update 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, with a <neo-toggle> flipping between min and max on the left and a stack of <neo-select>s on the right (mass unit + rate denominator). The inner input takes the remaining horizontal space.

min maxmggkgt/ second/ minute/ hour/ day

Comparison#

A <neo-select> of comparison operators sits between 2 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 fileOpen…Save
Quit
EditUndoRedo
CutCopyPaste
ViewZoom inZoom out
LightDarkSystem
SelectionSelect allExpand selectionShrink selection
Copy line upCopy 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

DefaultSunshineOceanMatrixRose☀ ◐ ☾

Accessibility

Playgrounds

Server Simulator