frontpage/data/skills.tsx

212 lines
7.1 KiB
TypeScript
Raw Normal View History

2022-10-20 17:48:27 +02:00
import Icon from "@mdi/react";
2022-10-23 17:23:05 +02:00
import { mdiBash, mdiLanguageCpp, mdiLanguageCsharp, mdiLanguageJava, mdiLanguageJavascript, mdiLanguagePhp, mdiLanguagePython, mdiLanguageRust, mdiLanguageTypescript, mdiReact, mdiTranslateVariant } from "@mdi/js";
2022-10-20 17:48:27 +02:00
import { Android, Arduino, CssThree, Espressif, Express, Html5, Linux, Sass, Springboot, Windows } from "@icons-pack/react-simple-icons";
export interface Skill {
name: string;
icon?: JSX.Element;
pct: number;
}
export interface AdditionalSkill {
name: string;
icon?: JSX.Element;
}
2022-10-23 17:23:05 +02:00
export interface CardColors {
background: string;
bars: string;
heading: string;
2022-10-24 23:53:00 +02:00
useDarkColor: boolean;
badges?: {
background: string;
useDarkColor: boolean;
}
2022-10-23 17:23:05 +02:00
}
2022-10-20 17:48:27 +02:00
export interface SkillCard {
title: string;
skillBars: Skill[];
additional?: AdditionalSkill[];
2022-10-23 17:23:05 +02:00
colors?: CardColors;
2022-10-20 17:48:27 +02:00
}
export interface SkillSet {
cards: SkillCard[];
additional?: AdditionalSkill[];
}
2022-10-20 23:43:44 +02:00
export const skills = (sizeCardIcons?: string, sizeBadgeIcons?: string): SkillSet => {
2022-10-23 17:23:05 +02:00
sizeCardIcons = sizeCardIcons || "2em";
sizeBadgeIcons = sizeBadgeIcons || "1em";
2022-10-20 17:48:27 +02:00
return {
cards: [{
title: "Programming Languages",
skillBars: [{
name: "TypeScript",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageTypescript} size={sizeCardIcons} id={"mdi_skills_prog_ts"} />,
2022-10-20 17:48:27 +02:00
pct: 100
}, {
name: "JavaScript",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageJavascript} size={sizeCardIcons} id={"mdi_skills_prog_js"} />,
2022-10-20 17:48:27 +02:00
pct: 100
}, {
name: "Java",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageJava} size={sizeCardIcons} id={"mdi_skills_prog_java"} />,
2022-10-20 17:48:27 +02:00
pct: 80
}, {
name: "Python 3",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguagePython} size={sizeCardIcons} id={"mdi_skills_prog_python"} />,
2022-10-20 17:48:27 +02:00
pct: 95
}, {
name: "PHP",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguagePhp} size={sizeCardIcons} id={"mdi_skills_prog_php"} />,
2022-10-20 17:48:27 +02:00
pct: 50
}, {
name: "Bash",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiBash} size={sizeCardIcons} id={"mdi_skills_prog_bash"} />,
2022-10-20 17:48:27 +02:00
pct: 60
}, {
name: "C/C++",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageCpp} size={sizeCardIcons} id={"mdi_skills_prog_c"} />,
2022-10-20 17:48:27 +02:00
pct: 60
}, {
name: "Rust",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageRust} size={sizeCardIcons} id={"mdi_skills_prog_rust"} />,
2022-10-20 17:48:27 +02:00
pct: 80
}, {
name: "C#",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageCsharp} size={sizeCardIcons} id={"mdi_skills_prog_cs"} />,
2022-10-20 17:48:27 +02:00
pct: 40
2022-10-23 17:23:05 +02:00
}],
2022-10-27 09:01:52 +02:00
colors: {
background: "#C3A3F7",
bars: "#8771AB",
heading: "#55476B",
useDarkColor: true,
badges: {
background: "#55476B",
useDarkColor: false,
}
}
2022-10-20 17:48:27 +02:00
}, {
title: "Web Technologies",
skillBars: [{
name: "TypeScript",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageTypescript} size={sizeCardIcons} id={"mdi_skills_web_ts"} />,
2022-10-20 17:48:27 +02:00
pct: 100
}, {
name: "JavaScript",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageJavascript} size={sizeCardIcons} id={"mdi_skills_web_js"} />,
2022-10-20 17:48:27 +02:00
pct: 100
}, {
name: "React",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiReact} size={sizeCardIcons} id={"mdi_skills_web_react"} />,
2022-10-20 17:48:27 +02:00
pct: 80
}, {
name: "HTML5",
2022-10-27 15:41:27 +02:00
icon: <Html5 size={sizeCardIcons} id={"mdi_skills_web_html"} />,
2022-10-20 17:48:27 +02:00
pct: 80
}, {
name: "CSS3",
2022-10-27 15:41:27 +02:00
icon: <CssThree size={sizeCardIcons} id={"mdi_skills_web_css"} />,
2022-10-20 17:48:27 +02:00
pct: 90
}],
additional: [{
name: "Express",
2022-10-23 17:23:05 +02:00
icon: <Express size={sizeBadgeIcons} />
2022-10-20 17:48:27 +02:00
}, {
name: "Sass",
2022-10-23 17:23:05 +02:00
icon: <Sass size={sizeBadgeIcons} />
2022-10-20 17:48:27 +02:00
}, {
name: "Spring Boot",
2022-10-23 17:23:05 +02:00
icon: <Springboot size={sizeBadgeIcons} />
}],
2022-10-24 23:53:00 +02:00
colors: {
background: "#A4C7EA",
bars: "#706EB8",
heading: "#2A2885",
useDarkColor: true,
badges: {
background: "#2A2885",
useDarkColor: false,
}
}
2022-10-20 17:48:27 +02:00
}, {
title: "Embedded Programming",
skillBars: [{
name: "C/C++",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiLanguageCpp} size={sizeCardIcons} id={"mdi_skills_embedded_c"} />,
2022-10-20 17:48:27 +02:00
pct: 60
}],
additional: [{
name: "Arduino",
2022-10-23 17:23:05 +02:00
icon: <Arduino size={sizeBadgeIcons} />
2022-10-20 17:48:27 +02:00
}, {
name: "ESP",
2022-10-23 17:23:05 +02:00
icon: <Espressif size={sizeBadgeIcons} />
}],
2022-10-24 23:53:00 +02:00
colors: {
2022-10-23 17:23:05 +02:00
background: "#EA8585",
bars: "#E53E3E",
2022-10-24 23:53:00 +02:00
heading: "#661C1C",
useDarkColor: true,
badges: {
background: "#661C1C",
useDarkColor: false,
}
}
2022-10-20 17:48:27 +02:00
}, {
title: "Operating Systems",
skillBars: [],
additional: [{
name: "Windows",
2022-10-23 17:23:05 +02:00
icon: <Windows size={sizeBadgeIcons} />
2022-10-20 17:48:27 +02:00
}, {
name: "Linux",
2022-10-23 17:23:05 +02:00
icon: <Linux size={sizeBadgeIcons} />
2022-10-20 17:48:27 +02:00
}, {
name: "Android",
2022-10-23 17:23:05 +02:00
icon: <Android size={sizeBadgeIcons} />
2022-10-27 09:01:52 +02:00
}],
colors: {
background: "#4DEB8C",
bars: "#38AB66",
heading: "#236B40",
useDarkColor: true,
badges: {
background: "#236B40",
useDarkColor: false
}
}
2022-10-20 17:48:27 +02:00
}, {
title: "Languages",
skillBars: [{
name: "German (native)",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiTranslateVariant} size={sizeCardIcons} id={"mdi_skills_lang_de"} />,
2022-10-20 17:48:27 +02:00
pct: 100
}, {
name: "English (C1)",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiTranslateVariant} size={sizeCardIcons} id={"mdi_skills_lang_en"} />,
2022-10-20 17:48:27 +02:00
pct: 90
}, {
name: "Russian (basics)",
2022-10-27 15:41:27 +02:00
icon: <Icon path={mdiTranslateVariant} size={sizeCardIcons} id={"mdi_skills_lang_ru"} />,
2022-10-20 17:48:27 +02:00
pct: 30
}],
2022-10-27 09:01:52 +02:00
colors: {
background: "#EB783F",
bars: "#AB582E",
heading: "#6B371D",
useDarkColor: true,
badges: {
background: "#6B371D",
useDarkColor: false,
}
}
2022-10-20 17:48:27 +02:00
}]
};
};
export default skills;