Skip to content

🌐 • Repositório front-end com os conteúdos de Programação Web, utilizando o VSCode e as linguagens de HTML, CSS e JavaScript, e frameworks e bibliotecas como ferramentas de aprendizado.

License

Notifications You must be signed in to change notification settings

juletopi/Programacao_Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Liscence-badge

ProgramacaoWeb-pic

Programação Web 🌐

• Este é um repositório com os conteúdos de Programação Web,
ministradas pelo professor Karan Luciano, utilizando a IDE VSCode e as linguagens de
HTML, CSS e JavaScript, além de frameworks e bibliotecas como ferramentas de aprendizado.

Sumário 🧾


Readme Quotes

👨‍🏫 Professor:

KaranLuciano-pic

Karan Luciano - Analista de T.I. | Desenvolvedor Full-Stack
IFRO Campus Ji-ParanáAtuando desde 2024
Linguagens & Tecnologias: VSCodeDevOpsJavaJavaScriptReact.jsE outros...
Contato: Karan Luciano (LinkedIn)


🌟 Programação Web I

📋 Ementa:

Esta disciplina introduz a primeira parte do desenvolvimento web, com foco em HTML e CSS básicos, seguido por uma imersão em JavaScript, APIs e o uso de React para a criação de aplicações web dinâmicas. O curso terá uma abordagem prática, com desenvolvimento de projetos que evoluem ao longo das aulas.

🎯 Objetivo Geral:

  • Desenvolver sites estáticos e aplicativos web dinâmicos, utilizando JavaScript e React, com foco em funcionalidades modernas e consumo de APIs.

🎯 Objetivos Específicos:

  • 📝 Especificar documentos utilizando HTML;
  • 🎨 Estilizar documentos utilizando regras de CSS;
  • 🖥️ Implementar interatividade com JavaScript;
  • 🔗 Consumir APIs utilizando JavaScript;
  • 🚀 Desenvolver interfaces dinâmicas com React.

📚 Conteúdos Principais:

  • Desenvolvimento web
  • Aplicações cliente/servidor
  • HTML e CSS básicos
  • JavaScript para interatividade
  • APIs e integração com back-end
  • React (biblioteca front-end)

🔗 Links:


📚 Conceitos Aprendidos:

1. Web-página Sobre Mim

Note

Retirado da aula de "CodigoAula01"

Nesta aula foram aprendidos:

  • Início da disciplina utilizando a IDE VSCode e as linguagens HTML, CSS e JavaScript
  • Criação de uma página-web "Sobre mim"
  • Como linkar o JavaScript ao HTML
  • Mensagem de alerta utilizando JavaScript

HTML:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Minha NÃO Primeira Página-web | Aula 01 de Programação Web</title>
    <link rel="stylesheet" href="src/css/reset.css">
    <link rel="stylesheet" href="src/css/fonts.css">
    <link rel="stylesheet" href="src/css/style.css">
    <link rel="stylesheet" href="src/css/pseudoElementStyles.css">
    <link rel="stylesheet" href="src/css/responsive.css">
    <link rel="shortcut icon" href="src/images/webProgrammingIcon.ico" type="image/x-icon" />
