Selected layer
Structure
Responsive page layouts, content wrappers, grids, and panes with interchangeable layout presets.
data-ly-layout="bento"Configurable package workbench
Change layout, visual style, palette, and mode, then inspect how the foundational layers behave on the same semantic markup, then try lifecycle motion on separate shells.
Selected layer
Responsive page layouts, content wrappers, grids, and panes with interchangeable layout presets.
data-ly-layout="bento"The client workspace shows one set of project information across configurations. Focused demos isolate each library; component guides explain the APIs and copyable examples for adoption.
Example client workspace
Explore a sample project workspace built with all three libraries. Layout Style CSS arranges the content, UI Style Kit CSS controls its appearance, and Interactive Surface CSS styles control states.
Responsive structure, accessible visual identity, and state mechanics prepared as one maintainable system.
Layout laboratory
Choose a layout preset in the configuration menu to rearrange these examples. Reading and keyboard order stay the same. Explore the grids, panes, page recipes, Mosaic, and Action Bar layouts available in Layout Style CSS 3.2.3.
Base gridThis unqualified .ly-grid makes every personality's column rhythm visible.
header / nav / main / aside / footerMilestone flow stays central at every width.
header / nav / main / aside / footerThe reading path remains first in the source.
primary / secondary / actionsNorthstar · Beacon · Field Notes
Brand and interface system delivery.
content / media / actionsContent leads before media at narrow widths.
repeated direct childrenrepeated direct childrenOne bounded responsibility.
One bounded responsibility.
One bounded responsibility.
One bounded responsibility.
Bounded and centered.
Primary work stays first in reading and keyboard order.
Bounded content remains reachable.
Overscroll stays contained.
Keyboard focus remains visible.
Logical sizing supports writing modes.
ly-items-startly-items-centerly-items-endly-items-stretchly-justify-startly-justify-centerly-justify-endly-justify-betweenIdentity
Choose a visual style, palette, and display mode in the configuration menu. These examples use the selected preset’s component classes to show how it styles surfaces, text, and native HTML controls.
Active preset typography
The selected preset supplies font character, hierarchy, and color.
A plain paragraph establishes the surrounding document baseline.
Body copy uses the preset's published reading treatment.
Featured system
The same semantic structure accepts every active preset.
This preset publishes an optional custom-choice visual recipe; the fully visible native controls below remain the functional cross-preset baseline.
| Layer | Owner |
|---|---|
| Paint | UI Style Kit |
| Mechanics | Interactive Surface |
Extras come directly from the published manifest and render only for the active preset.
Manifest extras exposed here: none.
Native HTML controls
The theme styles the parts of native controls that browsers expose to CSS. System pickers and some popups retain their browser or operating-system appearance.
These inputs use native HTML without component classes. The active theme styles them, and the browser supplies their built-in behavior.
Range value:
Color, date/time, and file chooser dialogs also remain platform-owned; only their exposed host boxes and supported indicators are painted.
Details stay keyboard-operable without custom disclosure code.
Select this sentence to inspect the active native selection paint.
Supported Chromium/WebKit scrollbars inherit track and thumb tokens. Firefox keeps its platform scrollbar paint because the release does not claim a scrollbar-color contract.
Range progress and meter distinctions also vary by engine; track, thumb, and value styling applies only where the engine exposes a safe pseudo-element.
The hybrid-native policy paints safe boxes and exposed subparts while leaving inaccessible browser and operating-system popups untouched.
a, abbr, address, article, aside, b, bdi, bdo, blockquote, body, button, caption, cite, code, data, dd, del, details, dfn, dialog, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, html, i, input, ins, kbd, label, legend, li, main, mark, menu, meter, nav, ol, output, p, pre, progress, q, rp, rt, ruby, s, samp, search, section, select, small, span, strong, sub, summary, sup, table, tbody, td, textarea, tfoot, th, thead, time, tr, u, ul, var
area, audio, br, canvas, col, colgroup, embed, iframe, img, map, math, object, optgroup, option, picture, selectedcontent, slot, svg, video, wbr
audio-controls, color-picker-dialog, datalist-popup, date-time-picker-dialog, select-popup, video-controls
base, datalist, head, link, meta, noscript, script, source, style, template, title, track
accent-color, choice-control, color-scheme, dialog-backdrop, file-selector-button, list-marker, placeholder, selection, summary-marker
calendar-picker-indicator, color-swatch, number-spinner, progress-indeterminate, progress-track, progress-value, range-progress, range-thumb, range-track, scrollbar, search-cancel-button, select-indicator
color-picker-dialog, datalist-popup, date-time-picker-dialog, select-option-rendering, select-popup
datalist
--usk-native-control-min-block-size--usk-native-control-padding-block--usk-native-control-padding-inline--usk-native-subcontrol-padding-block--usk-native-subcontrol-padding-inline--usk-native-border-width--usk-native-field-gap--usk-native-panel-padding--usk-native-range-track-size--usk-native-range-track-background--usk-native-range-track-radius--usk-native-range-progress-background--usk-native-range-thumb-size--usk-native-range-thumb-background--usk-native-range-thumb-border--usk-native-range-thumb-radius--usk-native-file-button-background--usk-native-file-button-border--usk-native-file-button-radius--usk-native-file-button-shadow--usk-native-indicatorBehavior
Try hover, keyboard focus, pressed, busy, and disabled states. Compare which state takes precedence when several apply. UI Style Kit CSS supplies the appearance, and Layout Style CSS arranges the examples.
Variant comparisons use level 2 so paint depth stays constant.
Level 1 is deliberately subtle; level 3 mixes the active identity into the strongest depth.
Interactive Surface 1.7 renders one-shot semantic outcomes while the application keeps responsibility for accessible status text.
Choose an outcome to preview its feedback.
Toggle only documented ARIA and class hooks. Move the pointer onto the specimen for real hover, then hold the primary button for real :active.
Effective precedence:
Disabled > busy/loading > real active > persistent active/pressed/selected/current > real hover > base. Focus-visible remains independent.
Motion Style CSS / New to STE
Ten paired presets for entrances, exits, and coordinated content. Motion works on a dedicated shell; structure, appearance, and interaction feedback keep their own layers.
Shared component paint and interaction depth stay inside the motion shell.
Shared component paint and interaction depth stay inside the motion shell.
Shared component paint and interaction depth stay inside the motion shell.
Ready. Choose an effect and play a phase.
Reduced motion is respected automatically. Completed exits hide the specimen; the controls remain available to bring it back.
Isolated integration laboratory
The complete-stack examples follow your current Lab settings. Single- and two-library examples use fixed settings so you can compare what each combination provides.
Isolated proof
ui-style-kit-css + interactive-surface-css + layout-style-cssPaint, state mechanics, and intrinsic structure compose in the documented ownership order.
Isolated proof
ui-style-kit-css + interactive-surface-css + layout-style-css + @sanderson-technology-enterprises/motion-style-cssStructure, appearance, and interaction remain inside dedicated lifecycle motion shells.
Isolated proof
layout-style-cssIntrinsic layout primitives and adaptive grid geometry without companion paint or state mechanics.
Isolated proof
ui-style-kit-cssTheme paint, native controls, and component identity without structural or interaction dependencies.
Isolated proof
interactive-surface-cssPortable neutral paint and complete interaction mechanics from the standalone preset.
Isolated proof
@sanderson-technology-enterprises/motion-style-cssLifecycle effects on dedicated shells without layout, component paint, or interaction dependencies.
Isolated proof
ui-style-kit-css + layout-style-cssIntrinsic layout geometry and visual identity remain complementary without richer surface mechanics.
Isolated proof
interactive-surface-css + layout-style-cssIntrinsic responsive composition combines with the neutral standalone interaction presentation.
Isolated proof
ui-style-kit-css + interactive-surface-cssUI paint feeds one canonical interaction-state engine.
Install
Each option uses exact package versions and includes npm, bundler, and CDN instructions. Choose the libraries your application needs. Use one CSS library, combine the foundational layers, or add lifecycle motion. The React guide shows how the component integration connects these same CSS responsibilities without taking ownership of their styling.
Read the React integration guide for installed exports, props, and a working example.
Adoption path
layout-style-css + ui-style-kit-css + interactive-surface-css + @sanderson-technology-enterprises/motion-style-cssCompose structure, appearance, and interaction with optional lifecycle motion on separate shells.
npm install ui-style-kit-css@2.7.1 layout-style-css@3.2.3 interactive-surface-css@1.7.3 @sanderson-technology-enterprises/motion-style-css@1.0.0import "ui-style-kit-css/visual.css";
import "ui-style-kit-css/interactive-surface-theme.css";
import "interactive-surface-css/state-core.css";
import "layout-style-css";
import "@sanderson-technology-enterprises/motion-style-css/styles.css";
import { enter, exit, cancel, stagger } from "@sanderson-technology-enterprises/motion-style-css";
// Call enter(shell) after mount; cancel(shell) during cleanup.<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/dist/ui-style-kit.visual.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/styles/interactive-surface-theme.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/interactive-surface-css@1.7.3/state-core.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.3/dist/layout-style-css.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@sanderson-technology-enterprises/motion-style-css@1.0.0/src/motion.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/@sanderson-technology-enterprises/motion-style-css@1.0.0/src/index.js"></script>Adoption path
layout-style-css + ui-style-kit-css + interactive-surface-cssInstall the three CSS libraries used together in this Lab: layout, visual styling, and interaction states.
npm install ui-style-kit-css@2.7.1 layout-style-css@3.2.3 interactive-surface-css@1.7.3import "ui-style-kit-css/visual.css";
import "ui-style-kit-css/interactive-surface-theme.css";
import "interactive-surface-css/state-core.css";
import "layout-style-css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/dist/ui-style-kit.visual.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/styles/interactive-surface-theme.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/interactive-surface-css@1.7.3/state-core.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.3/dist/layout-style-css.min.css">Adoption path
@sanderson-technology-enterprises/motion-style-cssAdd lifecycle effects to a dedicated shell without adopting other CSS libraries.
npm install @sanderson-technology-enterprises/motion-style-css@1.0.0import "@sanderson-technology-enterprises/motion-style-css/styles.css";
import { enter, exit, cancel, stagger } from "@sanderson-technology-enterprises/motion-style-css";
// Call enter(shell) after mount; cancel(shell) during cleanup.<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@sanderson-technology-enterprises/motion-style-css@1.0.0/src/motion.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/@sanderson-technology-enterprises/motion-style-css@1.0.0/src/index.js"></script>Adoption path
layout-style-cssAdd responsive layouts while keeping your existing component appearance and interaction styling.
npm install layout-style-css@3.2.3import "layout-style-css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.3/dist/layout-style-css.min.css">Adoption path
ui-style-kit-cssAdd themes and styling for components and native controls. No layout library is required.
npm install ui-style-kit-css@2.7.1import "ui-style-kit-css/visual.css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/dist/ui-style-kit.visual.min.css">Adoption path
interactive-surface-cssStyle hover, focus, pressed, and disabled states with the package’s neutral standalone preset.
npm install interactive-surface-css@1.7.3import "interactive-surface-css/standalone-preset.css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/interactive-surface-css@1.7.3/standalone-preset.css">Adoption path
layout-style-css + ui-style-kit-cssCombine structural recipes with visual identity while retaining existing interaction behavior.
npm install layout-style-css@3.2.3 ui-style-kit-css@2.7.1import "ui-style-kit-css/visual.css";
import "layout-style-css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/dist/ui-style-kit.visual.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.3/dist/layout-style-css.min.css">Adoption path
layout-style-css + interactive-surface-cssCombine responsive geometry with standalone interaction surfaces and states.
npm install layout-style-css@3.2.3 interactive-surface-css@1.7.3import "interactive-surface-css/standalone-preset.css";
import "layout-style-css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/interactive-surface-css@1.7.3/standalone-preset.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.3/dist/layout-style-css.min.css">Adoption path
ui-style-kit-css + interactive-surface-cssCombine UI themes with interaction styling while keeping your existing layout system.
npm install ui-style-kit-css@2.7.1 interactive-surface-css@1.7.3import "ui-style-kit-css/visual.css";
import "ui-style-kit-css/interactive-surface-theme.css";
import "interactive-surface-css/state-core.css";<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/dist/ui-style-kit.visual.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.7.1/styles/interactive-surface-theme.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/interactive-surface-css@1.7.3/state-core.css">Directory
Adopt one layer or combine the four. Every library remains independently useful, documented, and versioned.
Responsive page layouts, content wrappers, grids, and panes with interchangeable layout presets.
v3.2.3Recommended entry pointlayout-style-cssComponent themes, color palettes, typography, and native HTML styling with light, dark, and high-contrast modes.
v2.7.1Recommended entry pointui-style-kit-css/visual.cssConsistent hover, focus-visible, active, pressed, and disabled states.
v1.7.3Recommended entry pointinteractive-surface-css/standalone-preset.cssThe newest addition to the STE web development system: paired entrances, exits, and choreography on dedicated shells, with reduced-motion support.
v1.0.0Recommended entry point@sanderson-technology-enterprises/motion-style-css/styles.css