[hideprofile][html]<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Profile UI — круглые кнопки справа</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet" />
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: #e8ddd4;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
font-family: 'Poppins', sans-serif;
}
/* контейнер — кнопки будут наезжать на карточку */
.container {
display: flex;
align-items: center;
gap: 0; /* убираем gap, чтобы кнопки вплотную */
position: relative;
}
/* карточка */
.card {
position: relative;
background: #fff;
border: 2px solid #222;
border-radius: 44px;
padding: 10px 20px 20px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
width: 700px;
height: 550px;
transform: scale(0.85);
transform-origin: center;
z-index: 1;
}
/* КРУГЛЫЕ КНОПКИ — наезжают на границу карточки */
.side-nav {
display: flex;
flex-direction: column;
gap: 7px;
margin-left: -65px; /* ОТРИЦАТЕЛЬНЫЙ margin — кнопки заезжают на карточку */
margin-top:-70px;
position: relative;
z-index: 2;
}
.side-nav button {
width: 48px;
height: 48px;
border-radius: 50%;
background:
radial-gradient(circle at 8% 0%, rgba(120,220,255,.20), transparent 30%),
radial-gradient(circle at 95% 8%, rgba(255,180,220,.28), transparent 32%),
rgba(255,255,255,.78);
backdrop-filter: blur(8px);
border: 1.5px solid rgba(255, 255, 255, 0.3);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
transition: all 0.25s cubic-bezier(0.2, 0.9, 0.4, 1.2);
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.3);
color: #e0e0e8;
}
/* неоновая активная кнопка */
.side-nav button.active {
background: linear-gradient(135deg, #78dcff, #ffb4dc);
border-color: rgba(255, 255, 255, 0.6);
box-shadow: 0 0 16px #ff4d6d, 0 4px 12px rgba(0, 0, 0, 0.4);
color: white;
text-shadow: 0 0 4px #ffb86b;
}
.side-nav button:hover:not(.active) {
background: linear-gradient(135deg, #78dcff, #ffb4dc);
transform: scale(1.07) translateX(2px);
border-color: rgba(255, 107, 46, 0.8);
box-shadow: 0 0 12px rgba(255, 43, 126, 0.7);
}
.side-nav button:active {
transform: scale(0.96);
}
@keyframes softPulse {
0% { box-shadow: 0 0 0 0 rgba(255, 43, 126, 0.5); }
70% { box-shadow: 0 0 0 8px rgba(255, 43, 126, 0); }
100% { box-shadow: 0 0 0 0 rgba(255, 43, 126, 0); }
}
.side-nav button.active {
animation: softPulse 1.8s infinite;
}
/* ---------- СТИЛИ ДЛЯ ПЕРЕКЛЮЧЕНИЯ СТРАНИЦ ---------- */
.page-content {
height: 400px;
}
.page-content.active-page {
display: block;
}
.page-content:not(.active-page) {
display: none;
}
/* ---------- ОСТАЛЬНЫЕ СТИЛИ (без изменений) ---------- */
.top{
display:flex;
justify-content:space-between;
align-items:center;
}
.profile{
display:flex;
align-items:center;
gap:20px;
}
.profile img{
width:90px;
height:90px;
border-radius:50%;
border:2px solid #111;
object-fit:cover;
}
.profile h2{
font-size:25px;
font-weight:700;
font-family:'Great Vibes', cursive;
}
.profile p{
color:#000;
font-size:14px;
}
.icons{
display:flex;
gap:20px;
font-size:20px;
margin-top:-30px;
}
.post-layout{
display:flex;
gap:35px;
margin-top:25px;
align-items:flex-start;
}
.left-side{
display:flex;
flex-direction:column;
gap:20px;
}
.text-scroll{
height:280px;
overflow-y:auto;
display:flex;
flex-direction:column;
gap:13px;
padding-right:10px;
width:340px;
}
.text-scroll::-webkit-scrollbar{
width:5px;
}
.text-scroll::-webkit-scrollbar-thumb{
border-radius:20px;
}
.text-card{
background:
linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,241,234,.92));
border-radius:24px;
padding:12px;
box-shadow:0 5px 10px rgba(0,0,0,0.12);
}
.card-top{
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
}
.text-card p{
line-height:1.2;
color:#444;
font-size:13px;
}
.number{
min-width:25px;
width:25px;
height:25px;
border-radius:50%;
background:#cdb8a8;
display:flex;
align-items:center;
justify-content:center;
font-size:11px;
font-weight:700;
color:#222;
flex-shrink:0;
}
.music-player{
border-radius:20px;
padding:15px;
width:340px;
display:flex;
align-items:center;
gap:14px;
background:
radial-gradient(circle at 8% 0%, rgba(120,220,255,.20), transparent 30%),
radial-gradient(circle at 95% 8%, rgba(255,180,220,.28), transparent 32%),
rgba(255,255,255,.78);
box-shadow:
inset 0 0 0 1px rgba(0,0,0,.04),
0 12px 24px var(--oa-shadow);
}
.player-cover{
width:60px;
height:60px;
border-radius:16px;
overflow:hidden;
flex-shrink:0;
}
.player-cover img{
width:100%;
height:100%;
object-fit:cover;
display:block;
}
.player-info{
flex:1;
}
.song-title{
font-size:14px;
font-weight:700;
color:#222;
}
.song-artist{
font-size:12px;
color:#666;
margin-top:2px;
}
.player-controls{
display:flex;
gap:14px;
margin-top:10px;
font-size:18px;
cursor:pointer;
justify-content:center;
}
.progress-bar{
width:100%;
height:5px;
background:#d8cdc3;
border-radius:999px;
overflow:hidden;
margin-top:8px;
}
.progress{
width:45%; /* положение трека */
height:100%;
background:#222;
border-radius:999px;
}
.info-box{
width:340px;
height:auto;
justify-content:flex-start;
}
.right-side{
display:flex;
flex-direction:column;
gap:5px;
width:650px;
}
.section{
background:
linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,241,234,.92));
border: 1px solid rgba(90,80,78,.22);
box-shadow:
inset 0 0 0 1px rgba(255,255,255,.55),
0 8px 15px rgba(0,0,0,.06);
border-radius:28px;
padding:18px;
width:100%;
}
.scroll-row{
display:flex;
flex-direction:column;
gap:18px;
max-height:155px;
overflow-y:auto;
overflow-x:hidden;
padding-right:8px;
}
.scroll-row::-webkit-scrollbar{
width:6px;
}
.scroll-row::-webkit-scrollbar-thumb{
border-radius:20px;
}
.scroll-row img{
flex-shrink:0;
display:block;
border-radius:20px;
border:2px solid #222;
box-shadow:0 6px 16px rgba(0,0,0,0.12);
}
.gallery-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
padding: 8px;
max-height:4000px;
overflow-y:auto;
padding-right:8px;
}
.gallery-grid::-webkit-scrollbar{
width:6px;
}
.gallery-grid::-webkit-scrollbar-thumb{
border-radius:20px;
}
.info-box{
background:
linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,241,234,.92));
border-radius:20px;
padding:15px;
box-shadow:0 8px 20px rgba(0,0,0,0.12);
width:300px;
}
.info-content{
display:flex;
justify-content:space-between;
align-items:flex-start;
}
.info-left{
display:flex;
flex-direction:column;
gap:10px;
}
.line{
display:flex;
align-items:center;
gap:8px;
}
.label{
font-size:14px;
font-weight:600;
color:#222;
}
.value{
font-size:12px;
color:#555;
}
.mic-photo{
width:70px;
}
/* фишки / биндеры */
.onair-binder {
margin-bottom: 22px;
padding: 18px 20px 20px;
border-radius: 26px;
background: rgba(255,255,255,.88);
box-shadow: 0 14px 30px rgba(0,0,0,.09);
overflow: hidden;
}
.onair-page {
overflow-y: auto;
height: 400px;
}
.onair-binder-head {
margin-bottom: 14px;
}
.onair-binder-head h3 {
margin: 0;
font-size: 24px;
font-weight: bold;
}
.onair-chip-row {
display: flex;
flex-wrap: nowrap; /* важно: запрещает перенос */
gap: 16px;
overflow-x: auto; /* скролл по X */
overflow-y: hidden;
padding: 2px 2px 13px;
box-sizing: border-box;
scroll-snap-type: x mandatory; /* опционально: “приклеивание” */
}
onair-card-chip {
background: none;
box-shadow: none;
padding: 0;
width: auto;
min-width: auto;
}
.onair-chip-photo {
width: 72px;
height: 72px;
margin: 0 auto 10px;
border-radius: 50%;
background: linear-gradient(135deg, #ffb4dc, #78dcff);
background-size: cover;
background-position: center;
border: 1px solid #000000;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
.onair-card-chip b {
display: block;
font-size: 13px;
text-align: center;
}
.onair-card-chip span {
display: block;
margin-top: 4px;
font-size: 11px;
text-transform: uppercase;
color: #999;
text-align: center;
}
.onair-card-chip.empty {
opacity: .45;
filter: grayscale(1);
}
.chip-wrapper {
position: relative;
width: 72px;
height: 72px;
}
.chip-count {
position: absolute;
top: -4px;
right: -4px;
width: 20px;
height: 20px;
background: #ff3b6b;
color: #fff;
font-size: 12px;
font-weight: bold;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #fff;
}
</style>
</head>
<body>
<div class="container">
<div class="card">
<div class="top">
<div class="profile">
<img src="https://upforme.ru/uploads/001c/b5/80/5/188495.jpg">
<div>
<h2>Bang Chan</h2><br>
<p>@cheong-san</p>
</div>
</div>
<div class="icons">
<span>📑</span>
<span>❤️</span>
</div>
</div>
<!-- СТРАНИЦА 1: ПОСТЫ -->
<div id="postPage" class="page-content active-page">
<div class="post-layout">
<div class="left-side">
<div class="music-player">
<div class="player-cover">
<img src="https://images.genius.com/618fd0a1e587f438eaa3acc072af097b.1000x1000x1.png">
</div>
<div class="player-info">
<div class="player-info">
<div class="song-title">Railway</div>
<div class="song-artist">Bang Chan</div>
<div class="progress-bar">
<div class="progress"></div>
</div>
</div>
<div class="player-controls">
<span>⏮</span>
<span>▶</span>
<span>⏭</span>
</div>
</div>
</div>
<div class="text-scroll">
<div class="text-card">
<div class="card-top">
<p>Кредит на твина</p>
<span class="number">0</span>
</div>
</div>
<div class="text-card">
<div class="card-top">
<p>Кредит на иммунитет</p>
<span class="number">2</span>
</div>
</div>
<div class="text-card">
<div class="card-top">
<p>кредит на фон</p>
<span class="number">3</span>
</div>
</div>
<div class="text-card">
<div class="card-top">
<p>кредит на фон</p>
<span class="number">3</span>
</div></div>
<div class="text-card">
<div class="card-top">
<p>кредит на плашку</p>
<span class="number">4</span>
</div>
</div>
</div>
</div>
<div class="right-side">
<div class="section">
<div class="scroll-row">
<img src="https://upforme.ru/uploads/001c/6a/04/134/t113910.gif">
<img src="https://upforme.ru/uploads/001c/6a/04/234/47077.jpg">
<img src="https://upforme.ru/uploads/001c/6a/04/134/954931.gif">
<img src="https://upforme.ru/uploads/001c/6a/04/134/684017.gif">
</div>
</div>
<div class="section">
<div class="scroll-row">
<img src="https://upforme.ru/uploads/001c/6a/04/5/836240.png">
<img src="https://upforme.ru/uploads/001c/6a/04/5/37977.png">
<img src="https://upforme.ru/uploads/001c/6a/04/5/124790.png">
<img src="https://upforme.ru/uploads/001c/6a/04/5/782576.png">
<img src="https://upforme.ru/uploads/001c/6a/04/5/324212.png">
</div>
</div>
</div>
</div>
</div>
<!-- СТРАНИЦА 2: ГАЛЕРЕЯ -->
<div id="galleryPage" class="page-content">
<div class="gallery-grid">
<div class="info-box">
<div class="info-content">
<div class="info-left">
<div class="line">
<span class="label">Бонус:</span>
<span class="value">иммунитет</span></div>
<div class="line">
<span class="label">Уровень:</span>
<span class="value">2</span>
</div>
<div class="line">
<span class="label">Частота:</span>
<span class="value">раз в месяц</span>
</div>
</div><div class="level-block">
<img src="https://upforme.ru/uploads/001c/b5/80/2/520614.png" class="mic-photo"></div></div></div>
<div class="info-box">
<div class="info-content">
<div class="info-left">
<div class="line">
<span class="label">Бонус:</span>
<span class="value">твин</span></div>
<div class="line">
<span class="label">Уровень:</span>
<span class="value">1</span>
</div>
<div class="line">
<span class="label">Частота:</span>
<span class="value">раз в месяц</span>
</div>
</div><div class="level-block">
<img src="https://upforme.ru/uploads/001c/b5/80/2/520614.png" class="mic-photo"></div></div></div>
<div class="info-box">
<div class="info-content">
<div class="info-left">
<div class="line">
<span class="label">Бонус:</span>
<span class="value">твин</span></div>
<div class="line">
<span class="label">Уровень:</span>
<span class="value">1</span>
</div>
<div class="line">
<span class="label">Частота:</span>
<span class="value">раз в месяц</span>
</div>
</div><div class="level-block">
<img src="https://upforme.ru/uploads/001c/b5/80/2/520614.png" class="mic-photo"></div></div></div>
<div class="info-box">
<div class="info-content">
<div class="info-left">
<div class="line">
<span class="label">Бонус:</span>
<span class="value">твин</span></div>
<div class="line">
<span class="label">Уровень:</span>
<span class="value">1</span>
</div>
<div class="line">
<span class="label">Частота:</span>
<span class="value">раз в месяц</span>
</div>
</div><div class="level-block">
<img src="https://upforme.ru/uploads/001c/b5/80/2/520614.png" class="mic-photo"></div></div></div>
</div>
</div>
<div id="fishkiPage" class="page-content">
<!-- 4. ФИШКИ -->
<div class="onair-page onair-page-4">
<div class="onair-binder">
<div class="onair-binder-head">
<h3>Stray Kids</h3>
</div>
<div class="onair-chip-row">
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('https://upforme.ru/uploads/001c/b5/80/5/528406.jpg');"></div>
<b>Bang Chan</b>
<span>lv.02</span>
</div>
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_2');">HJ</div>
<b>Hyunjin</b>
<span>rare</span>
</div>
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_3');">FL</div>
<b>Felix</b>
<span>event</span>
</div>
<div class="onair-card-chip"><div class="chip-wrapper">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_4');">LK</div><div class="chip-count">3</div>
</div>
<b>Lee Know</b>
<span>basic</span>
</div>
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_5');">IN</div>
<b>I.N</b>
<span>rare</span>
</div>
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_6');">SM</div>
<b>Seungmin</b>
<span>event</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
</div>
</div>
<div class="onair-binder">
<div class="onair-binder-head">
<h3>Ateez</h3>
</div>
<div class="onair-chip-row">
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_7');">SN</div>
<b>San</b>
<span>event</span>
</div>
<div class="onair-card-chip">
<div class="onair-chip-photo" style="background-image:url('ССЫЛКА_НА_ФИШКУ_8');">YH</div>
<b>Yunho</b>
<span>rare</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
</div>
</div>
<div class="onair-binder">
<div class="onair-binder-head">
<h3>Enhypen</h3>
</div>
<div class="onair-chip-row">
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
<div class="onair-card-chip empty">
<div class="onair-chip-photo">?</div>
<b>locked</b>
<span>slot</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- КНОПКИ — наезжают на границу карточки за счёт margin-left: -30px -->
<div class="side-nav">
<button id="postBtn" class="active">🗂️</button>
<button id="galleryBtn">🎞️</button>
<button id="fishkiBtn">🐟</button>
</div></div>
</div>
<script>
const postBtn = document.getElementById("postBtn");
const galleryBtn = document.getElementById("galleryBtn");
const postPage = document.getElementById("postPage");
const galleryPage = document.getElementById("galleryPage");
const fishkiBtn = document.getElementById("fishkiBtn");
const fishkiPage = document.getElementById("fishkiPage");
function showPage(page) {
postPage.classList.remove("active-page");
galleryPage.classList.remove("active-page");
fishkiPage.classList.remove("active-page");
page.classList.add("active-page");
}
function setActive(button) {
postBtn.classList.remove("active");
galleryBtn.classList.remove("active");
fishkiBtn.classList.remove("active");
button.classList.add("active");
}
postBtn.addEventListener("click", () => {
showPage(postPage);
setActive(postBtn);
});
galleryBtn.addEventListener("click", () => {
showPage(galleryPage);
setActive(galleryBtn);
});
fishkiBtn.addEventListener("click", () => {
showPage(fishkiPage);
setActive(fishkiBtn);
});
</script>
</body>
</html>[/html]