</head>
<body>
    <!-- Cabeçalho da página -->
    <header class="main-title">
        <div class="parallax-container">
            <img src="src/images/webProgrammingImage.png" alt="WebProgrammingImage">
            <h1>Bem-vindo(a) ao<br><span class="main-title-highlight">DESENVOLVIMENTO WEB</span></h1>
            <hr>
            <p>Esta <strong>NÃO É</strong> minha primeira pagina-web <span class="main-title-emote">⁠(⁠ò⁠_⁠ó⁠ˇ⁠)⁠</span></p>
        </div>
    </header>

    <!-- Seção "Sobre mim" da página -->
    <section class="about-me">
        <h2>SOBRE<br><span class="about-me-highlight">MIM</span></h2>
        <p>
            Oiii, bom dia, boa tarde, boa noite! Me chamo Julio Cezar (a.k.a Juletopi). Atualmente, tenho 21 anos e sou um desenvolvedor Full-Stack apaixonado por tecnologia e um estudante de Analise e Desenvolvimento de Sistemas no IFRO Campus Ji-Parana.
            <br><br>
            No meu tempo livre, voce provavelmente vai me encontrar estudando, ouvindo rock satanico, assistindo anime, jogando na Steam ou lendo The Witcher/mangas.
            <br><br>
            Meus animes favoritos sao: 3º Genshiken Nidaime, 2º Hunter x Hunter e 1º Made in Abyss.
            <br><br>
            Curto musica lo-fi, rock e eletronica, e minha musica favorita e "Daft Punk - Get Lucky".
            <br><br>
            Sou um gamer casual hoje-em-dia. Amo jogar Minecraft, Stardew Valley, The Witcher 3, Dying Light, e o meu favorito: Sunset Overdrive.
        </p>
        <img src="src/images/JulioCezarImage.png" alt="JulioCezarPicture">
    </section>

    <!-- Seção "Meus interesses" da página -->
    <section class="my-interests">
        <h2>MEUS<br><span class="my-interests-highlight1">INTERE</span><br><span class="my-interests-highlight2">SSES</span></h2>
        <ul class="interests-list">
            <li>🖥️💻 Programacao back-end e front-end</li>
            <li>🎨🖌️ UX/UI Design e Web Design</li>
            <li>🎮 Videogames</li>
            <li>📚 Aprender</li>
            <li>🚲 Ciclismo</li>
            <li>🎧 Musica</li>
            <li>🍜 Anime</li>
            <li>🎲 RPG</li>
        </ul>
        <img src="src/images/bikeImage.png" alt="JulioCezarBikePicture">
    </section>

    <!-- Seção extra "Imagens" -->
    <section class="extra-images">
        <img id="image1" src="src/images/NFS2015GameImage.png" alt="NeedForSpeedGamePicture">
        <img id="image2" src="src/images/MinecraftGameImage.png" alt="MinecraftGamePicture">
        <img id="image3" src="src/images/TheDivision2GameImage.png" alt="TheDivison2GamePicture">
    </section>

    <div class="arrow-container">
        <span class="arrow"></span>
    </div>

    <!-- Botão abaixo da seção "Meus interesses" da página -->
    <div class="button-container">
        <a href="https://github.com/juletopi" target="_blank">
            <button id="github-button-id" class="github-button">
                Visite o meu Github 
                <svg id="github-button-icon" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="31" height="31" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(4,4)"><path d="M32,6c-14.359,0 -26,11.641 -26,26c0,12.277 8.512,22.56 19.955,25.286c-0.592,-0.141 -1.179,-0.299 -1.755,-0.479v-5.957c0,0 -0.975,0.325 -2.275,0.325c-3.637,0 -5.148,-3.245 -5.525,-4.875c-0.229,-0.993 -0.827,-1.934 -1.469,-2.509c-0.767,-0.684 -1.126,-0.686 -1.131,-0.92c-0.01,-0.491 0.658,-0.471 0.975,-0.471c1.625,0 2.857,1.729 3.429,2.623c1.417,2.207 2.938,2.577 3.721,2.577c0.975,0 1.817,-0.146 2.397,-0.426c0.268,-1.888 1.108,-3.57 2.478,-4.774c-6.097,-1.219 -10.4,-4.716 -10.4,-10.4c0,-2.928 1.175,-5.619 3.133,-7.792c-0.2,-0.567 -0.533,-1.714 -0.533,-3.583c0,-1.235 0.086,-2.751 0.65,-4.225c0,0 3.708,0.026 7.205,3.338c1.614,-0.47 3.341,-0.738 5.145,-0.738c1.804,0 3.531,0.268 5.145,0.738c3.497,-3.312 7.205,-3.338 7.205,-3.338c0.567,1.474 0.65,2.99 0.65,4.225c0,2.015 -0.268,3.19 -0.432,3.697c1.898,2.153 3.032,4.802 3.032,7.678c0,5.684 -4.303,9.181 -10.4,10.4c1.628,1.43 2.6,3.513 2.6,5.85v8.557c-0.576,0.181 -1.162,0.338 -1.755,0.479c11.443,-2.726 19.955,-13.009 19.955,-25.286c0,-14.359 -11.641,-26 -26,-26zM33.813,57.93c-0.599,0.042 -1.203,0.07 -1.813,0.07c0.61,0 1.213,-0.029 1.813,-0.07zM37.786,57.346c-1.164,0.265 -2.357,0.451 -3.575,0.554c1.218,-0.103 2.411,-0.29 3.575,-0.554zM32,58c-0.61,0 -1.214,-0.028 -1.813,-0.07c0.6,0.041 1.203,0.07 1.813,0.07zM29.788,57.9c-1.217,-0.103 -2.411,-0.289 -3.574,-0.554c1.164,0.264 2.357,0.451 3.574,0.554z"></path></g></g></svg>
            </button>
        </a>
    </div>
    
    <!-- Rodapé da página -->
    <footer class="footer">
        <p>&copy; <span id="current-year"></span> Aula 01 de Programacao Web ┃ Feito com ♥️ por Juletopi.</p>
        <p id="my-links">Me encontre aqui:</p>
        <div class="personal-social-icons">
            <a id="facebook-icon" href="https://www.facebook.com/profile.php?id=100006955867774" target="_blank" title="Facebook">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="28" height="28" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M25,3c-12.15,0 -22,9.85 -22,22c0,11.03 8.125,20.137 18.712,21.728v-15.897h-5.443v-5.783h5.443v-3.848c0,-6.371 3.104,-9.168 8.399,-9.168c2.536,0 3.877,0.188 4.512,0.274v5.048h-3.612c-2.248,0 -3.033,2.131 -3.033,4.533v3.161h6.588l-0.894,5.783h-5.694v15.944c10.738,-1.457 19.022,-10.638 19.022,-21.775c0,-12.15 -9.85,-22 -22,-22z"></path></g></g></svg>
            </a>
            <a id="instagram-icon" href="https://www.instagram.com/juletopi/" target="_blank" title="Instagram">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="28" height="28" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(4,4)"><path d="M21.58008,7c-8.039,0 -14.58008,6.54494 -14.58008,14.58594v20.83203c0,8.04 6.54494,14.58203 14.58594,14.58203h20.83203c8.04,0 14.58203,-6.54494 14.58203,-14.58594v-20.83398c0,-8.039 -6.54494,-14.58008 -14.58594,-14.58008zM47,15c1.104,0 2,0.896 2,2c0,1.104 -0.896,2 -2,2c-1.104,0 -2,-0.896 -2,-2c0,-1.104 0.896,-2 2,-2zM32,19c7.17,0 13,5.83 13,13c0,7.17 -5.831,13 -13,13c-7.17,0 -13,-5.831 -13,-13c0,-7.169 5.83,-13 13,-13zM32,23c-4.971,0 -9,4.029 -9,9c0,4.971 4.029,9 9,9c4.971,0 9,-4.029 9,-9c0,-4.971 -4.029,-9 -9,-9z"></path></g></g></svg>
            </a>
            <a id="linkedin-icon" href="https://www.linkedin.com/in/julio-cezar-pereira-camargo/" target="_blank" title="LinkedIn">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="27" height="27" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M41,4h-32c-2.76,0 -5,2.24 -5,5v32c0,2.76 2.24,5 5,5h32c2.76,0 5,-2.24 5,-5v-32c0,-2.76 -2.24,-5 -5,-5zM17,20v19h-6v-19zM11,14.47c0,-1.4 1.2,-2.47 3,-2.47c1.8,0 2.93,1.07 3,2.47c0,1.4 -1.12,2.53 -3,2.53c-1.8,0 -3,-1.13 -3,-2.53zM39,39h-6c0,0 0,-9.26 0,-10c0,-2 -1,-4 -3.5,-4.04h-0.08c-2.42,0 -3.42,2.06 -3.42,4.04c0,0.91 0,10 0,10h-6v-19h6v2.56c0,0 1.93,-2.56 5.81,-2.56c3.97,0 7.19,2.73 7.19,8.26z"></path></g></g></svg>
            </a>
            <a id="github-icon" href="https://github.com/juletopi" target="_blank" title="GitHub">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="28" height="28" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(4,4)"><path d="M32,6c-14.359,0 -26,11.641 -26,26c0,12.277 8.512,22.56 19.955,25.286c-0.592,-0.141 -1.179,-0.299 -1.755,-0.479v-5.957c0,0 -0.975,0.325 -2.275,0.325c-3.637,0 -5.148,-3.245 -5.525,-4.875c-0.229,-0.993 -0.827,-1.934 -1.469,-2.509c-0.767,-0.684 -1.126,-0.686 -1.131,-0.92c-0.01,-0.491 0.658,-0.471 0.975,-0.471c1.625,0 2.857,1.729 3.429,2.623c1.417,2.207 2.938,2.577 3.721,2.577c0.975,0 1.817,-0.146 2.397,-0.426c0.268,-1.888 1.108,-3.57 2.478,-4.774c-6.097,-1.219 -10.4,-4.716 -10.4,-10.4c0,-2.928 1.175,-5.619 3.133,-7.792c-0.2,-0.567 -0.533,-1.714 -0.533,-3.583c0,-1.235 0.086,-2.751 0.65,-4.225c0,0 3.708,0.026 7.205,3.338c1.614,-0.47 3.341,-0.738 5.145,-0.738c1.804,0 3.531,0.268 5.145,0.738c3.497,-3.312 7.205,-3.338 7.205,-3.338c0.567,1.474 0.65,2.99 0.65,4.225c0,2.015 -0.268,3.19 -0.432,3.697c1.898,2.153 3.032,4.802 3.032,7.678c0,5.684 -4.303,9.181 -10.4,10.4c1.628,1.43 2.6,3.513 2.6,5.85v8.557c-0.576,0.181 -1.162,0.338 -1.755,0.479c11.443,-2.726 19.955,-13.009 19.955,-25.286c0,-14.359 -11.641,-26 -26,-26zM33.813,57.93c-0.599,0.042 -1.203,0.07 -1.813,0.07c0.61,0 1.213,-0.029 1.813,-0.07zM37.786,57.346c-1.164,0.265 -2.357,0.451 -3.575,0.554c1.218,-0.103 2.411,-0.29 3.575,-0.554zM32,58c-0.61,0 -1.214,-0.028 -1.813,-0.07c0.6,0.041 1.203,0.07 1.813,0.07zM29.788,57.9c-1.217,-0.103 -2.411,-0.289 -3.574,-0.554c1.164,0.264 2.357,0.451 3.574,0.554z"></path></g></g></svg>
            </a>
            <a id="whatsapp-icon" href="http://api.whatsapp.com/send?phone=5569993606894" target="_blank" title="Whatsapp">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="26" height="26" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M25,2c-12.682,0 -23,10.318 -23,23c0,3.96 1.023,7.854 2.963,11.29l-2.926,10.44c-0.096,0.343 -0.003,0.711 0.245,0.966c0.191,0.197 0.451,0.304 0.718,0.304c0.08,0 0.161,-0.01 0.24,-0.029l10.896,-2.699c3.327,1.786 7.074,2.728 10.864,2.728c12.682,0 23,-10.318 23,-23c0,-12.682 -10.318,-23 -23,-23zM36.57,33.116c-0.492,1.362 -2.852,2.605 -3.986,2.772c-1.018,0.149 -2.306,0.213 -3.72,-0.231c-0.857,-0.27 -1.957,-0.628 -3.366,-1.229c-5.923,-2.526 -9.791,-8.415 -10.087,-8.804c-0.295,-0.389 -2.411,-3.161 -2.411,-6.03c0,-2.869 1.525,-4.28 2.067,-4.864c0.542,-0.584 1.181,-0.73 1.575,-0.73c0.394,0 0.787,0.005 1.132,0.021c0.363,0.018 0.85,-0.137 1.329,1.001c0.492,1.168 1.673,4.037 1.819,4.33c0.148,0.292 0.246,0.633 0.05,1.022c-0.196,0.389 -0.294,0.632 -0.59,0.973c-0.296,0.341 -0.62,0.76 -0.886,1.022c-0.296,0.291 -0.603,0.606 -0.259,1.19c0.344,0.584 1.529,2.493 3.285,4.039c2.255,1.986 4.158,2.602 4.748,2.894c0.59,0.292 0.935,0.243 1.279,-0.146c0.344,-0.39 1.476,-1.703 1.869,-2.286c0.393,-0.583 0.787,-0.487 1.329,-0.292c0.542,0.194 3.445,1.604 4.035,1.896c0.59,0.292 0.984,0.438 1.132,0.681c0.148,0.242 0.148,1.41 -0.344,2.771z"></path></g></g></svg>
            </a>
        </div>
        <p id="repository-link">Esta página-web é de código aberto. Clique <a href="https://github.com/juletopi/Programacao_Web" target="_blank">aqui</a> para acessar o repositório com o código-fonte.</p>
    </footer>

    <!-- Link do script do JavaScript -->
    <script src="src/js/script.js"></script>
</body>
</html>

CSS (reset.css):

/* Reset básico para todos os elementos */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Remove a decoração padrão dos links */
a {
	text-decoration: none;
}

/* Adiciona um scroll suave */
html {
    scroll-behavior: smooth;
}  

CSS (font.css):

/* Definição da fonte DisposableDroidBB-Regular */
@font-face {
    font-family: "DisposableDroidBB-Regular";
    src: url("../fonts/DisposableDroidBB-Regular.ttf") format("woff2"),
         url("../fonts/DisposableDroidBB-Regular.ttf") format("woff");
}

/* Definição da fonte DisposableDroidBB-Bold */
@font-face {
    font-family: "DisposableDroidBB-Bold";
    src: url("../fonts/DisposableDroidBB-Bold.ttf") format("woff2"),
         url("../fonts/DisposableDroidBB-Bold.ttf") format("woff");
}

/* Definição da fonte DisposableDroidBB-Italic */
@font-face {
    font-family: "DisposableDroidBB-Italic";
    src: url("../fonts/DisposableDroidBB-Italic.ttf") format("woff2"),
         url("../fonts/DisposableDroidBB-Italic.ttf") format("woff");
}

CSS (style.css):

/* Estilização básica do corpo do documento */
body {
    font-family: DisposableDroidBB-Regular;
    color: #dbc0ff;
    background-color: #191625;
}

/* Estilização do container do efeito parallax na imagem de fundo */
.parallax-container {
    background-image: url('../images/espiralBackgroundImage.png'); 
    height: 100vh; 
    background-size: cover; 
    background-position: center center; 
    background-repeat: no-repeat; 
    position: relative;
    overflow: hidden;
}

/* Usando ::before para adicionar uma camada de fundo dinâmica do efeito parallax na imagem de fundo */
.parallax-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: inherit;
    background-size: inherit;
    background-position: inherit;
    background-repeat: inherit;
    transform: translateY(-50%);
    z-index: -1;
}

/* Estilização da imagem no título principal da página */
.main-title img {
    width: 100%;
    height: auto;
    max-width: 200px;
    display: block;
    margin: 0 auto;
    padding-top: 100px;
}

/* Estilização do título principal da página */
.main-title h1 {
    font-family: "DisposableDroidBB-Bold";
    font-size: 80px;
    color: #dbc0ff;
    padding-top: 40px;
    padding-bottom: 20px;
    text-align: center;
    line-height: 0.7;
    letter-spacing: -3px;
}

/* Estilização da parte "highlight" no título principal da página */
.main-title h1 .main-title-highlight {
    background: linear-gradient(45deg, #de96ff, #32335e, #5ca8f5);
    background-clip: border-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Estilização da linha horizontal no título principal da página */
.main-title hr {
    border: none;
    width: 60%;
    height: 4px;
    margin: 0 auto;
    background-image: linear-gradient(to right, transparent, #3f375fd3, transparent);
}

/* Estilização do parágrafo no título principal da página */
.main-title p {
    font-size: 32px;
    margin-top: 26px;
    padding-bottom: 160px;
    text-align: center;
    letter-spacing: -2px;
}

/* Estilização específica do emotico no título principal da página */
.main-title strong {
    font-family: Verdana;
    font-size: 22px;
}

/* Estilização específica da parte em negrito do parágrafo no título principal da página */
.main-title-emote {
    font-family: Verdana;
    font-size: 22px;
}

/* Estilização do container da seção "Sobre mim" da página */
.about-me {
    background: linear-gradient(to bottom, rgba(50, 51, 94, 0.6), rgba(50, 51, 94, 1)), #32335e;
    color: #dbc0ff;
    padding: 60px;
    display: flex;
    align-items: center;
}

/* Estilização do título na seção "Sobre mim" da página */
.about-me h2 {
    color: #dbc0ff;
    padding-right: 40px;
    font-size: 120px;
    flex: 0;
    text-align: left;
    line-height: 0.5;
    letter-spacing: -4px;
}

/* Estilização da parte "highlight" no título da seção "Sobre mim" da página */
.about-me h2 .about-me-highlight {
    color: #3786d6;
}

/* Estilização dos parágrafos na seção "Sobre mim" da página */
.about-me p {
    font-size: 24px;
    flex: 1;
    text-align: left;
    padding-top: 30px;
    padding-bottom: 30px;
}

/* Estilização da imagem na seção "Sobre mim" da página */
.about-me img {
    width: 100%;
    height: auto;
    max-width: 300px;
    margin-left: 40px;
    color: #212b47;
    border: 10px solid #3786d6;
    border-radius: 5px;
    transition: transform 0.3s ease-in-out;
}

/* Estilização da expansão ao passar o mouse sobre a imagem na seção extra "Sobre mim" da página */
.about-me img:hover {
    transform: scale(1.3);
}

/* Estilização do container da seção "Meus interesses" da página */
.my-interests {
    background-color: #3786d6;
    color: #181d2c;
    padding: 60px;
    display: flex;
    flex-direction: row-reverse;
    text-align: right;
    align-items: center;
}

/* Estilização do título na seção "Meus interesses" da página */
.my-interests h2 {
    color: #181d2c;
    padding-left: 40px;
    padding-right: 40px;
    font-size: 120px;
    text-align: right;
    line-height: 0.5;
    letter-spacing: -4px;
}

/* Estilização da parte "highlight 1" no título da seção "Meus interesses" da página */
.my-interests h2 .my-interests-highlight1 {
    color: #5730e2;
}

/* Estilização da parte "highlight 2" no título da seção "Meus interesses" da página */
.my-interests h2 .my-interests-highlight2 {
    color: #5a1791;
}

/* Estilização da imagem na seção "Meus interesses" da página */
.my-interests img {
    width: 100%;
    height: auto;
    max-width: 300px;
    margin-top: 40px;
    margin-right: 60px;
    color: #212b47;
    border: 10px solid #212b47;
    border-radius: 5px;
    transition: transform 0.3s ease-in-out;
}

/* Estilização da expansão ao passar o mouse sobre os a imagens na seção extra "Sobre mim" da página */
.my-interests img:hover {
    transform: scale(1.3);
}

/* Estilização da lista e dos parágrafos na seção "Meus interesses" da página */
.my-interests li {
    font-size: 24px;
    text-align: right;
}

/* Removendo o estilo de lista padrão */
.interests-list {
    list-style-type: none;
    padding-left: 0;
}

/* Removendo a margem e posicionando a lista */
.interests-list li {
    position: relative;
    padding-right: 20px;
    text-align: right;
}

/* Adicionando o marcador do lado direito dos itens da lista */
.interests-list li::before {
    content: '•';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    color: #181d2c;
    font-size: 26px;
}

/* Estilização do container da seção extra "Imagens" da página */
.extra-images {
    background-color: #3786d6;
    padding: 20px;
    padding-bottom: 80px;
    display: flex;
    justify-content: center;
    gap: 30px;
}

/* Estilização geral das imagens na seção extra "Imagens" da página */
#image1, #image2, #image3 {
    width: 100%;
    height: auto;
    color: #212b47;
    transition: transform 0.3s ease-in-out;
}

/* Estilização da expansão ao passar o mouse sobre os as imagens na seção extra "Imagens" da página */
#image1:hover, #image2:hover, #image3:hover {
    transform: scale(1.3);
}

/* Estilização específica da imagem 1 na seção extra "Imagens" da página */
#image1 {
    max-width: 370px;
    border: 6px solid #2245a5;
    border-radius: 5px;
}

/* Estilização específica da imagem 2 na seção extra "Imagens" da página */
#image2 {
    max-width: 220px;
    border: 6px solid #208a37;
    border-radius: 5px;
}

/* Estilização específica da imagem 3 na seção extra "Imagens" da página */
#image3 {
    max-width: 370px;
    border: 6px solid #d37811;
    border-radius: 5px;
}

/* Estilização do container da seta animada */
.arrow-container {
    background-color: #5ea2e6; /* Cor de fundo desejada */
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding-top: 40px;
}

/* Estilização da seta animada */
.arrow {
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 23px solid #181d2c;
    position: relative;
    animation: arrowAnimation 0.5s infinite alternate;
}

/* Animação da seta */
@keyframes arrowAnimation {
    from {
        top: 0;
    }
    to {
        top: 10px;
    }
}

/* Estilização do container do botão "Github" */
.button-container {
    background-color: #5ea2e6;
    display: flex;
    justify-content: center;
    padding-bottom: 50px;
    padding-top: 40px;
}

/* Estilização do botão "Github" */
.github-button {
    font-family: "DisposableDroidBB-Bold";
    display: flex;
    align-items: center;
    background-color: transparent;
    color: #181d2c;
    border: 4px solid #212b47;
    border-radius: 5px;
    padding: 10px 20px;
    font-size: 28px;
    font-weight: bold;
    text-align: center;
    letter-spacing: 3px;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

/* Estilização da cor do ícone SVG dentro do botão "Github" */
.github-button #github-button-icon path {
    fill: #1a2238;
}

/* Estilização específica do ícone SVG dentro do botão "Github" */
.github-button #github-button-icon {
    margin-left: 8px;
}

/* Estilização do botão "Github" ao passar o mouse */
.github-button:hover {
    background-color: #212b47;
    color: #ffffff;
    border-color: #212b47;
}

/* Estilização do ícone SVG dentro do botão "Github" ao passar o mouse */
.github-button:hover #github-button-icon path {
    fill: #ffffff;
    transition: fill 0.3s ease-in-out;
}

/* Estilização do rodapé */
.footer {
    background-color: #0e0e0e;
    color: #c5c5c5;
}

/* Estilização do texto do rodapé */
.footer p {
    padding-bottom: 10px;
    padding-top: 30px;
    text-align: center;
    font-size: 16px;
}

/* Estilização do texto predescente aos links pessoais do autor do site no rodapé */
#my-links {
    margin-top: -25px;
}

/* Estilização dos ícones sociais pessoais do autor do site */
.personal-social-icons {
    margin-top: 8px;
    padding-bottom: 25px;
    display: flex;
    justify-content: center;
    gap: 30px;
}

/* Estilização do preenchimento dos ícones sociais do autor do site */
.personal-social-icons a svg path {
    fill: #9e9e9e;
    transition: fill 0.3s ease-in-out;
}

/* Estilização geral inicial dos ícones sociais do autor do site */
.personal-social-icons a svg {
    transition: transform 0.3s ease-in-out;
}

/* Estilização específica do ícone "Facebook" ao passar o mouse */
#facebook-icon:hover svg path {
    fill: #3b5998;
}

/* Estilização específica do ícone "Instagram" ao passar o mouse */
#instagram-icon:hover svg path {
    fill: #e1306c;
}

/* Estilização específica do ícone "LinkedIn" ao passar o mouse */
#linkedin-icon:hover svg path {
    fill: #0077b5;
}

/* Estilização específica do ícone "GitHub" ao passar o mouse */
#github-icon:hover svg path {
    fill: #333333;
}

/* Estilização específica do ícone "Whatsapp" ao passar o mouse */
#whatsapp-icon:hover svg path {
    fill: #25d366;
}

/* Estilização da expansão ao passar o mouse sobre os ícones do autor do site */
.personal-social-icons a:hover svg {
    transform: scale(1.2);
}

/* Estilização do texto no final do site no rodapé */
#repository-link {
    color: #7a7a7a;
    background-color: #030303;
    font-family: Verdana;
    font-size: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
}

/* Estilização do link texto no final do site no rodapé */
#repository-link a {
    color: #8848ff;
}

/* Estilização do link texto no final do site no rodapé ao passar o mouse */
#repository-link:hover a {
    color: #69afe9;
}

CSS (pseudoElementStyles.css):

/* Estilização da barra de rolagem */
::-webkit-scrollbar {
    background-color: #191625;
    width: 10px;
	height: 8px;
}

/* Estilização do indicador da barra de rolagem */
::-webkit-scrollbar-thumb {
    background-color: #6343d877;
    border-radius: 8px;
}

/* Estilização da seleção de texto */
::selection {
    background-color: #6447ce9d;
    color: #dbc0ff;
}

CSS (responsive.css):

/* Tablets */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .main-title img {
        max-width: 175px;
    }

    .main-title h1 {
        font-size: 60px;
    }
    
    .main-title hr {
        width: 75%;
        height: 3px;
        margin-top: -6px;
    }

    .main-title p {
        font-size: 28px;
        margin-top: 16px;
    }
    
    .main-title strong {
        font-size: 18px;
    }

    .main-title-emote {
        font-size: 18px;
    }

    .about-me {
        display: flex;
        flex-direction: column;
        text-align: center;
    }

    .about-me h2 {
        font-size: 85px;
        text-align: center;
        padding: 0;
        order: -1;
    }

    .about-me img {
        max-width: 220px;
        margin-left: 0;
        margin-top: 40px;
        border: 6px solid #3786d6;
        order: 0;
        transition: none;
    }

    .about-me img:hover {
        transform: none;
    }

    .about-me p {
        font-size: 23px;
        padding-top: 40px;
        margin-bottom: -30px;
        order: 1;
    }

    .my-interests {
        flex-direction: column;
        text-align: center;
    }

    .my-interests h2 {
        font-size: 85px;
        text-align: center;
        padding: 0;
        order: -1;
    }

    .my-interests img {
        max-width: 220px;
        margin: 0;
        margin-top: 40px;
        border: 6px solid #212b47;
        transition: none;
        order: 0;
    }

    .my-interests img:hover {
        transform: none;
    }

    .interests-list {
        list-style-type: disc ;
        margin-top: 30px;
        margin-bottom: -30px;
        padding: 0;
        padding-left: 15px;
        order: 1;
    }

    .interests-list li {
        position: relative;
        padding: 0;
        text-align: left;
        font-size: 22px;
    }

    .interests-list li::before {
        display: none;
    }

    .extra-images {
        flex-direction: row;
        align-items: center;
        gap: 10px;
        margin-bottom: -20px;
    }

    #image1, #image2, #image3 {
        transition: none;
        max-width: 280px;
    }

    #image2 {
        max-width: 162px;
    }

    #image1:hover, #image2:hover, #image3:hover {
        transform: none;
    }

    .arrow-container {
        padding-top: 25px;
    }

    .arrow {
        border-left: 9px solid transparent;
        border-right: 9px solid transparent;
        border-top: 15px solid #181d2c;
    }

    .button-container {
        padding-bottom: 50px;
        padding-top: 30px;
    }

    .github-button {
        font-size: 25px;
    }

    .button-container #github-button-id #github-button-icon {
        max-width: 24px;
    }

    .footer p {
        font-size: 15px;
        padding-top: 20px;
    }

    #my-links {
        padding-top: 10px;
        padding-bottom: 5px;
        margin-top: -8px;
    }
    
    .personal-social-icons svg {
        max-width: 26px;
    }

    #repository-link {
        margin-top: -10px;
        font-size: 9px;
    }
}

/* Smartphones */
@media screen and (max-width: 767px) {
    .main-title img {
        max-width: 140px;
    }

    .main-title h1 {
        font-size: 50px;
    }
    
    .main-title hr {
        width: 80%;
        height: 3px;
        margin-top: -6px;
    }

    .main-title p {
        font-size: 25px;
        margin-top: 16px;
    }
    
    .main-title strong {
        font-size: 14px;
    }

    .main-title-emote {
        font-size: 16px;
    }

    .about-me {
        flex-direction: column;
        text-align: center;
    }

    .about-me h2 {
        font-size: 76px;
        text-align: center;
        padding: 0;
        order: -1;
    }

    .about-me img {
        max-width: 220px;
        margin-left: 0;
        margin-top: 40px;
        border: 6px solid #3786d6;
        order: 0;
        transition: none;
    }

    .about-me img:hover {
        transform: none;
    }

    .about-me p {
        font-size: 22px;
        padding-top: 40px;
        margin-bottom: -30px;
        order: 1;
    }

    .my-interests {
        flex-direction: column;
        text-align: center;
    }

    .my-interests h2 {
        font-size: 76px;
        text-align: center;
        padding: 0;
        order: -1;
    }

    .my-interests img {
        max-width: 220px;
        margin: 0;
        margin-top: 40px;
        border: 6px solid #212b47;
        transition: none;
        order: 0;
    }

    .my-interests img:hover {
        transform: none;
    }

    .interests-list {
        list-style-type: disc ;
        margin-top: 30px;
        margin-bottom: -30px;
        padding: 0;
        padding-left: 15px;
        order: 1;
    }

    .interests-list li {
        position: relative;
        padding: 0;
        text-align: left;
        font-size: 22px;
    }

    .interests-list li::before {
        display: none;
    }

    .extra-images {
        flex-direction: column;
        align-items: center;
        gap: 16px;
        margin-bottom: -20px;
    }

    #image1, #image2, #image3 {
        transition: none;
        max-width: 320px;
    }

    #image1:hover, #image2:hover, #image3:hover {
        transform: none;
    }

    .arrow-container {
        padding-top: 25px;
    }

    .arrow {
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        border-top: 13px solid #181d2c;
    }

    .button-container {
        padding-bottom: 50px;
        padding-top: 30px;
    }

    .github-button {
        font-size: 22px;
    }

    .button-container #github-button-id #github-button-icon {
        max-width: 24px;
    }

    .footer p {
        font-size: 14px;
        padding-top: 16px;
    }

    #my-links {
        padding-top: 10px;
        padding-bottom: 5px;
        margin-top: -8px;
    }
    
    .personal-social-icons svg {
        max-width: 22px;
    }

    #repository-link {
        margin-top: -20px;
        font-size: 9px;
    }
}

JavaScript:

window.addEventListener('scroll', function() {
    const parallaxContainer = document.querySelector('.parallax-container');
    let scrollPosition = window.scrollY; 
    parallaxContainer.style.backgroundPositionY = scrollPosition * 0.5 + 'px'; 
});

// Span com atualização automática do ano para o rodapé
document.getElementById('current-year').textContent = new Date().getFullYear();

// Event listener para o clique do usuário no botão do "Github"
document.getElementById('github-button-id').addEventListener('click', function() {
    // Impede o comportamento padrão do link
    event.preventDefault();
    // Exibindo mensagem de alerta e verificando a escolha do usuário
    if (confirm('⚠️⚠️⚠️✋😲 Calma aí meu consagrado, você será redirecionado para outra página.\r\n\n Deseja continuar meeesmo?🤔🤔🤔')) {
        // Se o usuário clicar em "OK", redireciona para o link do GitHub...
        window.location.href = 'https://github.com/juletopi';
    }
    // ...se clicar em "Cancelar", nada acontece e o usuário permanece na página
});

🖼️ Imagem da página

WebPageView

2. Manipulação de Texto e Cor com jQuery

Note

Retirado da aula de "CodigoAula02"
Link do repositório do projeto original: static-website by Prof-Karan-Luciano

Nesta aula foram aprendidos:

  • Utilização da biblioteca do jQuery para interações com o DOM e manipulação de eventos.
  • Criação de uma página-web com as seguintes funcionalidades:
    • Trocar o texto do título entre "Título Inicial" e "Título Alterado".
    • Alterar as cores principais da página entre os modos escuro e claro.
    • Modificar o texto do título com um valor inserido pelo usuário no campo de texto.

HTML:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Manipulação de Texto e Cor com jQuery | Aula 02 de Programação Web</title>
    <link rel="stylesheet" href="src/css/reset.css">
    <link rel="stylesheet" href="src/css/lightMode.css">
    <link rel="stylesheet" href="src/css/style.css">
    <link rel="stylesheet" href="src/css/pseudoElementStyles.css">
    <link rel="stylesheet" href="src/css/responsive.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <link rel="shortcut icon" href="src/images/ProgramacaoWebAula02Icon.ico" type="image/x-icon" />
</head>
<body>
    <!-- Cabeçalho da página da página -->
    <header class="header">
        <img src="src/images/ProgramacaoWebAula02Image.png" alt="ProgramacaoWebAula02Image">
        <h1 id="titulo">Título Inicial</h1>
    </header>

    <!-- Container-pai principal que contém as duas seções lado-a-lado -->
    <div class="main-content">
        <!-- Seção de informações do projeto -->
        <aside class="project-info">
            <h2>Projeto de Manipulação de Texto e Cor com jQuery</h2>
            <p>Este é um projeto simples de manipulação de texto e cor usando HTML, CSS, JavaScript e jQuery.</p>

            <h3>Funcionalidades</h3>
            <ul>
                <li>Trocar o texto do título entre "Título Inicial" e "Título Alterado".</li>
                <li>Alterar as cores principais da página entre os modos escuro e claro.</li>
                <li>Modificar o texto do título com um valor inserido pelo usuário no campo de texto.</li>
            </ul>
        </aside>

        <!-- Container com o conteúdo principal da página -->
        <div class="container">
            <button id="botao-trocar-texto">Trocar Texto</button>
            <button id="botao-trocar-cor">Trocar Cor de Fundo</button>
            <input type="text" id="input-novo-texto" placeholder="Novo texto...">
            <button id="botao-alterar-texto">Alterar Texto do Título</button>
        </div>
    </div>

    <!-- Rodapé da página -->
    <footer class="footer">
        <p>&copy; <span id="current-year"></span> Aula 02 de Programação Web ┃ Feito com ♥️ por Juletopi.</p>
        <p id="my-links">Me encontre aqui:</p>
        <div class="personal-social-icons">
            <a id="facebook-icon" href="https://www.facebook.com/profile.php?id=100006955867774" target="_blank" title="Facebook">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="28" height="28" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M25,3c-12.15,0 -22,9.85 -22,22c0,11.03 8.125,20.137 18.712,21.728v-15.897h-5.443v-5.783h5.443v-3.848c0,-6.371 3.104,-9.168 8.399,-9.168c2.536,0 3.877,0.188 4.512,0.274v5.048h-3.612c-2.248,0 -3.033,2.131 -3.033,4.533v3.161h6.588l-0.894,5.783h-5.694v15.944c10.738,-1.457 19.022,-10.638 19.022,-21.775c0,-12.15 -9.85,-22 -22,-22z"></path></g></g></svg>
            </a>
            <a id="instagram-icon" href="https://www.instagram.com/juletopi/" target="_blank" title="Instagram">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="28" height="28" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(4,4)"><path d="M21.58008,7c-8.039,0 -14.58008,6.54494 -14.58008,14.58594v20.83203c0,8.04 6.54494,14.58203 14.58594,14.58203h20.83203c8.04,0 14.58203,-6.54494 14.58203,-14.58594v-20.83398c0,-8.039 -6.54494,-14.58008 -14.58594,-14.58008zM47,15c1.104,0 2,0.896 2,2c0,1.104 -0.896,2 -2,2c-1.104,0 -2,-0.896 -2,-2c0,-1.104 0.896,-2 2,-2zM32,19c7.17,0 13,5.83 13,13c0,7.17 -5.831,13 -13,13c-7.17,0 -13,-5.831 -13,-13c0,-7.169 5.83,-13 13,-13zM32,23c-4.971,0 -9,4.029 -9,9c0,4.971 4.029,9 9,9c4.971,0 9,-4.029 9,-9c0,-4.971 -4.029,-9 -9,-9z"></path></g></g></svg>
            </a>
            <a id="linkedin-icon" href="https://www.linkedin.com/in/julio-cezar-pereira-camargo/" target="_blank" title="LinkedIn">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="27" height="27" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M41,4h-32c-2.76,0 -5,2.24 -5,5v32c0,2.76 2.24,5 5,5h32c2.76,0 5,-2.24 5,-5v-32c0,-2.76 -2.24,-5 -5,-5zM17,20v19h-6v-19zM11,14.47c0,-1.4 1.2,-2.47 3,-2.47c1.8,0 2.93,1.07 3,2.47c0,1.4 -1.12,2.53 -3,2.53c-1.8,0 -3,-1.13 -3,-2.53zM39,39h-6c0,0 0,-9.26 0,-10c0,-2 -1,-4 -3.5,-4.04h-0.08c-2.42,0 -3.42,2.06 -3.42,4.04c0,0.91 0,10 0,10h-6v-19h6v2.56c0,0 1.93,-2.56 5.81,-2.56c3.97,0 7.19,2.73 7.19,8.26z"></path></g></g></svg>
            </a>
            <a id="github-icon" href="https://github.com/juletopi" target="_blank" title="GitHub">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="30" height="30" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(4,4)"><path d="M32,6c-14.359,0 -26,11.641 -26,26c0,12.277 8.512,22.56 19.955,25.286c-0.592,-0.141 -1.179,-0.299 -1.755,-0.479v-5.957c0,0 -0.975,0.325 -2.275,0.325c-3.637,0 -5.148,-3.245 -5.525,-4.875c-0.229,-0.993 -0.827,-1.934 -1.469,-2.509c-0.767,-0.684 -1.126,-0.686 -1.131,-0.92c-0.01,-0.491 0.658,-0.471 0.975,-0.471c1.625,0 2.857,1.729 3.429,2.623c1.417,2.207 2.938,2.577 3.721,2.577c0.975,0 1.817,-0.146 2.397,-0.426c0.268,-1.888 1.108,-3.57 2.478,-4.774c-6.097,-1.219 -10.4,-4.716 -10.4,-10.4c0,-2.928 1.175,-5.619 3.133,-7.792c-0.2,-0.567 -0.533,-1.714 -0.533,-3.583c0,-1.235 0.086,-2.751 0.65,-4.225c0,0 3.708,0.026 7.205,3.338c1.614,-0.47 3.341,-0.738 5.145,-0.738c1.804,0 3.531,0.268 5.145,0.738c3.497,-3.312 7.205,-3.338 7.205,-3.338c0.567,1.474 0.65,2.99 0.65,4.225c0,2.015 -0.268,3.19 -0.432,3.697c1.898,2.153 3.032,4.802 3.032,7.678c0,5.684 -4.303,9.181 -10.4,10.4c1.628,1.43 2.6,3.513 2.6,5.85v8.557c-0.576,0.181 -1.162,0.338 -1.755,0.479c11.443,-2.726 19.955,-13.009 19.955,-25.286c0,-14.359 -11.641,-26 -26,-26zM33.813,57.93c-0.599,0.042 -1.203,0.07 -1.813,0.07c0.61,0 1.213,-0.029 1.813,-0.07zM37.786,57.346c-1.164,0.265 -2.357,0.451 -3.575,0.554c1.218,-0.103 2.411,-0.29 3.575,-0.554zM32,58c-0.61,0 -1.214,-0.028 -1.813,-0.07c0.6,0.041 1.203,0.07 1.813,0.07zM29.788,57.9c-1.217,-0.103 -2.411,-0.289 -3.574,-0.554c1.164,0.264 2.357,0.451 3.574,0.554z"></path></g></g></svg>
            </a>
            <a id="whatsapp-icon" href="http://api.whatsapp.com/send?phone=5569993606894" target="_blank" title="Whatsapp">
                <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="26" height="26" viewBox="0,0,256,256"style="fill:#000000;"><g fill="#a59cc2" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.12,5.12)"><path d="M25,2c-12.682,0 -23,10.318 -23,23c0,3.96 1.023,7.854 2.963,11.29l-2.926,10.44c-0.096,0.343 -0.003,0.711 0.245,0.966c0.191,0.197 0.451,0.304 0.718,0.304c0.08,0 0.161,-0.01 0.24,-0.029l10.896,-2.699c3.327,1.786 7.074,2.728 10.864,2.728c12.682,0 23,-10.318 23,-23c0,-12.682 -10.318,-23 -23,-23zM36.57,33.116c-0.492,1.362 -2.852,2.605 -3.986,2.772c-1.018,0.149 -2.306,0.213 -3.72,-0.231c-0.857,-0.27 -1.957,-0.628 -3.366,-1.229c-5.923,-2.526 -9.791,-8.415 -10.087,-8.804c-0.295,-0.389 -2.411,-3.161 -2.411,-6.03c0,-2.869 1.525,-4.28 2.067,-4.864c0.542,-0.584 1.181,-0.73 1.575,-0.73c0.394,0 0.787,0.005 1.132,0.021c0.363,0.018 0.85,-0.137 1.329,1.001c0.492,1.168 1.673,4.037 1.819,4.33c0.148,0.292 0.246,0.633 0.05,1.022c-0.196,0.389 -0.294,0.632 -0.59,0.973c-0.296,0.341 -0.62,0.76 -0.886,1.022c-0.296,0.291 -0.603,0.606 -0.259,1.19c0.344,0.584 1.529,2.493 3.285,4.039c2.255,1.986 4.158,2.602 4.748,2.894c0.59,0.292 0.935,0.243 1.279,-0.146c0.344,-0.39 1.476,-1.703 1.869,-2.286c0.393,-0.583 0.787,-0.487 1.329,-0.292c0.542,0.194 3.445,1.604 4.035,1.896c0.59,0.292 0.984,0.438 1.132,0.681c0.148,0.242 0.148,1.41 -0.344,2.771z"></path></g></g></svg>
            </a>
        </div>
        <p id="repository-link">Esta página-web é de código aberto. Clique <a href="https://github.com/juletopi/Programacao_Web" target="_blank">aqui</a> para acessar o repositório com o código-fonte.</p>
    </footer>

    <!-- Link do script do JavaScript com as funções -->
    <script src="src/js/functions.js"></script>
