diff --git a/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.mdx b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.mdx
new file mode 100644
index 00000000000..a49826c42b0
--- /dev/null
+++ b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.mdx
@@ -0,0 +1,17 @@
+import { ArgsTable } from '@storybook/addon-docs/blocks';
+import { EmptySearchResult } from './EmptySearchResult';
+
+# EmptySearchResult
+
+A styled container for a message, displayed when no search results are found. Used in the visualizations search, among others.
+
+### Usage
+
+```jsx
+import { EmptySearchResult } from '@grafana/ui';
+
+Could not find anything matching your query;
+```
+
+### Props
+
diff --git a/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.story.tsx b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.story.tsx
new file mode 100644
index 00000000000..dc57b6fb9b3
--- /dev/null
+++ b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.story.tsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import { EmptySearchResult } from './EmptySearchResult';
+import { withCenteredStory } from '@grafana/ui/src/utils/storybook/withCenteredStory';
+import mdx from './EmptySearchResult.mdx';
+
+export default {
+ title: 'Visualizations/EmptySearchResult',
+ component: EmptySearchResult,
+ decorators: [withCenteredStory],
+ parameters: {
+ docs: {
+ page: mdx,
+ },
+ },
+};
+
+export const Basic = () => {
+ return Could not find anything matching your query;
+};
diff --git a/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.tsx b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.tsx
index 7c1fe7ff4d6..b1f191e8519 100644
--- a/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.tsx
+++ b/packages/grafana-ui/src/components/EmptySearchResult/EmptySearchResult.tsx
@@ -1,11 +1,27 @@
-import React, { FC } from 'react';
+import React, { FC } from 'react';
+import { GrafanaTheme } from '@grafana/data';
+import { css } from 'emotion';
+import { useStyles } from '../../themes';
export interface Props {
children: JSX.Element | string;
}
const EmptySearchResult: FC = ({ children }) => {
- return {children}
;
+ const styles = useStyles(getStyles);
+ return {children}
;
};
+const getStyles = (theme: GrafanaTheme) => {
+ return {
+ container: css`
+ border-left: 3px solid ${theme.palette.blue80};
+ background-color: ${theme.colors.bg2};
+ padding: ${theme.spacing.d};
+ min-width: 350px;
+ border-radius: ${theme.border.radius.md};
+ margin-bottom: ${theme.spacing.xl};
+ `,
+ };
+};
export { EmptySearchResult };
diff --git a/packages/grafana-ui/src/components/EmptySearchResult/_EmptySearchResult.scss b/packages/grafana-ui/src/components/EmptySearchResult/_EmptySearchResult.scss
deleted file mode 100644
index 72e31b3828d..00000000000
--- a/packages/grafana-ui/src/components/EmptySearchResult/_EmptySearchResult.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.empty-search-result {
- border-left: 3px solid $info-box-border-color;
- background-color: $empty-list-cta-bg;
- padding: $spacer;
- min-width: 350px;
- border-radius: $border-radius;
- margin-bottom: $spacer * 2;
-}
diff --git a/packages/grafana-ui/src/components/index.scss b/packages/grafana-ui/src/components/index.scss
index 232206f2d4a..529ae351709 100644
--- a/packages/grafana-ui/src/components/index.scss
+++ b/packages/grafana-ui/src/components/index.scss
@@ -2,7 +2,6 @@
@import 'ColorPicker/ColorPicker';
@import 'CustomScrollbar/CustomScrollbar';
@import 'Drawer/Drawer';
-@import 'EmptySearchResult/EmptySearchResult';
@import 'FormField/FormField';
@import 'PanelOptionsGrid/PanelOptionsGrid';
@import 'RefreshPicker/RefreshPicker';