diff --git a/packages/ui/build/storybook/__snapshots__/storyshots.test.js.snap b/packages/ui/build/storybook/__snapshots__/storyshots.test.js.snap
index 521214d25f..fc5a3d7596 100644
--- a/packages/ui/build/storybook/__snapshots__/storyshots.test.js.snap
+++ b/packages/ui/build/storybook/__snapshots__/storyshots.test.js.snap
@@ -314505,6 +314505,47 @@ exports[`Storyshots Components/Delta slightlyPositive 1`] = `
`;
+exports[`Storyshots Components/JobMeta default 1`] = `
+
{
+ const {
+ as: Component, className, meta, ...restProps
+ } = props;
+
+ const rootClassName = cx(css.root, className);
+
+ return (
+
+ {meta.map(({ title, content }, index) => {
+ const key = index;
+
+ return (
+
+ {title && (
{title}
)}
+ {content.map((item) => (
+ <>{item}>
+ ))}
+
+ );
+ })}
+
+ );
+};
+
+JobMeta.propTypes = {
+ /** Adopted child class name */
+ className: PropTypes.string,
+
+ /** Contrnt */
+ meta: PropTypes.arrayOf(PropTypes.shape({
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
+ content: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.element])),
+ })).isRequired,
+
+ /** Render component */
+ as: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
+};
+
+JobMeta.defaultProps = {
+ className: '',
+ as: 'div',
+};
diff --git a/packages/ui/src/components/job-meta/job-meta.module.css b/packages/ui/src/components/job-meta/job-meta.module.css
new file mode 100644
index 0000000000..1ea2c8f99c
--- /dev/null
+++ b/packages/ui/src/components/job-meta/job-meta.module.css
@@ -0,0 +1,19 @@
+.root {
+ padding: var(--space-xsmall) var(--space-small);
+ display: flex;
+}
+
+.item {
+ flex: 1 1 100%;
+}
+
+.itemTitle {
+ margin: 0;
+ font-size: 1em;
+ font-weight: bold;
+ color: var(--color-gray-light);
+}
+
+.item + .item {
+ margin-left: var(--space-xsmall);
+}
diff --git a/packages/ui/src/components/job-meta/job-meta.stories.jsx b/packages/ui/src/components/job-meta/job-meta.stories.jsx
new file mode 100644
index 0000000000..a856c9eb5b
--- /dev/null
+++ b/packages/ui/src/components/job-meta/job-meta.stories.jsx
@@ -0,0 +1,27 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { getWrapperDecorator } from '../../stories';
+import { JobMeta } from '.';
+
+const stories = storiesOf('Components/JobMeta', module);
+stories.addDecorator(getWrapperDecorator());
+
+stories.add('default', () => (
+
July 3th ,
+ ],
+ },
+ {
+ title: '#122',
+ content: [
+ July 4th
,
+ ],
+ },
+ ]}
+ />
+));