diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json
index 8df3deff..2dc94b46 100644
--- a/public/locales/ru/translation.json
+++ b/public/locales/ru/translation.json
@@ -532,7 +532,7 @@
"resend confirmation link": "отправить ссылку ещё раз",
"shout": "пост",
"shout not found": "публикация не найдена",
- "shoutsWithCount": "{count} {count, plural, one {пост} few {поста} other {постов}}",
+ "shoutsWithCount": "{count} {count, plural, one {публикация} few {публикации} other {публикаций}}",
"sign in": "войти",
"sign up or sign in": "зарегистрироваться или войти",
"sign up": "зарегистрироваться",
diff --git a/src/components/Author/AuthorBadge/AuthorBadge.module.scss b/src/components/Author/AuthorBadge/AuthorBadge.module.scss
index ebd5d145..d3310486 100644
--- a/src/components/Author/AuthorBadge/AuthorBadge.module.scss
+++ b/src/components/Author/AuthorBadge/AuthorBadge.module.scss
@@ -60,11 +60,13 @@
.bio {
@include font-size(1.2rem);
+ color: var(--black-400);
display: flex;
flex-direction: row;
- gap: 1rem;
- color: var(--black-400);
font-weight: 500;
+ gap: 1rem;
+ max-width: 100%;
+ word-break: break-word;
}
.actions {
diff --git a/src/components/Author/AuthorBadge/AuthorBadge.tsx b/src/components/Author/AuthorBadge/AuthorBadge.tsx
index c75648f5..5ec70911 100644
--- a/src/components/Author/AuthorBadge/AuthorBadge.tsx
+++ b/src/components/Author/AuthorBadge/AuthorBadge.tsx
@@ -27,6 +27,7 @@ type Props = {
inviteView?: boolean
onInvite?: (id: number) => void
selected?: boolean
+ subscriptionsMode?: boolean
}
export const AuthorBadge = (props: Props) => {
const { mediaMatches } = useMediaQuery()
@@ -114,7 +115,7 @@ export const AuthorBadge = (props: Props) => {
-
+
0}>
{t('PublicationsWithCount', { count: props.author.stat?.shouts ?? 0 })}
diff --git a/src/components/Author/AuthorCard/AuthorCard.tsx b/src/components/Author/AuthorCard/AuthorCard.tsx
index 9902c8e9..c3b1ccd3 100644
--- a/src/components/Author/AuthorCard/AuthorCard.tsx
+++ b/src/components/Author/AuthorCard/AuthorCard.tsx
@@ -312,9 +312,9 @@ export const AuthorCard = (props: Props) => {
{(subscription) =>
isAuthor(subscription) ? (
-
+
) : (
-
+
)
}
diff --git a/src/components/Nav/Header/Header.module.scss b/src/components/Nav/Header/Header.module.scss
index 010a8164..c1c6e9e9 100644
--- a/src/components/Nav/Header/Header.module.scss
+++ b/src/components/Nav/Header/Header.module.scss
@@ -298,10 +298,6 @@
box-sizing: content-box;
display: inline-flex;
- @include media-breakpoint-up(sm) {
- padding-left: divide($container-padding-x, 2);
- }
-
@include media-breakpoint-up(lg) {
display: none;
}
@@ -425,7 +421,7 @@
width: 100%;
@include media-breakpoint-up(xl) {
- right: 9rem;
+ right: 1.4rem;
}
.control {
@@ -457,6 +453,14 @@
}
}
+.articleControlsAuthorized {
+ right: 3.6rem;
+
+ @include media-breakpoint-up(xl) {
+ right: 9rem;
+ }
+}
+
.userControl {
align-items: center;
display: flex;
@@ -484,7 +488,8 @@
}
.editorControl {
- border-radius: 1.2em;
+ border-radius: 2em;
+ font-size: 1.4rem !important;
&:hover {
background: var(--background-color-invert);
@@ -518,6 +523,7 @@
height: 2.8rem;
justify-content: center;
margin: 0 0.4rem;
+ order: 2;
position: relative;
transition: margin-left 0.3s;
width: 2.8rem;
@@ -528,7 +534,7 @@
width: 3.2rem;
}
- @include media-breakpoint-down(sm) {
+ @include media-breakpoint-down(xl) {
margin-left: 0.4rem !important;
}
@@ -579,6 +585,10 @@
.userControlItemSearch {
margin: 0 1rem 0 2.2rem;
+
+ @include media-breakpoint-down(xl) {
+ order: 1;
+ }
}
.userControlItemUserpic {
@@ -591,13 +601,6 @@
}
}
-.userControlItemInbox,
-.userControlItemSearch {
- @include media-breakpoint-down(sm) {
- display: none;
- }
-}
-
.userControlItemVerbose {
align-items: stretch;
display: flex;
@@ -677,7 +680,9 @@
}
&:hover {
- background-color: var(--link-hover-background);
+ @include media-breakpoint-up(xl) {
+ background-color: var(--link-hover-background);
+ }
&,
.textLabel {
@@ -703,6 +708,18 @@
}
}
+.userControlItemCreate {
+ .icon {
+ height: 2.8rem;
+ width: 2.8rem;
+
+ @include media-breakpoint-up(md) {
+ height: 3.2rem;
+ width: 3.2rem;
+ }
+ }
+}
+
.subnavigation {
background: #000;
color: #fff;
diff --git a/src/components/Nav/Header/Header.tsx b/src/components/Nav/Header/Header.tsx
index 7c0258e1..312a6e1f 100644
--- a/src/components/Nav/Header/Header.tsx
+++ b/src/components/Nav/Header/Header.tsx
@@ -59,6 +59,7 @@ export const Header = (props: Props) => {
const [isTopicsVisible, setIsTopicsVisible] = createSignal(false)
const [isZineVisible, setIsZineVisible] = createSignal(false)
const [isFeedVisible, setIsFeedVisible] = createSignal(false)
+ const { isAuthenticated } = useSession()
const toggleFixed = () => setFixed(!fixed())
@@ -330,7 +331,11 @@ export const Header = (props: Props) => {
-
+
{
-
+
@@ -217,12 +223,18 @@ export const HeaderAuth = (props: Props) => {
-
-
}
>
-
-
-
-
-
-
-
-
- }
- >
-
-
+
+
diff --git a/src/components/Topic/TopicBadge/TopicBadge.module.scss b/src/components/Topic/TopicBadge/TopicBadge.module.scss
index f219910a..b830a7c8 100644
--- a/src/components/Topic/TopicBadge/TopicBadge.module.scss
+++ b/src/components/Topic/TopicBadge/TopicBadge.module.scss
@@ -1,12 +1,11 @@
.TopicBadge {
- margin-bottom: 2rem;
+ margin-bottom: 4.8rem;
gap: 1rem;
.content {
align-items: flex-start;
display: flex;
flex-direction: row;
- margin-bottom: .8rem;
}
.basicInfo {
@@ -46,18 +45,64 @@
.info {
@include font-size(1.4rem);
-
border: none;
- display: flex;
- flex-direction: column;
+ //display: flex;
+ //flex-direction: column;
&:hover {
background: unset;
+ color: inherit;
+
+ .title {
+ background: var(--background-color-invert);
+ color: var(--default-color-invert);
+ }
+ }
+
+ .title {
+ @include font-size(2.2rem);
+ font-weight: bold;
+ }
+
+ .description {
+ @include font-size(1.6rem);
+ line-height: 1.4;
+ margin: 0.8rem 0;
+ -webkit-line-clamp: 2;
+ }
+ }
+
+ .actions {
+ display: flex;
+ flex-direction: row;
+ gap: 1rem;
+ margin-bottom: -1rem;
+ }
+
+ .subscribeButton {
+ border-radius: 0.8rem !important;
+ margin-right: 0 !important;
+ width: 9em;
+ }
+}
+
+.TopicBadgeSubscriptionsMode {
+ margin-bottom: 2rem;
+
+ .content {
+ margin-bottom: 0.8rem;
+ }
+
+ .info {
+ &:hover {
+ .title {
+ background-color: var(--blue-500);
+ color: var(--white-500);
+ }
}
.title {
@include font-size(1.4rem);
-
font-weight: 500;
line-height: 1em;
color: var(--blue-500);
@@ -66,7 +111,9 @@
.description {
color: var(--black-400);
+ @include font-size(1.2rem);
font-weight: 500;
+ margin: 0;
}
}
@@ -88,7 +135,6 @@
color: var(--secondary-color);
display: flex;
- margin: 0 0 1em;
@include media-breakpoint-down(md) {
flex-wrap: wrap;
@@ -101,6 +147,7 @@
.statsItem {
@include font-size(1.4rem);
+ font-weight: 500;
margin-right: 1.6rem;
white-space: nowrap;
diff --git a/src/components/Topic/TopicBadge/TopicBadge.tsx b/src/components/Topic/TopicBadge/TopicBadge.tsx
index 44f37700..73afe366 100644
--- a/src/components/Topic/TopicBadge/TopicBadge.tsx
+++ b/src/components/Topic/TopicBadge/TopicBadge.tsx
@@ -15,6 +15,7 @@ type Props = {
topic: Topic
minimizeSubscribeButton?: boolean
showStat?: boolean
+ subscriptionsMode?: boolean
}
export const TopicBadge = (props: Props) => {
@@ -47,23 +48,27 @@ export const TopicBadge = (props: Props) => {
lang() === 'en' ? capitalize(props.topic.slug.replaceAll('-', ' ')) : props.topic.title
return (
-
+
-
-
{t('shoutsWithCount', { count: props.topic?.stat?.shouts })}
-
{t('authorsWithCount', { count: props.topic?.stat?.authors })}
-
- {t('FollowersWithCount', { count: props.topic?.stat?.followers })}
-
-
+
+
+
+ {t('shoutsWithCount', { count: props.topic?.stat?.shouts })}
- {t('CommentsWithCount', { count: props.topic?.stat?.comments ?? 0 })}
+ {t('authorsWithCount', { count: props.topic?.stat?.authors })}
-
-
+
+ {t('FollowersWithCount', { count: props.topic?.stat?.followers })}
+
+
+
+ {t('CommentsWithCount', { count: props.topic?.stat?.comments ?? 0 })}
+
+
+
+
)
}
diff --git a/src/components/Views/AllTopics/AllTopics.tsx b/src/components/Views/AllTopics/AllTopics.tsx
index 35ff2ab5..92e57527 100644
--- a/src/components/Views/AllTopics/AllTopics.tsx
+++ b/src/components/Views/AllTopics/AllTopics.tsx
@@ -80,7 +80,7 @@ export const AllTopics = (props: Props) => {
const AllTopicsHead = () => (
-
+
{t('Topics')}
{t('Subscribe what you like to tune your personal feed')}
@@ -129,7 +129,7 @@ export const AllTopics = (props: Props) => {
0}>
-
+
{(letter, index) => (
@@ -180,7 +180,7 @@ export const AllTopics = (props: Props) => {
-
+
{(topic) => (
<>
diff --git a/src/components/_shared/Button/Button.module.scss b/src/components/_shared/Button/Button.module.scss
index cbca6357..5ab6be16 100644
--- a/src/components/_shared/Button/Button.module.scss
+++ b/src/components/_shared/Button/Button.module.scss
@@ -141,7 +141,7 @@
float: none;
padding-bottom: 0.6rem;
padding-top: 0.6rem;
- width: 10em;
+ width: 9em;
.icon {
img {