aboutsummaryrefslogtreecommitdiff
path: root/build/ps4-download-ui/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'build/ps4-download-ui/index.html')
-rw-r--r--build/ps4-download-ui/index.html29
1 files changed, 2 insertions, 27 deletions
diff --git a/build/ps4-download-ui/index.html b/build/ps4-download-ui/index.html
index 277310d..071cd7b 100644
--- a/build/ps4-download-ui/index.html
+++ b/build/ps4-download-ui/index.html
@@ -3,11 +3,12 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="color-scheme" content="dark light">
<link rel="icon" href="data:,">
<title>PS4 Download UI with Pure CSS</title>
<link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" />
<link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" />
-<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 auto;max-width:650px;padding:1rem;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.footnotes{font-size:90%;}</style>
+<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 auto;max-width:650px;padding:1rem;}blockquote{background:rgba(0,0,0,0.1);border-left:4px solid;padding-left:5px;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.footnotes{font-size:90%;}</style>
</head>
<nav>
@@ -16,35 +17,22 @@
<main>
<h1 id="ps4-download-ui-with-pure-css">PS4 Download UI with Pure CSS</h1>
-
<p>2021-06-20</p>
-
<p>Overall, I&#8217;m fairly impressed with the user interface design of Sony&#8217;s PS4 system OS. It&#8217;s minimal and keeps the content front and center. Even with it&#8217;s sometimes spotty performance hiccups, I&#8217;ve come to enjoy interacting with it.</p>
-
<p>One of the key UI items I&#8217;ve always been a fan of is the download progress view under the <code>Notifications</code> settings. So I figured I&#8217;d try my hand at recreating this with pure CSS. Here is the final result:</p>
-
<p><img src="/public/images/ps4-loading.png" alt="PS4 loading screen bar" /></p>
-
<p><a href="https://codepen.io/bradleytaunt/pen/qBroORG">Live CodePen Example</a></p>
-
<p>Although I&#8217;ve added some of my own improvements (typography spacing, tweaks to the progress bar animation) - the concept it still pretty close to the original.</p>
-
<p>But enough chit-chat, let&#8217;s walkthrough how to make it!</p>
-
<h2 id="the-html">The HTML</h2>
-
<p>As with most of my demos, the HTML is very minimal and straightforward. The PS4 system OS download view needs to show the following:</p>
-
<ol>
<li>The game&#8217;s title</li>
<li>Full game size, amount downloaded and time remaining</li>
<li>Visual progress bar</li>
</ol>
-
<p>So we will place the game&#8217;s title inside our <code>h2</code> with a class of <code>title</code> (shocking, I know). The details about game size, downloaded amount and time remaining gets placed under a parent <code>div</code> with an accompanying <code>details</code> class. Finally, we create our progress bar by including a parent <code>div</code> with a class of <code>progress</code> that contains a child <code>div</code> with a class of <code>inner-progress</code>.</p>
-
<p>Pretty clean and easy to understand.</p>
-
<pre><code>&#60;div class="wrapper"&#62;
&#60;img src="https:&#47;&#47;upload.wikimedia.org&#47;wikipedia&#47;commons&#47;0&#47;00&#47;PlayStation_logo.svg" alt="PS4" class="logo"&#62;
&#60;h2 class="title"&#62;Detroit: Become Human&#60;&#47;h2&#62;
@@ -57,15 +45,10 @@
&#60;&#47;div&#62;
&#60;&#47;div&#62;
</code></pre>
-
<h2 id="the-css">The CSS</h2>
-
<p>Now it&#8217;s time to utilize all those classes in the HTML above to craft our PS4 UI recreation. I&#8217;ll break this section down into digestible chunks to avoid overwhelming you by vomiting out a bunch of CSS spaghetti.</p>
-
<p>First we&#8217;ll add a bunch of QOL improvements to help better showcase the demo (adding custom fonts, center content etc.).</p>
-
<p>This part is completely <em>optional</em>:</p>
-
<pre><code>&#47;* Import fonts *&#47;
@import url(&#39;https:&#47;&#47;fonts.googleapis.com&#47;css2?family=Source+Sans+Pro:wght@200;400&#38;display=swap&#39;);
@@ -95,9 +78,7 @@ body {
width: 60px;
}
</code></pre>
-
<p>Now for the styling that <em>actually matters</em>. First we will style the game&#8217;s title and accompanying details (<code>flexbox</code> to the rescue again!):</p>
-
<pre><code>h2.title {
font-weight: 400;
margin: 0;
@@ -112,9 +93,7 @@ body {
margin: 0;
}
</code></pre>
-
<p>Not a whole lot of code to get things looking proper, eh? Next we move on to the progress bar. This is <em>slightly</em> more interesting since we are going to utilize the <code>before</code> pseudo element - which sounds more complex than it actually is. Pay close attention to the pseudo element and how it calls the <code>progress-bar-shine</code> animation - more on that later.</p>
-
<pre><code>.progress {
background: #226AB6;
border: 1px solid white;
@@ -142,9 +121,7 @@ body {
width: 450px;
}
</code></pre>
-
<p>Almost finished! We just need to animate that <code>before</code> pseudo element with a simple <code>keyframes</code> at-rule:</p>
-
<pre><code>@keyframes progress-bar-shine {
to {
transform:translateX(450px);
@@ -152,9 +129,7 @@ body {
}
}
</code></pre>
-
<h2 id="wrapping-up">Wrapping Up</h2>
-
<p>Although far from perfect, this experiment still explores what can be created (or in this case, <em>re</em>created) in the browser using just pure CSS. Remember, you don&#8217;t have to reach for JavaScript just because you can!</p>
<footer role="contentinfo">
<h2>Menu Navigation</h2>