Java
+OOP, Streams, Collections, JDBC/JPA, Testing
+diff --git a/assets/myPhoto.jpeg b/assets/myPhoto.jpeg new file mode 100644 index 0000000..36df7a4 Binary files /dev/null and b/assets/myPhoto.jpeg differ diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..04f94cc --- /dev/null +++ b/css/style.css @@ -0,0 +1,331 @@ +/* ========================================= + Obai Albeek – Portfolio Styles (Dark) + Palette: Onyx + Jade | v2 + ========================================= */ + +/* ---------- CSS Variables ---------- */ +:root{ + --bg: #0E1116; /* Onyx (Seitenhintergrund) */ + --surface: #101721; /* Dunkle Card/Fläche */ + --surface-2: #0B111A; /* noch dunklere Fläche */ + --text: #E6E9EF; /* Primärtext hell */ + --muted: #A8B0BF; /* Sekundärtext */ + --line: rgba(255,255,255,.08); + + --accent: #12B3A4; /* Jade/Türkis */ + --accent-ink: #061014; /* Text auf Akzent (dunkel, angenehmer als weiß) */ + + --radius: 22px; + --shadow: 0 16px 40px rgba(0,0,0,.55); + --shadow-sm: 0 8px 24px rgba(0,0,0,.45); + + --container: 1100px; + --space-1: .25rem; + --space-2: .5rem; + --space-3: .75rem; + --space-4: 1rem; + --space-5: 1.25rem; + --space-6: 1.5rem; + --space-7: 2rem; + --space-8: 2.5rem; + --space-9: 3rem; +} + +/* ---------- Reset & Base ---------- */ +*, +*::before, +*::after{ box-sizing: border-box; } +html, body{ height: 100%; scroll-behavior: smooth; } + +body{ + margin: 0; + font-family: "Roboto", system-ui, -apple-system, Segoe UI, Arial, sans-serif; + color: var(--text); + background: + radial-gradient(900px 600px at 20% -10%, #121925 0%, transparent 55%), + radial-gradient(1100px 700px at 110% -20%, #0F1721 0%, transparent 60%), + var(--bg); + line-height: 1.6; +} + +:focus-visible{ + outline: 3px solid color-mix(in oklab, var(--accent), white 15%); + outline-offset: 2px; +} + +.container{ + max-width: var(--container); + margin-inline: auto; + padding-inline: var(--space-7); +} + +/* ---------- Sticky Topbar (Nav rechts, Name links) ---------- */ +.topbar{ + position: sticky; + top: 0; + z-index: 50; + display: flex; /* NEU: Flex-Layout */ + align-items: center; + justify-content: space-between;/* sorgt dafür, dass Nav ganz rechts sitzt */ + padding: var(--space-4) var(--space-7); + backdrop-filter: saturate(1.05) blur(8px); + background: color-mix(in oklab, var(--bg), black 20% / 65%); + border-bottom: 1px solid var(--line); +} + +/* Brand / Name links */ +.topbar .brand{ + display: flex; + align-items: center; + gap: .6rem; + text-decoration: none; +} +.brand-mark{ + display: inline-grid; + place-items: center; + width: 36px; height: 36px; + border-radius: 12px; + background: var(--accent); + color: var(--accent-ink); + font-weight: 800; + letter-spacing: .5px; + box-shadow: 0 8px 20px color-mix(in oklab, var(--accent), black 65%); +} +.brand-text{ + color: var(--text); + font-weight: 800; + font-size: 1.08rem; /* Name deutlicher sichtbar */ + letter-spacing: .2px; +} + +/* Nav ganz rechts */ +.nav{ + margin-left: auto; /* bleibt als Absicherung */ + display: flex; + gap: .6rem; + align-items: center; +} +.nav-link{ + --pad-x: 1rem; + display: inline-block; + padding: .55rem var(--pad-x); + text-decoration: none; + color: var(--text); + background: rgba(255,255,255,.03); + border: 1px solid var(--line); + border-radius: 999px; + transition: transform .06s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease; + box-shadow: var(--shadow-sm); +} +.nav-link:hover{ + transform: translateY(-1px); + background: rgba(255,255,255,.06); + border-color: rgba(255,255,255,.12); +} +.nav-link.cta{ + background: var(--accent); + color: var(--accent-ink); + border-color: transparent; + box-shadow: 0 10px 26px color-mix(in oklab, var(--accent), black 58%); +} + +/* ---------- Hero ---------- */ +.hero{ padding: clamp(3rem, 5vw, 5rem) var(--space-7); } + +.hero-card{ + position: relative; + display: grid; + grid-template-columns: 1.1fr 1.4fr; + gap: var(--space-8); + align-items: center; + max-width: var(--container); + margin: 0 auto; + background: linear-gradient(180deg, var(--surface) 0%, color-mix(in oklab, var(--surface), black 8%) 100%); + border: 1px solid var(--line); + border-radius: var(--radius); + padding: clamp(1.25rem, 3vw, 2rem); + box-shadow: var(--shadow); +} + +.hero-media{ position: relative; min-height: 240px; } + +.hero-photo{ + position: absolute; + inset: auto 0 0 50%; + transform: translate(-50%, 18%) scale(1.02); + width: min(320px, 78%); + aspect-ratio: 1/1; + object-fit: cover; + border-radius: 50%; + border: 10px solid var(--surface); + /* dezentes Teal-Glow */ + box-shadow: + 0 0 0 10px color-mix(in oklab, var(--accent), transparent 85%), + 0 26px 60px color-mix(in oklab, var(--accent), black 70%); + background: #111; +} + +/* Textblock */ +.kicker{ margin: 0 0 .25rem 0; color: var(--muted); letter-spacing: .4px; } +.title{ + margin: 0 0 .35rem 0; + font-size: clamp(2rem, 5vw, 3rem); + line-height: 1.15; + color: var(--text); +} +.subtitle{ margin: 0 0 var(--space-7) 0; color: var(--muted); } + +/* ---------- Buttons ---------- */ +.btn{ + --px: 1.1rem; + display: inline-block; + padding: .75rem var(--px); + border-radius: 999px; + text-decoration: none; + font-weight: 800; + line-height: 1; + border: 1px solid transparent; + transition: transform .06s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease; + cursor: pointer; +} +.btn:hover{ transform: translateY(-1px); } + +.btn.primary{ + background: var(--accent); + color: var(--accent-ink); + box-shadow: 0 10px 26px color-mix(in oklab, var(--accent), black 58%); +} +.btn.ghost{ + background: rgba(255,255,255,.04); + color: var(--text); + border-color: var(--line); +} +.btn.small{ + padding: .55rem .9rem; + font-weight: 700; +} + +/* ---------- Social ---------- */ +.social{ display:flex; gap:.5rem; margin:0; padding:0; list-style:none; } +.iconlink{ + display: inline-grid; + place-items: center; + width: 40px; height: 40px; + border-radius: 12px; + border: 1px solid var(--line); + background: rgba(255,255,255,.03); + color: var(--text); + text-decoration: none; + box-shadow: var(--shadow-sm); +} +.iconlink:hover{ + transform: translateY(-1px); + background: rgba(255,255,255,.06); +} + +/* ---------- Sections ---------- */ +.section{ padding: clamp(2.5rem, 5vw, 4rem) 0; scroll-margin-top: 90px; } +.section h2{ font-size: clamp(1.6rem, 3.4vw, 2rem); margin: 0 0 var(--space-5) 0; } + +/* About */ +.about .highlights{ + display: grid; + grid-template-columns: 1fr; + gap: .5rem; + padding: 0; margin: var(--space-6) 0 0 0; + list-style: "✓ "; +} +.about .highlights li{ padding-left: .4rem; color: var(--text); } + +/* Skills */ +.skills .skill-grid{ + display: grid; + gap: var(--space-6); + grid-template-columns: repeat(4, 1fr); +} +.skill{ + background: var(--surface-2); + border: 1px solid var(--line); + border-radius: calc(var(--radius) - 6px); + padding: var(--space-7); + box-shadow: var(--shadow-sm); +} +.skill h3{ margin: 0 0 .35rem 0; } +.skill p{ color: var(--muted); margin: 0; } + +/* Projects */ +.project-list{ + display: grid; + gap: var(--space-6); + grid-template-columns: repeat(3, 1fr); +} +.project-card{ + background: var(--surface); + border: 1px solid var(--line); + border-radius: calc(var(--radius) - 6px); + padding: var(--space-7); + display: grid; + gap: .9rem; + box-shadow: var(--shadow-sm); +} +.project-card .meta{ color: var(--muted); margin: .25rem 0 0 0; } +.project-actions{ display: flex; gap: .5rem; } + +/* Kontakt */ +.contact .contact-form{ + margin-top: var(--space-6); + display: grid; + gap: var(--space-5); + grid-template-columns: 1fr 1fr; +} +.field{ display: grid; gap: .35rem; } +.field:nth-child(3){ grid-column: 1 / -1; } +label{ font-weight: 700; color: var(--text); } +input, textarea{ + width: 100%; + border: 1px solid var(--line); + border-radius: 14px; + padding: .85rem 1rem; + font: inherit; + background: #0A0F16; + color: var(--text); + transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; +} +input::placeholder, textarea::placeholder{ color: #8A93A5; } +input:focus, textarea:focus{ + border-color: color-mix(in oklab, var(--accent), white 15%); + box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent), black 75%); +} + +/* Footer */ +.footer{ + border-top: 1px solid var(--line); + background: #0A0F16; + padding: var(--space-6) 0; + text-align: center; + color: var(--muted); +} + +/* ---------- Responsive ---------- */ +@media (max-width: 1000px){ + .hero-card{ + grid-template-columns: 1fr; + padding-top: clamp(2rem, 6vw, 3rem); + } + .hero-photo{ + position: static; + display: block; + margin: -3.5rem auto 0 auto; + transform: none; + width: 180px; + } + .skills .skill-grid{ grid-template-columns: repeat(2, 1fr); } + .project-list{ grid-template-columns: repeat(2, 1fr); } +} + +@media (max-width: 640px){ + .nav{ display: none; } /* optional: auf sehr klein ausblenden */ + .container{ padding-inline: var(--space-5); } + .project-list, .skills .skill-grid{ grid-template-columns: 1fr; } + .contact .contact-form{ grid-template-columns: 1fr; } +} diff --git a/html/myPortfolio.html b/html/myPortfolio.html index d090b57..2913eba 100644 --- a/html/myPortfolio.html +++ b/html/myPortfolio.html @@ -3,7 +3,7 @@
-Skills & journy
-- Hey there! I'm Obai Albeek, a computer science student based in Mannheim, Germany. - I specialize in software development with a strong focus on Java andobject-oriented programming , but I also enjoy working with C, C++, Go, and JavaScript. - In addition, I have experience in web development using HTML, CSS, JavaScript, PHP, and SQL, and I like building both frontend and backend projects. + + - I'm always curious to learn new technologies and apply them to real-world problems. - My goal is to combine clean code with creative solutions to design applications that are both useful and user-friendly. -
-Programminglangauge
-Web Developing
-Database
-Tools & DevOps
-
+ Hallo, ich bin
++ Informatik-Student & Java-Entwickler · Web (HTML, CSS, JavaScript, PHP, JQuery, React) +
+ + + + ++ Ich studiere Informatik an der TH Mannheim und baue saubere, + wartbare Software. In Java fühle ich mich wie zu Hause + (OOP, Collections, Streams). Im Web arbeite ich gern full-stack + mit HTML/CSS/JS und PHP (+SQL). +
+OOP, Streams, Collections, JDBC/JPA, Testing
+HTML5, CSS3, JavaScript (DOM, JSON), PHP, SQL
+Git, Linux/Terminal, Docker-Grundlagen, Figma
+REST, MVC, Architektur-Basics (Facade/Domain/Controller)
+Schreib mir deine Nachricht
+ + +