lektura

lektura.git
git clone git://git.lenczewski.org/lektura.git
Log | Files | Refs

commit 506327e34f6168796ca67aa701746e41e305c323
Author: MikoĊ‚aj Lenczewski <mblenczewski@gmail.com>
Date:   Sun, 12 Apr 2026 10:12:19 +0100

Initial commit

Diffstat:
A.editorconfig | 22++++++++++++++++++++++
A.gitignore | 1+
Aindex.html | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Alayout.css | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Alogo.svg | 8++++++++
Amenu.svg | 4++++
Anavbar.css | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ascript.js | 0
Astyle.css | 37+++++++++++++++++++++++++++++++++++++
9 files changed, 294 insertions(+), 0 deletions(-)

diff --git a/.editorconfig b/.editorconfig @@ -0,0 +1,22 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 + +[*.{c,h}] +indent_style = tab +indent_size = 8 + +[*.{sh}] +indent_style = tab +indent_size = 8 + +[*.{html,css,js}] +indent_style = space +indent_size = 2 + +[*.{md,txt}] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore @@ -0,0 +1 @@ +**/.*.swp diff --git a/index.html b/index.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Lektura</title> + + <meta charset="utf8" /> + <meta name="viewport" content="initial-scale=1.0, width=device-width" /> + + <link rel="stylesheet" href="/style.css" /> + <link rel="stylesheet" href="/navbar.css" /> + <link rel="stylesheet" href="/layout.css" /> + </head> + <body> + <header> + <div class="center pad-1em"> + <img style="max-width: 2em" src="/logo.svg" /> + </div> + <hr /> + <nav id="global-menu" class="center pad-1em navbar"> + <input id="global-menu-toggle" type="checkbox" class="hidden navbar-toggle" /> + <ul class="navbar-menu"> + <li> + <label class="navbar-toggle-label" for="global-menu-toggle"> + <img src="menu.svg" /> + </label> + </li> + <li><a href="index.html">Index</a></li> + <li><a href="science.html">Science</a></li> + <li><a href="sport.html">Sport</a></li> + <li><a href="society.html">Society</a></li> + </ul> + </nav> + <hr /> + </header> + <main class="grid center"> + <div id="banner" class="grid"> + <div id="breaking-news"> + One + </div> + <div id="breaking-news-1"> + Two + </div> + <div id="breaking-news-2"> + Three + </div> + <div id="breaking-news-3"> + Four + </div> + </div> + <div id="content"> + Lorem Ipsum Dolor Sit Amet. + </div> + <div id="sidebar"> + <section id="recent"> + <h3>Recent</h3> + <ol> + <li><a href="recent1.html">Recent 1</a></li> + <li><a href="recent2.html">Recent 2</a></li> + <li><a href="recent3.html">Recent 3</a></li> + </ol> + </section> + <section id="polls"> + <h3>Polls</h3> + <ol> + <li><a href="poll1.html">Poll 1</a></li> + <li><a href="poll2.html">Poll 2</a></li> + <li><a href="poll3.html">Poll 3</a></li> + </ol> + </section> + </div> + </main> + <footer> + </footer> + </body> + <script src="/script.js"></script> +</html> diff --git a/layout.css b/layout.css @@ -0,0 +1,88 @@ +main.grid { + grid-template-rows: minmax(8em, 16em) minmax(8em, 16em) auto; /* TODO */ + grid-template-columns: 3fr 1fr; +} + +#banner { + height: 8em; +} + +#banner.grid { + grid-template-rows: 1fr 1fr; + grid-template-columns: 3fr 1fr 1fr; +} + +#banner > #breaking-news { + grid-row: 1 / span 2; + grid-column: 1; +} + +#banner > #breaking-news-1 { + grid-row: 1; + grid-column: 2 / span 2; +} + +#banner > #breaking-news-2 { + grid-row: 2; + grid-column: 2; +} + +#banner > #breaking-news-3 { + grid-row: 2; + grid-column: 3; +} + +#content { + height: 80em; + background-style: solid; + background-color #f00; + + /* TODO */ +} + +#sidebar { + /* TODO */ +} + +/* css selector explanation + * -- + * main.grid > #content { ... } + * -- + * - given an element of type `main` with the class `grid` + * - for its direct child with id `content` + */ + +main.grid > #banner { + grid-row: 1; + grid-column: 1 / -1; +} + +/* on mobile ... */ +@media screen and (max-width:576px) { + /* the sidebar moves to immediately under the navbar */ + main.grid > #sidebar { + grid-row: 2 / span 1; + grid-column: 1 / span 2; + } + + /* the content comes after the "sidebar" */ + main.grid > #content { + grid-row: 3; + grid-column: 1 / span 2; + } +} + +/* on desktop ... */ +@media screen and (min-width:577px) { + /* the sidebar sits on the right-hand column (25% width) */ + main.grid > #sidebar { + grid-row: 2 / span 1; + grid-column: 2 / span 1; + } + + /* the contents sit on the left-hand column (75% width) */ + main.grid > #content { + grid-row: 2 / span 2; + grid-column: 1 / span 1; + } +} diff --git a/logo.svg b/logo.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <path d="M0 0 L512 0 L512 512 L0 512 L0 0" fill="rgb(0,0,0)" /> + <path d="M240 496 L80 336 L192 224 L192 16 L240 16 L240 240 L144 336 L240 432 L240 496" fill="rgb(255,255,255)" /> + <path d="M256 400 L192 336 L256 272 L320 336 L256 400" fill="rgb(255,165,0)" /> + <path d="M272 496 L432 336 L320 224 L320 16 L272 16 L272 240 L368 336 L272 432 L272 496" fill="rgb(255,255,255)" /> +</svg> + diff --git a/menu.svg b/menu.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="1em" height="1em" viewBox="0 0 56 56" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill:rgb(80, 80, 80);"> + <path d="M8 8 L48 8 L48 16 L8 16 L8 8 M8 24 L48 24 L48 32 L8 32 L8 24 M8 40 L48 40 L48 48 L8 48 L8 40" /> +</svg> diff --git a/navbar.css b/navbar.css @@ -0,0 +1,58 @@ +.navbar { + padding-left: 1em; + padding-right: 1em; +} + +.navbar-menu { + padding: 0; + margin: 0; + list-style: none; +} + +.navbar-menu li { + display: inline-block; +} + +.navbar-toggle-label { + cursor: pointer; +} + +/* css selector explanation + * -- + * .navbar-toggle ~ .navbar-menu li { ... } + * -- + * - given an element with the `navbar-toggle` class, + * - for all subsequent siblings with the `navbar-menu` class, + * - for all their children of type <li> + */ + +/* on mobile ... */ +@media screen and (max-width:576px) { + /* always display the hamburger menu */ + .navbar-toggle ~ .navbar-menu li:first-child { + display: inline-block; + } + + /* never display the remaining list items ... */ + .navbar-toggle ~ .navbar-menu li { + display: none; + } + + /* ... unless the hamburger menu button has been clicked */ + .navbar-toggle:checked ~ .navbar-menu li { + display: block; + } +} + +/* on desktop ... */ +@media screen and (min-width:577px) { + /* never display the hamburger menu */ + .navbar-menu li:first-child { + display: none; + } + + /* always display the remaining list items */ + .navbar-menu li { + display: inline-block; + } +} diff --git a/script.js b/script.js diff --git a/style.css b/style.css @@ -0,0 +1,37 @@ +body, hr, html { + height: 100%; + margin: 0!important; + padding: 0!important; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid; + border-color: inherit; +} + +.center { + max-width: 80em; + margin-left: auto; + margin-right: auto; + /* padding: 1em; */ +} + +.pad-1em { + padding: 1em; +} + +.hidden { + display: none; +} + +.flex { + display: flex; + justify-content: space-between; +} + +.grid { + display: grid; +}