diff --git a/packages/core/src/components/DismissableBanner/DismissableBanner.stories.tsx b/packages/core/src/components/DismissableBanner/DismissableBanner.stories.tsx
index 62760f72fb..148e7b6803 100644
--- a/packages/core/src/components/DismissableBanner/DismissableBanner.stories.tsx
+++ b/packages/core/src/components/DismissableBanner/DismissableBanner.stories.tsx
@@ -100,3 +100,15 @@ export const WithLink = () => (
);
+export const Fixed = () => (
+
+);
diff --git a/packages/core/src/components/DismissableBanner/DismissableBanner.tsx b/packages/core/src/components/DismissableBanner/DismissableBanner.tsx
index 747ed06b37..181eddcad2 100644
--- a/packages/core/src/components/DismissableBanner/DismissableBanner.tsx
+++ b/packages/core/src/components/DismissableBanner/DismissableBanner.tsx
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import React, { FC, ReactNode, useState, useEffect } from 'react';
+import React, { ReactNode, useState, useEffect } from 'react';
import { useApi, storageApiRef } from '@backstage/core-api';
import { useObservable } from 'react-use';
import classNames from 'classnames';
@@ -27,12 +27,17 @@ import Close from '@material-ui/icons/Close';
const useStyles = makeStyles((theme: BackstageTheme) => ({
root: {
- position: 'relative',
padding: theme.spacing(0),
- marginBottom: theme.spacing(6),
- marginTop: -theme.spacing(3),
+ marginBottom: theme.spacing(0),
+ marginTop: theme.spacing(0),
display: 'flex',
flexFlow: 'row nowrap',
+ },
+ // showing on top
+ topPosition: {
+ position: 'relative',
+ marginBottom: theme.spacing(6),
+ marginTop: -theme.spacing(3),
zIndex: 'unset',
},
icon: {
@@ -45,6 +50,10 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({
message: {
display: 'flex',
alignItems: 'center',
+ color: theme.palette.banner.text,
+ '& a': {
+ color: theme.palette.banner.link,
+ },
},
info: {
backgroundColor: theme.palette.banner.info,
@@ -58,9 +67,15 @@ type Props = {
variant: 'info' | 'error';
message: ReactNode;
id: string;
+ fixed?: boolean;
};
-export const DismissableBanner: FC = ({ variant, message, id }) => {
+export const DismissableBanner = ({
+ variant,
+ message,
+ id,
+ fixed = false,
+}: Props) => {
const classes = useStyles();
const storageApi = useApi(storageApiRef);
const notificationsStore = storageApi.forBucket('notifications');
@@ -88,9 +103,13 @@ export const DismissableBanner: FC = ({ variant, message, id }) => {
return (