From d005d412ccb3ebef89de072fa43c2d4b11121db9 Mon Sep 17 00:00:00 2001 From: Daniel da Silva Date: Tue, 18 Mar 2025 16:34:18 +0000 Subject: [PATCH 1/2] Add meta images and app logo --- packages/client/src/App.tsx | 25 ++++- packages/client/src/components/ItemCard.tsx | 8 +- .../components/ItemCardThumbPlaceholder.tsx | 96 ++++++++++++++++++ .../client/src/pages/CollectionList/index.tsx | 1 + packages/client/src/theme/Container.ts | 9 -- packages/client/src/theme/index.ts | 61 ----------- .../client/static/meta/apple-touch-icon.png | Bin 0 -> 5172 bytes packages/client/static/meta/favicon.png | Bin 0 -> 1411 bytes packages/client/static/meta/icon-192.png | Bin 0 -> 5714 bytes packages/client/static/meta/icon-512.png | Bin 0 -> 17030 bytes packages/client/static/meta/icon.svg | 11 ++ packages/client/static/meta/meta-image.png | Bin 0 -> 56601 bytes 12 files changed, 135 insertions(+), 76 deletions(-) create mode 100644 packages/client/src/components/ItemCardThumbPlaceholder.tsx delete mode 100644 packages/client/src/theme/Container.ts delete mode 100644 packages/client/src/theme/index.ts create mode 100644 packages/client/static/meta/apple-touch-icon.png create mode 100644 packages/client/static/meta/favicon.png create mode 100644 packages/client/static/meta/icon-192.png create mode 100644 packages/client/static/meta/icon-512.png create mode 100644 packages/client/static/meta/icon.svg create mode 100644 packages/client/static/meta/meta-image.png diff --git a/packages/client/src/App.tsx b/packages/client/src/App.tsx index 4e0a22a..48b6dbd 100644 --- a/packages/client/src/App.tsx +++ b/packages/client/src/App.tsx @@ -8,12 +8,13 @@ import { Heading, Text, Badge, - Divider + Divider, + Image } from '@chakra-ui/react'; import { StacApiProvider } from '@developmentseed/stac-react'; import { PluginConfigProvider } from '@stac-manager/data-core'; -import theme from './theme'; +import theme from './theme/theme'; import { MainNavigation } from './components'; import Home from './pages/Home'; import CollectionList from './pages/CollectionList'; @@ -43,9 +44,23 @@ export const App = () => ( justifyContent='space-between' py={8} > - - STAC Manager - + + + + + STAC Manager + + diff --git a/packages/client/src/components/ItemCard.tsx b/packages/client/src/components/ItemCard.tsx index 2431cb8..a68b4e4 100644 --- a/packages/client/src/components/ItemCard.tsx +++ b/packages/client/src/components/ItemCard.tsx @@ -15,10 +15,12 @@ import { SkeletonText } from '@chakra-ui/react'; import SmartLink from './SmartLink'; +import { ItemCardThumbPlaceholder } from './ItemCardThumbPlaceholder'; interface ItemCardProps { imageSrc?: string; imageAlt?: string; + showPlaceholder?: boolean; title?: string; subtitle?: string; description?: string; @@ -30,6 +32,7 @@ interface ItemCardProps { export function ItemCard({ imageSrc, imageAlt, + showPlaceholder, title, subtitle, description, @@ -47,6 +50,8 @@ export function ItemCard({ ); }; + const shouldUsePlaceholder = showPlaceholder && !imageSrc; + return ( {imageSrc && @@ -54,12 +59,13 @@ export function ItemCard({ {imageAlt} )} + {shouldUsePlaceholder && } {(title || subtitle) && ( diff --git a/packages/client/src/components/ItemCardThumbPlaceholder.tsx b/packages/client/src/components/ItemCardThumbPlaceholder.tsx new file mode 100644 index 0000000..c34d311 --- /dev/null +++ b/packages/client/src/components/ItemCardThumbPlaceholder.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import { chakra, ChakraProps } from '@chakra-ui/react'; + +export function ItemCardThumbPlaceholder(props: ChakraProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/packages/client/src/pages/CollectionList/index.tsx b/packages/client/src/pages/CollectionList/index.tsx index e3ab957..9dde370 100644 --- a/packages/client/src/pages/CollectionList/index.tsx +++ b/packages/client/src/pages/CollectionList/index.tsx @@ -150,6 +150,7 @@ function CollectionList() { key={col.id} imageSrc={col.assets?.thumbnail?.href} imageAlt={col.assets?.thumbnail?.title} + showPlaceholder title={col.title || col.id} description={col.description} tags={col.keywords} diff --git a/packages/client/src/theme/Container.ts b/packages/client/src/theme/Container.ts deleted file mode 100644 index f7658a2..0000000 --- a/packages/client/src/theme/Container.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineStyleConfig } from "@chakra-ui/react"; - -const Container = defineStyleConfig({ - baseStyle: { - maxW: "70rem" - }, -}); - -export default Container; diff --git a/packages/client/src/theme/index.ts b/packages/client/src/theme/index.ts deleted file mode 100644 index 4435c7e..0000000 --- a/packages/client/src/theme/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -// import { extendTheme } from '@chakra-ui/react'; -// import Container from './Container'; -import theme from './theme'; - -export default theme; - -// export default extendTheme({ -// styles: { -// global: { -// body: { -// bgColor: "gray.50" -// }, -// "main > *:first-child": { -// mt: 0 -// }, -// a: { -// color: "blue.800", -// textDecoration: "underline", -// _hover: { -// bg: "yellow.100", -// textDecoration: "none", -// } -// }, -// h1: { -// fontWeight: "bold", -// fontSize: "4xl", -// my: "4" -// }, -// h2: { -// fontWeight: "bold", -// fontSize: "2xl", -// my: "4" -// }, -// h3: { -// fontWeight: "bold", -// fontSize: "xl", -// my: "4" -// }, -// h4: { -// fontWeight: "bold", -// fontSize: "l", -// my: "4" -// }, -// p: { -// my: "4" -// }, -// ul: { -// my: "4" -// }, -// legend: { -// fontWeight: "500" -// }, -// "fieldset label": { -// fontWeight: "400 !important" -// } -// }, -// }, -// components: { -// Container -// }, -// }); diff --git a/packages/client/static/meta/apple-touch-icon.png b/packages/client/static/meta/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc96af6f2c2a862733feaef5912da4bff28875a5 GIT binary patch literal 5172 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 X9Hg%ft!e;GJ|?rPmL`oxcmDbh&!4*@ literal 0 HcmV?d00001 diff --git a/packages/client/static/meta/favicon.png b/packages/client/static/meta/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..04fc3bd9340df7fd882a0a24260d9f7a0d1f03d3 GIT binary patch literal 1411 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 W5qICukAg?Q!0asEq}a&y;r{`@l|T~! literal 0 HcmV?d00001 diff --git a/packages/client/static/meta/icon-512.png b/packages/client/static/meta/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..1f27a53f09c7b77edb4907b7c49fe1ec721da2b9 GIT binary patch literal 17030 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 + + + + + + + + + + diff --git a/packages/client/static/meta/meta-image.png b/packages/client/static/meta/meta-image.png new file mode 100644 index 0000000000000000000000000000000000000000..cd46a285e61cabe3db7ad6d2fc77cc8429b3d975 GIT binary patch literal 56601 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 aNhIn<;ceGXzt7= Date: Wed, 19 Mar 2025 18:21:18 +0000 Subject: [PATCH 2/2] Add meta images documentation --- packages/client/README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/client/README.md b/packages/client/README.md index d920b12..320b73b 100644 --- a/packages/client/README.md +++ b/packages/client/README.md @@ -28,4 +28,24 @@ REACT_APP_THEME_SECONDARY_COLOR You must provide a value for the `REACT_APP_STAC_API` environment variable. This should be the URL of the STAC API you wish to interact with. -If the `REACT_APP_STAC_BROWSER` environment variable is not set, [Radiant Earth's STAC Browser](https://radiantearth.github.io/stac-browser/) will be used by default, which will connect to the STAC API specified in `REACT_APP_STAC_API`. \ No newline at end of file +If the `REACT_APP_STAC_BROWSER` environment variable is not set, [Radiant Earth's STAC Browser](https://radiantearth.github.io/stac-browser/) will be used by default, which will connect to the STAC API specified in `REACT_APP_STAC_API`. + +### Theming + +The Stac manager client allows for simple theming to give the instance a different look and feel. +The primary and secondary colors can be set using the `REACT_APP_THEME_PRIMARY_COLOR` and `REACT_APP_THEME_SECONDARY_COLOR` environment variables. These should be set to a valid CSS color value. + +The app has a default logo shown below, but it can be customized by replacing the necessary files. + +STAC Manager Logo + +The logo should be a square image with a size of 512x512 pixels and should be placed in the `static/meta` folder with the name `icon-512.png`. + +To ensure the branding is consistent, the remaining meta images (in the `static/meta` folder) should also be replaced: +``` +icon-192.png 192x192 +icon-512.png 512x512 +favicon.png 32x32 +apple-touch-icon.png 360x360 +meta-image.png 1920x1080 +```