What this family solves
Family-local loading-indicator family with a core Spinner component, adapter-owned context wrappers, and button-loading integration built on the same component contract.
Marwes documentation
Family-local loading-indicator family with a core Spinner component, adapter-owned context wrappers, and button-loading integration built on the same component contract.
Family-local loading-indicator family with a core Spinner component, adapter-owned context wrappers, and button-loading integration built on the same component contract.
Prefer context wrappers for common loading placements and use Spinner for deliberate custom compositions.
Compact loading feedback inside an action
Centered loading feedback for an empty region
Indeterminate loading indicator for custom contexts
Choose an adapter in the verified examples. The inventory below reflects each framework package exactly.
@marwes-ui/reactButtonSpinner, EmptyStateSpinner, Spinner
ButtonSpinnerProps, EmptyStateSpinnerProps, SpinnerProps
@marwes-ui/vueButtonSpinner, EmptyStateSpinner, Spinner
ButtonSpinnerProps, EmptyStateSpinnerProps, SpinnerProps
@marwes-ui/svelteButtonSpinner, EmptyStateSpinner, Spinner
ButtonSpinnerProps, EmptyStateSpinnerProps, SpinnerProps
These examples come from the same fixtures verified by the repository checks.
import { EmptyStateSpinner } from "@marwes-ui/react"
export function Example() {
return <EmptyStateSpinner decorative={false} ariaLabel="Loading dashboard" />
}<script setup lang="ts">
import { EmptyStateSpinner } from "@marwes-ui/vue"
</script>
<template>
<EmptyStateSpinner :decorative="false" aria-label="Loading dashboard" />
</template><script lang="ts">
import { EmptyStateSpinner } from "@marwes-ui/svelte"
</script>
<EmptyStateSpinner decorative={false} ariaLabel="Loading dashboard" />Spinner uses Marwes preset CSS and theme variables. Customize it through the theme passed to MarwesProvider; do not add a second component stylesheet. See the theming guide for configuration and token details.