Are you searching for an attractive and responsive template for Android App Developer portfolio? If yes, then Neomorphic Portfolio Design for Android App Developers is a perfect fit for you!

Neomorphic Portfolio Design for Android App Developers Using HTML, CSS, and JavaScript (Free Source Code)

Are you searching for an attractive and responsive template for Android App Developer portfolio? If yes, then Neomorphic Portfolio Design for Android App Developers is a perfect fit for you!

Here is the free source code that complies with proper programming standards to ensure that it is simple to execute and apply to your personal brand.

GitHub Source: Neomorphic Portfolio Design for Android App Developers

Features

Smooth Neomorphic UI: It has a touch of soft 3D which makes it look realistic, the futuristic design and the elegance as well.
Fully Responsive Layout: The portfolio is perfectly compatible with mobile, tablet, and desktop versions for the enhanced user experience.
Interactive Animations: Easy to change colors, responsiveness, hover effects, subtle shadows, and smooth transitions to increase the interest of users.
Easy Customization: Flexibility is another appealing factor thanks to a clean and comprehensible format of the HTML code that is also commented; hence the changes of the color pallet, fonts, or sections can be made easily.

Technologies Used

  • HTML (Hypertext Markup Language)
  • CSS (Cascading Style Sheets)
  • JS (JavaScript)

Recommended for You

Video Tutorial

Steps to Build Neomorphic Portfolio

To implement Neomorphic Portfolio Design for Android App Developers follow these easy steps:

  • Simply include the HTML, CSS, and JavaScript files which have been provided in this project directory.
  • Use any browser to open the HTML file and view how the portfolio will look like.
  • Read the HTML and CSS files and change the text, images, and colors for it to suit your brand.
  • Improve the overall interactivity of this site by optimizing the JavaScript functions that are integrated on the source code provided.

HTML

Here is the HTML code for your index.html file:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>

    <!-- font awesome cdn link  -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">

    <!-- custom css file link  -->
    <link rel="stylesheet" href="style.css">
    <!-- <link rel="stylesheet" href="css/main.scss"> -->

</head>

