Skip to content
DevinimJS
Component catalog · 16 shipped primitives

Small building blocks. Clear behavior.

Every demo below is a real DevinimJS custom element. Inspect its behavior, listen to its events and copy the starting markup.

Light DOM + CKCSS

Components own behavior. CKCSS owns presentation. Your page owns data and persistence.

Featured live showcase

Try them
Foundation

Counter

Proxy state, native buttons and a polite output.

<dv-counter data-start="2"></dv-counter>
Navigation

Tabs

Light DOM panel one.

Panel two stays semantic.

Arrow keys move focus.

<dv-tabs data-label="Product details">...</dv-tabs>
Feedback

Modal

Focus-aware dialog that closes on Escape.

<dv-modal data-label="Details">...</dv-modal>
Forms

Field + confirm

<dv-field data-type="email" data-required="true">
Discovery

Search + autocomplete

<dv-autocomplete data-items='[...]'>
Data

Table + pagination

<dv-data-table data-columns='[...]' data-rows='[...]'>
Commerce

Product card + cart

<dv-product-card data-price="99">
Feedback/state

Toast stack + state

stack.show('Saved');

Complete manifest

All shipped elements use the same attribute/event contract. The machine-readable manifest is available for tooling and AI agents.

DevinimJS v0.5.1 components
TagCategoryPrimary behavior
dv-counterFoundationNumeric state and change event
dv-tabsNavigationARIA tabs and keyboard navigation
dv-disclosureNavigationAccessible show/hide content
dv-modalFeedbackEscape-aware dialog and focus restore
dv-toastFeedbackPolite status notification
dv-paginationDataOne-based page navigation
dv-dropdownNavigationLight DOM contextual menu
dv-searchDiscoveryQuery event for local or remote search
dv-product-cardCommerceAdd-to-cart event
dv-fieldFormsNative control and validation events
dv-confirmFormsExplicit consequential action
dv-autocompleteDiscoveryLocal-data combobox
dv-data-tableDataSemantic sortable JSON table
dv-cartCommercePage-owned cart presentation
dv-toast-stackFeedbackNotification queue
dv-stateAsyncLoading, empty, error and retry states
Open manifest JSON

This is a real component, not a screenshot. It owns focus and emits dv:open and dv:close.