Project reference
Responsive layout
Inlay's React and Vue renderers share the same mobile-first layout contract. A host application should not need renderer-specific CSS to keep a panel, form, table, media picker,…
Inlay's React and Vue renderers share the same mobile-first layout contract. A host application should not need renderer-specific CSS to keep a panel, form, table, media picker, import wizard, or widget dashboard usable.
Host setup
Include both renderer trees in the Tailwind CSS source scan when an application can render either adapter:
@source '../../node_modules/@inlayphp/*/src/**/*.{ts,tsx,vue}';
@source '../js/**/*.{ts,tsx,vue}';
@layer base {
html,
body {
max-width: 100%;
overflow-x: clip;
}
}The shared theme tokens (--inlay-*) remain the styling API. Override tokens
or provide a theme object once at the panel/root boundary; controls and
renderers consume those tokens rather than hard-coded colours or dimensions.
Layout rules
- Page shells use
min-h-dvh,min-w-0, and clip accidental page-level overflow without disabling a component's own scroll region. - Panels wrap their topbar on narrow screens; global search and brand labels shrink and truncate instead of forcing the viewport wider.
- Tables keep a
data-slot="table-scroll"horizontal scroll region. The page itself stays within the viewport while long cells, headings, and action controls remain readable inside that region. - Import steps scroll horizontally on small screens, and action rows wrap.
- Media picker headers and footers wrap, with the content area retaining its
own vertical scroll and using dynamic viewport height (
dvh). - Dashboard widgets are one column on phones. Declared spans apply from the medium breakpoint onward, so inline grid styles cannot create implicit columns or mobile overflow.
- Select menus are bounded by the viewport (
max-w-[calc(100vw-2rem)]) while preserving their intrinsic option text.
Every renderer exposes stable data-slot hooks and classNames props, so an
application can refine spacing or typography without coupling itself to an
internal component tree.