Compare commits

..

8 Commits

7 changed files with 60 additions and 35 deletions

View File

@@ -1,3 +1,18 @@
// fix iOS fixed backgrounds in Safari versions past 2012
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
if (isIOS) {
window.addEventListener('scroll', () => {
document.querySelectorAll('.blurgreen, .listenbuy').forEach(div => {
const rect = div.getBoundingClientRect();
const scrollOffsetY = rect.top * -1;
const scrollOffsetX = rect.left * -1;
div.style.backgroundAttachment = `scroll`;
div.style.backgroundPosition = `${scrollOffsetX}px ${scrollOffsetY}px`;
});
});
}
// gif player // gif player
document.querySelectorAll('.paused-animation').forEach(el => { document.querySelectorAll('.paused-animation').forEach(el => {
el.addEventListener('click', () => { el.addEventListener('click', () => {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -25,8 +25,6 @@
<body> <body>
<div id="background_wrap"></div>
<div id="wrapper"> <div id="wrapper">
<header id="greeting" class="sidebaritem headlineshadow"> <header id="greeting" class="sidebaritem headlineshadow">
<div id="icosahedron-container"></div> <div id="icosahedron-container"></div>

View File

@@ -23,8 +23,6 @@
<body> <body>
<div id="background_wrap"></div>
<div id="wrapper"> <div id="wrapper">
<header id="greeting" class="sidebaritem headlineshadow"> <header id="greeting" class="sidebaritem headlineshadow">
<div id="icosahedron-container"></div> <div id="icosahedron-container"></div>
@@ -61,11 +59,11 @@
<p>between 2013 and 2020 I've created <a href="https://git.broken.graphics/explore/repos?q=watchface" target="_blank">serveral watchfaces</a> for all pebble smartwatch models as well as fitbit smartwatches.</p> <p>between 2013 and 2020 I've created <a href="https://git.broken.graphics/explore/repos?q=watchface" target="_blank">serveral watchfaces</a> for all pebble smartwatch models as well as fitbit smartwatches.</p>
<p>these watchfaces have been designed with usability concepts in mind respecting interaction capabilities and screen space constraints. that includes motion gestures, adaptive display of stats based on activity and deep configurability via the user's smartphone.</p> <p>these watchfaces have been designed with usability concepts in mind respecting interaction capabilities and screen space constraints. that includes motion gestures, adaptive display of stats based on activity and deep configurability via the user's smartphone.</p>
<iframe class="watchface-video" width="445" height="445" src="https://www.youtube.com/embed/_vG2ZFeQobg?si=Ys78wYEozPAy3eoC" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe class="watchface-video" width="445" height="445" src="https://www.youtube.com/embed/_vG2ZFeQobg?si=Ys78wYEozPAy3eoC" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<iframe width="445" height="445" src="https://www.youtube.com/embed/EjgYxUxGvdI?si=eBT5P9vRsDyyNALU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe class="watchface-video" width="445" height="445" src="https://www.youtube.com/embed/EjgYxUxGvdI?si=eBT5P9vRsDyyNALU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</article> </article>
<article id="yana"> <article id="yana">
<h2><span class="halfbubble blurgreen"></span><em>yana</em> UX/UI and graphic design</h2> <h2><span class="halfbubble blurgreen"></span><em>yana</em> UX/UI and graphic design</h2>
<img class="watchface" src="img/experiments/yana-logo-v2.svg" width="200" height="200" alt="blue food bowl icon with crossed chopsticks below it and a violet flame above" /> <img class="half-right yana-logo" src="img/experiments/yana-logo-v2.svg" width="200" height="200" alt="blue food bowl icon with crossed chopsticks below it and a violet flame above" />
<p>yana is a work-in-progress calorie and nutrition tracking application for android.</p> <p>yana is a work-in-progress calorie and nutrition tracking application for android.</p>
<p>unfortunately there's not a lot to show as of yet. please stay tuned for more.</p> <p>unfortunately there's not a lot to show as of yet. please stay tuned for more.</p>
</article> </article>

View File

@@ -406,6 +406,7 @@ a:hover {
} }
p { p {
font-size: 0.95em;
margin-bottom: 0.6em; margin-bottom: 0.6em;
} }
@@ -456,10 +457,24 @@ textarea:-moz-placeholder {
body { body {
background-color: black; background-color: black;
/* background-image: url('img/bg.webp'); */ backface-visibility: hidden;
}
body::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: -1;
background-image: url('img/bg.webp');
background-size: 1572px 803px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top left; background-position: top left;
background-attachment: fixed; background-attachment: local;
pointer-events: none;
will-change: transform;
} }
.elementshadow { .elementshadow {
@@ -479,21 +494,6 @@ a {
transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
} }
#background_wrap {
z-index: -1;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-image: url('img/bg.webp');
background-repeat: no-repeat;
background-position: top left;
background-attachment: fixed;
}
/* Alternative solution without adding a container */
#wrapper { #wrapper {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@@ -505,7 +505,6 @@ a {
white-space: nowrap; white-space: nowrap;
} }
/* Mobile layout (default) - Elements stacked in desired order */
#greeting { #greeting {
width: 100%; width: 100%;
order: 1; order: 1;
@@ -774,15 +773,25 @@ div.opaque h2 span.halfbubble {
display: block; display: block;
} }
.watchface { .watchface, .half-left, .half-right {
width: calc((100% / 2) - 0.6rem); width: calc((100% / 2) - 0.6rem);
margin: 0.325rem 0.3rem; margin: 0.325rem 0.3rem;
height: auto; height: auto;
display: block; display: block;
float: left; float: left;
} }
.half-right {
float: right;
}
.watchface-video { .watchface-video {
margin: 0.6rem 0; margin: 0.6rem 0;
width: 100%;
height: auto;
aspect-ratio: 1/1;
}
.yana-logo {
margin-top: -0.75rem;
} }
/* music */ /* music */
@@ -828,6 +837,7 @@ article.album .listenbuy {
opacity: 0; opacity: 0;
background-color: var(--button-color-hover); background-color: var(--button-color-hover);
background-image: url('img/bg_blur.webp'); background-image: url('img/bg_blur.webp');
background-size: 1572px 803px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-attachment: fixed; background-attachment: fixed;
transition: opacity 0.25s, margin 0.25s, height 0.25s; transition: opacity 0.25s, margin 0.25s, height 0.25s;
@@ -844,10 +854,6 @@ article.album a:hover .listenbuy {
opacity: 1; opacity: 1;
} }
article.album a .listenbuy:hover {
background-image: none;
}
img.albumcover { img.albumcover {
position: relative; position: relative;
width: auto; width: auto;
@@ -943,13 +949,17 @@ article.album a:hover {
.blurgreen { .blurgreen {
background-color: #1e3f2d; background-color: #1e3f2d;
color: white;
background-image: url('img/bg_blur.webp'); background-image: url('img/bg_blur.webp');
background-repeat: no-repeat; background-repeat: no-repeat;
background-attachment: fixed; background-attachment: fixed;
color: white; background-size: 1572px 803px;
border-top: 1px solid rgba(80,220,200,0.5);
border-left: 1px solid rgba(80,220,200,0.25);
border-bottom: 1px solid rgba(0,90,100,0.5);
border-right: 1px solid rgba(0,90,100,0.25);
} }
/* Print styles /* Print styles
-------------------------------------------------------------------------------*/ -------------------------------------------------------------------------------*/
@media print {} @media print {}
@@ -1012,15 +1022,15 @@ article.album a:hover {
padding: 0 1em; padding: 0 1em;
} }
#background_wrap {
background-size: 100%;
}
article.album a .listenbuy { article.album a .listenbuy {
margin-top: 1em; margin-top: 1em;
opacity: 1; opacity: 1;
} }
article.album .listenbuy, .blurgreen, body::before {
background-size: 1179px 602px;
}
article.album a { article.album a {
height: 160px; height: 160px;
} }
@@ -1067,6 +1077,10 @@ article.album a:hover {
.sidebaritem#findme .line3 { .sidebaritem#findme .line3 {
margin-top: 0.2em; margin-top: 0.2em;
} }
.sidebaritem#findme .line4 {
margin-top: 0.4em;
}
} }
/* Media query for hoverless */ /* Media query for hoverless */

BIN
src/bg_blur.afphoto Normal file

Binary file not shown.

BIN
src/bg_blur2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB