23 Commits

Author SHA1 Message Date
sefaria be60619353 changing nav shadow from button to box 2026-05-25 00:30:02 +02:00
sefaria 3b5d826ce0 creating about page for menu testing 2026-05-25 00:27:40 +02:00
sefaria 992233f4cb Fixing desktop menu appereance 2026-05-25 00:23:45 +02:00
sefaria 9a92ed4489 menu styling and active page state 2026-05-24 00:32:41 +02:00
sefaria 4e287c0e85 change menu styling 2026-05-23 15:35:42 +02:00
sefaria a49bc03fff set menu width to main width, align left 2026-05-23 00:58:41 +02:00
sefaria 164fae3263 fixed button sizing 2026-05-23 00:30:23 +02:00
sefaria 013e125f37 more menu styling 2026-05-23 00:17:23 +02:00
sefaria 362fa4ef58 create left aligned menu styling 2026-05-23 00:17:02 +02:00
sefaria 2b131f2b1f Adding menu css, styling logo 2026-05-22 22:00:08 +02:00
sefaria d799b3ce1c Merge branch 'main' into feature/add-menu-bar
# Conflicts:
#	404.html
2026-05-22 20:21:59 +02:00
sefaria 42324ff42c redesigned 404 page 2026-05-19 15:57:48 +02:00
sefaria 5b7cdf9e84 corrected copy 2026-05-19 10:21:55 +02:00
sefaria be9491f1e8 updated og image assets 2026-05-16 15:16:52 +02:00
sefaria 276b8eb510 Merge branch 'main' into feature/add-menu-bar
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2026-05-14 18:28:15 +02:00
sefaria ec54a1f3a2 add skiplink to all sites 2026-05-14 18:25:26 +02:00
sefaria aa1f270c59 change border radius button 2026-05-13 15:59:19 +02:00
sefaria 90a0f39790 Adding skipLink for better screen reader mode 2026-05-13 15:48:54 +02:00
sefaria 8dd4e034ee change div to section 2026-05-13 12:20:08 +02:00
sefaria 13ccaa8658 Changing license type adding license to README 2026-05-08 11:05:04 +02:00
sefaria 539b9a36fc Merge branch 'main' into feature/add-menu-bar, adding new footer and section structure 2026-05-08 09:38:45 +02:00
sefaria 43e9fbc5aa add app.js to subpages 2026-05-02 13:13:36 +02:00
sefaria f7e58040fa feat: add menu html code 2026-05-02 13:03:51 +02:00
8 changed files with 536 additions and 62 deletions
+42 -42
View File
@@ -3,59 +3,59 @@
<head>
<meta charset="utf-8">
<title>Page Not Found</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Not Found</title>
<link rel="stylesheet" href="css/style.css">
<meta name="description" content="Creator of visual identities and digital interfaces">
<meta property="og:title" content="Lars Winter">
<meta property="og:description" content="Portfolio of Lars Winter">
<meta property="og:url" content="https://larswinter.me">
<meta property="og:image" content="https://larswinter.me/img/lw-og_image.png">
<meta property="og:image:alt" content="">
<meta name="fediverse:creator" content="@larswinter@mastodon.social">
<link rel="icon" href="img/favicon.ico" sizes="any">
<!-- <link rel="icon" href="img/icon.svg" type="image/svg+xml"> -->
<link rel="apple-touch-icon" href="img/lw.png">
<meta name="theme-color" content="#F7F7F7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="0f0f0f" media="(prefers-color-scheme: dark)">
<style>
* {
line-height: 1.2;
margin: 0;
main {
justify-content: center
}
h1 {
font-size: clamp(7.25rem, 4.5rem + 1.1vw, 8rem);
color: light-dark(var(--color-orange-red-600), var(--color-orange-red-500));
}
html {
color: #888;
display: table;
font-family: sans-serif;
height: 100%;
h2 {
font-size: clamp(2.75rem, 2.5rem + 1.1vw, 4rem);
}
h1, h2, p {
text-align: center;
width: 100%;
}
body {
display: table-cell;
vertical-align: middle;
margin: 2em auto;
}
h1 {
color: #555;
font-size: 2em;
font-weight: 400;
}
p {
margin: 0 auto;
width: 280px;
}
@media only screen and (max-width: 280px) {
body,
p {
width: 95%;
}
h1 {
font-size: 1.5em;
margin: 0 0 0.3em;
}
}
</style>
</head>
<body>
<h1>Page Not Found</h1>
<div id="skipLink">
<a href="#siteContent">Skip to content</a>
</div>
<main>
<section>
<h1>4💀4</h1>
<h2>Page Not Found</h2>
<p>Sorry, but the page you were trying to view does not exist.</p>
</section>
</main>
</body>
</html>
+138
View File
@@ -0,0 +1,138 @@
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About Lars Winter</title>
<link rel="stylesheet" href="css/style.css">
<meta name="description" content="Creator of visual identities and digital interfaces">
<meta property="og:title" content="Lars Winter">
<meta property="og:description" content="Portfolio of Lars Winter">
<meta property="og:url" content="https://larswinter.me">
<meta property="og:image" content="https://larswinter.me/img/lw-og_image.png">
<meta property="og:image:alt" content="">
<meta name="fediverse:creator" content="@larswinter@mastodon.social">
<link rel="icon" href="img/favicon.ico" sizes="any">
<!-- <link rel="icon" href="img/icon.svg" type="image/svg+xml"> -->
<link rel="apple-touch-icon" href="img/lw.png">
<meta name="theme-color" content="#F7F7F7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="0f0f0f" media="(prefers-color-scheme: dark)">
</head>
<body>
<div id="skipLink">
<a href="#siteContent">Skip to content</a>
</div>
<header class="site-header">
<div class="menu-bar">
<div class="menu-left">
<a class="logo" href="/">
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 1080 1080"><path d="M1000.022 50H499.59c-20.565 0-34.827 20.502-27.676 39.783l146.561 395.171c8.419 22.699 40.635 22.382 48.605-.478l61.821-177.315c6.903-19.8 34.906-19.8 41.809 0l61.821 177.315c7.97 22.861 40.187 23.178 48.605.478l146.561-395.171c7.151-19.281-7.112-39.783-27.676-39.783Z"/><path d="M360 538V106c0-30.928-25.072-56-56-56H106c-30.928 0-56 25.072-56 56v868c0 30.928 25.072 56 56 56h868c30.928 0 56-25.072 56-56V650c0-30.928-25.072-56-56-56H416c-30.928 0-56-25.072-56-56"/></svg>
</a>
<nav class="desktop-nav" aria-label="Primary navigation">
<ul>
<li><a href="/" class="menu-button">Work</a></li>
<li><a href="/about.html" class="menu-button" aria-current="page">About</a></li>
<li><a href="/privacy.html" class="menu-button">Blog</a></li>
</ul>
</nav>
</div>
<button
class="menu-toggle"
id="menuToggle"
type="button"
aria-expanded="false"
aria-controls="mobileMenu"
aria-haspopup="true"
aria-label="Open menu"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</header>
<div class="menu-overlay" id="menuOverlay" hidden></div>
<aside
class="mobile-menu"
id="mobileMenu"
aria-label="Mobile navigation"
aria-hidden="true"
>
<div class="mobile-menu__header">
<strong>Menu</strong>
<button class="menu-close" id="menuClose" type="button" aria-label="Close menu">
</button>
</div>
<nav aria-label="Mobile navigation">
<ul>
<li><a href="/" class="link-button" aria-current="page">Work</a></li>
<li><a href="/legal-notice.html" class="link-button">About</a></li>
<li><a href="/privacy.html" class="link-button">Blog</a></li>
</ul>
</nav>
</aside>
<main id="siteContent" class="page-content">
<!-- target="_blank" rel="noopener noreferrer" -->
<header class="content-box content-intro">
<h1 class="headline size-h2">
About text
</h1>
</header>
<section class="content-box content-text">
<p class="text">
As usual, my portfolio is a work in progress and currently only available on request. Please feel free to contact me <a href="mailto:contact@larswinter.me">via email</a> for work collaborations and other requests. You can also find me on one of those fancy social networks, like <a rel="me" href="https://mastodon.social/@larswinter">Mastodon</a>, <a href="https://www.linkedin.com/in/larswinter">LinkedIn</a> (if really necessary), <del>Instagram</del>, and <del>Twitter</del>.
</p>
</section>
<div class="content-box placeholder">
</div>
<!-- <div class="footer-fade"></div> -->
</main>
<footer>
<div class="footer-content">
<span>© 2018<span id="year"></span> Lars Winter</span>
<div class="footer-links">
<div>
<a href="/legal-notice.html">Legal notice</a>
</div>
<div>
<a href="/privacy.html">Privacy</a>
</div>
<div>
<a href="/archive">Archived Portfolio</a>
</div>
</div>
<script>
document.getElementById('year').textContent = new Date().getFullYear();
</script>
</div>
</footer>
<!-- Add your site or application content here -->
<script src="js/app.js"></script>
</body>
</html>
+275 -10
View File
@@ -154,8 +154,14 @@
--color-primary-button-hover: var(--color-orange-500);
--color-primary-button-active: var(--color-orange-red-600);
--color-menu-button: none;
--color-menu-button-hover: light-dark(var(--color-neutral-400), var(--color-neutral-600));
--color-text-button: var(--color-neutral-900);
--color-text-button-active: var(--color-neutral-100);
--color-text-button-hover: var(--color-neutral-100);
--color-menu-text-button: light-dark(var(--color-neutral-800), var(--color-neutral-200));
--color-menu-text-button-hover: light-dark(var(--color-neutral-900), var(--color-neutral-100));
--shadow-box: var(--shadow-light);
@@ -203,8 +209,7 @@ h3,
h4,
h5,
h6,
p,
li {
p {
scroll-margin-top: 80px;
width: clamp(min(100%, 40ch), 50ch, min(100%, 60ch));
}
@@ -346,7 +351,12 @@ a:visited {
text-decoration-thickness: 0.175rem;
}
button, .link-button {
button, .link-button, .menu-button, .logo {
appearance: none;
-webkit-appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 44px;
font-family: "MD IO", monospace;
font-style: normal;
@@ -354,27 +364,57 @@ button, .link-button {
line-height: var(--line-normal);
letter-spacing: 0.025rem;
padding: 0.875rem 1rem;
background: var(--color-primary-button);
font-size: var(--text-button);
color: var(--color-text-button);
border: none;
border-radius: var(--radius-xxl);
box-shadow: var(--shadow-button);
text-decoration: none;
}
button:hover, .link-button:hover {
button, .link-button, .logo, .desktop-nav a[aria-current="page"],
.mobile-menu a[aria-current="page"] {
background: var(--color-primary-button);
color: var(--color-text-button);
box-shadow: var(--shadow-button);
}
.menu-button {
background: var(--color-menu-button);
color: var(--color-menu-text-button);
}
.logo {
padding: 1rem;
aspect-ratio: 1/1;
}
.logo svg {
height: 1.75em;
width: 1.75em;
flex: none;
display: block;
}
.logo svg path {
fill: currentColor;
}
button:hover, .link-button:hover, .logo:hover, .desktop-nav a[aria-current="page"]:hover, .mobile-menu a[aria-current="page"]:hover {
background: var(--color-primary-button-hover);
color: var(--color-text-button);
}
button:active, .link-button:active {
.menu-button:hover {
background: var(--color-menu-button-hover);
color: var(--color-menu-text-button-hover);
}
button:active, .link-button:active, .logo:active, .desktop-nav a[aria-current="page"]:active, .mobile-menu a[aria-current="page"]:active {
background: var(--color-primary-button-active);
box-shadow: var(--shadow-button-active);
color: var(--color-text-button-active);
}
button:visited, .link-button:visited {
button:visited, .link-button:visited, .logo:visited, .desktop-nav a[aria-current="page"]:visited, .mobile-menu a[aria-current="page"]:visited {
color: var(--color-text-button);
text-decoration: none;
}
@@ -387,6 +427,231 @@ button:visited, .link-button:visited {
Layout styles
======================= */
#skipLink a {
display: block;
position: absolute;
left: -999px;
top: -999px;
}
#skipLink a:focus {
left: 0;
top: 0;
padding: var(--spacing-2);
background: var(--color-background-content-box);
}
.site-header {
display: flex;
align-items: center;
justify-content: center;
position: sticky;
top: 0;
z-index: 100;
}
.site-header .menu-bar {
width: 900px;
padding: var(--spacing-5) var(--spacing-6) 0 var(--spacing-5);
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
/* background: rgb(255 255 255 / 0.88);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); */
}
.menu-bar .menu-left {
display: flex;
align-items: stretch;
gap: var(--spacing-4);
}
.desktop-nav {
flex: 1 1 auto;
display: flex;
align-self: stretch;
background: light-dark(var(--color-neutral-200), var(--color-neutral-800));
border-radius: var(--radius-xxl);
box-shadow: var(--shadow-box);
}
.desktop-nav ul {
display: flex;
align-items: stretch;
width: 100%;
margin: 0;
padding: var(--spacing-2);
list-style: none;
gap: var(--spacing-2);
}
.desktop-nav li {
flex: 1 1 0;
display: flex;
align-items: stretch;
margin: 0;
padding: 0;
list-style: none;
}
.desktop-nav .menu-button {
flex: 1 1 auto;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
white-space: nowrap;
}
.desktop-nav a[aria-current="page"],
.mobile-menu a[aria-current="page"] {
}
.menu-toggle,
.menu-close {
width: 44px;
height: 44px;
border: 1px solid var(--border);
border-radius: 0.75rem;
background: #fff;
color: inherit;
cursor: pointer;
}
.menu-toggle {
display: none;
position: relative;
}
.menu-toggle span {
position: absolute;
left: 50%;
width: 20px;
height: 2px;
background: currentColor;
border-radius: 999px;
transform-origin: center;
transition: transform 0.25s ease, opacity 0.25s ease;
}
.menu-toggle span:nth-child(1) {
top: 14px;
transform: translateX(-50%);
}
.menu-toggle span:nth-child(2) {
top: 21px;
transform: translateX(-50%);
}
.menu-toggle span:nth-child(3) {
top: 28px;
transform: translateX(-50%);
}
.menu-toggle.is-open span:nth-child(1) {
top: 21px;
transform: translateX(-50%) rotate(45deg);
}
.menu-toggle.is-open span:nth-child(2) {
opacity: 0;
}
.menu-toggle.is-open span:nth-child(3) {
top: 21px;
transform: translateX(-50%) rotate(-45deg);
}
.menu-overlay {
position: fixed;
inset: 0;
background: var(--overlay);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
opacity: 0;
pointer-events: none;
transition: opacity 0.25s ease;
z-index: 200;
}
.mobile-menu {
position: fixed;
inset: auto 1rem 1rem 1rem;
width: auto;
max-width: 24rem;
margin-inline: auto;
background: var(--panel);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgb(255 255 255 / 0.45);
border-radius: 1rem;
box-shadow: 0 20px 50px rgb(0 0 0 / 0.16);
padding: 1rem;
opacity: 0;
transform: translateY(1rem) scale(0.98);
pointer-events: none;
transition: opacity 0.25s ease, transform 0.25s ease;
z-index: 300;
}
.mobile-menu__header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1rem;
}
.mobile-menu ul {
display: grid;
gap: 0.5rem;
}
.mobile-menu a {
display: block;
padding: 0.95rem 1rem;
border-radius: 0.75rem;
background: rgb(255 255 255 / 0.56);
}
/* .page-content {
padding: 3rem 1.25rem;
} */
.menu-open .menu-overlay {
opacity: 1;
pointer-events: auto;
}
.menu-open .mobile-menu {
opacity: 1;
transform: translateY(0) scale(1);
pointer-events: auto;
}
@media (max-width: 579px) {
.desktop-nav {
display: none;
}
.menu-toggle {
display: inline-block;
}
}
@media (min-width: 580px) {
.menu-overlay,
.mobile-menu {
display: none;
}
}
main, footer {
max-width: 900px;
border: none;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

+63 -3
View File
@@ -25,13 +25,73 @@
<body>
<main>
<div id="skipLink">
<a href="#siteContent">Skip to content</a>
</div>
<header class="site-header">
<div class="menu-bar">
<div class="menu-left">
<a class="logo" href="/">
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 1080 1080"><path d="M1000.022 50H499.59c-20.565 0-34.827 20.502-27.676 39.783l146.561 395.171c8.419 22.699 40.635 22.382 48.605-.478l61.821-177.315c6.903-19.8 34.906-19.8 41.809 0l61.821 177.315c7.97 22.861 40.187 23.178 48.605.478l146.561-395.171c7.151-19.281-7.112-39.783-27.676-39.783Z"/><path d="M360 538V106c0-30.928-25.072-56-56-56H106c-30.928 0-56 25.072-56 56v868c0 30.928 25.072 56 56 56h868c30.928 0 56-25.072 56-56V650c0-30.928-25.072-56-56-56H416c-30.928 0-56-25.072-56-56"/></svg>
</a>
<nav class="desktop-nav" aria-label="Primary navigation">
<ul>
<li><a href="/" class="menu-button" aria-current="page">Work</a></li>
<li><a href="/about.html" class="menu-button">About</a></li>
<li><a href="/privacy.html" class="menu-button">Blog</a></li>
</ul>
</nav>
</div>
<button
class="menu-toggle"
id="menuToggle"
type="button"
aria-expanded="false"
aria-controls="mobileMenu"
aria-haspopup="true"
aria-label="Open menu"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</header>
<div class="menu-overlay" id="menuOverlay" hidden></div>
<aside
class="mobile-menu"
id="mobileMenu"
aria-label="Mobile navigation"
aria-hidden="true"
>
<div class="mobile-menu__header">
<strong>Menu</strong>
<button class="menu-close" id="menuClose" type="button" aria-label="Close menu">
</button>
</div>
<nav aria-label="Mobile navigation">
<ul>
<li><a href="/" class="link-button" aria-current="page">Work</a></li>
<li><a href="/legal-notice.html" class="link-button">About</a></li>
<li><a href="/privacy.html" class="link-button">Blog</a></li>
</ul>
</nav>
</aside>
<main id="siteContent" class="page-content">
<!-- target="_blank" rel="noopener noreferrer" -->
<header class="content-box content-intro">
<h1 class="headline size-h2">
Hey, I am Lars Winter, a graphic designer from Hamburg. I conceptualize and design projects with a focus on corporate design, design systems, icon design, web design, and editorial design.
Hey, I am Lars Winter, a graphic designer from Hamburg. I conceptualize and design projects focused on UX/UI design, design systems, icon design, corporate design, and editorial design.
</h1>
</header>
@@ -71,7 +131,7 @@
<!-- Add your site or application content here -->
<!-- <script src="js/app.js"></script> -->
<script src="js/app.js"></script>
</body>
+7 -1
View File
@@ -24,6 +24,12 @@
</head>
<body>
<div id="skipLink">
<a href="#siteContent">Skip to content</a>
</div>
<main>
<section class="align-left">
@@ -110,7 +116,7 @@
</footer>
<!-- Add your site or application content here -->
<!-- <script src="js/app.js"></script> -->
<script src="js/app.js"></script>
</body>
+6 -1
View File
@@ -24,6 +24,11 @@
</head>
<body>
<div id="skipLink">
<a href="#siteContent">Skip to content</a>
</div>
<main>
<section class="align-left">
@@ -144,7 +149,7 @@
<!-- Add your site or application content here -->
<!-- <script src="js/app.js"></script> -->
<script src="js/app.js"></script>
</body>