diff --git a/src/@dvcorg/gatsby-theme-iterative/components/LayoutFooter/index.tsx b/src/@dvcorg/gatsby-theme-iterative/components/LayoutFooter/index.tsx index 86fbd7497f..0de31d3bd2 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/LayoutFooter/index.tsx +++ b/src/@dvcorg/gatsby-theme-iterative/components/LayoutFooter/index.tsx @@ -126,6 +126,12 @@ const footerListsData: Array = [ text: 'MLEM', icon: , target: '_blank' + }, + { + href: 'https://marketplace.visualstudio.com/items?itemName=Iterative.dvc', + text: 'VS Code Extension', + icon: , + target: '_blank' } ] } diff --git a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/index.tsx b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/index.tsx index 86a1d26aec..1ed666317f 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/index.tsx +++ b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/index.tsx @@ -73,7 +73,7 @@ export const OtherToolsPopup: React.FC = ({ }) => ( {menuData.products.map( - ({ title, iconClass, description, href, target }, i) => ( + ({ title, iconClass, description, href, target, titleImgClass }, i) => ( = ({

{title} + {titleImgClass && ( + + )} {/^https?:\/\//.test(href) && ( - + )}

{description}

diff --git a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/styles.module.css b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/styles.module.css index 1f27318395..93ce9b8c39 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/styles.module.css +++ b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/Nav/Popup/styles.module.css @@ -49,6 +49,10 @@ background-image: url("../../../../../../../static/img/mlem-icon.svg"); } +.vscodeIcon { + background-image: url("../../../../../../../static/img/vscode-icon.svg"); +} + .communityPopup { row-gap: 4px; width: 260px; @@ -69,7 +73,7 @@ grid-template-columns: 32px 216px; column-gap: 16px; - &:hover .titleIcon { + &:hover .titleExternalIcon { opacity: 1; } @@ -90,9 +94,18 @@ line-height: 24px; display: flex; align-items: center; + + &Icon { + margin-left: 4px; + margin-bottom: 2px; + width: 14px; + height: 14px; + background-size: contain; + background-repeat: no-repeat; + } } - .titleIcon { + .titleExternalIcon { opacity: 0; width: 16px; height: 16px; diff --git a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/alert.tsx b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/alert.tsx index 1ec4467f8d..2c5a5de7d1 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/alert.tsx +++ b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/alert.tsx @@ -1,6 +1,7 @@ import cn from 'classnames' import React from 'react' +import { ReactComponent as VscodeIcon } from '../../../../../static/img/vscode-icon.svg' import Link from '@dvcorg/gatsby-theme-iterative/src/components/Link' import * as styles from './styles.module.css' @@ -9,14 +10,18 @@ const LayoutAlert: React.FC<{ collapsed: boolean }> | false = ({ collapsed }) => (
- - 🚀 - {' '} - Our new tool for deployment,{' '} - - MLEM - - , has been released! +
+ + + +

+ Check out our{' '} + + new VS Code extension + {' '} + for experiment tracking and model development +

+
) diff --git a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/styles.module.css b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/styles.module.css index 8ba77f2294..4f13ca3035 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/styles.module.css +++ b/src/@dvcorg/gatsby-theme-iterative/components/LayoutHeader/styles.module.css @@ -115,6 +115,25 @@ height: 0; transform: translateY(-100%); } + + .text { + align-items: center; + display: flex; + justify-content: center; + overflow: hidden; + padding: 0 16px; + } + + p { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } + + span { + height: 22px; + margin-right: 8px; + } } .gitHubAlertLink { diff --git a/src/@dvcorg/gatsby-theme-iterative/components/data/menu.ts b/src/@dvcorg/gatsby-theme-iterative/components/data/menu.ts index 52bafda7f0..99cf39d014 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/data/menu.ts +++ b/src/@dvcorg/gatsby-theme-iterative/components/data/menu.ts @@ -19,8 +19,9 @@ interface ICommunityData { interface IProductsData { title: string + titleImgClass?: string description: string - iconClass: string + iconClass: string | null href: string img: string imgAlt: string @@ -136,6 +137,15 @@ const menuData: IMenuData = { img: '/img/dvc_icon-color--square_vector.svg', imgAlt: 'DVC logo' }, + { + title: 'VS Code Extension', + titleImgClass: styles.vscodeIcon, + description: 'Local ML model development and experiment tracking', + iconClass: null, + href: 'https://marketplace.visualstudio.com/items?itemName=Iterative.dvc', + img: '/img/dvc_icon-color--square_vector.svg', + imgAlt: 'DVC logo' + }, { title: 'CML', description: 'Open-source CI/CD for ML projects', diff --git a/src/@dvcorg/gatsby-theme-iterative/components/data/styles.module.css b/src/@dvcorg/gatsby-theme-iterative/components/data/styles.module.css index 58fe00dd4d..c1b4c42e2c 100644 --- a/src/@dvcorg/gatsby-theme-iterative/components/data/styles.module.css +++ b/src/@dvcorg/gatsby-theme-iterative/components/data/styles.module.css @@ -14,6 +14,10 @@ background-image: url("../../../../../static/img/mlem-icon.svg"); } +.vscodeIcon { + background-image: url("../../../../../static/img/vscode-icon.svg"); +} + .other { font-weight: 600; letter-spacing: 2px; diff --git a/src/components/Features/index.tsx b/src/components/Features/index.tsx index e9eca06cc1..3341eaca55 100644 --- a/src/components/Features/index.tsx +++ b/src/components/Features/index.tsx @@ -19,6 +19,22 @@ const FeaturesPage: React.FC = () => (
+
+ cluster +

VS Code Extension

+
+ Manage your data, run experiments, compare metrics, and visualize + plots, all in VS Code. Extend DVC capabilities and your ML + experimentation workflows directly into your IDE.{' '} + + Start using it now + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +