diff --git a/src/components/sections/main-section.astro b/src/components/sections/main-section.astro
index 7d4b197..b969baa 100644
--- a/src/components/sections/main-section.astro
+++ b/src/components/sections/main-section.astro
@@ -1,8 +1,83 @@
---
+import { Image } from '@astrojs/image/components';
+
+import Button from '@/atoms/button.astro';
+import IconButton from '@/atoms/icon-button.astro';
import SectionCard from '@/atoms/section-card.astro';
+import Tag from '@/atoms/tag.astro';
+import Typography from '@/atoms/typography.astro';
import type { MainSection } from '@/types/main-section';
export interface Props extends MainSection {}
+
+const {
+ image,
+ fullName,
+ role,
+ socials,
+ details,
+ description,
+ action: { label, url, downloadedFileName },
+ tags,
+} = Astro.props;
---
-
Main section
+
+
+
+
+
+
+
+
+
+ {fullName}
+ {role}
+
+ {
+ socials.length > 0 && (
+
+ {socials.map(({ icon, url: iconUrl }) => (
+
+ ))}
+
+ )
+ }
+
+
+
+ {
+ details.map(({ label: detailLabel, value }) => (
+
+
+ {detailLabel}:
+ {value}
+
+
+ ))
+ }
+
+
+
{description}
+
+ {
+ tags.map(({ icon, iconColor, name, url: tagUrl }) =>
+ tagUrl ? (
+
+ {name}
+
+ ) : (
+
{name}
+ )
+ )
+ }
+
+
+
+
+
+
diff --git a/src/pages/playground/main-section.astro b/src/pages/playground/main-section.astro
new file mode 100644
index 0000000..96ae368
--- /dev/null
+++ b/src/pages/playground/main-section.astro
@@ -0,0 +1,37 @@
+---
+import MainSection from '@/sections/main-section.astro';
+import type { MainSection as MainSectionData } from '@/types/main-section';
+
+const mainSectionData: MainSectionData = {
+ image: import('@/assets/my-image.jpeg'),
+ fullName: 'Mark Freeman',
+ role: 'Senior React Developer',
+ details: [
+ { label: 'Phone', value: '+48 604 343 212' },
+ { label: 'Email', value: 'veeeery.long.email.address@gmail.com' },
+ { label: 'From', value: 'Warsaw, Poland' },
+ { label: 'Salary range', value: '18 000 - 25 000 PLN' },
+ ],
+ description:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sodales ac dui at vestibulum. In condimentum metus id dui tincidunt, in blandit mi vehicula. Nulla lacinia, erat sit amet elementum vulputate, lectus mauris volutpat mi, vitae accumsan metus elit ut nunc. Vestibulum lacinia enim eget eros fermentum scelerisque. Proin augue leo, posuere ut imperdiet vitae, fermentum eu ipsum. Sed sed neque sagittis, posuere urna nec, commodo leo. Pellentesque posuere justo vitae massa volutpat maximus.',
+ tags: [{ name: 'Open for freelance' }, { name: 'Available for mentoring' }, { name: 'Working on side project' }],
+ action: {
+ label: 'Download CV',
+ url: '#',
+ },
+ socials: [
+ { name: 'Facebook', icon: 'fa6-brands:facebook-f', url: '#' },
+ { name: 'GitHub', icon: 'fa6-brands:github', url: '#' },
+ { name: 'LinkedIn', icon: 'fa6-brands:linkedin-in', url: '#' },
+ { name: 'Twitter', icon: 'fa6-brands:twitter', url: '#' },
+ ],
+};
+---
+
+
+
+
+
+
+
+
diff --git a/src/types/main-section.ts b/src/types/main-section.ts
index c00573d..69a6f01 100644
--- a/src/types/main-section.ts
+++ b/src/types/main-section.ts
@@ -10,6 +10,7 @@ export interface MainSection {
action: {
label: string;
url: string;
+ downloadedFileName?: string;
};
socials: Social[];
config: Omit
;