<html><head><base href="https://%E6%A0%87%E9%A2%98%E8%8B%B1%E8%AF%AD%EF%BC%8Chttps://www.543x.com%E5%8F%B3%E4%B8%8A%E6%B7%BB%E5%8A%A0%E9%93%BE%E6%8E%A5%E7%BD%91%E7%AB%99%E4%BB%8B%E7%BB%8D">

<title>Cryptocurrency Periodic Table</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<style>

    :root {

        --primary-color: #0056b3;

        --background-color: #f0f8ff;

        --element-hover-color: rgba(255,255,255,0.1);

    }

    body, html {

        margin: 0;

        padding: 0;

        font-family: 'Roboto', 'Arial', sans-serif;

        background-color: var(--background-color);

        color: #333;

        line-height: 1.6;

    }

    .container {

        max-width: 100%;

        margin: 0 auto;

        padding: 10px;

    }

    header {

        display: flex;

        justify-content: space-between;

        align-items: center;

        padding: 10px 20px;

        background-color: var(--primary-color);

        color: white;

    }

    h1 {

        font-size: 1.8em;

        margin: 0;

        text-transform: uppercase;

        letter-spacing: 1px;

    }

    .site-info {

        font-size: 0.9em;

    }

    .site-info a {

        color: white;

        text-decoration: none;

        padding: 5px 10px;

        border: 1px solid white;

        border-radius: 5px;

        transition: all 0.3s ease;

    }

    .site-info a:hover {

        background-color: white;

        color: var(--primary-color);

    }

    .periodic-table {

        display: grid;

        grid-template-columns: repeat(18, 1fr);

        gap: 1px;

        background-color: #fff;

        padding: 5px;

        border-radius: 8px;

        box-shadow: 0 4px 6px rgba(0,0,0,0.1);

        margin-top: 20px;

    }

    .element {

        aspect-ratio: 1;

        display: flex;

        flex-direction: column;

        justify-content: center;

        align-items: center;

        border-radius: 4px;

        transition: all 0.3s ease;

        cursor: pointer;

        padding: 2px;

        font-size: 0.5vw;

        position: relative;

        overflow: hidden;

    }

    .element:hover {

        transform: scale(1.05);

        z-index: 1;

        box-shadow: 0 0 10px rgba(0,0,0,0.2);

    }

    .element:hover::after {

        content: '';

        position: absolute;

        top: 0;

        left: 0;

        right: 0;

        bottom: 0;

        background-color: var(--element-hover-color);

        pointer-events: none;

    }

    .symbol {

        font-size: 1.2em;

        font-weight: bold;

    }

    .number {

        font-size: 0.6em;

        position: absolute;

        top: 1px;

        left: 1px;

    }

    .name {

        font-size: 0.5em;

        text-align: center;

        margin-top: 1px;

        opacity: 0.7;

    }

    .modal {

        display: none;

        position: fixed;

        z-index: 2;

        left: 0;

        top: 0;

        width: 100%;

        height: 100%;

        overflow: auto;

        background-color: rgba(0,0,0,0.6);

        backdrop-filter: blur(5px);

    }

    .modal-content {

        background-color: #fefefe;

        margin: 10% auto;

        padding: 20px;

        border: 1px solid #888;

        width: 90%;

        max-width: 400px;

        border-radius: 8px;

        position: relative;

        box-shadow: 0 4px 20px rgba(0,0,0,0.2);

    }

    .close {

        color: #aaa;

        float: right;

        font-size: 28px;

        font-weight: bold;

        cursor: pointer;

        transition: color 0.3s ease;

    }

    .close:hover {

        color: #000;

    }

    .legend {

        display: flex;

        flex-wrap: wrap;

        justify-content: center;

        margin-top: 15px;

        background-color: #fff;

        padding: 8px;

        border-radius: 8px;

        box-shadow: 0 2px 4px rgba(0,0,0,0.1);

    }

    .legend-item {

        display: flex;

        align-items: center;

        margin: 3px 5px;

        font-size: 0.7em;

    }

    .legend-color {

        width: 15px;

        height: 15px;

        margin-right: 4px;

        border-radius: 2px;

    }

    .additional-rows {

        grid-column: 4 / -1;

        display: grid;

        grid-template-columns: repeat(15, 1fr);

        gap: 1px;

        margin-top: 5px;

    }

    .additional-rows::before {

        content: attr(data-label);

        grid-column: 1 / span 3;

        display: flex;

        align-items: center;

        justify-content: center;

        font-weight: bold;

        background-color: #f0f0f0;

        border-radius: 4px;

        writing-mode: vertical-rl;

        text-orientation: mixed;

        transform: rotate(180deg);

        padding: 3px;

        font-size: 0.6em;

    }

    @media (max-width: 1200px) {

        .element {

            font-size: 0.8vw;

        }

        .legend-item {

            font-size: 0.6em;

        }

    }

    @media (max-width: 768px) {

        .element {

            font-size: 1.5vw;

        }

        .legend-item {

            font-size: 0.5em;

        }

        .additional-rows::before {

            font-size: 0.5em;

        }

    }

