Skip to content

Commit

Permalink
semantics
Browse files Browse the repository at this point in the history
  • Loading branch information
veronikaa-kuznetsova committed Jun 25, 2024
1 parent 10eac03 commit 73acc23
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 7 deletions.
11 changes: 11 additions & 0 deletions src/app/styles/variables/global.scss
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
:root {
--font-family-main: consolas, "Times New Roman", serif;

// s
--font-size-s: 12px;
--font-line-s: 20px;
--font-s: var(--font-size-s) / var(--font-line-s) var(--font-family-main);

// m
--font-size-m: 16px;
--font-line-m: 24px;
--font-m: var(--font-size-m) / var(--font-line-m) var(--font-family-main);

// l
--font-size-l: 24px;
--font-line-l: 32px;
--font-l: var(--font-size-l) / var(--font-line-l) var(--font-family-main);

// xl
--font-size-xl: 32px;
--font-line-xl: 40px;
--font-xl: var(--font-size-xl) / var(--font-line-xl) var(--font-family-main);
Expand Down
6 changes: 4 additions & 2 deletions src/shared/ui/Stack/Flex/Flex.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { classNames, Mods } from 'shared/lib/classNames/classNames';
import { ReactNode } from 'react';
import { DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react';
import cls from './Flex.module.scss';

export type FlexJustify = 'start' | 'center' | 'end' | 'between';
Expand Down Expand Up @@ -32,7 +32,9 @@ const gapClasses: Record<FlexGap, string> = {
32: cls.gap32,
};

export interface FlexProps {
type DivProps = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;

export interface FlexProps extends DivProps {
className?: string;
children: ReactNode;
justify?: FlexJustify;
Expand Down
22 changes: 21 additions & 1 deletion src/shared/ui/Text/Text.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
color: var(--secondary-color);
}

inverted {
.inverted {
.title {
color: var(--inverted-primary-color);
}
Expand All @@ -26,6 +26,16 @@ inverted {
}
}

.inverted {
.title {
color: var(--inverted-primary-color);
}

.text {
color: var(--inverted-secondary-color);
}
}

.left {
text-align: left;
}
Expand All @@ -38,6 +48,16 @@ inverted {
text-align: center;
}

.size_s {
.title {
font: var(--font-m);
}

.text {
font: var(--font-s);
}
}

.size_m {
.title {
font: var(--font-l);
Expand Down
14 changes: 14 additions & 0 deletions src/shared/ui/Text/Text.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,20 @@ onlyTextDark.args = {
};
onlyTextDark.decorators = [ThemeDecorator(Theme.DARK)];

export const SizeS = Template.bind({});
SizeS.args = {
title: 'Title lorem ipsun',
text: 'Description Description Description Description',
size: TextSize.S,
};

export const SizeM = Template.bind({});
SizeM.args = {
title: 'Title lorem ipsun',
text: 'Description Description Description Description',
size: TextSize.M,
};

export const SizeL = Template.bind({});
SizeL.args = {
title: 'Title lorem ipsun',
Expand Down
13 changes: 12 additions & 1 deletion src/shared/ui/Text/Text.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export enum TextAlign {
}

export enum TextSize {
S = 'size_s',
M = 'size_m',
L = 'size_l',
}
Expand All @@ -28,6 +29,14 @@ interface TextProps {
size?: TextSize;
}

type HeaderTagType = 'h1' | 'h2' | 'h3';

const mapSizeToHeaderTag: Record<TextSize, HeaderTagType> = {
[TextSize.S]: 'h3',
[TextSize.M]: 'h2',
[TextSize.L]: 'h1',
};

export const Text = memo((props: TextProps) => {
const {
className,
Expand All @@ -38,6 +47,8 @@ export const Text = memo((props: TextProps) => {
size = TextSize.M,
} = props;

const HeaderTag = mapSizeToHeaderTag[size];

const mods: Mods = {
[cls[theme]]: true,
[cls[align]]: true,
Expand All @@ -46,7 +57,7 @@ export const Text = memo((props: TextProps) => {

return (
<div className={classNames(cls.Text, mods, [className])}>
{title && <p className={cls.title}>{title}</p>}
{title && <HeaderTag className={cls.title}>{title}</HeaderTag>}
{text && <p className={cls.text}>{text}</p>}
</div>
);
Expand Down
6 changes: 3 additions & 3 deletions src/widgets/Sidebar/ui/Sidebar/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export const Sidebar = memo(({ className }: SidebarProps) => {
)), [collapsed, sidebarItemsList]);

return (
<menu
<aside
data-testid="sidebar"
className={classNames(cls.Sidebar, { [cls.collapsed]: collapsed }, [className])}
>
Expand All @@ -44,13 +44,13 @@ export const Sidebar = memo(({ className }: SidebarProps) => {
>
{collapsed ? '>' : '<'}
</Button>
<VStack gap="8" className={cls.items}>
<VStack role="navigation" gap="8" className={cls.items}>
{itemsList}
</VStack>
<div className={cls.switchers}>
<ThemeSwitcher />
<LangSwitcher className={cls.lang} />
</div>
</menu>
</aside>
);
});

0 comments on commit 73acc23

Please sign in to comment.