Finalize clean, simple layout, using bootstrap.

Add styling to make the page look like beige paper, and
use fonts such as Berkeley Mono and IBM Plex Sans to
give it a printed appearance.

Define colorscheme in :root variables so that dark mode
would be easy to implement with @media queries.

Work #13 - Add static content.
Work #14 - Stylesheets, more layout details.
This commit is contained in:
S David 2023-10-18 17:20:44 -04:00
parent 91716158e3
commit b788f5bf78
5 changed files with 513 additions and 100 deletions

13
data/fonts/Berkeley-Mono.css Executable file

File diff suppressed because one or more lines are too long

33
data/fonts/IBM-Plex-Sans.css Executable file

File diff suppressed because one or more lines are too long

100
data/index-old.html Normal file
View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Page Title</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- My CSS --->
<link rel="stylesheet" href="fonts/Berkeley-Mono-Font-face.css">
<link rel="stylesheet" href="fonts/IBM-Plex-Sans.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container-fluid">
<div class="row">
<nav id="navbar"
class="collapse navbar-collapse col-md-2 d-md-block bg-light sidebar">
<!-- Left-column navbar -->
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link active" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#about-me">About Me</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#projects">Projects</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#writing">Writing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#site-cpp">This site runs C++</a>
</li>
</ul>
</nav>
<!-- Page content with Lorem Ipsum text -->
<main class="col-md-10 col-lg-10 px-4">
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">Your Page Title</h1>
<span class="navbar-light">
<button id="menuButton" class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbar"
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</span>
</div>
<!-- Page body with Lorem Ipsum text -->
<div>
<h2>Page Content</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed auctor non ante id facilisis. Suspendisse feugiat eros
sit amet dui gravida, ac suscipit justo dignissim. Nullam
hendrerit metus vitae felis cursus, a finibus neque
consequat. Vestibulum id ullamcorper sapien. Phasellus vel
bibendum metus. Donec eu enim erat.<br/>
<span style="font-weight: bold;">0 1 2 3 4 5 6 7 8 9 10</span>
</p>
</div>
</main>
</div>
</div>
<!-- Bootstrap JS (including jQuery and Popper.js) -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script>
// JavaScript to handle the "Menu" button and show/hide the navbar
const navbar = document.getElementById('navbar');
const menuButton = document.getElementById('menuButton');
function onResize() {
if (window.innerWidth < 768) {
navbar.classList.remove('shown')
menuButton.classList.remove('d-none');
} else {
navbar.classList.add('shown');
menuButton.classList.add('d-none');
}
}
function onMenuClick(){}
// Call the function when the page loads and on window resize
window.addEventListener('resize', onResize);
window.addEventListener('load', onResize);
</script>
</body>
</html>
<!-- vim: set ts=2 sw=2 noet: -->

View File

