Layout Style CSS
structure and geometry
Responsive composition, spacing relationships, and page-level layout.
State-first interaction primitive
Inspect native controls as their pressed, selected, busy, current, and disabled states change in real time.
One system, clear boundaries
Each package remains useful on its own while owning one distinct part of the interface contract.
structure and geometry
Responsive composition, spacing relationships, and page-level layout.
visual paint and themes
Color, typography, borders, elevation, and theme expression.
interaction states
Focus, hover, active, pressed, selected, busy, and disabled behavior.
Live semantic proof
Use the controls, then inspect their native attributes. No pseudo-class is faked.
<button>
aria-pressed
aria-current="page"
Resting view
Selected view
aria-busy
disabled
.variant-primary
data-surface-level="2"
aria-label + icon-only
Built on browser semantics
Use buttons for actions and anchors for navigation so keyboard and assistive technology behavior is preserved.
Pair visual treatment with aria-pressed,
aria-selected, aria-current, or
aria-busy.
Disabled controls stay non-interactive, modal focus stays contained, and closing restores the initiating control.
Choose the right ownership boundary
Complete paint, geometry, and interaction behavior for a framework-agnostic page.
@import "interactive-surface-css/standalone-preset.css";
Interaction mechanics only when a host design system already owns presentation.
@import "interactive-surface-css/state-core.css";
The established package entry point for current consumers.
@import "interactive-surface-css/interactive-surface.css";
Advanced configuration
Edit a value, import a small CSS override, or export the current overrides for further testing.
--interactive-surface-bg
rgb(255 255 255)
--interactive-surface-focus-ring-color
rgb(30 91 240)
Reference
The repository README renders here with an embedded fallback for local and offline use.
Preparing the embedded README reference…