<?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: TharunKumar</title>
    <description>The latest articles on DEV Community by TharunKumar (@tharun07).</description>
    <link>https://dev.to/tharun07</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F388136%2F590dd47a-22e8-4f47-867c-02f154adf956.jpg</url>
      <title>DEV Community: TharunKumar</title>
      <link>https://dev.to/tharun07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tharun07"/>
    <language>en</language>
    <item>
      <title>Sample Portfolio</title>
      <dc:creator>TharunKumar</dc:creator>
      <pubDate>Tue, 28 May 2024 05:37:17 +0000</pubDate>
      <link>https://dev.to/tharun07/sample-portfolio-476c</link>
      <guid>https://dev.to/tharun07/sample-portfolio-476c</guid>
      <description>&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset="UTF-8"&amp;gt;
        &amp;lt;meta http-equiv="X-UA-Compatible" content="IE-edge"&amp;gt;
        &amp;lt;meta name = "viewport" content="width-device-width, intial-scale-1.0"&amp;gt;
        &amp;lt;title&amp;gt;
            Portfolio
        &amp;lt;/title&amp;gt;
        &amp;lt;link rel="stylesheet" href="stylesheet.css"&amp;gt;
        &amp;lt;link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'&amp;gt;
        &amp;lt;script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;header class="header"&amp;gt;
        &amp;lt;a href="#" class="logo"&amp;gt; Portfolio&amp;lt;/a&amp;gt;
        &amp;lt;nav class="navbar"&amp;gt;
            &amp;lt;a href="#" style="--i:1" class="active"&amp;gt;Home&amp;lt;/a&amp;gt;
            &amp;lt;a href="#"style="--i:2"&amp;gt;About&amp;lt;/a&amp;gt;
            &amp;lt;a href="#"style="--i:3"&amp;gt;Skill&amp;lt;/a&amp;gt;
            &amp;lt;a href="#"style="--i:4"&amp;gt;Portfolio&amp;lt;/a&amp;gt;
            &amp;lt;a href="#"style="--i:5"&amp;gt;Contact&amp;lt;/a&amp;gt;
        &amp;lt;/nav&amp;gt;
    &amp;lt;/header&amp;gt;
    &amp;lt;section class="home"&amp;gt;  
    &amp;lt;div class="home-content"&amp;gt;
        &amp;lt;h3&amp;gt;Hello, It's Me&amp;lt;/h3&amp;gt;
        &amp;lt;h1&amp;gt;Tharunkumar&amp;lt;/h1&amp;gt;
        &amp;lt;h3&amp;gt;And I'm a&amp;lt;span class="text"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;
        &amp;lt;p&amp;gt;I'm a web Designer with extensive exprerience for 2 years&amp;lt;/p&amp;gt;
        &amp;lt;br&amp;gt;expertise is to create and Website design,Frontend design and UI &amp;amp; UX&amp;lt;div&amp;gt;
      &amp;lt;div class="home-sci"&amp;gt;
        &amp;lt;a href="#"style="--i:7"&amp;gt;&amp;lt;i class='bx bxl-facebook'&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href="#"style="--i:8"&amp;gt;&amp;lt;i class='bx bxl-instagram'&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href="#"style="--i:9"&amp;gt;&amp;lt;i class='bx bxl-whatsapp'&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;a href="#" class="btn-box"&amp;gt; More About Me&amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;span class="home-imgHover"&amp;gt; &amp;lt;/span&amp;gt;
    &amp;lt;/section&amp;gt;  
    &amp;lt;section class="about" id="about"&amp;gt;
        &amp;lt;div class="about-img"&amp;gt;
          &amp;lt;img src="C:\Users\HP\Downloads\resources\resources\Futuristic Neon Blue And Pink Light Instagram Profile Picture.png"&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/section&amp;gt;

    &amp;lt;script src="main.js"&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  CSS
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'poppins' , sans-serif;
}
body
{
    color: #ededed;
}
.header
{
    position: fixed;
    top: 0;
    left: 0;
    width: 100;
    padding: 20px 10%;
    background: transparent;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
}
.logo {
    position: relative;
    font-size: 25px;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    cursor: default;
    opacity: 0;
    animation: slideRight 1s ease forwards;
}
.navbar a {
    display: inline-block;
    font-size: 25px;
    color: #fff;
    text-decoration: none;
    font-weight: 500;
    margin-left: 35px;
    transition: .3s;
    opacity: 0;
    animation: slideTop .5s ease forwards;
    animation-delay: calc(.2s * var(--i));
}
.navbar a:hover{
    color: #0ef;
}
.home {
    position: relative;
    width: 100%;
    justify-content: space-between;
    height: 100vh;
    background: url(https://wallpapers.com/images/hd/high-resolution-blue-background-1920-x-1080-manuazdf0v23me5t.jpg) no-repeat;
    background-size:  cover;
    background-position: center;
    padding: 70px 10%;
}
.home-content {
   max-width: 600px;
}
.home-content h3{
    font-size: 32px;
    font-weight: 700;
    opacity: 0;
    animation: slideBottom 1s ease forwards;
    animation-delay: .7s;
}
.home-content h3:nth-of-type(2){
    margin-bottom: 30px;
    animation: slideTop 1s ease forwards;
    animation: .7s;
}
.home-content h3 span {
    color: #0ef;
}
.home-content h1{
    font-size: 56px;
    font-weight: 700;
    margin: -3px 0;
    opacity: 0;
    animation: slideRight 1s ease forwards;
    animation-delay: .1s;
}
.home-content p{
    font-size: 20px;
    opacity: 0;
    animation: slideLeft 1s ease forwards;
    animation-delay: .1s;
}
.home-sci a{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    background: transparent;
    border: 2px solid #0ef;
    border-radius: 50%;
    font-size: 20px;
    color: #0ef;
    text-decoration: none;
    opacity: 0;
    transition: .5s ease;
    animation: slideLeft 1s ease forwards;
    animation-delay: calc(.2s * var(--i));
    margin: 30px 15px 30px 0;
}
.home-sci a:hover {
    background: #0ef;
    color: #081b29;
    box-shadow:  0 0 20px #0ef;
}
.btn-box {
    display: inline-block;
    padding: 12px 28px;
    background: #0ef;
    border-radius: 40px;
    font-size: 16px;
    color: #081b29;
    letter-spacing: 1px;
    text-decoration: none;
    font-weight: 600;
    opacity: 0;
    animation: slideTop 1s ease forwards;
    animation-delay: .2s;
    box-shadow: 0 0 5px #0ef,
    0 0 25px #0ef
}
.btn-box:hover {
    box-shadow: 0 0 5px cyan,
    0 0 25px cyan , 0 0 50px cyan,
    0 0 100px cyan, 0 0 200px cyan
}
@keyframes slideRight {
    0%{
        transform: translateX(-100px);
        opacity: 0;
    }
    100% {
        transform: translateX(0px);
        opacity: 1;
    }
}
@keyframes slideLeft {
    0%{
        transform: translateX(100px);
        opacity: 0;
    }
    100% {
        transform: translateX(0px);
        opacity: 1;
    }
}
@keyframes slideTop {
    0%{
        transform: translateY(100px);
        opacity: 0;
    }
    100% {
        transform: translateY(0px);
        opacity: 1;
    }
}
@keyframes slideBottom {
    0%{
        transform: translateY(-100px);
        opacity: 0;
    }
    100% {
        transform: translateY(0px);
        opacity: 1;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Calendar events using React MUI</title>
      <dc:creator>TharunKumar</dc:creator>
      <pubDate>Tue, 28 May 2024 05:23:07 +0000</pubDate>
      <link>https://dev.to/tharun07/calendar-events-using-react-mui-4n3o</link>
      <guid>https://dev.to/tharun07/calendar-events-using-react-mui-4n3o</guid>
      <description>&lt;p&gt;`import { useState } from "react";&lt;br&gt;
import FullCalendar, { formatDate } from "@fullcalendar/react";&lt;br&gt;
import dayGridPlugin from "@fullcalendar/daygrid";&lt;br&gt;
import timeGridPlugin from "@fullcalendar/timegrid";&lt;br&gt;
import interactionPlugin from "@fullcalendar/interaction";&lt;br&gt;
import listPlugin from "@fullcalendar/list";&lt;br&gt;
import {&lt;br&gt;
  Box,&lt;br&gt;
  List,&lt;br&gt;
  ListItem,&lt;br&gt;
  ListItemText,&lt;br&gt;
  Typography,&lt;br&gt;
  useTheme,&lt;br&gt;
  Dialog,&lt;br&gt;
  DialogTitle,&lt;br&gt;
  DialogContent,&lt;br&gt;
  DialogActions,&lt;br&gt;
  TextField,&lt;br&gt;
  Button,&lt;br&gt;
} from "@mui/material";&lt;br&gt;
import Header from "../../components/Header";&lt;br&gt;
import { tokens } from "../../theme";&lt;/p&gt;

&lt;p&gt;const Calendar = () =&amp;gt; {&lt;br&gt;
  const theme = useTheme();&lt;br&gt;
  const colors = tokens(theme.palette.mode);&lt;br&gt;
  const [currentEvents, setCurrentEvents] = useState([]);&lt;br&gt;
  const [isOpen, setIsOpen] = useState(false);&lt;br&gt;
  const [newEventTitle, setNewEventTitle] = useState("");&lt;br&gt;
  const [selectedDate, setSelectedDate] = useState(null);&lt;br&gt;
  const [deletingEventId, setDeletingEventId] = useState(null); // State to track the event being deleted&lt;/p&gt;

&lt;p&gt;const handleDateClick = (selected) =&amp;gt; {&lt;br&gt;
    setSelectedDate(selected.date);&lt;br&gt;
    setNewEventTitle("");&lt;br&gt;
    setIsOpen(true);&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const handleEventClick = (selected) =&amp;gt; {&lt;br&gt;
    setDeletingEventId(selected.event.id); // Set the event ID to be deleted&lt;br&gt;
    setIsOpen(true);&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const handleDeleteEvent = () =&amp;gt; {&lt;br&gt;
    // Filter out the event with the deletingEventId&lt;br&gt;
    setCurrentEvents(currentEvents.filter((event) =&amp;gt; event.id !== deletingEventId));&lt;br&gt;
    setIsOpen(false); // Close the confirmation dialog&lt;br&gt;
    setDeletingEventId(null); // Reset deletingEventId&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const handleAddEvent = () =&amp;gt; {&lt;br&gt;
    if (!selectedDate || !newEventTitle) return;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const newEvent = {
  id: `${new Date().toISOString()}-${newEventTitle}`,
  title: newEventTitle,
  start: selectedDate,
  allDay: true, // Assuming all events are all-day for simplicity
};

setCurrentEvents([...currentEvents, newEvent]);
setIsOpen(false);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;br&gt;
      &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;Box display="flex" justifyContent="space-between"&amp;gt;
    {/* CALENDAR SIDEBAR */}
    &amp;lt;Box
      flex="1 1 20%"
      backgroundColor={colors.primary[400]}
      p="15px"
      borderRadius="4px"
    &amp;gt;
      &amp;lt;Typography variant="h5"&amp;gt;Events&amp;lt;/Typography&amp;gt;
      &amp;lt;List&amp;gt;
        {currentEvents.map((event) =&amp;gt; (
          &amp;lt;ListItem
            key={event.id}
            sx={{
              backgroundColor: colors.greenAccent[500],
              margin: "10px 0",
              borderRadius: "2px",
            }}
          &amp;gt;
            &amp;lt;ListItemText
              primary={event.title}
              secondary={
                &amp;lt;Typography&amp;gt;
                  {formatDate(event.start, {
                    year: "numeric",
                    month: "short",
                    day: "numeric",
                  })}
                &amp;lt;/Typography&amp;gt;
              }
            /&amp;gt;
            &amp;lt;Button
              variant="outlined"
              color="secondary"
              onClick={() =&amp;gt; handleEventClick({ event })}
            &amp;gt;
              Delete
            &amp;lt;/Button&amp;gt;
          &amp;lt;/ListItem&amp;gt;
        ))}
      &amp;lt;/List&amp;gt;
    &amp;lt;/Box&amp;gt;

    {/* CALENDAR */}
    &amp;lt;Box flex="1 1 100%" ml="15px"&amp;gt;
      &amp;lt;FullCalendar
        height="75vh"
        plugins={[
          dayGridPlugin,
          timeGridPlugin,
          interactionPlugin,
          listPlugin,
        ]}
        headerToolbar={{
          left: "prev,next today",
          center: "title",
          right: "dayGridMonth,timeGridWeek,timeGridDay,listMonth",
        }}
        initialView="dayGridMonth"
        editable={true}
        selectable={true}
        selectMirror={true}
        dayMaxEvents={true}
        events={currentEvents} // Pass currentEvents to FullCalendar
        eventClick={handleEventClick}
        dateClick={handleDateClick}
        eventDidMount={(info) =&amp;gt; {
          info.el.style.backgroundColor = colors.greenAccent[500];
        }}
      /&amp;gt;
    &amp;lt;/Box&amp;gt;
  &amp;lt;/Box&amp;gt;

  {/* DELETE EVENT DIALOG */}
  &amp;lt;Dialog open={isOpen} onClose={() =&amp;gt; setIsOpen(false)}&amp;gt;
    &amp;lt;DialogTitle&amp;gt;Confirm Delete Event&amp;lt;/DialogTitle&amp;gt;
    &amp;lt;DialogContent&amp;gt;
      &amp;lt;Typography&amp;gt;
        Are you sure you want to delete this event?
      &amp;lt;/Typography&amp;gt;
    &amp;lt;/DialogContent&amp;gt;
    &amp;lt;DialogActions&amp;gt;
      &amp;lt;Button onClick={() =&amp;gt; setIsOpen(false)} color="primary"&amp;gt;
        Cancel
      &amp;lt;/Button&amp;gt;
      &amp;lt;Button onClick={handleDeleteEvent} color="secondary"&amp;gt;
        Delete
      &amp;lt;/Button&amp;gt;
    &amp;lt;/DialogActions&amp;gt;
  &amp;lt;/Dialog&amp;gt;

  {/* ADD EVENT DIALOG */}
  &amp;lt;Dialog open={isOpen &amp;amp;&amp;amp; !deletingEventId} onClose={() =&amp;gt; setIsOpen(false)}&amp;gt;
    &amp;lt;Box p="20px"&amp;gt;
      &amp;lt;Typography variant="h6" gutterBottom&amp;gt;
        Add New Event
      &amp;lt;/Typography&amp;gt;
      &amp;lt;TextField
        label="Event Title"
        value={newEventTitle}
        onChange={(e) =&amp;gt; setNewEventTitle(e.target.value)}
        fullWidth
        variant="outlined"
        margin="normal"
      /&amp;gt;
      &amp;lt;Button
        variant="contained"
        color="primary"
        onClick={handleAddEvent}
      &amp;gt;
        Add Event
      &amp;lt;/Button&amp;gt;
    &amp;lt;/Box&amp;gt;
  &amp;lt;/Dialog&amp;gt;
&amp;lt;/Box&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;);&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export default Calendar;&lt;br&gt;
`&lt;/p&gt;

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