@ -1,116 +1,91 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Page Title</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<style>
.d-none {
display: none !important;
}
<!-- My CSS -->
<link rel="stylesheet" href="fonts/Berkeley-Mono.css">
<link rel="stylesheet" href="fonts/IBM-Plex-Sans.css">
<link rel="stylesheet" href="style.css">
#menuButton {
font-family: Serif, monospace;
color: white;
}
/*
@media (prefers-color-scheme: dark) {
body {
color: #eee;
background: #121212;
}
a {
color: #809fff;
}
} */
</style>
<!-- Bootstrap JS (including jQuery and Popper.js) -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body>
<div class="container-fluid">
<body class="m-leftright-auto body-style d-flex flex-column h-100">
<header class="container">
<nav id="titlebar" class="navbar row center-text">
<div class="col-lg-8 col-md-6 col-sm-8 navbar-brand logo _btn header-btn align-left">
<a href="#logo">S D Beniquez</a>
</div>
<div class="col-lg-4 col-md-6 col-sm-4">
<div class="d-flex justify-content-end">
<div class="_btn header-btn source-btn center-text">
<a href="#gitea">Gitea</a>
</div>
<div class="_btn header-btn source-btn center-text">
<a href="#github">Github</a>
</div>
</div>
</div>
</nav>
<nav id="navigation" class="navbar container center-text">
<div class="row row-cols-3 m-leftright-auto ">
<div class="col center-text _btn ">
<a href="home">Home</a>
</div>
<div class="col center-text _btn ">
<a href="about">About</a>
</div>
<div class="col center-text _btn">
<a href="blog">Writing</a>
</div>
<div class="col center-text _btn ">
<a href="project">Projects</a>
</div>
</div>
</nav>
</header>
<div class="content container d-flex flex-column">
<div class="row">
<nav id="navbar" class="collapse navbar-collapse col-md-2 d-md-block bg-light sidebar">
<!-- Left-column navbar -->
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link active" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#about-me">About Me</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#projects">Projects</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#writing">Writing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#site-cpp">This site runs C++</a>
</li>
</ul>
</nav>
<!-- Page content with Lorem Ipsum text -->
<main class="col-md-10 col-lg-10 px-4">
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">Your Page Title</h1>
<span class="navbar-light">
<button id="menuButton" class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbar"
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</span>
</div>
<!-- Page body with Lorem Ipsum text -->
<div>
<h2>Page Content</h2>
<p>
<div class="col-12 align-self-start">
<main>
<h2 class="text-center">Page Content</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed auctor non ante id facilisis. Suspendisse feugiat eros
sit amet dui gravida, ac suscipit justo dignissim. Nullam
hendrerit metus vitae felis cursus, a finibus neque
consequat. Vestibulum id ullamcorper sapien. Phasellus vel
bibendum metus. Donec eu enim erat.
</p>
</div>
</main>
bibendum metus. Donec eu enim erat.<br/>
<span style="font-family: 'Berkeley Mono'; font-weight: bold;">0 1 2 3 4 5 6 7 8 9 10</span>
</p>
</main>
</div>
</div>
</div>
<!-- Bootstrap JS (including jQuery and Popper.js) -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script>
// JavaScript to handle the "Menu" button and show/hide the navbar
const navbar = document.getElementById('navbar');
const menuButton = document.getElementById('menuButton');
function onResize() {
if (window.innerWidth < 768) {
navbar.classList.remove('shown')
menuButton.classList.remove('d-none');
} else {
navbar.classList.add('shown');
menuButton.classList.add('d-none');
}
}
function onMenuClick(){}
// Call the function when the page loads and on window resize
window.addEventListener('resize', onResize);
window.addEventListener('load', onResize);
</script>
</div>
<div class="container">
<footer class="navbar row row-cols-auto">
<div class="_btn align-left">
This site was built with <a href="#site-cpp">C++</a>.
</div>
<div class="_btn disclaimer align-right">
<a href="#disclaimer">Disclaimer</a>
</div>
</footer>
</div>
</body>
</html>
<!-- vim : set ts=2 sw=2 noet : -->
<!-- vim: set ts=2 sw=2 sts=2 foldmethod=manual noet: -->

292
data/style.css Normal file
View File

