Здесь будет оформление. Когда-нибудь.
Заметки на полях
Сообщений 1 страница 5 из 5
Поделиться224-07-2026 12:28:13
[html]<style>
@font-face {font-family: "Cezanne"; src: url('https://forumstatic.ru/files/001b/fb/68/94620.otf'); font-style: normal; font-weight: normal;}
@font-face {font-family: "Garamond"; src: url('https://forumstatic.ru/files/001b/fb/68/97895.otf'); font-style: normal; font-weight: normal;}
#osn-collage {
width: 740px;
height: 740px;
margin: 0px auto;
overflow: hidden;
position: relative;
}
.collage-fotokart1, .collage-fotokart2, .collage-fotokart3 {
background: #fffefc;
padding: 8px;
border: 1.5px solid #5c4f40;
width: 280px;
height: 340px;
position: absolute;
transition: .45s ease;
}
.collage-fotokart1 img, .collage-fotokart2 img, .collage-fotokart3 img {
width: 100%;
height: auto;
object-fit: cover;
}
.collage-fotokart1 {
top: 12px;
left: 52px;
transform: rotate(-4deg);
z-index: 1;
}
.collage-fotokart2 {
top: 113px;
left: 98px;
transform: rotate(9deg);
z-index: 2;
}
.collage-fotokart3 {
top: 236px;
left: 23px;
transform: rotate(-7.5deg);
z-index: 3;
}
.collage-fotokart-big {
width: auto;
height: 720px;
padding: 8px;
background: #fffefc;
border: 1.5px solid #5c4f40;
position: absolute;
right: 0px;
top: 0px;
z-index: 0;
}
.collage-fotokart-big img{
width: auto;
height: 100%;
object-fit: cover;
}
.collage-fotokart1:hover, .collage-fotokart2:hover, .collage-fotokart3:hover {
z-index: 100;
transform: translate(30px, 10px) scale(1.03) rotate(0deg);
box-shadow: 0 12px 24px rgba(0,0,0,.22);
}
.collage-quote {
width: 300px;
position: absolute;
bottom: 50px;
left: 80px;
transition: .45s ease;
z-index: 1;
}
.collage-quote img {
width: 100%;
height: auto;
object-fit: cover;
}
.collage-quote:hover {
z-index: 100;
transform: translate(-65px, -7px) rotate(-7deg);
}
.collage-music {
position: absolute;
bottom: 5px;
left: 200px;
z-index: 5;
color: #fff;
width: 330px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.collage-music img {
width: 100%;
height: auto;
object-fit: cover;
transition: transform 1.2s cubic-bezier(.22,1,.36,1);
}
.collage-music:hover img {
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
}
.collage-music:hover::after{
opacity:1;
}
.collage-play {
position: absolute;
opacity:0;
transition:.3s ease .8s;
pointer-events: none;
width: 330px;
display: flex;
align-items: center;
justify-content: center;
}
.collage-music:hover .collage-play{
opacity:1;
}
.collage-music::after{
content:"";
position:absolute;
inset:0;
border-radius:50%;
background:rgba(0,0,0,.25);
opacity:0;
transition:.3s ease .8s;
pointer-events: none;
}
.collage-artist {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font: 12px Garamond;
letter-spacing: .1px;
line-height: 1.2;
width: 300px;
text-transform: uppercase;
}
.collage-artist span {
font: 30px Cezanne;
text-align: center;
line-height: 0.9;
text-transform: lowercase;
}
</style>
<div id="osn-collage">
<div class="collage-fotokart1">
<img src="https://upforme.ru/uploads/001b/fb/68/2/650823.png">
</div>
<div class="collage-fotokart2">
<img src="https://upforme.ru/uploads/001b/fb/68/2/894844.png">
</div>
<div class="collage-fotokart3">
<img src="https://upforme.ru/uploads/001b/fb/68/2/106210.png">
</div>
<div class="collage-quote">
<img src="https://upforme.ru/uploads/001b/fb/68/2/856716.png">
</div>
<div class="collage-fotokart-big">
<img src="https://upforme.ru/uploads/001b/fb/68/2/37784.png">
</div>
<div class="collage-music">
<a href="https://music.yandex.ru/album/8873509/track/533186?utm_source=desktop&utm_medium=copy_link"><img src="https://upforme.ru/uploads/001b/fb/68/2/394493.png"></a>
<div class="collage-play">
<div class="collage-artist">
<span>On The Nature Of Daylight</span>
Max Richter
</div>
</div>
</div>[/html]
*на все элементы можно навести курсор мыши. Произойдет магия*
Отредактировано Victor Belozersky (24-07-2026 13:11:49)
Поделиться331-07-2026 01:37:58
[html]
<style>
@font-face {
font-family: "Cezanne";
src: url('https://forumstatic.ru/files/001b/fb/68/94620.otf');
font-style: normal;
font-weight: normal;
}
.events-card {
width: 600px;
height: 480px;
background-image: url('https://upforme.ru/uploads/001c/82/f2/185/224565.png');
background-size: cover;
background-position: center;
overflow: hidden;
position: relative;
border: 8px solid #b3ada3;
margin: 0px auto;
cursor: pointer;
border-radius: 4px;
animation: cardAppear 0.6s ease;
}
.events-card-text {
width: 580px;
height: 460px;
background-color: rgba(0, 0, 0, 0.5);
padding: 15px;
overflow: auto;
opacity: 0;
transform: scale(0.8) rotateX(-15deg);
transition: opacity 0.6s ease, transform 0.6s ease;
pointer-events: none;
}
.events-card-text.show {
opacity: 1;
transform: scale(1) rotateX(0deg);
pointer-events: auto;
}
.events-card-text p {
color: #d2d2d6;
padding: 4px !important;
text-indent: 25px;
line-height: 1.5;
margin: 8px 0;
opacity: 0;
transform: translateY(20px);
transition: opacity 0.4s ease, transform 0.4s ease;
}
.events-card-text.show p:nth-child(1) {
transition-delay: 0.05s;
}
.events-card-text.show p:nth-child(2) {
transition-delay: 0.1s;
}
.events-card-text.show p:nth-child(3) {
transition-delay: 0.15s;
}
.events-card-text.show p:nth-child(4) {
transition-delay: 0.2s;
}
.events-card-text.show p:nth-child(5) {
transition-delay: 0.25s;
}
.events-card-text.show p:nth-child(6) {
transition-delay: 0.3s;
}
.events-card-text.show p:nth-child(7) {
transition-delay: 0.35s;
}
.events-card-text.show p {
opacity: 1;
transform: translateY(0);
}
/* Скрытие абзацев при закрытии */
.events-card-text:not(.show) p {
opacity: 0;
transform: translateY(20px);
transition-delay: 0s;
}
.events-card-text::-webkit-scrollbar {
width: 5px;
}
.events-card-text::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
border-radius: 10px;
}
.events-card-text::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.25);
border-radius: 10px;
}
.events-card-text::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.45);
}
.events-card-h {
font: 30px Cezanne;
color: #d2d2d6;
text-align: center;
line-height: 0.9;
opacity: 0;
transform: translateY(-20px) scale(0.9);
transition: opacity 0.5s ease, transform 0.5s ease;
margin: 10px 0 15px 0;
}
.events-card-text.show .events-card-h {
opacity: 1;
transform: translateY(0) scale(1);
transition-delay: 0.1s;
}
/* Скрытие заголовка при закрытии */
.events-card-text:not(.show) .events-card-h {
opacity: 0;
transform: translateY(-20px) scale(0.9);
transition-delay: 0s;
}
/* Подсказка "Нажмите на изображение" */
.events-card-hint {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
color: rgba(255, 255, 255, 0.7);
font: 14px Arial, sans-serif;
background: rgba(0, 0, 0, 0.5);
padding: 8px 20px;
border-radius: 20px;
letter-spacing: 1px;
transition: opacity 0.5s ease, transform 0.5s ease;
pointer-events: none;
backdrop-filter: blur(4px);
border: 1px solid rgba(255, 255, 255, 0.1);
animation: pulseHint 2s ease-in-out infinite;
}
.events-card-text.show~.events-card-hint {
opacity: 0;
transform: translateX(-50%) translateY(100px);
pointer-events: none;
}
.events-card-text:not(.show)~.events-card-hint {
opacity: 1;
transform: translateX(-50%) translateY(0);
transition-delay: 0.3s;
/* Небольшая задержка для плавности */;
}
@keyframes pulseHint {
0%,
100% {
opacity: 0.7;
}
50% {
opacity: 1;
}
}
@keyframes cardAppear {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
@media (max-width: 650px) {
.events-card {
width: 95%;
height: 380px;
}
.events-card-text {
width: calc(100% - 30px);
height: calc(100% - 30px);
padding: 15px;
}
.events-card-h {
font-size: 22px;
}
.events-card-hint {
font-size: 12px;
padding: 6px 16px;
bottom: 20px;
}
}
</style>
<div class="events-card" id="cardTrigger">
<!-- Текст, который появляется при клике -->
<div class="events-card-text" id="cardText">
<div class="events-card-h">
Не просто планета, не просто звезда. А целая Вселенная помещается в его руках.
</div>
<p>Домик на побережье. Тихий шум волн, теплый песок и ощущение, что целый мир принадлежит только им двоим. Голос негромкий, но его достаточно, чтобы различить каждое слово сквозь мерный рокот прибоя.</p>
<p>Сквозь тонкую рубашку чувствовать тепло чужого тела. Чувствовать, как голова ложится на плечо. Виктор знает, его сейчас слушают. Спокойно. Умиротворяюще. Будто весь мир и время зацикливаются здесь и сейчас.</p>
<p>Виктор почти не мечтает. Изучает, планирует, погружается, исследует, но в его голове нет места мыслям об «идеальном завтра». Такова его жизнь. Их жизнь. Иногда думать о том, что у них одна душа на двоих. Правда ли это?..</p>
<p>Голос постепенно стихает. Остается только шелест волн и легкий соленый ветер. Такой же вкус остается на его губах.</p>
<p>В моменте, когда просто «тепло» не описывает температуру между ними. Ловить губами чужое дыхание. Видеть в глазах ответы на многие вопросы, которые задавать нет смысла. Никаких признаний, никаких лишних слов. Казалось, сейчас этого не надо. Есть вещи, которые скажут громче любых слов. Признаний. Ответов на незаданные вопросы.</p>
<p>Ловить каждый вздох. Кончиками пальцев чувствовать, как тело откликается на каждое прикосновение.</p>
<p>Смешок. Улыбнуться в ответ.</p>
<div class="events-card-h">
Их личное счастье там, где спокойно и тихо. Там, где весь мир сужается до двух человек.
</div>
</div>
<!-- Подсказка -->
<div class="events-card-hint">✦ Нажмите на изображение ✦</div>
</div>
<script>
const card = document.getElementById('cardTrigger');
const textBlock = document.getElementById('cardText');
card.addEventListener('click', function(e) {
// Переключаем класс show при каждом клике
textBlock.classList.toggle('show');
});
// Закрытие по клавише Escape
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
textBlock.classList.remove('show');
}
});
</script>
[/html]
Поделиться431-07-2026 14:51:38
[html]
<style>
@font-face {
font-family: "Cezanne";
src: url('https://forumstatic.ru/files/001b/fb/68/94620.otf');
font-style: normal;
font-weight: normal;
}
.events-card {
width: 600px;
height: 480px;
background-image: url('https://upforme.ru/uploads/001c/82/f2/185/449427.png');
background-size: cover;
background-position: center;
overflow: hidden;
position: relative;
border: 8px solid #b3ada3;
margin: 0px auto;
cursor: pointer;
border-radius: 4px;
animation: cardAppear 0.6s ease;
}
.events-card-text {
width: 580px;
height: 460px;
background-color: rgba(0, 0, 0, 0.6);
padding: 15px;
overflow: auto;
opacity: 0;
transform: scale(0.8) rotateX(-15deg);
transition: opacity 0.6s ease, transform 0.6s ease;
pointer-events: none;
}
.events-card-text.show {
opacity: 1;
transform: scale(1) rotateX(0deg);
pointer-events: auto;
}
.events-card-text p {
color: #dae2de;
padding: 4px !important;
text-indent: 25px;
line-height: 1.5;
margin: 8px 0;
opacity: 0;
transform: translateY(20px);
transition: opacity 0.4s ease, transform 0.4s ease;
}
.events-card-text.show p:nth-child(1) {
transition-delay: 0.05s;
}
.events-card-text.show p:nth-child(2) {
transition-delay: 0.1s;
}
.events-card-text.show p:nth-child(3) {
transition-delay: 0.15s;
}
.events-card-text.show p:nth-child(4) {
transition-delay: 0.2s;
}
.events-card-text.show p:nth-child(5) {
transition-delay: 0.25s;
}
.events-card-text.show p:nth-child(6) {
transition-delay: 0.3s;
}
.events-card-text.show p:nth-child(7) {
transition-delay: 0.35s;
}
.events-card-text.show p {
opacity: 1;
transform: translateY(0);
}
/* Скрытие абзацев при закрытии */
.events-card-text:not(.show) p {
opacity: 0;
transform: translateY(20px);
transition-delay: 0s;
}
.events-card-text::-webkit-scrollbar {
width: 5px;
}
.events-card-text::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
border-radius: 10px;
}
.events-card-text::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.25);
border-radius: 10px;
}
.events-card-text::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.45);
}
.events-card-h {
font: 30px Cezanne;
color: #dae2de;
text-align: center;
line-height: 0.9;
opacity: 0;
transform: translateY(-20px) scale(0.9);
transition: opacity 0.5s ease, transform 0.5s ease;
margin: 10px 0 15px 0;
}
.events-card-text.show .events-card-h {
opacity: 1;
transform: translateY(0) scale(1);
transition-delay: 0.1s;
}
/* Скрытие заголовка при закрытии */
.events-card-text:not(.show) .events-card-h {
opacity: 0;
transform: translateY(-20px) scale(0.9);
transition-delay: 0s;
}
/* Подсказка "Нажмите на изображение" */
.events-card-hint {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
color: rgba(255, 255, 255, 0.7);
font: 14px Arial, sans-serif;
background: rgba(0, 0, 0, 0.5);
padding: 8px 20px;
border-radius: 20px;
letter-spacing: 1px;
transition: opacity 0.5s ease, transform 0.5s ease;
pointer-events: none;
backdrop-filter: blur(4px);
border: 1px solid rgba(255, 255, 255, 0.1);
animation: pulseHint 2s ease-in-out infinite;
}
.events-card-text.show~.events-card-hint {
opacity: 0;
transform: translateX(-50%) translateY(100px);
pointer-events: none;
}
.events-card-text:not(.show)~.events-card-hint {
opacity: 1;
transform: translateX(-50%) translateY(0);
transition-delay: 0.3s;
/* Небольшая задержка для плавности */;
}
@keyframes pulseHint {
0%,
100% {
opacity: 0.7;
}
50% {
opacity: 1;
}
}
@keyframes cardAppear {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
@media (max-width: 650px) {
.events-card {
width: 95%;
height: 380px;
}
.events-card-text {
width: calc(100% - 30px);
height: calc(100% - 30px);
padding: 15px;
}
.events-card-h {
font-size: 22px;
}
.events-card-hint {
font-size: 12px;
padding: 6px 16px;
bottom: 20px;
}
}
</style>
<div class="events-card" id="cardTrigger">
<!-- Текст, который появляется при клике -->
<div class="events-card-text" id="cardText">
<div class="events-card-h">
Идеальный летний день… какой он?
</div>
<p>Чувствовать, как после долгой пешей прогулки приятно ноют спина и ноги, стоит только устроиться на привале? Стоять на почти пустой набережной, <i>подставляя лицо теплому ветру</i>? Сидеть плечом к плечу друг с другом на песочном пляже и смотреть на звезды? Просыпаться, чувствуя рядом чужое тепло?</p>
<p>Наверно, все это. И одновременно ничего.</p>
<p>Все это теряет смысл, если рядом не будет его.</p>
<p>Даже если весь день льет дождь, а планы рушатся один за другим, достаточно просто сидеть рядом на диване. Иногда этого хватает, чтобы день стал идеальным.</p>
<p>Встречаться взглядами. Задерживать их чуть дольше, чем принято. Виктор всегда смотрит на Ривера долго. Так, будто ему никогда не бывает достаточно.</p>
<p>Возможно, день теряет свою идеальность, когда начинаются ссоры, но после нее обязательно наступит перемирие. Надо только подождать, ведь так?</p>
<p>Так какой же – идеальный летний день?</p>
<div class="events-card-h">
Это не место и не время.
</div>
<p>Это просто любимый человек рядом.</p>
<p>Тишина. Спокойствие. Возможность никуда не спешить и просто быть друг с другом.</p>
</div>
<!-- Подсказка -->
<div class="events-card-hint">✦ Нажмите на изображение ✦</div>
</div>
<script>
const card = document.getElementById('cardTrigger');
const textBlock = document.getElementById('cardText');
card.addEventListener('click', function(e) {
// Переключаем класс show при каждом клике
textBlock.classList.toggle('show');
});
// Закрытие по клавише Escape
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
textBlock.classList.remove('show');
}
});
</script>
[/html]
Отредактировано Victor Belozersky (31-07-2026 18:48:44)
Поделиться506-08-2026 15:50:39
предствляю вашему вниманию женскую версию Виктора.



















