Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions components/customHead.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ export default function CustomHead() {
<Head>
<title>Art Nikitin</title>
<meta name="title" content="Art Nikitin" />
<meta name="description" content="A self-starter self-taught full-stack dev. " />
<meta
name="description"
content="A software architect bridging business with tech from concept to deployment."
/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="keywords" content="tech, javascript, portfolio, python" />
<meta name="robots" content="index, follow" />
Expand All @@ -15,17 +18,26 @@ export default function CustomHead() {
<meta name="author" content="Art Nikitin" />

<meta property="og:type" content="website" />
<meta property="og:url" content="https://artemnikitin.dev/" />
<meta property="og:title" content="Artem Nikitin" />
<meta property="og:description" content="A self-starter self-taught full-stack dev. " />
<meta property="og:url" content="https://artnikitin.dev/" />
<meta property="og:title" content="Art Nikitin" />
<meta
property="og:description"
content="A software architect bridging business with tech from concept to deployment."
/>
<meta property="og:image" content="/images/index.jpg" />

<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://artemnikitin.dev/" />
<meta property="twitter:url" content="https://artnikitin.dev/" />
<meta property="twitter:title" content="Artem Nikitin" />
<meta property="twitter:description" content="A self-starter self-taught full-stack dev. " />
<meta
property="twitter:description"
content="A software architect bridging business with tech from concept to deployment."
/>
<meta property="twitter:image" content="/images/index.jpg" />
<link rel="icon" href="/favicon.ico" />
<link rel="canonical" href="https://artnikitin.dev/" />
<meta name="googlebot" content="index, follow" />
<meta name="bingbot" content="index, follow" />
</Head>
);
}
2 changes: 1 addition & 1 deletion components/skillPill.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export default function SkillPill(props: ISkillPillProps) {
const { skill } = props;
const prettyName = skills.find((s) => s.tech === skill)?.prettyName;
return (
<div className="flex gap-1 items-center bg-gradient-to-tr from-nebula-700 to-plasma-700 px-2 rounded-full select-none text-star-100 font-thin">
<div className="flex gap-1 items-center bg-gradient-to-tr from-nebula-700 to-plasma-700 px-2 rounded-full select-none text-star-100 font-thin text-xs sm:text-sm md:text-md">
<p>{prettyName}</p>
</div>
);
Expand Down
13 changes: 8 additions & 5 deletions components/systemDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ export default function SystemDropdown(props: ISystemDropdownProps) {

return (
<div
className={`w-full flex relative flex-col border-2 border-white rounded-md p-4 min-h-24 overflow-hidden transition-[max-height] ease-in-out
className={`w-full flex relative flex-col border-2 border-white rounded-md p-1 md:p-2 lg:p-4 min-h-12 md:min-h-24 overflow-hidden transition-[max-height] ease-in-out
shadow-md shadow-nebula-500/50
will-change-max-height duration-300
${isOpen ? "max-h-[1000px]" : "max-h-24"}`}
${isOpen ? "max-h-[1000px]" : "max-h-16 md:max-h-24"}`}
onClick={() => setIsOpen(!isOpen)}
ref={descriptionRef}
>
Expand All @@ -44,18 +44,21 @@ export default function SystemDropdown(props: ISystemDropdownProps) {
</p>
</div>
<div
className={`flex flex-col text-white h-full bg-slate-800/80 my-2 p-2 rounded-md duration-100 max-h-[60vh] overflow-y-auto
className={`flex flex-col text-white h-full bg-slate-800/80 my-2 p-1 md:p-2 rounded-md duration-100 max-h-[60vh] overflow-y-auto
${isOpen ? "" : "opacity-0"}`}
>
<div className="flex flex-col gap-2 ">
<div className="flex gap-2 py-2">
<p className="visible text-xs sm:hidden md:text-sm text-plasma-100 select-none">
{system.details.impact}
</p>
<div className="flex flex-wrap gap-2 py-1 md:py-2">
{system.details.techs.map((skill) => (
<SkillPill key={skill} skill={skill} />
))}
</div>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
className="prose prose-sm prose-white whitespace-pre-wrap"
className="prose prose-sm prose-white whitespace-pre-wrap text-sm md:text-md"
>
{system.body}
</ReactMarkdown>
Expand Down
1 change: 1 addition & 0 deletions components/techIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export type TechType =
| "aws"
| "serverless"
| "splunk"
| "tableau"
| "redshift";

interface props {
Expand Down
5 changes: 5 additions & 0 deletions components/utils/skills.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ export const skills: ISkill[] = [
prettyName: "ReactJS",
years: 4,
},
{
tech: "tableau",
prettyName: "Tableau",
years: 1,
},
{
tech: "serverless",
prettyName: "Serverless Framework",
Expand Down
2 changes: 1 addition & 1 deletion pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ export default function Home(props: props) {
className="relative w-full min-h-screen p-8 flex flex-col gap-5 pointer-events-auto "
>
<SubHeading title="Systems" id="systems-header" />
<div className="min-h-[80vh] w-full flex flex-col pt-[10vh] items-center">
<div className="min-h-[80vh] w-full flex flex-col pt-[2vh] md:pt-[10vh] items-center">
<SystemSectionMain systems={systems} blurb={systemBlurb} />
</div>
</section>
Expand Down
Binary file added public/hq_icons/tableau-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.