<body id="body" onload="preloader()">

    <div id="loader">
    </div>
    <!-- header section starts  -->
    
    <header class="header">

        <div class="user">
            <img class="profilepic" src="images/profile.jpg" alt="Logan James Profile Picture">
            <h3>Logan James</h3>
            <p>Android App Developer</p>
        </div>

        <nav class="navbar">

            <a href="#home">home</a>
            <a href="#about">about</a>
            <a href="#education">education</a>
            <a href="#projects">projects</a>
            <a href="#contact">contact</a>
        </nav>

    </header>

    <!-- header section ends -->

    <div id="menu-btn" class="fas fa-bars"></div>

    <!-- theme toggler  -->
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.6 107.6" id="star-svg">
        <path fill="none" stroke="white" stroke-width="2" id="star-path" d="" />
    </svg>
    <div id="theme-toggler" class="fas fa-sun"></div>

    <!-- home section starts  -->
    <section class="home" id="home">

        <div class="content">
            <h3> <span class="underline">Logan</span> <span class="underline">James</span></h3>
            <p>i am an <span class="typing-text">Android App Developer</span></p>
            <a href="" class="btn">My CV</a>
        </div>

        <div class="share">
            <a href="#" class="fab fa-facebook-f"></a>
            <a href="#" class="fab fa-twitter"></a>
            <a href="#" class="fab fa-instagram"></a>
            <a target="-blank" href=""
                class="fab fa-linkedin"></a>
            <a target="-blank" href="" class="fab fa-github"></a>
        </div>

    </section>

    <!-- home section ends -->

    <!-- about section starts  -->

    <section class="about" id="about">
        
            <div class="left parleft" data-rate="-1"></div>
            <div class="right parright" data-rate="1"></div>
        <h1 class="heading"> <span class="underline">about</span> me </h1>

        <div class="row">

            <div class="box-container">
                <div class="box">
                    <h3>Expert in Android Development</h3>
                    <p>I specialize in designing and developing high-performance Android applications using Java and Kotlin. My focus is on creating seamless, user-friendly, and scalable mobile solutions.</p>
                </div>
                <div class="box">
                    <h3>Proficient in UI/UX Design</h3>
                    <p>I have a strong understanding of Material Design principles, ensuring that applications are visually appealing, intuitive, and provide an excellent user experience.</p>
                </div>
                <div class="box">
                    <h3>Experience with Firebase & APIs</h3>
                    <p>I integrate Firebase services, REST APIs, and third-party libraries to enhance app functionality, including real-time database, authentication, and push notifications.</p>
                </div>
                <div class="box">
                    <h3>Continuous Learning & Innovation</h3>
                    <p>I keep up with the latest trends in mobile development, regularly updating my skills to incorporate new technologies like Jetpack Compose and MVVM architecture.</p>
                </div>
            </div>
    
            <div class="content">
                <h3>my name is <span class="underline">Logan James</span></h3>
                <p>I am an experienced Android App Developer passionate about creating innovative and high-performing mobile applications. With a deep understanding of Java, Kotlin, and modern app development frameworks, I strive to build seamless and engaging mobile experiences.</p>
                <a target="-blank" href="" class="btn">contact me</a>
            </div>

        </div>

        <div class="row">

            <div class="progress">
                <h3 class="underline"> Android Development <span>90%</span> </h3>
                <div class="bar bar-1-1"><span></span></div>
            
                <h3 class="underline"> Java & Kotlin <span>85%</span> </h3>
                <div class="bar bar-1-2"><span></span></div>
            
                <h3 class="underline"> UI/UX & Material Design <span>80%</span> </h3>
                <div class="bar bar-1-3"><span></span></div>
            </div>
            
            <div class="progress">
                <h3 class="underline"> Firebase & APIs <span>95%</span> </h3>
                <div class="bar bar-2-1"><span></span></div>
            
                <h3 class="underline"> Jetpack Components (MVVM, LiveData) <span>80%</span> </h3>
                <div class="bar bar-2-2"><span></span></div>
            
                <h3 class="underline"> Database Management (SQLite, Room) <span>70%</span> </h3>
                <div class="bar bar-2-3"><span></span></div>
            </div>

        </div>

    </section>

    <!-- about section ends -->

    <!-- education section starts  -->

    <section class="education" id="education">

        <h1 class="heading"> my <span class="underline">Education</span> </h1>

        <div class="box-container">

            <div class="box">
                <i class="fas fa-school"></i>
                <h3>Bachelor's Degree in Computer Science</h3>
                <p>Completed a Bachelor's in Computer Science, gaining a strong foundation in programming, data structures, and software development.</p>
            </div>

            <div class="box">
                <i class="fas fa-code"></i>
                <h3>Android Development Certification</h3>
                <p>Earned a professional certification in Android App Development, covering Java, Kotlin, and modern Android frameworks.</p>
            </div>

            <div class="box">
                <i class="fas fa-laptop"></i>
                <h3>Mobile App Development Bootcamp</h3>
                <p>Attended an intensive bootcamp focused on mobile UI/UX, API integration, and advanced Android app functionalities.</p>
            </div>


        </div>

    </section>

    <!-- education section ends -->


    <!-- projects section starts  -->

    <section class="projects" id="projects">

        <h1 class="heading"> my <span class="underline">Projects</span> </h1>

        <div class="box-container">

            <div class="box">
                <img src="images/app1.webp" alt="">
                <div class="content">
                    <h3>Chemistry 10 Class</h3>
                </div>
            </div>

            <div class="box">
                <img src="images/app2.webp" alt="">
                <div class="content">
                    <h3>Driving School</h3>
                </div>
            </div>

            <div class="box">
                <img src="images/app3.webp" alt="">
                <div class="content">
                    <h3>Gauth</h3>
                </div>
            </div>

            <div class="box">
                <img src="images/app4.webp" alt="">
                <div class="content">
                    <h3>All SIM Codes</h3>
                </div>
            </div>


        </div>

    </section>
    </main>

    <!-- projects section ends -->

    <!-- contact section starts -->

    <section class="contact" id="contact">

        <h1 class="heading"> <span class="underline">contact</span> me </h1>

        <form action="">
            <input type="text" placeholder="your name" class="box">
            <input type="email" placeholder="your email" class="box">
            <input type="text" placeholder="subject" class="box">
            <textarea name="" class="box" placeholder="your message" id="" cols="30" rows="10"></textarea>
            <input type="submit" value="send message" class="btn">
        </form>

    </section>

    <!-- contact section ends -->

    <div class="credits"> By <span class="underline">Logan James</span></div>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/typed.js/2.0.11/typed.min.js"></script>

    <script>

        var type = new Typed('.typing-text', {
            strings: ['Android App Developer', 'Mobile UI/UX Designer', 'Java and Kotlin Developer'],
            typeSpeed: 100,
            loop: true
        });

        let themeColor = document.querySelectorAll('.theme-toggler span');
        themeColor.forEach(color => color.addEventListener('click', () => {
            let background = color.style.background;
            document.querySelector('body').style.background = background;
        }));

    </script>

    <script src="script.js"></script>
    <script>
  
    </script>