</body>
</html>

CSS (reset.css):

/* Reset básico para todos os elementos */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Remove a decoração padrão dos links */
a {
	text-decoration: none;
}

/* Adiciona um scroll suave */
html {
    scroll-behavior: smooth;
}

CSS (style.css):

/* Arquivo o qual fica a estilização CSS da página */

/* Estilização básica do corpo do documento */
body {
    font-family: Verdana;
    color: #dbc0ff;
    background-color: #191625;
}

/* Estilização do cabeçalho da página */
.header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

/* Estilização da imagem no cabeçalho da página */
.header img {
    width: 100%;
    height: auto;
    max-width: 190px;
    margin-top: 80px;
}

/* Estilização do título no cabeçalho da página */
.header h1 {
    font-size: 45px;
    color: #dbc0ff;
    margin: 20px 0;
    margin-bottom: -20px;
    text-align: center;
    letter-spacing: -3px;
}

/* Estilização do contêiner-pai principal da página */
.main-content {
    display: flex;
    justify-content: space-between;
    padding: 40px;
}

/* Estilização da seção de informações do projeto da página */
.project-info {
    flex: 2;
    background-color: #2a2d4d;
    color: #dbc0ff;
    padding: 30px;
    padding-right: 80px;
    margin: 40px auto;
    margin-right: 40px;
    border-radius: 10px;
    max-width: 600px;
    text-align: left;
}

/* Estilização dos títulos na seção de informações do projeto da página */
.project-info h2 {
    font-size: 26px;
    margin-bottom: 10px;
}

/* Estilização do subtítulo na seção de informações do projeto da página */
.project-info h3 {
    font-size: 20px;
    margin-top: 20px;
    margin-bottom: 10px;
}

/* Estilização da lista na seção de informações do projeto da página */
.project-info ul {
    list-style-type: disc;
    padding-left: 20px;
}

/* Estilização do container principal da página */
.container {
    flex: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 80px;
    padding-bottom: 80px;
    border: 5px solid #dbc0ff;
    border-radius: 10px;
    background-color: transparent;
}

/* Estilização dos botões */
.container button {
    margin: 10px;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: bold;
    border: none;
    background-color: #214772;
    color: #ffffff;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

/* Estilização específica do botão 'botao-trocar-texto' da página */
#botao-trocar-texto {
    padding: 12px 62px;
}

/* Estilização específica do botão 'botao-trocar-cor' da página */
#botao-trocar-cor {
    padding: 12px 30px;
}

/* Estilização específica do botão 'botao-alterar-texto' da página */
#botao-alterar-texto {
    border: 3px solid #214772;
    color: #dbc0ff;
    border-radius: 5px;
    padding: 10px 22px;
    background-color: transparent;
}

/* Estilização específica dos botões 'botao-trocar-texto' e 'botao-trocar-cor' da página ao passar o mouse por cima */
#botao-trocar-texto:hover,
#botao-trocar-cor:hover {
    background-color: #dbc0ff;
    color: #0e0e0e;
}

/* Estilização específica do botão 'botao-alterar-texto' da página ao passar o mouse por cima */
#botao-alterar-texto:hover {
    background-color: #214772;
    border: 3px solid #214772;
    border-radius: 5px;
}

/* Estilização do input */
.container input {
    padding: 10px;
    font-size: 16px;
    margin: 10px;
    border: 3px solid #dbc0ff;
    border-radius: 5px;
    text-align: center;
    color: #ffffff;
    background-color: #00000000;
}

/* Estilização do rodapé */
.footer {
    background-color: #0e0e0e;
    color: #c5c5c5;
}

/* Estilização do texto do rodapé */
.footer p {
    padding-bottom: 10px;
    padding-top: 30px;
    text-align: center;
    font-size: 14px;
}

/* Estilização do texto predescente aos links pessoais do autor do site no rodapé */
#my-links {
    margin-top: -25px;
}

/* Estilização dos ícones sociais pessoais do autor do site */
.personal-social-icons {
    margin-top: 8px;
    padding-bottom: 25px;
    display: flex;
    justify-content: center;
    gap: 30px;
}