@ -0,0 +1,292 @@
:root {
--border-color: black;
--font-color: black;
--body-color: #FFFCF3;
--element-bg-color: #FFFCF3;
--btn-hover-color: lightgrey;
--btn-border-color: black;
--title-btn-bg-color: none;
--title-btn-font-size: 18px;
--title-btn-font-weight: bold;
--src-btn-bg-color: green;
--src-btn-border: black;
--src-btn-font-color: white;
--footer-btn-bg-color: lightgrey;
--footer-btn-fg-color: black;
--footer-btn-border-color: black;
--footer-btn-font-size: 12px;
}
html {
line-height: 1.5;
height: 95vh;
}
body {
margin: 1rem 1.5rem 1rem 1.5rem;
padding: 1rem 1rem 0 1rem;
max-width: 50rem;
}
body.body-style {
border: 1px solid black;
font-size: 14pt;
font-family: 'IBM Plex Sans' !important;
background-color: var(--body-color);
}
@media (max-width: 768px) {
body {
margin: 1rem 0 1rem 0;
padding: 1rem 0 0 0;
}
}
div.content {
overflow: auto;
}
@media (max-width: 576px) {
div.content {
max-height: 50%;
}
}
@media (max-width: 768px) {
div.content {
max-height: 75%;
}
}
@media (min-width: 768px) {
div.content {
height: 100%;
}
}
.m-leftright-auto {
margin-right: auto;
margin-left: auto;
}
.center-text {
text-align: center;
}
.align-left {
text-align: left;
}
.align-right {
text-align: right;
}
div._btn,
.square-btn {
font-family: "Berkeley Mono";
border: 1px solid var(--border-color);
background-color: var(--element-bg-color);
}
div._btn:hover,
.square-btn:hover {
background-color: var(--btn-hover-color);
box-shadow: 1px 1px 0px rgba(0, 0, 0, 0);
}
#navigation div._btn,
.btn-shadow {
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
}
#navigation div._btn:hover {
background-color: var(--btn-hover-color);
box-shadow: 1px 1px 0px rgba(0, 0, 0, 0);
text-decoration: underline;
}
@media (min-width: 768px) {
div._btn {
padding: 0 2em 0 2em;
margin: 0 0.25rem 0 0.25rem;
}
}
/* width < 768px */
div._btn {
padding: 0 2em 0 2em;
margin: 0.25rem 0.25rem 0.25rem 0.25rem;
}
div.header-btn,
#titlebar div._btn {
color: var(--font-color);
background-color: var(--title-btn-bg-color);
font-size: var(--title-btn-font-size);
font-weight: var(--title-btn-font-weight);
padding: 0 0.5rem 0 0.5rem;
margin: 0 0 0 0;
}
#titlebar div.logo {
border: none;
/*text-decoration: underline;*/
text-transform: uppercase;
}
#titlebar div.source-btn {
border-color: var(--src-btn-border);
color: var(--src-btn-font-color);
background-color: var(--src-btn-bg-color);
margin: 0 0.125rem 0 0.125rem;
}
#titlebar {
background-color: inherit;
}
footer div._btn {
font-size: var(--footer-btn-font-size);
}
footer {
margin: auto 0.25rem 0.125rem 0.25rem;
}
footer div {
vertical-align: middle;
}
#titlebar {
border-color: #ccc;
border-style: solid;
border-width: 1px;
border-top: 0;
border-left: 0;
border-right: 0;
margin-bottom: 0.5rem;
}
#navigation {
margin: 0rem auto 3rem auto;
}
.navbar div a {
color: inherit;
text-decoration: none;
}
@media (prefers-color-scheme: dark) {
@include "dark-mode.css"
}
div.content {
overflow: auto;
}
@media (max-width: 576px) {
div.content {
max-height: 50%;
}
}
@media (max-width: 768px) {
div.content {
max-height: 75%;
}
}
div.content {
height: 100%;
}
body.body-style {
border: 1px solid black;
font-size: 14pt;
font-family: 'IBM Plex Sans' !important;
}
div._btn,
.square-btn {
font-family: "Berkeley Mono";
border-width: 1px;
border-style: solid;
border-color: var(--btn-border-color);
}
#navigation {
margin: 0rem auto 3rem auto;
}
#navigation div._btn,
.btn-shadow {
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
}
@media (min-width: 768px) {
div._btn {
padding: 0 2em 0 2em;
margin: 0 0.25rem 0 0.25rem;
}
}
/* width < 768px */
div._btn {
padding: 0 2em 0 2em;
margin: 0.25rem 0.25rem 0.25rem 0.25rem;
}
footer div._btn {
border-style: dotted;
border-width: 0.5px;
border-color: var(--footer-btn-border-color);
background-color: var(--element-btn-bg-color);
color: var(--footer-btn-fg-color);
font-size: var(--footer-btn-font-size);
}
footer div._btn:hover {
background-color: var(--btn-hover-color);
}
footer {
margin: auto 0.25rem 0.125rem 0.25rem;
padding: 0 0 0.125rem 0;
}
footer div {
vertical-align: middle;
}
#titlebar {
background-color: inherit;
border-color: #ccc;
border-style: solid;
border-width: 1px;
border-top: 0;
border-left: 0;
border-right: 0;
margin-bottom: 0.5rem;
}
.allcaps {
text-transform: uppercase;
}
/* vim: ts=4 sts=4 noet sw=4 :
*/