</body>

</html>

CSS

Here is the complete code for style.css file to style the Neomorphic Portfolio:

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700&display=swap');


:root{
    --green:#00acfc;                     
    --black:#fff;
    --light-color:#ddd;
    --bg-color:#222;
    --border:.1rem solid rgba(0,0,0,.4);
    --box-shadow:.4rem .4rem 1rem #111,
                -.4rem -.4rem 1rem #333;
    --box-shadow-inset:.4rem .4rem 1rem #111 inset,
                      -.4rem -.4rem 1rem #333 inset;
}

*{
    font-family: 'Poppins', sans-serif;
    margin:0; padding:0;
    box-sizing: border-box;
    outline: none; border:none;
    text-decoration: none;
    text-transform: capitalize;
    transition: .2s linear;
}
html{
    font-size: 62.5%;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body{
    background: var(--bg-color);
    padding-left: 30rem;
    scroll-behavior: smooth;
}
.disap{
    opacity: 0;
    animation: thanos 3s ease-out backwards;
}
@keyframes thanos {
    0%{
        opacity: 1;
    }
    100%{
        opacity: 0;
    }
}

.profilepic:hover{
    animation: profilep 2s infinite linear;
}
  #star-svg {
    position: fixed;
    top: 15%;
    left: 94%;
    width: 150px;
    height: 150px;
    margin: -75px 0 0 -75px;
  }
@keyframes profilep {
    0%{
        transform: rotate(0deg);
    }
    100%{
        transform: rotate(360deg);
    }
}
.underline {
    display: inline-block;
    position: relative;
    
  }
  .underline:hover{
    color: #00acfc;
  }
  .underline:after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: #dd0067;;
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
  }
  
  .underline:hover:after {
    transform: scaleX(1);
    transform-origin: bottom left;
  }
#loader{
    position: fixed;
    width: 100%;
    height: 100vh;
    background: #fff url(../image/1_CsJ05WEGfunYMLGfsT2sXA.gif) no-repeat center;
    z-index: 9999;
}
body.active{
    --black:#444;
    --light-color:#777;
    --bg-color:#e6e6e6;
    --border:.1rem solid rgba(0,0,0,.2);
    --box-shadow:.4rem .4rem 1rem #ccc,
                -.4rem -.4rem 1rem #fff;
    --box-shadow-inset:.4rem .4rem 1rem #ccc inset,
                      -.4rem -.4rem 1rem #fff inset;
}

section{
    min-height: 100vh;
    padding:2rem;
}

.btn{
    margin-top: 1rem;
    display: inline-block;
    padding:1rem 3.5rem;
    border-radius: .5rem;
    font-size: 1.7rem;
    cursor: pointer;
    background: none;
    color:var(--black);
    box-shadow: var(--box-shadow);
}

.btn:hover{
    box-shadow: var(--box-shadow-inset);
    color:var(--green);
}

.heading{
    text-align: center;
    font-size: 5rem;
    color:var(--black);
    text-transform: uppercase;
    padding-bottom: 2rem;
}

.heading span{
    color:var(--green);
    text-transform: uppercase;
}

.header{
    position: fixed;
    top:0; left: 0;
    z-index: 999;
    background: var(--bg-color);
    width: 30rem;
    border-right: var(--border);
    height: 100%;
    padding:2rem;
    text-align: center;
}

.header .user img{
    margin:1rem 0;
    border:1rem solid transparent;
    border-radius: 50%;
    height: 18rem;
    width: 18rem;
    box-shadow: var(--box-shadow);
}

.header .user h3{
    color:var(--black);
    font-size: 2.5rem;
}

.header .user p{
    color:var(--green);
    font-size: 1.5rem;
}

.header .navbar{
    padding-top: 1rem;
}

.header .navbar a{
    display: block;
    margin:1.5rem 0;
    padding:.7rem;
    border-radius: 5rem;
    font-size: 2rem;
    box-shadow: var(--box-shadow);
    color:var(--black);
}

.header .navbar a:hover{
    box-shadow: var(--box-shadow-inset);
    color: var(--green);
}

#menu-btn{
    position: fixed;
    top:1.5rem; left: 2rem;
    z-index: 1000;
    height: 5rem;
    width: 5rem;
    line-height: 5rem;
    border-radius: 50%;
    font-size: 2rem;
    cursor: pointer;
    box-shadow: var(--box-shadow);
    text-align: center;
    color:var(--black);
    background: var(--bg-color);
    display: none;
}

#menu-btn:hover{
    color:var(--green);
    box-shadow: var(--box-shadow-inset);
}

#theme-toggler{
    position: fixed;
    top:5.9rem; right: 5.05rem;
    z-index: 1000;
    height: 5rem;
    width: 5rem;
    line-height: 5rem;
    border-radius: 50%;
    font-size: 2rem;
    cursor: pointer;
    box-shadow: var(--box-shadow);
    text-align: center;
    color:var(--black);
    background: var(--bg-color);
}

#theme-toggler:hover{
    color:var(--green);
    box-shadow: var(--box-shadow-inset);
}

.home{
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.home .content h3{
    font-size: 7rem;
    color:var(--black);
    line-height: 1.1;
    text-transform: uppercase;
}

.home .content p{
    font-size: 2rem;
    color:var(--green);
    padding-bottom: .5rem;
}

.home .share{
    position: relative;
    top: 10rem;
    border-radius: .5rem;
    box-shadow: var(--box-shadow);
    padding:1rem;
}

.home .share a{
    height: 5rem;
    width: 5rem;
    line-height: 5rem;
    box-shadow: var(--box-shadow);
    margin:.5rem;
    font-size: 2rem;
    color:var(--black);
    border-radius: .5rem;
}

.home .share a:hover{
    box-shadow: var(--box-shadow-inset);
    color:var(--green);
}
.about-transition{
    animation: aboutAnimate 4s ease-in forwards;
}
#aboutimage{
    width: 79%;
    height: 100%;
    opacity: 0;
    animation: aboutimg 5s ease-out backwards;
}
@keyframes aboutimg {
    0%{
        opacity: 1;
    }
    100%{
        opacity: 0;
        display: none;
    }
}

@keyframes aboutAnimate {
    0%{
        opacity: 0;
        transform: translateX(-100%);
    }
    100%{
        opacity: 1;
        transform: translateX(0%);
    }
}
.about .row{
    display: flex;
    align-items: center;
    flex-wrap: wrap-reverse;
    gap:2rem;
}

.about .row .box-container{
    flex:1 1 40rem;
    display: flex;
    gap:1.5rem;
    flex-wrap: wrap;
}

.about .row .box-container .box{
    flex:1 1 18rem;
    text-align: center;
    padding:2rem;
    border-radius: .5rem;
    box-shadow: var(--box-shadow);
}

.about .row .box-container .box h3{
    font-size: 5rem;
    color:var(--black);
    line-height: 1.1;
}

.about .row .box-container .box p{
    font-size: 1.7rem;
    color:var(--light-color);
    padding:.5rem 0;
}

.about .row .content{
    flex:1 1 40rem;
}

.about .row .content h3{
    font-size: 3.5rem;
    color:var(--black);
    line-height: 1.8;
}

.about .row .content h3 span{
    color:var(--green);
}

.about .row .content p{
    font-size: 1.7rem;
    color:var(--light-color);
    line-height: 1.8;
    padding:1rem 0;
}

.about .row:nth-child(3){
    padding-top: 2rem;
}

.about .row .progress{
    flex:1 1 40rem;
}

.about .row .progress h3{
    color:var(--black);
    font-weight: normal;
    font-size: 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.about .row .progress .bar{
    box-shadow: var(--box-shadow);
    border-radius: 5rem;
    height:2rem;
    padding:.5rem;
    margin:1rem 0;
}

.about .row .progress .bar span{
    display: block;
    height: 100%;
    background: var(--green);
    border-radius: 5rem;
}

.about .row .progress .bar-1-1 span{
    width: 90%;
}

.about .row .progress .bar-1-2 span{
    width: 85%;
}

.about .row .progress .bar-1-3 span{
    width: 80%;
}

.about .row .progress .bar-2-1 span{
    width: 95%;
}

.about .row .progress .bar-2-2 span{
    width: 89%;
}

.about .row .progress .bar-2-3 span{
    width: 70%;
}

.education .box-container{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(27rem, 1fr));
    gap:2rem;
}

.education .box-container .box{
    padding:2rem;
    border-radius: .5rem;
    box-shadow: var(--box-shadow);
    position: relative;
    z-index: 0;
    overflow:hidden;
}

.education .box-container .box i{
    font-size:4rem;
    padding-bottom: 5rem;
    color:#fff;
}

.education .box-container .box h3{
    font-size:2rem;
    padding-bottom: 1rem;
    color:var(--black);
}

.education .box-container .box p{
    font-size:1.4rem;
    line-height: 1.8;
    color:var(--light-color);
}

.education .box-container .box::before{
    content: '';
    position: absolute;
    top:0; left: 0;
    height: 100%;
    width: 100%;
    background: var(--green);
    z-index: -1;
    clip-path: circle(9rem at 5% 0%);
    transition: .3s linear;
}

.education .box-container .box:hover::before{    
    clip-path: circle(100%);
}

.education .box-container .box:hover > *{
    color:#fff;
}

.projects .box-container{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(27rem, 1fr));
    gap:2rem;
}

.projects .box-container .box{
    height: 25rem;
    border-radius: .5rem;
    overflow:hidden;
    box-shadow: var(--box-shadow);
    position: relative;
    border:1rem solid transparent;
}

.projects .box-container .box img{
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.projects .box-container .box .content{
    position: absolute;
    top:0; left: 0;
    height: 100%;
    width: 100%;
    background: var(--bg-color);
    display: grid;
    place-items: center;
    transform: scale(0);
}

.projects .box-container .box:hover .content{
    transform: scale(1);
}

.projects .box-container .box .content h3{
    font-size: 2.5rem;
    color:var(--black);
    text-transform: uppercase;
    transform: translateY(-5rem);
    opacity: 0;
    transition-delay: .3s;
}

.projects .box-container .box:hover .content h3{
    transform: translateY(0rem);
    opacity: 1;
}

.contact form{
    margin:1rem auto;
    max-width: 70rem;
    border-radius: .5rem;
    box-shadow: var(--box-shadow);
    padding:2rem;
}

.contact form .box{
    padding:1rem 1.5rem;
    width:100%;
    background: none;
    color:var(--black);
    font-size: 1.6rem;
    text-transform: none;
    margin:.7rem 0;
    box-shadow: var(--box-shadow);
    border-radius: .5rem;
}

.contact form textarea{
    height: 20rem;
    resize: none;
}

.contact form .box:focus{
    box-shadow: var(--box-shadow-inset);
}

.credits{
    font-size: 2rem;
    text-align: center;
    padding:2.5rem 1rem;
    margin-top: 1rem;
    border-top: var(--border);
    color:var(--black);
}

.credits span{
    color: var(--green);
}

/* media queries  */

@media (max-width:991px){

    html{
        font-size: 55%;
    }

    body{
        padding-left: 0;
        overflow-x:hidden ;
    }

    .header{
        left:-110%;
    }

    .header.active{
        left:0%;
        transition: .4s linear;
    }

    #menu-btn{
        display: initial;
    }

    #star-svg{
        left: 84%;
        top: 10.5%;
    }

}

@media (max-width:450px){

    html{
        font-size: 50%;
    }
    body{
        padding-left: 0;
        overflow-x:hidden ;
    }
    .header{
        width:100%;
        border-right: 0;
    }

}
.left{
    position: absolute;
    left: 0;
    width: 65%;
    height: 180%;
    background: #fff;
    z-index: 2;
}
.right{
    position: absolute;
    right: 0;
    width: 50%;
    height: 180%;
    background: rgb(226, 37, 37);
    z-index: 2;
}
.parright{
    position: absolute;
    width: 50%;
    height: 180%;
    background: var(--bg-color);
    transition: transform 2.5s;
}

.parleft{
    position: absolute;
    width: 65%;
    height: 180%;
    background: var(--bg-color);
    transition: transform 3s;
}

JavaScript

Here is the complete code for script.js file to function the Neomorphic Portfolio:

let menu = document.querySelector('#menu-btn');
let header = document.querySelector('.header');

menu.onclick = () => {
  menu.classList.toggle('fa-times');
  header.classList.toggle('active');
}

window.onscroll = () => {
  menu.classList.remove('fa-times');
  header.classList.remove('active');
}

let themeToggler = document.querySelector('#theme-toggler');

themeToggler.onclick = () => {
  themeToggler.classList.toggle('fa-moon');
  if (themeToggler.classList.contains('fa-moon')) {
    document.body.classList.add('active');
  } else {
    document.body.classList.remove('active');
  }
}


var path = document.querySelector('#star-path');


var pathLength = path.getTotalLength();


path.style.strokeDasharray = pathLength + ' ' + pathLength;


path.style.strokeDashoffset = pathLength;


path.getBoundingClientRect();

// When the page scrolls...
window.addEventListener("scroll", function (e) {



  var scrollPercentage = (document.documentElement.scrollTop + document.body.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);

  // Length to offset the dashes
  var drawLength = pathLength * scrollPercentage;

  // Draw in reverse
  path.style.strokeDashoffset = pathLength - drawLength;

  // When complete, remove the dash array, otherwise shape isn't quite sharp
  // Accounts for fuzzy math
  if (scrollPercentage >= 0.99) {
    path.style.strokeDasharray = "none";

  } else {
    path.style.strokeDasharray = pathLength + ' ' + pathLength;
  }

});

var preload = document.getElementById('loader');
function preloader() {
  preload.style.display = 'none';
}
function snap() {
  var thanos = [document.getElementById('about'), document.getElementById('projects'),]
  const newThanos = thanos.map((x) => { return x.classList.add('disap'); });
}


window.addEventListener('scroll', function(){
  var target=[document.querySelector('.parright'),document.querySelector('.parleft')];
  var i=0, len=target.length;
  for(i; i<len; i++){
      var pos=window.pageYOffset * target[i].dataset.rate;
      
      target[i].style.transform='translate('+pos+'px , 0px)';
  }
})

Download Source Code

The free full source code has no copyright, and you can download it using the button below. You may use it in personal or professional portfolio as you wish.

Conclusion

This Neomorphic Portfolio Design is perfect, if you want to add some extra class to your portfolio. It will help you to set and enhance the presentation of the skills.

If you use this code on your web site and you think it helped you, please show your appreciation by linking to JV Source Codes. Also, join our channel on YouTube to access other resources like this one. Have any questions? Leave a comment below, let me assist you!

Download JV Source Codes

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *