LoadingOverlay
A loading indicator that fills it's parent.
Theming#
The Loader
component is a multipart component. The styling needs to be
applied to each part specifically.
To learn more about styling multipart components, visit the Chakra UI Component Style page.
Anatomy#
overlay
text
Default theme#
import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system'import { loadingOverlayAnatomy } from '@saas-ui/theme/anatomy'const { defineMultiStyleConfig, definePartsStyle } =createMultiStyleConfigHelpers(loadingOverlayAnatomy.keys)const baseStyle = definePartsStyle({overlay: {p: 4,},text: {},})const variantFill = definePartsStyle(() => {return {overlay: {flex: 1,height: '100%',bg: 'whiteAlpha.400',_dark: {bg: 'blackAlpha.400',},},}})const variantFullscreen = definePartsStyle(() => {return {overlay: {position: 'fixed',inset: 0,zIndex: 'modal',bg: 'white',_dark: {bg: 'gray.800',},},}})const variantOverlay = definePartsStyle(() => {return {overlay: {position: 'absolute',inset: 0,bg: 'whiteAlpha.300',_dark: {bg: 'blackAlpha.300',},},}})export const loadingOverlayTheme = defineMultiStyleConfig({defaultProps: {variant: 'fill',},baseStyle,variants: {fill: variantFill,fullscreen: variantFullscreen,overlay: variantOverlay,},})
Customize the theme#
import { extendTheme } from '@chakra-ui/react'import { theme as baseTheme } from '@saas-ui/theme'const theme = extendTheme({components: {SuiLoader: {baseStyle: {overlay: {bg: 'red.500',},},variants: {fill: {overlay: {bg: 'blue.500',},},},},},},baseTheme)
Was this helpful?