diff --git a/src/app/components/Cards.js b/src/app/components/Cards.js
index a11c1c18534d11366bbb1f5ddab789c2c21daccf..c338206c9c43505e6c34a16c4d0670934e5b22dd 100644
--- a/src/app/components/Cards.js
+++ b/src/app/components/Cards.js
@@ -110,15 +110,12 @@ export default function Cards(props) {
 
   return (
     <Card
-      className={`active:bg-main active:rounded-3xl transition ease-in-out ${props.page !== "recurso" && "items-center"}`}
+      className={`active:bg-main active:rounded-3xl transition ease-in-out 2xl:w-[330px] xl:w-[290px] lg:w-[270px] max-lg:w-[290px] ${props.page !== "recurso" && "items-center"}`}
       tabIndex="-1"
       sx={{
         display: "flex",
-        flexDirection: props?.horizontal ? "row" : "column",
-        // Modo de mudar o tamanho do card de acordo com a resolução da tela até separar os cards de recomendados com de recursos gerais
-        width: props?.width ?? (window.innerWidth >= 1536 ? 330 : window.innerWidth >= 1280 ? 290 : window.innerWidth >= 1024 ? 270 : 290),
-
-        height: props?.height ?? "auto",
+        flexDirection: "column",
+        height: "auto",
         backgroundColor: "transparent",
         boxShadow: "none",
       }}
@@ -131,8 +128,8 @@ export default function Cards(props) {
         tabIndex="0"
         className="hover:scale-[1.02] p-1 focus:border-secondary focus:border-4 border-gray-color transition-transform rounded-xl flex-shrink-0 aspect-video"
         sx={{
-          width: props?.thumbWidth ?? 327,
-          height: props?.thumbHeight ?? 181,
+          width: 327,
+          height: 181,
         }}
         component="img"
         image={
diff --git a/src/app/components/RecommendedCards.js b/src/app/components/RecommendedCards.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb846d9c0ccf83a1766e040e600c0bd6eb484eed
--- /dev/null
+++ b/src/app/components/RecommendedCards.js
@@ -0,0 +1,206 @@
+import * as React from "react";
+import Card from "@mui/material/Card";
+import CardHeader from "@mui/material/CardHeader";
+import CardMedia from "@mui/material/CardMedia";
+import Avatar from "@mui/material/Avatar";
+import Typography from "@mui/material/Typography";
+import Link from "next/link";
+import { mecredURL } from "@/axiosConfig";
+import { useMediaQuery } from "@mui/material";
+
+
+/**
+ * Funçao que monta os cards dos recursos
+ * @param {Number} id id do recurso
+ * @param {string} title título do recurso
+ * @param {string} author autor do recurso
+ * @param {string} avatar link avatar autor
+ * @param {string} image link imagem recurso
+ * @param {String} updated_at data da ultima modificação do recurso
+ */
+
+export default function RecommendedCards(props) {
+
+  /**
+   * 
+   * @param {String} type tipo de recurso 
+   * @returns caso o recurso não tenha retorna uma thumbnail padrão
+   */
+  const getDefaultThumbnail = (type) => {
+    let thumbnail_url;
+
+    switch (type) {
+      case "Apresentação":
+        thumbnail_url = "/images/thumb-red.png";
+        break;
+      case "Livro digital":
+        thumbnail_url = "/images/thumb-pdf.png";
+        break;
+      case "Texto":
+        thumbnail_url = "/images/thumb-pdf.png";
+        break;
+      case "Vídeo":
+        thumbnail_url = "/images/thumb-video.png";
+        break;
+      case "Áudio":
+        thumbnail_url = "/images/thumb-audio.png";
+        break;
+      case "Imagem":
+        thumbnail_url = "/images/thumb-red.png";
+        break;
+      case "Animação":
+        thumbnail_url = "/images/thumb-red.png";
+        break;
+      case "Jogo":
+        thumbnail_url = "/images/thumb-red.png";
+      case "Software Educacional":
+        thumbnail_url = "/images/thumb-red.png";
+        break;
+      default:
+        thumbnail_url = "/images/thumb-red.png";
+        break;
+    }
+
+    return thumbnail_url;
+  };
+
+  /**
+   * 
+   * @param {String} updated_time 
+   * @returns função responsável por cálcular o tempo percorrido desde a publicação do recurso na plataforma
+   */
+  const timeFunction = (updated_time) => {
+    let data = new Date(updated_time)
+    let dataAtual = new Date();
+
+    let time = dataAtual.getTime() - data.getTime();
+    let dia = Math.floor(time / (1000 * 60 * 60 * 24));
+    let ano;
+    let mes;
+
+    if ((ano = Math.floor(dia / 365)) > 0)
+      return <p> há {ano} {ano === 1 ? "ano" : "anos"} </p>
+    else if (((mes = Math.floor(dia / 31)) > 0))
+      return <p> há {mes} {mes === 1 ? "mês" : "meses"}</p>
+
+    if (dia === 0)
+      return <p>hoje</p>
+    return <p>há {dia} {dia === 1 ? "dia" : "dias"}</p>
+
+  }
+
+  function getRandomBg(id) {
+    const colors = [
+      "bg-secondary",
+      "bg-orange",
+      "bg-secondary-hover",
+      "bg-orange-hover",
+      "bg-violet",
+      "bg-pink",
+      "bg-red",
+      "bg-text-color",
+      "bg-text-color-click",
+      "bg-button-filters",
+      "bg-text-filter",
+      "bg-other-links",
+      "bg-blue-button",
+    ]
+
+    return colors[id % colors.length];
+  }
+
+  const isSm = useMediaQuery((theme) => theme.breakpoints.down('sm'));
+
+
+  return (
+    <Card
+      className={`active:bg-main active:rounded-3xl transition ease-in-out ${props.page !== "recurso" && "items-center"}`}
+      tabIndex="-1"
+      sx={{
+        display: "flex",
+        flexDirection: props?.horizontal ? "row" : "column",
+        width: "100%",
+        height: "auto",
+        backgroundColor: "transparent",
+        boxShadow: "none",
+      }}
+      component={Link}
+      href={`/recurso/${props["id"]}` + (props.collectionSource ? `?collectionId=${props.collectionSource}` : "")}
+    >
+
+      <CardMedia
+        id="conteudo"
+        tabIndex="0"
+        className="hover:scale-[1.02] p-1 focus:border-secondary focus:border-4 border-gray-color transition-transform rounded-xl flex-shrink-0 aspect-video"
+        sx={{
+          width: isSm ? "100%" : "230px",
+          height: "auto",
+        }}
+        component="img"
+        image={
+          props["image"] === null
+            ? getDefaultThumbnail(props["type"])
+            : mecredURL + props["image"]
+        }
+        alt="imagem"
+        title={props.title}
+      />
+      {
+        props.page === "recurso" ?
+          <>
+
+            <div className="flex flex-col ml-4 max-sm:ml-0 max-sm:justify-stretch">
+              <div className="line-clamp-2 text-lg text-main-text font-bold text-text-filter min-h-4 max-sm:w-full"> {props["title"]}  </div>
+
+              <div className=" flex flex-row ">
+                <div className="flex flex-col ">
+                  <div className="line-clamp-1 text-text-color text-sm font-light" >
+                    {props["author"]}
+                  </div>
+                  <div className="line-clamp-1 text-text-color text-sm font-light">
+                    {timeFunction(props.updated_at)}
+                  </div>
+                </div>
+              </div>
+
+            </div>
+          </>
+          :
+          <>
+            <div className="flex flex-row mt-4 mb-4 w-full justify-start ">
+              {props?.noAvatar || !props["avatar"] ? <div className={`flex items-center shrink-0 justify-center text-xl font-bold ml-1 text-main rounded-full h-[33px] w-[33px] ${getRandomBg(props["id"])}`} >{props["author"][0]}</div>
+                :
+                <img
+                  src={mecredURL + props["avatar"]}
+                  alt={props["author"]}
+                  className="w-[33px] h-[33px] object-cover rounded-full"
+
+                />
+
+              }
+              <div className="mx-2">
+                <div className="line-clamp-1 text-sm text-main-text font-bold text-text-filter mb- w-[100%] min-h-4"> {props["title"]}  </div>
+                <div className="flex flex-row">
+                  <div>
+                    <div className="line-clamp-1 text-text-color text-sm font-light" >
+                      {props["author"]}
+                    </div>
+                    <div className="line-clamp-1 text-text-color text-sm font-light">
+                      {timeFunction(props.updated_at)}
+                    </div>
+                  </div>
+                </div>
+              </div>
+
+            </div>
+
+          </>
+      }
+      {props?.homologa == "submitted" ?
+        <div className="text-main text-xs p-1 bg-blue-publish rounded-full flex justify-start">Em homologação</div>
+        :
+        null
+      }
+    </Card>
+  );
+}
diff --git a/src/app/components/ShareModal.js b/src/app/components/ShareModal.js
index 8c1203c62a0fb22e0b38028eb70988bad43fbfd1..eed0b790b2d378f991aa5bbb094d9a0a3d524574 100644
--- a/src/app/components/ShareModal.js
+++ b/src/app/components/ShareModal.js
@@ -90,4 +90,4 @@ export default function ShareModal({ open, onClose, title, link }) {
       </div>
     </Modal>
   );
-}
\ No newline at end of file
+}
diff --git a/src/app/perfil/[id]/components/ProfileCollections.js b/src/app/perfil/[id]/components/ProfileCollections.js
index ada012708a93c9f67753ec5a4f3b664f94cd54d2..ddbd94b77fd22158f42de456eb14138a4b35cac7 100644
--- a/src/app/perfil/[id]/components/ProfileCollections.js
+++ b/src/app/perfil/[id]/components/ProfileCollections.js
@@ -14,7 +14,6 @@ import EditCollectionModal from "./EditCollectionModal";
 import DeleteOutlinedIcon from '@mui/icons-material/DeleteOutlined';
 import ShareButton from "@/app/components/ShareButton";
 
-
 const ModalSucess = ({ open, onClose, modalOnClose }) => {
   return (
     <Modal open={open} onClose={onClose} className="grid place-items-center">
diff --git a/src/app/recurso/[id]/components/actionButtons.js b/src/app/recurso/[id]/components/actionButtons.js
index 0e9283689a98bec2e6ebf7c80a42cfe916f97605..c58b9b39a722a5310d63563fcde08584935ac10b 100644
--- a/src/app/recurso/[id]/components/actionButtons.js
+++ b/src/app/recurso/[id]/components/actionButtons.js
@@ -134,7 +134,7 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
         setCollectOpen(true)
       }
     },
-    // Botão de Compartilhar
+    //Botão de Compartilhar
     {
       name: "Compartilhar",
       icon: <ShareOutlinedIcon />,
@@ -143,7 +143,7 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
       },
       extraProps: {},
     },
-    // Botão de Reportar
+   // Botão de Reportar
     {
       name: reported ? "Reportado" : "Reportar",
       icon: reported ? <FlagIcon /> : <FlagOutlinedIcon />,
@@ -176,7 +176,7 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
 
   let buttonKey = 0;
   let genButton = (info) => (
-    !info ? null : <Button
+    !info ? null : info.name == "Compartilhar" ? <ShareModal buttonType="incolor" /> : <Button
       id="conteudo"
       key={buttonKey++}
       className=" first:bg-secondary group outline outline-1 outline-outlineColor group/button bg-white shadow-none flex justify-start rounded-xl p-1 m-1 normal-case text-sm min-w-min font-bold hover:bg-main-hover focus:bg-main-hover"
@@ -193,7 +193,6 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
     <>
       <DeleteModal open={deleteOpen} onClose={() => setDeleteOpen(false)} idLogin={userData["id"]} resourceId={learningObject.id}  />
       <HomologationModal open={submitOpen} onClose={() => setSubmitOpen(false)} name={learningObject.name} id={learningObject.submission_id} setSubmitted={setSubmitted}/>
-      <ShareModal open={shareOpen} onClose={() => setShareOpen(false)} title={"Compartilhar recurso"} link={window.location.origin + pathname}/>
       <ReportModal
         learningObject={learningObject}
         open={reportOpen}
diff --git a/src/app/recurso/[id]/components/relatedResources.js b/src/app/recurso/[id]/components/relatedResources.js
index 86c2f55d2ff07c14978564f2b870604923e31e66..bbe2c9b23471e9f741ec1dfcef7e7555507abf9a 100644
--- a/src/app/recurso/[id]/components/relatedResources.js
+++ b/src/app/recurso/[id]/components/relatedResources.js
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
 import Cards from "@/app/components/Cards";
 import { useMediaQuery } from "@mui/material";
 import Loading from "@/app/components/Loading";
+import RecommendedCards from "@/app/components/RecommendedCards";
 
 const NUM_RELATED = 12;
 
@@ -58,7 +59,7 @@ export default function RelatedResources({ learningObject }) {
                   className="my-3"
                   key={index}
               >
-                <Cards 
+                <RecommendedCards 
                   horizontal={!isSm}
                   noAvatar={!isSm}
                   id={item["id"]}
@@ -68,9 +69,6 @@ export default function RelatedResources({ learningObject }) {
                   image={item["thumbnail"]}
                   type={item["object_type"]}
                   updated_at={item["updated_at"]}
-                  thumbWidth={isSm ? "100%" : "230px"}
-                  thumbHeight="auto"
-                  width="100%"
                   page="recurso"
                 />
               </div>