began structuring index page. posts now show correctly on a 1920x1080 screen.

This commit is contained in:
Bea 2020-08-13 14:23:29 +02:00
parent 359e6108c9
commit 3b02a75451
13 changed files with 2756 additions and 2647 deletions

249
assets/css/home-style.css Normal file → Executable file
View File

@ -1,99 +1,150 @@
@charset "utf-8";
/* CSS Document */
h1 {
font-size: 90px;
margin-top: 20px;
}
.mind-site-title {
height: 100%;
width: 100%;
margin: 0%;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: linear-gradient(45deg, #067062, #063d70, #2d0670, #4e0670, #700667);
background-size: 1000%, 100%;
animation: gradient 7s linear infinite;
animation-direction: alternate-reverse;
}
.mind-site-title h1 {
position: absolute;
}
.mind-articles-container {
width: 100%;
text-align: center;
}
article {
display: inline-block;
width: 500px;
margin: 2%;
vertical-align: top;
text-align: left;
}
/* ANIMATED GRADIENT BACKGROUND */
@keyframes gradient {
0% {background-position: 0%}
100% {background-position: 100%}
}
/*MOBILE*/
@media (min-width: 0px) and (max-width: 200px) {
h1 {
font-size: 20px;
}
}
@media (min-width: 200px) and (max-width: 300px) {
h1 {
font-size: 39px;
}
}
@media (min-width: 300px) and (max-width: 400px) {
h1 {
font-size: 52px;
}
}
@media (min-width: 400px) and (max-width: 500px) {
h1 {
font-size: 64px;
}
}
@media (min-width: 500px) and (max-width: 600px) {
h1 {
font-size: 64px;
}
}
@media (min-width: 600px) and (max-width: 700px) {
h1 {
font-size: 76px;
}
}
@media (min-width: 700px) and (max-width: 1000px) {
h1 {
font-size: 80px;
}
}
/* 4K+ MONITORS*/
@media (min-width: 2100px) {
h1 {
font-size: 180px;
}
}
@charset "utf-8";
/* CSS Document */
h1 {
font-size: 90px;
margin-top: 20px;
}
.mind-site-title {
height: 100%;
width: 100%;
margin: 0%;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: linear-gradient(45deg, #067062, #063d70, #2d0670, #4e0670, #700667);
background-size: 1000%, 100%;
animation: gradient 7s linear infinite;
animation-direction: alternate-reverse;
}
.mind-site-title h1 {
position: absolute;
}
.mind-feed {
/* todo: move to generic class */
margin: auto;
width: 1260px;
box-sizing: border-box;
max-width: 100%;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 30px;
padding-bottom: 50px;
}
.post-card {
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
padding: 20px;
box-sizing: border-box;
/* Style */
background-color: rgb(50, 50, 50);
border: 1px solid;
border-color: transparent;
border-radius: 5px;
box-shadow: 0 1px 1px black, 0 2px 4px black;
transition: 0.5s;
}
.post-card:hover {
transform:translate3d(0,-5px,0);
box-shadow: 1px 3px 15px 2px black;
}
a.post-card {
color: white;
}
a.post-card:hover {
text-decoration: none;
}
footer.post-meta {
display: flex;
align-items: center;
justify-content: flex-end;
}
article {
box-sizing: border-box;
}
.post-card_profile-image {
border-radius: 20%;
margin-left: 10px;
max-width: 30px;
}
.post-card_feature-image {
border-radius: 5px;
width: 100%;
}
/* ANIMATED GRADIENT BACKGROUND */
@keyframes gradient {
0% {background-position: 0%}
100% {background-position: 100%}
}
/*MOBILE*/
@media (min-width: 0px) and (max-width: 200px) {
h1 {
font-size: 20px;
}
}
@media (min-width: 200px) and (max-width: 300px) {
h1 {
font-size: 39px;
}
}
@media (min-width: 300px) and (max-width: 400px) {
h1 {
font-size: 52px;
}
}
@media (min-width: 400px) and (max-width: 500px) {
h1 {
font-size: 64px;
}
}
@media (min-width: 500px) and (max-width: 600px) {
h1 {
font-size: 64px;
}
}
@media (min-width: 600px) and (max-width: 700px) {
h1 {
font-size: 76px;
}
}
@media (min-width: 700px) and (max-width: 1000px) {
h1 {
font-size: 80px;
}
}
/* 4K+ MONITORS*/
@media (min-width: 2100px) {
h1 {
font-size: 180px;
}
}

298
assets/css/page-style.css Normal file → Executable file
View File

@ -1,155 +1,143 @@
@charset "utf-8";
/* CSS Document */
html, body {
background-color: black;
}
h1 {
font-size: 120px;
margin: 0;
box-sizing: border-box;
padding-left: 5%;
padding-right: 5%;
bottom: 10%;
}
.mind-fullscreen-title {
height: 100%;
width: 100%;
text-align: center;
}
.mind-fullscreen-title h1 {
position: absolute;
width: 100%;
bottom: 10%;
}
/* COLORED TEXT SELECTION */
::selection {
color: #2d0670;
/*
We need RGBA because Chrome forces it to be semi-trasparent, making white look like grey.
By setting it to 99.5% opacity, we can override this. 100% does not work, however.
*/
background: rgba(255, 255, 255, 0.995);
}
/* ANIMATED GRADIENT BACKGROUND */
@keyframes gradient {
0% {background-position: 0%}
100% {background-position: 100%}
}
/*MOBILE*/
@media (min-width: 0px) and (max-width: 200px) {
h1 {
font-size: 20px;
}
h2 {
font-size: 15px;
padding-top: 20px;
}
li {
padding: 5px;
}
}
@media (min-width: 200px) and (max-width: 300px) {
h1 {
font-size: 39px;
}
h2 {
font-size: 18px;
padding-top: 25px;
}
h3 {
font-size: 16px;
padding-top: 25px;
}
li {
padding: 6px;
}
}
@media (min-width: 300px) and (max-width: 400px) {
h1 {
font-size: 52px;
}
h2 {
font-size: 21px;
padding-top: 28px;
}
h3 {
font-size: 19px;
padding-top: 28px;
}
li {
padding: 8px;
}
}
@media (min-width: 400px) and (max-width: 500px) {
h1 {
font-size: 64px;
}
h2 {
font-size: 25px;
padding-top: 31px;
}
h3 {
font-size: 22px;
padding-top: 31px;
}
li {
padding: 10px;
}
}
@media (min-width: 500px) and (max-width: 600px) {
h1 {
font-size: 80px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 25px;
}
li {
padding: 13px;
}
}
@media (min-width: 600px) and (max-width: 700px) {
h1 {
font-size: 95px;
}
h2 {
font-size: 35px;
}
h3 {
font-size: 30px;
}
}
/* 4K+ MONITORS*/
@media (min-width: 2100px) {
h1 {
font-size: 150px;
}
h2 {
font-size: 45px;
padding: 40px;
}
li {
padding: 20px;
}
}
@charset "utf-8";
/* CSS Document */
html, body {
background-color: black;
}
h1 {
font-size: 120px;
margin: 0;
box-sizing: border-box;
padding-left: 5%;
padding-right: 5%;
bottom: 10%;
}
.mind-fullscreen-title {
height: 100%;
width: 100%;
text-align: center;
}
.mind-fullscreen-title h1 {
position: absolute;
width: 100%;
bottom: 10%;
}
/* ANIMATED GRADIENT BACKGROUND */
@keyframes gradient {
0% {background-position: 0%}
100% {background-position: 100%}
}
/*MOBILE*/
@media (min-width: 0px) and (max-width: 200px) {
h1 {
font-size: 20px;
}
h2 {
font-size: 15px;
padding-top: 20px;
}
li {
padding: 5px;
}
}
@media (min-width: 200px) and (max-width: 300px) {
h1 {
font-size: 39px;
}
h2 {
font-size: 18px;
padding-top: 25px;
}
h3 {
font-size: 16px;
padding-top: 25px;
}
li {
padding: 6px;
}
}
@media (min-width: 300px) and (max-width: 400px) {
h1 {
font-size: 52px;
}
h2 {
font-size: 21px;
padding-top: 28px;
}
h3 {
font-size: 19px;
padding-top: 28px;
}
li {
padding: 8px;
}
}
@media (min-width: 400px) and (max-width: 500px) {
h1 {
font-size: 64px;
}
h2 {
font-size: 25px;
padding-top: 31px;
}
h3 {
font-size: 22px;
padding-top: 31px;
}
li {
padding: 10px;
}
}
@media (min-width: 500px) and (max-width: 600px) {
h1 {
font-size: 80px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 25px;
}
li {
padding: 13px;
}
}
@media (min-width: 600px) and (max-width: 700px) {
h1 {
font-size: 95px;
}
h2 {
font-size: 35px;
}
h3 {
font-size: 30px;
}
}
/* 4K+ MONITORS*/
@media (min-width: 2100px) {
h1 {
font-size: 150px;
}
h2 {
font-size: 45px;
padding: 40px;
}
li {
padding: 20px;
}
}

1164
assets/css/screen.css Normal file → Executable file

File diff suppressed because it is too large Load Diff

20
assets/js/arrow-fade.js Normal file → Executable file
View File

@ -1,10 +1,10 @@
// JavaScript Document
$(document).ready(function(){
$(window).scroll(function(){
if($(this).scrollTop() > $(window).height()*0.3){
$(".arrow-down").css({"opacity" : "0"});
} else {
$(".arrow-down").css({"opacity" : "0.4"});
}
})
})
// JavaScript Document
$(document).ready(function(){
$(window).scroll(function(){
if($(this).scrollTop() > $(window).height()*0.3){
$(".arrow-down").css({"opacity" : "0"});
} else {
$(".arrow-down").css({"opacity" : "0.4"});
}
})
})

1316
assets/js/jquery-3.5.1.js vendored Normal file → Executable file

File diff suppressed because it is too large Load Diff

76
assets/js/policy-popup.js Normal file → Executable file
View File

@ -1,38 +1,38 @@
function openPolicyPopup() {
if(getCookie("consentGiven") === "true") return;
$("#mind-policy-popup").fadeIn(1000); // Enable the div
}
function agreePolicyPopup() {
const _paq = window._paq || [];
_paq.push(['rememberConsentGiven', 43800]);
$("#mind-policy-popup").fadeOut(1000); // Disable the div
setCookie("consentGiven", "true", 1825) // todo: check if already present? also, firefox was throwing a warning...
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/;SameSite=Lax";
}
function openPolicyPopup() {
if(getCookie("consentGiven") === "true") return;
$("#mind-policy-popup").fadeIn(1000); // Enable the div
}
function agreePolicyPopup() {
const _paq = window._paq || [];
_paq.push(['rememberConsentGiven', 43800]);
$("#mind-policy-popup").fadeOut(1000); // Disable the div
setCookie("consentGiven", "true", 1825) // todo: check if already present? also, firefox was throwing a warning...
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/;SameSite=Lax";
}

View File

@ -0,0 +1,45 @@
var scroll_pos = 0;
var transparent = true;
var offset = 100;
function makeTransparent()
{
$("#navbar").removeClass('navbar-colored').addClass('navbar-transparent');
transparent = true;
}
function makeOpaque()
{
$("#navbar").removeClass('navbar-transparent').addClass('navbar-colored');
transparent = false;
}
$(document).ready(function() {
scroll_pos = $(this).scrollTop();
if(scroll_pos > offset)
{
makeOpaque();
}
else
{
makeTransparent();
}
$(document).scroll(function() {
scroll_pos = $(this).scrollTop();
if(transparent)
{
if(scroll_pos > offset)
{
makeOpaque();
}
}
else
{
if(scroll_pos <= offset)
{
makeTransparent();
}
}
});
});

File diff suppressed because one or more lines are too long

133
default.hbs Normal file → Executable file
View File

@ -1,62 +1,71 @@
<!DOCTYPE html>
<html lang="{{@site.lang}}">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="{{asset "css/screen.css"}}" />
<!-- Scripts Begin -->
<script src="{{asset "js/jquery-3.5.1.js"}}"></script>
<script src="{{asset "js/policy-popup.js"}}"></script>
<script src="{{asset "js/arrow-fade.js"}}" async></script>
<!-- Scripts End -->
<!-- Begin Posts & Pages only code -->
{{#is "post, page"}}
<link rel="stylesheet" type="text/css" href="{{asset "css/page-style.css"}}" />
<title>{{@site.title}} - {{meta_title}}</title>
{{/is}}
<!-- End Posts & Pages only code -->
<!-- Begin Index only code -->
{{#is "index"}}
<title>{{meta_title}}</title>
<link rel="stylesheet" type="text/css" href="{{asset "css/home-style.css"}}" />
{{/is}}
<!-- End Index only code -->
{{ghost_head}}
{{!-- Outputs important meta data and settings, should always be in <head> --}}
</head>
<body class="{{body_class}}" onload="openPolicyPopup()">
<div class="mind-policy-popup" id="mind-policy-popup">
<h4>This website uses cookies.</h4>
<p>We use cookies to ensure you the best experience.
<br>
By visiting our website, you agree with our <a href="/pages/policy.html" target="_blank">Privacy Policy</a>.
</p>
<button onclick="agreePolicyPopup()">Ok, understood</button>
</div>
{{{body}}}
{{!-- All content gets inserted here, index.hbs, post.hbs, etc --}}
<footer class="unselectable">
<h4>Copyright © 2019-20 ― Lorenzo Dellacà</h4>
</footer>
{{!-- <foot> --}}
{{ghost_foot}}
{{!-- Outputs important scripts - should always be included before closing body tag --}}
</body>
</html>
<!DOCTYPE html>
<html lang="{{@site.lang}}">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="{{asset "css/screen.css"}}" />
<!-- Scripts Begin -->
<script src="{{asset "js/jquery-3.5.1.js"}}"></script>
<script src="{{asset "js/policy-popup.js"}}"></script>
<script src="{{asset "js/arrow-fade.js"}}" async></script>
<script src="{{asset "js/scroll-navbar-color.js"}}"></script>
<!-- TODO: REMOVE ON PRODUCTION! -->
<script type="text/javascript" src="http://livejs.com/live.js"></script>
<!-- Scripts End -->
<!-- Begin Posts & Pages only code -->
{{#is "post, page"}}
<link rel="stylesheet" type="text/css" href="{{asset "css/page-style.css"}}" />
<title>{{@site.title}} - {{meta_title}}</title>
{{/is}}
<!-- End Posts & Pages only code -->
<!-- Begin Index only code -->
{{#is "index"}}
<title>{{meta_title}}</title>
<link rel="stylesheet" type="text/css" href="{{asset "css/home-style.css"}}" />
{{/is}}
<!-- End Index only code -->
{{ghost_head}}
{{!-- Outputs important meta data and settings, should always be in <head> --}}
</head>
<body class="{{body_class}}" onload="openPolicyPopup()">
<div id="navbar" class="navbar unselectable">
{{navigation}}
</div>
<div class="mind-policy-popup" id="mind-policy-popup">
<h4>This website uses cookies.</h4>
<p>We use cookies to ensure you the best experience.
<br>
By visiting our website, you agree with our <a href="/pages/policy.html" target="_blank">Privacy Policy</a>.
</p>
<button onclick="agreePolicyPopup()">Ok, understood</button>
</div>
{{{body}}}
{{!-- All content gets inserted here, index.hbs, post.hbs, etc --}}
<footer class="mind-site-footer unselectable">
<h4>Copyright © 2019-20 ― Lorenzo Dellacà</h4>
</footer>
{{!-- <foot> --}}
{{ghost_foot}}
{{!-- Outputs important scripts - should always be included before closing body tag --}}
</body>
</html>

112
index.hbs Normal file → Executable file
View File

@ -1,58 +1,54 @@
{{!< default}}
<div class="navbar unselectable">
{{navigation}}
</div>
<div class="mind-site-title unselectable" id="vantajs">
<h1>{{@site.title}}</h1>
<i class="arrow-down"></i>
</div>
<main>
<div class="mind-content">
<h2>Last posts</h2>
<div class="mind-articles-container">
<!-- Looping through every post -->
{{#foreach posts}}
<article class="{{post_class}}">
<header class="post-header">
<h3><a href="{{url}}">{{title}}</a></h3>
</header>
<section class="post-excerpt">
<p>{{excerpt words="26"}} <a class="read-more" href="{{url}}">...</a></p>
</section>
<footer class="post-meta">
{{#if primary_author.profile_image}}<img src="{{primary_author.profile_image}}" alt="Author image" />{{/if}}
{{primary_author}}
{{tags prefix=" on "}}
<time class="post-date" datetime="{{date format='YYYY-MM-DD'}}">{{date format="DD MMMM YYYY"}}</time>
</footer>
</article>
{{/foreach}}
</div>
</div>
</main>
<!-- Vanta.JS Scripts to make the background cool, but disabled on mobile -->
<script>
if(window.screen.width > 800)
{
document.write('<script src="{{asset "js/three.r95.min.js"}}"><\/script>' +
'<script src="{{asset "js/vanta.net.min.js"}}"><\/script>' +
'<script>' +
'VANTA.NET({'+
'el: "#vantajs",'+
'color: 0x3fd5ff,'+
'backgroundColor: 0x190f2b,'+
'mouseControls: true,'+
'touchControls: true,'+
'minHeight: 200.00,'+
'minWidth: 200.00,'+
'scale: 1.00,'+
'scaleMobile: 1.00'+
'})'+
'<\/script>');
}
</script>
{{!< default}}
<div class="mind-site-title unselectable" id="vantajs">
<h1>{{@site.title}}</h1>
<i class="arrow-down"></i>
</div>
<main class="mind-index">
<h2>Last posts</h2>
<div class="mind-feed">
<!-- Looping through every post -->
{{#foreach posts}}
<article class="{{post_class}}">
<a class="post-card" href="{{url}}">
<header class="post-header">
<img class="post-card_feature-image" src="{{feature_image}}" />
<h3>{{title}}</h3>
</header>
<section class="post-excerpt">
<p>{{excerpt words="26"}}</p>
</section>
<footer class="post-meta">
{{primary_author.name}}
{{#if primary_author.profile_image}}<img class="post-card_profile-image" src="{{primary_author.profile_image}}" alt="Author image" />{{/if}}
</footer>
</a>
</article>
{{/foreach}}
</div>
</main>
<!-- Vanta.JS Scripts to make the background cool, but disabled on mobile -->
<script>
if(window.screen.width > 800)
{
document.write('<script src="{{asset "js/three.r95.min.js"}}"><\/script>' +
'<script src="{{asset "js/vanta.net.min.js"}}"><\/script>' +
'<script>' +
'VANTA.NET({'+
'el: "#vantajs",'+
'color: 0x3fd5ff,'+
'backgroundColor: 0x190f2b,'+
'mouseControls: true,'+
'touchControls: true,'+
'minHeight: 200.00,'+
'minWidth: 200.00,'+
'scale: 1.00,'+
'scaleMobile: 1.00'+
'})'+
'<\/script>');
}
</script>

34
package.json Normal file → Executable file
View File

@ -1,17 +1,17 @@
{
"name": "mindtheme",
"description": "Mind Overflow's official website style",
"version": "0.0.2",
"engines": {
"ghost-api": "v3"
},
"keywords": ["ghost-theme"],
"license": "Copyright",
"author": {
"email": "lorenzo.dellaca@mind-overflow.net"
},
"config": {
"posts_per_page": 10,
"image_sizes": {}
}
}
{
"name": "mindtheme",
"description": "Mind Overflow's official website style",
"version": "0.0.2",
"engines": {
"ghost-api": "v3"
},
"keywords": ["ghost-theme"],
"license": "Copyright",
"author": {
"email": "lorenzo.dellaca@mind-overflow.net"
},
"config": {
"posts_per_page": 10,
"image_sizes": {}
}
}

29
page.hbs Normal file → Executable file
View File

@ -1,16 +1,13 @@
{{!< default}}
{{#post}}
<div class="navbar unselectable">
{{navigation}}
</div>
<div class="mind-fullscreen-title unselectable">
<h1>{{title}}</h1>
<i class="arrow-down"></i>
</div>
<main>
<div class="mind-content">
{{content}}
</div>
</main>
{{/post}}
{{!< default}}
{{#post}}
<div class="mind-fullscreen-title unselectable">
<h1>{{title}}</h1>
<i class="arrow-down"></i>
</div>
<main>
<div class="mind-content">
{{content}}
</div>
</main>
{{/post}}

29
post.hbs Normal file → Executable file
View File

@ -1,16 +1,13 @@
{{!< default}}
{{#post}}
<div class="navbar unselectable">
{{navigation}}
</div>
<div class="mind-fullscreen-title unselectable">
<h1>{{title}}</h1>
<i class="arrow-down"></i>
</div>
<main>
<div class="mind-content">
{{content}}
</div>
</main>
{{/post}}
{{!< default}}
{{#post}}
<div class="mind-fullscreen-title unselectable">
<h1>{{title}}</h1>
<i class="arrow-down"></i>
</div>
<main>
<div class="mind-content">
{{content}}
</div>
</main>
{{/post}}