<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Satyen Singh</title>
    <description>The latest articles on DEV Community by Satyen Singh (@ssingh1997).</description>
    <link>https://dev.to/ssingh1997</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F764690%2F719d988b-82f0-4ae8-a3e0-938e2d20823b.jpeg</url>
      <title>DEV Community: Satyen Singh</title>
      <link>https://dev.to/ssingh1997</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ssingh1997"/>
    <language>en</language>
    <item>
      <title>How to prevent an icon from being cut off?</title>
      <dc:creator>Satyen Singh</dc:creator>
      <pubDate>Tue, 30 Nov 2021 16:04:20 +0000</pubDate>
      <link>https://dev.to/ssingh1997/how-to-prevent-an-icon-from-being-cut-off-5781</link>
      <guid>https://dev.to/ssingh1997/how-to-prevent-an-icon-from-being-cut-off-5781</guid>
      <description>&lt;p&gt;I have created a timeline component in React and I am trying to include an icon on the timeline. However it is being cut off for some reason and is only showing half of the icon on either side. I know it is an overflow issue but I cannot pinpoint it. This is how it currently looks like: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsu08bi2t0vg4rnqqbft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsu08bi2t0vg4rnqqbft.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I add overflow: visible. It does show the full icon but then the timeline section encroaches on to the next section due its length.&lt;/p&gt;

&lt;p&gt;This is what happens I add overflow: visible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp6xl2uwtm2nzsomcjlv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp6xl2uwtm2nzsomcjlv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, it is encroaching on to Contact. &lt;/p&gt;

&lt;p&gt;How can I show the icon fully but also not have the timeline section encroach on to other sections?&lt;/p&gt;

&lt;p&gt;This is what I have so far.&lt;/p&gt;

&lt;p&gt;TimelineItem.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    import {Person, Mail} from "@material-ui/icons"

    const TimelineItem = ({ data }) =&amp;gt; (
        &amp;lt;div className="timeline-item"&amp;gt;
            &amp;lt;div className="timeline-item-content"&amp;gt;
                &amp;lt;span className="tag" style={{ background: data.category.color }}&amp;gt;
                    {data.category.tag}
                &amp;lt;/span&amp;gt;
                &amp;lt;time&amp;gt;{data.date}&amp;lt;/time&amp;gt;
                &amp;lt;p&amp;gt;{data.text}&amp;lt;/p&amp;gt;
                {data.link &amp;amp;&amp;amp; (
                    &amp;lt;a
                        href={data.link.url}
                        target="_blank"
                        rel="noopener noreferrer"
                    &amp;gt;
                        {data.link.text}
                    &amp;lt;/a&amp;gt;
                )}
                &amp;lt;div className="itemContainer"&amp;gt;
                &amp;lt;Mail classname="icon" /&amp;gt;
                &amp;lt;/div&amp;gt;
                {/* &amp;lt;span className="circle"/&amp;gt; */}
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    );

    export default TimelineItem;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Timeline.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   import TimelineData from './TimelineData';
    import TimelineItem from './TimelineItem'
    import './timeline.scss'


    export default function Timeline() {
        return (
            &amp;lt;div className="reactTimeline"&amp;gt;
                &amp;lt;h1&amp;gt;Satyen Singh Timeline&amp;lt;/h1&amp;gt;
                &amp;lt;div className="timeline-container" id="timeline"&amp;gt;
                    {TimelineData.map((data, idx) =&amp;gt; (
                        &amp;lt;TimelineItem data={data} key={idx} /&amp;gt;
                    ))}
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        )
    }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;timeline.scss&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
//   overflow-x: visible;
//   background-color: white;
}



h1 {
    text-align: center;
}

body {
    // overflow: visible;

//   line-height: 1.5;
}
.timeline-container {
    display: flex;
    flex-direction: column;
    position: relative;
    margin: 40px 0;
    // height: 200vh;
    overflow-x: visible;
    // position: relative;
  }
  .timeline-container::after {
    background-color: #e17b77;
    content: '';
    position: absolute;
    left: calc(50% - 2px);
    width: 4px;
    height: 100%;
    overflow-x: visible;
  }

  .timeline-item {
    display: flex;
    justify-content: flex-end;
    padding-right: 30px;
    position: relative;
    margin: 10px 0;
    width: 50%;
    // overflow-x: visible;
  }
  .timeline-item:nth-child(odd) {
    align-self: flex-end;
    justify-content: flex-start;
    padding-left: 30px;
    padding-right: 0;
    // overflow-x: visible;
  }

  .timeline-item-content {
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    border-radius: 5px;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding: 15px;
    position: relative;
    width: 400px;
    max-width: 70%;
    text-align: right;
    z-index: 2;
    overflow-x: visible;
  }
  .timeline-item-content::after {
    content: ' ';
    background-color: #fff;
    box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
    position: absolute;
    right: -7.5px;
    top: calc(50% - 7.5px);
    transform: rotate(45deg);
    width: 15px;
    height: 15px;
    // overflow-x: visible
  }
  .timeline-item:nth-child(odd) .timeline-item-content {
    text-align: left;
    align-items: flex-start;
    // overflow-x: visible
  }
  .timeline-item:nth-child(odd) .timeline-item-content::after {
    right: auto;
    left: -7.5px;
    box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
    overflow-x: visible
  }

  .timeline-item-content .tag {
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    top: 5px;
    left: 5px;
    letter-spacing: 1px;
    padding: 5px;
    position: absolute;
    text-transform: uppercase;
    overflow-x: visible;
  }
  .timeline-item:nth-child(odd) .timeline-item-content .tag {
    left: auto;
    right: 5px;
    overflow: visible;
  }
  .timeline-item-content time {
    color: #777;
    font-size: 12px;
    font-weight: bold;
  }
  .timeline-item-content p {
    font-size: 16px;
    line-height: 24px;
    margin: 15px 0;
    max-width: 250px;
  }
  .timeline-item-content a {
    font-size: 14px;
    font-weight: bold;
  }
  .timeline-item-content a::after {
    content: ' ►';
    font-size: 12px;
    overflow: visible;
  }
  .timeline-item-content .itemContainer {
    position: absolute;
    top: calc(50% - 10px);
    right: -40px;
    width: 20px;
    height: 20px;
    z-index: 100;
    overflow-x: visible;
  }
  .timeline-item:nth-child(odd) .timeline-item-content .itemContainer {
    right: auto;
    left: -40px;
    overflow-x: visible;
  }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I have added my entire code in a sandbox for reference: &lt;br&gt;
&lt;a href="https://codesandbox.io/s/vb2we?file=/src/App.jsx" rel="noopener noreferrer"&gt;https://codesandbox.io/s/vb2we?file=/src/App.jsx&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Prevent overflow but show all contents of section</title>
      <dc:creator>Satyen Singh</dc:creator>
      <pubDate>Mon, 29 Nov 2021 22:24:39 +0000</pubDate>
      <link>https://dev.to/ssingh1997/prevent-overflow-but-show-all-contents-of-section-3pcm</link>
      <guid>https://dev.to/ssingh1997/prevent-overflow-but-show-all-contents-of-section-3pcm</guid>
      <description>&lt;p&gt;Hello, I am new to React but I am trying to learn it in order to create a personal website. I am creating a "Timeline" section on my website followed by a "Contact" one. How can I prevent the Timeline section's contents from overflowing into the next section but also show all the contents of the Timeline section? . This is what it currently looks like: The blue portion is where the contact section starts&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Xnmnzc4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ravps5r8u0umx956jtgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Xnmnzc4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ravps5r8u0umx956jtgg.png" alt="Image description" width="880" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Edit: App.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function App() {
  const [menuOpen, setMenuOpen] = useState(false)
  return (
    &amp;lt;div className="app"&amp;gt;
      &amp;lt;Navbar menuOpen={menuOpen} setMenuOpen={setMenuOpen}/&amp;gt;
      &amp;lt;Menu menuOpen={menuOpen} setMenuOpen={setMenuOpen}/&amp;gt;
      &amp;lt;div className="sections"&amp;gt;
        &amp;lt;Intro/&amp;gt;
        &amp;lt;Timeline/&amp;gt;
        &amp;lt;Contact/&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;app.scss&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.app {
    height: 100vh;

    .sections {
        width: 100%;
        height: calc(100vh - 70px);
        // background-color: #1F1D36;
        position: relative;
        top: 70px;
        scroll-behavior: smooth;
        scroll-snap-type: y mandatory;
        scrollbar-width: none; // for firefox
        &amp;amp;::-webkit-scrollbar{
            display: none;
        }

        &amp;gt; * {
            width: 100vw;
            height: calc(100vh - 70px);
            scroll-snap-align: start;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;EDIT: I have created a new post with the entire sandbox linked to it&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/ssingh1997/how-to-prevent-an-icon-from-being-cut-off-5781"&gt;https://dev.to/ssingh1997/how-to-prevent-an-icon-from-being-cut-off-5781&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
  </channel>
</rss>
