Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
1da8887
start
osckli990 Apr 15, 2025
c65b679
React structure
osckli990 Apr 16, 2025
02cce8f
trying to work with import and export
osckli990 Apr 17, 2025
3426a87
tricking with imports, keys, arrays, json
osckli990 Apr 17, 2025
bc47b89
intergration of tailwind
osckli990 Apr 17, 2025
7e6c66e
trying to fix netlify
osckli990 Apr 17, 2025
f0573a3
another fix
osckli990 Apr 17, 2025
c099f13
continuing to featured projects
osckli990 Apr 17, 2025
4eb79b6
added styled component, started on featured projects, will need state…
osckli990 Apr 18, 2025
45c40ae
added skills section, trying to fix project title not being displayed
osckli990 Apr 21, 2025
9ebe2ea
tried to get Jest to work, not very compatible with Vite, configs did…
osckli990 Apr 21, 2025
ba06feb
finnished the feautured projects section. changed some CSS
osckli990 Apr 21, 2025
e7554e9
succesfully installed vitest instead! Testing galore
osckli990 Apr 21, 2025
c042767
all components done, changed component structure, mobile css maybe do…
osckli990 Apr 21, 2025
2a81548
resturturing of components
osckli990 Apr 22, 2025
3358056
css now actually follows design specs, altough not looks. a discrepancy
osckli990 Apr 22, 2025
c80869a
splitting up into more components
osckli990 Apr 22, 2025
fce0f7e
revoked component changes and continued with styling. done up to tabl…
osckli990 Apr 23, 2025
164aac1
continued with styling for desktop and tablet, with issues i will bri…
osckli990 Apr 24, 2025
b2a35a9
some aria labels
osckli990 Apr 24, 2025
ed1d937
help
osckli990 Apr 24, 2025
a899697
further imporvements
osckli990 Apr 24, 2025
43bb7aa
animation driving me insane
osckli990 Apr 24, 2025
31c40c3
og tags
osckli990 Apr 24, 2025
237ad4c
small fixes
osckli990 Apr 24, 2025
71a5e2f
before retro
osckli990 Apr 25, 2025
e8ba637
added scroll animation through aos-library, removed some files, clean…
osckli990 Apr 27, 2025
fb3705d
seemore animation
osckli990 Apr 27, 2025
3b45969
changed img files, more accessibility to increase score, button now w…
osckli990 Apr 28, 2025
51a0f4e
accessibility improvements
osckli990 Apr 28, 2025
03586b5
mumbo jumbo
osckli990 Apr 28, 2025
50be16b
placeholder
osckli990 May 5, 2025
60dd197
fix
osckli990 May 5, 2025
5658994
some fixes
osckli990 May 7, 2025
8925f03
new project
osckli990 May 10, 2025
1a116cf
updated firmware
osckli990 Jul 28, 2025
95c57d0
updated with new projects
osckli990 Jul 28, 2025
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
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# Portfolio
# Oscars Portfolio

# https://oscars-js-portfolio.netlify.app
17 changes: 17 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import js from "@eslint/js";
import globals from "globals";
import pluginReact from "eslint-plugin-react";
import { defineConfig } from "eslint/config";

export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,jsx}"],
plugins: { js },
extends: ["js/recommended", "stylelint-config-tailwindcss"],
},
{
files: ["**/*.{js,mjs,cjs,jsx}"],
languageOptions: { globals: globals.browser },
},
pluginReact.configs.flat.recommended,
]);
41 changes: 37 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,46 @@
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="description" content="Oscar's portfolio" />
<meta
name="keywords"
content="HTML, CSS, JavaScript, React, Vite, Vitest, Tailwind"
/>
<meta name="author" content="Oscar Liljefors" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Portfolio</title>
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Afacad+Flux:[email protected]&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Jost:ital,wght@0,100..900;1,100..900&family=Merienda:[email protected]&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="bower_components/aos/dist/aos.css" />
<!--aos link-->
<script defer type="module" src="/src/main.jsx"></script>
<script>
document.documentElement.classList.add("js");
</script>
<!--dont remember. remove?-->
<title>Oscar's Portfolio</title>
<meta property="og:locale" content="en_US" />
<meta property="og:title" content="Oscar's portfolio" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Netlify" />
<meta
property="og:description"
content="You're welcome to discover more about Oscar"
/>
<meta property="og:url" content="https://oscars-js-portfolio.netlify.app" />
<meta property="og:image" content="./public/meta-og-img.png" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
<!--Anchor of main-->
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script>
AOS.init();
</script>
</body>
</html>
37 changes: 31 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,46 @@
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
"preview": "vite preview",
"test": "vitest"
},
"dependencies": {
"@tailwindcss/postcss": "^4.1.4",
"@versoly/react-taos": "^0.1.0",
"aos": "^3.0.0-beta.6",
"react": "^19.0.0",
"react-dom": "^19.0.0"
"react-dom": "^19.0.0",
"styled-components": "^6.1.17",
"taos": "^1.0.5"
},
"devDependencies": {
"@eslint/js": "^9.21.0",
"@babel/core": "^7.26.10",
"@babel/preset-env": "^7.26.9",
"@babel/preset-react": "^7.26.3",
"@eslint/js": "^9.25.1",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.21.0",
"@vitejs/plugin-react": "^4.4.0",
"autoprefixer": "^10.4.21",
"babel-jest": "^29.7.0",
"babel-plugin-styled-components": "^2.1.4",
"eslint": "^9.25.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-react-refresh": "^0.4.19",
"globals": "^15.15.0",
"vite": "^6.2.0"
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jsdom": "^26.1.0",
"postcss": "^8.5.3",
"react-test-renderer": "^19.1.0",
"tailwindcss": "^3.4.17",
"tailwindcss-motion": "^1.1.0",
"vite": "^6.2.0",
"vitest": "^3.1.2"
}
}
8 changes: 8 additions & 0 deletions postcss.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { TAOS } from "@versoly/react-taos";

