Deploy Pertama
539
assets/css/styles.css
Normal file
@@ -0,0 +1,539 @@
|
||||
|
||||
/*===== GOOGLE FONTS =====*/
|
||||
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap");
|
||||
/*===== VARIABLES CSS =====*/
|
||||
:root {
|
||||
--header-height: 3rem;
|
||||
--font-semi: 600;
|
||||
/*===== Colores =====*/
|
||||
/*Purple 260 - Red 355 - Blue 224 - Pink 340*/
|
||||
/* HSL color mode */
|
||||
--hue-color: 224;
|
||||
--first-color: hsl(var(--hue-color), 89%, 60%);
|
||||
--second-color: hsl(var(--hue-color), 56%, 12%);
|
||||
/*===== Fuente y tipografia =====*/
|
||||
--body-font: 'Poppins', sans-serif;
|
||||
--big-font-size: 2rem;
|
||||
--h2-font-size: 1.25rem;
|
||||
--normal-font-size: .938rem;
|
||||
--smaller-font-size: .75rem;
|
||||
/*===== Margenes =====*/
|
||||
--mb-2: 1rem;
|
||||
--mb-4: 2rem;
|
||||
--mb-5: 2.5rem;
|
||||
--mb-6: 3rem;
|
||||
/*===== z index =====*/
|
||||
--z-back: -10;
|
||||
--z-fixed: 100;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 968px) {
|
||||
:root {
|
||||
--big-font-size: 3.5rem;
|
||||
--h2-font-size: 2rem;
|
||||
--normal-font-size: 1rem;
|
||||
--smaller-font-size: .875rem;
|
||||
}
|
||||
}
|
||||
|
||||
/*===== BASE =====*/
|
||||
*, ::before, ::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: var(--header-height) 0 0 0;
|
||||
font-family: var(--body-font);
|
||||
font-size: var(--normal-font-size);
|
||||
color: var(--second-color);
|
||||
}
|
||||
|
||||
h1, h2, p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*===== CLASS CSS ===== */
|
||||
.section-title {
|
||||
position: relative;
|
||||
font-size: var(--h2-font-size);
|
||||
color: var(--first-color);
|
||||
margin-top: var(--mb-2);
|
||||
margin-bottom: var(--mb-4);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.section-title::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 64px;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
|
||||
.section {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/*===== LAYOUT =====*/
|
||||
.bd-grid {
|
||||
max-width: 1024px;
|
||||
display: grid;
|
||||
margin-left: var(--mb-2);
|
||||
margin-right: var(--mb-2);
|
||||
}
|
||||
|
||||
.l-header {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: var(--z-fixed);
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 4px rgba(146, 161, 176, 0.15);
|
||||
}
|
||||
|
||||
/*===== NAV =====*/
|
||||
.nav {
|
||||
height: var(--header-height);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-weight: var(--font-semi);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.nav__menu {
|
||||
position: fixed;
|
||||
top: var(--header-height);
|
||||
right: -100%;
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
padding: 2rem;
|
||||
background-color: var(--second-color);
|
||||
transition: .5s;
|
||||
}
|
||||
}
|
||||
|
||||
.nav__item {
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
|
||||
.nav__link {
|
||||
position: relative;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nav__link:hover {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav__link:hover::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 100%;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
|
||||
.nav__logo {
|
||||
color: var(--second-color);
|
||||
}
|
||||
|
||||
.nav__toggle {
|
||||
color: var(--second-color);
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*Active menu*/
|
||||
.active::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 100%;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
|
||||
/*=== Show menu ===*/
|
||||
.show {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/*===== HOME =====*/
|
||||
.home {
|
||||
position: relative;
|
||||
row-gap: 5rem;
|
||||
padding: 4rem 0 5rem;
|
||||
}
|
||||
|
||||
.home__data {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.home__title {
|
||||
font-size: var(--big-font-size);
|
||||
margin-bottom: var(--mb-5);
|
||||
}
|
||||
|
||||
.home__title-color {
|
||||
color: var(--first-color);
|
||||
}
|
||||
|
||||
.home__social {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.home__social-icon {
|
||||
width: max-content;
|
||||
margin-bottom: var(--mb-2);
|
||||
font-size: 1.5rem;
|
||||
color: var(--second-color);
|
||||
}
|
||||
|
||||
.home__social-icon:hover {
|
||||
color: var(--first-color);
|
||||
}
|
||||
|
||||
.home__img {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
.home__blob {
|
||||
fill: var(--first-color);
|
||||
}
|
||||
|
||||
.home__blob-img {
|
||||
width: 360px;
|
||||
}
|
||||
|
||||
/*BUTTONS*/
|
||||
.button {
|
||||
display: inline-block;
|
||||
background-color: var(--first-color);
|
||||
color: #fff;
|
||||
padding: .75rem 2.5rem;
|
||||
font-weight: var(--font-semi);
|
||||
border-radius: .5rem;
|
||||
transition: .3s;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
box-shadow: 0px 10px 36px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
/* ===== ABOUT =====*/
|
||||
.about__container {
|
||||
row-gap: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.brief__container {
|
||||
row-gap: 2rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.about__subtitle {
|
||||
margin-bottom: var(--mb-2);
|
||||
}
|
||||
|
||||
.brief {
|
||||
text-align: left;
|
||||
}
|
||||
.about__img {
|
||||
justify-self: center;
|
||||
}
|
||||
|
||||
.about__img img {
|
||||
width: 200px;
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
/* ===== SKILLS =====*/
|
||||
.skills__container {
|
||||
row-gap: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.skills__subtitle {
|
||||
margin-bottom: var(--mb-2);
|
||||
}
|
||||
|
||||
.skills__text {
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
|
||||
.skills__data {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
font-weight: var(--font-semi);
|
||||
padding: .5rem 1rem;
|
||||
margin-bottom: var(--mb-4);
|
||||
border-radius: .5rem;
|
||||
box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
|
||||
}
|
||||
|
||||
.skills__icon {
|
||||
font-size: 2rem;
|
||||
margin-right: var(--mb-2);
|
||||
color: var(--first-color);
|
||||
}
|
||||
|
||||
.skills__names {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skills__bar {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-color: var(--first-color);
|
||||
height: .25rem;
|
||||
border-radius: .5rem;
|
||||
z-index: var(--z-back);
|
||||
}
|
||||
|
||||
.skills__html {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.skills__css {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.skills__js {
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.skills__ux {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.skills__img {
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
/* ===== WORK =====*/
|
||||
.work__container {
|
||||
row-gap: 2rem;
|
||||
}
|
||||
|
||||
.work__img {
|
||||
box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
|
||||
border-radius: .5rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.work__img img {
|
||||
transition: 1s;
|
||||
}
|
||||
|
||||
.work__img img:hover {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* ===== CONTACT =====*/
|
||||
.contact__input {
|
||||
width: 100%;
|
||||
font-size: var(--normal-font-size);
|
||||
font-weight: var(--font-semi);
|
||||
padding: 1rem;
|
||||
border-radius: .5rem;
|
||||
border: 1.5px solid var(--second-color);
|
||||
outline: none;
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
|
||||
.contact__button {
|
||||
display: block;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: var(--normal-font-size);
|
||||
cursor: pointer;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
/* ===== FOOTER =====*/
|
||||
.footer {
|
||||
background-color: var(--second-color);
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-weight: var(--font-semi);
|
||||
padding: 2rem 0;
|
||||
}
|
||||
|
||||
.footer__title {
|
||||
font-size: 2rem;
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
|
||||
.footer__social {
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
|
||||
.footer__icon {
|
||||
font-size: 1.5rem;
|
||||
color: #fff;
|
||||
margin: 0 var(--mb-2);
|
||||
}
|
||||
|
||||
.footer__copy {
|
||||
font-size: var(--smaller-font-size);
|
||||
}
|
||||
|
||||
/* ===== MEDIA QUERIES=====*/
|
||||
@media screen and (max-width: 320px) {
|
||||
.home {
|
||||
row-gap: 2rem;
|
||||
}
|
||||
.home__img {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 576px) {
|
||||
.home {
|
||||
padding: 4rem 0 2rem;
|
||||
}
|
||||
.home__social {
|
||||
padding-top: 0;
|
||||
padding-bottom: 2.5rem;
|
||||
flex-direction: row;
|
||||
align-self: flex-end;
|
||||
}
|
||||
.home__social-icon {
|
||||
margin-bottom: 0;
|
||||
margin-right: var(--mb-4);
|
||||
}
|
||||
.home__img {
|
||||
width: 300px;
|
||||
bottom: 25%;
|
||||
}
|
||||
.about__container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
align-items: center;
|
||||
text-align: initial;
|
||||
}
|
||||
.skills__container {
|
||||
grid-template-columns: .7fr;
|
||||
justify-content: center;
|
||||
column-gap: 1rem;
|
||||
}
|
||||
.work__container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
column-gap: 2rem;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
.contact__form {
|
||||
width: 360px;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
.contact__container {
|
||||
justify-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
.section {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 3rem;
|
||||
}
|
||||
.section-title {
|
||||
margin-bottom: var(--mb-6);
|
||||
}
|
||||
.section-title::after {
|
||||
width: 80px;
|
||||
top: 3rem;
|
||||
}
|
||||
.nav {
|
||||
height: calc(var(--header-height) + 1.5rem);
|
||||
}
|
||||
.nav__list {
|
||||
display: flex;
|
||||
padding-top: 0;
|
||||
}
|
||||
.nav__item {
|
||||
margin-left: var(--mb-6);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.nav__toggle {
|
||||
display: none;
|
||||
}
|
||||
.nav__link {
|
||||
color: var(--second-color);
|
||||
}
|
||||
.home {
|
||||
padding: 8rem 0 2rem;
|
||||
}
|
||||
.home__img {
|
||||
width: 400px;
|
||||
bottom: 10%;
|
||||
}
|
||||
.about__container {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
.about__img img {
|
||||
width: 300px;
|
||||
}
|
||||
.skills__container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
column-gap: 2rem;
|
||||
align-items: center;
|
||||
text-align: initial;
|
||||
}
|
||||
.work__container {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
column-gap: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 992px) {
|
||||
.bd-grid {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.home {
|
||||
padding: 10rem 0 2rem;
|
||||
}
|
||||
.home__img {
|
||||
width: 450px;
|
||||
}
|
||||
}
|
||||
BIN
assets/img/20220309_091533.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
assets/img/about.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 95 KiB |
BIN
assets/img/logo.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
assets/img/perfil.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
assets/img/work1.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
assets/img/work2.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/img/work3.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
assets/img/work4.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/img/work5.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
assets/img/work6.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
56
assets/js/main.js
Normal file
@@ -0,0 +1,56 @@
|
||||
/*===== MENU SHOW =====*/
|
||||
const showMenu = (toggleId, navId) =>{
|
||||
const toggle = document.getElementById(toggleId),
|
||||
nav = document.getElementById(navId)
|
||||
|
||||
if(toggle && nav){
|
||||
toggle.addEventListener('click', ()=>{
|
||||
nav.classList.toggle('show')
|
||||
})
|
||||
}
|
||||
}
|
||||
showMenu('nav-toggle','nav-menu')
|
||||
|
||||
/*==================== REMOVE MENU MOBILE ====================*/
|
||||
const navLink = document.querySelectorAll('.nav__link')
|
||||
|
||||
function linkAction(){
|
||||
const navMenu = document.getElementById('nav-menu')
|
||||
// When we click on each nav__link, we remove the show-menu class
|
||||
navMenu.classList.remove('show')
|
||||
}
|
||||
navLink.forEach(n => n.addEventListener('click', linkAction))
|
||||
|
||||
/*==================== SCROLL SECTIONS ACTIVE LINK ====================*/
|
||||
const sections = document.querySelectorAll('section[id]')
|
||||
|
||||
function scrollActive(){
|
||||
const scrollY = window.pageYOffset
|
||||
|
||||
sections.forEach(current =>{
|
||||
const sectionHeight = current.offsetHeight
|
||||
const sectionTop = current.offsetTop - 50;
|
||||
sectionId = current.getAttribute('id')
|
||||
|
||||
if(scrollY > sectionTop && scrollY <= sectionTop + sectionHeight){
|
||||
document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.add('active')
|
||||
}else{
|
||||
document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.remove('active')
|
||||
}
|
||||
})
|
||||
}
|
||||
window.addEventListener('scroll', scrollActive)
|
||||
|
||||
/*===== SCROLL REVEAL ANIMATION =====*/
|
||||
const sr = ScrollReveal({
|
||||
origin: 'top',
|
||||
distance: '60px',
|
||||
duration: 2000,
|
||||
delay: 200,
|
||||
// reset: true
|
||||
});
|
||||
|
||||
sr.reveal('.home__data, .about__img, .skills__subtitle, .skills__text',{});
|
||||
sr.reveal('.home__img, .about__subtitle, .about__text, .skills__img',{delay: 400});
|
||||
sr.reveal('.home__social-icon',{ interval: 200});
|
||||
sr.reveal('.skills__data, .work__img, .contact__input',{interval: 200});
|
||||
28
assets/js/scripts.js
Normal file
@@ -0,0 +1,28 @@
|
||||
function kirimPesan() {
|
||||
var nama = document.getElementById('name');
|
||||
var email = document.getElementById('email');
|
||||
var subject = document.getElementById('subject');
|
||||
var pesan = document.getElementById('message');
|
||||
|
||||
var gabungan = '%F0%9D%90%8D%F0%9D%90%9A%F0%9D%90%A6%F0%9D%90%9A%20%3A%0A' + nama.value + '%0A%0A%F0%9D%90%84%F0%9D%90%A6%F0%9D%90%9A%F0%9D%90%A2%F0%9D%90%A5%20%3A%0A' + email.value + '%0A%0A%F0%9D%90%92%F0%9D%90%AE%F0%9D%90%9B%F0%9D%90%A3%F0%9D%90%9E%F0%9D%90%A4%20%3A%0A' + subject.value + '%0A%0A%F0%9D%90%8F%F0%9D%90%9E%F0%9D%90%AC%F0%9D%90%9A%F0%9D%90%A7%20%3A%0A' + pesan.value;
|
||||
|
||||
// Menggunakan variabel token dan grup dari PHP
|
||||
$.ajax({
|
||||
url: `https://api.telegram.org/bot${token}/sendMessage?chat_id=${grup}&text=${gabungan}&parse_mode=html`,
|
||||
method: `POST`,
|
||||
success: function(response) {
|
||||
// Eksekusi refresh halaman setelah mengirim pesan
|
||||
window.location.reload(true);
|
||||
},
|
||||
error: function(error) {
|
||||
// Jika terjadi kesalahan, Anda dapat menambahkan penanganan error di sini
|
||||
console.log("Error:", error);
|
||||
}
|
||||
});
|
||||
|
||||
// Membersihkan kolom form setelah mengirim pesan
|
||||
nama.value = '';
|
||||
email.value = '';
|
||||
subject.value = '';
|
||||
pesan.value = '';
|
||||
}
|
||||
41
assets/js/ud-menu-scroll.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// ==== for menu scroll
|
||||
const pageLink = document.querySelectorAll(".ud-menu-scroll");
|
||||
|
||||
pageLink.forEach((elem) => {
|
||||
elem.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
document.querySelector(elem.getAttribute("href")).scrollIntoView({
|
||||
behavior: "smooth",
|
||||
offsetTop: 1 - 60,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// section menu active
|
||||
function onScroll(event) {
|
||||
const sections = document.querySelectorAll(".ud-menu-scroll");
|
||||
const scrollPos =
|
||||
window.pageYOffset ||
|
||||
document.documentElement.scrollTop ||
|
||||
document.body.scrollTop;
|
||||
|
||||
for (let i = 0; i < sections.length; i++) {
|
||||
const currLink = sections[i];
|
||||
const val = currLink.getAttribute("href");
|
||||
const refElement = document.querySelector(val);
|
||||
const scrollTopMinus = scrollPos + 73;
|
||||
if (
|
||||
refElement.offsetTop <= scrollTopMinus &&
|
||||
refElement.offsetTop + refElement.offsetHeight > scrollTopMinus
|
||||
) {
|
||||
document
|
||||
.querySelector(".ud-menu-scroll")
|
||||
.classList.remove("active");
|
||||
currLink.classList.add("active");
|
||||
} else {
|
||||
currLink.classList.remove("active");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.document.addEventListener("scroll", onScroll);
|
||||
10
assets/php/footer.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<!--===== FOOTER =====-->
|
||||
<footer class="footer">
|
||||
<p class="footer__title">myPortfolio</p>
|
||||
<div class="footer__social">
|
||||
<a href="https://facebook.com/dyzulk" class="footer__icon"><i class='bx bxl-facebook' ></i></a>
|
||||
<a href="https://instagram.com/dyzulk" class="footer__icon"><i class='bx bxl-instagram' ></i></a>
|
||||
<a href="https://twitter.com/dyzulk_" class="footer__icon"><i class='bx bxl-twitter' ></i></a>
|
||||
</div>
|
||||
<p class="footer__copy">Copyright © 2022 - <script>document.write(new Date().getFullYear())</script> <a href="/" style="color: #fff;">Herdy Iskandar</a>. All rigths reserved</p>
|
||||
</footer>
|
||||
14
assets/php/header.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<link href="favicon.png" rel="icon" sizes=”32×32″ type="image/png">
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="Muhammad Herdy Iskandar He Is A 18 year old Indonesian student living in Cirebon, Indonesian. You might have seen me on Facebook or Instagram. Now here you are. Yes, I write, too. Because there are so many things I cannot say out loud, yet I always find a way to put it into words.">
|
||||
<meta name="keywords" content="Muhammad Herdy Iskandar, HTML,CSS,React JS,JavaScript">
|
||||
<meta name="author" content="Muhammad Herdy Iskandar">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="google-site-verification" content="C7cNjxkyxXcQHExRsdhIGjZ658BcK9ftuIpJK8NYRGc" />
|
||||
<link rel="stylesheet" href="assets/css/styles.css">
|
||||
<!-- =====BOX ICONS===== -->
|
||||
<!-- =====BOX ICONS===== -->
|
||||
<link href='https://cdn.jsdelivr.net/npm/boxicons@2.0.5/css/boxicons.min.css' rel='stylesheet'>
|
||||
|
||||
<title>Muhammad Herdy Iskandar</title>
|
||||
22
assets/php/navbar.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<!--===== HEADER =====-->
|
||||
<header class="l-header">
|
||||
<nav class="nav bd-grid">
|
||||
<div>
|
||||
<a href="/" class="nav__logo" > <img style="width: 150px;" class="logopng" src="assets/img/logo.png" alt="Portfolio Herdy Iskandar" > </a>
|
||||
</div>
|
||||
|
||||
<div class="nav__menu" id="nav-menu">
|
||||
<ul class="nav__list">
|
||||
<li class="nav__item"><a href="#home" class="nav__link active">Home</a></li>
|
||||
<li class="nav__item"><a href="#about" class="nav__link">About</a></li>
|
||||
<li class="nav__item"><a href="#skills" class="nav__link">Skills</a></li>
|
||||
<li class="nav__item"><a href="#work" class="nav__link">Work</a></li>
|
||||
<li class="nav__item"><a href="#contact" class="nav__link">Contact</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="nav__toggle" id="nav-toggle">
|
||||
<i class='bx bx-menu'></i>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
523
assets/scss/styles.scss
Normal file
@@ -0,0 +1,523 @@
|
||||
/*===== GOOGLE FONTS =====*/
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
/*===== VARIABLES CSS =====*/
|
||||
--header-height: 3rem;
|
||||
--font-semi: 600;
|
||||
|
||||
/*===== Colores =====*/
|
||||
/*Purple 260 - Red 355 - Blue 224 - Pink 340*/
|
||||
/* HSL color mode */
|
||||
--hue-color: 224;
|
||||
--first-color: hsl(var(--hue-color), 89%, 60%);
|
||||
--second-color: hsl(var(--hue-color), 56%, 12%);
|
||||
|
||||
/*===== Fuente y tipografia =====*/
|
||||
--body-font: 'Poppins', sans-serif;
|
||||
|
||||
--big-font-size: 2rem;
|
||||
--h2-font-size: 1.25rem;
|
||||
--normal-font-size: .938rem;
|
||||
--smaller-font-size: .75rem;
|
||||
|
||||
/*===== Margenes =====*/
|
||||
--mb-2: 1rem;
|
||||
--mb-4: 2rem;
|
||||
--mb-5: 2.5rem;
|
||||
--mb-6: 3rem;
|
||||
|
||||
/*===== z index =====*/
|
||||
--z-back: -10;
|
||||
--z-fixed: 100;
|
||||
|
||||
@media screen and (min-width: 968px){
|
||||
--big-font-size: 3.5rem;
|
||||
--h2-font-size: 2rem;
|
||||
--normal-font-size: 1rem;
|
||||
--smaller-font-size: .875rem;
|
||||
}
|
||||
|
||||
/*===== BASE =====*/
|
||||
*,::before,::after{
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html{
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
body{
|
||||
margin: var(--header-height) 0 0 0;
|
||||
font-family: var(--body-font);
|
||||
font-size: var(--normal-font-size);
|
||||
color: var(--second-color);
|
||||
}
|
||||
h1,h2,p{
|
||||
margin: 0;
|
||||
}
|
||||
ul{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
a{
|
||||
text-decoration: none;
|
||||
}
|
||||
img{
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*===== CLASS CSS ===== */
|
||||
.section-title{
|
||||
position: relative;
|
||||
font-size: var(--h2-font-size);
|
||||
color: var(--first-color);
|
||||
margin-top: var(--mb-2);
|
||||
margin-bottom: var(--mb-4);
|
||||
text-align: center;
|
||||
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 64px;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
}
|
||||
.section{
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
/*===== LAYOUT =====*/
|
||||
.bd-grid{
|
||||
max-width: 1024px;
|
||||
display: grid;
|
||||
margin-left: var(--mb-2);
|
||||
margin-right: var(--mb-2);
|
||||
}
|
||||
.l-header{
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: var(--z-fixed);
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 4px rgba(146,161,176,.15);
|
||||
}
|
||||
|
||||
/*===== NAV =====*/
|
||||
.nav{
|
||||
height: var(--header-height);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-weight: var(--font-semi);
|
||||
|
||||
&__menu{
|
||||
@media screen and (max-width: 767px){
|
||||
position: fixed;
|
||||
top: var(--header-height);
|
||||
right: -100%;
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
padding: 2rem;
|
||||
background-color: var(--second-color);
|
||||
transition: .5s;
|
||||
}
|
||||
}
|
||||
&__item{
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
&__link{
|
||||
position: relative;
|
||||
color: #fff;
|
||||
|
||||
&:hover{
|
||||
position: relative;
|
||||
|
||||
&::after{
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 100%;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
&__logo{
|
||||
color: var(--second-color);
|
||||
}
|
||||
&__toggle{
|
||||
color: var(--second-color);
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
/*Active menu*/
|
||||
.active::after{
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 100%;
|
||||
height: 0.18rem;
|
||||
left: 0;
|
||||
top: 2rem;
|
||||
background-color: var(--first-color);
|
||||
}
|
||||
|
||||
/*=== Show menu ===*/
|
||||
.show{
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/*===== HOME =====*/
|
||||
.home{
|
||||
position: relative;
|
||||
row-gap: 5rem;
|
||||
padding: 4rem 0 5rem;
|
||||
|
||||
&__data{
|
||||
align-self: center;
|
||||
}
|
||||
&__title{
|
||||
font-size: var(--big-font-size);
|
||||
margin-bottom: var(--mb-5);
|
||||
|
||||
&-color{
|
||||
color: var(--first-color);
|
||||
}
|
||||
}
|
||||
&__social{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
&-icon{
|
||||
width: max-content;
|
||||
margin-bottom: var(--mb-2);
|
||||
font-size: 1.5rem;
|
||||
color: var(--second-color);
|
||||
|
||||
&:hover{
|
||||
color: var(--first-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__img{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 260px;
|
||||
}
|
||||
&__blob{
|
||||
fill: var(--first-color);
|
||||
|
||||
&-img{
|
||||
width: 360px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*BUTTONS*/
|
||||
.button{
|
||||
display: inline-block;
|
||||
background-color: var(--first-color);
|
||||
color: #fff;
|
||||
padding: .75rem 2.5rem;
|
||||
font-weight: var(--font-semi);
|
||||
border-radius: .5rem;
|
||||
transition: .3s;
|
||||
|
||||
&:hover{
|
||||
box-shadow: 0px 10px 36px rgba(0,0,0,.15);
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== ABOUT =====*/
|
||||
.about{
|
||||
&__container{
|
||||
row-gap: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
&__subtitle{
|
||||
margin-bottom: var(--mb-2);
|
||||
}
|
||||
|
||||
&__img{
|
||||
justify-self: center;
|
||||
|
||||
& img{
|
||||
width: 200px;
|
||||
border-radius: .5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== SKILLS =====*/
|
||||
.skills{
|
||||
&__container{
|
||||
row-gap: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
&__subtitle{
|
||||
margin-bottom: var(--mb-2);
|
||||
}
|
||||
&__text{
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
&__data{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
font-weight: var(--font-semi);
|
||||
padding: .5rem 1rem;
|
||||
margin-bottom: var(--mb-4);
|
||||
border-radius: .5rem;
|
||||
box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
|
||||
}
|
||||
&__icon{
|
||||
font-size: 2rem;
|
||||
margin-right: var(--mb-2);
|
||||
color: var(--first-color);
|
||||
}
|
||||
&__names{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
&__bar{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-color: var(--first-color);
|
||||
height: .25rem;
|
||||
border-radius: .5rem;
|
||||
z-index: var(--z-back);
|
||||
}
|
||||
&__html{
|
||||
width: 95%;
|
||||
}
|
||||
&__css{
|
||||
width: 85%;
|
||||
}
|
||||
&__js{
|
||||
width: 65%;
|
||||
}
|
||||
&__ux{
|
||||
width: 85%;
|
||||
}
|
||||
&__img{
|
||||
border-radius: .5rem;
|
||||
}
|
||||
}
|
||||
/* ===== WORK =====*/
|
||||
.work{
|
||||
&__container{
|
||||
row-gap: 2rem;
|
||||
}
|
||||
&__img{
|
||||
box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
|
||||
border-radius: .5rem;
|
||||
overflow: hidden;
|
||||
|
||||
& img{
|
||||
transition: 1s;
|
||||
|
||||
&:hover{
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== CONTACT =====*/
|
||||
.contact{
|
||||
&__input{
|
||||
width: 100%;
|
||||
font-size: var(--normal-font-size);
|
||||
font-weight: var(--font-semi);
|
||||
padding: 1rem;
|
||||
border-radius: .5rem;
|
||||
border: 1.5px solid var(--second-color);
|
||||
outline: none;
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
&__button{
|
||||
display: block;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: var(--normal-font-size);
|
||||
cursor: pointer;
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== FOOTER =====*/
|
||||
.footer{
|
||||
background-color: var(--second-color);
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-weight: var(--font-semi);
|
||||
padding: 2rem 0;
|
||||
|
||||
&__title{
|
||||
font-size: 2rem;
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
&__social{
|
||||
margin-bottom: var(--mb-4);
|
||||
}
|
||||
&__icon{
|
||||
font-size: 1.5rem;
|
||||
color: #fff;
|
||||
margin: 0 var(--mb-2);
|
||||
}
|
||||
&__copy{
|
||||
font-size: var(--smaller-font-size);
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== MEDIA QUERIES=====*/
|
||||
@media screen and (max-width: 320px){
|
||||
.home{
|
||||
row-gap: 2rem;
|
||||
|
||||
&__img{
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 576px){
|
||||
.home{
|
||||
padding: 4rem 0 2rem;
|
||||
&__social{
|
||||
padding-top: 0;
|
||||
padding-bottom: 2.5rem;
|
||||
flex-direction: row;
|
||||
align-self: flex-end;
|
||||
|
||||
&-icon{
|
||||
margin-bottom: 0;
|
||||
margin-right: var(--mb-4);
|
||||
}
|
||||
}
|
||||
&__img{
|
||||
width: 300px;
|
||||
bottom: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
.about__container{
|
||||
grid-template-columns: repeat(2,1fr);
|
||||
align-items: center;
|
||||
text-align: initial;
|
||||
}
|
||||
|
||||
.skills__container{
|
||||
grid-template-columns: .7fr;
|
||||
justify-content: center;
|
||||
column-gap: 1rem;
|
||||
}
|
||||
|
||||
.work__container{
|
||||
grid-template-columns: repeat(2,1fr);
|
||||
column-gap: 2rem;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.contact{
|
||||
&__form{
|
||||
width: 360px;
|
||||
padding-top: 2rem ;
|
||||
}
|
||||
&__container{
|
||||
justify-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and(min-width: 768px){
|
||||
body{
|
||||
margin: 0;
|
||||
}
|
||||
.section{
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 3rem;
|
||||
}
|
||||
|
||||
.section-title{
|
||||
margin-bottom: var(--mb-6);
|
||||
|
||||
&::after{
|
||||
width: 80px;
|
||||
top: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
.nav{
|
||||
height: calc(var(--header-height) + 1.5rem);
|
||||
&__list{
|
||||
display: flex;
|
||||
padding-top: 0;
|
||||
}
|
||||
&__item{
|
||||
margin-left: var(--mb-6);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
&__toggle{
|
||||
display: none;
|
||||
}
|
||||
&__link{
|
||||
color: var(--second-color);
|
||||
}
|
||||
}
|
||||
.home{
|
||||
padding: 8rem 0 2rem;
|
||||
|
||||
&__img{
|
||||
width: 400px;
|
||||
bottom: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
.about{
|
||||
&__container{
|
||||
padding-top: 2rem;
|
||||
}
|
||||
&__img{
|
||||
& img{
|
||||
width: 300px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.skills__container{
|
||||
grid-template-columns: repeat(2,1fr);
|
||||
column-gap: 2rem;
|
||||
align-items: center;
|
||||
text-align: initial;
|
||||
}
|
||||
.work__container{
|
||||
grid-template-columns: repeat(3,1fr);
|
||||
column-gap: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 992px){
|
||||
.bd-grid{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.home{
|
||||
padding: 10rem 0 2rem;
|
||||
|
||||
&__img{
|
||||
width: 450px;
|
||||
}
|
||||
}
|
||||
}
|
||||