</style>

</head>

<body>

<header>

    <h1>Cryptocurrency Periodic Table</h1>

    <div class="site-info">

        <a href="https://www.543x.com" target="_blank">Website Info</a>

    </div>

</header>

<div class="container">

    <div class="periodic-table" id="periodicTable"></div>

    <div class="legend" id="legend"></div>

</div>


<div id="elementModal" class="modal">

    <div class="modal-content">

        <span class="close">&times;</span>

        <h2 id="modalTitle"></h2>

        <p id="modalInfo"></p>

    </div>

</div>


<script>

const cryptoGroups = [

    {name: 'Top Tier', color: '#FF6666', coins: ['BTC', 'ETH', 'BNB', 'ADA', 'SOL', 'DOT', 'DOGE']},

    {name: 'DeFi Leaders', color: '#FFDAB9', coins: ['LTC', 'LINK', 'MATIC', 'UNI', 'AAVE', 'SUSHI']},

    {name: 'Cross-Chain', color: '#A1D344', coins: ['XRP', 'XLM', 'ATOM', 'EGLD']},

    {name: 'Layer 1', color: '#40E0D0', coins: ['FTM', 'AVAX', 'NEAR', 'EWT']},

    {name: 'Web3 Infrastructure', color: '#CCB974', coins: ['FIL', 'ICP', 'FLOW', 'HNT']},

    {name: 'Metaverse', color: '#FFFF99', coins: ['AXS', 'SAND', 'MANA', 'ENJ']},

    {name: 'Emerging Protocols', color: '#FFC0CB', coins: ['LUNA', 'FTT', 'GRT', 'RUNE']},

    {name: 'Enterprise Solutions', color: '#BFC0C0', coins: ['VET', 'CHZ', 'GALA']},

    {name: 'Interoperability', color: '#FFBFFF', coins: ['QNT', 'OCEAN', 'BAL']},

    {name: 'Utility Tokens', color: '#F660AB', coins: ['BAT', 'ZRX', 'NMR']},

    {name: 'Governance', color: '#FF7F50', coins: ['MKR', 'DAI', 'USDC']},

    {name: 'Stablecoins', color: '#00CED1', coins: ['USDT', 'BUSD', 'TUSD']},

    {name: 'Meme Coins', color: '#FF69B4', coins: ['SHIB', 'BABYDOGE', 'SAFEMOON', 'QQ', 'NO']},

    {name: 'Scalability Solutions', color: '#20B2AA', coins: ['ZIL', 'HOT', 'COTI', 'PEPE', 'GF']},

    {name: 'Interchain', color: '#BA55D3', coins: ['ONE', 'CELO', 'KAVA', 'PANDA', 'YAYA']},

    {name: 'Yield Farming', color: '#FF4500', coins: ['COMP', 'CRV', 'YFI', 'SATOSHI', 'CAT']},

    {name: 'Privacy & Storage', color: '#1E90FF', coins: ['REN', 'ANKR', 'STORJ', 'ORD', 'CLOWN']},

    {name: 'DEX', color: '#32CD32', coins: ['UMA', '1INCH', 'BNT', 'YY', 'JUMP', 'DONALD']},

    {name: 'Oracles', color: '#FFD700', coins: ['REN', 'BAND', 'OCEAN', 'RLC', 'NKN', 'A', 'MIMI', 'MIQI', 'RABBIT', 'SHEEP', 'SNAKE', 'PEACE', 'RAT', 'MONKEY']},

    {name: 'Layer 2', color: '#8A2BE2', coins: ['LRC', 'KNC', 'REQ', 'QKC', 'REP', 'DRAGON', 'X', 'SEAL', 'COW', 'OTTER', 'ORD(', 'ORD{', 'ORD%', 'ORD<']}

];


let cryptoElements = [];

let groupNumber = 1;


cryptoGroups.forEach((group, index) => {

    group.coins.forEach((coin, coinIndex) => {

        cryptoElements.push({

            symbol: coin,

            name: coin,

            number: groupNumber,

            category: group.name,

            group: coinIndex + 1,

            period: index + 1

        });

        groupNumber++;

    });

});


function createPeriodicTable() {

    const table = document.getElementById('periodicTable');

    table.innerHTML = '';

    cryptoElements.forEach(element => {

        const el = document.createElement('div');

        el.className = 'element';

        el.style.backgroundColor = cryptoGroups.find(group => group.name === element.category)?.color || '#FFFFFF';

        el.innerHTML = `

            <span class="number">${element.number}</span>

            <span class="symbol">${element.symbol}</span>

            <span class="name">${element.name}</span>

        `;

        el.style.gridColumn = element.group;

        el.style.gridRow = element.period;

        el.addEventListener('click', () => showElementDetails(element));

        table.appendChild(el);

    });


    cryptoGroups.forEach((group, index) => {

        if (group.coins.length > 18) {

            const additionalRow = document.createElement('div');

            additionalRow.className = 'additional-rows';

            additionalRow.setAttribute('data-label', group.name);

            group.coins.slice(18).forEach((coin, coinIndex) => {

                const el = document.createElement('div');

                el.className = 'element';

                el.style.backgroundColor = group.color;

                el.innerHTML = `

                    <span class="number">${groupNumber + coinIndex}</span>

                    <span class="symbol">${coin}</span>

                    <span class="name">${coin}</span>

                `;

                el.addEventListener('click', () => showElementDetails({

                    symbol: coin,

                    name: coin,

                    number: groupNumber + coinIndex,

                    category: group.name,

                    group: coinIndex + 1,

                    period: index + 1

                }));

                additionalRow.appendChild(el);

            });

            table.appendChild(additionalRow);

            groupNumber += group.coins.slice(18).length;

        }

    });

}


function createLegend() {

    const legend = document.getElementById('legend');

    legend.innerHTML = '';

    cryptoGroups.forEach(group => {

        const item = document.createElement('div');

        item.className = 'legend-item';

        item.innerHTML = `

            <div class="legend-color" style="background-color: ${group.color};"></div>

            <span>${group.name}</span>

        `;

        legend.appendChild(item);

    });

}


function showElementDetails(element) {

    const modal = document.getElementById('elementModal');

    const modalTitle = document.getElementById('modalTitle');

    const modalInfo = document.getElementById('modalInfo');


    modalTitle.textContent = `${element.name} (${element.symbol})`;

    modalInfo.innerHTML = `

        <p><strong>Number:</strong> ${element.number}</p>

        <p><strong>Category:</strong> ${element.category}</p>

        <p><strong>Group:</strong> ${element.group}</p>

        <p><strong>Period:</strong> ${element.period}</p>

    `;


    modal.style.display = 'block';

}


document.querySelector('.close').onclick = function() {

    document.getElementById('elementModal').style.display = 'none';

}


window.onclick = function(event) {

    const modal = document.getElementById('elementModal');

    if (event.target == modal) {

        modal.style.display = 'none';

    }

}


createPeriodicTable();

createLegend();

</script>

</body>

</html>