import { forwardRef } from "react"; import { Link } from "@remix-run/react"; import { Image, type ImageLoader } from "@webstudio-is/image"; import { css, theme, textVariants } from "@webstudio-is/design-system"; const abbrStyle = css(textVariants.brandThumbnailLargeDefault, { display: "flex", alignItems: "center", alignSelf: "center", minHeight: 0, background: theme.colors.brandBackgroundProjectCardFront, WebkitBackgroundClip: "text", backgroundClip: "text", color: "transparent", outline: "none", "&:hover, &:focus": { ...textVariants.brandThumbnailLargeHover, transition: "100ms", }, }); // My Next Project > MN const getThumbnailAbbreviation = (title: string) => title .split(/\s+/) .slice(0, 2) .map((word) => word.charAt(0).toUpperCase()) .join(""); export const ThumbnailLinkWithAbbr = forwardRef< HTMLAnchorElement, { title: string; to: string } >(({ title, to }, ref) => { return ( {getThumbnailAbbreviation(title)} ); }); ThumbnailLinkWithAbbr.displayName = "ThumbnailLinkWithAbbr"; export const ThumbnailWithAbbr = forwardRef< HTMLDivElement, { title: string; onClick: React.MouseEventHandler } >(({ title, onClick }, ref) => { return (
{getThumbnailAbbreviation(title)}
); }); ThumbnailWithAbbr.displayName = "ThumbnailWithAbbr"; const imageContainerStyle = css({ position: "relative", background: theme.colors.brandBackgroundProjectCardFront, outline: "none", overflow: "hidden", transition: "transform 100ms", "&:hover, &:focus": { transform: "scale(1.1)", }, }); const imageStyle = css({ position: "absolute", top: 0, width: "100%", height: "100%", objectFit: "cover", }); export const ThumbnailLinkWithImage = forwardRef< HTMLAnchorElement, { name: string; to: string; imageLoader: ImageLoader } >(({ name, to, imageLoader }, ref) => { return ( ); }); ThumbnailLinkWithImage.displayName = "ThumbnailLinkWithImage"; export const ThumbnailWithImage = forwardRef< HTMLDivElement, { name: string; onClick: React.MouseEventHandler; imageLoader: ImageLoader; } >(({ name, onClick, imageLoader }, ref) => { return (
); }); ThumbnailWithImage.displayName = "ThumbnailWithImage";