diff --git a/src/components/ContentGrid.astro b/src/components/ContentGrid.astro index 17c33c4..162a158 100644 --- a/src/components/ContentGrid.astro +++ b/src/components/ContentGrid.astro @@ -127,7 +127,7 @@ function shouldBeLarge(index: number): boolean { console.log(nickname); return ( - + {i > 0 && ', '} {nickname ? ( + +

Статьи

+ + + + + \ No newline at end of file diff --git a/src/pages/author/[slug]/index.astro b/src/pages/author/[slug]/index.astro index ad62337..1e71373 100644 --- a/src/pages/author/[slug]/index.astro +++ b/src/pages/author/[slug]/index.astro @@ -26,45 +26,67 @@ const posts = data.posts; > {author && ( -
- {author.avatar && ( -
- {author.name} -
- )} - -
- {(author.firstName || author.lastName) && ( -

- {author.firstName} {author.lastName} -

- )} - - {author.bio && ( -
{author.bio}
- )} - - {author.social && Object.values(author.social).some(Boolean) && ( -
+ ) : /* Если есть только имя - просто h1 */ + author.name && !author.bio ? ( +

+ {author.name} +

+ ) : /* Если есть bio без аватара */ + author.bio && !author.avatar ? ( +
{author.bio}
+ ) : /* Если есть аватар без bio */ + author.avatar && !author.bio ? ( +
+
+ {author.name +
+ + {author.name && ( +

+ {author.name} +

+ )} +
+ ) : null + )} +p{ + margin: 0 0 1.6875rem +} + .author-card { display: flex; - align-items: stretch; /* Все блоки одной высоты */ - min-height: 350px; width: 100%; + /* Убираем min-height */ } .author-card .avatar { - width: 100%; + width: 300px; /* Фиксированная ширина для аватара */ + flex-shrink: 0; /* Запрещаем сжиматься */ aspect-ratio: 1/1; - object-fit: cover; - display: block; - - height:auto; + display: flex; + align-items: center; + justify-content: center; background: linear-gradient(to right, transparent 40%, #ececec 40%); } -.author-card .avatar IMG{ - max-width: 300px; - margin: 20px auto; - +.author-card .avatar IMG { + width: 264px; + height: 264px; + object-fit: cover; + display: block; + margin: 0; } .author-card .author-info { - display:flex; + flex: 1; /* Занимает оставшееся место */ + display: flex; flex-direction: column; justify-content: center; gap: 12px; background-color: #ececec; - padding: 0 42px; + padding: 30px 42px; /* Уменьшаем вертикальные отступы */ } -.author-info h1{ +.author-info h1 { font-size: 1.5rem; + margin: 0; /* Убираем отступы у заголовка */ +} + +.author-info .bio { + margin: 0; /* Убираем отступы у bio */ + line-height: 1.5; +} + +.author-info .social-links { + margin-top: 4px; /* Небольшой отступ сверху */ +} + +/* Для случаев когда нет bio */ +.author-card:has(.author-info:only-child h1) .author-info { + padding: 20px 42px; /* Еще меньше отступы если только заголовок */ } @media (max-width: 769px) { .author-card { flex-direction: column; - min-height: auto; /* Убираем минимальную высоту */ - background-color: transparent; /* Убираем фон, перенесем на блоки */ + min-height: auto; + background-color: transparent; } .author-card .avatar { width: 100%; - aspect-ratio: auto; /* Убираем фиксированное соотношение */ - height: auto; - background: #ececec; /* Простой фон вместо градиента */ - padding: 30px 0; /* Отступы сверху/снизу */ + aspect-ratio: 1/1; + background: #ececec; display: flex; align-items: center; justify-content: center; + padding: 0; /* Убираем все отступы */ } -.author-card .avatar IMG { - width: min(300px, 80%); /* Не больше 192px, но может быть меньше */ - aspect-ratio: 1/1; /* Соотношение сторон 1:1 (квадрат) */ - object-fit: cover; - margin: 0; -} + .author-card .avatar IMG { + width: 80%; /* Растягиваем на всю ширину контейнера */ + height: 80%; /* Растягиваем на всю высоту контейнера */ + aspect-ratio: 1/1; + object-fit: cover; + margin: 0; + display: block; + } .author-card .author-info { - flex: none; /* Убираем flex: 1 */ + flex: none; width: 100%; - padding: 30px 20px; /* Уменьшаем боковые отступы */ + padding: 20px 20px; background-color: #ececec; gap: 12px; } + + .full-name{ + text-align: center; + } + + /* Дополнительно уменьшаем отступы если мало контента */ + .author-card .author-info:has(h1:only-child) { + padding: 15px 20px; + } }