Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

henriquetourinho/Social-Connect-3D

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Connect 3D 🚀✨

Social Connect 3D é um componente de ícones de compartilhamento para redes sociais, desenvolvido para ser integrado em qualquer projeto web. Construído com HTML5, CSS3 puro e JavaScript (Vanilla JS), ele oferece uma experiência de usuário rica e moderna.

A filosofia deste projeto é fornecer um componente visualmente impressionante e de alta performance que seja, ao mesmo tempo, modular e fácil de integrar, sem forçar estilos indesejados na sua página.

Prévia da Animação dos Ícones

Animação principal do componente em ação.


🎨 Funcionalidades Principais

  • 🧊 Design 3D Interativo: Efeito de perspectiva que projeta os ícones em um espaço tridimensional ao passar o mouse.
  • ⚙️ Animações em Camadas: Efeito de paralaxe entre o fundo, o ícone e o brilho para uma sensação de profundidade real.
  • 💡 Tooltip Integrado: O nome da rede social desliza suavemente, complementando a animação principal.
  • 🚀 Performance Otimizada: Código leve e sem dependências externas de JavaScript. A animação é controlada por CSS para máxima fluidez.
  • 🧩 Componente Modular: Estilos cuidadosamente separados para que o componente não interfira no design do seu site.
  • 🔗 Funcionalidade Real: O JavaScript abre as janelas de compartilhamento corretas, usando o título e a URL da página dinamicamente.

🚀 Como Integrar em Seu Projeto (Guia Técnico)

Para garantir que você copie apenas o código dos ícones sem afetar o resto do seu site, o processo foi separado em 3 partes essenciais: HTML, CSS e JavaScript.

1. Estrutura HTML

Copie o bloco de código HTML abaixo para a área da sua página onde os ícones de compartilhamento devem aparecer.

Clique para ver o código HTML do Componente
   <div class="share-container">
        
        <div class="btn-wrapper">
            <a href="#" class="share-btn whatsapp">
                <i class="fab fa-whatsapp"></i>
                <span>WhatsApp</span>
            </a>
        </div>

        <div class="btn-wrapper">
            <a href="#" class="share-btn facebook">
                <i class="fab fa-facebook-f"></i>
                <span>Facebook</span>
            </a>
        </div>

        <div class="btn-wrapper">
            <a href="#" class="share-btn linkedin">
                <i class="fab fa-linkedin-in"></i>
                <span>LinkedIn</span>
            </a>
        </div>

        <div class="btn-wrapper">
            <a href="#" class="share-btn x-twitter">
                <i class="fab fa-x-twitter"></i>
                <span>X</span>
            </a>
        </div>

        <div class="btn-wrapper">
            <a href="#" class="share-btn pinterest">
                <i class="fab fa-pinterest"></i>
                <span>Pinterest</span>
            </a>
        </div>

        <div class="btn-wrapper">
            <a href="#" class="share-btn telegram">
                <i class="fab fa-telegram-plane"></i>
                <span>Telegram</span>
            </a>
        </div>
        
        <div class="btn-wrapper">
            <a href="#" class="share-btn email">
                <i class="fas fa-envelope"></i>
                <span>E-mail</span>
            </a>
        </div>
        
        <div class="btn-wrapper">
            <a href="#" class="share-btn reddit">
                <i class="fab fa-reddit-alien"></i>
                <span>Reddit</span>
            </a>
        </div>

    </div>

2. Estilos CSS (O Essencial)

O código abaixo contém APENAS o necessário para que os ícones 3D e suas animações funcionem. Ele não irá modificar fontes, fundos ou outros elementos da sua página.

Clique para ver o código CSS Essencial
/**
 * Social Connect 3D - Componente de Ícones de Compartilhamento
 * @author Henrique Tourinho
 * @license MIT
 * @version 1.1.0
 */

/* O container que alinha os wrappers dos botões */
.share-container {
    display: flex;
    flex-wrap: wrap; 
    justify-content: center;
    gap: 25px; /* Espaço entre os botões */
}

/* O wrapper que cria o ambiente 3D para cada botão */
.btn-wrapper {
    perspective: 1000px;
}

/* O botão em si e sua preparação para animação 3D */
.share-btn {
    position: relative;
    display: grid; 
    place-items: center;
    width: 60px;
    height: 60px;
    border-radius: 15px;
    text-decoration: none;
    transform-style: preserve-3d;
    transform: translateZ(20px);
    transition: transform 0.5s cubic-bezier(0.2, 1, 0.8, 1), box-shadow 0.5s cubic-bezier(0.2, 1, 0.8, 1);
}

.btn-wrapper:hover .share-btn {
    transform: translateZ(50px) rotateX(20deg) rotateY(-25deg);
    box-shadow: -25px 25px 40px rgba(0, 0, 0, 0.5);
}

/* Camada 1: O Ícone (glifo do Font Awesome) */
.share-btn > i {
    font-size: 1.8rem;
    color: #fff;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
    transform: translateZ(40px);
    pointer-events: none;
}

/* Camada 2: A Base Colorida */
.share-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    transform: translateZ(0);
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.4);
    transition: background-color 0.3s ease;
}

/* Camada 3: O Efeito de Brilho */
.share-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 50%);
    opacity: 0;
    transform: translateZ(1px) scale(1.1);
    transition: opacity 0.5s ease;
}

.btn-wrapper:hover .share-btn::after {
    opacity: 1;
}

/* Camada 4: O Tooltip com o nome da rede */
.share-btn > span {
    position: absolute;
    bottom: -10px;
    background: #2c2c2e;
    color: #f0f0f0;
    padding: 3px 10px;
    border-radius: 5px;
    font-size: 0.7rem;
    font-weight: 600;
    opacity: 0;
    transform: translateY(20px);
    transition: transform 0.4s 0.1s cubic-bezier(0.2, 1, 0.8, 1), opacity 0.4s 0.1s;
    box-shadow: 0 5px 10px rgba(0,0,0,0.2);
    pointer-events: none;
}

.btn-wrapper:hover .share-btn > span {
    opacity: 1;
    transform: translateY(0px);
}

/* Cores específicas para cada rede social */
.share-btn.whatsapp::before { background-color: #25D366; }
.share-btn.facebook::before { background-color: #1877F2; }
.share-btn.linkedin::before { background-color: #0077B5; }
.share-btn.x-twitter::before { background-color: #000000; }
.share-btn.pinterest::before { background-color: #E60023; }
.share-btn.telegram::before { background-color: #26A5E4; }
.share-btn.email::before { background-color: #777777; }
.share-btn.reddit::before { background-color: #FF4500; }

3. Lógica JavaScript

Este script é autônomo e não depende de nenhuma biblioteca. Cole-o em seu arquivo .js ou no final do <body> da sua página.

Clique para ver o código JavaScript
/**
 * Social Connect 3D - Lógica de Compartilhamento
 * @author Henrique Tourinho
 * @license MIT
 */
document.addEventListener('DOMContentLoaded', () => {
    const shareButtons = document.querySelectorAll('.share-btn');
    
    // Pega o título da página e a URL atual para compartilhar
    const pageUrl = encodeURIComponent(window.location.href);
    const pageTitle = encodeURIComponent(document.title);

    shareButtons.forEach(button => {
        button.addEventListener('click', (e) => {
            e.preventDefault();

            let shareUrl = '';
            const social = Array.from(button.classList).find(cls => cls !== 'share-btn');
            
            switch(social) {
                case 'whatsapp': shareUrl = `https://api.whatsapp.com/send?text=${pageTitle}%0A%0A${pageUrl}`; break;
                // Adicione outros cases aqui...
            }

            if (shareUrl) {
                window.open(shareUrl, '_blank', 'width=600,height=400,noopener,noreferrer');
            }
        });
    });
});

4. Dependência (Font Awesome)

Não se esqueça de adicionar a linha abaixo no <head> do seu HTML para que os logotipos das redes sociais apareçam.

<link rel="stylesheet" href="[https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css](https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css)" />

🌐 Site de Demonstração (Demo Completa)

Para uma visão completa do componente em um ambiente real, explore a pasta /site neste repositório.

Dentro dela, você encontrará uma página web totalmente funcional (index.html, css/style.css, js/script.js) que serve como um exemplo prático de implementação. É a melhor forma de testar o projeto localmente ou de ver como as partes se conectam.

➡️ Navegue até a pasta /site para ver os arquivos


🛠️ Opções de Customização

Elemento Arquivo Como Customizar
Adicionar/Remover Ícones HTML Adicione ou remova um bloco <div class="btn-wrapper">...</div>. Use a classe correta do Font Awesome (fab fa-...).
Mudar Ordem HTML Reordene os blocos <div class="btn-wrapper">.
Mudar Cores CSS No final do CSS essencial, edite ou adicione regras de cor. Ex: .share-btn.suarede::before { background-color: #cor; }.
Título/URL JavaScript Altere as constantes pageUrl e pageTitle para usar valores fixos em vez dos valores automáticos.

💡 Filosofia do Projeto

"Crio ferramentas de código aberto para que mais brasileiros possam construir e compartilhar suas próprias grandes ideias."


🙋‍♂️ Desenvolvido por

Carlos Henrique Tourinho Santana
📍 Salvador - Bahia
🔗 GitHub: github.com/henriquetourinho
🔗 Wiki: wiki.debian.org/henriquetourinho


📢 Este é um projeto vivo — colaborações e sugestões são muito bem-vindas!

Morty Proxy This is a proxified and sanitized view of the page, visit original site.