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