export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
Binary file added public/article-acces.avif
Binary file not shown.
Binary file added public/article-api.avif
Binary file not shown.
Binary file added public/article-first.avif
Binary file not shown.
Binary file added public/article-movie.avif
Binary file not shown.
Binary file added public/article-portfolio.avif
Binary file not shown.
Binary file added public/article-recipe.avif
Binary file not shown.
Binary file added public/article-todo.avif
Binary file not shown.
Binary file added public/article-weather.avif
Binary file not shown.
Binary file added public/happy_thoughts.avif
Binary file not shown.
3 changes: 3 additions & 0 deletions public/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/meta-og-img.avif
Binary file not shown.
1 change: 0 additions & 1 deletion public/vite.svg

This file was deleted.

6 changes: 5 additions & 1 deletion pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
Please include a link to your Figma design and a Netlify link.
Please include a link to your Figma design and a Netlify link.

# www.figma.com/board/PymjF0tI8PYjLJ45Ud1Ai9/Water-🌊?node-id=0-1&p=f&t=fyWZXSjCKeiorHlN-0

# https://oscars-js-portfolio.netlify.app
5 changes: 5 additions & 0 deletions src/App.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

/*This is required to activate tailwind*/
28 changes: 24 additions & 4 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
import React from "react";

import { FeaturedProjects } from "./sections/FeaturedProjects";
import { HiThere } from "./sections/HiThere";
import { LetsTalk } from "./sections/LetsTalk";
import { MyWords } from "./sections/MyWords";
import { Skills } from "./sections/Skills";
import { Tech } from "./sections/Tech";
import { GlobalStyle } from "./GlobalStyle";

export const App = () => {
return (
<>
<h1>Portfolio</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatem, laborum! Maxime animi nostrum facilis distinctio neque labore consectetur beatae eum ipsum excepturi voluptatum, dicta repellendus incidunt fugiat, consequatur rem aperiam.</p>
<GlobalStyle />
<HiThere data-aos="fade-up" />
<Tech data-aos="fade-up" />
<FeaturedProjects data-aos="fade-up" />
<Skills data-aos="fade-up" />
<MyWords data-aos="fade-up" />
<LetsTalk data-aos="fade-up" />
</>
)
}
);
};

//App is our main hub for all section and components. the "sandwich"

//add tests
//add accessibility and aria-labels
19 changes: 19 additions & 0 deletions src/App.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { render, screen } from "@testing-library/react";
import { App } from "./App";

/*
describe("A truthy statement", () => {
it("should be equal to 2", () => {
expect(1 + 1).toEqual(2);
});
});
test
*/

describe("App", () => {
it("renders the App component", () => {
render(<App />);

screen.debug(); // prints out the jsx in the App component unto the command line
});
});
12 changes: 12 additions & 0 deletions src/Breakpoints.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export const media = {
mobile: "(min-width: 768px)",
tablet: "(min-width: 1024px)",
smalldesktop: "(min-width: 1280px)",
desktop: "(min-width: 1536px)",
};

//sm = 640px
//mobile = 768px = md
//tablet = 1024px = lg
//smalldesktop = 1280px = xl
//desktop = 1536px = 2xl
66 changes: 66 additions & 0 deletions src/GlobalStyle.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { createGlobalStyle } from "styled-components";

import { media } from "./Breakpoints";

export const GlobalStyle = createGlobalStyle`
* {
font-family: "Poppins", sans-serif;
font-style: normal;
line-height: normal;
color: #000000;
}

:focus-visible {
outline: 4px solid yellow;
outline-offset: 2px;
border-radius: 2px;
}

body {
margin: 0;
padding: 0;
}

#root {
width: 100%;
}


h1 {
font-size: 52px;
font-weight: 700;
}

h2 {
font-size: 48px;
font-weight: 700;
}

h3 {
font-size: 24px;
font-weight: 500;
}

li {
font-size: 16px;
font-weight: 400;
list-style-type: none;
}

@media ${media.smalldesktop} {
h1 {
font-size: 100px;
font-weight: 700;
}

h2 {
font-size: 80px;
font-weight: 700;
}

h3 {
font-size: 30px;
font-weight: 500;
}
}
`;
5 changes: 5 additions & 0 deletions src/assets/Btn-instagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/Btn-linkedin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/Btn-stackoverflow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/assets/Ic-ArrowDown.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/assets/Ic-Github.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading