diff --git a/datahub-web-react/src/app/browse/BrowseResultCard.tsx b/datahub-web-react/src/app/browse/BrowseResultCard.tsx
index 990e0b6031..1ba54a30ab 100644
--- a/datahub-web-react/src/app/browse/BrowseResultCard.tsx
+++ b/datahub-web-react/src/app/browse/BrowseResultCard.tsx
@@ -2,6 +2,22 @@ import React from 'react';
import { Card, Row, Space, Typography } from 'antd';
import { Link } from 'react-router-dom';
import { ArrowRightOutlined, FolderOutlined } from '@ant-design/icons';
+import styled from 'styled-components';
+
+const styles = {
+ row: { padding: 8 },
+ title: { margin: 0 },
+};
+
+const ResultCard = styled(Card)`
+ && {
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ box-shadow: ${(props) => props.theme.styles['box-shadow']};
+ }
+ &&:hover {
+ box-shadow: ${(props) => props.theme.styles['box-shadow-hover']};
+ }
+`;
export interface BrowseResultProps {
url: string;
@@ -13,11 +29,11 @@ export interface BrowseResultProps {
export default function BrowseResultCard({ url, count, name, type }: BrowseResultProps) {
return (
-
-
+
+
-
+
{name}
@@ -30,7 +46,7 @@ export default function BrowseResultCard({ url, count, name, type }: BrowseResul
-
+
);
}
diff --git a/datahub-web-react/src/app/browse/BrowseResults.tsx b/datahub-web-react/src/app/browse/BrowseResults.tsx
index 7647284aeb..93ffbb2091 100644
--- a/datahub-web-react/src/app/browse/BrowseResults.tsx
+++ b/datahub-web-react/src/app/browse/BrowseResults.tsx
@@ -1,13 +1,20 @@
import React from 'react';
-import { Col, Divider, Pagination, Row } from 'antd';
+import styled from 'styled-components';
+import { Col, Divider, List, Pagination, Row } from 'antd';
import { Content } from 'antd/lib/layout/layout';
import { BrowseResultGroup, EntityType, Entity } from '../../types.generated';
import BrowseResultCard from './BrowseResultCard';
import { useEntityRegistry } from '../useEntityRegistry';
-const styles = {
- browseCard: { marginTop: 20 },
-};
+const EntityList = styled(List)`
+ && {
+ width: 100%;
+ margin-top: 12px;
+ padding: 16px 32px;
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ box-shadow: ${(props) => props.theme.styles['box-shadow']};
+ }
+`;
interface Props {
type: EntityType;
@@ -51,12 +58,19 @@ export const BrowseResults = ({
/>
))}
- {entities.map((entity) => (
-
- {entityRegistry.renderBrowse(type, entity)}
-
-
- ))}
+ {entities.length > 0 && (
+ (
+ <>
+ {entityRegistry.renderBrowse(type, item)}
+ {index < entities.length - 1 && }
+ >
+ )}
+ bordered
+ />
+ )}
props.theme.styles['homepage-background-upper-fade']},
+ 75%,
${(props) => props.theme.styles['homepage-background-lower-fade']}
);
`;
diff --git a/datahub-web-react/src/app/search/AllEntitiesSearchResults.tsx b/datahub-web-react/src/app/search/AllEntitiesSearchResults.tsx
index 776113b80b..7d0dbacbb9 100644
--- a/datahub-web-react/src/app/search/AllEntitiesSearchResults.tsx
+++ b/datahub-web-react/src/app/search/AllEntitiesSearchResults.tsx
@@ -28,7 +28,13 @@ export const AllEntitiesSearchResults = ({ query }: Props) => {
);
});
- const noResultsView =
;
+ const noResultsView = (
+
+ );
return (
<>
diff --git a/datahub-web-react/src/app/search/BrowseEntityCard.tsx b/datahub-web-react/src/app/search/BrowseEntityCard.tsx
index 5027fb9afe..314d4e79c8 100644
--- a/datahub-web-react/src/app/search/BrowseEntityCard.tsx
+++ b/datahub-web-react/src/app/search/BrowseEntityCard.tsx
@@ -1,32 +1,53 @@
import React from 'react';
import { Card, Typography, Row } from 'antd';
import { Link } from 'react-router-dom';
+import styled from 'styled-components';
import { useEntityRegistry } from '../useEntityRegistry';
import { PageRoutes } from '../../conf/Global';
import { IconStyleType } from '../entity/Entity';
import { EntityType } from '../../types.generated';
const styles = {
- card: { width: 360 },
+ row: { width: 360 },
title: { margin: 0 },
iconFlag: { right: '32px', top: '-28px' },
icon: { padding: '16px 24px' },
};
+const EntityCard = styled(Card)`
+ && {
+ margin-top: 16px;
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ box-shadow: ${(props) => props.theme.styles['box-shadow']};
+ }
+ &&:hover {
+ box-shadow: ${(props) => props.theme.styles['box-shadow-hover']};
+ }
+`;
+
+const FlagCard = styled(Card)`
+ &&& {
+ right: 32px;
+ top: -28px;
+ position: absolute;
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ }
+`;
+
export const BrowseEntityCard = ({ entityType }: { entityType: EntityType }) => {
const entityRegistry = useEntityRegistry();
return (
-
-
+
+
{entityRegistry.getCollectionName(entityType)}
-
+
{entityRegistry.getIcon(entityType, 24, IconStyleType.HIGHLIGHT)}
-
+
-
+
);
};
diff --git a/datahub-web-react/src/app/search/EntityGroupSearchResults.tsx b/datahub-web-react/src/app/search/EntityGroupSearchResults.tsx
index 235d8d5c19..c28651edd2 100644
--- a/datahub-web-react/src/app/search/EntityGroupSearchResults.tsx
+++ b/datahub-web-react/src/app/search/EntityGroupSearchResults.tsx
@@ -2,6 +2,7 @@ import { ArrowRightOutlined } from '@ant-design/icons';
import { Button, Card, Divider, List, Space, Typography } from 'antd';
import * as React from 'react';
import { useHistory } from 'react-router-dom';
+import styled from 'styled-components';
import { EntityType } from '../../types.generated';
import { IconStyleType } from '../entity/Entity';
import { useEntityRegistry } from '../useEntityRegistry';
@@ -11,11 +12,20 @@ const styles = {
header: { marginBottom: 20 },
resultHeaderCardBody: { padding: '16px 24px' },
resultHeaderCard: { right: '52px', top: '-40px', position: 'absolute' },
- resultList: { width: '100%', borderColor: '#f0f0f0', marginTop: '8px', padding: '16px 48px' },
seeAllButton: { fontSize: 18 },
resultsContainer: { width: '100%', padding: '40px 132px' },
};
+const ResultList = styled(List)`
+ &&& {
+ width: 100%;
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ margin-top: 8px;
+ padding: 16px 48px;
+ box-shadow: ${(props) => props.theme.styles['box-shadow']};
+ }
+`;
+
interface Props {
type: EntityType;
query: string;
@@ -28,7 +38,7 @@ export const EntityGroupSearchResults = ({ type, query, entities }: Props) => {
return (
-
{entityRegistry.getCollectionName(type)}
@@ -59,7 +69,6 @@ export const EntityGroupSearchResults = ({ type, query, entities }: Props) => {
)
}
- style={styles.resultList}
dataSource={entities}
split={false}
renderItem={(item, index) => (
diff --git a/datahub-web-react/src/app/search/EntitySearchResults.tsx b/datahub-web-react/src/app/search/EntitySearchResults.tsx
index 1980c9852d..563ecc2485 100644
--- a/datahub-web-react/src/app/search/EntitySearchResults.tsx
+++ b/datahub-web-react/src/app/search/EntitySearchResults.tsx
@@ -1,5 +1,6 @@
import React, { useState, useEffect } from 'react';
import { FilterOutlined } from '@ant-design/icons';
+import styled from 'styled-components';
import { Alert, Button, Card, Divider, List, Modal, Pagination, Row, Typography } from 'antd';
import { SearchCfg } from '../../conf';
import { useGetSearchResultsQuery } from '../../graphql/search.generated';
@@ -15,11 +16,20 @@ const styles = {
resultSummary: { color: 'gray', marginTop: '36px' },
resultHeaderCardBody: { padding: '16px 24px' },
resultHeaderCard: { right: '52px', top: '-40px', position: 'absolute' },
- resultList: { width: '100%', borderColor: '#f0f0f0', marginTop: '12px', padding: '16px 32px' },
paginationRow: { padding: 40 },
resultsContainer: { width: '100%', padding: '20px 132px' },
};
+const ResultList = styled(List)`
+ &&& {
+ width: 100%;
+ border-color: ${(props) => props.theme.styles['border-color-base']};
+ margin-top: 12px;
+ padding: 16px 32px;
+ box-shadow: ${(props) => props.theme.styles['box-shadow']};
+ }
+`;
+
interface Props {
type: EntityType;
query: string;
@@ -114,13 +124,12 @@ export const EntitySearchResults = ({ type, query, page, filters, onChangeFilter
{' '}
of {totalResults} results
-
{entityRegistry.getIcon(type, 36, IconStyleType.ACCENT)}
}
- style={styles.resultList}
dataSource={results}
split={false}
renderItem={(item, index) => (
diff --git a/datahub-web-react/src/conf/theme/theme_light.config.json b/datahub-web-react/src/conf/theme/theme_light.config.json
index ccdef5e051..06ff7e804a 100644
--- a/datahub-web-react/src/conf/theme/theme_light.config.json
+++ b/datahub-web-react/src/conf/theme/theme_light.config.json
@@ -6,7 +6,7 @@
"layout-body-background": "white",
"component-background": "white",
"body-background": "white",
- "border-color-base": "#dbdbdb",
+ "border-color-base": "#ececec",
"text-color": "fade(black, 85%)",
"text-color-secondary": "fade(black, 45%)",
"heading-color": "fade(black, 85%)",
@@ -15,7 +15,9 @@
"disabled-color": "fade(black, 25%)",
"steps-nav-arrow-color": "fade(black, 25%)",
"homepage-background-upper-fade": "#132935",
- "homepage-background-lower-fade": "#FFFFFF"
+ "homepage-background-lower-fade": "#FFFFFF",
+ "box-shadow": "0px 0px 30px 0px rgb(239 239 239)",
+ "box-shadow-hover": "0px 1px 0px 0.5px rgb(239 239 239)"
},
"assets": {
"logoUrl": "/assets/logo.png"
diff --git a/datahub-web-react/src/conf/theme/types.ts b/datahub-web-react/src/conf/theme/types.ts
index 9104f2135b..bbd529a0ad 100644
--- a/datahub-web-react/src/conf/theme/types.ts
+++ b/datahub-web-react/src/conf/theme/types.ts
@@ -16,6 +16,8 @@ export type Theme = {
'steps-nav-arrow-color': string;
'homepage-background-upper-fade': string;
'homepage-background-lower-fade': string;
+ 'box-shadow': string;
+ 'box-shadow-hover': string;
};
assets: {
logoUrl: string;
diff --git a/docker/quickstart-ember.sh b/docker/quickstart-ember.sh
index 1865b109b4..351ead0532 100755
--- a/docker/quickstart-ember.sh
+++ b/docker/quickstart-ember.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Quickstarts a Ember-serving variant of DataHub by pulling all images from dockerhub and then running the containers locally.
+# Quickstarts an Ember-serving variant of DataHub by pulling all images from dockerhub and then running the containers locally.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd $DIR && docker-compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.ember.yml pull && docker-compose -p datahub \
-f docker-compose.yml \