/* Estilização do preenchimento dos ícones sociais do autor do site */
.personal-social-icons a svg path {
    fill: #9e9e9e;
    transition: fill 0.3s ease-in-out;
}

/* Estilização geral inicial dos ícones sociais do autor do site */
.personal-social-icons a svg {
    transition: transform 0.3s ease-in-out;
}

/* Estilização específica do ícone "Facebook" ao passar o mouse */
#facebook-icon:hover svg path {
    fill: #3b5998;
}

/* Estilização específica do ícone "Instagram" ao passar o mouse */
#instagram-icon:hover svg path {
    fill: #e1306c;
}

/* Estilização específica do ícone "LinkedIn" ao passar o mouse */
#linkedin-icon:hover svg path {
    fill: #0077b5;
}

/* Estilização específica do ícone "GitHub" ao passar o mouse */
#github-icon:hover svg path {
    fill: #333333;
}

/* Estilização específica do ícone "Whatsapp" ao passar o mouse */
#whatsapp-icon:hover svg path {
    fill: #25d366;
}

/* Estilização da expansão ao passar o mouse sobre os ícones do autor do site */
.personal-social-icons a:hover svg {
    transform: scale(1.2);
}

/* Estilização do texto no final do site no rodapé */
#repository-link {
    color: #7a7a7a;
    background-color: #030303;
    font-family: Verdana;
    font-size: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
}

/* Estilização do link texto no final do site no rodapé */
#repository-link a {
    color: #8848ff;
}

/* Estilização do link texto no final do site no rodapé ao passar o mouse */
#repository-link:hover a {
    color: #69afe9;
}

CSS (lightMode.css):

/* Arquivo o qual fica o modo 'Light Mode' da página */

.light-mode {
    background-color: #e2e3f0;
    color: #080e16;
}

.light-mode .header h1 {
    color: #080e16;
}

.light-mode .project-info {
    background-color: #a5aeff;
    color: #214772;
}

.light-mode .container {
    border: 5px solid #080e16;
}

.light-mode .container button {
    background-color: #214772;
    color: #e2e3f0;
}

.light-mode #botao-alterar-texto {
    color: #080e16;
}

.light-mode .container input {
    border: 3px solid #080e16;
    color: #080e16;
}

.light-mode #botao-trocar-texto:hover,
.light-mode #botao-trocar-cor:hover {
    background-color: #a5aeff;
    color: #214772;
}

.light-mode #botao-alterar-texto:hover {
    background-color: #214772;
    border: 3px solid #214772;
    color: #e2e3f0;
    border-radius: 5px;
}

.light-mode::-webkit-scrollbar {
    background-color: #c5c5c5;
    width: 10px;
	height: 8px;
}

.light-mode::-webkit-scrollbar-thumb {
    background-color: #214772;
    border-radius: 8px;
}

.light-mode::selection {
    background-color: #193556b0;
    color: #c0c6ff;
}

CSS (pseudoElementsStyles.css):

/* Estilização da barra de rolagem */
::-webkit-scrollbar {
    background-color: #13111d;
    width: 10px;
	height: 8px;
}

/* Estilização do indicador da barra de rolagem */
::-webkit-scrollbar-thumb {
    background-color: #193556;
    border-radius: 8px;
}

/* Estilização da seleção de texto */
::selection {
    background-color: #dee1fab6;
    color: #193556;
}

CSS (responsive.css):

/* Tablets */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .header img {
        max-width: 160px;
    }

    .header h1 {
        font-size: 38px;
    }

    .project-info {
        padding-right: 40px;
    }

    .project-info h2 {
        font-size: 22px;
    }
    
    .project-info h3 {
        font-size: 19px;
    }

    .footer p {
        font-size: 13px;
        padding-top: 16px;
    }

    #my-links {
        padding-top: 10px;
        padding-bottom: 5px;
        margin-top: -8px;
    }
    
    .personal-social-icons svg {
        max-width: 26px;
    }

    #repository-link {
        margin-top: -20px;
        font-size: 9px;
    }
}

/* Smartphones */
@media screen and (max-width: 767px) {
    .header img {
        max-width: 140px;
    }

    .header h1 {
        font-size: 35px;
        margin-bottom: -50px;
    }

    .main-content {
        flex-direction: column;
        align-items: center;
    }

    .project-info {
        order: 2;
        width: 90%;
        margin: 20px 0;
        padding-right: 40px;
    }

    .project-info h2 {
        font-size: 19px;
    }
    
    .project-info h3 {
        font-size: 17px;
    }

    .container {
        order: 1;
        width: 90%;
        margin: 20px 0;
    }

    .footer p {
        font-size: 11px;
        padding-top: 16px;
    }

    #my-links {
        padding-top: 10px;
        padding-bottom: 5px;
        margin-top: -8px;
    }
    
    .personal-social-icons svg {
        max-width: 22px;
    }

    #repository-link {
        margin-top: -20px;
        font-size: 9px;
    }
}

JavaScript:

// Arquivo o qual fica o JavaScript da página

/*
let textoOriginal = document.getElementById('titulo').textContent;

document.getElementById('botao-trocar-texto').addEventListener('click' , function() {
    document.getElementById('titulo').textContent = 'Texto trocado'

    let titulo = document.getElementById('titulo');

    if (titulo.textContent === 'Texto trocado'){
        titulo.textContent = textoOriginal;
    } else {
        textoOriginal = titulo.textContent;
        titulo.textContent = 'Texto trocado'
    }
});
*/

// Span com atualização automática do ano para o rodapé
document.getElementById('current-year').textContent = new Date().getFullYear();

// Função para mudar o título principal da página
$(document).ready(function(){
    $('#botao-trocar-texto').on('click', function(){
        let titulo = document.getElementById('titulo'); // <-- Obtém o elemento do título pelo ID 'titulo'

        if (titulo.textContent === 'Texto trocado'){
            titulo.textContent = textoOriginal;
        } else {
            textoOriginal = titulo.textContent;
            titulo.textContent = 'Texto trocado';
        }
    })

    let corAtual = true; // <-- Variável para armazenar o estado atual da cor

    // Função para mudar a cor do fundo da página
    $('#botao-trocar-cor').on('click', function() {
        if (corAtual) {
            $('body').addClass('light-mode'); // <-- Adiciona a classe de light mode
        } else {
            $('body').removeClass('light-mode'); // <-- Remove a classe de light mode
        }
        corAtual = !corAtual; // <-- Alterna o valor da variável
    })

    // Função para mudar o título principal da página via input
    $('#botao-alterar-texto').on('click', function() {
        let novoTexto = $('#input-novo-texto').val(); // <-- Pega o valor do campo de input

        if (novoTexto) {
            $('#titulo').text(novoTexto);
        } else {
            alert('Por favor, insira um texto válido!'); // <-- Alerta se o campo estiver vazio
        }
    })
});

🖼️ Imagem da página

WebPageViewDarkMode-pic WebPageViewLightMode-pic


👤 Autor



Feito com 💜 por Juletopi.

About

🌐 • Repositório front-end com os conteúdos de Programação Web, utilizando o VSCode e as linguagens de HTML, CSS e JavaScript, e frameworks e bibliotecas como ferramentas de aprendizado.

Topics

Resources

License

Stars

Watchers

Forks