diff --git a/packages/bpk-component-loading-button/src/BpkLoadingButton.js b/packages/bpk-component-loading-button/src/BpkLoadingButton.js index 91edae0115..fc269bb008 100644 --- a/packages/bpk-component-loading-button/src/BpkLoadingButton.js +++ b/packages/bpk-component-loading-button/src/BpkLoadingButton.js @@ -113,36 +113,31 @@ const BpkLoadingButton = (props: LoadingProps) => { const loadingIcon = getLoadingIcon(props); const classNames = getClassName( - loading && 'bpk-loading-button', - loading && (link || linkOnDark) && 'bpk-loading-button--link', className, ); const iconClassNames = getClassName( 'bpk-loading-button__icon', - large && 'bpk-loading-button__icon--large', - iconOnly && - (large - ? 'bpk-loading-button__icon--large-icon-only' - : 'bpk-loading-button__icon--icon-only'), (link || linkOnDark) && 'bpk-loading-button__icon--link', ); return ( // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'. {loading && {loadingIcon}} + {child0} {child1} {child2} + ); }; diff --git a/packages/bpk-component-loading-button/src/BpkLoadingButton.module.scss b/packages/bpk-component-loading-button/src/BpkLoadingButton.module.scss index de2e63d9e4..ae09a0ac1e 100644 --- a/packages/bpk-component-loading-button/src/BpkLoadingButton.module.scss +++ b/packages/bpk-component-loading-button/src/BpkLoadingButton.module.scss @@ -17,46 +17,15 @@ */ @use '../../unstable__bpk-mixins/tokens'; +@use '../../unstable__bpk-mixins/utils'; .bpk-loading-button { - $button-padding-x: tokens.bpk-spacing-base() * 2; - $button-padding-y: tokens.bpk-spacing-lg() * 0.5; - $button-large-padding-y: tokens.bpk-spacing-lg(); - $button-icon-only-padding-x: tokens.$bpk-button-height - - tokens.$bpk-icon-size-sm; // this is in order to ensure icons are centred in icon-only buttons - /* stylelint-disable-next-line scss/operator-no-newline-after */ - $button-large-icon-only-padding-x: tokens.$bpk-button-large-height - - tokens.$bpk-icon-size-lg; // this is in order to ensure icons are centred in icon-only buttons - - position: relative; - overflow: hidden; - - &--link { - visibility: hidden; - } &__icon { - position: absolute; - display: inline-flex; + display: flex; visibility: visible; - z-index: 1; - width: calc(100% - #{$button-padding-x}); - height: calc(100% - #{$button-padding-y}); justify-content: center; align-items: center; - background-color: inherit; - - &--large { - height: calc(100% - #{$button-large-padding-y}); - } - - &--icon-only { - width: calc(100% - #{$button-icon-only-padding-x}); - } - - &--large-icon-only { - width: calc(100% - #{$button-large-icon-only-padding-x}); - } &--link { width: 100%; @@ -64,3 +33,9 @@ } } } + +.content-invisible { + @include utils.bpk-invisible(); + height: 0px; + display: block; +}